@kizenapps/engine 1.11.0-05b6ad7 → 1.11.1-a77d2c7

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 (33) hide show
  1. package/dist/{chunk-FXUWCUQ3.js → chunk-AXFROPC2.js} +3 -3
  2. package/dist/{chunk-FXUWCUQ3.js.map → chunk-AXFROPC2.js.map} +1 -1
  3. package/dist/{chunk-G3M2N67M.js → chunk-DRABIUOX.js} +4 -4
  4. package/dist/{chunk-G3M2N67M.js.map → chunk-DRABIUOX.js.map} +1 -1
  5. package/dist/{chunk-OYYL4KD6.js → chunk-NF2ECXMZ.js} +3 -3
  6. package/dist/{chunk-OYYL4KD6.js.map → chunk-NF2ECXMZ.js.map} +1 -1
  7. package/dist/{chunk-C7YDVA4F.js → chunk-PQDZVTD7.js} +3 -3
  8. package/dist/{chunk-C7YDVA4F.js.map → chunk-PQDZVTD7.js.map} +1 -1
  9. package/dist/{chunk-JZ64U5SO.js → chunk-REHCSRJC.js} +59 -15
  10. package/dist/chunk-REHCSRJC.js.map +1 -0
  11. package/dist/{chunk-3JVAHXFJ.js → chunk-VASCNO57.js} +3 -3
  12. package/dist/{chunk-3JVAHXFJ.js.map → chunk-VASCNO57.js.map} +1 -1
  13. package/dist/{chunk-XP4H2KDP.js → chunk-WTY7QQXW.js} +3 -3
  14. package/dist/{chunk-XP4H2KDP.js.map → chunk-WTY7QQXW.js.map} +1 -1
  15. package/dist/{chunk-TG4E3XWI.js → chunk-Y7J5RZKO.js} +5 -5
  16. package/dist/{chunk-TG4E3XWI.js.map → chunk-Y7J5RZKO.js.map} +1 -1
  17. package/dist/{chunk-FWTMDJV5.js → chunk-YYQXPT6O.js} +3 -3
  18. package/dist/{chunk-FWTMDJV5.js.map → chunk-YYQXPT6O.js.map} +1 -1
  19. package/dist/communication.js +2 -2
  20. package/dist/contexts/base.js +4 -4
  21. package/dist/contexts/floatingFrame.js +5 -5
  22. package/dist/contexts/recordDetail.js +5 -5
  23. package/dist/index.js +4 -4
  24. package/dist/react.js +5 -5
  25. package/dist/util.js +6 -6
  26. package/dist/workers/calendarSource.worker.js +6 -6
  27. package/dist/workers/expression.worker.js +74 -11
  28. package/dist/workers/expression.worker.js.map +1 -1
  29. package/dist/workers/floatingFrame.worker.js +7 -7
  30. package/dist/workers/generic.worker.js +6 -6
  31. package/dist/workers/recordDetail.worker.js +7 -7
  32. package/package.json +1 -1
  33. package/dist/chunk-JZ64U5SO.js.map +0 -1
@@ -1,8 +1,8 @@
1
- export { FloatingFrameWorkerContext } from '../chunk-G3M2N67M.js';
2
- import '../chunk-TG4E3XWI.js';
3
- import '../chunk-3JVAHXFJ.js';
4
- import '../chunk-XP4H2KDP.js';
5
- import '../chunk-OYYL4KD6.js';
1
+ export { FloatingFrameWorkerContext } from '../chunk-DRABIUOX.js';
2
+ import '../chunk-Y7J5RZKO.js';
3
+ import '../chunk-VASCNO57.js';
4
+ import '../chunk-WTY7QQXW.js';
5
+ import '../chunk-NF2ECXMZ.js';
6
6
  import '../chunk-5WRI5ZAA.js';
7
7
  //# sourceMappingURL=floatingFrame.js.map
8
8
  //# sourceMappingURL=floatingFrame.js.map
@@ -1,8 +1,8 @@
1
- export { RecordDetailWorkerContext } from '../chunk-C7YDVA4F.js';
2
- import '../chunk-TG4E3XWI.js';
3
- import '../chunk-3JVAHXFJ.js';
4
- import '../chunk-XP4H2KDP.js';
5
- import '../chunk-OYYL4KD6.js';
1
+ export { RecordDetailWorkerContext } from '../chunk-PQDZVTD7.js';
2
+ import '../chunk-Y7J5RZKO.js';
3
+ import '../chunk-VASCNO57.js';
4
+ import '../chunk-WTY7QQXW.js';
5
+ import '../chunk-NF2ECXMZ.js';
6
6
  import '../chunk-5WRI5ZAA.js';
