@builder.io/sdk-react-native 5.0.0 → 5.1.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.
Files changed (31) hide show
  1. package/lib/browser/commonjs/constants/sdk-version.js +1 -1
  2. package/lib/browser/commonjs/functions/evaluate/node-runtime/node-runtime.js +72 -68
  3. package/lib/browser/commonjs/functions/evaluate/node-runtime/node-runtime.js.map +1 -1
  4. package/lib/browser/module/constants/sdk-version.js +1 -1
  5. package/lib/browser/module/functions/evaluate/node-runtime/node-runtime.js +72 -68
  6. package/lib/browser/module/functions/evaluate/node-runtime/node-runtime.js.map +1 -1
  7. package/lib/browser/typescript/constants/sdk-version.d.ts +1 -1
  8. package/lib/browser/typescript/types/input.d.ts +1 -1
  9. package/lib/browser/typescript/types/input.d.ts.map +1 -1
  10. package/lib/edge/commonjs/constants/sdk-version.js +1 -1
  11. package/lib/edge/commonjs/functions/evaluate/node-runtime/node-runtime.js +72 -68
  12. package/lib/edge/commonjs/functions/evaluate/node-runtime/node-runtime.js.map +1 -1
  13. package/lib/edge/module/constants/sdk-version.js +1 -1
  14. package/lib/edge/module/functions/evaluate/node-runtime/node-runtime.js +72 -68
  15. package/lib/edge/module/functions/evaluate/node-runtime/node-runtime.js.map +1 -1
  16. package/lib/edge/typescript/constants/sdk-version.d.ts +1 -1
  17. package/lib/edge/typescript/types/input.d.ts +1 -1
  18. package/lib/edge/typescript/types/input.d.ts.map +1 -1
  19. package/lib/node/commonjs/constants/sdk-version.js +1 -1
  20. package/lib/node/commonjs/functions/evaluate/node-runtime/node-runtime.js +72 -68
  21. package/lib/node/commonjs/functions/evaluate/node-runtime/node-runtime.js.map +1 -1
  22. package/lib/node/module/constants/sdk-version.js +1 -1
  23. package/lib/node/module/functions/evaluate/node-runtime/node-runtime.js +72 -68
  24. package/lib/node/module/functions/evaluate/node-runtime/node-runtime.js.map +1 -1
  25. package/lib/node/typescript/constants/sdk-version.d.ts +1 -1
  26. package/lib/node/typescript/types/input.d.ts +1 -1
  27. package/lib/node/typescript/types/input.d.ts.map +1 -1
  28. package/package.json +1 -1
  29. package/src/constants/sdk-version.ts +1 -1
  30. package/src/functions/evaluate/node-runtime/node-runtime.ts +73 -69
  31. package/src/types/input.ts +1 -1
@@ -61,17 +61,23 @@ if (typeof output === 'object' && output !== null) {
61
61
  `;
62
62
  };
63
63
  let IVM_INSTANCE = null;
64
- let IVM_CONTEXT = null;
64
+ // Create fresh isolates per request to prevent memory leaks
65
+ let IVM_OPTIONS = {
66
+ memoryLimit: 128
67
+ };
65
68
 
66
69
  /**
67
70
  * Set the `isolated-vm` instance to be used by the node runtime.
68
71
  * This is useful for environments that are not able to rely on our
69
72
  * `safeDynamicRequire` trick to import the `isolated-vm` package.
70
73
  */
71
- export const setIvm = (ivm, options = {}) => {
74
+ export const setIvm = (ivm, options) => {
72
75
  if (IVM_INSTANCE) return;
73
76
  IVM_INSTANCE = ivm;
74
- setIsolateContext(options);
77
+ // Store options to be used per-request in runInNode
78
+ if (options) {
79
+ IVM_OPTIONS = options;
80
+ }
75
81
  };
76
82
 
77
83
  // only mention the script for SDKs that have it.
@@ -94,30 +100,6 @@ const getIvm = () => {
94
100
  For more information, visit https://builder.io/c/docs/integration-tips#enabling-data-bindings-in-node-environments`;
95
101
  throw new Error(ERROR_MESSAGE);
96
102
  };
