@bitbitpress/client 1.1.1 → 1.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.
Files changed (48) hide show
  1. package/README.md +39 -19
  2. package/dist/data/assets.d.ts +11 -3
  3. package/dist/data/assets.d.ts.map +1 -1
  4. package/dist/data/assets.js +2 -2
  5. package/dist/data/assets.js.map +1 -1
  6. package/dist/data/index.d.ts +2 -2
  7. package/dist/generated/openapi.d.ts +41 -12
  8. package/dist/index.d.ts +1 -1
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/react/index.d.ts +16 -11
  11. package/dist/react/index.d.ts.map +1 -1
  12. package/dist/react/index.js +37 -10
  13. package/dist/react/index.js.map +1 -1
  14. package/dist/react-native-expo/BitBitView.d.ts +32 -0
  15. package/dist/react-native-expo/BitBitView.d.ts.map +1 -0
  16. package/dist/react-native-expo/BitBitView.js +130 -0
  17. package/dist/react-native-expo/BitBitView.js.map +1 -0
  18. package/dist/react-native-expo/bootstrapHtml.d.ts +20 -0
  19. package/dist/react-native-expo/bootstrapHtml.d.ts.map +1 -0
  20. package/dist/react-native-expo/bootstrapHtml.js +79 -0
  21. package/dist/react-native-expo/bootstrapHtml.js.map +1 -0
  22. package/dist/react-native-expo/index.d.ts +2 -0
  23. package/dist/react-native-expo/index.d.ts.map +1 -1
  24. package/dist/react-native-expo/index.js +1 -0
  25. package/dist/react-native-expo/index.js.map +1 -1
  26. package/dist/runtime/index.d.ts +13 -0
  27. package/dist/runtime/index.d.ts.map +1 -1
  28. package/dist/runtime/index.js.map +1 -1
  29. package/dist/synthesisUi/context.d.ts +2 -2
  30. package/dist/synthesisUi/context.js +1 -1
  31. package/dist/synthesisUi/types.d.ts +14 -2
  32. package/dist/synthesisUi/types.d.ts.map +1 -1
  33. package/dist/user/index.d.ts +5 -5
  34. package/dist/user/interaction.d.ts +2 -4
  35. package/dist/user/interaction.d.ts.map +1 -1
  36. package/dist/user/interaction.js +2 -4
  37. package/dist/user/interaction.js.map +1 -1
  38. package/dist/user/synthesize.d.ts +16 -15
  39. package/dist/user/synthesize.d.ts.map +1 -1
  40. package/dist/user/synthesize.js +2 -1
  41. package/dist/user/synthesize.js.map +1 -1
  42. package/dist/user/synthesizeUi.d.ts +35 -13
  43. package/dist/user/synthesizeUi.d.ts.map +1 -1
  44. package/dist/user/synthesizeUi.js +38 -9
  45. package/dist/user/synthesizeUi.js.map +1 -1
  46. package/dist/user/typeDefs.d.ts +13 -0
  47. package/dist/user/typeDefs.d.ts.map +1 -1
  48. package/package.json +7 -6
@@ -1,23 +1,32 @@
1
1
  import type { RequestConfig } from '../request.js';
2
+ import { type SynthesisHistoryEntry } from './synthesize.js';
3
+ import type { SynthesizeUiItem } from './typeDefs.js';
2
4
  export type SynthesisUiPlatform = 'web' | 'mobile';
3
- /** One UI to resolve in a `synthesizeUis` request. */
4
- export interface SynthesizeUiRequestItem {
5
- /** Stable identifier of the UI to load. Configured in the BitBitPress CMS;
6
- * same value you pass as `<BitBitSynthesis keyName="…">`. */
7
- keyName: string;
8
- }
5
+ /**
6
+ * One UI to resolve in a `synthesizeUis` request. Derived from the OpenAPI
7
+ * `/v1/user/synthesize-ui` request schema.
8
+ *
9
+ * Beyond `keyName`, this accepts the same per-item synthesis inputs as
10
+ * `/v1/user/synthesize` (`inputs`, `output.schema`, `searchOptionsOverrides`,
11
+ * `synthesisHistoryLimit`) — the UI's synthesis runs against the config attached
12
+ * to it. All synthesis fields are optional; omit them to render the UI's default,
13
+ * config-driven content.
14
+ */
15
+ export type SynthesizeUiRequestItem = SynthesizeUiItem;
9
16
  /** Request to resolve a single generated UI by `keyName` for a platform. */