7
7
  //# sourceMappingURL=recordDetail.js.map
8
8
  //# sourceMappingURL=recordDetail.js.map
package/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
- export { clearNavigationContext, consumeNavigationContext, modalSize, readNavigationContext, runExpression, runObjectExpression, runOptionExpression, runScript, runStringExpression, version } from './chunk-JZ64U5SO.js';
2
- import './chunk-FXUWCUQ3.js';
3
- import './chunk-3JVAHXFJ.js';
4
- import './chunk-OYYL4KD6.js';
1
+ export { clearNavigationContext, consumeNavigationContext, modalSize, readNavigationContext, runExpression, runObjectExpression, runOptionExpression, runScript, runStringExpression, version } from './chunk-REHCSRJC.js';
2
+ import './chunk-AXFROPC2.js';
3
+ import './chunk-VASCNO57.js';
4
+ import './chunk-NF2ECXMZ.js';
5
5
  import './chunk-5WRI5ZAA.js';
6
6
  //# sourceMappingURL=index.js.map
7
7
  //# sourceMappingURL=index.js.map
package/dist/react.js CHANGED
@@ -1,9 +1,9 @@
1
- import { runScript, getPluginSafeHTML, getStableHash, readNavigationContext, clearNavigationContext, flattenReservedState, runExpression, replaceConfigValues, isFlagEnabled } from './chunk-JZ64U5SO.js';
1
+ import { runScript, getPluginSafeHTML, getStableHash, readNavigationContext, clearNavigationContext, flattenReservedState, runExpression, replaceConfigValues, isFlagEnabled } from './chunk-REHCSRJC.js';
2
2
  import './chunk-LGJYUPYZ.js';
3
- import { generateExecutionKey } from './chunk-FXUWCUQ3.js';
4
- import { buildIframeURLWithProxy, unwrapProxyMessage, getAllNestedInputsFromConfig, getActionFieldKey, getFieldFromAction, getActionMenuFieldKey } from './chunk-3JVAHXFJ.js';
5
- import { runFrameScriptEventName, runBlockScriptEventName } from './chunk-XP4H2KDP.js';
6
- import { QUERY_KEYS, ROUTE_CHANGE_INTERNAL_EVENT, IFRAME_PREFIX, ROUTE_CHANGE_IFRAME_EVENT } from './chunk-OYYL4KD6.js';
3
+ import { generateExecutionKey } from './chunk-AXFROPC2.js';
4
+ import { buildIframeURLWithProxy, unwrapProxyMessage, getAllNestedInputsFromConfig, getActionFieldKey, getFieldFromAction, getActionMenuFieldKey } from './chunk-VASCNO57.js';
5
+ import { runFrameScriptEventName, runBlockScriptEventName } from './chunk-WTY7QQXW.js';
6
+ import { QUERY_KEYS, ROUTE_CHANGE_INTERNAL_EVENT, IFRAME_PREFIX, ROUTE_CHANGE_IFRAME_EVENT } from './chunk-NF2ECXMZ.js';
7
7
  import './chunk-5WRI5ZAA.js';
8
8
  import { QueryClient, useQueries, useQueryClient, QueryClientContext, QueryClientProvider } from '@tanstack/react-query';
9
9
  import { createContext, useContext, useState, useCallback, useMemo, useRef, useEffect, useImperativeHandle } from 'react';
