@builder.io/sdk-svelte 0.5.7 → 0.5.9

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 (114) hide show
  1. package/package/--package.json +7 -3
  2. package/package/CHANGELOG.md +8 -0
  3. package/package/blocks/button/button.svelte +4 -4
  4. package/package/blocks/button/button.svelte.d.ts +4 -4
  5. package/package/blocks/columns/columns.svelte +4 -4
  6. package/package/blocks/columns/columns.svelte.d.ts +4 -4
  7. package/package/blocks/custom-code/custom-code.svelte +1 -1
  8. package/package/blocks/custom-code/custom-code.svelte.d.ts +1 -1
  9. package/package/blocks/image/image.svelte +11 -11
  10. package/package/blocks/image/image.svelte.d.ts +11 -11
  11. package/package/blocks/img/img.svelte +6 -6
  12. package/package/blocks/img/img.svelte.d.ts +6 -6
  13. package/package/blocks/input/input.svelte +7 -7
  14. package/package/blocks/input/input.svelte.d.ts +7 -7
  15. package/package/blocks/raw-text/raw-text.svelte +2 -2
  16. package/package/blocks/raw-text/raw-text.svelte.d.ts +2 -2
  17. package/package/blocks/section/section.svelte +2 -2
  18. package/package/blocks/section/section.svelte.d.ts +2 -2
  19. package/package/blocks/select/select.svelte +5 -5
  20. package/package/blocks/select/select.svelte.d.ts +5 -5
  21. package/package/blocks/submit-button/submit-button.svelte +2 -2
  22. package/package/blocks/submit-button/submit-button.svelte.d.ts +2 -2
  23. package/package/blocks/symbol/symbol.svelte +3 -3
  24. package/package/blocks/symbol/symbol.svelte.d.ts +3 -3
  25. package/package/blocks/text/text.svelte +1 -1
  26. package/package/blocks/text/text.svelte.d.ts +1 -1
  27. package/package/blocks/textarea/textarea.svelte +5 -5
  28. package/package/blocks/textarea/textarea.svelte.d.ts +5 -5
  29. package/package/blocks/video/video.svelte +11 -11
  30. package/package/blocks/video/video.svelte.d.ts +11 -11
  31. package/package/components/block/components/component-ref/component-ref.svelte +1 -0
  32. package/package/components/blocks/blocks.svelte +2 -2
  33. package/package/components/blocks/blocks.svelte.d.ts +2 -2
  34. package/package/components/content/components/enable-editor.svelte +9 -8
  35. package/package/components/content/components/enable-editor.svelte.d.ts +7 -7
  36. package/package/components/content/components/styles.svelte +3 -3
  37. package/package/components/content/components/styles.svelte.d.ts +3 -3
  38. package/package/components/content/content.svelte +10 -10
  39. package/package/components/content/content.svelte.d.ts +10 -10
  40. package/package/components/content/content.types.d.ts +2 -2
  41. package/package/components/content-variants/content-variants.svelte +11 -11
  42. package/package/components/content-variants/content-variants.svelte.d.ts +13 -13
  43. package/package/components/content-variants/content-variants.types.d.ts +1 -1
  44. package/package/components/inlined-script.svelte +1 -1
  45. package/package/components/inlined-script.svelte.d.ts +1 -1
  46. package/package/components/inlined-styles.svelte +1 -1
  47. package/package/components/inlined-styles.svelte.d.ts +1 -1
  48. package/package/constants/sdk-version.d.ts +1 -1
  49. package/package/constants/sdk-version.js +1 -1
  50. package/package/functions/evaluate/browser-runtime/browser.d.ts +4 -0
  51. package/package/functions/evaluate/browser-runtime/browser.js +31 -0
  52. package/package/functions/evaluate/browser-runtime/index.d.ts +1 -0
  53. package/package/functions/evaluate/browser-runtime/index.js +1 -0
  54. package/package/functions/evaluate/evaluate.d.ts +4 -8
  55. package/package/functions/evaluate/evaluate.js +15 -38
  56. package/package/functions/evaluate/helpers.d.ts +18 -0
  57. package/package/functions/evaluate/helpers.js +10 -0
  58. package/package/functions/evaluate/index.d.ts +1 -1
  59. package/package/functions/evaluate/index.js +1 -1
  60. package/package/functions/evaluate/node-runtime/index.d.ts +1 -0
  61. package/package/functions/evaluate/node-runtime/index.js +1 -0
  62. package/package/functions/evaluate/non-node-runtime/non-node-runtime.d.ts +2 -2
  63. package/package/functions/evaluate/non-node-runtime/non-node-runtime.js +12 -13
  64. package/package/functions/fetch-builder-props.d.ts +2 -2
  65. package/package/functions/get-block-actions-handler.js +1 -1
  66. package/package/functions/register-component.js +1 -1
  67. package/package/index.d.ts +5 -14
  68. package/package/index.js +5 -9
  69. package/package/server-index.d.ts +15 -0
  70. package/package/server-index.js +10 -0
  71. package/package.json +1 -1
  72. package/src/blocks/button/button.svelte +4 -4
  73. package/src/blocks/columns/columns.svelte +6 -4
  74. package/src/blocks/custom-code/custom-code.svelte +1 -1
  75. package/src/blocks/image/image.svelte +11 -11
  76. package/src/blocks/img/img.svelte +6 -6
  77. package/src/blocks/input/input.svelte +7 -7
  78. package/src/blocks/raw-text/raw-text.svelte +2 -2
  79. package/src/blocks/section/section.svelte +2 -2
  80. package/src/blocks/select/select.svelte +5 -5
  81. package/src/blocks/submit-button/submit-button.svelte +2 -2
  82. package/src/blocks/symbol/symbol.svelte +4 -3
  83. package/src/blocks/text/text.svelte +1 -1
  84. package/src/blocks/textarea/textarea.svelte +5 -5
  85. package/src/blocks/video/video.svelte +11 -11
  86. package/src/components/block/components/component-ref/component-ref.svelte +1 -0
  87. package/src/components/blocks/blocks.svelte +3 -2
  88. package/src/components/content/components/enable-editor.svelte +9 -8
  89. package/src/components/content/components/styles.svelte +3 -3
  90. package/src/components/content/content.svelte +10 -10
  91. package/src/components/content/content.types.ts +2 -2
  92. package/src/components/content-variants/content-variants.svelte +15 -13
  93. package/src/components/content-variants/content-variants.types.ts +1 -1
  94. package/src/components/inlined-script.svelte +1 -1
  95. package/src/components/inlined-styles.svelte +1 -1
  96. package/src/constants/sdk-version.ts +1 -1
  97. package/src/functions/evaluate/browser-runtime/browser.ts +41 -0
  98. package/src/functions/evaluate/browser-runtime/index.ts +1 -0
  99. package/src/functions/evaluate/evaluate.ts +21 -53
  100. package/src/functions/evaluate/helpers.ts +32 -0
  101. package/src/functions/evaluate/index.ts +1 -1
  102. package/src/functions/evaluate/node-runtime/index.ts +1 -0
  103. package/src/functions/evaluate/non-node-runtime/non-node-runtime.ts +13 -14
  104. package/src/functions/fetch-builder-props.ts +2 -2
  105. package/src/functions/get-block-actions-handler.ts +1 -1
  106. package/src/functions/register-component.ts +1 -1
  107. package/src/index.ts +6 -14
  108. package/src/server-index.ts +15 -0
  109. package/package/functions/evaluate/types.d.ts +0 -11
  110. package/package/functions/evaluate/types.js +0 -1
  111. package/src/functions/evaluate/types.ts +0 -11
  112. /package/package/functions/evaluate/{acorn-interpreter.d.ts → non-node-runtime/acorn-interpreter.d.ts} +0 -0
  113. /package/package/functions/evaluate/{acorn-interpreter.js → non-node-runtime/acorn-interpreter.js} +0 -0
  114. /package/src/functions/evaluate/{acorn-interpreter.ts → non-node-runtime/acorn-interpreter.ts} +0 -0
