@bemaestro/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 (47) hide show
  1. package/LICENSE +193 -0
  2. package/README.md +78 -0
  3. package/dist/generator/generate-sdk.d.ts +14 -0
  4. package/dist/generator/generate-sdk.d.ts.map +1 -0
  5. package/dist/generator/generate-sdk.js +64 -0
  6. package/dist/generator/generate-sdk.js.map +1 -0
  7. package/dist/index.d.ts +8 -0
  8. package/dist/index.d.ts.map +1 -0
  9. package/dist/index.js +6 -0
  10. package/dist/index.js.map +1 -0
  11. package/dist/openapi/build-openapi.d.ts +3 -0
  12. package/dist/openapi/build-openapi.d.ts.map +1 -0
  13. package/dist/openapi/build-openapi.js +386 -0
  14. package/dist/openapi/build-openapi.js.map +1 -0
  15. package/dist/openapi/schema-mapping.d.ts +9 -0
  16. package/dist/openapi/schema-mapping.d.ts.map +1 -0
  17. package/dist/openapi/schema-mapping.js +120 -0
  18. package/dist/openapi/schema-mapping.js.map +1 -0
  19. package/dist/openapi/types.d.ts +37 -0
  20. package/dist/openapi/types.d.ts.map +1 -0
  21. package/dist/openapi/types.js +2 -0
  22. package/dist/openapi/types.js.map +1 -0
  23. package/dist/runtime/client.d.ts +495 -0
  24. package/dist/runtime/client.d.ts.map +1 -0
  25. package/dist/runtime/client.js +46 -0
  26. package/dist/runtime/client.js.map +1 -0
  27. package/dist/runtime/http.d.ts +11 -0
  28. package/dist/runtime/http.d.ts.map +1 -0
  29. package/dist/runtime/http.js +120 -0
  30. package/dist/runtime/http.js.map +1 -0
  31. package/dist/runtime/index.d.ts +7 -0
  32. package/dist/runtime/index.d.ts.map +1 -0
  33. package/dist/runtime/index.js +6 -0
  34. package/dist/runtime/index.js.map +1 -0
  35. package/dist/runtime/modules.d.ts +623 -0
  36. package/dist/runtime/modules.d.ts.map +1 -0
  37. package/dist/runtime/modules.js +694 -0
  38. package/dist/runtime/modules.js.map +1 -0
  39. package/dist/runtime/types.d.ts +72 -0
  40. package/dist/runtime/types.d.ts.map +1 -0
  41. package/dist/runtime/types.js +11 -0
  42. package/dist/runtime/types.js.map +1 -0
  43. package/dist/runtime/webhook-verify.d.ts +31 -0
  44. package/dist/runtime/webhook-verify.d.ts.map +1 -0
  45. package/dist/runtime/webhook-verify.js +51 -0
  46. package/dist/runtime/webhook-verify.js.map +1 -0
  47. package/package.json +36 -0
