@fulcrum-governance/sdk 0.1.1 → 0.1.3
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/CHANGELOG.md +42 -1
- package/README.md +299 -6
- package/dist/__tests__/clients.test.d.ts +1 -0
- package/dist/__tests__/clients.test.js +847 -0
- package/dist/clients/agent.d.ts +70 -0
- package/dist/clients/agent.js +127 -0
- package/dist/clients/approval.d.ts +67 -0
- package/dist/clients/approval.js +103 -0
- package/dist/clients/budget.d.ts +221 -0
- package/dist/clients/budget.js +181 -0
- package/dist/clients/checkpoint.d.ts +191 -0
- package/dist/clients/checkpoint.js +195 -0
- package/dist/clients/envelope.d.ts +73 -0
- package/dist/clients/envelope.js +95 -0
- package/dist/clients/eventstore.d.ts +87 -0
- package/dist/clients/eventstore.js +113 -0
- package/dist/clients/index.d.ts +15 -0
- package/dist/clients/index.js +35 -0
- package/dist/clients/metrics.d.ts +126 -0
- package/dist/clients/metrics.js +162 -0
- package/dist/clients/policy.d.ts +83 -0
- package/dist/clients/policy.js +102 -0
- package/dist/clients/tenant.d.ts +66 -0
- package/dist/clients/tenant.js +92 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +25 -3
- package/dist/instrumentation/__tests__/autoGovern.test.d.ts +6 -0
- package/dist/instrumentation/__tests__/autoGovern.test.js +416 -0
- package/dist/instrumentation/__tests__/evaluator.test.d.ts +6 -0
- package/dist/instrumentation/__tests__/evaluator.test.js +712 -0
- package/dist/instrumentation/autoGovern.d.ts +57 -0
- package/dist/instrumentation/autoGovern.js +319 -0
- package/dist/instrumentation/evaluator.d.ts +50 -0
- package/dist/instrumentation/evaluator.js +218 -0
- package/dist/instrumentation/index.d.ts +28 -0
- package/dist/instrumentation/index.js +34 -0
- package/dist/instrumentation/types.d.ts +105 -0
- package/dist/instrumentation/types.js +20 -0
- package/package.json +4 -4
- package/proto/fulcrum/agent/v1/agent_service.proto +170 -0
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PolicyClient - REST-based client for policy CRUD operations
|
|
3
|
+
*
|
|
4
|
+
* Works with the Fulcrum Dashboard REST API for managing policies.
|
|
5
|
+
* For high-performance policy evaluation, use FulcrumClient.evaluatePolicy() instead.
|
|
6
|
+
*/
|
|
7
|
+
export interface Policy {
|
|
8
|
+
id: string;
|
|
9
|
+
name: string;
|
|
10
|
+
policy_type: string;
|
|
11
|
+
rules: Record<string, unknown>;
|
|
12
|
+
enabled: boolean;
|
|
13
|
+
priority: number;
|
|
14
|
+
status: string;
|
|
15
|
+
created_at: string;
|
|
16
|
+
updated_at: string;
|
|
17
|
+
violation_count?: number;
|
|
18
|
+
total_evaluations?: number;
|
|
19
|
+
}
|
|
20
|
+
export interface PolicyFilter {
|
|
21
|
+
status?: 'ACTIVE' | 'INACTIVE' | 'DRAFT';
|
|
22
|
+
policy_type?: string;
|
|
23
|
+
enabled?: boolean;
|
|
24
|
+
}
|
|
25
|
+
export interface CreatePolicyRequest {
|
|
26
|
+
name: string;
|
|
27
|
+
policy_type: string;
|
|
28
|
+
rules: Record<string, unknown>;
|
|
29
|
+
enabled?: boolean;
|
|
30
|
+
priority?: number;
|
|
31
|
+
status?: 'ACTIVE' | 'INACTIVE' | 'DRAFT';
|
|
32
|
+
}
|
|
33
|
+
export interface UpdatePolicyRequest {
|
|
34
|
+
name?: string;
|
|
35
|
+
rules?: Record<string, unknown>;
|
|
36
|
+
enabled?: boolean;
|
|
37
|
+
priority?: number;
|
|
38
|
+
status?: 'ACTIVE' | 'INACTIVE' | 'DRAFT';
|
|
39
|
+
}
|
|
40
|
+
export interface PolicyClientOptions {
|
|
41
|
+
baseUrl: string;
|
|
42
|
+
apiKey?: string;
|
|
43
|
+
timeoutMs?: number;
|
|
44
|
+
}
|
|
45
|
+
export declare class PolicyClient {
|
|
46
|
+
private baseUrl;
|
|
47
|
+
private apiKey?;
|
|
48
|
+
private timeoutMs;
|
|
49
|
+
constructor(options: PolicyClientOptions);
|
|
50
|
+
private request;
|
|
51
|
+
/**
|
|
52
|
+
* List all policies, optionally filtered
|
|
53
|
+
*/
|
|
54
|
+
list(filter?: PolicyFilter): Promise<Policy[]>;
|
|
55
|
+
/**
|
|
56
|
+
* Get a single policy by ID
|
|
57
|
+
*/
|
|
58
|
+
get(id: string): Promise<Policy>;
|
|
59
|
+
/**
|
|
60
|
+
* Create a new policy
|
|
61
|
+
*/
|
|
62
|
+
create(policy: CreatePolicyRequest): Promise<Policy>;
|
|
63
|
+
/**
|
|
64
|
+
* Update an existing policy
|
|
65
|
+
*/
|
|
66
|
+
update(id: string, updates: UpdatePolicyRequest): Promise<Policy>;
|
|
67
|
+
/**
|
|
68
|
+
* Delete a policy
|
|
69
|
+
*/
|
|
70
|
+
delete(id: string): Promise<void>;
|
|
71
|
+
/**
|
|
72
|
+
* Toggle policy enabled state
|
|
73
|
+
*/
|
|
74
|
+
setEnabled(id: string, enabled: boolean): Promise<Policy>;
|
|
75
|
+
/**
|
|
76
|
+
* Update policy status
|
|
77
|
+
*/
|
|
78
|
+
setStatus(id: string, status: 'ACTIVE' | 'INACTIVE' | 'DRAFT'): Promise<Policy>;
|
|
79
|
+
}
|
|
80
|
+
export declare class PolicyClientError extends Error {
|
|
81
|
+
statusCode: number;
|
|
82
|
+
constructor(message: string, statusCode: number);
|
|
83
|
+
}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* PolicyClient - REST-based client for policy CRUD operations
|
|
4
|
+
*
|
|
5
|
+
* Works with the Fulcrum Dashboard REST API for managing policies.
|
|
6
|
+
* For high-performance policy evaluation, use FulcrumClient.evaluatePolicy() instead.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.PolicyClientError = exports.PolicyClient = void 0;
|
|
10
|
+
class PolicyClient {
|
|
11
|
+
constructor(options) {
|
|
12
|
+
this.baseUrl = options.baseUrl.replace(/\/$/, '');
|
|
13
|
+
this.apiKey = options.apiKey;
|
|
14
|
+
this.timeoutMs = options.timeoutMs || 5000;
|
|
15
|
+
}
|
|
16
|
+
async request(method, path, body) {
|
|
17
|
+
const controller = new AbortController();
|
|
18
|
+
const timeout = setTimeout(() => controller.abort(), this.timeoutMs);
|
|
19
|
+
try {
|
|
20
|
+
const headers = {
|
|
21
|
+
'Content-Type': 'application/json',
|
|
22
|
+
};
|
|
23
|
+
if (this.apiKey) {
|
|
24
|
+
headers['Authorization'] = `Bearer ${this.apiKey}`;
|
|
25
|
+
}
|
|
26
|
+
const response = await fetch(`${this.baseUrl}${path}`, {
|
|
27
|
+
method,
|
|
28
|
+
headers,
|
|
29
|
+
body: body ? JSON.stringify(body) : undefined,
|
|
30
|
+
signal: controller.signal,
|
|
31
|
+
});
|
|
32
|
+
if (!response.ok) {
|
|
33
|
+
const errorData = (await response.json().catch(() => ({})));
|
|
34
|
+
throw new PolicyClientError(errorData.error || `Request failed with status ${response.status}`, response.status);
|
|
35
|
+
}
|
|
36
|
+
return (await response.json());
|
|
37
|
+
}
|
|
38
|
+
finally {
|
|
39
|
+
clearTimeout(timeout);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* List all policies, optionally filtered
|
|
44
|
+
*/
|
|
45
|
+
async list(filter) {
|
|
46
|
+
const params = new URLSearchParams();
|
|
47
|
+
if (filter?.status)
|
|
48
|
+
params.append('status', filter.status);
|
|
49
|
+
if (filter?.policy_type)
|
|
50
|
+
params.append('policy_type', filter.policy_type);
|
|
51
|
+
if (filter?.enabled !== undefined)
|
|
52
|
+
params.append('enabled', String(filter.enabled));
|
|
53
|
+
const query = params.toString();
|
|
54
|
+
const path = query ? `/api/policies?${query}` : '/api/policies';
|
|
55
|
+
return this.request('GET', path);
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Get a single policy by ID
|
|
59
|
+
*/
|
|
60
|
+
async get(id) {
|
|
61
|
+
return this.request('GET', `/api/policies/${id}`);
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Create a new policy
|
|
65
|
+
*/
|
|
66
|
+
async create(policy) {
|
|
67
|
+
return this.request('POST', '/api/policies', policy);
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Update an existing policy
|
|
71
|
+
*/
|
|
72
|
+
async update(id, updates) {
|
|
73
|
+
return this.request('PATCH', `/api/policies/${id}`, updates);
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Delete a policy
|
|
77
|
+
*/
|
|
78
|
+
async delete(id) {
|
|
79
|
+
await this.request('DELETE', `/api/policies/${id}`);
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Toggle policy enabled state
|
|
83
|
+
*/
|
|
84
|
+
async setEnabled(id, enabled) {
|
|
85
|
+
return this.update(id, { enabled });
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Update policy status
|
|
89
|
+
*/
|
|
90
|
+
async setStatus(id, status) {
|
|
91
|
+
return this.update(id, { status });
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
exports.PolicyClient = PolicyClient;
|
|
95
|
+
class PolicyClientError extends Error {
|
|
96
|
+
constructor(message, statusCode) {
|
|
97
|
+
super(message);
|
|
98
|
+
this.statusCode = statusCode;
|
|
99
|
+
this.name = 'PolicyClientError';
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
exports.PolicyClientError = PolicyClientError;
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TenantClient - REST-based client for tenant and API key management
|
|
3
|
+
*
|
|
4
|
+
* Works with the Fulcrum API for managing tenants and API keys.
|
|
5
|
+
*/
|
|
6
|
+
export interface ApiKey {
|
|
7
|
+
id: string;
|
|
8
|
+
name: string;
|
|
9
|
+
key_hint: string;
|
|
10
|
+
scopes: string[];
|
|
11
|
+
expires_at?: string;
|
|
12
|
+
created_at: string;
|
|
13
|
+
last_used_at?: string;
|
|
14
|
+
}
|
|
15
|
+
export interface CreateApiKeyRequest {
|
|
16
|
+
name: string;
|
|
17
|
+
scopes: string[];
|
|
18
|
+
expires_in_seconds?: number;
|
|
19
|
+
}
|
|
20
|
+
export interface CreateApiKeyResponse {
|
|
21
|
+
key: ApiKey;
|
|
22
|
+
key_secret: string;
|
|
23
|
+
}
|
|
24
|
+
export interface ListApiKeysRequest {
|
|
25
|
+
page_size?: number;
|
|
26
|
+
page_token?: string;
|
|
27
|
+
}
|
|
28
|
+
export interface ListApiKeysResponse {
|
|
29
|
+
keys: ApiKey[];
|
|
30
|
+
next_page_token?: string;
|
|
31
|
+
}
|
|
32
|
+
export declare class TenantClientError extends Error {
|
|
33
|
+
statusCode?: number | undefined;
|
|
34
|
+
response?: unknown | undefined;
|
|
35
|
+
constructor(message: string, statusCode?: number | undefined, response?: unknown | undefined);
|
|
36
|
+
}
|
|
37
|
+
export interface TenantClientOptions {
|
|
38
|
+
baseUrl: string;
|
|
39
|
+
apiKey: string;
|
|
40
|
+
timeout?: number;
|
|
41
|
+
}
|
|
42
|
+
export declare class TenantClient {
|
|
43
|
+
private baseUrl;
|
|
44
|
+
private apiKey;
|
|
45
|
+
private timeout;
|
|
46
|
+
constructor(options: TenantClientOptions);
|
|
47
|
+
private request;
|
|
48
|
+
/**
|
|
49
|
+
* Create a new API key for the authenticated tenant.
|
|
50
|
+
*
|
|
51
|
+
* Note: The key_secret is only returned in this response. Store it securely.
|
|
52
|
+
*/
|
|
53
|
+
createApiKey(request: CreateApiKeyRequest): Promise<CreateApiKeyResponse>;
|
|
54
|
+
/**
|
|
55
|
+
* List all API keys for the authenticated tenant.
|
|
56
|
+
*/
|
|
57
|
+
listApiKeys(request?: ListApiKeysRequest): Promise<ListApiKeysResponse>;
|
|
58
|
+
/**
|
|
59
|
+
* Revoke (delete) an API key.
|
|
60
|
+
*/
|
|
61
|
+
revokeApiKey(keyId: string): Promise<void>;
|
|
62
|
+
/**
|
|
63
|
+
* Get details of a specific API key.
|
|
64
|
+
*/
|
|
65
|
+
getApiKey(keyId: string): Promise<ApiKey>;
|
|
66
|
+
}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* TenantClient - REST-based client for tenant and API key management
|
|
4
|
+
*
|
|
5
|
+
* Works with the Fulcrum API for managing tenants and API keys.
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.TenantClient = exports.TenantClientError = void 0;
|
|
9
|
+
class TenantClientError extends Error {
|
|
10
|
+
constructor(message, statusCode, response) {
|
|
11
|
+
super(message);
|
|
12
|
+
this.statusCode = statusCode;
|
|
13
|
+
this.response = response;
|
|
14
|
+
this.name = 'TenantClientError';
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
exports.TenantClientError = TenantClientError;
|
|
18
|
+
class TenantClient {
|
|
19
|
+
constructor(options) {
|
|
20
|
+
this.baseUrl = options.baseUrl.replace(/\/$/, '');
|
|
21
|
+
this.apiKey = options.apiKey;
|
|
22
|
+
this.timeout = options.timeout || 30000;
|
|
23
|
+
}
|
|
24
|
+
async request(method, path, body, params) {
|
|
25
|
+
const url = new URL(`${this.baseUrl}${path}`);
|
|
26
|
+
if (params) {
|
|
27
|
+
Object.entries(params).forEach(([key, value]) => {
|
|
28
|
+
if (value !== undefined && value !== null) {
|
|
29
|
+
url.searchParams.append(key, value);
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
const controller = new AbortController();
|
|
34
|
+
const timeoutId = setTimeout(() => controller.abort(), this.timeout);
|
|
35
|
+
try {
|
|
36
|
+
const response = await fetch(url.toString(), {
|
|
37
|
+
method,
|
|
38
|
+
headers: {
|
|
39
|
+
'Content-Type': 'application/json',
|
|
40
|
+
'X-API-Key': this.apiKey,
|
|
41
|
+
},
|
|
42
|
+
body: body ? JSON.stringify(body) : undefined,
|
|
43
|
+
signal: controller.signal,
|
|
44
|
+
});
|
|
45
|
+
if (!response.ok) {
|
|
46
|
+
const error = await response.json().catch(() => ({}));
|
|
47
|
+
throw new TenantClientError(error.message || `Request failed with status ${response.status}`, response.status, error);
|
|
48
|
+
}
|
|
49
|
+
// For DELETE requests, return empty object if no content
|
|
50
|
+
if (response.status === 204 || response.headers.get('content-length') === '0') {
|
|
51
|
+
return {};
|
|
52
|
+
}
|
|
53
|
+
return await response.json();
|
|
54
|
+
}
|
|
55
|
+
finally {
|
|
56
|
+
clearTimeout(timeoutId);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Create a new API key for the authenticated tenant.
|
|
61
|
+
*
|
|
62
|
+
* Note: The key_secret is only returned in this response. Store it securely.
|
|
63
|
+
*/
|
|
64
|
+
async createApiKey(request) {
|
|
65
|
+
return await this.request('POST', '/v1/tenant/api-keys', request);
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* List all API keys for the authenticated tenant.
|
|
69
|
+
*/
|
|
70
|
+
async listApiKeys(request = {}) {
|
|
71
|
+
const params = {};
|
|
72
|
+
if (request.page_size)
|
|
73
|
+
params.page_size = String(request.page_size);
|
|
74
|
+
if (request.page_token)
|
|
75
|
+
params.page_token = request.page_token;
|
|
76
|
+
return await this.request('GET', '/v1/tenant/api-keys', undefined, params);
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Revoke (delete) an API key.
|
|
80
|
+
*/
|
|
81
|
+
async revokeApiKey(keyId) {
|
|
82
|
+
await this.request('DELETE', `/v1/tenant/api-keys/${keyId}`);
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Get details of a specific API key.
|
|
86
|
+
*/
|
|
87
|
+
async getApiKey(keyId) {
|
|
88
|
+
const response = await this.request('GET', `/v1/tenant/api-keys/${keyId}`);
|
|
89
|
+
return response.key;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
exports.TenantClient = TenantClient;
|
package/dist/index.d.ts
CHANGED
|
@@ -47,3 +47,4 @@ export declare class Envelope {
|
|
|
47
47
|
log(eventType: string, payload?: Record<string, any>): void;
|
|
48
48
|
}
|
|
49
49
|
export default FulcrumClient;
|
|
50
|
+
export { PolicyClient, PolicyClientError, ApprovalClient, ApprovalClientError, BudgetClient, BudgetClientError, MetricsClient, MetricsClientError, CheckpointClient, CheckpointClientError, EventStoreClient, EventStoreClientError, EnvelopeClient, EnvelopeClientError, TenantClient, TenantClientError, type Policy, type PolicyFilter, type CreatePolicyRequest, type UpdatePolicyRequest, type PolicyClientOptions, type Approval, type ApprovalFilter, type ApprovalDecision, type ApprovalClientOptions, type Budget, type BudgetSummary, type BudgetsResponse, type BudgetFilter, type CreateBudgetRequest, type UpdateBudgetRequest, type BudgetClientOptions, type BudgetScope, type BudgetPeriod, type BudgetAction, type BudgetStatus, type PublicMetrics, type CognitiveLayerMetrics, type AuditLogEntry, type AuditLogsResponse, type AuditLogPagination, type AuditLogActor, type AuditLogFilter, type ResourceType, type MetricsClientOptions, type Checkpoint, type CheckpointMetadata, type StoredEvent, type EventStoreStats, type PublishEventRequest, type QueryEventsRequest, type EventStoreClientOptions, type EnvelopeData, type EnvelopeStatus, type CreateEnvelopeRequest, type UpdateEnvelopeStatusRequest, type EnvelopeClientOptions, type ApiKey, type CreateApiKeyRequest, type CreateApiKeyResponse, type TenantClientOptions, } from './clients';
|
package/dist/index.js
CHANGED
|
@@ -33,7 +33,7 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.Envelope = exports.FulcrumClient = void 0;
|
|
36
|
+
exports.TenantClientError = exports.TenantClient = exports.EnvelopeClientError = exports.EnvelopeClient = exports.EventStoreClientError = exports.EventStoreClient = exports.CheckpointClientError = exports.CheckpointClient = exports.MetricsClientError = exports.MetricsClient = exports.BudgetClientError = exports.BudgetClient = exports.ApprovalClientError = exports.ApprovalClient = exports.PolicyClientError = exports.PolicyClient = exports.Envelope = exports.FulcrumClient = void 0;
|
|
37
37
|
const grpc = __importStar(require("@grpc/grpc-js"));
|
|
38
38
|
const protoLoader = __importStar(require("@grpc/proto-loader"));
|
|
39
39
|
const uuid_1 = require("uuid");
|
|
@@ -173,10 +173,32 @@ class Envelope {
|
|
|
173
173
|
return result.allowed;
|
|
174
174
|
}
|
|
175
175
|
log(eventType, payload = {}) {
|
|
176
|
-
//
|
|
176
|
+
// Local event logging for development and debugging
|
|
177
|
+
// Events are logged to console for visibility during development
|
|
178
|
+
// Production deployments should configure external logging (Datadog, CloudWatch, etc.)
|
|
177
179
|
console.log(`[Fulcrum] ${this.envelopeId} | ${eventType}:`, payload);
|
|
178
|
-
//
|
|
180
|
+
// Note: Server-side event publishing happens automatically via gRPC envelope lifecycle.
|
|
181
|
+
// This client-side log() method is for application-level event tracking only.
|
|
182
|
+
// For persistent event storage, events should be published server-side via EventStoreClient.
|
|
179
183
|
}
|
|
180
184
|
}
|
|
181
185
|
exports.Envelope = Envelope;
|
|
182
186
|
exports.default = FulcrumClient;
|
|
187
|
+
// REST-based clients for dashboard API
|
|
188
|
+
var clients_1 = require("./clients");
|
|
189
|
+
Object.defineProperty(exports, "PolicyClient", { enumerable: true, get: function () { return clients_1.PolicyClient; } });
|
|
190
|
+
Object.defineProperty(exports, "PolicyClientError", { enumerable: true, get: function () { return clients_1.PolicyClientError; } });
|
|
191
|
+
Object.defineProperty(exports, "ApprovalClient", { enumerable: true, get: function () { return clients_1.ApprovalClient; } });
|
|
192
|
+
Object.defineProperty(exports, "ApprovalClientError", { enumerable: true, get: function () { return clients_1.ApprovalClientError; } });
|
|
193
|
+
Object.defineProperty(exports, "BudgetClient", { enumerable: true, get: function () { return clients_1.BudgetClient; } });
|
|
194
|
+
Object.defineProperty(exports, "BudgetClientError", { enumerable: true, get: function () { return clients_1.BudgetClientError; } });
|
|
195
|
+
Object.defineProperty(exports, "MetricsClient", { enumerable: true, get: function () { return clients_1.MetricsClient; } });
|
|
196
|
+
Object.defineProperty(exports, "MetricsClientError", { enumerable: true, get: function () { return clients_1.MetricsClientError; } });
|
|
197
|
+
Object.defineProperty(exports, "CheckpointClient", { enumerable: true, get: function () { return clients_1.CheckpointClient; } });
|
|
198
|
+
Object.defineProperty(exports, "CheckpointClientError", { enumerable: true, get: function () { return clients_1.CheckpointClientError; } });
|
|
199
|
+
Object.defineProperty(exports, "EventStoreClient", { enumerable: true, get: function () { return clients_1.EventStoreClient; } });
|
|
200
|
+
Object.defineProperty(exports, "EventStoreClientError", { enumerable: true, get: function () { return clients_1.EventStoreClientError; } });
|
|
201
|
+
Object.defineProperty(exports, "EnvelopeClient", { enumerable: true, get: function () { return clients_1.EnvelopeClient; } });
|
|
202
|
+
Object.defineProperty(exports, "EnvelopeClientError", { enumerable: true, get: function () { return clients_1.EnvelopeClientError; } });
|
|
203
|
+
Object.defineProperty(exports, "TenantClient", { enumerable: true, get: function () { return clients_1.TenantClient; } });
|
|
204
|
+
Object.defineProperty(exports, "TenantClientError", { enumerable: true, get: function () { return clients_1.TenantClientError; } });
|