@@ -1,7 +1,8 @@
1
- import { logger } from '../../../helpers/logger';
2
- import { set } from '../../set';
3
- import Interpreter from '../acorn-interpreter.js';
4
- import type { ExecutorArgs } from '../types';
1
+ import { logger } from '../../../helpers/logger.js';
2
+ import { set } from '../../set.js';
3
+ import Interpreter from './acorn-interpreter.js';
4
+ import type { ExecutorArgs } from '../helpers.js';
5
+ import { getFunctionArguments } from '../helpers.js';
5
6
  const processCode = (code: string) => {
6
7
  return code.split('\n').map(line => {
7
8
  const trimmed = line.trim();
@@ -29,25 +30,24 @@ export const runInNonNode = ({
29
30
  rootState,
30
31
  localState,
31
32
  rootSetState,
32
- useCode
33
+ code
33
34
  }: ExecutorArgs) => {
34
35
  const state = {
35
36
  ...rootState,
36
37
  ...localState
37
38
  };
38
- const properties = {
39
- state,
40
- Builder: builder,
39
+ const properties = getFunctionArguments({
41
40
  builder,
42
41
  context,
43
- event
44
- };
42
+ event,
43
+ state
44
+ });
45
45
 
46
46
  /**
47
47
  * Deserialize all properties from JSON strings to JS objects
48
48
  */
49
- const prependedCode = Object.keys(properties).map(key => `var ${key} = JSON.parse(${getJSONValName(key)});`).join('\n');
50
- const cleanedCode = processCode(useCode);
49
+ const prependedCode = properties.map(([key]) => `var ${key} = JSON.parse(${getJSONValName(key)});`).join('\n');
50
+ const cleanedCode = processCode(code);
51
51
  if (cleanedCode === '') {
52
52
  logger.warn('Skipping evaluation of empty code block.');
53
53
  return;
@@ -68,8 +68,7 @@ theFunction();
68
68
  /**
69
69
  * serialize all function args to JSON strings
70
70
  */
71
- Object.keys(properties).forEach(key => {
72
- const val = properties[(key as keyof typeof properties)] || {};
71
+ properties.forEach(([key, val]) => {
73
72
  const jsonVal = JSON.stringify(val);
74
73
  interpreter.setProperty(globalObject, getJSONValName(key), jsonVal);
75
74
  });
@@ -1,5 +1,5 @@
1
1
  import { getBuilderSearchParams } from './get-builder-search-params/index.js';
2
- import type { ContentVariantsProps } from '../components/content-variants/content-variants.types.js';
2
+ import type { ContentVariantsPrps } from '../components/content-variants/content-variants.types.js';
3
3
  import type { Dictionary } from '../types/typescript.js';
4
4
  import { fetchOneEntry } from './get-content/index.js';
5
5
  import type { GetContentOptions } from './get-content/types.js';
@@ -39,7 +39,7 @@ type GetBuilderPropsOptions = (Omit<GetContentOptions, 'model'> & {
39
39
  /**
40
40
  * Fetches builder content, and returns it along with sensible defaults for other props that `Content` needs to render.
41
41
  */
42
- export const fetchBuilderProps = async (_args: GetBuilderPropsOptions): Promise<ContentVariantsProps> => {
42
+ export const fetchBuilderProps = async (_args: GetBuilderPropsOptions): Promise<ContentVariantsPrps> => {
43
43
  const urlPath = _args.path || _args.url?.pathname || _args.userAttributes?.urlPath;
44
44
  const getContentArgs: GetContentOptions = {
45
45
  ..._args,
@@ -1,6 +1,6 @@
1
1
  import type { BuilderContextInterface } from '../context/types.js';
2
2
  import type { BuilderBlock } from '../types/builder-block.js';
3
- import { evaluate } from './evaluate';
3
+ import { evaluate } from './evaluate/index.js';
4
4
  type Options = {
5
5
  block: BuilderBlock;
6
6
  } & Pick<BuilderContextInterface, 'localState' | 'context' | 'rootState' | 'rootSetState'>;
@@ -21,7 +21,7 @@ export function registerComponent(component: any, info: ComponentInfo): void {
21
21
  }
22
22
  export const createRegisterComponentMessage = (info: ComponentInfo) => ({
23
23
  type: 'builder.registerComponent',
24
- data: info
24
+ data: serializeComponentInfo(info)
25
25
  });
26
26
 
27
27
  // eslint-disable-next-line @typescript-eslint/ban-types
package/src/index.ts CHANGED
@@ -1,16 +1,8 @@
1
1
  export * from './index-helpers/top-of-file.js';
2
2
  export * from './index-helpers/blocks-exports.js';
3
- export { isEditing } from './functions/is-editing.js';
4
- export { isPreviewing } from './functions/is-previewing.js';
5
- export { createRegisterComponentMessage } from './functions/register-component.js';
6
- export { register } from './functions/register.js';
7
- export type { InsertMenuConfig, InsertMenuItem } from './functions/register.js';
8
- export { setEditorSettings } from './functions/set-editor-settings.js';
9
- export type { Settings } from './functions/set-editor-settings.js';
10
- export { fetchEntries, fetchOneEntry, getAllContent, getContent, _processContentResult } from './functions/get-content/index.js';
11
- export { getBuilderSearchParams } from './functions/get-builder-search-params/index.js';
12
- export { track } from './functions/track/index.js';
13
- export type { RegisteredComponent } from './context/types.js';
14
- export type { ComponentInfo } from './types/components.js';
15
- export type { ContentProps } from './components/content/content.types.js';
16
- export { fetchBuilderProps } from './functions/fetch-builder-props.js'
3
+
4
+ /**
5
+ * We have a separate entry point to the SDKs that guarantees no components are being imported. This is useful
6
+ * for React SDK, which would break in the NextJS App directory because the component imports have `use client` in them.
7
+ */
8
+ export * from './server-index.js'
@@ -0,0 +1,15 @@
1
+ export * from './index-helpers/top-of-file.js';
2
+ export { isEditing } from './functions/is-editing.js';
3
+ export { isPreviewing } from './functions/is-previewing.js';
4
+ export { createRegisterComponentMessage } from './functions/register-component.js';
5
+ export { register } from './functions/register.js';
6
+ export type { InsertMenuConfig, InsertMenuItem } from './functions/register.js';
7
+ export { setEditorSettings } from './functions/set-editor-settings.js';
8
+ export type { Settings } from './functions/set-editor-settings.js';
9
+ export { fetchEntries, fetchOneEntry, getAllContent, getContent, _processContentResult } from './functions/get-content/index.js';
10
+ export { getBuilderSearchParams } from './functions/get-builder-search-params/index.js';
11
+ export { track } from './functions/track/index.js';
12
+ export type { RegisteredComponent } from './context/types.js';
13
+ export type { ComponentInfo } from './types/components.js';
14
+ export type { ContentProps } from './components/content/content.types.js';
15
+ export { fetchBuilderProps } from './functions/fetch-builder-props.js'
@@ -1,11 +0,0 @@
1
- import type { BuilderContextInterface } from '../../context/types';
2
- export type ExecutorArgs = Pick<BuilderContextInterface, 'localState' | 'context' | 'rootState' | 'rootSetState'> & {
3
- useCode: string;
4
- builder: {
5
- isEditing: boolean | undefined;
6
- isBrowser: boolean | undefined;
7
- isServer: boolean | undefined;
8
- };
9
- event: Event | undefined;
10
- };
11
- export type Executor = (args: ExecutorArgs) => any;
@@ -1 +0,0 @@
1
- export {};
@@ -1,11 +0,0 @@
1
- import type { BuilderContextInterface } from '../../context/types';
2
- export type ExecutorArgs = Pick<BuilderContextInterface, 'localState' | 'context' | 'rootState' | 'rootSetState'> & {
3
- useCode: string;
4
- builder: {
5
- isEditing: boolean | undefined;
6
- isBrowser: boolean | undefined;
7
- isServer: boolean | undefined;
8
- };
9
- event: Event | undefined;
10
- };
11
- export type Executor = (args: ExecutorArgs) => any