@@ -0,0 +1,120 @@
1
+ import { MaestroHttpError, } from './types.js';
2
+ function isPlainObject(value) {
3
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
4
+ }
5
+ /** Serialize scalars flat and one-level objects as bracketed params, matching
6
+ * the API's `filter[field][op]=value` grammar (spec 03 query engine). */
7
+ function appendParam(params, key, value) {
8
+ if (value === undefined)
9
+ return;
10
+ if (isPlainObject(value)) {
11
+ for (const [subKey, subValue] of Object.entries(value)) {
12
+ if (subValue !== undefined)
13
+ params.set(`${key}[${subKey}]`, String(subValue));
14
+ }
15
+ return;
16
+ }
17
+ params.set(key, String(value));
18
+ }
19
+ function buildQuery(query) {
20
+ if (!query)
21
+ return '';
22
+ const params = new URLSearchParams();
23
+ for (const [key, value] of Object.entries(query)) {
24
+ appendParam(params, key, value);
25
+ }
26
+ const serialized = params.toString();
27
+ return serialized ? `?${serialized}` : '';
28
+ }
29
+ async function parseErrorBody(response) {
30
+ try {
31
+ const json = (await response.json());
32
+ if (json && typeof json === 'object' && 'error' in json) {
33
+ return json;
34
+ }
35
+ }
36
+ catch {
37
+ // fall through
38
+ }
39
+ return {
40
+ error: {
41
+ code: 'INTERNAL',
42
+ message: response.statusText || 'Request failed',
43
+ traceId: 'unknown',
44
+ },
45
+ };
46
+ }
47
+ export function createHttpClient(options) {
48
+ const fetchImpl = options.fetchImpl ?? fetch;
49
+ let accessToken = options.auth?.mode === 'static' || options.auth?.mode === 'user'
50
+ ? options.auth.accessToken
51
+ : undefined;
52
+ let refreshToken = options.auth?.mode === 'user' ? options.auth.refreshToken : undefined;
53
+ const apiKey = options.auth?.mode === 'apiKey' ? options.auth.apiKey : undefined;
54
+ let orgId = options.orgId;
55
+ async function refreshAccessToken() {
56
+ if (!refreshToken || options.auth?.mode !== 'user')
57
+ return null;
58
+ const response = await fetchImpl(`${options.baseUrl}/v1/${options.app}/auth/refresh`, {
59
+ method: 'POST',
60
+ headers: { 'Content-Type': 'application/json' },
61
+ body: JSON.stringify({ refreshToken }),
62
+ });
63
+ if (!response.ok)
64
+ return null;
65
+ const tokens = (await response.json());
66
+ accessToken = tokens.accessToken;
67
+ refreshToken = tokens.refreshToken;
68
+ await options.auth.onTokens?.(tokens);
69
+ return accessToken;
70
+ }
71
+ async function requestOnce(input, retry) {
72
+ const headers = {
73
+ 'Content-Type': 'application/json',
74
+ ...(input.headers ?? {}),
75
+ };
76
+ if (apiKey) {
77
+ headers.Authorization = `Bearer ${apiKey}`;
78
+ }
79
+ else if (accessToken) {
80
+ headers.Authorization = `Bearer ${accessToken}`;
81
+ }
82
+ if (orgId)
83
+ headers['X-Org-Id'] = orgId;
84
+ const url = `${options.baseUrl}${input.path}${buildQuery(input.query)}`;
85
+ const response = await fetchImpl(url, {
86
+ method: input.method,
87
+ headers,
88
+ body: input.body === undefined ? undefined : JSON.stringify(input.body),
89
+ });
90
+ if (response.status === 401 && retry && refreshToken) {
91
+ const next = await refreshAccessToken();
92
+ if (next)
93
+ return requestOnce(input, false);
94
+ }
95
+ const deprecation = response.headers.get('Deprecation');
96
+ if (deprecation && options.onDeprecationWarning) {
97
+ options.onDeprecationWarning({ deprecation, sunset: response.headers.get('Sunset') });
98
+ }
99
+ if (response.status === 204) {
100
+ return undefined;
101
+ }
102
+ if (!response.ok) {
103
+ throw new MaestroHttpError(response.status, await parseErrorBody(response));
104
+ }
105
+ return (await response.json());
106
+ }
107
+ return {
108
+ request(input) {
109
+ return requestOnce(input, true);
110
+ },
111
+ setOrgId(nextOrgId) {
112
+ orgId = nextOrgId;
113
+ },
114
+ setTokens(tokens) {
115
+ accessToken = tokens.accessToken;
116
+ refreshToken = tokens.refreshToken;
117
+ },
118
+ };
119
+ }
120
+ //# sourceMappingURL=http.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/runtime/http.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export { createMaestroClient, type MaestroClient } from './client.js';
2
+ export { createHttpClient } from './http.js';
3
+ export { MaestroHttpError } from './types.js';
4
+ export { verifyWebhook, WebhookVerificationError, type VerifyWebhookOptions, type WebhookEvent, type WebhookRequestLike, } from './webhook-verify.js';
5
+ export type { AuthConfig, DeprecationWarning, ErrorBody, FilterConstraint, FilterSpec, ListParams, ListResponse, MaestroClientConfig, MaestroHttpClient, QueryValue, TokenPair, } from './types.js';
6
+ export { createAiModule, createApiKeysModule, createAuthModule, createBillingModule, createCapabilitiesModule, createCollectionModule, createConversationsModule, createEventsModule, createFilesModule, createFlowsModule, createMcpModule, createNotificationsModule, createOrgsModule, createSchemaModule, createSurfacesModule, createViewsModule, createWebhooksModule, createPublicModule, FLOW_ACTION_TYPES, SITE_SUBTYPES, SURFACE_AUDIENCES, SURFACE_DELIVERIES, VIEW_TYPES, type AiSchemaProposal, type ApiKeySummary, type AssistantInput, type AssistantSummary, type AuditEvent, type AuthLoginResult, type CapabilitiesResponse, type ConversationDetail, type ConversationSummary, type FlowAction, type FlowActionType, type FlowCondition, type FlowDefinitionInput, type FlowRunSummary, type FlowSummary, type FlowTrigger, type McpToolGroup, type McpToolsResponse, type NotificationItem, type NotificationListResponse, type OrgRecord, type RuntimeResponse, type RuntimeSurface, type RuntimeView, type SiteSubtype, type SurfaceAudience, type SurfaceDefinitionInput, type SurfaceDelivery, type SurfaceNavEntry, type SurfaceSummary, type ViewDefinitionInput, type ViewSummary, type ViewType, type SchemaCollectionDetail, type SchemaCollectionInput, type SchemaCollectionSummary, type SchemaFieldDefinition, type SchemaMigrationStatus, type SchemaMutationResult, type SchemaPlanPreview, type SchemaReconcileResult, type WebhookDelivery, type WebhookDeliveryResult, type WebhookSubscription, } from './modules.js';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EACL,aAAa,EACb,wBAAwB,EACxB,KAAK,oBAAoB,EACzB,KAAK,YAAY,EACjB,KAAK,kBAAkB,GACxB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,UAAU,EACV,kBAAkB,EAClB,SAAS,EACT,gBAAgB,EAChB,UAAU,EACV,UAAU,EACV,YAAY,EACZ,mBAAmB,EACnB,iBAAiB,EACjB,UAAU,EACV,SAAS,GACV,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,EACnB,wBAAwB,EACxB,sBAAsB,EACtB,yBAAyB,EACzB,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,yBAAyB,EACzB,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,EACjB,oBAAoB,EACpB,kBAAkB,EAClB,iBAAiB,EACjB,aAAa,EACb,iBAAiB,EACjB,kBAAkB,EAClB,UAAU,EACV,KAAK,gBAAgB,EACrB,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,wBAAwB,EAC7B,KAAK,SAAS,EACd,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,sBAAsB,EAC3B,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACxB,KAAK,WAAW,EAChB,KAAK,QAAQ,EACb,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,EAC1B,KAAK,uBAAuB,EAC5B,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAC1B,KAAK,eAAe,EACpB,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,GACzB,MAAM,cAAc,CAAC"}
@@ -0,0 +1,6 @@
1
+ export { createMaestroClient } from './client.js';
2
+ export { createHttpClient } from './http.js';
3
+ export { MaestroHttpError } from './types.js';
4
+ export { verifyWebhook, WebhookVerificationError, } from './webhook-verify.js';
5
+ export { createAiModule, createApiKeysModule, createAuthModule, createBillingModule, createCapabilitiesModule, createCollectionModule, createConversationsModule, createEventsModule, createFilesModule, createFlowsModule, createMcpModule, createNotificationsModule, createOrgsModule, createSchemaModule, createSurfacesModule, createViewsModule, createWebhooksModule, createPublicModule, FLOW_ACTION_TYPES, SITE_SUBTYPES, SURFACE_AUDIENCES, SURFACE_DELIVERIES, VIEW_TYPES, } from './modules.js';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAsB,MAAM,aAAa,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EACL,aAAa,EACb,wBAAwB,GAIzB,MAAM,qBAAqB,CAAC;AAc7B,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,EACnB,wBAAwB,EACxB,sBAAsB,EACtB,yBAAyB,EACzB,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,yBAAyB,EACzB,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,EACjB,oBAAoB,EACpB,kBAAkB,EAClB,iBAAiB,EACjB,aAAa,EACb,iBAAiB,EACjB,kBAAkB,EAClB,UAAU,GA6CX,MAAM,cAAc,CAAC"}