package/dist/util.js CHANGED
@@ -1,9 +1,9 @@
1
- import { getHash } from './chunk-JZ64U5SO.js';
2
- export { flattenReservedState, forceQualifiedUrl, getDisabledValue, getEnabledState, getHash, getLinkValue, getPluginSafeHTML, getQrCodeValue, getStableHash, isFlagEnabled, mergeConfig, pluginMapper, reduceEnabledResults, replaceConfigValues } from './chunk-JZ64U5SO.js';
3
- export { emitRouteChange, findMatchingAction, getPartialLocation } from './chunk-FXUWCUQ3.js';
4
- import { KizenRequestError, isActionMenuFieldKey, splitActionMenuFieldKey, getActionFieldKey, isActionFieldKey, cleanConfig, getAllNestedInputsFromConfig } from './chunk-3JVAHXFJ.js';
5
- export { KizenRequestError, cleanConfig, getActionContainerKey, getActionMenuFieldKey, getActionMenuHeadingKey, getAllNestedInputsFromConfig, getFieldFromAction, isActionMenuFieldKey, splitActionFieldKey } from './chunk-3JVAHXFJ.js';
6
- import './chunk-OYYL4KD6.js';
1
+ import { getHash } from './chunk-REHCSRJC.js';
2
+ export { flattenReservedState, forceQualifiedUrl, getDisabledValue, getEnabledState, getHash, getLinkValue, getPluginSafeHTML, getQrCodeValue, getStableHash, isFlagEnabled, mergeConfig, pluginMapper, reduceEnabledResults, replaceConfigValues } from './chunk-REHCSRJC.js';
3
+ export { emitRouteChange, findMatchingAction, getPartialLocation } from './chunk-AXFROPC2.js';
4
+ import { KizenRequestError, isActionMenuFieldKey, splitActionMenuFieldKey, getActionFieldKey, isActionFieldKey, cleanConfig, getAllNestedInputsFromConfig } from './chunk-VASCNO57.js';
5
+ export { KizenRequestError, cleanConfig, getActionContainerKey, getActionMenuFieldKey, getActionMenuHeadingKey, getAllNestedInputsFromConfig, getFieldFromAction, isActionMenuFieldKey, splitActionFieldKey } from './chunk-VASCNO57.js';
6
+ import './chunk-NF2ECXMZ.js';
7
7
  import './chunk-5WRI5ZAA.js';
8
8
 
9
9
  // src/util/network.ts
@@ -1,9 +1,9 @@
1
- import { WorkerPromise } from '../chunk-FWTMDJV5.js';
2
- import { buildCodeRunnerFunction } from '../chunk-FXUWCUQ3.js';
3
- import { BaseWorkerContext } from '../chunk-TG4E3XWI.js';
4
- import { dynamicPromptHandler, promptHandler, postFormDataHandler, kizenRequestHandler, handleCommonResponse } from '../chunk-3JVAHXFJ.js';
5
- import '../chunk-XP4H2KDP.js';
6
- import { ACTIONS } from '../chunk-OYYL4KD6.js';
1
+ import { WorkerPromise } from '../chunk-YYQXPT6O.js';
2
+ import { buildCodeRunnerFunction } from '../chunk-AXFROPC2.js';
3
+ import { BaseWorkerContext } from '../chunk-Y7J5RZKO.js';
4
+ import { dynamicPromptHandler, promptHandler, postFormDataHandler, kizenRequestHandler, handleCommonResponse } from '../chunk-VASCNO57.js';
5
+ import '../chunk-WTY7QQXW.js';
6
+ import { ACTIONS } from '../chunk-NF2ECXMZ.js';
7
7
  import '../chunk-5WRI5ZAA.js';
8
8
 
9
9
  // src/workers/calendarSource.worker.ts
