@soulcraft/sdk 1.4.12 → 1.5.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/dist/client/create-client-sdk.d.ts +99 -0
- package/dist/client/create-client-sdk.d.ts.map +1 -0
- package/dist/client/create-client-sdk.js +174 -0
- package/dist/client/create-client-sdk.js.map +1 -0
- package/dist/client/index.d.ts +1 -0
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +2 -0
- package/dist/client/index.js.map +1 -1
- package/dist/index.d.ts +8 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +13 -8
- package/dist/index.js.map +1 -1
- package/dist/modules/auth/middleware.d.ts +246 -68
- package/dist/modules/auth/middleware.d.ts.map +1 -1
- package/dist/modules/auth/middleware.js +369 -67
- package/dist/modules/auth/middleware.js.map +1 -1
- package/dist/modules/auth/types.d.ts +4 -3
- package/dist/modules/auth/types.d.ts.map +1 -1
- package/dist/modules/brainy/errors.d.ts +16 -6
- package/dist/modules/brainy/errors.d.ts.map +1 -1
- package/dist/modules/brainy/errors.js +21 -11
- package/dist/modules/brainy/errors.js.map +1 -1
- package/dist/server/from-license.d.ts.map +1 -1
- package/dist/server/from-license.js +11 -4
- package/dist/server/from-license.js.map +1 -1
- package/dist/server/index.d.ts +3 -3
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +3 -3
- package/dist/server/index.js.map +1 -1
- package/dist/server/instance-pool.d.ts +12 -35
- package/dist/server/instance-pool.d.ts.map +1 -1
- package/dist/server/instance-pool.js +14 -44
- package/dist/server/instance-pool.js.map +1 -1
- package/dist/server/postmessage-handler.d.ts +25 -0
- package/dist/server/postmessage-handler.d.ts.map +1 -1
- package/dist/server/postmessage-handler.js +13 -0
- package/dist/server/postmessage-handler.js.map +1 -1
- package/dist/transports/http.d.ts +1 -1
- package/dist/transports/http.d.ts.map +1 -1
- package/dist/transports/http.js +5 -2
- package/dist/transports/http.js.map +1 -1
- package/dist/transports/postmessage.d.ts +13 -7
- package/dist/transports/postmessage.d.ts.map +1 -1
- package/dist/transports/postmessage.js +24 -8
- package/dist/transports/postmessage.js.map +1 -1
- package/dist/transports/sse.d.ts +5 -1
- package/dist/transports/sse.d.ts.map +1 -1
- package/dist/transports/sse.js +12 -3
- package/dist/transports/sse.js.map +1 -1
- package/dist/transports/ws.d.ts +7 -3
- package/dist/transports/ws.d.ts.map +1 -1
- package/dist/transports/ws.js +28 -9
- package/dist/transports/ws.js.map +1 -1
- package/package.json +17 -5
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module client/create-client-sdk
|
|
3
|
+
* @description `createClientSDK` factory for browser/client-mode @soulcraft/sdk.
|
|
4
|
+
*
|
|
5
|
+
* Assembles a `SoulcraftSDK` from a `ClientSDKOptions` specification. Selects and
|
|
6
|
+
* wires the appropriate transport (`http`, `ws`, or `sse`) and returns a full SDK
|
|
7
|
+
* object whose `sdk.brainy.*` API works identically to server mode.
|
|
8
|
+
*
|
|
9
|
+
* ## Transport selection
|
|
10
|
+
*
|
|
11
|
+
* | `transport` | Use case |
|
|
12
|
+
* |-------------|----------|
|
|
13
|
+
* | `'http'` | Stateless RPC — kit apps, simple clients. No push events. |
|
|
14
|
+
* | `'ws'` | Bidirectional RPC + real-time change push. Call `sdk.connect()` first. |
|
|
15
|
+
* | `'sse'` | Receive-only push events. Pair with `'http'` for outbound RPC. |
|
|
16
|
+
*
|
|
17
|
+
* ## Auth
|
|
18
|
+
*
|
|
19
|
+
* - `auth: 'cookie'` — sends session cookies (same-origin browser use). HTTP only.
|
|
20
|
+
* - `auth: { token }` — sends `Authorization: Bearer <token>`. HTTP and WS.
|
|
21
|
+
* - Omit `auth` for unauthenticated requests (public endpoints).
|
|
22
|
+
*
|
|
23
|
+
* @example HTTP transport (kit app, cookie auth)
|
|
24
|
+
* ```typescript
|
|
25
|
+
* import { createClientSDK } from '@soulcraft/sdk/client'
|
|
26
|
+
*
|
|
27
|
+
* const sdk = createClientSDK({
|
|
28
|
+
* mode: 'client',
|
|
29
|
+
* product: 'workshop',
|
|
30
|
+
* transport: 'http',
|
|
31
|
+
* baseUrl: 'https://workshop.soulcraft.com',
|
|
32
|
+
* auth: 'cookie',
|
|
33
|
+
* })
|
|
34
|
+
*
|
|
35
|
+
* const results = await sdk.brainy.find({ query: 'candle kits', limit: 10 })
|
|
36
|
+
* ```
|
|
37
|
+
*
|
|
38
|
+
* @example WebSocket transport (real-time change push)
|
|
39
|
+
* ```typescript
|
|
40
|
+
* import { createClientSDK } from '@soulcraft/sdk/client'
|
|
41
|
+
*
|
|
42
|
+
* const sdk = createClientSDK({
|
|
43
|
+
* mode: 'client',
|
|
44
|
+
* product: 'venue',
|
|
45
|
+
* transport: 'ws',
|
|
46
|
+
* baseUrl: 'wss://venue.soulcraft.com/api/brainy/ws',
|
|
47
|
+
* auth: { token: capabilityToken },
|
|
48
|
+
* })
|
|
49
|
+
*
|
|
50
|
+
* await sdk.connect!()
|
|
51
|
+
* sdk.brainy.onDataChange((event) => refreshUI(event))
|
|
52
|
+
* const items = await sdk.brainy.find({ query: 'inventory' })
|
|
53
|
+
* ```
|
|
54
|
+
*
|
|
55
|
+
* @example SSE transport (receive-only change events + HTTP for outbound)
|
|
56
|
+
* ```typescript
|
|
57
|
+
* import { createClientSDK } from '@soulcraft/sdk/client'
|
|
58
|
+
*
|
|
59
|
+
* const sdk = createClientSDK({
|
|
60
|
+
* mode: 'client',
|
|
61
|
+
* product: 'venue',
|
|
62
|
+
* transport: 'sse',
|
|
63
|
+
* baseUrl: 'https://venue.soulcraft.com',
|
|
64
|
+
* auth: 'cookie',
|
|
65
|
+
* })
|
|
66
|
+
*
|
|
67
|
+
* // sdk.brainy.onDataChange() fires on live server changes.
|
|
68
|
+
* // sdk.brainy.find() etc. are not available on SSE — wire an HttpTransport separately.
|
|
69
|
+
* sdk.brainy.onDataChange((event) => console.log('change:', event))
|
|
70
|
+
* ```
|
|
71
|
+
*/
|
|
72
|
+
import type { ClientSDKOptions } from '../types.js';
|
|
73
|
+
import type { SoulcraftSDK } from '../types.js';
|
|
74
|
+
/**
|
|
75
|
+
* Create a client-mode `SoulcraftSDK` from the given options.
|
|
76
|
+
*
|
|
77
|
+
* Selects the transport specified by `options.transport`, wires auth, and returns
|
|
78
|
+
* a `SoulcraftSDK` whose `sdk.brainy.*` surface is identical to server mode.
|
|
79
|
+
*
|
|
80
|
+
* For `'ws'` transport, call `await sdk.connect!()` before making any `sdk.brainy.*`
|
|
81
|
+
* calls to establish the WebSocket connection.
|
|
82
|
+
*
|
|
83
|
+
* @param options - Client SDK options including transport, baseUrl, and auth.
|
|
84
|
+
* @returns A `SoulcraftSDK` backed by the chosen transport.
|
|
85
|
+
*
|
|
86
|
+
* @example HTTP transport
|
|
87
|
+
* ```typescript
|
|
88
|
+
* const sdk = createClientSDK({
|
|
89
|
+
* mode: 'client',
|
|
90
|
+
* product: 'workshop',
|
|
91
|
+
* transport: 'http',
|
|
92
|
+
* baseUrl: 'https://workshop.soulcraft.com',
|
|
93
|
+
* auth: 'cookie',
|
|
94
|
+
* })
|
|
95
|
+
* const results = await sdk.brainy.find({ query: 'candle inventory' })
|
|
96
|
+
* ```
|
|
97
|
+
*/
|
|
98
|
+
export declare function createClientSDK(options: ClientSDKOptions): SoulcraftSDK;
|
|
99
|
+
//# sourceMappingURL=create-client-sdk.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-client-sdk.d.ts","sourceRoot":"","sources":["../../src/client/create-client-sdk.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsEG;AAOH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AACnD,OAAO,KAAK,EAAE,YAAY,EAA6B,MAAM,aAAa,CAAA;AAO1E;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,gBAAgB,GAAG,YAAY,CA6EvE"}
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module client/create-client-sdk
|
|
3
|
+
* @description `createClientSDK` factory for browser/client-mode @soulcraft/sdk.
|
|
4
|
+
*
|
|
5
|
+
* Assembles a `SoulcraftSDK` from a `ClientSDKOptions` specification. Selects and
|
|
6
|
+
* wires the appropriate transport (`http`, `ws`, or `sse`) and returns a full SDK
|
|
7
|
+
* object whose `sdk.brainy.*` API works identically to server mode.
|
|
8
|
+
*
|
|
9
|
+
* ## Transport selection
|
|
10
|
+
*
|
|
11
|
+
* | `transport` | Use case |
|
|
12
|
+
* |-------------|----------|
|
|
13
|
+
* | `'http'` | Stateless RPC — kit apps, simple clients. No push events. |
|
|
14
|
+
* | `'ws'` | Bidirectional RPC + real-time change push. Call `sdk.connect()` first. |
|
|
15
|
+
* | `'sse'` | Receive-only push events. Pair with `'http'` for outbound RPC. |
|
|
16
|
+
*
|
|
17
|
+
* ## Auth
|
|
18
|
+
*
|
|
19
|
+
* - `auth: 'cookie'` — sends session cookies (same-origin browser use). HTTP only.
|
|
20
|
+
* - `auth: { token }` — sends `Authorization: Bearer <token>`. HTTP and WS.
|
|
21
|
+
* - Omit `auth` for unauthenticated requests (public endpoints).
|
|
22
|
+
*
|
|
23
|
+
* @example HTTP transport (kit app, cookie auth)
|
|
24
|
+
* ```typescript
|
|
25
|
+
* import { createClientSDK } from '@soulcraft/sdk/client'
|
|
26
|
+
*
|
|
27
|
+
* const sdk = createClientSDK({
|
|
28
|
+
* mode: 'client',
|
|
29
|
+
* product: 'workshop',
|
|
30
|
+
* transport: 'http',
|
|
31
|
+
* baseUrl: 'https://workshop.soulcraft.com',
|
|
32
|
+
* auth: 'cookie',
|
|
33
|
+
* })
|
|
34
|
+
*
|
|
35
|
+
* const results = await sdk.brainy.find({ query: 'candle kits', limit: 10 })
|
|
36
|
+
* ```
|
|
37
|
+
*
|
|
38
|
+
* @example WebSocket transport (real-time change push)
|
|
39
|
+
* ```typescript
|
|
40
|
+
* import { createClientSDK } from '@soulcraft/sdk/client'
|
|
41
|
+
*
|
|
42
|
+
* const sdk = createClientSDK({
|
|
43
|
+
* mode: 'client',
|
|
44
|
+
* product: 'venue',
|
|
45
|
+
* transport: 'ws',
|
|
46
|
+
* baseUrl: 'wss://venue.soulcraft.com/api/brainy/ws',
|
|
47
|
+
* auth: { token: capabilityToken },
|
|
48
|
+
* })
|
|
49
|
+
*
|
|
50
|
+
* await sdk.connect!()
|
|
51
|
+
* sdk.brainy.onDataChange((event) => refreshUI(event))
|
|
52
|
+
* const items = await sdk.brainy.find({ query: 'inventory' })
|
|
53
|
+
* ```
|
|
54
|
+
*
|
|
55
|
+
* @example SSE transport (receive-only change events + HTTP for outbound)
|
|
56
|
+
* ```typescript
|
|
57
|
+
* import { createClientSDK } from '@soulcraft/sdk/client'
|
|
58
|
+
*
|
|
59
|
+
* const sdk = createClientSDK({
|
|
60
|
+
* mode: 'client',
|
|
61
|
+
* product: 'venue',
|
|
62
|
+
* transport: 'sse',
|
|
63
|
+
* baseUrl: 'https://venue.soulcraft.com',
|
|
64
|
+
* auth: 'cookie',
|
|
65
|
+
* })
|
|
66
|
+
*
|
|
67
|
+
* // sdk.brainy.onDataChange() fires on live server changes.
|
|
68
|
+
* // sdk.brainy.find() etc. are not available on SSE — wire an HttpTransport separately.
|
|
69
|
+
* sdk.brainy.onDataChange((event) => console.log('change:', event))
|
|
70
|
+
* ```
|
|
71
|
+
*/
|
|
72
|
+
import { HttpTransport } from '../transports/http.js';
|
|
73
|
+
import { WsTransport } from '../transports/ws.js';
|
|
74
|
+
import { SseTransport } from '../transports/sse.js';
|
|
75
|
+
import { createBrainyProxy } from '../modules/brainy/proxy.js';
|
|
76
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
77
|
+
// Factory
|
|
78
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
79
|
+
/**
|
|
80
|
+
* Create a client-mode `SoulcraftSDK` from the given options.
|
|
81
|
+
*
|
|
82
|
+
* Selects the transport specified by `options.transport`, wires auth, and returns
|
|
83
|
+
* a `SoulcraftSDK` whose `sdk.brainy.*` surface is identical to server mode.
|
|
84
|
+
*
|
|
85
|
+
* For `'ws'` transport, call `await sdk.connect!()` before making any `sdk.brainy.*`
|
|
86
|
+
* calls to establish the WebSocket connection.
|
|
87
|
+
*
|
|
88
|
+
* @param options - Client SDK options including transport, baseUrl, and auth.
|
|
89
|
+
* @returns A `SoulcraftSDK` backed by the chosen transport.
|
|
90
|
+
*
|
|
91
|
+
* @example HTTP transport
|
|
92
|
+
* ```typescript
|
|
93
|
+
* const sdk = createClientSDK({
|
|
94
|
+
* mode: 'client',
|
|
95
|
+
* product: 'workshop',
|
|
96
|
+
* transport: 'http',
|
|
97
|
+
* baseUrl: 'https://workshop.soulcraft.com',
|
|
98
|
+
* auth: 'cookie',
|
|
99
|
+
* })
|
|
100
|
+
* const results = await sdk.brainy.find({ query: 'candle inventory' })
|
|
101
|
+
* ```
|
|
102
|
+
*/
|
|
103
|
+
export function createClientSDK(options) {
|
|
104
|
+
const { baseUrl, transport: transportType, auth, timeoutMs } = options;
|
|
105
|
+
const authToken = auth && auth !== 'cookie' && typeof auth === 'object' ? auth.token : undefined;
|
|
106
|
+
const useCookies = auth === 'cookie';
|
|
107
|
+
let transport;
|
|
108
|
+
if (transportType === 'ws') {
|
|
109
|
+
if (!authToken) {
|
|
110
|
+
throw new Error('createClientSDK: WebSocket transport requires auth: { token } — ' +
|
|
111
|
+
'browser WebSocket does not support cookie auth or header-less connections.');
|
|
112
|
+
}
|
|
113
|
+
transport = new WsTransport(baseUrl, authToken, undefined, timeoutMs);
|
|
114
|
+
}
|
|
115
|
+
else if (transportType === 'sse') {
|
|
116
|
+
transport = new SseTransport(baseUrl, undefined, authToken);
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
// Default: HTTP
|
|
120
|
+
transport = new HttpTransport(baseUrl, authToken, useCookies, timeoutMs);
|
|
121
|
+
}
|
|
122
|
+
const brainyProxy = createBrainyProxy(transport);
|
|
123
|
+
// VFS and versions are sub-namespaces of the Brainy proxy.
|
|
124
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
125
|
+
const vfs = brainyProxy.vfs;
|
|
126
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
127
|
+
const versions = brainyProxy.versions;
|
|
128
|
+
const sdk = {
|
|
129
|
+
brainy: brainyProxy,
|
|
130
|
+
vfs,
|
|
131
|
+
versions,
|
|
132
|
+
// Client mode stubs — these module namespaces are server-only.
|
|
133
|
+
// Accessing them from a client app is a usage error; throw explicitly.
|
|
134
|
+
get auth() {
|
|
135
|
+
throw new Error('sdk.auth is not available in client mode — use server-side auth middleware');
|
|
136
|
+
},
|
|
137
|
+
get license() {
|
|
138
|
+
throw new Error('sdk.license is not available in client mode');
|
|
139
|
+
},
|
|
140
|
+
get ai() {
|
|
141
|
+
throw new Error('sdk.ai is not available in client mode — use server-side AI endpoints');
|
|
142
|
+
},
|
|
143
|
+
get events() {
|
|
144
|
+
throw new Error('sdk.events is not available in client mode');
|
|
145
|
+
},
|
|
146
|
+
get skills() {
|
|
147
|
+
throw new Error('sdk.skills is not available in client mode');
|
|
148
|
+
},
|
|
149
|
+
get kits() {
|
|
150
|
+
throw new Error('sdk.kits is not available in client mode');
|
|
151
|
+
},
|
|
152
|
+
get billing() {
|
|
153
|
+
throw new Error('sdk.billing is not available in client mode');
|
|
154
|
+
},
|
|
155
|
+
get notifications() {
|
|
156
|
+
throw new Error('sdk.notifications is not available in client mode');
|
|
157
|
+
},
|
|
158
|
+
async connect() {
|
|
159
|
+
if (transportType === 'ws') {
|
|
160
|
+
await transport.connect();
|
|
161
|
+
}
|
|
162
|
+
else if (transportType === 'sse') {
|
|
163
|
+
;
|
|
164
|
+
transport.connect();
|
|
165
|
+
}
|
|
166
|
+
// HTTP is stateless — connect is a no-op.
|
|
167
|
+
},
|
|
168
|
+
async disconnect() {
|
|
169
|
+
await transport.close();
|
|
170
|
+
},
|
|
171
|
+
};
|
|
172
|
+
return sdk;
|
|
173
|
+
}
|
|
174
|
+
//# sourceMappingURL=create-client-sdk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-client-sdk.js","sourceRoot":"","sources":["../../src/client/create-client-sdk.ts"],"names":[],"mappings":"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"}
|
package/dist/client/index.d.ts
CHANGED
|
@@ -51,6 +51,7 @@
|
|
|
51
51
|
* sse.onEvent((event) => refreshUI(event))
|
|
52
52
|
* ```
|
|
53
53
|
*/
|
|
54
|
+
export { createClientSDK } from './create-client-sdk.js';
|
|
54
55
|
export { HttpTransport } from '../transports/http.js';
|
|
55
56
|
export { WsTransport } from '../transports/ws.js';
|
|
56
57
|
export { SseTransport } from '../transports/sse.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA;AACnE,YAAY,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAA;AAC3F,YAAY,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAG9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAA;AAG9D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AACzD,YAAY,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AACrE,YAAY,EACV,cAAc,EACd,oBAAoB,EACpB,eAAe,EACf,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,EACnB,eAAe,EACf,aAAa,EACb,WAAW,EACX,iBAAiB,EACjB,YAAY,GACb,MAAM,0BAA0B,CAAA;AAGjC,YAAY,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AACnD,YAAY,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AACjE,YAAY,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAA;AACpE,OAAO,EACL,QAAQ,EACR,oBAAoB,EACpB,eAAe,EACf,YAAY,EACZ,iBAAiB,EACjB,WAAW,EACX,sBAAsB,GACvB,MAAM,6BAA6B,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAGxD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA;AACnE,YAAY,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAA;AAC3F,YAAY,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAG9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAA;AAG9D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AACzD,YAAY,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AACrE,YAAY,EACV,cAAc,EACd,oBAAoB,EACpB,eAAe,EACf,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,EACnB,eAAe,EACf,aAAa,EACb,WAAW,EACX,iBAAiB,EACjB,YAAY,GACb,MAAM,0BAA0B,CAAA;AAGjC,YAAY,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AACnD,YAAY,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AACjE,YAAY,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAA;AACpE,OAAO,EACL,QAAQ,EACR,oBAAoB,EACpB,eAAe,EACf,YAAY,EACZ,iBAAiB,EACjB,WAAW,EACX,sBAAsB,GACvB,MAAM,6BAA6B,CAAA"}
|
package/dist/client/index.js
CHANGED
|
@@ -51,6 +51,8 @@
|
|
|
51
51
|
* sse.onEvent((event) => refreshUI(event))
|
|
52
52
|
* ```
|
|
53
53
|
*/
|
|
54
|
+
// ── Client SDK factory ────────────────────────────────────────────────────────
|
|
55
|
+
export { createClientSDK } from './create-client-sdk.js';
|
|
54
56
|
// ── Transport classes ─────────────────────────────────────────────────────────
|
|
55
57
|
export { HttpTransport } from '../transports/http.js';
|
|
56
58
|
export { WsTransport } from '../transports/ws.js';
|
package/dist/client/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AAEH,iFAAiF;AACjF,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA;AAInE,iFAAiF;AACjF,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAA;AAE9D,iFAAiF;AACjF,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAoBzD,OAAO,EACL,QAAQ,EACR,oBAAoB,EACpB,eAAe,EACf,YAAY,EACZ,iBAAiB,EACjB,WAAW,EACX,sBAAsB,GACvB,MAAM,6BAA6B,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AAEH,iFAAiF;AACjF,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAExD,iFAAiF;AACjF,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA;AAInE,iFAAiF;AACjF,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAA;AAE9D,iFAAiF;AACjF,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAoBzD,OAAO,EACL,QAAQ,EACR,oBAAoB,EACpB,eAAe,EACf,YAAY,EACZ,iBAAiB,EACjB,WAAW,EACX,sBAAsB,GACvB,MAAM,6BAA6B,CAAA"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,26 +1,26 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @module @soulcraft/sdk
|
|
3
|
-
* @description Shared entry point for @soulcraft/sdk. Exports
|
|
4
|
-
*
|
|
5
|
-
*
|
|
3
|
+
* @description Shared entry point for @soulcraft/sdk. Exports all shared types and
|
|
4
|
+
* environment-agnostic constants. This entry point is safe to import in any environment
|
|
5
|
+
* (server or browser).
|
|
6
6
|
*
|
|
7
|
-
* For server-specific exports (Brainy lifecycle, Cortex, auth middleware, RPC handlers
|
|
8
|
-
*
|
|
7
|
+
* For server-specific exports (Brainy lifecycle, Cortex, auth middleware, RPC handlers,
|
|
8
|
+
* `createSDK`, `computeEmailHash`, `createCapabilityToken`, `verifyCapabilityToken`,
|
|
9
|
+
* `getAuthMode`, `getOIDCClientConfig`), use `@soulcraft/sdk/server`.
|
|
9
10
|
*
|
|
10
|
-
* For browser-specific exports (HTTP/WS/SSE transports,
|
|
11
|
+
* For browser-specific exports (HTTP/WS/SSE transports, `createClientSDK`), use
|
|
11
12
|
* `@soulcraft/sdk/client`.
|
|
12
13
|
*/
|
|
13
14
|
export type { SoulcraftSDK, SDKOptions, ServerSDKOptions, ClientSDKOptions } from './types.js';
|
|
14
15
|
export type { SoulcraftBrainy } from './modules/brainy/types.js';
|
|
15
16
|
export type { Entity, Relation, Result, AddParams, UpdateParams, RelateParams, FindParams, BrainyConfig, AggregateDefinition, DiagnosticsResult, MigrationResult, MigrateOptions, MigrationPreview, NounType, VerbType, BrainyChangeEvent, BrainyChangeEntity, BrainyChangeRelation, } from './modules/brainy/types.js';
|
|
16
17
|
export type { CreateCapabilityTokenOptions, CapabilityTokenClaims, } from './modules/brainy/auth.js';
|
|
17
|
-
export { createCapabilityToken, verifyCapabilityToken, } from './modules/brainy/auth.js';
|
|
18
18
|
export { SDKError, SDKDisconnectedError, SDKTimeoutError, SDKAuthError, SDKForbiddenError, SDKRpcError, SDKMethodNotFoundError, } from './modules/brainy/errors.js';
|
|
19
19
|
export type { VfsModule } from './modules/vfs/types.js';
|
|
20
20
|
export type { VersionsModule } from './modules/versions/types.js';
|
|
21
21
|
export type { HallModule, HallRoom, HallRoomHandle, HallRoomEvents, HallRoomHandleEvents, HallConnectionOptions, RoomOptions, ConceptInput, RecordingManifest, TranscriptEvent, ConceptMentionEvent, RelationProposedEvent, SpeakerChangedEvent, PeerJoinedEvent, PeerLeftEvent, } from './modules/hall/types.js';
|
|
22
22
|
export type { AuthModule, PlatformRole, SoulcraftAuthProvider, SoulcraftOrganization, SoulcraftUserFields, SoulcraftSessionUser, SoulcraftSession, OIDCClientConfig, AuthMode, } from './modules/auth/types.js';
|
|
23
|
-
export { SOULCRAFT_USER_FIELDS, SOULCRAFT_SESSION_CONFIG,
|
|
23
|
+
export { SOULCRAFT_USER_FIELDS, SOULCRAFT_SESSION_CONFIG, } from './modules/auth/config.js';
|
|
24
24
|
export type { AiModule, AiCompleteOptions, AiCompleteResult, AiStreamOptions, AiStreamEvent, AiToolCall, AiMessage, AiContentBlock, AiTool, AiModel, } from './modules/ai/types.js';
|
|
25
25
|
export { AI_MODELS } from './modules/ai/types.js';
|
|
26
26
|
export type { EventsModule, SoulcraftEventMap, SoulcraftEventName, VfsWriteEvent, VfsDeleteEvent, VfsRenameEvent, } from './modules/events/types.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,18 +1,23 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @module @soulcraft/sdk
|
|
3
|
-
* @description Shared entry point for @soulcraft/sdk. Exports
|
|
4
|
-
*
|
|
5
|
-
*
|
|
3
|
+
* @description Shared entry point for @soulcraft/sdk. Exports all shared types and
|
|
4
|
+
* environment-agnostic constants. This entry point is safe to import in any environment
|
|
5
|
+
* (server or browser).
|
|
6
6
|
*
|
|
7
|
-
* For server-specific exports (Brainy lifecycle, Cortex, auth middleware, RPC handlers
|
|
8
|
-
*
|
|
7
|
+
* For server-specific exports (Brainy lifecycle, Cortex, auth middleware, RPC handlers,
|
|
8
|
+
* `createSDK`, `computeEmailHash`, `createCapabilityToken`, `verifyCapabilityToken`,
|
|
9
|
+
* `getAuthMode`, `getOIDCClientConfig`), use `@soulcraft/sdk/server`.
|
|
9
10
|
*
|
|
10
|
-
* For browser-specific exports (HTTP/WS/SSE transports,
|
|
11
|
+
* For browser-specific exports (HTTP/WS/SSE transports, `createClientSDK`), use
|
|
11
12
|
* `@soulcraft/sdk/client`.
|
|
12
13
|
*/
|
|
13
|
-
|
|
14
|
+
// createCapabilityToken and verifyCapabilityToken are server-only (node:crypto).
|
|
15
|
+
// Import from @soulcraft/sdk/server.
|
|
14
16
|
export { SDKError, SDKDisconnectedError, SDKTimeoutError, SDKAuthError, SDKForbiddenError, SDKRpcError, SDKMethodNotFoundError, } from './modules/brainy/errors.js';
|
|
15
|
-
|
|
17
|
+
// SOULCRAFT_USER_FIELDS and SOULCRAFT_SESSION_CONFIG are pure constants — safe on shared entry.
|
|
18
|
+
// computeEmailHash, getAuthMode, getOIDCClientConfig use node:crypto / process.env.
|
|
19
|
+
// Import those from @soulcraft/sdk/server.
|
|
20
|
+
export { SOULCRAFT_USER_FIELDS, SOULCRAFT_SESSION_CONFIG, } from './modules/auth/config.js';
|
|
16
21
|
export { AI_MODELS } from './modules/ai/types.js';
|
|
17
22
|
export { SOULCRAFT_FORMATS } from './modules/formats/types.js';
|
|
18
23
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AA8BH,iFAAiF;AACjF,qCAAqC;AACrC,OAAO,EACL,QAAQ,EACR,oBAAoB,EACpB,eAAe,EACf,YAAY,EACZ,iBAAiB,EACjB,WAAW,EACX,sBAAsB,GACvB,MAAM,4BAA4B,CAAA;AAuCnC,gGAAgG;AAChG,oFAAoF;AACpF,2CAA2C;AAC3C,OAAO,EACL,qBAAqB,EACrB,wBAAwB,GACzB,MAAM,0BAA0B,CAAA;AAejC,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AAoFjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAA"}
|