10
- export interface SynthesizeUiRequest extends SynthesizeUiRequestItem {
17
+ export type SynthesizeUiRequest = SynthesizeUiRequestItem & {
11
18
  /** Target platform for the artifact. Defaults to `web`. */
12
19
  platform?: SynthesisUiPlatform;
13
- }
20
+ };
14
21
  /**
15
22
  * Streamed `/v1/user/synthesize-ui` events (SSE):
16
23
  * - `connected` / `complete` — connection lifecycle.
17
24
  * - `manifest` — emitted once: the deployment `theme` and, per index-matched
18
25
  * item, the bundle reference. The SDK loads bundles as soon as this arrives.
19
26
  * - data — `{ index, data, complete }`; may stream partials before the final
20
- * `complete: true`. `{ index, error }` on failure.
27
+ * `complete: true`. Mirrors `/v1/user/synthesize`: the final event may also
28
+ * carry `synthesisOutputId` and, when `synthesisHistoryLimit > 0`,
29
+ * `synthesisHistoryEntries`. `{ index, error }` on failure.
21
30
  */
22
31
  export type SynthesizeUiEvent = {
23
32
  type: 'connected';
@@ -35,9 +44,15 @@ export type SynthesizeUiEvent = {
35
44
  index: number;
36
45
  data?: unknown;
37
46
  complete: boolean;
47
+ /** Id of the `SynthesisOutput` this result corresponds to — pass it to the
48
+ * submission methods to attach/read app-user submissions. */
49
+ synthesisOutputId?: string;
50
+ /** @deprecated Legacy bare-payload form; prefer `synthesisHistoryEntries`. */
51
+ synthesisHistory?: unknown[];
52
+ synthesisHistoryEntries?: SynthesisHistoryEntry[];
38
53
  error?: string;
39
54
  };
40
- /** Per-UI stream event `<BitBitSynthesis>` consumes (one UI, not the batch). */
55
+ /** Per-UI stream event `<BitBitView>` consumes (one UI, not the batch). */
41
56
  export type SynthesisUiStreamEvent = {
42
57
  type: 'manifest';
43
58
  bundleUrl?: string | null;
@@ -47,6 +62,10 @@ export type SynthesisUiStreamEvent = {
47
62
  type: 'data';
48
63
  data: unknown;
49
64
  complete: boolean;
65
+ synthesisOutputId?: string;
66
+ /** @deprecated Legacy bare-payload form; prefer `synthesisHistoryEntries`. */
67
+ synthesisHistory?: unknown[];
68
+ synthesisHistoryEntries?: SynthesisHistoryEntry[];
50
69
  } | {
51
70
  type: 'error';
52
71
  error: string;
@@ -55,13 +74,16 @@ export type SynthesisUiStreamEvent = {
55
74
  * Resolve generated SynthesisUIs by `keyName` for a platform. Streams a
56
75
  * `manifest` (bundles + theme) followed by per-item `data` events, index-matched
57
76
  * to `items`. The bundle is served from a CDN by versioned `bundleUrl` and
58
- * cached across renders/users; `data` is the per-request piece.
77
+ * cached across renders/users; `data` is the per-request, per-user piece
78
+ * synthesized against each UI's attached config (same inputs/streaming as
79
+ * `/v1/user/synthesize`).
59
80
  */
60
81
  export declare function synthesizeUis(config: RequestConfig, items: SynthesizeUiRequestItem[], platform?: SynthesisUiPlatform): Promise<AsyncIterable<SynthesizeUiEvent>>;
61
82
  /**
62
83
  * Resolve a single generated SynthesisUI by `keyName`, as a per-UI stream
63
- * (manifest, then data). Most apps reach this through `<BitBitSynthesis
64
- * keyName="…">` rather than calling it directly.
84
+ * (manifest, then data). Most apps reach this through `<BitBitView
85
+ * keyName="…">` rather than calling it directly. Accepts the same optional
86
+ * synthesis inputs as `synthesizeUis` (forwarded through to the one item).
65
87
  */
66
88
  export declare function synthesizeUi(config: RequestConfig, request: SynthesizeUiRequest): Promise<AsyncIterable<SynthesisUiStreamEvent>>;
67
89
  //# sourceMappingURL=synthesizeUi.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"synthesizeUi.d.ts","sourceRoot":"","sources":["../../src/user/synthesizeUi.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAGnD,MAAM,MAAM,mBAAmB,GAAG,KAAK,GAAG,QAAQ,CAAC;AAEnD,sDAAsD;AACtD,MAAM,WAAW,uBAAuB;IACtC;kEAC8D;IAC9D,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,4EAA4E;AAC5E,MAAM,WAAW,mBAAoB,SAAQ,uBAAuB;IAClE,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,mBAAmB,CAAC;CAChC;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,iBAAiB,GACzB;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,GACrB;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,GACpB;IACE,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,EAAE,CAAC;CACrF,GACD;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzE,gFAAgF;AAChF,MAAM,MAAM,sBAAsB,GAC9B;IACE,IAAI,EAAE,UAAU,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC/B,GACD;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,GAClD;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAErC;;;;;GAKG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,uBAAuB,EAAE,EAChC,QAAQ,CAAC,EAAE,mBAAmB,GAC7B,OAAO,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC,CAM3C;AAED;;;;GAIG;AACH,wBAAsB,YAAY,CAChC,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,aAAa,CAAC,sBAAsB,CAAC,CAAC,CAwBhD"}
1
+ {"version":3,"file":"synthesizeUi.d.ts","sourceRoot":"","sources":["../../src/user/synthesizeUi.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAEnD,OAAO,EAAe,KAAK,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAC1E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEtD,MAAM,MAAM,mBAAmB,GAAG,KAAK,GAAG,QAAQ,CAAC;AAEnD;;;;;;;;;GASG;AACH,MAAM,MAAM,uBAAuB,GAAG,gBAAgB,CAAC;AAEvD,4EAA4E;AAC5E,MAAM,MAAM,mBAAmB,GAAG,uBAAuB,GAAG;IAC1D,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,mBAAmB,CAAC;CAChC,CAAC;AAEF;;;;;;;;;GASG;AACH,MAAM,MAAM,iBAAiB,GACzB;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,GACrB;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,GACpB;IACE,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,EAAE,CAAC;CACrF,GACD;IACE,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB;kEAC8D;IAC9D,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,8EAA8E;IAC9E,gBAAgB,CAAC,EAAE,OAAO,EAAE,CAAC;IAC7B,uBAAuB,CAAC,EAAE,qBAAqB,EAAE,CAAC;IAClD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEN,2EAA2E;AAC3E,MAAM,MAAM,sBAAsB,GAC9B;IACE,IAAI,EAAE,UAAU,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC/B,GACD;IACE,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,8EAA8E;IAC9E,gBAAgB,CAAC,EAAE,OAAO,EAAE,CAAC;IAC7B,uBAAuB,CAAC,EAAE,qBAAqB,EAAE,CAAC;CACnD,GACD;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAmBrC;;;;;;;GAOG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,uBAAuB,EAAE,EAChC,QAAQ,CAAC,EAAE,mBAAmB,GAC7B,OAAO,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC,CAM3C;AAED;;;;;GAKG;AACH,wBAAsB,YAAY,CAChC,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,aAAa,CAAC,sBAAsB,CAAC,CAAC,CAgChD"}
@@ -2,36 +2,58 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.synthesizeUis = synthesizeUis;
4
4
  exports.synthesizeUi = synthesizeUi;
5
+ const zod_1 = require("zod");
5
6
  const request_js_1 = require("../request.js");
7
+ const synthesize_js_1 = require("./synthesize.js");
8
+ /** Convert an item's `output.schema` to the wire form (a JSON-schema string),
9
+ * dropping `output` entirely when no schema is set so the server falls back to
10
+ * the config's declared schema. Zod 4 schemas are serialized to JSON schema. */
11
+ function toWireItem(item) {
12
+ const schema = item.output?.schema;
13
+ if (schema === undefined) {
14
+ const { output: _output, ...rest } = item;
15
+ return rest;
16
+ }
17
+ return {
18
+ ...item,
19
+ output: {
20
+ schema: (0, synthesize_js_1.isZodSchema)(schema) ? JSON.stringify((0, zod_1.toJSONSchema)(schema)) : schema,
21
+ },
22
+ };
23
+ }
6
24
  /**
7
25
  * Resolve generated SynthesisUIs by `keyName` for a platform. Streams a
8
26
  * `manifest` (bundles + theme) followed by per-item `data` events, index-matched
9
27
  * to `items`. The bundle is served from a CDN by versioned `bundleUrl` and
10
- * cached across renders/users; `data` is the per-request piece.
28
+ * cached across renders/users; `data` is the per-request, per-user piece
29
+ * synthesized against each UI's attached config (same inputs/streaming as
30
+ * `/v1/user/synthesize`).
11
31
  */
12
32
  async function synthesizeUis(config, items, platform) {
13
33
  return (0, request_js_1.makeRequest)(config, {
14
34
  method: 'POST',
15
35
  path: '/v1/user/synthesize-ui',
16
- body: { platform, items },
36
+ body: { platform, items: items.map(toWireItem) },
17
37
  });
18
38
  }
19
39
  /**
20
40
  * Resolve a single generated SynthesisUI by `keyName`, as a per-UI stream
21
- * (manifest, then data). Most apps reach this through `<BitBitSynthesis
22
- * keyName="…">` rather than calling it directly.
41
+ * (manifest, then data). Most apps reach this through `<BitBitView
42
+ * keyName="…">` rather than calling it directly. Accepts the same optional
43
+ * synthesis inputs as `synthesizeUis` (forwarded through to the one item).
23
44
  */
24
45
  async function synthesizeUi(config, request) {
25
- const stream = await synthesizeUis(config, [{ keyName: request.keyName }], request.platform);
46
+ const { platform, ...item } = request;
47
+ const stream = await synthesizeUis(config, [item], platform);
26
48
  return (async function* perUi() {
27
49
  for await (const event of stream) {
28
50
  if ('type' in event) {
29
51
  if (event.type === 'manifest') {
30
- const item = event.items.find((i) => i.index === 0);
52
+ const manifestItem = event.items.find((i) => i.index === 0);
31
53
  yield {
32
54
  type: 'manifest',
33
- bundleUrl: item?.bundleUrl,
34
- bundleSource: item?.bundleSource,
55
+ bundleUrl: manifestItem?.bundleUrl,
56
+ bundleSource: manifestItem?.bundleSource,
35
57
  theme: event.theme,
36
58
  };
37
59
  }
@@ -43,7 +65,14 @@ async function synthesizeUi(config, request) {
43
65
  yield { type: 'error', error: event.error };
44
66
  }
45
67
  else {
46
- yield { type: 'data', data: event.data, complete: event.complete };
68
+ yield {
69
+ type: 'data',
70
+ data: event.data,
71
+ complete: event.complete,
72
+ synthesisOutputId: event.synthesisOutputId,
73
+ synthesisHistory: event.synthesisHistory,
74
+ synthesisHistoryEntries: event.synthesisHistoryEntries,
75
+ };
47
76
  }
48
77
  }
49
78
  })();
@@ -1 +1 @@
1
- {"version":3,"file":"synthesizeUi.js","sourceRoot":"","sources":["../../src/user/synthesizeUi.ts"],"names":[],"mappings":";;AAqDA,sCAUC;AAOD,oCA2BC;AAhGD,8CAA4C;AA8C5C;;;;;GAKG;AACI,KAAK,UAAU,aAAa,CACjC,MAAqB,EACrB,KAAgC,EAChC,QAA8B;IAE9B,OAAO,IAAA,wBAAW,EAAmC,MAAM,EAAE;QAC3D,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,wBAAwB;QAC9B,IAAI,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE;KAC1B,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACI,KAAK,UAAU,YAAY,CAChC,MAAqB,EACrB,OAA4B;IAE5B,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC7F,OAAO,CAAC,KAAK,SAAS,CAAC,CAAC,KAAK;QAC3B,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YACjC,IAAI,MAAM,IAAI,KAAK,EAAE,CAAC;gBACpB,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;oBAC9B,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC;oBACpD,MAAM;wBACJ,IAAI,EAAE,UAAU;wBAChB,SAAS,EAAE,IAAI,EAAE,SAAS;wBAC1B,YAAY,EAAE,IAAI,EAAE,YAAY;wBAChC,KAAK,EAAE,KAAK,CAAC,KAAK;qBACnB,CAAC;gBACJ,CAAC;gBACD,SAAS;YACX,CAAC;YACD,IAAI,KAAK,CAAC,KAAK,KAAK,CAAC;gBAAE,SAAS;YAChC,IAAI,KAAK,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC;gBACxB,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;YAC9C,CAAC;iBAAM,CAAC;gBACN,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC;YACrE,CAAC;QACH,CAAC;IACH,CAAC,CAAC,EAAE,CAAC;AACP,CAAC"}
1
+ {"version":3,"file":"synthesizeUi.js","sourceRoot":"","sources":["../../src/user/synthesizeUi.ts"],"names":[],"mappings":";;AAqGA,sCAUC;AAQD,oCAmCC;AA1JD,6BAAmC;AAEnC,8CAA4C;AAC5C,mDAA0E;AAyE1E;;iFAEiF;AACjF,SAAS,UAAU,CAAC,IAA6B;IAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC;IACnC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;QAC1C,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO;QACL,GAAG,IAAI;QACP,MAAM,EAAE;YACN,MAAM,EAAE,IAAA,2BAAW,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAA,kBAAY,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM;SAC5E;KACF,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACI,KAAK,UAAU,aAAa,CACjC,MAAqB,EACrB,KAAgC,EAChC,QAA8B;IAE9B,OAAO,IAAA,wBAAW,EAAmC,MAAM,EAAE;QAC3D,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,wBAAwB;QAC9B,IAAI,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;KACjD,CAAC,CAAC;AACL,CAAC;AAED;;;;;GAKG;AACI,KAAK,UAAU,YAAY,CAChC,MAAqB,EACrB,OAA4B;IAE5B,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;IACtC,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC;IAC7D,OAAO,CAAC,KAAK,SAAS,CAAC,CAAC,KAAK;QAC3B,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YACjC,IAAI,MAAM,IAAI,KAAK,EAAE,CAAC;gBACpB,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;oBAC9B,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC;oBAC5D,MAAM;wBACJ,IAAI,EAAE,UAAU;wBAChB,SAAS,EAAE,YAAY,EAAE,SAAS;wBAClC,YAAY,EAAE,YAAY,EAAE,YAAY;wBACxC,KAAK,EAAE,KAAK,CAAC,KAAK;qBACnB,CAAC;gBACJ,CAAC;gBACD,SAAS;YACX,CAAC;YACD,IAAI,KAAK,CAAC,KAAK,KAAK,CAAC;gBAAE,SAAS;YAChC,IAAI,KAAK,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC;gBACxB,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;YAC9C,CAAC;iBAAM,CAAC;gBACN,MAAM;oBACJ,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;oBAC1C,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;oBACxC,uBAAuB,EAAE,KAAK,CAAC,uBAAuB;iBACvD,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC,CAAC,EAAE,CAAC;AACP,CAAC"}
@@ -20,6 +20,19 @@ export type SynthesizeItem = Omit<SynthesizeRequest['items'][number], 'output'>
20
20
  };
21
21
  /** Single input in an item's inputs array (externalId, text, or excludeExternalIds). */
22
22
  export type SynthesizeInput = NonNullable<SynthesizeItem['inputs']>[number];
23
+ /** Request body for POST /v1/user/synthesize-ui */
24
+ export type SynthesizeUiRequestBody = paths['/v1/user/synthesize-ui']['post']['requestBody']['content']['application/json'];
25
+ /**
26
+ * Single synthesize-ui request item (API shape), with `output` widened to accept
27
+ * a Zod 4 schema (converted to a JSON-schema string before sending), matching
28
+ * {@link SynthesizeItem}. Carries `keyName` (the UI) plus the same optional
29
+ * synthesis inputs as `/v1/user/synthesize`.
30
+ */
31
+ export type SynthesizeUiItem = Omit<SynthesizeUiRequestBody['items'][number], 'output'> & {
32
+ output?: {
33
+ schema?: SynthesizeOutputSchema;
34
+ };
35
+ };
23
36
  /** Output schema for a synthesize item: JSON schema as string, or a Zod 4 schema (converted to JSON schema string when sending). */
24
37
  export type SynthesizeOutputSchema = string | ZodType;
25
38
  /** Request body for POST /v1/user/recommendations (optional body) */
@@ -1 +1 @@
1
- {"version":3,"file":"typeDefs.d.ts","sourceRoot":"","sources":["../../src/user/typeDefs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AACnC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAErD,gDAAgD;AAChD,MAAM,MAAM,iBAAiB,GAC3B,KAAK,CAAC,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,CAAC,kBAAkB,CAAC,CAAC;AAErF,+EAA+E;AAC/E,MAAM,MAAM,4BAA4B,GAAG,iBAAiB,CAAC;AAE7D,6CAA6C;AAC7C,MAAM,MAAM,eAAe,GAAG,cAAc,EAAE,CAAC;AAE/C;;;;;;GAMG;AACH,MAAM,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,GAAG;IAChF,MAAM,CAAC,EAAE;QACP,MAAM,CAAC,EAAE,sBAAsB,CAAC;KACjC,CAAC;CACH,CAAC;AAEF,wFAAwF;AACxF,MAAM,MAAM,eAAe,GAAG,WAAW,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AAE5E,oIAAoI;AACpI,MAAM,MAAM,sBAAsB,GAAG,MAAM,GAAG,OAAO,CAAC;AAEtD,qEAAqE;AACrE,MAAM,MAAM,0BAA0B,GAAG,WAAW,CAClD,KAAK,CAAC,0BAA0B,CAAC,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CACzD,CAAC,SAAS,CAAC,CAAC,kBAAkB,CAAC,CAAC"}
1
+ {"version":3,"file":"typeDefs.d.ts","sourceRoot":"","sources":["../../src/user/typeDefs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AACnC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAErD,gDAAgD;AAChD,MAAM,MAAM,iBAAiB,GAC3B,KAAK,CAAC,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,CAAC,kBAAkB,CAAC,CAAC;AAErF,+EAA+E;AAC/E,MAAM,MAAM,4BAA4B,GAAG,iBAAiB,CAAC;AAE7D,6CAA6C;AAC7C,MAAM,MAAM,eAAe,GAAG,cAAc,EAAE,CAAC;AAE/C;;;;;;GAMG;AACH,MAAM,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,GAAG;IAChF,MAAM,CAAC,EAAE;QACP,MAAM,CAAC,EAAE,sBAAsB,CAAC;KACjC,CAAC;CACH,CAAC;AAEF,wFAAwF;AACxF,MAAM,MAAM,eAAe,GAAG,WAAW,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AAE5E,mDAAmD;AACnD,MAAM,MAAM,uBAAuB,GACjC,KAAK,CAAC,wBAAwB,CAAC,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,CAAC,kBAAkB,CAAC,CAAC;AAExF;;;;;GAKG;AACH,MAAM,MAAM,gBAAgB,GAAG,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,GAAG;IACxF,MAAM,CAAC,EAAE;QACP,MAAM,CAAC,EAAE,sBAAsB,CAAC;KACjC,CAAC;CACH,CAAC;AAEF,oIAAoI;AACpI,MAAM,MAAM,sBAAsB,GAAG,MAAM,GAAG,OAAO,CAAC;AAEtD,qEAAqE;AACrE,MAAM,MAAM,0BAA0B,GAAG,WAAW,CAClD,KAAK,CAAC,0BAA0B,CAAC,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CACzD,CAAC,SAAS,CAAC,CAAC,kBAAkB,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bitbitpress/client",
3
- "version": "1.1.1",
3
+ "version": "1.1.3",
4
4
  "description": "BitBitPress TypeScript client library",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -79,19 +79,20 @@
79
79
  "@types/react-native": "*",
80
80
  "expo-linear-gradient": ">=12",
81
81
  "react": ">=18",
82
- "react-native": ">=0.76"
82
+ "react-native": ">=0.76",
83
+ "react-native-webview": ">=13"
83
84
  },
84
85
  "peerDependenciesMeta": {
85
- "@types/react-native": {
86
+ "react-native": {
86
87
  "optional": true
87
88
  },
88
- "expo-linear-gradient": {
89
+ "react-native-webview": {
89
90
  "optional": true
90
91
  },
91
- "react": {
92
+ "expo-linear-gradient": {
92
93
  "optional": true
93
94
  },
94
- "react-native": {
95
+ "@types/react-native": {
95
96
  "optional": true
96
97
  }
97
98
  }