@01.software/sdk 0.19.0 → 0.21.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.
@@ -30,6 +30,31 @@ interface UseCanvasDataResult {
30
30
  */
31
31
  declare function useCanvasData(options: UseCanvasDataOptions): UseCanvasDataResult;
32
32
 
33
+ interface QuickJSHandle {
34
+ dispose(): void;
35
+ }
36
+ type QuickJSResult = {
37
+ value: QuickJSHandle;
38
+ error?: never;
39
+ } | {
40
+ error: QuickJSHandle;
41
+ value?: never;
42
+ };
43
+ interface QuickJSRuntime {
44
+ setInterruptHandler(cb: () => boolean): void;
45
+ }
46
+ interface QuickJSContext {
47
+ runtime: QuickJSRuntime;
48
+ evalCode(code: string, filename?: string): QuickJSResult;
49
+ dump(handle: QuickJSHandle): unknown;
50
+ unwrapResult(result: QuickJSResult): QuickJSHandle;
51
+ dispose(): void;
52
+ }
53
+ interface QuickJSModule {
54
+ newContext(): QuickJSContext;
55
+ }
56
+ declare function useQuickJS(): QuickJSModule | null;
57
+
33
58
  interface CodeComponentProps {
34
59
  fields: Record<string, unknown>;
35
60
  label: string;
@@ -194,4 +219,4 @@ interface CanvasFrameProps extends Omit<CanvasRendererProps, 'data' | 'nodeTypeD
194
219
  */
195
220
  declare function CanvasFrame({ client, slug, id, frameId, loading, error: renderError, onDataReady, ...rendererProps }: CanvasFrameProps): React.JSX.Element | null;
196
221
 
197
- export { CanvasBounds, CanvasData, CanvasEdge, CanvasFrame, type CanvasFrameProps, CanvasNode, CanvasRenderer, type CanvasRendererProps, CanvasViewport, type CodeComponentProps, DynamicNodeSlotProps, EdgeSlotProps, EdgeTypeDef, FrameData, FrameNodeSlotProps, NodeTypeDef, NodeTypeFieldDef, NodeWrapperSlotProps, SDKClient, type UseCanvasDataOptions, type UseCanvasDataResult, clearTemplateCache, compileTemplate, getBooleanField, getImageField, getNumberField, getTextField, renderFieldValue, sanitizeCSS, useCanvasData };
222
+ export { CanvasBounds, CanvasData, CanvasEdge, CanvasFrame, type CanvasFrameProps, CanvasNode, CanvasRenderer, type CanvasRendererProps, CanvasViewport, type CodeComponentProps, DynamicNodeSlotProps, EdgeSlotProps, EdgeTypeDef, FrameData, FrameNodeSlotProps, NodeTypeDef, NodeTypeFieldDef, NodeWrapperSlotProps, SDKClient, type UseCanvasDataOptions, type UseCanvasDataResult, clearTemplateCache, compileTemplate, getBooleanField, getImageField, getNumberField, getTextField, renderFieldValue, sanitizeCSS, useCanvasData, useQuickJS };
@@ -30,6 +30,31 @@ interface UseCanvasDataResult {
30
30
  */
31
31
  declare function useCanvasData(options: UseCanvasDataOptions): UseCanvasDataResult;
32
32
 
33
+ interface QuickJSHandle {
34
+ dispose(): void;
35
+ }
36
+ type QuickJSResult = {
37
+ value: QuickJSHandle;
38
+ error?: never;
39
+ } | {
40
+ error: QuickJSHandle;
41
+ value?: never;
42
+ };
43
+ interface QuickJSRuntime {
44
+ setInterruptHandler(cb: () => boolean): void;
45
+ }
46
+ interface QuickJSContext {
47
+ runtime: QuickJSRuntime;
48
+ evalCode(code: string, filename?: string): QuickJSResult;
49
+ dump(handle: QuickJSHandle): unknown;
50
+ unwrapResult(result: QuickJSResult): QuickJSHandle;
51
+ dispose(): void;
52
+ }
53
+ interface QuickJSModule {
54
+ newContext(): QuickJSContext;
55
+ }
56
+ declare function useQuickJS(): QuickJSModule | null;
57
+
33
58
  interface CodeComponentProps {
34
59
  fields: Record<string, unknown>;
35
60
  label: string;
@@ -194,4 +219,4 @@ interface CanvasFrameProps extends Omit<CanvasRendererProps, 'data' | 'nodeTypeD
194
219
  */
195
220
  declare function CanvasFrame({ client, slug, id, frameId, loading, error: renderError, onDataReady, ...rendererProps }: CanvasFrameProps): React.JSX.Element | null;
196
221
 
197
- export { CanvasBounds, CanvasData, CanvasEdge, CanvasFrame, type CanvasFrameProps, CanvasNode, CanvasRenderer, type CanvasRendererProps, CanvasViewport, type CodeComponentProps, DynamicNodeSlotProps, EdgeSlotProps, EdgeTypeDef, FrameData, FrameNodeSlotProps, NodeTypeDef, NodeTypeFieldDef, NodeWrapperSlotProps, SDKClient, type UseCanvasDataOptions, type UseCanvasDataResult, clearTemplateCache, compileTemplate, getBooleanField, getImageField, getNumberField, getTextField, renderFieldValue, sanitizeCSS, useCanvasData };
222
+ export { CanvasBounds, CanvasData, CanvasEdge, CanvasFrame, type CanvasFrameProps, CanvasNode, CanvasRenderer, type CanvasRendererProps, CanvasViewport, type CodeComponentProps, DynamicNodeSlotProps, EdgeSlotProps, EdgeTypeDef, FrameData, FrameNodeSlotProps, NodeTypeDef, NodeTypeFieldDef, NodeWrapperSlotProps, SDKClient, type UseCanvasDataOptions, type UseCanvasDataResult, clearTemplateCache, compileTemplate, getBooleanField, getImageField, getNumberField, getTextField, renderFieldValue, sanitizeCSS, useCanvasData, useQuickJS };
package/dist/ui/canvas.js CHANGED
@@ -211,6 +211,37 @@ function useCanvasData(options) {
211
211
  };
212
212
  }
213
213
 
214
+ // src/ui/Canvas/quickjs-loader.ts
215
+ import { useSyncExternalStore } from "react";
216
+ var _state = { status: "idle", module: null };
217
+ var _listeners = /* @__PURE__ */ new Set();
218
+ function _notify() {
219
+ _listeners.forEach((fn) => fn());
220
+ }
221
+ function subscribeQuickJS(cb) {
222
+ _listeners.add(cb);
223
+ return () => _listeners.delete(cb);
224
+ }
225
+ function getQuickJSSnapshot() {
226
+ return _state.module;
227
+ }
228
+ function ensureQuickJSLoaded() {
229
+ if (_state.status !== "idle") return;
230
+ _state = { status: "loading", module: null };
231
+ import("quickjs-emscripten").then(
232
+ (mod) => mod.getQuickJS()
233
+ ).then((module) => {
234
+ _state = { status: "ready", module };
235
+ _notify();
236
+ }).catch(() => {
237
+ _state = { status: "failed", module: null };
238
+ _notify();
239
+ });
240
+ }
241
+ function useQuickJS() {
242
+ return useSyncExternalStore(subscribeQuickJS, getQuickJSSnapshot, () => null);
243
+ }
244
+
214
245
  // src/ui/Canvas/utils.ts
215
246
  function getNodeSize(node) {
216
247
  return {
@@ -330,39 +361,6 @@ function getFrameData(data, frameId) {
330
361
  // src/ui/Canvas/template-compiler.ts
331
362
  import React from "react";
332
363
  import { transform } from "sucrase";
333
-
334
- // src/ui/Canvas/quickjs-loader.ts
335
- import { useSyncExternalStore } from "react";
336
- var _state = { status: "idle", module: null };
337
- var _listeners = /* @__PURE__ */ new Set();
338
- function _notify() {
339
- _listeners.forEach((fn) => fn());
340
- }
341
- function subscribeQuickJS(cb) {
342
- _listeners.add(cb);
343
- return () => _listeners.delete(cb);
344
- }
345
- function getQuickJSSnapshot() {
346
- return _state.module;
347
- }
348
- function ensureQuickJSLoaded() {
349
- if (_state.status !== "idle") return;
350
- _state = { status: "loading", module: null };
351
- import("quickjs-emscripten").then(
352
- (mod) => mod.getQuickJS()
353
- ).then((module) => {
354
- _state = { status: "ready", module };
355
- _notify();
356
- }).catch(() => {
357
- _state = { status: "failed", module: null };
358
- _notify();
359
- });
360
- }
361
- function useQuickJS() {
362
- return useSyncExternalStore(subscribeQuickJS, getQuickJSSnapshot, () => null);
363
- }
364
-
365
- // src/ui/Canvas/template-compiler.ts
366
364
  var WIRE_FORMAT_VERSION = 1;
367
365
  var MAX_CACHE_SIZE = 100;
368
366
  var MAX_MATERIALIZE_DEPTH = 20;
@@ -1641,6 +1639,7 @@ export {
1641
1639
  renderFieldValue,
1642
1640
  sanitizeCSS,
1643
1641
  useCanvas,
1644
- useCanvasData
1642
+ useCanvasData,
1643
+ useQuickJS
1645
1644
  };
1646
1645
  //# sourceMappingURL=canvas.js.map