@globiguard/sdk 1.0.0 → 1.0.1
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/LICENSE +128 -0
- package/README.md +80 -0
- package/dist/bootstrap.d.ts +5 -0
- package/dist/bootstrap.d.ts.map +1 -0
- package/dist/bootstrap.js +67 -0
- package/dist/bootstrap.js.map +1 -0
- package/dist/client.d.ts +61 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +260 -0
- package/dist/client.js.map +1 -0
- package/dist/entitlements.node.d.ts +12 -0
- package/dist/entitlements.node.d.ts.map +1 -0
- package/dist/entitlements.node.js +215 -0
- package/dist/entitlements.node.js.map +1 -0
- package/dist/errors.d.ts +21 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +46 -0
- package/dist/errors.js.map +1 -0
- package/dist/fetch.d.ts +21 -0
- package/dist/fetch.d.ts.map +1 -0
- package/dist/fetch.js +151 -0
- package/dist/fetch.js.map +1 -0
- package/dist/governed-actions.d.ts +34 -0
- package/dist/governed-actions.d.ts.map +1 -0
- package/dist/governed-actions.js +146 -0
- package/dist/governed-actions.js.map +1 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +14 -0
- package/dist/index.js.map +1 -0
- package/dist/realtime.d.ts +21 -0
- package/dist/realtime.d.ts.map +1 -0
- package/dist/realtime.js +265 -0
- package/dist/realtime.js.map +1 -0
- package/dist/resources/actions.d.ts +5 -0
- package/dist/resources/actions.d.ts.map +1 -0
- package/dist/resources/actions.js +48 -0
- package/dist/resources/actions.js.map +1 -0
- package/dist/resources/audit.d.ts +5 -0
- package/dist/resources/audit.d.ts.map +1 -0
- package/dist/resources/audit.js +62 -0
- package/dist/resources/audit.js.map +1 -0
- package/dist/resources/installs.d.ts +4 -0
- package/dist/resources/installs.d.ts.map +1 -0
- package/dist/resources/installs.js +19 -0
- package/dist/resources/installs.js.map +1 -0
- package/dist/resources/orgs.d.ts +4 -0
- package/dist/resources/orgs.d.ts.map +1 -0
- package/dist/resources/orgs.js +48 -0
- package/dist/resources/orgs.js.map +1 -0
- package/dist/resources/path-segments.d.ts +2 -0
- package/dist/resources/path-segments.d.ts.map +1 -0
- package/dist/resources/path-segments.js +4 -0
- package/dist/resources/path-segments.js.map +1 -0
- package/dist/resources/policies.d.ts +5 -0
- package/dist/resources/policies.d.ts.map +1 -0
- package/dist/resources/policies.js +64 -0
- package/dist/resources/policies.js.map +1 -0
- package/dist/resources/queue.d.ts +5 -0
- package/dist/resources/queue.d.ts.map +1 -0
- package/dist/resources/queue.js +36 -0
- package/dist/resources/queue.js.map +1 -0
- package/dist/resources/workflows.d.ts +5 -0
- package/dist/resources/workflows.d.ts.map +1 -0
- package/dist/resources/workflows.js +63 -0
- package/dist/resources/workflows.js.map +1 -0
- package/dist/server.d.ts +8 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +128 -0
- package/dist/server.js.map +1 -0
- package/package.json +49 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"installs.d.ts","sourceRoot":"","sources":["../../src/resources/installs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAKV,wBAAwB,EACzB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAGxD,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,mBAAmB,GAC7B,wBAAwB,CA2B1B"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { encodePathSegment } from "./path-segments.js";
|
|
2
|
+
export function createInstallsClient(transport) {
|
|
3
|
+
return {
|
|
4
|
+
register(request) {
|
|
5
|
+
return transport.request("/v1/installs", {
|
|
6
|
+
method: "POST",
|
|
7
|
+
body: request
|
|
8
|
+
});
|
|
9
|
+
},
|
|
10
|
+
heartbeat(installId, request) {
|
|
11
|
+
const encodedInstallId = encodePathSegment(installId);
|
|
12
|
+
return transport.request(`/v1/installs/${encodedInstallId}/heartbeats`, {
|
|
13
|
+
method: "POST",
|
|
14
|
+
body: request
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=installs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"installs.js","sourceRoot":"","sources":["../../src/resources/installs.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEvD,MAAM,UAAU,oBAAoB,CAClC,SAA8B;IAE9B,OAAO;QACL,QAAQ,CAAC,OAA6C;YACpD,OAAO,SAAS,CAAC,OAAO,CACtB,cAAc,EACd;gBACE,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,OAAO;aACd,CACF,CAAC;QACJ,CAAC;QAED,SAAS,CACP,SAAiB,EACjB,OAA0C;YAE1C,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;YAEtD,OAAO,SAAS,CAAC,OAAO,CACtB,gBAAgB,gBAAgB,aAAa,EAC7C;gBACE,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,OAAO;aACd,CACF,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"orgs.d.ts","sourceRoot":"","sources":["../../src/resources/orgs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAMV,oBAAoB,EAErB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAGxD,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,mBAAmB,GAC7B,oBAAoB,CAgEtB"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { encodePathSegment } from "./path-segments.js";
|
|
2
|
+
export function createOrgsClient(transport) {
|
|
3
|
+
return {
|
|
4
|
+
findBySlug(slug) {
|
|
5
|
+
return transport.request("/v1/orgs", {
|
|
6
|
+
query: {
|
|
7
|
+
slug
|
|
8
|
+
}
|
|
9
|
+
});
|
|
10
|
+
},
|
|
11
|
+
create(request) {
|
|
12
|
+
return transport.request("/v1/orgs", {
|
|
13
|
+
method: "POST",
|
|
14
|
+
body: request
|
|
15
|
+
});
|
|
16
|
+
},
|
|
17
|
+
get(orgId) {
|
|
18
|
+
const encodedOrgId = encodePathSegment(orgId);
|
|
19
|
+
return transport.request(`/v1/orgs/${encodedOrgId}`);
|
|
20
|
+
},
|
|
21
|
+
update(orgId, request) {
|
|
22
|
+
const encodedOrgId = encodePathSegment(orgId);
|
|
23
|
+
return transport.request(`/v1/orgs/${encodedOrgId}`, {
|
|
24
|
+
method: "PATCH",
|
|
25
|
+
body: request
|
|
26
|
+
});
|
|
27
|
+
},
|
|
28
|
+
createApiKey(orgId, request) {
|
|
29
|
+
const encodedOrgId = encodePathSegment(orgId);
|
|
30
|
+
return transport.request(`/v1/orgs/${encodedOrgId}/api-keys`, {
|
|
31
|
+
method: "POST",
|
|
32
|
+
body: request
|
|
33
|
+
});
|
|
34
|
+
},
|
|
35
|
+
listApiKeys(orgId) {
|
|
36
|
+
const encodedOrgId = encodePathSegment(orgId);
|
|
37
|
+
return transport.request(`/v1/orgs/${encodedOrgId}/api-keys`);
|
|
38
|
+
},
|
|
39
|
+
revokeApiKey(orgId, apiKeyId) {
|
|
40
|
+
const encodedOrgId = encodePathSegment(orgId);
|
|
41
|
+
const encodedApiKeyId = encodePathSegment(apiKeyId);
|
|
42
|
+
return transport.request(`/v1/orgs/${encodedOrgId}/api-keys/${encodedApiKeyId}`, {
|
|
43
|
+
method: "DELETE"
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=orgs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"orgs.js","sourceRoot":"","sources":["../../src/resources/orgs.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEvD,MAAM,UAAU,gBAAgB,CAC9B,SAA8B;IAE9B,OAAO;QACL,UAAU,CAAC,IAAY;YACrB,OAAO,SAAS,CAAC,OAAO,CAAgB,UAAU,EAAE;gBAClD,KAAK,EAAE;oBACL,IAAI;iBACL;aACF,CAAC,CAAC;QACL,CAAC;QAED,MAAM,CAAC,OAAmC;YACxC,OAAO,SAAS,CAAC,OAAO,CAAgB,UAAU,EAAE;gBAClD,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,OAAO;aACd,CAAC,CAAC;QACL,CAAC;QAED,GAAG,CAAC,KAAa;YACf,MAAM,YAAY,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;YAE9C,OAAO,SAAS,CAAC,OAAO,CAAgB,YAAY,YAAY,EAAE,CAAC,CAAC;QACtE,CAAC;QAED,MAAM,CAAC,KAAa,EAAE,OAAmC;YACvD,MAAM,YAAY,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;YAE9C,OAAO,SAAS,CAAC,OAAO,CAAgB,YAAY,YAAY,EAAE,EAAE;gBAClE,MAAM,EAAE,OAAO;gBACf,IAAI,EAAE,OAAO;aACd,CAAC,CAAC;QACL,CAAC;QAED,YAAY,CAAC,KAAa,EAAE,OAAsC;YAChE,MAAM,YAAY,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;YAE9C,OAAO,SAAS,CAAC,OAAO,CACtB,YAAY,YAAY,WAAW,EACnC;gBACE,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,OAAO;aACd,CACF,CAAC;QACJ,CAAC;QAED,WAAW,CAAC,KAAa;YACvB,MAAM,YAAY,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;YAE9C,OAAO,SAAS,CAAC,OAAO,CACtB,YAAY,YAAY,WAAW,CACpC,CAAC;QACJ,CAAC;QAED,YAAY,CAAC,KAAa,EAAE,QAAgB;YAC1C,MAAM,YAAY,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;YAC9C,MAAM,eAAe,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;YAEpD,OAAO,SAAS,CAAC,OAAO,CACtB,YAAY,YAAY,aAAa,eAAe,EAAE,EACtD;gBACE,MAAM,EAAE,QAAQ;aACjB,CACF,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"path-segments.d.ts","sourceRoot":"","sources":["../../src/resources/path-segments.ts"],"names":[],"mappings":"AAAA,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEvD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"path-segments.js","sourceRoot":"","sources":["../../src/resources/path-segments.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,iBAAiB,CAAC,KAAa;IAC7C,OAAO,kBAAkB,CAAC,KAAK,CAAC,CAAC;AACnC,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { GlobiguardPoliciesClient, GlobiguardPoliciesReadClient } from "@globiguard/contracts";
|
|
2
|
+
import type { GlobiguardTransport } from "../client.js";
|
|
3
|
+
export declare function createPoliciesReadClient(transport: GlobiguardTransport): GlobiguardPoliciesReadClient;
|
|
4
|
+
export declare function createPoliciesClient(transport: GlobiguardTransport): GlobiguardPoliciesClient;
|
|
5
|
+
//# sourceMappingURL=policies.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"policies.d.ts","sourceRoot":"","sources":["../../src/resources/policies.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,wBAAwB,EACxB,4BAA4B,EAM7B,MAAM,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAIxD,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,mBAAmB,GAC7B,4BAA4B,CA6B9B;AAED,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,mBAAmB,GAC7B,wBAAwB,CAuD1B"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { GlobiguardConfigError } from "../errors.js";
|
|
2
|
+
import { encodePathSegment } from "./path-segments.js";
|
|
3
|
+
export function createPoliciesReadClient(transport) {
|
|
4
|
+
return {
|
|
5
|
+
list(request) {
|
|
6
|
+
if (request.active === undefined) {
|
|
7
|
+
throw new GlobiguardConfigError("Policies list requires an explicit active filter.");
|
|
8
|
+
}
|
|
9
|
+
return transport.request("/v1/policies", {
|
|
10
|
+
query: {
|
|
11
|
+
industry: request.industry,
|
|
12
|
+
active: request.active
|
|
13
|
+
}
|
|
14
|
+
});
|
|
15
|
+
},
|
|
16
|
+
listTemplates(industry) {
|
|
17
|
+
return transport.request("/v1/policies/templates", {
|
|
18
|
+
query: industry ? { industry } : undefined
|
|
19
|
+
});
|
|
20
|
+
},
|
|
21
|
+
get(policyId) {
|
|
22
|
+
const encodedPolicyId = encodePathSegment(policyId);
|
|
23
|
+
return transport.request(`/v1/policies/${encodedPolicyId}`);
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
export function createPoliciesClient(transport) {
|
|
28
|
+
const readClient = createPoliciesReadClient(transport);
|
|
29
|
+
return {
|
|
30
|
+
...readClient,
|
|
31
|
+
create(request) {
|
|
32
|
+
return transport.request("/v1/policies", {
|
|
33
|
+
method: "POST",
|
|
34
|
+
body: request
|
|
35
|
+
});
|
|
36
|
+
},
|
|
37
|
+
createFromTemplate(templateId) {
|
|
38
|
+
const encodedTemplateId = encodePathSegment(templateId);
|
|
39
|
+
return transport.request(`/v1/policies/from-template/${encodedTemplateId}`, {
|
|
40
|
+
method: "POST"
|
|
41
|
+
});
|
|
42
|
+
},
|
|
43
|
+
update(policyId, request) {
|
|
44
|
+
const encodedPolicyId = encodePathSegment(policyId);
|
|
45
|
+
return transport.request(`/v1/policies/${encodedPolicyId}`, {
|
|
46
|
+
method: "PUT",
|
|
47
|
+
body: request
|
|
48
|
+
});
|
|
49
|
+
},
|
|
50
|
+
remove(policyId) {
|
|
51
|
+
const encodedPolicyId = encodePathSegment(policyId);
|
|
52
|
+
return transport.request(`/v1/policies/${encodedPolicyId}`, {
|
|
53
|
+
method: "DELETE"
|
|
54
|
+
});
|
|
55
|
+
},
|
|
56
|
+
activate(policyId) {
|
|
57
|
+
const encodedPolicyId = encodePathSegment(policyId);
|
|
58
|
+
return transport.request(`/v1/policies/${encodedPolicyId}/activate`, {
|
|
59
|
+
method: "POST"
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=policies.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"policies.js","sourceRoot":"","sources":["../../src/resources/policies.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEvD,MAAM,UAAU,wBAAwB,CACtC,SAA8B;IAE9B,OAAO;QACL,IAAI,CAAC,OAAoC;YACvC,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBACjC,MAAM,IAAI,qBAAqB,CAC7B,mDAAmD,CACpD,CAAC;YACJ,CAAC;YAED,OAAO,SAAS,CAAC,OAAO,CAAqB,cAAc,EAAE;gBAC3D,KAAK,EAAE;oBACL,QAAQ,EAAE,OAAO,CAAC,QAAQ;oBAC1B,MAAM,EAAE,OAAO,CAAC,MAAM;iBACvB;aACF,CAAC,CAAC;QACL,CAAC;QAED,aAAa,CAAC,QAA6B;YACzC,OAAO,SAAS,CAAC,OAAO,CAA6B,wBAAwB,EAAE;gBAC7E,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS;aAC3C,CAAC,CAAC;QACL,CAAC;QAED,GAAG,CAAC,QAAgB;YAClB,MAAM,eAAe,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;YAEpD,OAAO,SAAS,CAAC,OAAO,CAAmB,gBAAgB,eAAe,EAAE,CAAC,CAAC;QAChF,CAAC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,SAA8B;IAE9B,MAAM,UAAU,GAAG,wBAAwB,CAAC,SAAS,CAAC,CAAC;IAEvD,OAAO;QACL,GAAG,UAAU;QAEb,MAAM,CAAC,OAAsC;YAC3C,OAAO,SAAS,CAAC,OAAO,CAAmB,cAAc,EAAE;gBACzD,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,OAAO;aACd,CAAC,CAAC;QACL,CAAC;QAED,kBAAkB,CAAC,UAAkB;YACnC,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAC;YAExD,OAAO,SAAS,CAAC,OAAO,CACtB,8BAA8B,iBAAiB,EAAE,EACjD;gBACE,MAAM,EAAE,MAAM;aACf,CACF,CAAC;QACJ,CAAC;QAED,MAAM,CAAC,QAAgB,EAAE,OAAsC;YAC7D,MAAM,eAAe,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;YAEpD,OAAO,SAAS,CAAC,OAAO,CACtB,gBAAgB,eAAe,EAAE,EACjC;gBACE,MAAM,EAAE,KAAK;gBACb,IAAI,EAAE,OAAO;aACd,CACF,CAAC;QACJ,CAAC;QAED,MAAM,CAAC,QAAgB;YACrB,MAAM,eAAe,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;YAEpD,OAAO,SAAS,CAAC,OAAO,CAAO,gBAAgB,eAAe,EAAE,EAAE;gBAChE,MAAM,EAAE,QAAQ;aACjB,CAAC,CAAC;QACL,CAAC;QAED,QAAQ,CAAC,QAAgB;YACvB,MAAM,eAAe,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;YAEpD,OAAO,SAAS,CAAC,OAAO,CACtB,gBAAgB,eAAe,WAAW,EAC1C;gBACE,MAAM,EAAE,MAAM;aACf,CACF,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { GlobiguardQueueClient, GlobiguardQueueReadClient } from "@globiguard/contracts";
|
|
2
|
+
import type { GlobiguardTransport } from "../client.js";
|
|
3
|
+
export declare function createQueueReadClient(transport: GlobiguardTransport): GlobiguardQueueReadClient;
|
|
4
|
+
export declare function createQueueClient(transport: GlobiguardTransport): GlobiguardQueueClient;
|
|
5
|
+
//# sourceMappingURL=queue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"queue.d.ts","sourceRoot":"","sources":["../../src/resources/queue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,qBAAqB,EAKrB,yBAAyB,EAC1B,MAAM,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAGxD,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,mBAAmB,GAC7B,yBAAyB,CAsB3B;AAED,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,mBAAmB,GAC7B,qBAAqB,CAqBvB"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { encodePathSegment } from "./path-segments.js";
|
|
2
|
+
export function createQueueReadClient(transport) {
|
|
3
|
+
return {
|
|
4
|
+
list(request) {
|
|
5
|
+
const query = request
|
|
6
|
+
? {
|
|
7
|
+
status: request.status
|
|
8
|
+
}
|
|
9
|
+
: undefined;
|
|
10
|
+
return transport.request("/v1/queue", {
|
|
11
|
+
query
|
|
12
|
+
});
|
|
13
|
+
},
|
|
14
|
+
get(queueEntryId) {
|
|
15
|
+
const encodedQueueEntryId = encodePathSegment(queueEntryId);
|
|
16
|
+
return transport.request(`/v1/queue/${encodedQueueEntryId}`);
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
export function createQueueClient(transport) {
|
|
21
|
+
const readClient = createQueueReadClient(transport);
|
|
22
|
+
return {
|
|
23
|
+
...readClient,
|
|
24
|
+
decide(queueEntryId, request) {
|
|
25
|
+
const encodedQueueEntryId = encodePathSegment(queueEntryId);
|
|
26
|
+
return transport.request(`/v1/queue/${encodedQueueEntryId}/${request.action}`, {
|
|
27
|
+
method: "POST",
|
|
28
|
+
body: {
|
|
29
|
+
reviewedBy: request.reviewedBy,
|
|
30
|
+
notes: request.notes
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=queue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"queue.js","sourceRoot":"","sources":["../../src/resources/queue.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEvD,MAAM,UAAU,qBAAqB,CACnC,SAA8B;IAE9B,OAAO;QACL,IAAI,CAAC,OAAoC;YACvC,MAAM,KAAK,GAAG,OAAO;gBACnB,CAAC,CAAC;oBACE,MAAM,EAAE,OAAO,CAAC,MAAM;iBACvB;gBACH,CAAC,CAAC,SAAS,CAAC;YAEd,OAAO,SAAS,CAAC,OAAO,CAAyB,WAAW,EAAE;gBAC5D,KAAK;aACN,CAAC,CAAC;QACL,CAAC;QAED,GAAG,CAAC,YAAoB;YACtB,MAAM,mBAAmB,GAAG,iBAAiB,CAAC,YAAY,CAAC,CAAC;YAE5D,OAAO,SAAS,CAAC,OAAO,CACtB,aAAa,mBAAmB,EAAE,CACnC,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,SAA8B;IAE9B,MAAM,UAAU,GAAG,qBAAqB,CAAC,SAAS,CAAC,CAAC;IAEpD,OAAO;QACL,GAAG,UAAU;QAEb,MAAM,CAAC,YAAoB,EAAE,OAAuC;YAClE,MAAM,mBAAmB,GAAG,iBAAiB,CAAC,YAAY,CAAC,CAAC;YAE5D,OAAO,SAAS,CAAC,OAAO,CACtB,aAAa,mBAAmB,IAAI,OAAO,CAAC,MAAM,EAAE,EACpD;gBACE,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE;oBACJ,UAAU,EAAE,OAAO,CAAC,UAAU;oBAC9B,KAAK,EAAE,OAAO,CAAC,KAAK;iBACrB;aACF,CACF,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { GlobiguardWorkflowsReadClient, GlobiguardWorkflowsClient } from "@globiguard/contracts";
|
|
2
|
+
import type { GlobiguardTransport } from "../client.js";
|
|
3
|
+
export declare function createWorkflowsReadClient(transport: GlobiguardTransport): GlobiguardWorkflowsReadClient;
|
|
4
|
+
export declare function createWorkflowsClient(transport: GlobiguardTransport): GlobiguardWorkflowsClient;
|
|
5
|
+
//# sourceMappingURL=workflows.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflows.d.ts","sourceRoot":"","sources":["../../src/resources/workflows.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAOV,6BAA6B,EAC7B,yBAAyB,EAC1B,MAAM,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAIxD,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,mBAAmB,GAC7B,6BAA6B,CAwB/B;AAED,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,mBAAmB,GAC7B,yBAAyB,CAgE3B"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { GlobiguardConfigError } from "../errors.js";
|
|
2
|
+
import { encodePathSegment } from "./path-segments.js";
|
|
3
|
+
export function createWorkflowsReadClient(transport) {
|
|
4
|
+
return {
|
|
5
|
+
list(request) {
|
|
6
|
+
if (request.active === undefined) {
|
|
7
|
+
throw new GlobiguardConfigError("Workflow list requires an explicit active filter.");
|
|
8
|
+
}
|
|
9
|
+
return transport.request("/v1/workflows", {
|
|
10
|
+
query: {
|
|
11
|
+
active: request.active
|
|
12
|
+
}
|
|
13
|
+
});
|
|
14
|
+
},
|
|
15
|
+
get(workflowId) {
|
|
16
|
+
const encodedWorkflowId = encodePathSegment(workflowId);
|
|
17
|
+
return transport.request(`/v1/workflows/${encodedWorkflowId}`);
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
export function createWorkflowsClient(transport) {
|
|
22
|
+
const readClient = createWorkflowsReadClient(transport);
|
|
23
|
+
return {
|
|
24
|
+
...readClient,
|
|
25
|
+
create(request) {
|
|
26
|
+
return transport.request("/v1/workflows", {
|
|
27
|
+
method: "POST",
|
|
28
|
+
body: request
|
|
29
|
+
});
|
|
30
|
+
},
|
|
31
|
+
update(workflowId, request) {
|
|
32
|
+
const encodedWorkflowId = encodePathSegment(workflowId);
|
|
33
|
+
return transport.request(`/v1/workflows/${encodedWorkflowId}`, {
|
|
34
|
+
method: "PUT",
|
|
35
|
+
body: request
|
|
36
|
+
});
|
|
37
|
+
},
|
|
38
|
+
remove(workflowId) {
|
|
39
|
+
const encodedWorkflowId = encodePathSegment(workflowId);
|
|
40
|
+
return transport.request(`/v1/workflows/${encodedWorkflowId}`, {
|
|
41
|
+
method: "DELETE"
|
|
42
|
+
});
|
|
43
|
+
},
|
|
44
|
+
activate(workflowId) {
|
|
45
|
+
const encodedWorkflowId = encodePathSegment(workflowId);
|
|
46
|
+
return transport.request(`/v1/workflows/${encodedWorkflowId}/activate`, {
|
|
47
|
+
method: "POST"
|
|
48
|
+
});
|
|
49
|
+
},
|
|
50
|
+
run(workflowId, triggerData) {
|
|
51
|
+
const encodedWorkflowId = encodePathSegment(workflowId);
|
|
52
|
+
return transport.request(`/v1/workflows/${encodedWorkflowId}/run`, {
|
|
53
|
+
method: "POST",
|
|
54
|
+
body: triggerData ?? {}
|
|
55
|
+
});
|
|
56
|
+
},
|
|
57
|
+
listRuns(workflowId) {
|
|
58
|
+
const encodedWorkflowId = encodePathSegment(workflowId);
|
|
59
|
+
return transport.request(`/v1/workflows/${encodedWorkflowId}/runs`);
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=workflows.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflows.js","sourceRoot":"","sources":["../../src/resources/workflows.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEvD,MAAM,UAAU,yBAAyB,CACvC,SAA8B;IAE9B,OAAO;QACL,IAAI,CAAC,OAAsC;YACzC,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBACjC,MAAM,IAAI,qBAAqB,CAC7B,mDAAmD,CACpD,CAAC;YACJ,CAAC;YAED,OAAO,SAAS,CAAC,OAAO,CAAuB,eAAe,EAAE;gBAC9D,KAAK,EAAE;oBACL,MAAM,EAAE,OAAO,CAAC,MAAM;iBACvB;aACF,CAAC,CAAC;QACL,CAAC;QAED,GAAG,CAAC,UAAkB;YACpB,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAC;YAExD,OAAO,SAAS,CAAC,OAAO,CACtB,iBAAiB,iBAAiB,EAAE,CACrC,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,SAA8B;IAE9B,MAAM,UAAU,GAAG,yBAAyB,CAAC,SAAS,CAAC,CAAC;IAExD,OAAO;QACL,GAAG,UAAU;QAEb,MAAM,CAAC,OAAwC;YAC7C,OAAO,SAAS,CAAC,OAAO,CAAqB,eAAe,EAAE;gBAC5D,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,OAAO;aACd,CAAC,CAAC;QACL,CAAC;QAED,MAAM,CAAC,UAAkB,EAAE,OAAwC;YACjE,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAC;YAExD,OAAO,SAAS,CAAC,OAAO,CACtB,iBAAiB,iBAAiB,EAAE,EACpC;gBACE,MAAM,EAAE,KAAK;gBACb,IAAI,EAAE,OAAO;aACd,CACF,CAAC;QACJ,CAAC;QAED,MAAM,CAAC,UAAkB;YACvB,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAC;YAExD,OAAO,SAAS,CAAC,OAAO,CAAO,iBAAiB,iBAAiB,EAAE,EAAE;gBACnE,MAAM,EAAE,QAAQ;aACjB,CAAC,CAAC;QACL,CAAC;QAED,QAAQ,CAAC,UAAkB;YACzB,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAC;YAExD,OAAO,SAAS,CAAC,OAAO,CACtB,iBAAiB,iBAAiB,WAAW,EAC7C;gBACE,MAAM,EAAE,MAAM;aACf,CACF,CAAC;QACJ,CAAC;QAED,GAAG,CAAC,UAAkB,EAAE,WAAqC;YAC3D,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAC;YAExD,OAAO,SAAS,CAAC,OAAO,CACtB,iBAAiB,iBAAiB,MAAM,EACxC;gBACE,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,WAAW,IAAI,EAAE;aACxB,CACF,CAAC;QACJ,CAAC;QAED,QAAQ,CAAC,UAAkB;YACzB,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAC;YAExD,OAAO,SAAS,CAAC,OAAO,CACtB,iBAAiB,iBAAiB,OAAO,CAC1C,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
|
package/dist/server.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type GlobiguardTrustWebhookHeaders, type GlobiguardTrustWebhookVerificationRequest, type GlobiguardTrustWebhookVerificationResult } from "@globiguard/contracts";
|
|
2
|
+
export { createGovernedActionsClient, deriveActionIdempotencyKey, generateCorrelationId } from "./governed-actions.js";
|
|
3
|
+
export type { GlobiguardGovernedActionsClient, GlobiguardGovernedActionRuntimeConfig, GlobiguardIdempotencyKeyInput, GlobiguardWaitForApprovalOptions } from "./governed-actions.js";
|
|
4
|
+
export declare function verifyTrustWebhook(request: Omit<GlobiguardTrustWebhookVerificationRequest, "boundary" | "headers"> & {
|
|
5
|
+
headers: GlobiguardTrustWebhookHeaders | Headers;
|
|
6
|
+
}): Promise<GlobiguardTrustWebhookVerificationResult>;
|
|
7
|
+
export declare function buildSignedWebhookPayload(headers: GlobiguardTrustWebhookHeaders, rawBody: string): string;
|
|
8
|
+
//# sourceMappingURL=server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,6BAA6B,EAClC,KAAK,yCAAyC,EAC9C,KAAK,wCAAwC,EAC9C,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,2BAA2B,EAC3B,0BAA0B,EAC1B,qBAAqB,EACtB,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EACV,+BAA+B,EAC/B,qCAAqC,EACrC,6BAA6B,EAC7B,gCAAgC,EACjC,MAAM,uBAAuB,CAAC;AAE/B,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,IAAI,CACX,yCAAyC,EACzC,UAAU,GAAG,SAAS,CACvB,GAAG;IACF,OAAO,EAAE,6BAA6B,GAAG,OAAO,CAAC;CAClD,GACA,OAAO,CAAC,wCAAwC,CAAC,CA8DnD;AAED,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,6BAA6B,EACtC,OAAO,EAAE,MAAM,GACd,MAAM,CAQR"}
|
package/dist/server.js
ADDED
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import { GLOBIGUARD_SERVER_AUTHORITY_BOUNDARY, GLOBIGUARD_TRUST_WEBHOOK_HEADER_NAMES, GLOBIGUARD_TRUST_WEBHOOK_SIGNATURE_SCHEME } from "@globiguard/contracts";
|
|
2
|
+
import { GlobiguardConfigError } from "./errors.js";
|
|
3
|
+
export { createGovernedActionsClient, deriveActionIdempotencyKey, generateCorrelationId } from "./governed-actions.js";
|
|
4
|
+
export async function verifyTrustWebhook(request) {
|
|
5
|
+
assertServerOnlyRuntime();
|
|
6
|
+
const headers = normalizeHeaders(request.headers);
|
|
7
|
+
const toleranceSeconds = request.toleranceSeconds ?? 300;
|
|
8
|
+
const now = request.now ?? new Date();
|
|
9
|
+
const rawBody = toUint8Array(request.rawBody);
|
|
10
|
+
const bodyText = new TextDecoder().decode(rawBody);
|
|
11
|
+
if (!headers.deliveryId || !headers.timestamp || !headers.eventType) {
|
|
12
|
+
return verificationFailure("Missing required GlobiGuard webhook headers.", headers);
|
|
13
|
+
}
|
|
14
|
+
const parsedTimestamp = Date.parse(headers.timestamp);
|
|
15
|
+
if (!Number.isFinite(parsedTimestamp)) {
|
|
16
|
+
return verificationFailure("Invalid GlobiGuard webhook timestamp.", headers);
|
|
17
|
+
}
|
|
18
|
+
const ageSeconds = Math.abs(now.getTime() - parsedTimestamp) / 1000;
|
|
19
|
+
if (ageSeconds > toleranceSeconds) {
|
|
20
|
+
return verificationFailure("GlobiGuard webhook timestamp is outside the accepted replay window.", headers);
|
|
21
|
+
}
|
|
22
|
+
let envelope;
|
|
23
|
+
try {
|
|
24
|
+
envelope = JSON.parse(bodyText);
|
|
25
|
+
}
|
|
26
|
+
catch {
|
|
27
|
+
return verificationFailure("GlobiGuard webhook body is not valid JSON.", headers);
|
|
28
|
+
}
|
|
29
|
+
if (envelope.id !== headers.deliveryId || envelope.type !== headers.eventType) {
|
|
30
|
+
return verificationFailure("GlobiGuard webhook headers do not match the signed envelope.", headers);
|
|
31
|
+
}
|
|
32
|
+
const signedPayload = buildSignedWebhookPayload(headers, bodyText);
|
|
33
|
+
const expectedSignature = await hmacSha256Hex(request.signingSecret, signedPayload);
|
|
34
|
+
const providedSignature = normalizeSignature(headers.signature);
|
|
35
|
+
if (!constantTimeEqualHex(expectedSignature, providedSignature)) {
|
|
36
|
+
return verificationFailure("Invalid GlobiGuard webhook signature.", headers);
|
|
37
|
+
}
|
|
38
|
+
const duplicateDelivery = request.seenDelivery
|
|
39
|
+
? await request.seenDelivery(headers.deliveryId)
|
|
40
|
+
: false;
|
|
41
|
+
return {
|
|
42
|
+
ok: true,
|
|
43
|
+
deliveryId: headers.deliveryId,
|
|
44
|
+
eventType: headers.eventType,
|
|
45
|
+
timestamp: headers.timestamp,
|
|
46
|
+
envelope,
|
|
47
|
+
duplicateDelivery
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
export function buildSignedWebhookPayload(headers, rawBody) {
|
|
51
|
+
return [
|
|
52
|
+
GLOBIGUARD_TRUST_WEBHOOK_SIGNATURE_SCHEME,
|
|
53
|
+
headers.deliveryId,
|
|
54
|
+
headers.timestamp,
|
|
55
|
+
headers.eventType,
|
|
56
|
+
rawBody
|
|
57
|
+
].join(".");
|
|
58
|
+
}
|
|
59
|
+
function assertServerOnlyRuntime() {
|
|
60
|
+
if (typeof window !== "undefined" && typeof document !== "undefined") {
|
|
61
|
+
throw new GlobiguardConfigError("Trust webhook verification is server-only and must not run in a browser.");
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
function normalizeHeaders(headers) {
|
|
65
|
+
if (headers instanceof Headers) {
|
|
66
|
+
return {
|
|
67
|
+
deliveryId: headers.get(GLOBIGUARD_TRUST_WEBHOOK_HEADER_NAMES.deliveryId) ?? "",
|
|
68
|
+
timestamp: headers.get(GLOBIGUARD_TRUST_WEBHOOK_HEADER_NAMES.timestamp) ?? "",
|
|
69
|
+
eventType: headers.get(GLOBIGUARD_TRUST_WEBHOOK_HEADER_NAMES.eventType) ?? "",
|
|
70
|
+
signature: headers.get(GLOBIGUARD_TRUST_WEBHOOK_HEADER_NAMES.signature) ?? ""
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
return headers;
|
|
74
|
+
}
|
|
75
|
+
function normalizeSignature(signature) {
|
|
76
|
+
return signature.startsWith("v1=") ? signature.slice(3) : signature;
|
|
77
|
+
}
|
|
78
|
+
async function hmacSha256Hex(secret, payload) {
|
|
79
|
+
const cryptoImpl = globalThis.crypto;
|
|
80
|
+
if (!cryptoImpl?.subtle) {
|
|
81
|
+
throw new GlobiguardConfigError("A Web Crypto subtle implementation is required to verify webhooks.");
|
|
82
|
+
}
|
|
83
|
+
const key = await cryptoImpl.subtle.importKey("raw", new TextEncoder().encode(secret), { name: "HMAC", hash: "SHA-256" }, false, ["sign"]);
|
|
84
|
+
const signature = await cryptoImpl.subtle.sign("HMAC", key, new TextEncoder().encode(payload));
|
|
85
|
+
return bytesToHex(new Uint8Array(signature));
|
|
86
|
+
}
|
|
87
|
+
function verificationFailure(message, headers) {
|
|
88
|
+
return {
|
|
89
|
+
ok: false,
|
|
90
|
+
deliveryId: headers.deliveryId,
|
|
91
|
+
eventType: headers.eventType,
|
|
92
|
+
timestamp: headers.timestamp,
|
|
93
|
+
error: {
|
|
94
|
+
kind: "WEBHOOK_VERIFICATION_FAILED",
|
|
95
|
+
message,
|
|
96
|
+
safeDetails: {
|
|
97
|
+
boundary: GLOBIGUARD_SERVER_AUTHORITY_BOUNDARY.authorityLevel
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
function toUint8Array(body) {
|
|
103
|
+
return typeof body === "string" ? new TextEncoder().encode(body) : body;
|
|
104
|
+
}
|
|
105
|
+
function constantTimeEqualHex(left, right) {
|
|
106
|
+
const leftBytes = hexToBytes(left);
|
|
107
|
+
const rightBytes = hexToBytes(right);
|
|
108
|
+
const length = Math.max(leftBytes.length, rightBytes.length);
|
|
109
|
+
let diff = leftBytes.length ^ rightBytes.length;
|
|
110
|
+
for (let index = 0; index < length; index += 1) {
|
|
111
|
+
diff |= (leftBytes[index] ?? 0) ^ (rightBytes[index] ?? 0);
|
|
112
|
+
}
|
|
113
|
+
return diff === 0;
|
|
114
|
+
}
|
|
115
|
+
function hexToBytes(hex) {
|
|
116
|
+
if (!/^[\da-f]*$/i.test(hex) || hex.length % 2 !== 0) {
|
|
117
|
+
return new Uint8Array();
|
|
118
|
+
}
|
|
119
|
+
const bytes = new Uint8Array(hex.length / 2);
|
|
120
|
+
for (let index = 0; index < bytes.length; index += 1) {
|
|
121
|
+
bytes[index] = Number.parseInt(hex.slice(index * 2, index * 2 + 2), 16);
|
|
122
|
+
}
|
|
123
|
+
return bytes;
|
|
124
|
+
}
|
|
125
|
+
function bytesToHex(bytes) {
|
|
126
|
+
return [...bytes].map((byte) => byte.toString(16).padStart(2, "0")).join("");
|
|
127
|
+
}
|
|
128
|
+
//# sourceMappingURL=server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,52 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@globiguard/sdk",
|
|
3
|
-
"version": "1.0.
|
|
4
|
-
"description": "GlobiGuard
|
|
5
|
-
"
|
|
3
|
+
"version": "1.0.1",
|
|
4
|
+
"description": "Server-first TypeScript SDK for GlobiGuard control-plane and trusted brain connectivity.",
|
|
5
|
+
"author": "GuideGDM",
|
|
6
|
+
"license": "Apache-2.0",
|
|
7
|
+
"type": "module",
|
|
8
|
+
"main": "dist/index.js",
|
|
9
|
+
"types": "dist/index.d.ts",
|
|
10
|
+
"files": [
|
|
11
|
+
"dist"
|
|
12
|
+
],
|
|
13
|
+
"exports": {
|
|
14
|
+
".": {
|
|
15
|
+
"types": "./dist/index.d.ts",
|
|
16
|
+
"import": "./dist/index.js"
|
|
17
|
+
},
|
|
18
|
+
"./server": {
|
|
19
|
+
"types": "./dist/server.d.ts",
|
|
20
|
+
"import": "./dist/server.js"
|
|
21
|
+
},
|
|
22
|
+
"./entitlements-node": {
|
|
23
|
+
"types": "./dist/entitlements.node.d.ts",
|
|
24
|
+
"import": "./dist/entitlements.node.js"
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
"repository": {
|
|
28
|
+
"type": "git",
|
|
29
|
+
"url": "https://github.com/globiguard/globiguard-open.git",
|
|
30
|
+
"directory": "packages/sdk"
|
|
31
|
+
},
|
|
32
|
+
"publishConfig": {
|
|
33
|
+
"access": "public"
|
|
34
|
+
},
|
|
35
|
+
"engines": {
|
|
36
|
+
"node": ">=22"
|
|
37
|
+
},
|
|
38
|
+
"dependencies": {
|
|
39
|
+
"socket.io-client": "^4.8.3",
|
|
40
|
+
"@globiguard/contracts": "1.0.1"
|
|
41
|
+
},
|
|
42
|
+
"devDependencies": {
|
|
43
|
+
"vitest": "^2.1.8"
|
|
44
|
+
},
|
|
45
|
+
"scripts": {
|
|
46
|
+
"build:deps": "pnpm --dir ../contracts build",
|
|
47
|
+
"build": "pnpm run build:deps && tsc -p tsconfig.json",
|
|
48
|
+
"typecheck": "pnpm run build:deps && tsc -p tsconfig.json --noEmit && tsc -p tsconfig.test.json --noEmit",
|
|
49
|
+
"pretest": "pnpm run build:deps",
|
|
50
|
+
"test": "vitest run"
|
|
51
|
+
}
|
|
6
52
|
}
|