@grantex/sdk 0.1.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.
Files changed (73) hide show
  1. package/dist/client.d.ts +33 -0
  2. package/dist/client.d.ts.map +1 -0
  3. package/dist/client.js +61 -0
  4. package/dist/client.js.map +1 -0
  5. package/dist/errors.d.ts +20 -0
  6. package/dist/errors.d.ts.map +1 -0
  7. package/dist/errors.js +45 -0
  8. package/dist/errors.js.map +1 -0
  9. package/dist/http.d.ts +15 -0
  10. package/dist/http.d.ts.map +1 -0
  11. package/dist/http.js +94 -0
  12. package/dist/http.js.map +1 -0
  13. package/dist/index.d.ts +6 -0
  14. package/dist/index.d.ts.map +1 -0
  15. package/dist/index.js +9 -0
  16. package/dist/index.js.map +1 -0
  17. package/dist/resources/agents.d.ts +12 -0
  18. package/dist/resources/agents.d.ts.map +1 -0
  19. package/dist/resources/agents.js +22 -0
  20. package/dist/resources/agents.js.map +1 -0
  21. package/dist/resources/anomalies.d.ts +15 -0
  22. package/dist/resources/anomalies.d.ts.map +1 -0
  23. package/dist/resources/anomalies.js +20 -0
  24. package/dist/resources/anomalies.js.map +1 -0
  25. package/dist/resources/audit.d.ts +10 -0
  26. package/dist/resources/audit.d.ts.map +1 -0
  27. package/dist/resources/audit.js +28 -0
  28. package/dist/resources/audit.js.map +1 -0
  29. package/dist/resources/billing.d.ts +13 -0
  30. package/dist/resources/billing.d.ts.map +1 -0
  31. package/dist/resources/billing.js +19 -0
  32. package/dist/resources/billing.js.map +1 -0
  33. package/dist/resources/compliance.d.ts +18 -0
  34. package/dist/resources/compliance.d.ts.map +1 -0
  35. package/dist/resources/compliance.js +47 -0
  36. package/dist/resources/compliance.js.map +1 -0
  37. package/dist/resources/grants.d.ts +25 -0
  38. package/dist/resources/grants.d.ts.map +1 -0
  39. package/dist/resources/grants.js +46 -0
  40. package/dist/resources/grants.js.map +1 -0
  41. package/dist/resources/policies.d.ts +17 -0
  42. package/dist/resources/policies.d.ts.map +1 -0
  43. package/dist/resources/policies.js +27 -0
  44. package/dist/resources/policies.js.map +1 -0
  45. package/dist/resources/scim.d.ts +33 -0
  46. package/dist/resources/scim.d.ts.map +1 -0
  47. package/dist/resources/scim.js +51 -0
  48. package/dist/resources/scim.js.map +1 -0
  49. package/dist/resources/sso.d.ts +23 -0
  50. package/dist/resources/sso.d.ts.map +1 -0
  51. package/dist/resources/sso.js +33 -0
  52. package/dist/resources/sso.js.map +1 -0
  53. package/dist/resources/tokens.d.ts +9 -0
  54. package/dist/resources/tokens.d.ts.map +1 -0
  55. package/dist/resources/tokens.js +15 -0
  56. package/dist/resources/tokens.js.map +1 -0
  57. package/dist/resources/webhooks.d.ts +10 -0
  58. package/dist/resources/webhooks.d.ts.map +1 -0
  59. package/dist/resources/webhooks.js +16 -0
  60. package/dist/resources/webhooks.js.map +1 -0
  61. package/dist/types.d.ts +440 -0
  62. package/dist/types.d.ts.map +1 -0
  63. package/dist/types.js +3 -0
  64. package/dist/types.js.map +1 -0
  65. package/dist/verify.d.ts +17 -0
  66. package/dist/verify.d.ts.map +1 -0
  67. package/dist/verify.js +80 -0
  68. package/dist/verify.js.map +1 -0
  69. package/dist/webhook.d.ts +10 -0
  70. package/dist/webhook.d.ts.map +1 -0
  71. package/dist/webhook.js +19 -0
  72. package/dist/webhook.js.map +1 -0
  73. package/package.json +42 -0
