@bitbitpress/client 1.0.4 → 1.1.0-alpha.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/README.md +224 -0
- package/dist/react/index.d.ts +60 -0
- package/dist/react/index.d.ts.map +1 -0
- package/dist/react/index.js +85 -0
- package/dist/react/index.js.map +1 -0
- package/dist/react/primitives.d.ts +54 -0
- package/dist/react/primitives.d.ts.map +1 -0
- package/dist/react/primitives.js +223 -0
- package/dist/react/primitives.js.map +1 -0
- package/dist/react-native-expo/index.d.ts +53 -0
- package/dist/react-native-expo/index.d.ts.map +1 -0
- package/dist/react-native-expo/index.js +92 -0
- package/dist/react-native-expo/index.js.map +1 -0
- package/dist/react-native-expo/primitives.d.ts +58 -0
- package/dist/react-native-expo/primitives.d.ts.map +1 -0
- package/dist/react-native-expo/primitives.js +218 -0
- package/dist/react-native-expo/primitives.js.map +1 -0
- package/dist/synthesisView/context.d.ts +18 -0
- package/dist/synthesisView/context.d.ts.map +1 -0
- package/dist/synthesisView/context.js +15 -0
- package/dist/synthesisView/context.js.map +1 -0
- package/dist/synthesisView/createComponentMap.d.ts +18 -0
- package/dist/synthesisView/createComponentMap.d.ts.map +1 -0
- package/dist/synthesisView/createComponentMap.js +40 -0
- package/dist/synthesisView/createComponentMap.js.map +1 -0
- package/dist/synthesisView/devLog.d.ts +10 -0
- package/dist/synthesisView/devLog.d.ts.map +1 -0
- package/dist/synthesisView/devLog.js +23 -0
- package/dist/synthesisView/devLog.js.map +1 -0
- package/dist/synthesisView/engine.d.ts +35 -0
- package/dist/synthesisView/engine.d.ts.map +1 -0
- package/dist/synthesisView/engine.js +139 -0
- package/dist/synthesisView/engine.js.map +1 -0
- package/dist/synthesisView/primitives.d.ts +180 -0
- package/dist/synthesisView/primitives.d.ts.map +1 -0
- package/dist/synthesisView/primitives.js +29 -0
- package/dist/synthesisView/primitives.js.map +1 -0
- package/dist/synthesisView/resolve.d.ts +17 -0
- package/dist/synthesisView/resolve.d.ts.map +1 -0
- package/dist/synthesisView/resolve.js +42 -0
- package/dist/synthesisView/resolve.js.map +1 -0
- package/dist/synthesisView/types.d.ts +121 -0
- package/dist/synthesisView/types.d.ts.map +1 -0
- package/dist/synthesisView/types.js +2 -0
- package/dist/synthesisView/types.js.map +1 -0
- package/dist/synthesisView/useEventDrivenView.d.ts +32 -0
- package/dist/synthesisView/useEventDrivenView.d.ts.map +1 -0
- package/dist/synthesisView/useEventDrivenView.js +157 -0
- package/dist/synthesisView/useEventDrivenView.js.map +1 -0
- package/dist/synthesisView/useSynthesisView.d.ts +13 -0
- package/dist/synthesisView/useSynthesisView.d.ts.map +1 -0
- package/dist/synthesisView/useSynthesisView.js +49 -0
- package/dist/synthesisView/useSynthesisView.js.map +1 -0
- package/dist/user/index.d.ts +14 -1
- package/dist/user/index.d.ts.map +1 -1
- package/dist/user/index.js +6 -1
- package/dist/user/index.js.map +1 -1
- package/dist/user/synthesize-view-batch-manager.d.ts +17 -0
- package/dist/user/synthesize-view-batch-manager.d.ts.map +1 -0
- package/dist/user/synthesize-view-batch-manager.js +52 -0
- package/dist/user/synthesize-view-batch-manager.js.map +1 -0
- package/dist/user/synthesizeView.d.ts +41 -0
- package/dist/user/synthesizeView.d.ts.map +1 -0
- package/dist/user/synthesizeView.js +26 -0
- package/dist/user/synthesizeView.js.map +1 -0
- package/package.json +29 -5
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { useEffect, useState } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Fetches a view's `uiData` by keyName and tracks loading/error state.
|
|
4
|
+
* Re-fetches when keyName, contentInputs, or viewInputs change. Calls
|
|
5
|
+
* coalesce with other views' lookups via the SDK's batch manager.
|
|
6
|
+
*/
|
|
7
|
+
export function useSynthesisView(client, keyName, contentInputs, viewInputs) {
|
|
8
|
+
const [result, setResult] = useState({
|
|
9
|
+
uiData: [],
|
|
10
|
+
loading: true,
|
|
11
|
+
error: null,
|
|
12
|
+
});
|
|
13
|
+
const contentInputsKey = contentInputs && contentInputs.length > 0 ? JSON.stringify(contentInputs) : '';
|
|
14
|
+
const viewInputsKey = viewInputs ? JSON.stringify(viewInputs) : '';
|
|
15
|
+
useEffect(() => {
|
|
16
|
+
let cancelled = false;
|
|
17
|
+
setResult((prev) => ({ ...prev, loading: true, error: null }));
|
|
18
|
+
const parsedContentInputs = contentInputsKey
|
|
19
|
+
? JSON.parse(contentInputsKey)
|
|
20
|
+
: undefined;
|
|
21
|
+
const parsedViewInputs = viewInputsKey ? JSON.parse(viewInputsKey) : undefined;
|
|
22
|
+
client.user
|
|
23
|
+
.synthesizeViewItem({
|
|
24
|
+
keyName,
|
|
25
|
+
contentInputs: parsedContentInputs,
|
|
26
|
+
viewInputs: parsedViewInputs,
|
|
27
|
+
})
|
|
28
|
+
.then((res) => {
|
|
29
|
+
if (cancelled)
|
|
30
|
+
return;
|
|
31
|
+
const uiData = Array.isArray(res.uiData) ? res.uiData : [];
|
|
32
|
+
setResult({ uiData, loading: false, error: null });
|
|
33
|
+
})
|
|
34
|
+
.catch((err) => {
|
|
35
|
+
if (cancelled)
|
|
36
|
+
return;
|
|
37
|
+
setResult({
|
|
38
|
+
uiData: [],
|
|
39
|
+
loading: false,
|
|
40
|
+
error: err instanceof Error ? err.message : 'Failed to load view',
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
return () => {
|
|
44
|
+
cancelled = true;
|
|
45
|
+
};
|
|
46
|
+
}, [client, keyName, contentInputsKey, viewInputsKey]);
|
|
47
|
+
return result;
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=useSynthesisView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSynthesisView.js","sourceRoot":"","sources":["../../src/synthesisView/useSynthesisView.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAS5C;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAC9B,MAA6B,EAC7B,OAAe,EACf,aAA8B,EAC9B,UAAuB;IAEvB,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAyB;QAC3D,MAAM,EAAE,EAAE;QACV,OAAO,EAAE,IAAI;QACb,KAAK,EAAE,IAAI;KACZ,CAAC,CAAC;IAEH,MAAM,gBAAgB,GACpB,aAAa,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACjF,MAAM,aAAa,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAEnE,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAE/D,MAAM,mBAAmB,GAAG,gBAAgB;YAC1C,CAAC,CAAE,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAoB;YAClD,CAAC,CAAC,SAAS,CAAC;QACd,MAAM,gBAAgB,GAAG,aAAa,CAAC,CAAC,CAAE,IAAI,CAAC,KAAK,CAAC,aAAa,CAAgB,CAAC,CAAC,CAAC,SAAS,CAAC;QAE/F,MAAM,CAAC,IAAI;aACR,kBAAkB,CAAC;YAClB,OAAO;YACP,aAAa,EAAE,mBAAmB;YAClC,UAAU,EAAE,gBAAgB;SAC7B,CAAC;aACD,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;YACZ,IAAI,SAAS;gBAAE,OAAO;YACtB,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAE,GAAG,CAAC,MAAuB,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7E,SAAS,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACrD,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;YACtB,IAAI,SAAS;gBAAE,OAAO;YACtB,SAAS,CAAC;gBACR,MAAM,EAAE,EAAE;gBACV,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,qBAAqB;aAClE,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEL,OAAO,GAAG,EAAE;YACV,SAAS,GAAG,IAAI,CAAC;QACnB,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,aAAa,CAAC,CAAC,CAAC;IAEvD,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
package/dist/user/index.d.ts
CHANGED
|
@@ -8,6 +8,7 @@ import { type Signal, type SignalRequest, type SignalResponse } from './signal.j
|
|
|
8
8
|
import { type CreateUserSubmissionRequest, type CreateUserSubmissionResponse, type ListUserSubmissionsRequest, type ListUserSubmissionsResponse } from './submissions.js';
|
|
9
9
|
import { type SynthesizeEvent, type SynthesizeItemResponse } from './synthesize.js';
|
|
10
10
|
import { type SynthesizeOnStreamingData } from './synthesize-batch-manager.js';
|
|
11
|
+
import { type SynthesizeViewRequestItem, type SynthesizeViewResponse } from './synthesizeView.js';
|
|
11
12
|
import { type TokenRequest, type TokenResponse } from './token.js';
|
|
12
13
|
import type { SynthesizeItem, SynthesizeItems } from './typeDefs.js';
|
|
13
14
|
/**
|
|
@@ -119,9 +120,21 @@ export interface UserMethods {
|
|
|
119
120
|
* @returns Updated aggregates and the user's recorded response
|
|
120
121
|
*/
|
|
121
122
|
respondToInteraction(interactionId: string, options: InteractionResponseRequest): Promise<NonNullable<InteractionResponseResponse>>;
|
|
123
|
+
/**
|
|
124
|
+
* Resolve one or more synthesis views in a single request. Responses are
|
|
125
|
+
* returned in the same order as `items`; an item that matches no view
|
|
126
|
+
* resolves to `{ uiData: [] }`.
|
|
127
|
+
*/
|
|
128
|
+
synthesizeViews(items: SynthesizeViewRequestItem[]): Promise<SynthesizeViewResponse[]>;
|
|
129
|
+
/**
|
|
130
|
+
* Resolve a single view by `keyName`. Calls within a short window are
|
|
131
|
+
* coalesced into one batched request. This is the path `<BitBitView>` uses
|
|
132
|
+
* under the hood.
|
|
133
|
+
*/
|
|
134
|
+
synthesizeViewItem(item: SynthesizeViewRequestItem): Promise<SynthesizeViewResponse>;
|
|
122
135
|
}
|
|
123
136
|
/**
|
|
124
137
|
* User-related API methods (uses shared auth store).
|
|
125
138
|
*/
|
|
126
|
-
export declare function createUserMethods(authStore: AuthStore, config: RequestConfig, synthesizeBatchTimeout?: number, signalBatchTimeout?: number): UserMethods;
|
|
139
|
+
export declare function createUserMethods(authStore: AuthStore, config: RequestConfig, synthesizeBatchTimeout?: number, signalBatchTimeout?: number, synthesizeViewBatchTimeout?: number): UserMethods;
|
|
127
140
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/user/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/user/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAEL,KAAK,0BAA0B,EAC/B,KAAK,2BAA2B,EAChC,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EAE1B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,oBAAoB,EAE1B,MAAM,cAAc,CAAC;AACtB,OAAO,EAEL,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAC7B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,cAAc,EAAa,MAAM,aAAa,CAAC;AACjF,OAAO,EAAgB,KAAK,MAAM,EAAE,KAAK,aAAa,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAEjG,OAAO,EACL,KAAK,2BAA2B,EAChC,KAAK,4BAA4B,EAEjC,KAAK,0BAA0B,EAC/B,KAAK,2BAA2B,EAEjC,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,sBAAsB,EAAc,MAAM,iBAAiB,CAAC;AAChG,OAAO,EAEL,KAAK,yBAAyB,EAC/B,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/user/index.ts"],"names":[],"mappings":"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"}
|
package/dist/user/index.js
CHANGED
|
@@ -10,14 +10,17 @@ const signal_batch_manager_js_1 = require("./signal-batch-manager.js");
|
|
|
10
10
|
const submissions_js_1 = require("./submissions.js");
|
|
11
11
|
const synthesize_js_1 = require("./synthesize.js");
|
|
12
12
|
const synthesize_batch_manager_js_1 = require("./synthesize-batch-manager.js");
|
|
13
|
+
const synthesize_view_batch_manager_js_1 = require("./synthesize-view-batch-manager.js");
|
|
14
|
+
const synthesizeView_js_1 = require("./synthesizeView.js");
|
|
13
15
|
const token_js_1 = require("./token.js");
|
|
14
16
|
/**
|
|
15
17
|
* User-related API methods (uses shared auth store).
|
|
16
18
|
*/
|
|
17
|
-
function createUserMethods(authStore, config, synthesizeBatchTimeout = 250, signalBatchTimeout = 250) {
|
|
19
|
+
function createUserMethods(authStore, config, synthesizeBatchTimeout = 250, signalBatchTimeout = 250, synthesizeViewBatchTimeout = 50) {
|
|
18
20
|
const getConfigWithToken = authStore.getConfigWithToken.bind(authStore);
|
|
19
21
|
const synthesizeBatchManager = new synthesize_batch_manager_js_1.SynthesizeBatchManager(getConfigWithToken, synthesizeBatchTimeout);
|
|
20
22
|
const signalBatchManager = new signal_batch_manager_js_1.SignalBatchManager(getConfigWithToken, signalBatchTimeout);
|
|
23
|
+
const synthesizeViewBatchManager = new synthesize_view_batch_manager_js_1.SynthesizeViewBatchManager(getConfigWithToken, synthesizeViewBatchTimeout);
|
|
21
24
|
return {
|
|
22
25
|
authenticate: authStore.authenticate.bind(authStore),
|
|
23
26
|
token: (ssoToken) => (0, token_js_1.exchangeToken)(config, ssoToken),
|
|
@@ -33,6 +36,8 @@ function createUserMethods(authStore, config, synthesizeBatchTimeout = 250, sign
|
|
|
33
36
|
synthesizeItem: (item, onStreamingData) => synthesizeBatchManager.addItem(item, onStreamingData),
|
|
34
37
|
interactions: (options) => getConfigWithToken().then((cfg) => (0, interaction_js_1.getInteractions)(cfg, options)),
|
|
35
38
|
respondToInteraction: (interactionId, options) => getConfigWithToken().then((cfg) => (0, interaction_js_1.respondToInteraction)(cfg, interactionId, options)),
|
|
39
|
+
synthesizeViews: (items) => getConfigWithToken().then((cfg) => (0, synthesizeView_js_1.synthesizeViews)(cfg, items)),
|
|
40
|
+
synthesizeViewItem: (item) => synthesizeViewBatchManager.addItem(item),
|
|
36
41
|
};
|
|
37
42
|
}
|
|
38
43
|
//# sourceMappingURL=index.js.map
|
package/dist/user/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/user/index.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/user/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { RequestConfig } from '../request.js';
|
|
2
|
+
import { type SynthesizeViewRequestItem, type SynthesizeViewResponse } from './synthesizeView.js';
|
|
3
|
+
/**
|
|
4
|
+
* Coalesces individual view lookups (one per `<BitBitView>`) mounted within a
|
|
5
|
+
* short window into a single batched request, resolving each caller from the
|
|
6
|
+
* matching index in the response.
|
|
7
|
+
*/
|
|
8
|
+
export declare class SynthesizeViewBatchManager {
|
|
9
|
+
private queue;
|
|
10
|
+
private timer;
|
|
11
|
+
private getConfig;
|
|
12
|
+
private batchTimeout;
|
|
13
|
+
constructor(getConfig: () => Promise<RequestConfig>, batchTimeout: number);
|
|
14
|
+
addItem(item: SynthesizeViewRequestItem): Promise<SynthesizeViewResponse>;
|
|
15
|
+
private flush;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=synthesize-view-batch-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"synthesize-view-batch-manager.d.ts","sourceRoot":"","sources":["../../src/user/synthesize-view-batch-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EACL,KAAK,yBAAyB,EAC9B,KAAK,sBAAsB,EAE5B,MAAM,qBAAqB,CAAC;AAK7B;;;;GAIG;AACH,qBAAa,0BAA0B;IACrC,OAAO,CAAC,KAAK,CAIL;IACR,OAAO,CAAC,KAAK,CAAsB;IACnC,OAAO,CAAC,SAAS,CAA+B;IAChD,OAAO,CAAC,YAAY,CAAS;gBAEjB,SAAS,EAAE,MAAM,OAAO,CAAC,aAAa,CAAC,EAAE,YAAY,EAAE,MAAM;IAKzE,OAAO,CAAC,IAAI,EAAE,yBAAyB,GAAG,OAAO,CAAC,sBAAsB,CAAC;YAQ3D,KAAK;CAsBpB"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SynthesizeViewBatchManager = void 0;
|
|
4
|
+
const synthesizeView_js_1 = require("./synthesizeView.js");
|
|
5
|
+
/**
|
|
6
|
+
* Coalesces individual view lookups (one per `<BitBitView>`) mounted within a
|
|
7
|
+
* short window into a single batched request, resolving each caller from the
|
|
8
|
+
* matching index in the response.
|
|
9
|
+
*/
|
|
10
|
+
class SynthesizeViewBatchManager {
|
|
11
|
+
queue = [];
|
|
12
|
+
timer = null;
|
|
13
|
+
getConfig;
|
|
14
|
+
batchTimeout;
|
|
15
|
+
constructor(getConfig, batchTimeout) {
|
|
16
|
+
this.getConfig = getConfig;
|
|
17
|
+
this.batchTimeout = batchTimeout;
|
|
18
|
+
}
|
|
19
|
+
addItem(item) {
|
|
20
|
+
return new Promise((resolve, reject) => {
|
|
21
|
+
this.queue.push({ item, resolve, reject });
|
|
22
|
+
if (this.timer)
|
|
23
|
+
clearTimeout(this.timer);
|
|
24
|
+
this.timer = setTimeout(() => this.flush(), this.batchTimeout);
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
async flush() {
|
|
28
|
+
if (this.queue.length === 0)
|
|
29
|
+
return;
|
|
30
|
+
const batch = [...this.queue];
|
|
31
|
+
this.queue = [];
|
|
32
|
+
this.timer = null;
|
|
33
|
+
try {
|
|
34
|
+
const config = await this.getConfig();
|
|
35
|
+
const results = await (0, synthesizeView_js_1.synthesizeViews)(config, batch.map((b) => b.item));
|
|
36
|
+
batch.forEach((entry, index) => {
|
|
37
|
+
const result = results[index];
|
|
38
|
+
if (result)
|
|
39
|
+
entry.resolve(result);
|
|
40
|
+
else
|
|
41
|
+
entry.reject(new Error('No result for this item in the batch response'));
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
catch (error) {
|
|
45
|
+
const err = error instanceof Error ? error : new Error(String(error));
|
|
46
|
+
for (const entry of batch)
|
|
47
|
+
entry.reject(err);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
exports.SynthesizeViewBatchManager = SynthesizeViewBatchManager;
|
|
52
|
+
//# sourceMappingURL=synthesize-view-batch-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"synthesize-view-batch-manager.js","sourceRoot":"","sources":["../../src/user/synthesize-view-batch-manager.ts"],"names":[],"mappings":";;;AACA,2DAI6B;AAK7B;;;;GAIG;AACH,MAAa,0BAA0B;IAC7B,KAAK,GAIR,EAAE,CAAC;IACA,KAAK,GAAiB,IAAI,CAAC;IAC3B,SAAS,CAA+B;IACxC,YAAY,CAAS;IAE7B,YAAY,SAAuC,EAAE,YAAoB;QACvE,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;IAED,OAAO,CAAC,IAA+B;QACrC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;YAC3C,IAAI,IAAI,CAAC,KAAK;gBAAE,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACzC,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QACjE,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,KAAK;QACjB,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QACpC,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9B,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAElB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;YACtC,MAAM,OAAO,GAAG,MAAM,IAAA,mCAAe,EACnC,MAAM,EACN,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CACzB,CAAC;YACF,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;gBAC7B,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;gBAC9B,IAAI,MAAM;oBAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;;oBAC7B,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC,CAAC;YAChF,CAAC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,GAAG,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YACtE,KAAK,MAAM,KAAK,IAAI,KAAK;gBAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;CACF;AA7CD,gEA6CC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { RequestConfig } from '../request.js';
|
|
2
|
+
/** Optional input forwarded to a view's content synthesis (e.g. an article
|
|
3
|
+
* id the view should personalize against). */
|
|
4
|
+
export interface ContentInput {
|
|
5
|
+
type: string;
|
|
6
|
+
value: string;
|
|
7
|
+
}
|
|
8
|
+
/** Render-time view parameters. Independent from `contentInputs` — these
|
|
9
|
+
* affect flattening only and never reach the synthesis agent. */
|
|
10
|
+
export interface ViewInputs {
|
|
11
|
+
/** Provide the dark mode setting of the current UI to the agent. */
|
|
12
|
+
darkMode?: boolean;
|
|
13
|
+
}
|
|
14
|
+
/** One view to resolve in a `synthesizeViews` request. */
|
|
15
|
+
export interface SynthesizeViewRequestItem {
|
|
16
|
+
/** Stable identifier of the view to load. Configured in the BitBitPress
|
|
17
|
+
* CMS; same value you pass as `<BitBitView keyName="…">`. */
|
|
18
|
+
keyName: string;
|
|
19
|
+
/** Optional inputs the view's content synthesis should consider. */
|
|
20
|
+
contentInputs?: ContentInput[];
|
|
21
|
+
/** Render-time view parameters (theme variant, etc.). */
|
|
22
|
+
viewInputs?: ViewInputs;
|
|
23
|
+
}
|
|
24
|
+
export interface SynthesizeViewResponse {
|
|
25
|
+
/** Render-ready array a BB SDK renderer can display directly. Pass it
|
|
26
|
+
* to `<BitBitView>` / `<BitBitViewRenderer>` and you're done. Empty
|
|
27
|
+
* array when the view resolved but had no UI to render. */
|
|
28
|
+
uiData: unknown[];
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Resolve one or more synthesis views in a single request. Returns the
|
|
32
|
+
* responses in the same order as `items`; an item that doesn't match any
|
|
33
|
+
* view resolves to `{ uiData: [] }`.
|
|
34
|
+
*
|
|
35
|
+
* Most apps reach this through `<BitBitView keyName="…">` rather than
|
|
36
|
+
* calling it directly — that path also coalesces multiple `<BitBitView>`
|
|
37
|
+
* mounts within a short window into a single request via the SDK's batch
|
|
38
|
+
* manager.
|
|
39
|
+
*/
|
|
40
|
+
export declare function synthesizeViews(config: RequestConfig, items: SynthesizeViewRequestItem[]): Promise<SynthesizeViewResponse[]>;
|
|
41
|
+
//# sourceMappingURL=synthesizeView.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"synthesizeView.d.ts","sourceRoot":"","sources":["../../src/user/synthesizeView.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAGnD;+CAC+C;AAC/C,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED;kEACkE;AAClE,MAAM,WAAW,UAAU;IACzB,oEAAoE;IACpE,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,0DAA0D;AAC1D,MAAM,WAAW,yBAAyB;IACxC;kEAC8D;IAC9D,OAAO,EAAE,MAAM,CAAC;IAChB,oEAAoE;IACpE,aAAa,CAAC,EAAE,YAAY,EAAE,CAAC;IAC/B,yDAAyD;IACzD,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB;AAED,MAAM,WAAW,sBAAsB;IACrC;;gEAE4D;IAC5D,MAAM,EAAE,OAAO,EAAE,CAAC;CACnB;AAED;;;;;;;;;GASG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,yBAAyB,EAAE,GACjC,OAAO,CAAC,sBAAsB,EAAE,CAAC,CAYnC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.synthesizeViews = synthesizeViews;
|
|
4
|
+
const request_js_1 = require("../request.js");
|
|
5
|
+
/**
|
|
6
|
+
* Resolve one or more synthesis views in a single request. Returns the
|
|
7
|
+
* responses in the same order as `items`; an item that doesn't match any
|
|
8
|
+
* view resolves to `{ uiData: [] }`.
|
|
9
|
+
*
|
|
10
|
+
* Most apps reach this through `<BitBitView keyName="…">` rather than
|
|
11
|
+
* calling it directly — that path also coalesces multiple `<BitBitView>`
|
|
12
|
+
* mounts within a short window into a single request via the SDK's batch
|
|
13
|
+
* manager.
|
|
14
|
+
*/
|
|
15
|
+
async function synthesizeViews(config, items) {
|
|
16
|
+
const response = await (0, request_js_1.makeRequest)(config, {
|
|
17
|
+
method: 'POST',
|
|
18
|
+
path: '/v1/user/synthesize-views',
|
|
19
|
+
body: { items },
|
|
20
|
+
});
|
|
21
|
+
if (!response?.items) {
|
|
22
|
+
throw new Error('Failed to synthesize views: no items in response');
|
|
23
|
+
}
|
|
24
|
+
return response.items;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=synthesizeView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"synthesizeView.js","sourceRoot":"","sources":["../../src/user/synthesizeView.ts"],"names":[],"mappings":";;AA6CA,0CAeC;AA3DD,8CAA4C;AAkC5C;;;;;;;;;GASG;AACI,KAAK,UAAU,eAAe,CACnC,MAAqB,EACrB,KAAkC;IAElC,MAAM,QAAQ,GAAG,MAAM,IAAA,wBAAW,EAAsC,MAAM,EAAE;QAC9E,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,2BAA2B;QACjC,IAAI,EAAE,EAAE,KAAK,EAAE;KAChB,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACtE,CAAC;IAED,OAAO,QAAQ,CAAC,KAAK,CAAC;AACxB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bitbitpress/client",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.1.0-alpha.1",
|
|
4
4
|
"description": "BitBitPress TypeScript client library",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -10,6 +10,14 @@
|
|
|
10
10
|
"types": "./dist/index.d.ts",
|
|
11
11
|
"import": "./dist/index.js",
|
|
12
12
|
"require": "./dist/index.cjs"
|
|
13
|
+
},
|
|
14
|
+
"./react": {
|
|
15
|
+
"types": "./dist/react/index.d.ts",
|
|
16
|
+
"import": "./dist/react/index.js"
|
|
17
|
+
},
|
|
18
|
+
"./react-native-expo": {
|
|
19
|
+
"types": "./dist/react-native-expo/index.d.ts",
|
|
20
|
+
"import": "./dist/react-native-expo/index.js"
|
|
13
21
|
}
|
|
14
22
|
},
|
|
15
23
|
"files": [
|
|
@@ -18,7 +26,7 @@
|
|
|
18
26
|
],
|
|
19
27
|
"scripts": {
|
|
20
28
|
"prebuild": "rimraf dist",
|
|
21
|
-
"build": "tsc && npm run build:cjs && npm run copy:types",
|
|
29
|
+
"build": "tsc && tsc --project tsconfig.ui.json && npm run build:cjs && npm run copy:types",
|
|
22
30
|
"copy:types": "mkdir -p dist/generated && cp src/generated/openapi.d.ts dist/generated/openapi.d.ts && cp src/generated/openapi.ts dist/generated/openapi.ts",
|
|
23
31
|
"build:with-types": "npm run generate:types && npm run build",
|
|
24
32
|
"build:cjs": "tsc --project tsconfig.cjs.json",
|
|
@@ -29,8 +37,8 @@
|
|
|
29
37
|
"ts:watch": "tsc -w",
|
|
30
38
|
"lint": "biome check .",
|
|
31
39
|
"lint:fix": "biome check . --write",
|
|
32
|
-
"test": "tsx --test src/**/*.test.ts",
|
|
33
|
-
"test:watch": "tsx --test --watch src/**/*.test.ts",
|
|
40
|
+
"test": "TSX_TSCONFIG_PATH=./tsconfig.ui.json tsx --test src/**/*.test.ts",
|
|
41
|
+
"test:watch": "TSX_TSCONFIG_PATH=./tsconfig.ui.json tsx --test --watch src/**/*.test.ts",
|
|
34
42
|
"prepublishOnly": "npm run build"
|
|
35
43
|
},
|
|
36
44
|
"keywords": [
|
|
@@ -56,19 +64,35 @@
|
|
|
56
64
|
"devDependencies": {
|
|
57
65
|
"@biomejs/biome": "^2.3.11",
|
|
58
66
|
"@types/node": "^24.10.8",
|
|
67
|
+
"@types/react": "^18.3.12",
|
|
68
|
+
"@types/react-dom": "^18.3.1",
|
|
59
69
|
"chokidar-cli": "^3.0.0",
|
|
60
70
|
"npm-run-all": "^4.1.5",
|
|
61
71
|
"openapi-typescript": "^7.4.2",
|
|
72
|
+
"react": "^18.3.1",
|
|
73
|
+
"react-dom": "^18.3.1",
|
|
62
74
|
"rimraf": "^6.1.2",
|
|
63
75
|
"tsx": "^4.21.0",
|
|
64
76
|
"typescript": "^5.9.3"
|
|
65
77
|
},
|
|
66
78
|
"peerDependencies": {
|
|
67
|
-
"@types/react-native": "*"
|
|
79
|
+
"@types/react-native": "*",
|
|
80
|
+
"expo-linear-gradient": ">=12",
|
|
81
|
+
"react": ">=18",
|
|
82
|
+
"react-native": ">=0.76"
|
|
68
83
|
},
|
|
69
84
|
"peerDependenciesMeta": {
|
|
70
85
|
"@types/react-native": {
|
|
71
86
|
"optional": true
|
|
87
|
+
},
|
|
88
|
+
"expo-linear-gradient": {
|
|
89
|
+
"optional": true
|
|
90
|
+
},
|
|
91
|
+
"react": {
|
|
92
|
+
"optional": true
|
|
93
|
+
},
|
|
94
|
+
"react-native": {
|
|
95
|
+
"optional": true
|
|
72
96
|
}
|
|
73
97
|
}
|
|
74
98
|
}
|