@@ -1,4 +1,14 @@
1
- // src/workers/expression.worker.ts
1
+ import '../chunk-5WRI5ZAA.js';
2
+
3
+ // src/workers/expression.ts
4
+ var getValue = (key, args) => {
5
+ const rawValue = args[key];
6
+ if (!rawValue) {
7
+ return "null";
8
+ }
9
+ const value = typeof rawValue.value !== "undefined" ? JSON.stringify(rawValue.value) : "null";
10
+ return value;
11
+ };
2
12
  var interpolateValues = (expression, args) => {
3
13
  const interpolated = expression.replace(/{{(.*?)}}/g, (_, key) => {
4
14
  return getValue(key, args);
@@ -17,19 +27,72 @@ ${fnBody}`);
17
27
  const fn = new Function(fnBody);
18
28
  return fn();
19
29
  };
20
- var getValue = (key, args) => {
21
- const rawValue = args[key];
22
- if (!rawValue) {
23
- return "null";
30
+ var STANDARD_ERROR_NAMES = /* @__PURE__ */ new Set([
31
+ "Error",
32
+ "EvalError",
33
+ "RangeError",
34
+ "ReferenceError",
35
+ "SyntaxError",
36
+ "TypeError",
37
+ "URIError"
38
+ ]);
39
+ var describeFailure = (stage, ex, isDebug) => {
40
+ let name = "non-Error thrown";
41
+ let detail = "";
42
+ try {
43
+ if (ex instanceof Error) {
44
+ const errorName = ex.name;
45
+ name = typeof errorName === "string" && STANDARD_ERROR_NAMES.has(errorName) ? errorName : "Error";
46
+ }
47
+ if (isDebug) {
48
+ detail = ex instanceof Error ? ex.message : String(ex);
49
+ }
50
+ } catch {
24
51
  }
25
- const value = typeof rawValue.value !== "undefined" ? JSON.stringify(rawValue.value) : "null";
26
- return value;
52
+ return detail ? `${stage} (${name}): ${detail}` : `${stage} (${name})`;
27
53
  };
54
+ var failure = (error) => JSON.stringify({ result: null, error });
55
+ var buildExpressionResponse = (rawPayload) => {
56
+ let parsed;
57
+ try {
58
+ parsed = JSON.parse(rawPayload);
59
+ } catch {
60
+ return failure("invalid payload");
61
+ }
62
+ if (parsed === null || typeof parsed !== "object" || Array.isArray(parsed)) {
63
+ return failure("invalid payload");
64
+ }
65
+ const payload = parsed;
66
+ const { expression, args, isDebug = false } = payload;
67
+ let result;
68
+ try {
69
+ result = evaluateExpression(expression, args, isDebug);
70
+ } catch (ex) {
71
+ return failure(describeFailure("evaluation failed", ex, isDebug));
72
+ }
73
+ try {
74
+ return JSON.stringify({ result });
75
+ } catch (ex) {
76
+ return failure(describeFailure("result not serializable", ex, isDebug));
77
+ }
78
+ };
79
+ var handleUncaughtError = (e, post) => {
80
+ e.preventDefault();
81
+ post(failure("uncaught error in expression worker"));
82
+ };
83
+ var handleUnhandledRejection = (e) => {
84
+ e.preventDefault();
85
+ };
86
+
87
+ // src/workers/expression.worker.ts
28
88
  self.onmessage = (e) => {
29
- const data = JSON.parse(e.data);
30
- const { expression, args, isDebug = false } = data;
31
- const result = evaluateExpression(expression, args, isDebug);
32
- self.postMessage(JSON.stringify({ result }));
89
+ self.postMessage(buildExpressionResponse(e.data));
33
90
  };
91
+ self.addEventListener("error", (e) => {
92
+ handleUncaughtError(e, (message) => {
93
+ self.postMessage(message);
94
+ });
95
+ });
96
+ self.addEventListener("unhandledrejection", handleUnhandledRejection);
34
97
  //# sourceMappingURL=expression.worker.js.map
35
98
  //# sourceMappingURL=expression.worker.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/workers/expression.worker.ts"],"names":[],"mappings":";AAGA,IAAM,iBAAA,GAAoB,CAAC,UAAA,EAAoB,IAAA,KAA8C;AAC3F,EAAA,MAAM,eAAe,UAAA,CAAW,OAAA,CAAQ,YAAA,EAAc,CAAC,GAAG,GAAA,KAAgB;AACxE,IAAA,OAAO,QAAA,CAAS,KAAK,IAAI,CAAA;AAAA,EAC3B,CAAC,CAAA;AAED,EAAA,OAAO,YAAA;AACT,CAAA;AAEA,IAAM,kBAAA,GAAqB,CACzB,UAAA,EACA,IAAA,EACA,OAAA,KACY;AACZ,EAAA,MAAM,MAAA,GAAS,CAAA,OAAA,EAAU,iBAAA,CAAkB,UAAA,EAAY,IAAI,CAAC,CAAA,CAAA,CAAA;AAE5D,EAAA,IAAI,OAAA,EAAS;AACX,IAAA,OAAA,CAAQ,GAAA,CAAI,CAAA;AAAA,EAAwB,UAAU;;AAAA;AAAA,EAAwB,MAAM,CAAA,CAAE,CAAA;AAAA,EAChF;AAGA,EAAA,MAAM,EAAA,GAAK,IAAI,QAAA,CAAS,MAAM,CAAA;AAG9B,EAAA,OAAO,EAAA,EAAG;AACZ,CAAA;AAEA,IAAM,QAAA,GAAW,CAAC,GAAA,EAAa,IAAA,KAA8C;AAC3E,EAAA,MAAM,QAAA,GAAW,KAAK,GAAG,CAAA;AAEzB,EAAA,IAAI,CAAC,QAAA,EAAU;AACb,IAAA,OAAO,MAAA;AAAA,EACT;AAEA,EAAA,MAAM,KAAA,GAAQ,OAAO,QAAA,CAAS,KAAA,KAAU,cAAc,IAAA,CAAK,SAAA,CAAU,QAAA,CAAS,KAAK,CAAA,GAAI,MAAA;AAEvF,EAAA,OAAO,KAAA;AACT,CAAA;AAEA,IAAA,CAAK,SAAA,GAAY,CAAC,CAAA,KAAkC;AAClD,EAAA,MAAM,IAAA,GAAO,IAAA,CAAK,KAAA,CAAM,CAAA,CAAE,IAAI,CAAA;AAE9B,EAAA,MAAM,EAAE,UAAA,EAAY,IAAA,EAAM,OAAA,GAAU,OAAM,GAAI,IAAA;AAE9C,EAAA,MAAM,MAAA,GAAS,kBAAA,CAAmB,UAAA,EAAY,IAAA,EAAM,OAAO,CAAA;AAE3D,EAAA,IAAA,CAAK,YAAY,IAAA,CAAK,SAAA,CAAU,EAAE,MAAA,EAAQ,CAAC,CAAA;AAC7C,CAAA","file":"expression.worker.js","sourcesContent":["import type { UnknownJSON } from '../types/common.js';\nimport type { ExpressionPayload } from '../types/workers.js';\n\nconst interpolateValues = (expression: string, args: Record<string, UnknownJSON>): string => {\n const interpolated = expression.replace(/{{(.*?)}}/g, (_, key: string) => {\n return getValue(key, args);\n });\n\n return interpolated;\n};\n\nconst evaluateExpression = (\n expression: string,\n args: Record<string, UnknownJSON>,\n isDebug: boolean,\n): unknown => {\n const fnBody = `return ${interpolateValues(expression, args)};`;\n\n if (isDebug) {\n console.log(`Initial expression:\\n${expression}\\n\\nInterpreted as:\\n${fnBody}`);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-implied-eval\n const fn = new Function(fnBody);\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n return fn();\n};\n\nconst getValue = (key: string, args: Record<string, UnknownJSON>): string => {\n const rawValue = args[key];\n\n if (!rawValue) {\n return 'null';\n }\n\n const value = typeof rawValue.value !== 'undefined' ? JSON.stringify(rawValue.value) : 'null';\n\n return value;\n};\n\nself.onmessage = (e: MessageEvent<string>): void => {\n const data = JSON.parse(e.data) as ExpressionPayload;\n\n const { expression, args, isDebug = false } = data;\n\n const result = evaluateExpression(expression, args, isDebug);\n\n self.postMessage(JSON.stringify({ result }));\n};\n"]}
1
+ {"version":3,"sources":["../../src/workers/expression.ts","../../src/workers/expression.worker.ts"],"names":[],"mappings":"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","file":"expression.worker.js","sourcesContent":["import type { UnknownJSON } from '../types/common.js';\nimport type { ExpressionPayload } from '../types/workers.js';\n\nexport interface ExpressionResponse {\n result: unknown;\n error?: string;\n}\n\nconst getValue = (key: string, args: Record<string, UnknownJSON>): string => {\n const rawValue = args[key];\n\n if (!rawValue) {\n return 'null';\n }\n\n const value = typeof rawValue.value !== 'undefined' ? JSON.stringify(rawValue.value) : 'null';\n\n return value;\n};\n\nexport const interpolateValues = (\n expression: string,\n args: Record<string, UnknownJSON>,\n): string => {\n const interpolated = expression.replace(/{{(.*?)}}/g, (_, key: string) => {\n return getValue(key, args);\n });\n\n return interpolated;\n};\n\nexport const evaluateExpression = (\n expression: string,\n args: Record<string, UnknownJSON>,\n isDebug: boolean,\n): unknown => {\n const fnBody = `return ${interpolateValues(expression, args)};`;\n\n if (isDebug) {\n console.log(`Initial expression:\\n${expression}\\n\\nInterpreted as:\\n${fnBody}`);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-implied-eval\n const fn = new Function(fnBody);\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n return fn();\n};\n\nconst STANDARD_ERROR_NAMES = new Set([\n 'Error',\n 'EvalError',\n 'RangeError',\n 'ReferenceError',\n 'SyntaxError',\n 'TypeError',\n 'URIError',\n]);\n\nconst describeFailure = (stage: string, ex: unknown, isDebug: boolean): string => {\n let name = 'non-Error thrown';\n let detail = '';\n\n try {\n if (ex instanceof Error) {\n const errorName: unknown = ex.name;\n\n name =\n typeof errorName === 'string' && STANDARD_ERROR_NAMES.has(errorName) ? errorName : 'Error';\n }\n\n if (isDebug) {\n detail = ex instanceof Error ? ex.message : String(ex);\n }\n } catch {}\n\n return detail ? `${stage} (${name}): ${detail}` : `${stage} (${name})`;\n};\n\nconst failure = (error: string): string =>\n JSON.stringify({ result: null, error } satisfies ExpressionResponse);\n\nexport const buildExpressionResponse = (rawPayload: string): string => {\n let parsed: unknown;\n\n try {\n parsed = JSON.parse(rawPayload);\n } catch {\n return failure('invalid payload');\n }\n\n if (parsed === null || typeof parsed !== 'object' || Array.isArray(parsed)) {\n return failure('invalid payload');\n }\n\n const payload = parsed as ExpressionPayload;\n\n const { expression, args, isDebug = false } = payload;\n let result: unknown;\n\n try {\n result = evaluateExpression(expression, args, isDebug);\n } catch (ex) {\n return failure(describeFailure('evaluation failed', ex, isDebug));\n }\n\n try {\n return JSON.stringify({ result } satisfies ExpressionResponse);\n } catch (ex) {\n return failure(describeFailure('result not serializable', ex, isDebug));\n }\n};\n\nexport const handleUncaughtError = (e: Event, post: (message: string) => void): void => {\n e.preventDefault();\n post(failure('uncaught error in expression worker'));\n};\n\nexport const handleUnhandledRejection = (e: Event): void => {\n e.preventDefault();\n};\n","import {\n buildExpressionResponse,\n handleUncaughtError,\n handleUnhandledRejection,\n} from './expression.js';\n\nself.onmessage = (e: MessageEvent<string>): void => {\n self.postMessage(buildExpressionResponse(e.data));\n};\n\nself.addEventListener('error', (e) => {\n handleUncaughtError(e, (message) => {\n self.postMessage(message);\n });\n});\n\nself.addEventListener('unhandledrejection', handleUnhandledRejection);\n"]}
@@ -1,10 +1,10 @@
1
- import { FloatingFrameWorkerContext } from '../chunk-G3M2N67M.js';
2
- import { WorkerPromise } from '../chunk-FWTMDJV5.js';
3
- import { buildCodeRunnerFunction } from '../chunk-FXUWCUQ3.js';
4
- import '../chunk-TG4E3XWI.js';
5
- import { completeSetupHandler, closeModalHandler, showViewInModalHandler, openCreateRelatedRecordHandler, openCreateRecordHandler, refreshEntityHandler, dynamicPromptHandler, promptHandler, installThirdPartyScriptHandler, uploadFileHandler, postFormDataHandler, kizenRequestHandler, handleCommonResponse } from '../chunk-3JVAHXFJ.js';
6
- import '../chunk-XP4H2KDP.js';
7
- import { ACTIONS } from '../chunk-OYYL4KD6.js';
1
+ import { FloatingFrameWorkerContext } from '../chunk-DRABIUOX.js';
2
+ import { WorkerPromise } from '../chunk-YYQXPT6O.js';
3
+ import { buildCodeRunnerFunction } from '../chunk-AXFROPC2.js';
4
+ import '../chunk-Y7J5RZKO.js';
5
+ import { completeSetupHandler, closeModalHandler, showViewInModalHandler, openCreateRelatedRecordHandler, openCreateRecordHandler, refreshEntityHandler, dynamicPromptHandler, promptHandler, installThirdPartyScriptHandler, uploadFileHandler, postFormDataHandler, kizenRequestHandler, handleCommonResponse } from '../chunk-VASCNO57.js';
6
+ import '../chunk-WTY7QQXW.js';
7
+ import { ACTIONS } from '../chunk-NF2ECXMZ.js';
8
8
  import '../chunk-5WRI5ZAA.js';
9
9
 
10
10
  // src/workers/floatingFrame.worker.ts
@@ -1,9 +1,9 @@
1
- import { WorkerPromise } from '../chunk-FWTMDJV5.js';
2
- import { buildCodeRunnerFunction } from '../chunk-FXUWCUQ3.js';
3
- import { BaseWorkerContext } from '../chunk-TG4E3XWI.js';
4
- import { completeSetupHandler, closeModalHandler, showViewInModalHandler, openCreateRelatedRecordHandler, openCreateRecordHandler, refreshEntityHandler, dynamicPromptHandler, promptHandler, installThirdPartyScriptHandler, uploadFileHandler, postFormDataHandler, kizenRequestHandler, handleCommonResponse } from '../chunk-3JVAHXFJ.js';
5
- import '../chunk-XP4H2KDP.js';
6
- import { ACTIONS } from '../chunk-OYYL4KD6.js';
1
+ import { WorkerPromise } from '../chunk-YYQXPT6O.js';
2
+ import { buildCodeRunnerFunction } from '../chunk-AXFROPC2.js';
3
+ import { BaseWorkerContext } from '../chunk-Y7J5RZKO.js';
4
+ import { completeSetupHandler, closeModalHandler, showViewInModalHandler, openCreateRelatedRecordHandler, openCreateRecordHandler, refreshEntityHandler, dynamicPromptHandler, promptHandler, installThirdPartyScriptHandler, uploadFileHandler, postFormDataHandler, kizenRequestHandler, handleCommonResponse } from '../chunk-VASCNO57.js';
5
+ import '../chunk-WTY7QQXW.js';
6
+ import { ACTIONS } from '../chunk-NF2ECXMZ.js';
7
7
  import '../chunk-5WRI5ZAA.js';
8
8
 
9
9
  // src/workers/generic.worker.ts
@@ -1,10 +1,10 @@
1
- import { RecordDetailWorkerContext } from '../chunk-C7YDVA4F.js';
2
- import { WorkerPromise } from '../chunk-FWTMDJV5.js';
3
- import { buildCodeRunnerFunction } from '../chunk-FXUWCUQ3.js';
4
- import '../chunk-TG4E3XWI.js';
5
- import { completeSetupHandler, closeModalHandler, showViewInModalHandler, openCreateRelatedRecordHandler, openCreateRecordHandler, refreshEntityHandler, dynamicPromptHandler, promptHandler, installThirdPartyScriptHandler, uploadFileHandler, postFormDataHandler, kizenRequestHandler, handleCommonResponse } from '../chunk-3JVAHXFJ.js';
6
- import '../chunk-XP4H2KDP.js';
7
- import { ACTIONS } from '../chunk-OYYL4KD6.js';
1
+ import { RecordDetailWorkerContext } from '../chunk-PQDZVTD7.js';
2
+ import { WorkerPromise } from '../chunk-YYQXPT6O.js';
3
+ import { buildCodeRunnerFunction } from '../chunk-AXFROPC2.js';
4
+ import '../chunk-Y7J5RZKO.js';
5
+ import { completeSetupHandler, closeModalHandler, showViewInModalHandler, openCreateRelatedRecordHandler, openCreateRecordHandler, refreshEntityHandler, dynamicPromptHandler, promptHandler, installThirdPartyScriptHandler, uploadFileHandler, postFormDataHandler, kizenRequestHandler, handleCommonResponse } from '../chunk-VASCNO57.js';
6
+ import '../chunk-WTY7QQXW.js';
7
+ import { ACTIONS } from '../chunk-NF2ECXMZ.js';
8
8
  import '../chunk-5WRI5ZAA.js';
9
9
 
10
10
  // src/workers/recordDetail.worker.ts
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kizenapps/engine",
3
- "version": "1.11.0-05b6ad7",
3
+ "version": "1.11.1-a77d2c7",
4
4
  "description": "Run JavaScript plugin apps inside Web Workers with host ↔ worker messaging",
5
5
  "license": "GPL-3.0",
6
6
  "repository": {