@@ -0,0 +1,33 @@
1
+ import { AgentsClient } from './resources/agents.js';
2
+ import { AuditClient } from './resources/audit.js';
3
+ import { GrantsClient } from './resources/grants.js';
4
+ import { TokensClient } from './resources/tokens.js';
5
+ import { WebhooksClient } from './resources/webhooks.js';
6
+ import { BillingClient } from './resources/billing.js';
7
+ import { PoliciesClient } from './resources/policies.js';
8
+ import { ComplianceClient } from './resources/compliance.js';
9
+ import { AnomaliesClient } from './resources/anomalies.js';
10
+ import { ScimClient } from './resources/scim.js';
11
+ import { SsoClient } from './resources/sso.js';
12
+ import type { AuthorizationRequest, AuthorizeParams, GrantexClientOptions } from './types.js';
13
+ export declare class Grantex {
14
+ #private;
15
+ readonly agents: AgentsClient;
16
+ readonly grants: GrantsClient;
17
+ readonly tokens: TokensClient;
18
+ readonly audit: AuditClient;
19
+ readonly webhooks: WebhooksClient;
20
+ readonly billing: BillingClient;
21
+ readonly policies: PoliciesClient;
22
+ readonly compliance: ComplianceClient;
23
+ readonly anomalies: AnomaliesClient;
24
+ readonly scim: ScimClient;
25
+ readonly sso: SsoClient;
26
+ constructor(options?: GrantexClientOptions);
27
+ /**
28
+ * Initiate the delegated authorization flow for a user.
29
+ * `userId` is transparently mapped to `principalId` in the request body.
30
+ */
31
+ authorize(params: AuthorizeParams): Promise<AuthorizationRequest>;
32
+ }
33
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,KAAK,EACV,oBAAoB,EACpB,eAAe,EACf,oBAAoB,EACrB,MAAM,YAAY,CAAC;AAIpB,qBAAa,OAAO;;IAGlB,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAClC,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;IAChC,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAClC,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAC;IACtC,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC;IACpC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC;gBAEZ,OAAO,GAAE,oBAAyB;IA6B9C;;;OAGG;IACH,SAAS,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,oBAAoB,CAAC;CAOlE"}
package/dist/client.js ADDED
@@ -0,0 +1,61 @@
1
+ import { HttpClient } from './http.js';
2
+ import { AgentsClient } from './resources/agents.js';
3
+ import { AuditClient } from './resources/audit.js';
4
+ import { GrantsClient } from './resources/grants.js';
5
+ import { TokensClient } from './resources/tokens.js';
6
+ import { WebhooksClient } from './resources/webhooks.js';
7
+ import { BillingClient } from './resources/billing.js';
8
+ import { PoliciesClient } from './resources/policies.js';
9
+ import { ComplianceClient } from './resources/compliance.js';
10
+ import { AnomaliesClient } from './resources/anomalies.js';
11
+ import { ScimClient } from './resources/scim.js';
12
+ import { SsoClient } from './resources/sso.js';
13
+ const DEFAULT_BASE_URL = 'https://api.grantex.dev';
14
+ export class Grantex {
15
+ #http;
16
+ agents;
17
+ grants;
18
+ tokens;
19
+ audit;
20
+ webhooks;
21
+ billing;
22
+ policies;
23
+ compliance;
24
+ anomalies;
25
+ scim;
26
+ sso;
27
+ constructor(options = {}) {
28
+ const apiKey = options.apiKey ?? process.env['GRANTEX_API_KEY'] ?? '';
29
+ if (!apiKey) {
30
+ throw new Error('Grantex API key is required. Pass `apiKey` in options or set the GRANTEX_API_KEY environment variable.');
31
+ }
32
+ this.#http = new HttpClient({
33
+ baseUrl: options.baseUrl ?? DEFAULT_BASE_URL,
34
+ apiKey,
35
+ ...(options.timeout !== undefined ? { timeout: options.timeout } : {}),
36
+ });
37
+ this.agents = new AgentsClient(this.#http);
38
+ this.grants = new GrantsClient(this.#http);
39
+ this.tokens = new TokensClient(this.#http);
40
+ this.audit = new AuditClient(this.#http);
41
+ this.webhooks = new WebhooksClient(this.#http);
42
+ this.billing = new BillingClient(this.#http);
43
+ this.policies = new PoliciesClient(this.#http);
44
+ this.compliance = new ComplianceClient(this.#http);
45
+ this.anomalies = new AnomaliesClient(this.#http);
46
+ this.scim = new ScimClient(this.#http);
47
+ this.sso = new SsoClient(this.#http);
48
+ }
49
+ /**
50
+ * Initiate the delegated authorization flow for a user.
51
+ * `userId` is transparently mapped to `principalId` in the request body.
52
+ */
53
+ authorize(params) {
54
+ const { userId, ...rest } = params;
55
+ return this.#http.post('/v1/authorize', {
56
+ ...rest,
57
+ principalId: userId,
58
+ });
59
+ }
60
+ }
61
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ export declare class GrantexError extends Error {
2
+ constructor(message: string);
3
+ }
4
+ export declare class GrantexApiError extends GrantexError {
5
+ readonly statusCode: number;
6
+ readonly body: unknown;
7
+ readonly requestId: string | undefined;
8
+ constructor(message: string, statusCode: number, body: unknown, requestId?: string);
9
+ }
10
+ export declare class GrantexAuthError extends GrantexApiError {
11
+ constructor(message: string, statusCode: 401 | 403, body: unknown, requestId?: string);
12
+ }
13
+ export declare class GrantexTokenError extends GrantexError {
14
+ constructor(message: string);
15
+ }
16
+ export declare class GrantexNetworkError extends GrantexError {
17
+ readonly cause: unknown;
18
+ constructor(message: string, cause?: unknown);
19
+ }
20
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,qBAAa,YAAa,SAAQ,KAAK;gBACzB,OAAO,EAAE,MAAM;CAM5B;AAED,qBAAa,eAAgB,SAAQ,YAAY;IAC/C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;gBAGrC,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,OAAO,EACb,SAAS,CAAC,EAAE,MAAM;CASrB;AAED,qBAAa,gBAAiB,SAAQ,eAAe;gBAEjD,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,GAAG,GAAG,GAAG,EACrB,IAAI,EAAE,OAAO,EACb,SAAS,CAAC,EAAE,MAAM;CAMrB;AAED,qBAAa,iBAAkB,SAAQ,YAAY;gBACrC,OAAO,EAAE,MAAM;CAK5B;AAED,qBAAa,mBAAoB,SAAQ,YAAY;IACnD,SAAkB,KAAK,EAAE,OAAO,CAAC;gBAErB,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO;CAM7C"}
package/dist/errors.js ADDED
@@ -0,0 +1,45 @@
1
+ export class GrantexError extends Error {
2
+ constructor(message) {
3
+ super(message);
4
+ this.name = 'GrantexError';
5
+ // Restore prototype chain (required for instanceof checks in ES5 targets)
6
+ Object.setPrototypeOf(this, new.target.prototype);
7
+ }
8
+ }
9
+ export class GrantexApiError extends GrantexError {
10
+ statusCode;
11
+ body;
12
+ requestId;
13
+ constructor(message, statusCode, body, requestId) {
14
+ super(message);
15
+ this.name = 'GrantexApiError';
16
+ this.statusCode = statusCode;
17
+ this.body = body;
18
+ this.requestId = requestId;
19
+ Object.setPrototypeOf(this, new.target.prototype);
20
+ }
21
+ }
22
+ export class GrantexAuthError extends GrantexApiError {
23
+ constructor(message, statusCode, body, requestId) {
24
+ super(message, statusCode, body, requestId);
25
+ this.name = 'GrantexAuthError';
26
+ Object.setPrototypeOf(this, new.target.prototype);
27
+ }
28
+ }
29
+ export class GrantexTokenError extends GrantexError {
30
+ constructor(message) {
31
+ super(message);
32
+ this.name = 'GrantexTokenError';
33
+ Object.setPrototypeOf(this, new.target.prototype);
34
+ }
35
+ }
36
+ export class GrantexNetworkError extends GrantexError {
37
+ cause;
38
+ constructor(message, cause) {
39
+ super(message);
40
+ this.name = 'GrantexNetworkError';
41
+ this.cause = cause;
42
+ Object.setPrototypeOf(this, new.target.prototype);
43
+ }
44
+ }
45
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,YAAa,SAAQ,KAAK;IACrC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;QAC3B,0EAA0E;QAC1E,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACpD,CAAC;CACF;AAED,MAAM,OAAO,eAAgB,SAAQ,YAAY;IACtC,UAAU,CAAS;IACnB,IAAI,CAAU;IACd,SAAS,CAAqB;IAEvC,YACE,OAAe,EACf,UAAkB,EAClB,IAAa,EACb,SAAkB;QAElB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;QAC9B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACpD,CAAC;CACF;AAED,MAAM,OAAO,gBAAiB,SAAQ,eAAe;IACnD,YACE,OAAe,EACf,UAAqB,EACrB,IAAa,EACb,SAAkB;QAElB,KAAK,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;QAC5C,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;QAC/B,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACpD,CAAC;CACF;AAED,MAAM,OAAO,iBAAkB,SAAQ,YAAY;IACjD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;QAChC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACpD,CAAC;CACF;AAED,MAAM,OAAO,mBAAoB,SAAQ,YAAY;IACjC,KAAK,CAAU;IAEjC,YAAY,OAAe,EAAE,KAAe;QAC1C,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;QAClC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACpD,CAAC;CACF"}
package/dist/http.d.ts ADDED
@@ -0,0 +1,15 @@
1
+ export interface HttpClientOptions {
2
+ baseUrl: string;
3
+ apiKey: string;
4
+ timeout?: number;
5
+ }
6
+ export declare class HttpClient {
7
+ #private;
8
+ constructor(options: HttpClientOptions);
9
+ get<T>(path: string): Promise<T>;
10
+ post<T>(path: string, body?: unknown): Promise<T>;
11
+ put<T>(path: string, body?: unknown): Promise<T>;
12
+ patch<T>(path: string, body?: unknown): Promise<T>;
13
+ delete<T>(path: string): Promise<T>;
14
+ }
15
+ //# sourceMappingURL=http.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,UAAU;;gBAKT,OAAO,EAAE,iBAAiB;IAMhC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IAIhC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC;IAIjD,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC;IAIhD,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC;IAIlD,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;CAsE1C"}
package/dist/http.js ADDED
@@ -0,0 +1,94 @@
1
+ import { GrantexApiError, GrantexAuthError, GrantexNetworkError } from './errors.js';
2
+ const SDK_VERSION = '0.1.0';
3
+ const DEFAULT_TIMEOUT_MS = 30_000;
4
+ export class HttpClient {
5
+ #baseUrl;
6
+ #apiKey;
7
+ #timeout;
8
+ constructor(options) {
9
+ this.#baseUrl = options.baseUrl.replace(/\/$/, '');
10
+ this.#apiKey = options.apiKey;
11
+ this.#timeout = options.timeout ?? DEFAULT_TIMEOUT_MS;
12
+ }
13
+ async get(path) {
14
+ return this.#request('GET', path, undefined);
15
+ }
16
+ async post(path, body) {
17
+ return this.#request('POST', path, body);
18
+ }
19
+ async put(path, body) {
20
+ return this.#request('PUT', path, body);
21
+ }
22
+ async patch(path, body) {
23
+ return this.#request('PATCH', path, body);
24
+ }
25
+ async delete(path) {
26
+ return this.#request('DELETE', path, undefined);
27
+ }
28
+ async #request(method, path, body) {
29
+ const url = `${this.#baseUrl}${path}`;
30
+ const controller = new AbortController();
31
+ const timerId = setTimeout(() => controller.abort(), this.#timeout);
32
+ const headers = {
33
+ Authorization: `Bearer ${this.#apiKey}`,
34
+ 'User-Agent': `@grantex/sdk/${SDK_VERSION}`,
35
+ Accept: 'application/json',
36
+ };
37
+ if (body !== undefined) {
38
+ headers['Content-Type'] = 'application/json';
39
+ }
40
+ let response;
41
+ try {
42
+ response = await fetch(url, {
43
+ method,
44
+ headers,
45
+ ...(body !== undefined ? { body: JSON.stringify(body) } : {}),
46
+ signal: controller.signal,
47
+ });
48
+ }
49
+ catch (err) {
50
+ const isTimeout = err instanceof Error && err.name === 'AbortError';
51
+ throw new GrantexNetworkError(isTimeout
52
+ ? `Request timed out after ${this.#timeout}ms`
53
+ : `Network error: ${err instanceof Error ? err.message : String(err)}`, err);
54
+ }
55
+ finally {
56
+ clearTimeout(timerId);
57
+ }
58
+ const requestId = response.headers.get('x-request-id') ?? undefined;
59
+ if (!response.ok) {
60
+ let responseBody;
61
+ try {
62
+ responseBody = await response.json();
63
+ }
64
+ catch {
65
+ responseBody = await response.text().catch(() => null);
66
+ }
67
+ const message = extractErrorMessage(responseBody, response.status);
68
+ if (response.status === 401 || response.status === 403) {
69
+ throw new GrantexAuthError(message, response.status, responseBody, requestId);
70
+ }
71
+ throw new GrantexApiError(message, response.status, responseBody, requestId);
72
+ }
73
+ if (response.status === 204) {
74
+ return undefined;
75
+ }
76
+ return response.json();
77
+ }
78
+ }
79
+ function extractErrorMessage(body, status) {
80
+ if (body !== null &&
81
+ typeof body === 'object' &&
82
+ 'message' in body &&
83
+ typeof body['message'] === 'string') {
84
+ return body['message'];
85
+ }
86
+ if (body !== null &&
87
+ typeof body === 'object' &&
88
+ 'error' in body &&
89
+ typeof body['error'] === 'string') {
90
+ return body['error'];
91
+ }
92
+ return `HTTP ${status}`;
93
+ }
94
+ //# sourceMappingURL=http.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export { Grantex } from './client.js';
2
+ export { verifyGrantToken } from './verify.js';
3
+ export { verifyWebhookSignature } from './webhook.js';
4
+ export { GrantexError, GrantexApiError, GrantexAuthError, GrantexTokenError, GrantexNetworkError, } from './errors.js';
5
+ export type { GrantexClientOptions, Agent, RegisterAgentParams, UpdateAgentParams, ListAgentsResponse, AuthorizeParams, AuthorizationRequest, Grant, ListGrantsParams, ListGrantsResponse, VerifiedGrant, DelegateParams, VerifyTokenResponse, LogAuditParams, AuditEntry, ListAuditParams, ListAuditResponse, VerifyGrantTokenOptions, WebhookEventType, CreateWebhookParams, WebhookEndpoint, WebhookEndpointWithSecret, ListWebhooksResponse, SubscriptionStatus, CreateCheckoutParams, CheckoutResponse, CreatePortalParams, PortalResponse, Policy, CreatePolicyParams, UpdatePolicyParams, ListPoliciesResponse, AnomalyType, AnomalySeverity, Anomaly, DetectAnomaliesResponse, ListAnomaliesResponse, ScimEmail, ScimUserMeta, ScimUser, ScimListResponse, CreateScimUserParams, UpdateScimUserParams, ScimToken, ScimTokenWithSecret, CreateScimTokenParams, ListScimTokensResponse, SsoConfig, CreateSsoConfigParams, SsoLoginResponse, SsoCallbackResponse, ComplianceSummary, ComplianceExportGrantsParams, ComplianceExportAuditParams, ComplianceGrantsExport, ComplianceAuditExport, EvidencePackParams, EvidencePack, ChainIntegrity, } from './types.js';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAGtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAG/C,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAGtD,OAAO,EACL,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,aAAa,CAAC;AAGrB,YAAY,EACV,oBAAoB,EAEpB,KAAK,EACL,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAElB,eAAe,EACf,oBAAoB,EAEpB,KAAK,EACL,gBAAgB,EAChB,kBAAkB,EAClB,aAAa,EACb,cAAc,EAEd,mBAAmB,EAEnB,cAAc,EACd,UAAU,EACV,eAAe,EACf,iBAAiB,EAEjB,uBAAuB,EAEvB,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,yBAAyB,EACzB,oBAAoB,EAEpB,kBAAkB,EAClB,oBAAoB,EACpB,gBAAgB,EAChB,kBAAkB,EAClB,cAAc,EAEd,MAAM,EACN,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EAEpB,WAAW,EACX,eAAe,EACf,OAAO,EACP,uBAAuB,EACvB,qBAAqB,EAErB,SAAS,EACT,YAAY,EACZ,QAAQ,EACR,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,EACpB,SAAS,EACT,mBAAmB,EACnB,qBAAqB,EACrB,sBAAsB,EAEtB,SAAS,EACT,qBAAqB,EACrB,gBAAgB,EAChB,mBAAmB,EAEnB,iBAAiB,EACjB,4BAA4B,EAC5B,2BAA2B,EAC3B,sBAAsB,EACtB,qBAAqB,EACrB,kBAAkB,EAClB,YAAY,EACZ,cAAc,GACf,MAAM,YAAY,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,9 @@
1
+ // Main client
2
+ export { Grantex } from './client.js';
3
+ // Standalone token verification (no Grantex account needed)
4
+ export { verifyGrantToken } from './verify.js';
5
+ // Webhook signature verification
6
+ export { verifyWebhookSignature } from './webhook.js';
7
+ // Error classes
8
+ export { GrantexError, GrantexApiError, GrantexAuthError, GrantexTokenError, GrantexNetworkError, } from './errors.js';
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc;AACd,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEtC,4DAA4D;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C,iCAAiC;AACjC,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAEtD,gBAAgB;AAChB,OAAO,EACL,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,aAAa,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { HttpClient } from '../http.js';
2
+ import type { Agent, ListAgentsResponse, RegisterAgentParams, UpdateAgentParams } from '../types.js';
3
+ export declare class AgentsClient {
4
+ #private;
5
+ constructor(http: HttpClient);
6
+ register(params: RegisterAgentParams): Promise<Agent>;
7
+ get(agentId: string): Promise<Agent>;
8
+ list(): Promise<ListAgentsResponse>;
9
+ update(agentId: string, params: UpdateAgentParams): Promise<Agent>;
10
+ delete(agentId: string): Promise<void>;
11
+ }
12
+ //# sourceMappingURL=agents.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../src/resources/agents.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EACV,KAAK,EACL,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EAClB,MAAM,aAAa,CAAC;AAErB,qBAAa,YAAY;;gBAGX,IAAI,EAAE,UAAU;IAI5B,QAAQ,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,KAAK,CAAC;IAIrD,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAIpC,IAAI,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAInC,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,KAAK,CAAC;IAIlE,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAGvC"}
@@ -0,0 +1,22 @@
1
+ export class AgentsClient {
2
+ #http;
3
+ constructor(http) {
4
+ this.#http = http;
5
+ }
6
+ register(params) {
7
+ return this.#http.post('/v1/agents', params);
8
+ }
9
+ get(agentId) {
10
+ return this.#http.get(`/v1/agents/${agentId}`);
11
+ }
12
+ list() {
13
+ return this.#http.get('/v1/agents');
14
+ }
15
+ update(agentId, params) {
16
+ return this.#http.post(`/v1/agents/${agentId}`, params);
17
+ }
18
+ delete(agentId) {
19
+ return this.#http.delete(`/v1/agents/${agentId}`);
20
+ }
21
+ }
22
+ //# sourceMappingURL=agents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agents.js","sourceRoot":"","sources":["../../src/resources/agents.ts"],"names":[],"mappings":"AAQA,MAAM,OAAO,YAAY;IACd,KAAK,CAAa;IAE3B,YAAY,IAAgB;QAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAED,QAAQ,CAAC,MAA2B;QAClC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAQ,YAAY,EAAE,MAAM,CAAC,CAAC;IACtD,CAAC;IAED,GAAG,CAAC,OAAe;QACjB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAQ,cAAc,OAAO,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,IAAI;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAqB,YAAY,CAAC,CAAC;IAC1D,CAAC;IAED,MAAM,CAAC,OAAe,EAAE,MAAyB;QAC/C,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAQ,cAAc,OAAO,EAAE,EAAE,MAAM,CAAC,CAAC;IACjE,CAAC;IAED,MAAM,CAAC,OAAe;QACpB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAO,cAAc,OAAO,EAAE,CAAC,CAAC;IAC1D,CAAC;CACF"}
@@ -0,0 +1,15 @@
1
+ import type { HttpClient } from '../http.js';
2
+ import type { Anomaly, DetectAnomaliesResponse, ListAnomaliesResponse } from '../types.js';
3
+ export declare class AnomaliesClient {
4
+ #private;
5
+ constructor(http: HttpClient);
6
+ /** Run anomaly detection across all agents and return detected anomalies. */
7
+ detect(): Promise<DetectAnomaliesResponse>;
8
+ /** List stored anomalies. Pass `{ unacknowledged: true }` to filter to open ones only. */
9
+ list(params?: {
10
+ unacknowledged?: boolean;
11
+ }): Promise<ListAnomaliesResponse>;
12
+ /** Acknowledge an anomaly by ID. */
13
+ acknowledge(anomalyId: string): Promise<Anomaly>;
14
+ }
15
+ //# sourceMappingURL=anomalies.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"anomalies.d.ts","sourceRoot":"","sources":["../../src/resources/anomalies.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EACV,OAAO,EACP,uBAAuB,EACvB,qBAAqB,EACtB,MAAM,aAAa,CAAC;AAErB,qBAAa,eAAe;;gBAGd,IAAI,EAAE,UAAU;IAI5B,6EAA6E;IAC7E,MAAM,IAAI,OAAO,CAAC,uBAAuB,CAAC;IAI1C,0FAA0F;IAC1F,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,cAAc,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAK3E,oCAAoC;IACpC,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAGjD"}
@@ -0,0 +1,20 @@
1
+ export class AnomaliesClient {
2
+ #http;
3
+ constructor(http) {
4
+ this.#http = http;
5
+ }
6
+ /** Run anomaly detection across all agents and return detected anomalies. */
7
+ detect() {
8
+ return this.#http.post('/v1/anomalies/detect', {});
9
+ }
10
+ /** List stored anomalies. Pass `{ unacknowledged: true }` to filter to open ones only. */
11
+ list(params) {
12
+ const qs = params?.unacknowledged ? '?unacknowledged=true' : '';
13
+ return this.#http.get(`/v1/anomalies${qs}`);
14
+ }
15
+ /** Acknowledge an anomaly by ID. */
16
+ acknowledge(anomalyId) {
17
+ return this.#http.patch(`/v1/anomalies/${anomalyId}/acknowledge`, {});
18
+ }
19
+ }
20
+ //# sourceMappingURL=anomalies.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"anomalies.js","sourceRoot":"","sources":["../../src/resources/anomalies.ts"],"names":[],"mappings":"AAOA,MAAM,OAAO,eAAe;IACjB,KAAK,CAAa;IAE3B,YAAY,IAAgB;QAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAED,6EAA6E;IAC7E,MAAM;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAA0B,sBAAsB,EAAE,EAAE,CAAC,CAAC;IAC9E,CAAC;IAED,0FAA0F;IAC1F,IAAI,CAAC,MAAqC;QACxC,MAAM,EAAE,GAAG,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE,CAAC;QAChE,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAwB,gBAAgB,EAAE,EAAE,CAAC,CAAC;IACrE,CAAC;IAED,oCAAoC;IACpC,WAAW,CAAC,SAAiB;QAC3B,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAU,iBAAiB,SAAS,cAAc,EAAE,EAAE,CAAC,CAAC;IACjF,CAAC;CACF"}
@@ -0,0 +1,10 @@
1
+ import type { HttpClient } from '../http.js';
2
+ import type { AuditEntry, ListAuditParams, ListAuditResponse, LogAuditParams } from '../types.js';
3
+ export declare class AuditClient {
4
+ #private;
5
+ constructor(http: HttpClient);
6
+ log(params: LogAuditParams): Promise<AuditEntry>;
7
+ list(params?: ListAuditParams): Promise<ListAuditResponse>;
8
+ get(entryId: string): Promise<AuditEntry>;
9
+ }
10
+ //# sourceMappingURL=audit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../../src/resources/audit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EACV,UAAU,EACV,eAAe,EACf,iBAAiB,EACjB,cAAc,EACf,MAAM,aAAa,CAAC;AAErB,qBAAa,WAAW;;gBAGV,IAAI,EAAE,UAAU;IAI5B,GAAG,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC;IAIhD,IAAI,CAAC,MAAM,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAM1D,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;CAG1C"}
@@ -0,0 +1,28 @@
1
+ export class AuditClient {
2
+ #http;
3
+ constructor(http) {
4
+ this.#http = http;
5
+ }
6
+ log(params) {
7
+ return this.#http.post('/v1/audit/log', params);
8
+ }
9
+ list(params) {
10
+ const query = buildQuery(params);
11
+ const path = query ? `/v1/audit/entries?${query}` : '/v1/audit/entries';
12
+ return this.#http.get(path);
13
+ }
14
+ get(entryId) {
15
+ return this.#http.get(`/v1/audit/${entryId}`);
16
+ }
17
+ }
18
+ function buildQuery(params) {
19
+ if (!params)
20
+ return '';
21
+ const entries = Object.entries(params).filter(([, v]) => v !== undefined && v !== null);
22
+ if (entries.length === 0)
23
+ return '';
24
+ return entries
25
+ .map(([k, v]) => `${encodeURIComponent(k)}=${encodeURIComponent(String(v))}`)
26
+ .join('&');
27
+ }
28
+ //# sourceMappingURL=audit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit.js","sourceRoot":"","sources":["../../src/resources/audit.ts"],"names":[],"mappings":"AAQA,MAAM,OAAO,WAAW;IACb,KAAK,CAAa;IAE3B,YAAY,IAAgB;QAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAED,GAAG,CAAC,MAAsB;QACxB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAa,eAAe,EAAE,MAAM,CAAC,CAAC;IAC9D,CAAC;IAED,IAAI,CAAC,MAAwB;QAC3B,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;QACjC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,qBAAqB,KAAK,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC;QACxE,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAoB,IAAI,CAAC,CAAC;IACjD,CAAC;IAED,GAAG,CAAC,OAAe;QACjB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAa,aAAa,OAAO,EAAE,CAAC,CAAC;IAC5D,CAAC;CACF;AAED,SAAS,UAAU,CAAC,MAAwB;IAC1C,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IACvB,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAC3C,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,CACL,CAAC;IACtC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACpC,OAAO,OAAO;SACX,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAAC,IAAI,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5E,IAAI,CAAC,GAAG,CAAC,CAAC;AACf,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { HttpClient } from '../http.js';
2
+ import type { CheckoutResponse, CreateCheckoutParams, CreatePortalParams, PortalResponse, SubscriptionStatus } from '../types.js';
3
+ export declare class BillingClient {
4
+ #private;
5
+ constructor(http: HttpClient);
6
+ /** Get the current subscription status for the authenticated developer. */
7
+ getSubscription(): Promise<SubscriptionStatus>;
8
+ /** Create a Stripe Checkout session and return the redirect URL. */
9
+ createCheckout(params: CreateCheckoutParams): Promise<CheckoutResponse>;
10
+ /** Create a Stripe Billing Portal session and return the redirect URL. */
11
+ createPortal(params: CreatePortalParams): Promise<PortalResponse>;
12
+ }
13
+ //# sourceMappingURL=billing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"billing.d.ts","sourceRoot":"","sources":["../../src/resources/billing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EACV,gBAAgB,EAChB,oBAAoB,EACpB,kBAAkB,EAClB,cAAc,EACd,kBAAkB,EACnB,MAAM,aAAa,CAAC;AAErB,qBAAa,aAAa;;gBAGZ,IAAI,EAAE,UAAU;IAI5B,2EAA2E;IAC3E,eAAe,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAI9C,oEAAoE;IACpE,cAAc,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAIvE,0EAA0E;IAC1E,YAAY,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,cAAc,CAAC;CAGlE"}
@@ -0,0 +1,19 @@
1
+ export class BillingClient {
2
+ #http;
3
+ constructor(http) {
4
+ this.#http = http;
5
+ }
6
+ /** Get the current subscription status for the authenticated developer. */
7
+ getSubscription() {
8
+ return this.#http.get('/v1/billing/subscription');
9
+ }
10
+ /** Create a Stripe Checkout session and return the redirect URL. */
11
+ createCheckout(params) {
12
+ return this.#http.post('/v1/billing/checkout', params);
13
+ }
14
+ /** Create a Stripe Billing Portal session and return the redirect URL. */
15
+ createPortal(params) {
16
+ return this.#http.post('/v1/billing/portal', params);
17
+ }
18
+ }
19
+ //# sourceMappingURL=billing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"billing.js","sourceRoot":"","sources":["../../src/resources/billing.ts"],"names":[],"mappings":"AASA,MAAM,OAAO,aAAa;IACf,KAAK,CAAa;IAE3B,YAAY,IAAgB;QAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAED,2EAA2E;IAC3E,eAAe;QACb,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAqB,0BAA0B,CAAC,CAAC;IACxE,CAAC;IAED,oEAAoE;IACpE,cAAc,CAAC,MAA4B;QACzC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAmB,sBAAsB,EAAE,MAAM,CAAC,CAAC;IAC3E,CAAC;IAED,0EAA0E;IAC1E,YAAY,CAAC,MAA0B;QACrC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAiB,oBAAoB,EAAE,MAAM,CAAC,CAAC;IACvE,CAAC;CACF"}
@@ -0,0 +1,18 @@
1
+ import type { HttpClient } from '../http.js';
2
+ import type { ComplianceAuditExport, ComplianceExportAuditParams, ComplianceExportGrantsParams, ComplianceGrantsExport, ComplianceSummary, EvidencePack, EvidencePackParams } from '../types.js';
3
+ export declare class ComplianceClient {
4
+ #private;
5
+ constructor(http: HttpClient);
6
+ /** Get an org-wide compliance summary (agents, grants, audit, policies, plan). */
7
+ getSummary(params?: {
8
+ since?: string;
9
+ until?: string;
10
+ }): Promise<ComplianceSummary>;
11
+ /** Export all grants (optionally filtered). */
12
+ exportGrants(params?: ComplianceExportGrantsParams): Promise<ComplianceGrantsExport>;
13
+ /** Export all audit entries (optionally filtered). */
14
+ exportAudit(params?: ComplianceExportAuditParams): Promise<ComplianceAuditExport>;
15
+ /** Generate a full SOC2/GDPR evidence pack with chain integrity verification. */
16
+ evidencePack(params?: EvidencePackParams): Promise<EvidencePack>;
17
+ }
18
+ //# sourceMappingURL=compliance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compliance.d.ts","sourceRoot":"","sources":["../../src/resources/compliance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EACV,qBAAqB,EACrB,2BAA2B,EAC3B,4BAA4B,EAC5B,sBAAsB,EACtB,iBAAiB,EACjB,YAAY,EACZ,kBAAkB,EACnB,MAAM,aAAa,CAAC;AAErB,qBAAa,gBAAgB;;gBAGf,IAAI,EAAE,UAAU;IAI5B,kFAAkF;IAClF,UAAU,CAAC,MAAM,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAMnF,+CAA+C;IAC/C,YAAY,CAAC,MAAM,CAAC,EAAE,4BAA4B,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAQpF,sDAAsD;IACtD,WAAW,CAAC,MAAM,CAAC,EAAE,2BAA2B,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAQjF,iFAAiF;IACjF,YAAY,CAAC,MAAM,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,YAAY,CAAC;CAOjE"}
@@ -0,0 +1,47 @@
1
+ export class ComplianceClient {
2
+ #http;
3
+ constructor(http) {
4
+ this.#http = http;
5
+ }
6
+ /** Get an org-wide compliance summary (agents, grants, audit, policies, plan). */
7
+ getSummary(params) {
8
+ const query = buildQuery(params);
9
+ const path = query ? `/v1/compliance/summary?${query}` : '/v1/compliance/summary';
10
+ return this.#http.get(path);
11
+ }
12
+ /** Export all grants (optionally filtered). */
13
+ exportGrants(params) {
14
+ const query = buildQuery(params);
15
+ const path = query
16
+ ? `/v1/compliance/export/grants?${query}`
17
+ : '/v1/compliance/export/grants';
18
+ return this.#http.get(path);
19
+ }
20
+ /** Export all audit entries (optionally filtered). */
21
+ exportAudit(params) {
22
+ const query = buildQuery(params);
23
+ const path = query
24
+ ? `/v1/compliance/export/audit?${query}`
25
+ : '/v1/compliance/export/audit';
26
+ return this.#http.get(path);
27
+ }
28
+ /** Generate a full SOC2/GDPR evidence pack with chain integrity verification. */
29
+ evidencePack(params) {
30
+ const query = buildQuery(params);
31
+ const path = query
32
+ ? `/v1/compliance/evidence-pack?${query}`
33
+ : '/v1/compliance/evidence-pack';
34
+ return this.#http.get(path);
35
+ }
36
+ }
37
+ function buildQuery(params) {
38
+ if (!params)
39
+ return '';
40
+ const entries = Object.entries(params).filter(([, v]) => v !== undefined && v !== null);
41
+ if (entries.length === 0)
42
+ return '';
43
+ return entries
44
+ .map(([k, v]) => `${encodeURIComponent(k)}=${encodeURIComponent(String(v))}`)
45
+ .join('&');
46
+ }
47
+ //# sourceMappingURL=compliance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compliance.js","sourceRoot":"","sources":["../../src/resources/compliance.ts"],"names":[],"mappings":"AAWA,MAAM,OAAO,gBAAgB;IAClB,KAAK,CAAa;IAE3B,YAAY,IAAgB;QAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAED,kFAAkF;IAClF,UAAU,CAAC,MAA2C;QACpD,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;QACjC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,0BAA0B,KAAK,EAAE,CAAC,CAAC,CAAC,wBAAwB,CAAC;QAClF,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAoB,IAAI,CAAC,CAAC;IACjD,CAAC;IAED,+CAA+C;IAC/C,YAAY,CAAC,MAAqC;QAChD,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;QACjC,MAAM,IAAI,GAAG,KAAK;YAChB,CAAC,CAAC,gCAAgC,KAAK,EAAE;YACzC,CAAC,CAAC,8BAA8B,CAAC;QACnC,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAyB,IAAI,CAAC,CAAC;IACtD,CAAC;IAED,sDAAsD;IACtD,WAAW,CAAC,MAAoC;QAC9C,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;QACjC,MAAM,IAAI,GAAG,KAAK;YAChB,CAAC,CAAC,+BAA+B,KAAK,EAAE;YACxC,CAAC,CAAC,6BAA6B,CAAC;QAClC,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAwB,IAAI,CAAC,CAAC;IACrD,CAAC;IAED,iFAAiF;IACjF,YAAY,CAAC,MAA2B;QACtC,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;QACjC,MAAM,IAAI,GAAG,KAAK;YAChB,CAAC,CAAC,gCAAgC,KAAK,EAAE;YACzC,CAAC,CAAC,8BAA8B,CAAC;QACnC,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAe,IAAI,CAAC,CAAC;IAC5C,CAAC;CACF;AAED,SAAS,UAAU,CAAC,MAAe;IACjC,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IACvB,MAAM,OAAO,GAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAA8B,CAAC,MAAM,CACzE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,CACd,CAAC;IAC7B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACpC,OAAO,OAAO;SACX,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAAC,IAAI,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5E,IAAI,CAAC,GAAG,CAAC,CAAC;AACf,CAAC"}
@@ -0,0 +1,25 @@
1
+ import type { HttpClient } from '../http.js';
2
+ import type { Grant, ListGrantsParams, ListGrantsResponse, VerifiedGrant, DelegateParams } from '../types.js';
3
+ export declare class GrantsClient {
4
+ #private;
5
+ constructor(http: HttpClient);
6
+ get(grantId: string): Promise<Grant>;
7
+ list(params?: ListGrantsParams): Promise<ListGrantsResponse>;
8
+ revoke(grantId: string): Promise<void>;
9
+ /**
10
+ * Create a delegated sub-agent grant (SPEC §9).
11
+ */
12
+ delegate(params: DelegateParams): Promise<{
13
+ grantToken: string;
14
+ expiresAt: string;
15
+ scopes: string[];
16
+ grantId: string;
17
+ }>;
18
+ /**
19
+ * Verify a grant token via the API (online verification).
20
+ * Returns a clean VerifiedGrant shape by decoding the raw token returned
21
+ * from the server to fill fields the summary response may omit.
22
+ */
23
+ verify(token: string): Promise<VerifiedGrant>;
24
+ }
25
+ //# sourceMappingURL=grants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grants.d.ts","sourceRoot":"","sources":["../../src/resources/grants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,OAAO,KAAK,EACV,KAAK,EACL,gBAAgB,EAChB,kBAAkB,EAClB,aAAa,EACb,cAAc,EACf,MAAM,aAAa,CAAC;AAErB,qBAAa,YAAY;;gBAGX,IAAI,EAAE,UAAU;IAI5B,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAIpC,IAAI,CAAC,MAAM,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAM5D,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAItC;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAIvH;;;;OAIG;IACG,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;CASpD"}