97
- function setIsolateContext(options = {
98
- memoryLimit: 128
99
- }) {
100
- if (IVM_CONTEXT) return IVM_CONTEXT;
101
- const ivm = getIvm();
102
- const isolate = new ivm.Isolate(options);
103
- const context = isolate.createContextSync();
104
- const jail = context.global;
105
-
106
- // This makes the global object available in the context as `global`. We use `derefInto()` here
107
- // because otherwise `global` would actually be a Reference{} object in the new isolate.
108
- jail.setSync('global', jail.derefInto());
109
-
110
- // We will create a basic `log` function for the new isolate to use.
111
- jail.setSync('log', function (...logArgs) {
112
- console.log(...logArgs);
113
- });
114
- jail.setSync(INJECTED_IVM_GLOBAL, ivm);
115
- IVM_CONTEXT = context;
116
- return context;
117
- }
118
- const getIsolateContext = () => {
119
- return setIsolateContext();
120
- };
121
103
  export const runInNode = ({
122
104
  code,
123
105
  builder,
@@ -128,49 +110,71 @@ export const runInNode = ({
128
110
  rootState
129
111
  }) => {
130
112
  const ivm = getIvm();
131
- const state = fastClone({
132
- ...rootState,
133
- ...localState
134
- });
135
- const args = getFunctionArguments({
136
- builder,
137
- context,
138
- event,
139
- state
140
- });
141
- const isolateContext = getIsolateContext();
142
- const jail = isolateContext.global;
143
113
 
144
- /**
145
- * Propagate state changes back to the reactive root state.
146
- */
147
- jail.setSync(BUILDER_SET_STATE_NAME, function (key, value) {
148
- // mutate the `rootState` object itself. Important for cases where we do not have `rootSetState`
149
- // like Qwik.
150
- set(rootState, key, value);
151
- // call the `rootSetState` function if it exists
152
- rootSetState === null || rootSetState === void 0 || rootSetState(rootState);
153
- });
154
- args.forEach(([key, arg]) => {
155
- const val = typeof arg === 'object' ? new ivm.Reference(
156
- // workaround: methods with default values for arguments is not being cloned over
157
- key === 'builder' ? {
158
- ...arg,
159
- getUserAttributes: () => arg.getUserAttributes()
160
- } : arg) : null;
161
- jail.setSync(getSyncValName(key), val);
162
- });
163
- const evalStr = processCode({
164
- code,
165
- args
166
- });
167
- const resultStr = isolateContext.evalClosureSync(evalStr);
114
+ // Use stored options from setIvm, or default to { memoryLimit: 128 }
115
+ let isolate;
168
116
  try {
169
- // returning objects throw errors in isolated vm, so we stringify it and parse it back
170
- const res = JSON.parse(resultStr);
171
- return res;
172
- } catch (_error) {
173
- return resultStr;
117
+ isolate = new ivm.Isolate(IVM_OPTIONS);
118
+ const isolateContext = isolate.createContextSync();
119
+ const jail = isolateContext.global;
120
+
121
+ // Setup the isolate
122
+ jail.setSync('global', jail.derefInto());
123
+ jail.setSync('log', function (...logArgs) {
124
+ console.log(...logArgs);
125
+ });
126
+ jail.setSync(INJECTED_IVM_GLOBAL, ivm);
127
+ const state = fastClone({
128
+ ...rootState,
129
+ ...localState
130
+ });
131
+ const args = getFunctionArguments({
132
+ builder,
133
+ context,
134
+ event,
135
+ state
136
+ });
137
+
138
+ /**
139
+ * Propagate state changes back to the reactive root state.
140
+ */
141
+ jail.setSync(BUILDER_SET_STATE_NAME, function (key, value) {
142
+ // mutate the `rootState` object itself. Important for cases where we do not have `rootSetState`
143
+ // like Qwik.
144
+ set(rootState, key, value);
145
+ // call the `rootSetState` function if it exists
146
+ rootSetState === null || rootSetState === void 0 || rootSetState(rootState);
147
+ });
148
+ args.forEach(([key, arg]) => {
149
+ const val = typeof arg === 'object' ? new ivm.Reference(
150
+ // workaround: methods with default values for arguments is not being cloned over
151
+ key === 'builder' ? {
152
+ ...arg,
153
+ getUserAttributes: () => arg.getUserAttributes()
154
+ } : arg) : null;
155
+ jail.setSync(getSyncValName(key), val);
156
+ });
157
+ const evalStr = processCode({
158
+ code,
159
+ args
160
+ });
161
+ const resultStr = isolateContext.evalClosureSync(evalStr);
162
+ try {
163
+ // returning objects throw errors in isolated vm, so we stringify it and parse it back
164
+ const res = JSON.parse(resultStr);
165
+ return res;
166
+ } catch (_error) {
167
+ return resultStr;
168
+ }
169
+ } finally {
170
+ // Destroy the entire VM, this frees ALL memory at the C++ level.
171
+ if (isolate) {
172
+ try {
173
+ isolate.dispose();
174
+ } catch (e) {
175
+ // Ignore disposal errors
176
+ }
177
+ }
174
178
  }
175
179
  };
176
180
  //# sourceMappingURL=node-runtime.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["SDK_NAME","MSG_PREFIX","logger","fastClone","set","getFunctionArguments","safeDynamicRequire","getSyncValName","key","BUILDER_SET_STATE_NAME","INJECTED_IVM_GLOBAL","REF_TO_PROXY_FN","processCode","code","args","fnArgs","map","name","join","IVM_INSTANCE","IVM_CONTEXT","setIvm","ivm","options","setIsolateContext","SHOULD_MENTION_INITIALIZE_SCRIPT","getIvm","dynRequiredIvm","error","ERROR_MESSAGE","Error","memoryLimit","isolate","Isolate","context","createContextSync","jail","global","setSync","derefInto","logArgs","console","log","getIsolateContext","runInNode","builder","event","localState","rootSetState","rootState","state","isolateContext","value","forEach","arg","val","Reference","getUserAttributes","evalStr","resultStr","evalClosureSync","res","JSON","parse","_error"],"sourceRoot":"../../../../../../src","sources":["functions/evaluate/node-runtime/node-runtime.ts"],"mappings":"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"}
1
+ {"version":3,"names":["SDK_NAME","MSG_PREFIX","logger","fastClone","set","getFunctionArguments","safeDynamicRequire","getSyncValName","key","BUILDER_SET_STATE_NAME","INJECTED_IVM_GLOBAL","REF_TO_PROXY_FN","processCode","code","args","fnArgs","map","name","join","IVM_INSTANCE","IVM_OPTIONS","memoryLimit","setIvm","ivm","options","SHOULD_MENTION_INITIALIZE_SCRIPT","getIvm","dynRequiredIvm","error","ERROR_MESSAGE","Error","runInNode","builder","context","event","localState","rootSetState","rootState","isolate","Isolate","isolateContext","createContextSync","jail","global","setSync","derefInto","logArgs","console","log","state","value","forEach","arg","val","Reference","getUserAttributes","evalStr","resultStr","evalClosureSync","res","JSON","parse","_error","dispose","e"],"sourceRoot":"../../../../../../src","sources":["functions/evaluate/node-runtime/node-runtime.ts"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export declare const SDK_VERSION = "5.0.0";
1
+ export declare const SDK_VERSION = "5.1.0";
2
2
  //# sourceMappingURL=sdk-version.d.ts.map
@@ -3,7 +3,7 @@ export interface Input {
3
3
  name: string;
4
4
  /** A friendlier name to show in the UI if the component prop name is not ideal for end users */
5
5
  friendlyName?: string;
6
- /** @hidden @deprecated */
6
+ /** A description to show in the UI to give guidance on how to use this input */
7
7
  description?: string;
8
8
  /** A default value to use */
9
9
  defaultValue?: any;
@@ -1 +1 @@
1
- {"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../../../../src/types/input.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../../../../src/types/input.ts"],"names":[],"mappings":"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"}
@@ -4,5 +4,5 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.SDK_VERSION = void 0;
7
- const SDK_VERSION = exports.SDK_VERSION = "5.0.0";
7
+ const SDK_VERSION = exports.SDK_VERSION = "5.1.0";
8
8
  //# sourceMappingURL=sdk-version.js.map
@@ -67,17 +67,23 @@ if (typeof output === 'object' && output !== null) {
67
67
  `;
68
68
  };
69
69
  let IVM_INSTANCE = null;
70
- let IVM_CONTEXT = null;
70
+ // Create fresh isolates per request to prevent memory leaks
71
+ let IVM_OPTIONS = {
72
+ memoryLimit: 128
73
+ };
71
74
 
72
75
  /**
73
76
  * Set the `isolated-vm` instance to be used by the node runtime.
74
77
  * This is useful for environments that are not able to rely on our
75
78
  * `safeDynamicRequire` trick to import the `isolated-vm` package.
76
79
  */
77
- const setIvm = (ivm, options = {}) => {
80
+ const setIvm = (ivm, options) => {
78
81
  if (IVM_INSTANCE) return;
79
82
  IVM_INSTANCE = ivm;
80
- setIsolateContext(options);
83
+ // Store options to be used per-request in runInNode
84
+ if (options) {
85
+ IVM_OPTIONS = options;
86
+ }
81
87
  };
82
88
 
83
89
  // only mention the script for SDKs that have it.
@@ -101,30 +107,6 @@ const getIvm = () => {
101
107
  For more information, visit https://builder.io/c/docs/integration-tips#enabling-data-bindings-in-node-environments`;
102
108
  throw new Error(ERROR_MESSAGE);
103
109
  };
104
- function setIsolateContext(options = {
105
- memoryLimit: 128
106
- }) {
107
- if (IVM_CONTEXT) return IVM_CONTEXT;
108
- const ivm = getIvm();
109
- const isolate = new ivm.Isolate(options);
110
- const context = isolate.createContextSync();
111
- const jail = context.global;
112
-
113
- // This makes the global object available in the context as `global`. We use `derefInto()` here
114
- // because otherwise `global` would actually be a Reference{} object in the new isolate.
115
- jail.setSync('global', jail.derefInto());
116
-
117
- // We will create a basic `log` function for the new isolate to use.
118
- jail.setSync('log', function (...logArgs) {
119
- console.log(...logArgs);
120
- });
121
- jail.setSync(INJECTED_IVM_GLOBAL, ivm);
122
- IVM_CONTEXT = context;
123
- return context;
124
- }
125
- const getIsolateContext = () => {
126
- return setIsolateContext();
127
- };
128
110
  const runInNode = ({
129
111
  code,
130
112
  builder,
@@ -135,49 +117,71 @@ const runInNode = ({
135
117
  rootState
136
118
  }) => {
137
119
  const ivm = getIvm();
138
- const state = (0, _fastClone.fastClone)({
139
- ...rootState,
140
- ...localState
141
- });
142
- const args = (0, _helpers.getFunctionArguments)({
143
- builder,
144
- context,
145
- event,
146
- state
147
- });
148
- const isolateContext = getIsolateContext();
149
- const jail = isolateContext.global;
150
120
 
151
- /**
152
- * Propagate state changes back to the reactive root state.
153
- */
154
- jail.setSync(BUILDER_SET_STATE_NAME, function (key, value) {
155
- // mutate the `rootState` object itself. Important for cases where we do not have `rootSetState`
156
- // like Qwik.
157
- (0, _set.set)(rootState, key, value);
158
- // call the `rootSetState` function if it exists
159
- rootSetState === null || rootSetState === void 0 || rootSetState(rootState);
160
- });
161
- args.forEach(([key, arg]) => {
162
- const val = typeof arg === 'object' ? new ivm.Reference(
163
- // workaround: methods with default values for arguments is not being cloned over
164
- key === 'builder' ? {
165
- ...arg,
166
- getUserAttributes: () => arg.getUserAttributes()
167
- } : arg) : null;
168
- jail.setSync(getSyncValName(key), val);
169
- });
170
- const evalStr = processCode({
171
- code,
172
- args
173
- });
174
- const resultStr = isolateContext.evalClosureSync(evalStr);
121
+ // Use stored options from setIvm, or default to { memoryLimit: 128 }
122
+ let isolate;
175
123
  try {
176
- // returning objects throw errors in isolated vm, so we stringify it and parse it back
177
- const res = JSON.parse(resultStr);
178
- return res;
179
- } catch (_error) {
180
- return resultStr;
124
+ isolate = new ivm.Isolate(IVM_OPTIONS);
125
+ const isolateContext = isolate.createContextSync();
126
+ const jail = isolateContext.global;
127
+
128
+ // Setup the isolate
129
+ jail.setSync('global', jail.derefInto());
130
+ jail.setSync('log', function (...logArgs) {
131
+ console.log(...logArgs);
132
+ });
133
+ jail.setSync(INJECTED_IVM_GLOBAL, ivm);
134
+ const state = (0, _fastClone.fastClone)({
135
+ ...rootState,
136
+ ...localState
137
+ });
138
+ const args = (0, _helpers.getFunctionArguments)({
139
+ builder,
140
+ context,
141
+ event,
142
+ state
143
+ });
144
+
145
+ /**
146
+ * Propagate state changes back to the reactive root state.
147
+ */
148
+ jail.setSync(BUILDER_SET_STATE_NAME, function (key, value) {
149
+ // mutate the `rootState` object itself. Important for cases where we do not have `rootSetState`
150
+ // like Qwik.
151
+ (0, _set.set)(rootState, key, value);
152
+ // call the `rootSetState` function if it exists
153
+ rootSetState === null || rootSetState === void 0 || rootSetState(rootState);
154
+ });
155
+ args.forEach(([key, arg]) => {
156
+ const val = typeof arg === 'object' ? new ivm.Reference(
157
+ // workaround: methods with default values for arguments is not being cloned over
158
+ key === 'builder' ? {
159
+ ...arg,
160
+ getUserAttributes: () => arg.getUserAttributes()
161
+ } : arg) : null;
162
+ jail.setSync(getSyncValName(key), val);
163
+ });
164
+ const evalStr = processCode({
165
+ code,
166
+ args
167
+ });
168
+ const resultStr = isolateContext.evalClosureSync(evalStr);
169
+ try {
170
+ // returning objects throw errors in isolated vm, so we stringify it and parse it back
171
+ const res = JSON.parse(resultStr);
172
+ return res;
173
+ } catch (_error) {
174
+ return resultStr;
175
+ }
176
+ } finally {
177
+ // Destroy the entire VM, this frees ALL memory at the C++ level.
178
+ if (isolate) {
179
+ try {
180
+ isolate.dispose();
181
+ } catch (e) {
182
+ // Ignore disposal errors
183
+ }
184
+ }
181
185
  }
182
186
  };
183
187
  exports.runInNode = runInNode;
@@ -1 +1 @@
1
- {"version":3,"names":["_sdkName","require","_logger","_fastClone","_set","_helpers","_safeDynamicRequire","getSyncValName","key","BUILDER_SET_STATE_NAME","INJECTED_IVM_GLOBAL","REF_TO_PROXY_FN","processCode","code","args","fnArgs","map","name","join","IVM_INSTANCE","IVM_CONTEXT","setIvm","ivm","options","setIsolateContext","exports","SHOULD_MENTION_INITIALIZE_SCRIPT","SDK_NAME","getIvm","dynRequiredIvm","safeDynamicRequire","error","logger","ERROR_MESSAGE","MSG_PREFIX","Error","memoryLimit","isolate","Isolate","context","createContextSync","jail","global","setSync","derefInto","logArgs","console","log","getIsolateContext","runInNode","builder","event","localState","rootSetState","rootState","state","fastClone","getFunctionArguments","isolateContext","value","set","forEach","arg","val","Reference","getUserAttributes","evalStr","resultStr","evalClosureSync","res","JSON","parse","_error"],"sourceRoot":"../../../../../../src","sources":["functions/evaluate/node-runtime/node-runtime.ts"],"mappings":"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"}
1
+ {"version":3,"names":["_sdkName","require","_logger","_fastClone","_set","_helpers","_safeDynamicRequire","getSyncValName","key","BUILDER_SET_STATE_NAME","INJECTED_IVM_GLOBAL","REF_TO_PROXY_FN","processCode","code","args","fnArgs","map","name","join","IVM_INSTANCE","IVM_OPTIONS","memoryLimit","setIvm","ivm","options","exports","SHOULD_MENTION_INITIALIZE_SCRIPT","SDK_NAME","getIvm","dynRequiredIvm","safeDynamicRequire","error","logger","ERROR_MESSAGE","MSG_PREFIX","Error","runInNode","builder","context","event","localState","rootSetState","rootState","isolate","Isolate","isolateContext","createContextSync","jail","global","setSync","derefInto","logArgs","console","log","state","fastClone","getFunctionArguments","value","set","forEach","arg","val","Reference","getUserAttributes","evalStr","resultStr","evalClosureSync","res","JSON","parse","_error","dispose","e"],"sourceRoot":"../../../../../../src","sources":["functions/evaluate/node-runtime/node-runtime.ts"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export const SDK_VERSION = "5.0.0";
1
+ export const SDK_VERSION = "5.1.0";
2
2
  //# sourceMappingURL=sdk-version.js.map
@@ -61,17 +61,23 @@ if (typeof output === 'object' && output !== null) {
61
61
  `;
62
62
  };
63
63
  let IVM_INSTANCE = null;
64
- let IVM_CONTEXT = null;
64
+ // Create fresh isolates per request to prevent memory leaks
65
+ let IVM_OPTIONS = {
66
+ memoryLimit: 128
67
+ };
65
68
 
66
69
  /**
67
70
  * Set the `isolated-vm` instance to be used by the node runtime.
68
71
  * This is useful for environments that are not able to rely on our
69
72
  * `safeDynamicRequire` trick to import the `isolated-vm` package.
70
73
  */
71
- export const setIvm = (ivm, options = {}) => {
74
+ export const setIvm = (ivm, options) => {
72
75
  if (IVM_INSTANCE) return;
73
76
  IVM_INSTANCE = ivm;
74
- setIsolateContext(options);
77
+ // Store options to be used per-request in runInNode
78
+ if (options) {
79
+ IVM_OPTIONS = options;
80
+ }
75
81
  };
76
82
 
77
83
  // only mention the script for SDKs that have it.
@@ -94,30 +100,6 @@ const getIvm = () => {
94
100
  For more information, visit https://builder.io/c/docs/integration-tips#enabling-data-bindings-in-node-environments`;
95
101
  throw new Error(ERROR_MESSAGE);
96
102
  };
97
- function setIsolateContext(options = {
98
- memoryLimit: 128
99
- }) {
100
- if (IVM_CONTEXT) return IVM_CONTEXT;
101
- const ivm = getIvm();
102
- const isolate = new ivm.Isolate(options);
103
- const context = isolate.createContextSync();
104
- const jail = context.global;
105
-
106
- // This makes the global object available in the context as `global`. We use `derefInto()` here
107
- // because otherwise `global` would actually be a Reference{} object in the new isolate.
108
- jail.setSync('global', jail.derefInto());
109
-
110
- // We will create a basic `log` function for the new isolate to use.
111
- jail.setSync('log', function (...logArgs) {
112
- console.log(...logArgs);
113
- });
114
- jail.setSync(INJECTED_IVM_GLOBAL, ivm);
115
- IVM_CONTEXT = context;
116
- return context;
117
- }
118
- const getIsolateContext = () => {
119
- return setIsolateContext();
120
- };
121
103
  export const runInNode = ({
122
104
  code,
123
105
  builder,
@@ -128,49 +110,71 @@ export const runInNode = ({
128
110
  rootState
129
111
  }) => {
130
112
  const ivm = getIvm();
131
- const state = fastClone({
132
- ...rootState,
133
- ...localState
134
- });
135
- const args = getFunctionArguments({
136
- builder,
137
- context,
138
- event,
139
- state
140
- });
141
- const isolateContext = getIsolateContext();
142
- const jail = isolateContext.global;
143
113
 
144
- /**
145
- * Propagate state changes back to the reactive root state.
146
- */
147
- jail.setSync(BUILDER_SET_STATE_NAME, function (key, value) {
148
- // mutate the `rootState` object itself. Important for cases where we do not have `rootSetState`
149
- // like Qwik.
150
- set(rootState, key, value);
151
- // call the `rootSetState` function if it exists
152
- rootSetState === null || rootSetState === void 0 || rootSetState(rootState);
153
- });
154
- args.forEach(([key, arg]) => {
155
- const val = typeof arg === 'object' ? new ivm.Reference(
156
- // workaround: methods with default values for arguments is not being cloned over
157
- key === 'builder' ? {
158
- ...arg,
159
- getUserAttributes: () => arg.getUserAttributes()
160
- } : arg) : null;
161
- jail.setSync(getSyncValName(key), val);
162
- });
163
- const evalStr = processCode({
164
- code,
165
- args
166
- });
167
- const resultStr = isolateContext.evalClosureSync(evalStr);
114
+ // Use stored options from setIvm, or default to { memoryLimit: 128 }
115
+ let isolate;
168
116
  try {
169
- // returning objects throw errors in isolated vm, so we stringify it and parse it back
170
- const res = JSON.parse(resultStr);
171
- return res;
172
- } catch (_error) {
173
- return resultStr;
117
+ isolate = new ivm.Isolate(IVM_OPTIONS);
118
+ const isolateContext = isolate.createContextSync();
119
+ const jail = isolateContext.global;
120
+
121
+ // Setup the isolate
122
+ jail.setSync('global', jail.derefInto());
123
+ jail.setSync('log', function (...logArgs) {
124
+ console.log(...logArgs);
125
+ });
126
+ jail.setSync(INJECTED_IVM_GLOBAL, ivm);
127
+ const state = fastClone({
128
+ ...rootState,
129
+ ...localState
130
+ });
131
+ const args = getFunctionArguments({
132
+ builder,
133
+ context,
134
+ event,
135
+ state
136
+ });
137
+
138
+ /**
139
+ * Propagate state changes back to the reactive root state.
140
+ */
141
+ jail.setSync(BUILDER_SET_STATE_NAME, function (key, value) {
142
+ // mutate the `rootState` object itself. Important for cases where we do not have `rootSetState`
143
+ // like Qwik.
144
+ set(rootState, key, value);
145
+ // call the `rootSetState` function if it exists
146
+ rootSetState === null || rootSetState === void 0 || rootSetState(rootState);
147
+ });
148
+ args.forEach(([key, arg]) => {
149
+ const val = typeof arg === 'object' ? new ivm.Reference(
150
+ // workaround: methods with default values for arguments is not being cloned over
151
+ key === 'builder' ? {
152
+ ...arg,
153
+ getUserAttributes: () => arg.getUserAttributes()
154
+ } : arg) : null;
155
+ jail.setSync(getSyncValName(key), val);
156
+ });
157
+ const evalStr = processCode({
158
+ code,
159
+ args
160
+ });
161
+ const resultStr = isolateContext.evalClosureSync(evalStr);
162
+ try {
163
+ // returning objects throw errors in isolated vm, so we stringify it and parse it back
164
+ const res = JSON.parse(resultStr);
165
+ return res;
166
+ } catch (_error) {
167
+ return resultStr;
168
+ }
169
+ } finally {
170
+ // Destroy the entire VM, this frees ALL memory at the C++ level.
171
+ if (isolate) {
172
+ try {
173
+ isolate.dispose();
174
+ } catch (e) {
175
+ // Ignore disposal errors
176
+ }
177
+ }
174
178
  }
175
179
  };
176
180
  //# sourceMappingURL=node-runtime.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["SDK_NAME","MSG_PREFIX","logger","fastClone","set","getFunctionArguments","safeDynamicRequire","getSyncValName","key","BUILDER_SET_STATE_NAME","INJECTED_IVM_GLOBAL","REF_TO_PROXY_FN","processCode","code","args","fnArgs","map","name","join","IVM_INSTANCE","IVM_CONTEXT","setIvm","ivm","options","setIsolateContext","SHOULD_MENTION_INITIALIZE_SCRIPT","getIvm","dynRequiredIvm","error","ERROR_MESSAGE","Error","memoryLimit","isolate","Isolate","context","createContextSync","jail","global","setSync","derefInto","logArgs","console","log","getIsolateContext","runInNode","builder","event","localState","rootSetState","rootState","state","isolateContext","value","forEach","arg","val","Reference","getUserAttributes","evalStr","resultStr","evalClosureSync","res","JSON","parse","_error"],"sourceRoot":"../../../../../../src","sources":["functions/evaluate/node-runtime/node-runtime.ts"],"mappings":"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"}
1
+ {"version":3,"names":["SDK_NAME","MSG_PREFIX","logger","fastClone","set","getFunctionArguments","safeDynamicRequire","getSyncValName","key","BUILDER_SET_STATE_NAME","INJECTED_IVM_GLOBAL","REF_TO_PROXY_FN","processCode","code","args","fnArgs","map","name","join","IVM_INSTANCE","IVM_OPTIONS","memoryLimit","setIvm","ivm","options","SHOULD_MENTION_INITIALIZE_SCRIPT","getIvm","dynRequiredIvm","error","ERROR_MESSAGE","Error","runInNode","builder","context","event","localState","rootSetState","rootState","isolate","Isolate","isolateContext","createContextSync","jail","global","setSync","derefInto","logArgs","console","log","state","value","forEach","arg","val","Reference","getUserAttributes","evalStr","resultStr","evalClosureSync","res","JSON","parse","_error","dispose","e"],"sourceRoot":"../../../../../../src","sources":["functions/evaluate/node-runtime/node-runtime.ts"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export declare const SDK_VERSION = "5.0.0";
1
+ export declare const SDK_VERSION = "5.1.0";
2
2
  //# sourceMappingURL=sdk-version.d.ts.map
@@ -3,7 +3,7 @@ export interface Input {
3
3
  name: string;
4
4
  /** A friendlier name to show in the UI if the component prop name is not ideal for end users */
5
5
  friendlyName?: string;
6
- /** @hidden @deprecated */
6
+ /** A description to show in the UI to give guidance on how to use this input */
7
7
  description?: string;
8
8
  /** A default value to use */
9
9
  defaultValue?: any;