@kizenapps/engine 1.9.2-ce64cf0 → 1.9.3-906e4c0

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/README.md +1 -4
  2. package/dist/{chunk-TPV5Q6GW.js → chunk-3OBYDDMG.js} +6 -6
  3. package/dist/{chunk-TPV5Q6GW.js.map → chunk-3OBYDDMG.js.map} +1 -1
  4. package/dist/{chunk-G43HJUPD.js → chunk-3YLJ35JR.js} +4 -4
  5. package/dist/{chunk-G43HJUPD.js.map → chunk-3YLJ35JR.js.map} +1 -1
  6. package/dist/{chunk-TLZXIYKG.js → chunk-6DLH6MH7.js} +3 -3
  7. package/dist/{chunk-TLZXIYKG.js.map → chunk-6DLH6MH7.js.map} +1 -1
  8. package/dist/{chunk-S4WCVWFO.js → chunk-B6A5OU2M.js} +3 -3
  9. package/dist/{chunk-S4WCVWFO.js.map → chunk-B6A5OU2M.js.map} +1 -1
  10. package/dist/{chunk-5BBUKTOE.js → chunk-DI3FQCXU.js} +3 -3
  11. package/dist/{chunk-5BBUKTOE.js.map → chunk-DI3FQCXU.js.map} +1 -1
  12. package/dist/{chunk-2AJY4I2T.js → chunk-FM65VYJM.js} +5 -5
  13. package/dist/{chunk-2AJY4I2T.js.map → chunk-FM65VYJM.js.map} +1 -1
  14. package/dist/{chunk-REAN7GYY.js → chunk-GUTKQJIQ.js} +3 -3
  15. package/dist/{chunk-REAN7GYY.js.map → chunk-GUTKQJIQ.js.map} +1 -1
  16. package/dist/{chunk-2V75NG3U.js → chunk-LSKKLO7U.js} +3 -3
  17. package/dist/{chunk-2V75NG3U.js.map → chunk-LSKKLO7U.js.map} +1 -1
  18. package/dist/{chunk-XEZJ3I3F.js → chunk-PTK42TY3.js} +3 -3
  19. package/dist/{chunk-XEZJ3I3F.js.map → chunk-PTK42TY3.js.map} +1 -1
  20. package/dist/communication.js +2 -2
  21. package/dist/contexts/base.js +4 -4
  22. package/dist/contexts/floatingFrame.js +5 -5
  23. package/dist/contexts/recordDetail.js +5 -5
  24. package/dist/index.js +4 -4
  25. package/dist/react.d.ts +1 -1
  26. package/dist/react.js +77 -31
  27. package/dist/react.js.map +1 -1
  28. package/dist/util.js +6 -6
  29. package/dist/workers/calendarSource.worker.js +6 -6
  30. package/dist/workers/floatingFrame.worker.js +7 -7
  31. package/dist/workers/generic.worker.js +6 -6
  32. package/dist/workers/recordDetail.worker.js +7 -7
  33. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/util/console.ts","../src/util/errors.ts","../src/util/assistantKeys.ts","../src/workers/util.ts","../src/util/frames.ts"],"names":["cleanConfig","consideredValue"],"mappings":"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","file":"chunk-2V75NG3U.js","sourcesContent":["type SerializedMarker =\n | { __kzConsole: 'undefined' }\n | { __kzConsole: 'bigint'; value: string }\n | { __kzConsole: 'symbol'; value: string }\n | { __kzConsole: 'function'; name: string }\n | { __kzConsole: 'error'; name: string; message: string; stack?: string | undefined }\n | { __kzConsole: 'date'; value: string }\n | { __kzConsole: 'regexp'; value: string }\n | { __kzConsole: 'circular' }\n | { __kzConsole: 'unserializable'; reason: string };\n\nconst UNSERIALIZABLE = (reason: string): SerializedMarker => ({\n __kzConsole: 'unserializable',\n reason,\n});\n\nconst safeToString = (value: unknown): string => {\n try {\n return String(value);\n } catch {\n return '[unserializable]';\n }\n};\n\nconst isMarker = (value: unknown): value is SerializedMarker =>\n typeof value === 'object' &&\n value !== null &&\n '__kzConsole' in (value as Record<string, unknown>);\n\nconst serialize = (value: unknown, seen: WeakSet<object>): unknown => {\n try {\n if (value === undefined) {\n return { __kzConsole: 'undefined' } satisfies SerializedMarker;\n }\n\n if (value === null) {\n return null;\n }\n\n if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {\n return value;\n }\n\n if (typeof value === 'bigint') {\n return { __kzConsole: 'bigint', value: value.toString() } satisfies SerializedMarker;\n }\n\n if (typeof value === 'symbol') {\n return { __kzConsole: 'symbol', value: value.toString() } satisfies SerializedMarker;\n }\n\n if (typeof value === 'function') {\n return {\n __kzConsole: 'function',\n name: value.name || 'anonymous',\n } satisfies SerializedMarker;\n }\n\n if (value instanceof Error) {\n let name = 'Error';\n let message = '';\n let stack: string | undefined;\n\n try {\n name = value.name;\n } catch {\n /* ignore */\n }\n\n try {\n message = value.message;\n } catch {\n /* ignore */\n }\n\n try {\n stack = value.stack;\n } catch {\n /* ignore */\n }\n\n return { __kzConsole: 'error', name, message, stack } satisfies SerializedMarker;\n }\n if (value instanceof Date) {\n try {\n return { __kzConsole: 'date', value: value.toISOString() } satisfies SerializedMarker;\n } catch {\n return UNSERIALIZABLE('invalid Date');\n }\n }\n if (value instanceof RegExp) {\n return { __kzConsole: 'regexp', value: safeToString(value) } satisfies SerializedMarker;\n }\n\n if (seen.has(value as object)) {\n return { __kzConsole: 'circular' } satisfies SerializedMarker;\n }\n\n seen.add(value as object);\n\n if (Array.isArray(value)) {\n const arr: unknown[] = [];\n\n for (const item of value) {\n try {\n arr.push(serialize(item, seen));\n } catch {\n arr.push(UNSERIALIZABLE('threw during read'));\n }\n }\n return arr;\n }\n\n const out: Record<string, unknown> = {};\n\n let keys: string[] = [];\n\n try {\n keys = Object.keys(value as Record<string, unknown>);\n } catch {\n return UNSERIALIZABLE('cannot enumerate keys');\n }\n\n for (const k of keys) {\n try {\n out[k] = serialize((value as Record<string, unknown>)[k], seen);\n } catch {\n out[k] = UNSERIALIZABLE('threw during read');\n }\n }\n return out;\n } catch {\n return UNSERIALIZABLE('serialization failed');\n }\n};\n\nexport const serializeConsoleArg = (value: unknown): unknown => {\n try {\n return serialize(value, new WeakSet());\n } catch {\n return UNSERIALIZABLE('serialization failed');\n }\n};\n\nconst REGEXP_PATTERN = /^\\/(.*)\\/([dgimsuvy]*)$/;\n\nexport const deserializeConsoleArg = (value: unknown): unknown => {\n try {\n if (value === null || typeof value !== 'object') return value;\n if (Array.isArray(value)) return value.map(deserializeConsoleArg);\n\n if (isMarker(value)) {\n switch (value.__kzConsole) {\n case 'undefined':\n return undefined;\n case 'bigint':\n try {\n return BigInt(value.value);\n } catch {\n return value.value;\n }\n case 'symbol':\n return value.value;\n case 'function':\n return `[Function: ${value.name}]`;\n case 'error': {\n const err = new Error(value.message);\n err.name = value.name;\n if (value.stack) err.stack = value.stack;\n return err;\n }\n case 'date':\n return new Date(value.value);\n case 'regexp': {\n const match = REGEXP_PATTERN.exec(value.value);\n if (!match) return value.value;\n try {\n return new RegExp(match[1] ?? '', match[2]);\n } catch {\n return value.value;\n }\n }\n case 'circular':\n return '[Circular]';\n case 'unserializable':\n return `[Unserializable: ${value.reason}]`;\n }\n }\n\n const out: Record<string, unknown> = {};\n\n for (const [k, v] of Object.entries(value as Record<string, unknown>)) {\n out[k] = deserializeConsoleArg(v);\n }\n return out;\n } catch {\n return '[Unserializable]';\n }\n};\n","import type { UnknownJSON } from '../types/common.js';\n\nexport class KizenRequestError extends Error {\n public proxyStatus: number;\n public upstreamStatus?: number | undefined;\n public upstreamResponse?: UnknownJSON | undefined;\n\n constructor(\n proxyStatus: number,\n upstreamStatus?: number,\n upstreamResponse?: UnknownJSON,\n overrideMessage?: string,\n ) {\n super(\n overrideMessage ??\n (upstreamResponse?.error as { message?: string } | undefined)?.message ??\n (upstreamStatus\n ? `Request failed with status code ${String(upstreamStatus)}`\n : `Request failed with proxy status code ${String(proxyStatus)}`),\n );\n\n this.name = 'KizenRequestError';\n this.proxyStatus = proxyStatus;\n this.upstreamStatus = upstreamStatus;\n this.upstreamResponse = upstreamResponse;\n\n Object.setPrototypeOf(this, KizenRequestError.prototype);\n }\n}\n","/*\n * These helpers can be used in a worker context, so we avoid inflating the worker bundle\n * by keeping them in a separate file from assistant.ts\n */\n\nconst KIZEN_ACTION_PREFIX = '__kizen__action__';\nconst KIZEN_ACTION_MENU_PREFIX = '__kizen__actionmenu__';\nconst KIZEN_ACTION_MENU_HEADING_PREFIX = '__kizen__actionmenuheading__';\nconst KIZEN_ACTION_CONTAINER_PREFIX = '__kizen__actioncontainer__';\n\nexport const getActionContainerKey = (actionApiName: string): string => {\n return `${KIZEN_ACTION_CONTAINER_PREFIX}${actionApiName}`;\n};\n\nexport const getActionFieldKey = (actionApiName: string): string => {\n return `${KIZEN_ACTION_PREFIX}${actionApiName}`;\n};\n\nconst getActionMenuKey = (actionApiName: string): string => {\n return `${KIZEN_ACTION_MENU_PREFIX}${actionApiName}`;\n};\n\nexport const getActionMenuHeadingKey = (actionApiName: string): string => {\n return `${KIZEN_ACTION_MENU_HEADING_PREFIX}${actionApiName}`;\n};\n\nexport const getActionMenuFieldKey = (actionApiName: string, objectId: string): string => {\n return `${getActionMenuKey(actionApiName)}_${objectId}`;\n};\n\nexport const isActionMenuFieldKey = (key: string): boolean => {\n return key.startsWith(KIZEN_ACTION_MENU_PREFIX);\n};\n\nexport const isActionFieldKey = (key: string): boolean => {\n return key.startsWith(KIZEN_ACTION_PREFIX);\n};\n\nexport const splitActionFieldKey = (key: string): string => {\n if (!isActionFieldKey(key)) {\n return '';\n }\n\n return key.slice(KIZEN_ACTION_PREFIX.length);\n};\n\nexport const splitActionMenuFieldKey = (\n key: string,\n): { actionApiName: string; objectId: string } => {\n if (!isActionMenuFieldKey(key)) {\n return { actionApiName: '', objectId: '' };\n }\n\n const suffix = key.slice(KIZEN_ACTION_MENU_PREFIX.length);\n const lastUnderscore = suffix.lastIndexOf('_');\n\n if (lastUnderscore === -1) {\n return { actionApiName: '', objectId: '' };\n }\n\n const apiName = suffix.slice(0, lastUnderscore);\n const objectId = suffix.slice(lastUnderscore + 1);\n\n return {\n actionApiName: apiName,\n objectId,\n };\n};\n","/*\n * Note - this file contains utility functions used in the worker threads for the plugin engine.\n * These functions must be self-contained and cannot rely on imports that would inadvertently\n * include React, which would break local development and bloat the worker in production.\n */\n\nimport { ACTIONS, RESPONSES } from '../communication/constants.js';\nimport type {\n AssistantConfigAction,\n AssistantField,\n BooleanValueStore,\n CleanValueStore,\n CurriedCloseModalFn,\n CurriedDynamicPromptFn,\n CurriedShowViewInModalFn,\n CustomObjectCleanValue,\n CustomObjectValueStore,\n FieldCleanValue,\n FieldValueStore,\n ModalContainer,\n NumberValueStore,\n SelectValueStore,\n SetupAssistantConfig,\n TextValueStore,\n ValueStore,\n} from '../types/modals.js';\nimport type { CurriedKizenRequestFn } from '../types/request.js';\nimport type { PromiseResolve } from '../types/promise.js';\nimport type {\n CurriedCompleteSetupFn,\n CurriedInstallThirdPartyScriptFn,\n CurriedOpenCreateRecordFn,\n CurriedOpenCreateRelatedRecordFn,\n CurriedPostFormDataFn,\n CurriedPromptFn,\n CurriedRefreshEntityFn,\n CurriedUploadFileFn,\n} from '../types/contexts.js';\nimport type {\n CompleteSetupResponsePayload,\n CreateRecordResponsePayload,\n CreateRelatedRecordResponsePayload,\n InstallThirdPartyScriptResponsePayload,\n PostFormDataResponsePayload,\n PromptResponsePayload,\n QueryResponsePayload,\n RefreshEntityResponsePayload,\n UploadFileResponsePayload,\n} from '../types/workers.js';\nimport type { WorkerPromise } from './WorkerPromise.js';\nimport { KizenRequestError } from '../util/errors.js';\nimport type { UnknownJSON } from '../types/common.js';\nimport { getActionFieldKey } from '../util/assistantKeys.js';\n\ninterface KizenErrorPayload {\n __kizenError: true;\n proxyStatus: number;\n upstreamStatus?: number;\n upstreamResponse?: UnknownJSON;\n message: string;\n}\n\nexport const getFieldFromAction = (action: AssistantConfigAction): AssistantField => {\n return {\n key: getActionFieldKey(action.api_name),\n type: 'custom_object',\n label: action.name,\n allow_multiple: true,\n };\n};\n\nexport const NON_INPUT_FIELD_TYPES = ['description', 'container', 'qr', 'image', 'link'];\n\nexport const getAllNestedInputsFromConfig = (\n config: SetupAssistantConfig,\n parentWhen?: string,\n): AssistantField[] => {\n const regular = (config.fields ?? [])\n .filter((entry) => !NON_INPUT_FIELD_TYPES.includes(entry.type))\n .map((r) => {\n return {\n ...r,\n when: parentWhen ? `(${parentWhen}) && (${r.when ?? 'true'})` : r.when,\n };\n }) as AssistantField[];\n\n const containers = (config.fields ?? []).filter((entry) => entry.type === 'container');\n\n const recursiveRegulars = containers.flatMap((container) =>\n getAllNestedInputsFromConfig(container as ModalContainer, container.when),\n );\n\n const actionObjects = config.actions?.filter((action) => action.hint_object_name) ?? [];\n\n return [\n ...regular,\n ...recursiveRegulars,\n ...actionObjects.map((action) => {\n return {\n ...getFieldFromAction(action),\n match_hint: action.hint_object_name ?? '',\n };\n }),\n ];\n};\n\nexport const cleanConfig = (\n setupAssistantConfig: SetupAssistantConfig,\n configValues: Record<string, ValueStore>,\n): CleanValueStore => {\n const flattened = getAllNestedInputsFromConfig(setupAssistantConfig);\n\n const configReference: Record<string, AssistantField> = flattened.reduce((acc, curr) => {\n return {\n ...acc,\n [curr.key]: curr,\n };\n }, {});\n\n const configKeysToClean = Object.keys(configValues);\n\n const cleanConfig: CleanValueStore = {};\n\n configKeysToClean.forEach((key) => {\n const value = configValues[key];\n const configReferenceValue = configReference[key];\n\n if (!configReferenceValue?.type) {\n return;\n }\n\n switch (configReferenceValue.type) {\n case 'boolean':\n const consideredValue = value as BooleanValueStore | undefined;\n\n if (!consideredValue) {\n return;\n }\n\n cleanConfig[key] = consideredValue.value;\n\n return;\n case 'custom_object': {\n const consideredValue = value as CustomObjectValueStore | undefined;\n\n if (!consideredValue) {\n return;\n }\n\n cleanConfig[key] = {\n objectId: consideredValue.value?.id,\n objectName: consideredValue.value?.objectName,\n } as CustomObjectCleanValue;\n\n return;\n }\n case 'field': {\n const consideredValue = value as FieldValueStore | undefined;\n\n if (!consideredValue?.value) {\n return;\n }\n\n if (Array.isArray(consideredValue.value)) {\n cleanConfig[key] = consideredValue.value.map((item) => ({\n fieldId: item.value,\n fieldName: item.label,\n objectId: consideredValue.associatedObject?.id,\n objectName: consideredValue.associatedObject?.name,\n })) as FieldCleanValue;\n } else if (\n typeof consideredValue.value === 'object' &&\n typeof consideredValue.associatedObject === 'object'\n ) {\n cleanConfig[key] = {\n fieldId: consideredValue.value.value,\n fieldName: consideredValue.value.label,\n objectId: consideredValue.associatedObject.id,\n objectName: consideredValue.associatedObject.name,\n } as FieldCleanValue;\n }\n return;\n }\n case 'number': {\n const consideredValue = value as NumberValueStore | undefined;\n\n if (!consideredValue) {\n return;\n }\n\n try {\n const parsed = Number(consideredValue.value);\n\n if (!parsed && parsed !== 0) {\n return;\n }\n\n cleanConfig[key] = parsed;\n } catch {\n cleanConfig[key] = NaN;\n }\n\n return;\n }\n case 'select': {\n const consideredValue = value as SelectValueStore | undefined;\n\n if (!consideredValue) {\n return;\n }\n\n cleanConfig[key] = consideredValue.value;\n return;\n }\n case 'text': {\n const consideredValue = value as TextValueStore | undefined;\n\n const textValue = consideredValue?.value;\n\n if (textValue) {\n cleanConfig[key] = textValue;\n return;\n }\n\n const defaultValue = configReferenceValue.default;\n\n if (defaultValue) {\n cleanConfig[key] = defaultValue;\n }\n\n return;\n }\n case 'description':\n case 'container':\n case 'qr':\n case 'image':\n case 'link':\n return;\n }\n\n return value?.value;\n });\n\n return cleanConfig;\n};\n\nexport const kizenRequestHandler: CurriedKizenRequestFn =\n (instance, promises) => (method) => async (url, payload, options) => {\n return new Promise((resolve, reject) => {\n const id = promises.register(resolve as PromiseResolve, reject);\n\n instance.postMessage(\n JSON.stringify({\n action: ACTIONS.QUERY_REQUEST,\n id,\n method,\n url,\n payload,\n options,\n }),\n );\n });\n };\n\nexport const postFormDataHandler: CurriedPostFormDataFn =\n (instance, promises) =>\n (url, payload, createNewTab = true) => {\n return new Promise((resolve, reject) => {\n const id = promises.register(resolve, reject);\n\n instance.postMessage(\n JSON.stringify({\n action: ACTIONS.POSTFORMDATA_REQUEST,\n url,\n id,\n payload,\n createNewTab,\n }),\n );\n });\n };\n\nexport const promptHandler: CurriedPromptFn = (instance, promises) => (config) => {\n return new Promise((resolve, reject) => {\n const id = promises.register(resolve, reject);\n instance.postMessage(\n JSON.stringify({\n action: ACTIONS.PROMPT_REQUEST,\n id,\n config,\n }),\n );\n });\n};\n\nexport const dynamicPromptHandler: CurriedDynamicPromptFn = (instance, promises) => (config) => {\n return new Promise((resolve, reject) => {\n const id = promises.register(resolve as PromiseResolve, reject);\n instance.postMessage(\n JSON.stringify({\n action: ACTIONS.DYNAMIC_PROMPT_REQUEST,\n id,\n config,\n }),\n );\n });\n};\n\nexport const showViewInModalHandler: CurriedShowViewInModalFn =\n (instance, promises) => (viewId, config) => {\n return new Promise((resolve, reject) => {\n const id = promises.register(resolve as PromiseResolve, reject);\n instance.postMessage(\n JSON.stringify({\n action: ACTIONS.SHOW_VIEW_IN_MODAL_REQUEST,\n id,\n viewId,\n args: config?.args,\n options: config?.options,\n }),\n );\n });\n };\n\nexport const closeModalHandler: CurriedCloseModalFn =\n (instance) =>\n (values, canceled): void => {\n instance.postMessage(\n JSON.stringify({\n action: ACTIONS.CLOSE_MODAL_REQUEST,\n values,\n canceled,\n }),\n );\n };\n\nexport const uploadFileHandler: CurriedUploadFileFn = (instance, promises) => (payload) => {\n return new Promise((resolve, reject) => {\n const id = promises.register(resolve, reject);\n instance.postMessage(\n JSON.stringify({\n action: ACTIONS.UPLOADFILE_REQUEST,\n id,\n payload,\n }),\n );\n });\n};\n\nexport const completeSetupHandler: CurriedCompleteSetupFn =\n (instance, promises) => (payload, options) => {\n return new Promise((resolve, reject) => {\n const id = promises.register(resolve, reject);\n instance.postMessage(\n JSON.stringify({\n action: ACTIONS.COMPLETE_SETUP_REQUEST,\n id,\n payload,\n options,\n }),\n );\n });\n };\n\nexport const installThirdPartyScriptHandler: CurriedInstallThirdPartyScriptFn =\n (instance, promises) => (url, args) => {\n return new Promise((resolve, reject) => {\n const id = promises.register(resolve as PromiseResolve, reject);\n instance.postMessage(\n JSON.stringify({\n action: ACTIONS.INSTALL_THIRD_PARTY_SCRIPT_REQUEST,\n url,\n id,\n args,\n }),\n );\n });\n };\n\nexport const refreshEntityHandler: CurriedRefreshEntityFn =\n (instance, promises) => (entityId: string) => {\n return new Promise((resolve, reject) => {\n const id = promises.register(resolve, reject);\n instance.postMessage(\n JSON.stringify({\n action: ACTIONS.REFRESH_ENTITY,\n id,\n entityId,\n }),\n );\n });\n };\n\nexport const openCreateRecordHandler: CurriedOpenCreateRecordFn =\n (instance, promises) => (objectId: string) => {\n return new Promise((resolve, reject) => {\n const id = promises.register(resolve, reject);\n instance.postMessage(\n JSON.stringify({\n action: ACTIONS.OPEN_CREATE_RECORD_MODAL_REQUEST,\n id,\n entityId: objectId,\n }),\n );\n });\n };\n\nexport const openCreateRelatedRecordHandler: CurriedOpenCreateRelatedRecordFn =\n (instance, promises) => (objectId: string, relatedEntityId: string) => {\n return new Promise((resolve, reject) => {\n const id = promises.register(resolve, reject);\n instance.postMessage(\n JSON.stringify({\n action: ACTIONS.OPEN_CREATE_RELATED_RECORD_MODAL_REQUEST,\n id,\n objectId,\n relatedEntityId,\n }),\n );\n });\n };\n\nexport const handleCommonResponse = (\n action: string,\n e: MessageEvent<string>,\n promises: WorkerPromise,\n): void => {\n switch (action) {\n case RESPONSES.QUERY_RESPONSE: {\n const { id, data, error } = JSON.parse(e.data) as QueryResponsePayload;\n if (error) {\n const reconstructed =\n typeof error === 'object' && '__kizenError' in error\n ? new KizenRequestError(\n (error as KizenErrorPayload).proxyStatus,\n (error as KizenErrorPayload).upstreamStatus,\n (error as KizenErrorPayload).upstreamResponse,\n (error as KizenErrorPayload).message,\n )\n : error;\n\n promises.reject(id, reconstructed);\n } else {\n promises.resolve(id, data);\n }\n\n break;\n }\n case RESPONSES.POSTFORMDATA_RESPONSE: {\n const { id, success } = JSON.parse(e.data) as PostFormDataResponsePayload;\n if (success) {\n promises.resolve(id);\n } else {\n promises.reject(id);\n }\n\n break;\n }\n\n case RESPONSES.UPLOADFILE_RESPONSE: {\n const { id, data, error } = JSON.parse(e.data) as UploadFileResponsePayload;\n if (data) {\n promises.resolve(id, data);\n } else {\n promises.reject(id, error);\n }\n\n break;\n }\n\n case RESPONSES.COMPLETE_SETUP_RESPONSE: {\n const { id, success, error } = JSON.parse(e.data) as CompleteSetupResponsePayload;\n if (success) {\n promises.resolve(id);\n } else {\n promises.reject(id, new Error(error ?? 'Setup configuration could not be saved'));\n }\n\n break;\n }\n\n case RESPONSES.INSTALL_THIRD_PARTY_SCRIPT_RESPONSE: {\n const { id, data } = JSON.parse(e.data) as InstallThirdPartyScriptResponsePayload;\n if (data.success) {\n promises.resolve(id, data);\n } else {\n promises.reject(id);\n }\n\n break;\n }\n\n case RESPONSES.PROMPT_RESPONSE: {\n const { id, data } = JSON.parse(e.data) as PromptResponsePayload;\n promises.resolve(id, data);\n\n break;\n }\n\n case RESPONSES.CREATE_RECORD_RESPONSE: {\n const { id, data } = JSON.parse(e.data) as CreateRecordResponsePayload;\n promises.resolve(id, data);\n\n break;\n }\n\n case RESPONSES.CREATE_RELATED_RECORD_RESPONSE: {\n const { id, data } = JSON.parse(e.data) as CreateRelatedRecordResponsePayload;\n promises.resolve(id, data);\n\n break;\n }\n\n case RESPONSES.REFRESH_ENTITY_RESPONSE: {\n const { id, data } = JSON.parse(e.data) as RefreshEntityResponsePayload;\n if (data.success) {\n promises.resolve(id, true);\n } else {\n promises.reject(id);\n }\n\n break;\n }\n }\n};\n","export const FRAME_PROXY_DOMAIN_DEV = 'plugin-assets.kizen.dev';\nexport const FRAME_PROXY_DOMAIN_PROD = 'plugin-assets.kizen.com';\n\nexport const frameProxyDomains = [FRAME_PROXY_DOMAIN_DEV, FRAME_PROXY_DOMAIN_PROD];\n\n// Local-proxy dev override (off by default). When the engine is built with the\n// env var KIZEN_LOCAL_PROXY_ORIGIN=<origin> — see tsup.config.ts, which injects it\n// as __LOCAL_PROXY_ORIGIN__ — plugin iframes are routed through that locally-served\n// plugin-frame-proxy\nconst isLocalhostOrigin = (origin: string): boolean => {\n try {\n const { hostname } = new URL(origin);\n return hostname === 'localhost' || hostname === '127.0.0.1' || hostname === '[::1]';\n } catch {\n return false;\n }\n};\n\nconst localProxyOrigin = (() => {\n if (!__LOCAL_PROXY_ORIGIN__ || !isLocalhostOrigin(__LOCAL_PROXY_ORIGIN__)) {\n return '';\n }\n\n try {\n return new URL(__LOCAL_PROXY_ORIGIN__).origin;\n } catch {\n return '';\n }\n})();\n\nconst hasLocalProxy = localProxyOrigin !== '';\n\nexport const isFrameProxyOrigin = (origin: string): boolean =>\n (hasLocalProxy && origin === localProxyOrigin) ||\n frameProxyDomains.some((domain) => origin === `https://${domain}`);\n\nconst isProxiedUrl = (candidate: string): boolean => {\n try {\n return isFrameProxyOrigin(new URL(candidate).origin);\n } catch {\n return false;\n }\n};\n\nexport interface FrameProxyEnvelope<T = unknown> {\n plugin_api_name: string;\n source_url: string;\n event: 'message' | 'loaded' | 'error';\n data?: T;\n error?: string;\n _kizen_proxy_nonce: string;\n}\n\nexport type UnwrappedProxyMessage = { handled: true; data: unknown } | { handled: false };\n\nexport const unwrapProxyMessage = (event: MessageEvent): UnwrappedProxyMessage => {\n const data: unknown = event.data;\n\n // Messages pass through as-is that aren't from the proxy\n if (!isFrameProxyOrigin(event.origin)) {\n return { handled: true, data };\n }\n\n const envelope = data as FrameProxyEnvelope;\n\n if (typeof data !== 'object' || data === null || envelope.event !== 'message') {\n return { handled: false };\n }\n\n return { handled: true, data: envelope.data };\n};\n\nexport const allowedAllowFields = [\n 'microphone',\n 'speaker-selection',\n 'autoplay',\n 'camera',\n 'display-capture',\n 'hid',\n];\n\nexport const allowedSandboxValues = ['allow-popups', 'allow-scripts', 'allow-same-origin'];\n\nconst defaultOptions = {\n useDevMode: false,\n __dangerouslySkipProxy: false,\n};\n\nexport type BuildIframeURLWithProxyOptions = Partial<typeof defaultOptions>;\n\nexport const buildIframeURLWithProxy = (\n originalURL: string,\n options: BuildIframeURLWithProxyOptions = defaultOptions,\n allowString = '',\n): {\n url: string;\n isUsingProxy: boolean;\n} => {\n const { useDevMode, __dangerouslySkipProxy } = options;\n\n let url = '';\n\n if (__dangerouslySkipProxy) {\n url = originalURL;\n } else {\n try {\n const parsed = new URL(originalURL);\n\n if (isFrameProxyOrigin(parsed.origin)) {\n url = originalURL;\n } else {\n const proxyBase = hasLocalProxy\n ? localProxyOrigin\n : `https://${useDevMode ? FRAME_PROXY_DOMAIN_DEV : FRAME_PROXY_DOMAIN_PROD}`;\n\n url = `${proxyBase}?url=${encodeURIComponent(originalURL)}&allow=${encodeURIComponent(allowString)}`;\n }\n } catch (ex) {\n console.warn(\n `Failed to parse URL: ${originalURL}. Apps should not attempt to display invalid URLs. Error: ${(ex as Error).message}`,\n );\n\n url = '';\n }\n }\n\n const isUsingProxy = isProxiedUrl(url);\n\n return {\n url,\n isUsingProxy,\n };\n};\n\nexport const filterAllowList = (allow: string[]): string[] => {\n const parsedAllowList = allow.filter((allowEntry) => {\n return allowedAllowFields.some((allowedField) => allowEntry.startsWith(allowedField));\n });\n\n return parsedAllowList;\n};\n\nexport const filterSandboxList = (sandbox: string[]): string[] => {\n const parsedSandboxList = sandbox.filter((sandboxEntry) =>\n allowedSandboxValues.includes(sandboxEntry),\n );\n\n return parsedSandboxList;\n};\n\nexport const getParentFrameAllowParam = (): string => {\n const values = allowedAllowFields.map((field) => {\n return `${field} *`;\n });\n\n return values.join('; ');\n};\n"]}
1
+ {"version":3,"sources":["../src/util/console.ts","../src/util/errors.ts","../src/util/assistantKeys.ts","../src/workers/util.ts","../src/util/frames.ts"],"names":["cleanConfig","consideredValue"],"mappings":"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","file":"chunk-LSKKLO7U.js","sourcesContent":["type SerializedMarker =\n | { __kzConsole: 'undefined' }\n | { __kzConsole: 'bigint'; value: string }\n | { __kzConsole: 'symbol'; value: string }\n | { __kzConsole: 'function'; name: string }\n | { __kzConsole: 'error'; name: string; message: string; stack?: string | undefined }\n | { __kzConsole: 'date'; value: string }\n | { __kzConsole: 'regexp'; value: string }\n | { __kzConsole: 'circular' }\n | { __kzConsole: 'unserializable'; reason: string };\n\nconst UNSERIALIZABLE = (reason: string): SerializedMarker => ({\n __kzConsole: 'unserializable',\n reason,\n});\n\nconst safeToString = (value: unknown): string => {\n try {\n return String(value);\n } catch {\n return '[unserializable]';\n }\n};\n\nconst isMarker = (value: unknown): value is SerializedMarker =>\n typeof value === 'object' &&\n value !== null &&\n '__kzConsole' in (value as Record<string, unknown>);\n\nconst serialize = (value: unknown, seen: WeakSet<object>): unknown => {\n try {\n if (value === undefined) {\n return { __kzConsole: 'undefined' } satisfies SerializedMarker;\n }\n\n if (value === null) {\n return null;\n }\n\n if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {\n return value;\n }\n\n if (typeof value === 'bigint') {\n return { __kzConsole: 'bigint', value: value.toString() } satisfies SerializedMarker;\n }\n\n if (typeof value === 'symbol') {\n return { __kzConsole: 'symbol', value: value.toString() } satisfies SerializedMarker;\n }\n\n if (typeof value === 'function') {\n return {\n __kzConsole: 'function',\n name: value.name || 'anonymous',\n } satisfies SerializedMarker;\n }\n\n if (value instanceof Error) {\n let name = 'Error';\n let message = '';\n let stack: string | undefined;\n\n try {\n name = value.name;\n } catch {\n /* ignore */\n }\n\n try {\n message = value.message;\n } catch {\n /* ignore */\n }\n\n try {\n stack = value.stack;\n } catch {\n /* ignore */\n }\n\n return { __kzConsole: 'error', name, message, stack } satisfies SerializedMarker;\n }\n if (value instanceof Date) {\n try {\n return { __kzConsole: 'date', value: value.toISOString() } satisfies SerializedMarker;\n } catch {\n return UNSERIALIZABLE('invalid Date');\n }\n }\n if (value instanceof RegExp) {\n return { __kzConsole: 'regexp', value: safeToString(value) } satisfies SerializedMarker;\n }\n\n if (seen.has(value as object)) {\n return { __kzConsole: 'circular' } satisfies SerializedMarker;\n }\n\n seen.add(value as object);\n\n if (Array.isArray(value)) {\n const arr: unknown[] = [];\n\n for (const item of value) {\n try {\n arr.push(serialize(item, seen));\n } catch {\n arr.push(UNSERIALIZABLE('threw during read'));\n }\n }\n return arr;\n }\n\n const out: Record<string, unknown> = {};\n\n let keys: string[] = [];\n\n try {\n keys = Object.keys(value as Record<string, unknown>);\n } catch {\n return UNSERIALIZABLE('cannot enumerate keys');\n }\n\n for (const k of keys) {\n try {\n out[k] = serialize((value as Record<string, unknown>)[k], seen);\n } catch {\n out[k] = UNSERIALIZABLE('threw during read');\n }\n }\n return out;\n } catch {\n return UNSERIALIZABLE('serialization failed');\n }\n};\n\nexport const serializeConsoleArg = (value: unknown): unknown => {\n try {\n return serialize(value, new WeakSet());\n } catch {\n return UNSERIALIZABLE('serialization failed');\n }\n};\n\nconst REGEXP_PATTERN = /^\\/(.*)\\/([dgimsuvy]*)$/;\n\nexport const deserializeConsoleArg = (value: unknown): unknown => {\n try {\n if (value === null || typeof value !== 'object') return value;\n if (Array.isArray(value)) return value.map(deserializeConsoleArg);\n\n if (isMarker(value)) {\n switch (value.__kzConsole) {\n case 'undefined':\n return undefined;\n case 'bigint':\n try {\n return BigInt(value.value);\n } catch {\n return value.value;\n }\n case 'symbol':\n return value.value;\n case 'function':\n return `[Function: ${value.name}]`;\n case 'error': {\n const err = new Error(value.message);\n err.name = value.name;\n if (value.stack) err.stack = value.stack;\n return err;\n }\n case 'date':\n return new Date(value.value);\n case 'regexp': {\n const match = REGEXP_PATTERN.exec(value.value);\n if (!match) return value.value;\n try {\n return new RegExp(match[1] ?? '', match[2]);\n } catch {\n return value.value;\n }\n }\n case 'circular':\n return '[Circular]';\n case 'unserializable':\n return `[Unserializable: ${value.reason}]`;\n }\n }\n\n const out: Record<string, unknown> = {};\n\n for (const [k, v] of Object.entries(value as Record<string, unknown>)) {\n out[k] = deserializeConsoleArg(v);\n }\n return out;\n } catch {\n return '[Unserializable]';\n }\n};\n","import type { UnknownJSON } from '../types/common.js';\n\nexport class KizenRequestError extends Error {\n public proxyStatus: number;\n public upstreamStatus?: number | undefined;\n public upstreamResponse?: UnknownJSON | undefined;\n\n constructor(\n proxyStatus: number,\n upstreamStatus?: number,\n upstreamResponse?: UnknownJSON,\n overrideMessage?: string,\n ) {\n super(\n overrideMessage ??\n (upstreamResponse?.error as { message?: string } | undefined)?.message ??\n (upstreamStatus\n ? `Request failed with status code ${String(upstreamStatus)}`\n : `Request failed with proxy status code ${String(proxyStatus)}`),\n );\n\n this.name = 'KizenRequestError';\n this.proxyStatus = proxyStatus;\n this.upstreamStatus = upstreamStatus;\n this.upstreamResponse = upstreamResponse;\n\n Object.setPrototypeOf(this, KizenRequestError.prototype);\n }\n}\n","/*\n * These helpers can be used in a worker context, so we avoid inflating the worker bundle\n * by keeping them in a separate file from assistant.ts\n */\n\nconst KIZEN_ACTION_PREFIX = '__kizen__action__';\nconst KIZEN_ACTION_MENU_PREFIX = '__kizen__actionmenu__';\nconst KIZEN_ACTION_MENU_HEADING_PREFIX = '__kizen__actionmenuheading__';\nconst KIZEN_ACTION_CONTAINER_PREFIX = '__kizen__actioncontainer__';\n\nexport const getActionContainerKey = (actionApiName: string): string => {\n return `${KIZEN_ACTION_CONTAINER_PREFIX}${actionApiName}`;\n};\n\nexport const getActionFieldKey = (actionApiName: string): string => {\n return `${KIZEN_ACTION_PREFIX}${actionApiName}`;\n};\n\nconst getActionMenuKey = (actionApiName: string): string => {\n return `${KIZEN_ACTION_MENU_PREFIX}${actionApiName}`;\n};\n\nexport const getActionMenuHeadingKey = (actionApiName: string): string => {\n return `${KIZEN_ACTION_MENU_HEADING_PREFIX}${actionApiName}`;\n};\n\nexport const getActionMenuFieldKey = (actionApiName: string, objectId: string): string => {\n return `${getActionMenuKey(actionApiName)}_${objectId}`;\n};\n\nexport const isActionMenuFieldKey = (key: string): boolean => {\n return key.startsWith(KIZEN_ACTION_MENU_PREFIX);\n};\n\nexport const isActionFieldKey = (key: string): boolean => {\n return key.startsWith(KIZEN_ACTION_PREFIX);\n};\n\nexport const splitActionFieldKey = (key: string): string => {\n if (!isActionFieldKey(key)) {\n return '';\n }\n\n return key.slice(KIZEN_ACTION_PREFIX.length);\n};\n\nexport const splitActionMenuFieldKey = (\n key: string,\n): { actionApiName: string; objectId: string } => {\n if (!isActionMenuFieldKey(key)) {\n return { actionApiName: '', objectId: '' };\n }\n\n const suffix = key.slice(KIZEN_ACTION_MENU_PREFIX.length);\n const lastUnderscore = suffix.lastIndexOf('_');\n\n if (lastUnderscore === -1) {\n return { actionApiName: '', objectId: '' };\n }\n\n const apiName = suffix.slice(0, lastUnderscore);\n const objectId = suffix.slice(lastUnderscore + 1);\n\n return {\n actionApiName: apiName,\n objectId,\n };\n};\n","/*\n * Note - this file contains utility functions used in the worker threads for the plugin engine.\n * These functions must be self-contained and cannot rely on imports that would inadvertently\n * include React, which would break local development and bloat the worker in production.\n */\n\nimport { ACTIONS, RESPONSES } from '../communication/constants.js';\nimport type {\n AssistantConfigAction,\n AssistantField,\n BooleanValueStore,\n CleanValueStore,\n CurriedCloseModalFn,\n CurriedDynamicPromptFn,\n CurriedShowViewInModalFn,\n CustomObjectCleanValue,\n CustomObjectValueStore,\n FieldCleanValue,\n FieldValueStore,\n ModalContainer,\n NumberValueStore,\n SelectValueStore,\n SetupAssistantConfig,\n TextValueStore,\n ValueStore,\n} from '../types/modals.js';\nimport type { CurriedKizenRequestFn } from '../types/request.js';\nimport type { PromiseResolve } from '../types/promise.js';\nimport type {\n CurriedCompleteSetupFn,\n CurriedInstallThirdPartyScriptFn,\n CurriedOpenCreateRecordFn,\n CurriedOpenCreateRelatedRecordFn,\n CurriedPostFormDataFn,\n CurriedPromptFn,\n CurriedRefreshEntityFn,\n CurriedUploadFileFn,\n} from '../types/contexts.js';\nimport type {\n CompleteSetupResponsePayload,\n CreateRecordResponsePayload,\n CreateRelatedRecordResponsePayload,\n InstallThirdPartyScriptResponsePayload,\n PostFormDataResponsePayload,\n PromptResponsePayload,\n QueryResponsePayload,\n RefreshEntityResponsePayload,\n UploadFileResponsePayload,\n} from '../types/workers.js';\nimport type { WorkerPromise } from './WorkerPromise.js';\nimport { KizenRequestError } from '../util/errors.js';\nimport type { UnknownJSON } from '../types/common.js';\nimport { getActionFieldKey } from '../util/assistantKeys.js';\n\ninterface KizenErrorPayload {\n __kizenError: true;\n proxyStatus: number;\n upstreamStatus?: number;\n upstreamResponse?: UnknownJSON;\n message: string;\n}\n\nexport const getFieldFromAction = (action: AssistantConfigAction): AssistantField => {\n return {\n key: getActionFieldKey(action.api_name),\n type: 'custom_object',\n label: action.name,\n allow_multiple: true,\n };\n};\n\nexport const NON_INPUT_FIELD_TYPES = ['description', 'container', 'qr', 'image', 'link'];\n\nexport const getAllNestedInputsFromConfig = (\n config: SetupAssistantConfig,\n parentWhen?: string,\n): AssistantField[] => {\n const regular = (config.fields ?? [])\n .filter((entry) => !NON_INPUT_FIELD_TYPES.includes(entry.type))\n .map((r) => {\n return {\n ...r,\n when: parentWhen ? `(${parentWhen}) && (${r.when ?? 'true'})` : r.when,\n };\n }) as AssistantField[];\n\n const containers = (config.fields ?? []).filter((entry) => entry.type === 'container');\n\n const recursiveRegulars = containers.flatMap((container) =>\n getAllNestedInputsFromConfig(container as ModalContainer, container.when),\n );\n\n const actionObjects = config.actions?.filter((action) => action.hint_object_name) ?? [];\n\n return [\n ...regular,\n ...recursiveRegulars,\n ...actionObjects.map((action) => {\n return {\n ...getFieldFromAction(action),\n match_hint: action.hint_object_name ?? '',\n };\n }),\n ];\n};\n\nexport const cleanConfig = (\n setupAssistantConfig: SetupAssistantConfig,\n configValues: Record<string, ValueStore>,\n): CleanValueStore => {\n const flattened = getAllNestedInputsFromConfig(setupAssistantConfig);\n\n const configReference: Record<string, AssistantField> = flattened.reduce((acc, curr) => {\n return {\n ...acc,\n [curr.key]: curr,\n };\n }, {});\n\n const configKeysToClean = Object.keys(configValues);\n\n const cleanConfig: CleanValueStore = {};\n\n configKeysToClean.forEach((key) => {\n const value = configValues[key];\n const configReferenceValue = configReference[key];\n\n if (!configReferenceValue?.type) {\n return;\n }\n\n switch (configReferenceValue.type) {\n case 'boolean':\n const consideredValue = value as BooleanValueStore | undefined;\n\n if (!consideredValue) {\n return;\n }\n\n cleanConfig[key] = consideredValue.value;\n\n return;\n case 'custom_object': {\n const consideredValue = value as CustomObjectValueStore | undefined;\n\n if (!consideredValue) {\n return;\n }\n\n cleanConfig[key] = {\n objectId: consideredValue.value?.id,\n objectName: consideredValue.value?.objectName,\n } as CustomObjectCleanValue;\n\n return;\n }\n case 'field': {\n const consideredValue = value as FieldValueStore | undefined;\n\n if (!consideredValue?.value) {\n return;\n }\n\n if (Array.isArray(consideredValue.value)) {\n cleanConfig[key] = consideredValue.value.map((item) => ({\n fieldId: item.value,\n fieldName: item.label,\n objectId: consideredValue.associatedObject?.id,\n objectName: consideredValue.associatedObject?.name,\n })) as FieldCleanValue;\n } else if (\n typeof consideredValue.value === 'object' &&\n typeof consideredValue.associatedObject === 'object'\n ) {\n cleanConfig[key] = {\n fieldId: consideredValue.value.value,\n fieldName: consideredValue.value.label,\n objectId: consideredValue.associatedObject.id,\n objectName: consideredValue.associatedObject.name,\n } as FieldCleanValue;\n }\n return;\n }\n case 'number': {\n const consideredValue = value as NumberValueStore | undefined;\n\n if (!consideredValue) {\n return;\n }\n\n try {\n const parsed = Number(consideredValue.value);\n\n if (!parsed && parsed !== 0) {\n return;\n }\n\n cleanConfig[key] = parsed;\n } catch {\n cleanConfig[key] = NaN;\n }\n\n return;\n }\n case 'select': {\n const consideredValue = value as SelectValueStore | undefined;\n\n if (!consideredValue) {\n return;\n }\n\n cleanConfig[key] = consideredValue.value;\n return;\n }\n case 'text': {\n const consideredValue = value as TextValueStore | undefined;\n\n const textValue = consideredValue?.value;\n\n if (textValue) {\n cleanConfig[key] = textValue;\n return;\n }\n\n const defaultValue = configReferenceValue.default;\n\n if (defaultValue) {\n cleanConfig[key] = defaultValue;\n }\n\n return;\n }\n case 'description':\n case 'container':\n case 'qr':\n case 'image':\n case 'link':\n return;\n }\n\n return value?.value;\n });\n\n return cleanConfig;\n};\n\nexport const kizenRequestHandler: CurriedKizenRequestFn =\n (instance, promises) => (method) => async (url, payload, options) => {\n return new Promise((resolve, reject) => {\n const id = promises.register(resolve as PromiseResolve, reject);\n\n instance.postMessage(\n JSON.stringify({\n action: ACTIONS.QUERY_REQUEST,\n id,\n method,\n url,\n payload,\n options,\n }),\n );\n });\n };\n\nexport const postFormDataHandler: CurriedPostFormDataFn =\n (instance, promises) =>\n (url, payload, createNewTab = true) => {\n return new Promise((resolve, reject) => {\n const id = promises.register(resolve, reject);\n\n instance.postMessage(\n JSON.stringify({\n action: ACTIONS.POSTFORMDATA_REQUEST,\n url,\n id,\n payload,\n createNewTab,\n }),\n );\n });\n };\n\nexport const promptHandler: CurriedPromptFn = (instance, promises) => (config) => {\n return new Promise((resolve, reject) => {\n const id = promises.register(resolve, reject);\n instance.postMessage(\n JSON.stringify({\n action: ACTIONS.PROMPT_REQUEST,\n id,\n config,\n }),\n );\n });\n};\n\nexport const dynamicPromptHandler: CurriedDynamicPromptFn = (instance, promises) => (config) => {\n return new Promise((resolve, reject) => {\n const id = promises.register(resolve as PromiseResolve, reject);\n instance.postMessage(\n JSON.stringify({\n action: ACTIONS.DYNAMIC_PROMPT_REQUEST,\n id,\n config,\n }),\n );\n });\n};\n\nexport const showViewInModalHandler: CurriedShowViewInModalFn =\n (instance, promises) => (viewId, config) => {\n return new Promise((resolve, reject) => {\n const id = promises.register(resolve as PromiseResolve, reject);\n instance.postMessage(\n JSON.stringify({\n action: ACTIONS.SHOW_VIEW_IN_MODAL_REQUEST,\n id,\n viewId,\n args: config?.args,\n options: config?.options,\n }),\n );\n });\n };\n\nexport const closeModalHandler: CurriedCloseModalFn =\n (instance) =>\n (values, canceled): void => {\n instance.postMessage(\n JSON.stringify({\n action: ACTIONS.CLOSE_MODAL_REQUEST,\n values,\n canceled,\n }),\n );\n };\n\nexport const uploadFileHandler: CurriedUploadFileFn = (instance, promises) => (payload) => {\n return new Promise((resolve, reject) => {\n const id = promises.register(resolve, reject);\n instance.postMessage(\n JSON.stringify({\n action: ACTIONS.UPLOADFILE_REQUEST,\n id,\n payload,\n }),\n );\n });\n};\n\nexport const completeSetupHandler: CurriedCompleteSetupFn =\n (instance, promises) => (payload, options) => {\n return new Promise((resolve, reject) => {\n const id = promises.register(resolve, reject);\n instance.postMessage(\n JSON.stringify({\n action: ACTIONS.COMPLETE_SETUP_REQUEST,\n id,\n payload,\n options,\n }),\n );\n });\n };\n\nexport const installThirdPartyScriptHandler: CurriedInstallThirdPartyScriptFn =\n (instance, promises) => (url, args) => {\n return new Promise((resolve, reject) => {\n const id = promises.register(resolve as PromiseResolve, reject);\n instance.postMessage(\n JSON.stringify({\n action: ACTIONS.INSTALL_THIRD_PARTY_SCRIPT_REQUEST,\n url,\n id,\n args,\n }),\n );\n });\n };\n\nexport const refreshEntityHandler: CurriedRefreshEntityFn =\n (instance, promises) => (entityId: string) => {\n return new Promise((resolve, reject) => {\n const id = promises.register(resolve, reject);\n instance.postMessage(\n JSON.stringify({\n action: ACTIONS.REFRESH_ENTITY,\n id,\n entityId,\n }),\n );\n });\n };\n\nexport const openCreateRecordHandler: CurriedOpenCreateRecordFn =\n (instance, promises) => (objectId: string) => {\n return new Promise((resolve, reject) => {\n const id = promises.register(resolve, reject);\n instance.postMessage(\n JSON.stringify({\n action: ACTIONS.OPEN_CREATE_RECORD_MODAL_REQUEST,\n id,\n entityId: objectId,\n }),\n );\n });\n };\n\nexport const openCreateRelatedRecordHandler: CurriedOpenCreateRelatedRecordFn =\n (instance, promises) => (objectId: string, relatedEntityId: string) => {\n return new Promise((resolve, reject) => {\n const id = promises.register(resolve, reject);\n instance.postMessage(\n JSON.stringify({\n action: ACTIONS.OPEN_CREATE_RELATED_RECORD_MODAL_REQUEST,\n id,\n objectId,\n relatedEntityId,\n }),\n );\n });\n };\n\nexport const handleCommonResponse = (\n action: string,\n e: MessageEvent<string>,\n promises: WorkerPromise,\n): void => {\n switch (action) {\n case RESPONSES.QUERY_RESPONSE: {\n const { id, data, error } = JSON.parse(e.data) as QueryResponsePayload;\n if (error) {\n const reconstructed =\n typeof error === 'object' && '__kizenError' in error\n ? new KizenRequestError(\n (error as KizenErrorPayload).proxyStatus,\n (error as KizenErrorPayload).upstreamStatus,\n (error as KizenErrorPayload).upstreamResponse,\n (error as KizenErrorPayload).message,\n )\n : error;\n\n promises.reject(id, reconstructed);\n } else {\n promises.resolve(id, data);\n }\n\n break;\n }\n case RESPONSES.POSTFORMDATA_RESPONSE: {\n const { id, success } = JSON.parse(e.data) as PostFormDataResponsePayload;\n if (success) {\n promises.resolve(id);\n } else {\n promises.reject(id);\n }\n\n break;\n }\n\n case RESPONSES.UPLOADFILE_RESPONSE: {\n const { id, data, error } = JSON.parse(e.data) as UploadFileResponsePayload;\n if (data) {\n promises.resolve(id, data);\n } else {\n promises.reject(id, error);\n }\n\n break;\n }\n\n case RESPONSES.COMPLETE_SETUP_RESPONSE: {\n const { id, success, error } = JSON.parse(e.data) as CompleteSetupResponsePayload;\n if (success) {\n promises.resolve(id);\n } else {\n promises.reject(id, new Error(error ?? 'Setup configuration could not be saved'));\n }\n\n break;\n }\n\n case RESPONSES.INSTALL_THIRD_PARTY_SCRIPT_RESPONSE: {\n const { id, data } = JSON.parse(e.data) as InstallThirdPartyScriptResponsePayload;\n if (data.success) {\n promises.resolve(id, data);\n } else {\n promises.reject(id);\n }\n\n break;\n }\n\n case RESPONSES.PROMPT_RESPONSE: {\n const { id, data } = JSON.parse(e.data) as PromptResponsePayload;\n promises.resolve(id, data);\n\n break;\n }\n\n case RESPONSES.CREATE_RECORD_RESPONSE: {\n const { id, data } = JSON.parse(e.data) as CreateRecordResponsePayload;\n promises.resolve(id, data);\n\n break;\n }\n\n case RESPONSES.CREATE_RELATED_RECORD_RESPONSE: {\n const { id, data } = JSON.parse(e.data) as CreateRelatedRecordResponsePayload;\n promises.resolve(id, data);\n\n break;\n }\n\n case RESPONSES.REFRESH_ENTITY_RESPONSE: {\n const { id, data } = JSON.parse(e.data) as RefreshEntityResponsePayload;\n if (data.success) {\n promises.resolve(id, true);\n } else {\n promises.reject(id);\n }\n\n break;\n }\n }\n};\n","export const FRAME_PROXY_DOMAIN_DEV = 'plugin-assets.kizen.dev';\nexport const FRAME_PROXY_DOMAIN_PROD = 'plugin-assets.kizen.com';\n\nexport const frameProxyDomains = [FRAME_PROXY_DOMAIN_DEV, FRAME_PROXY_DOMAIN_PROD];\n\n// Local-proxy dev override (off by default). When the engine is built with the\n// env var KIZEN_LOCAL_PROXY_ORIGIN=<origin> — see tsup.config.ts, which injects it\n// as __LOCAL_PROXY_ORIGIN__ — plugin iframes are routed through that locally-served\n// plugin-frame-proxy\nconst isLocalhostOrigin = (origin: string): boolean => {\n try {\n const { hostname } = new URL(origin);\n return hostname === 'localhost' || hostname === '127.0.0.1' || hostname === '[::1]';\n } catch {\n return false;\n }\n};\n\nconst localProxyOrigin = (() => {\n if (!__LOCAL_PROXY_ORIGIN__ || !isLocalhostOrigin(__LOCAL_PROXY_ORIGIN__)) {\n return '';\n }\n\n try {\n return new URL(__LOCAL_PROXY_ORIGIN__).origin;\n } catch {\n return '';\n }\n})();\n\nconst hasLocalProxy = localProxyOrigin !== '';\n\nexport const isFrameProxyOrigin = (origin: string): boolean =>\n (hasLocalProxy && origin === localProxyOrigin) ||\n frameProxyDomains.some((domain) => origin === `https://${domain}`);\n\nconst isProxiedUrl = (candidate: string): boolean => {\n try {\n return isFrameProxyOrigin(new URL(candidate).origin);\n } catch {\n return false;\n }\n};\n\nexport interface FrameProxyEnvelope<T = unknown> {\n plugin_api_name: string;\n source_url: string;\n event: 'message' | 'loaded' | 'error';\n data?: T;\n error?: string;\n _kizen_proxy_nonce: string;\n}\n\nexport type UnwrappedProxyMessage = { handled: true; data: unknown } | { handled: false };\n\nexport const unwrapProxyMessage = (event: MessageEvent): UnwrappedProxyMessage => {\n const data: unknown = event.data;\n\n // Messages pass through as-is that aren't from the proxy\n if (!isFrameProxyOrigin(event.origin)) {\n return { handled: true, data };\n }\n\n const envelope = data as FrameProxyEnvelope;\n\n if (typeof data !== 'object' || data === null || envelope.event !== 'message') {\n return { handled: false };\n }\n\n return { handled: true, data: envelope.data };\n};\n\nexport const allowedAllowFields = [\n 'microphone',\n 'speaker-selection',\n 'autoplay',\n 'camera',\n 'display-capture',\n 'hid',\n];\n\nexport const allowedSandboxValues = ['allow-popups', 'allow-scripts', 'allow-same-origin'];\n\nconst defaultOptions = {\n useDevMode: false,\n __dangerouslySkipProxy: false,\n};\n\nexport type BuildIframeURLWithProxyOptions = Partial<typeof defaultOptions>;\n\nexport const buildIframeURLWithProxy = (\n originalURL: string,\n options: BuildIframeURLWithProxyOptions = defaultOptions,\n allowString = '',\n): {\n url: string;\n isUsingProxy: boolean;\n} => {\n const { useDevMode, __dangerouslySkipProxy } = options;\n\n let url = '';\n\n if (__dangerouslySkipProxy) {\n url = originalURL;\n } else {\n try {\n const parsed = new URL(originalURL);\n\n if (isFrameProxyOrigin(parsed.origin)) {\n url = originalURL;\n } else {\n const proxyBase = hasLocalProxy\n ? localProxyOrigin\n : `https://${useDevMode ? FRAME_PROXY_DOMAIN_DEV : FRAME_PROXY_DOMAIN_PROD}`;\n\n url = `${proxyBase}?url=${encodeURIComponent(originalURL)}&allow=${encodeURIComponent(allowString)}`;\n }\n } catch (ex) {\n console.warn(\n `Failed to parse URL: ${originalURL}. Apps should not attempt to display invalid URLs. Error: ${(ex as Error).message}`,\n );\n\n url = '';\n }\n }\n\n const isUsingProxy = isProxiedUrl(url);\n\n return {\n url,\n isUsingProxy,\n };\n};\n\nexport const filterAllowList = (allow: string[]): string[] => {\n const parsedAllowList = allow.filter((allowEntry) => {\n return allowedAllowFields.some((allowedField) => allowEntry.startsWith(allowedField));\n });\n\n return parsedAllowList;\n};\n\nexport const filterSandboxList = (sandbox: string[]): string[] => {\n const parsedSandboxList = sandbox.filter((sandboxEntry) =>\n allowedSandboxValues.includes(sandboxEntry),\n );\n\n return parsedSandboxList;\n};\n\nexport const getParentFrameAllowParam = (): string => {\n const values = allowedAllowFields.map((field) => {\n return `${field} *`;\n });\n\n return values.join('; ');\n};\n"]}
@@ -1,4 +1,4 @@
1
- import { COMMUNICATIONS, ACTIONS } from './chunk-5BBUKTOE.js';
1
+ import { COMMUNICATIONS, ACTIONS } from './chunk-DI3FQCXU.js';
2
2
 
3
3
  // src/communication/Communicate.ts
4
4
  var runFrameScriptEventName = `integration:${COMMUNICATIONS.RUN_FRAME_SCRIPT}`;
@@ -51,5 +51,5 @@ var Communicate = class {
51
51
  };
52
52
 
53
53
  export { Communicate, runBlockScriptEventName, runFrameScriptEventName };
54
- //# sourceMappingURL=chunk-XEZJ3I3F.js.map
55
- //# sourceMappingURL=chunk-XEZJ3I3F.js.map
54
+ //# sourceMappingURL=chunk-PTK42TY3.js.map
55
+ //# sourceMappingURL=chunk-PTK42TY3.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/communication/Communicate.ts"],"names":[],"mappings":";;;AAGO,IAAM,uBAAA,GAA0B,CAAA,YAAA,EAAe,cAAA,CAAe,gBAAgB,CAAA;AAC9E,IAAM,uBAAA,GAA0B,CAAA,YAAA,EAAe,cAAA,CAAe,gBAAgB,CAAA;AAE9E,IAAM,cAAN,MAAkB;AAAA,EACf,QAAA;AAAA,EAER,YAAY,QAAA,EAAoB;AAC9B,IAAA,IAAA,CAAK,QAAA,GAAW,QAAA;AAAA,EAClB;AAAA,EAEO,cAAA,CACL,YAAA,EACA,QAAA,EACA,IAAA,EACM;AACN,IAAA,IAAA,CAAK,QAAA,CAAS,WAAA;AAAA,MACZ,KAAK,SAAA,CAAU;AAAA,QACb,QAAQ,OAAA,CAAQ,WAAA;AAAA,QAChB,MAAM,cAAA,CAAe,gBAAA;AAAA,QACrB,SAAA,EAAW,uBAAA;AAAA,QACX,SAAA,EAAW;AAAA,UACT,KAAA,EAAO,YAAA;AAAA,UACP,MAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,OACD;AAAA,KACH;AAAA,EACF;AAAA,EAEO,cAAA,CACL,YAAA,EACA,QAAA,EACA,IAAA,EACM;AACN,IAAA,IAAA,CAAK,QAAA,CAAS,WAAA;AAAA,MACZ,KAAK,SAAA,CAAU;AAAA,QACb,QAAQ,OAAA,CAAQ,WAAA;AAAA,QAChB,MAAM,cAAA,CAAe,gBAAA;AAAA,QACrB,SAAA,EAAW,uBAAA;AAAA,QACX,SAAA,EAAW;AAAA,UACT,KAAA,EAAO,YAAA;AAAA,UACP,MAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,OACD;AAAA,KACH;AAAA,EACF;AAAA,EAEO,qBAAA,CAAsB,SAAkB,IAAA,EAAoB;AACjE,IAAA,IAAA,CAAK,QAAA,CAAS,WAAA;AAAA,MACZ,KAAK,SAAA,CAAU;AAAA,QACb,QAAQ,OAAA,CAAQ,WAAA;AAAA,QAChB,MAAM,cAAA,CAAe,qBAAA;AAAA,QACrB,IAAA,EAAM;AAAA,UACJ,OAAA;AAAA,UACA;AAAA;AACF,OACD;AAAA,KACH;AAAA,EACF;AACF","file":"chunk-XEZJ3I3F.js","sourcesContent":["import type { Instance } from '../types/contexts.js';\nimport { ACTIONS, COMMUNICATIONS } from './constants.js';\n\nexport const runFrameScriptEventName = `integration:${COMMUNICATIONS.RUN_FRAME_SCRIPT}`;\nexport const runBlockScriptEventName = `integration:${COMMUNICATIONS.RUN_BLOCK_SCRIPT}`;\n\nexport class Communicate {\n private instance: Instance;\n\n constructor(instance: Instance) {\n this.instance = instance;\n }\n\n public runFrameScript(\n frameAPIName: string,\n scriptId: string,\n args?: Record<string, string | number>,\n ): void {\n this.instance.postMessage(\n JSON.stringify({\n action: ACTIONS.COMMUNICATE,\n type: COMMUNICATIONS.RUN_FRAME_SCRIPT,\n eventName: runFrameScriptEventName,\n recipient: {\n frame: frameAPIName,\n script: scriptId,\n },\n args,\n }),\n );\n }\n\n public runBlockScript(\n blockAPIName: string,\n scriptId: string,\n args?: Record<string, string | number>,\n ): void {\n this.instance.postMessage(\n JSON.stringify({\n action: ACTIONS.COMMUNICATE,\n type: COMMUNICATIONS.RUN_BLOCK_SCRIPT,\n eventName: runBlockScriptEventName,\n recipient: {\n block: blockAPIName,\n script: scriptId,\n },\n args,\n }),\n );\n }\n\n public sendMessageToOwnFrame(payload: unknown, path: string): void {\n this.instance.postMessage(\n JSON.stringify({\n action: ACTIONS.COMMUNICATE,\n type: COMMUNICATIONS.SEND_MESSAGE_TO_FRAME,\n args: {\n payload,\n path,\n },\n }),\n );\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/communication/Communicate.ts"],"names":[],"mappings":";;;AAGO,IAAM,uBAAA,GAA0B,CAAA,YAAA,EAAe,cAAA,CAAe,gBAAgB,CAAA;AAC9E,IAAM,uBAAA,GAA0B,CAAA,YAAA,EAAe,cAAA,CAAe,gBAAgB,CAAA;AAE9E,IAAM,cAAN,MAAkB;AAAA,EACf,QAAA;AAAA,EAER,YAAY,QAAA,EAAoB;AAC9B,IAAA,IAAA,CAAK,QAAA,GAAW,QAAA;AAAA,EAClB;AAAA,EAEO,cAAA,CACL,YAAA,EACA,QAAA,EACA,IAAA,EACM;AACN,IAAA,IAAA,CAAK,QAAA,CAAS,WAAA;AAAA,MACZ,KAAK,SAAA,CAAU;AAAA,QACb,QAAQ,OAAA,CAAQ,WAAA;AAAA,QAChB,MAAM,cAAA,CAAe,gBAAA;AAAA,QACrB,SAAA,EAAW,uBAAA;AAAA,QACX,SAAA,EAAW;AAAA,UACT,KAAA,EAAO,YAAA;AAAA,UACP,MAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,OACD;AAAA,KACH;AAAA,EACF;AAAA,EAEO,cAAA,CACL,YAAA,EACA,QAAA,EACA,IAAA,EACM;AACN,IAAA,IAAA,CAAK,QAAA,CAAS,WAAA;AAAA,MACZ,KAAK,SAAA,CAAU;AAAA,QACb,QAAQ,OAAA,CAAQ,WAAA;AAAA,QAChB,MAAM,cAAA,CAAe,gBAAA;AAAA,QACrB,SAAA,EAAW,uBAAA;AAAA,QACX,SAAA,EAAW;AAAA,UACT,KAAA,EAAO,YAAA;AAAA,UACP,MAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,OACD;AAAA,KACH;AAAA,EACF;AAAA,EAEO,qBAAA,CAAsB,SAAkB,IAAA,EAAoB;AACjE,IAAA,IAAA,CAAK,QAAA,CAAS,WAAA;AAAA,MACZ,KAAK,SAAA,CAAU;AAAA,QACb,QAAQ,OAAA,CAAQ,WAAA;AAAA,QAChB,MAAM,cAAA,CAAe,qBAAA;AAAA,QACrB,IAAA,EAAM;AAAA,UACJ,OAAA;AAAA,UACA;AAAA;AACF,OACD;AAAA,KACH;AAAA,EACF;AACF","file":"chunk-PTK42TY3.js","sourcesContent":["import type { Instance } from '../types/contexts.js';\nimport { ACTIONS, COMMUNICATIONS } from './constants.js';\n\nexport const runFrameScriptEventName = `integration:${COMMUNICATIONS.RUN_FRAME_SCRIPT}`;\nexport const runBlockScriptEventName = `integration:${COMMUNICATIONS.RUN_BLOCK_SCRIPT}`;\n\nexport class Communicate {\n private instance: Instance;\n\n constructor(instance: Instance) {\n this.instance = instance;\n }\n\n public runFrameScript(\n frameAPIName: string,\n scriptId: string,\n args?: Record<string, string | number>,\n ): void {\n this.instance.postMessage(\n JSON.stringify({\n action: ACTIONS.COMMUNICATE,\n type: COMMUNICATIONS.RUN_FRAME_SCRIPT,\n eventName: runFrameScriptEventName,\n recipient: {\n frame: frameAPIName,\n script: scriptId,\n },\n args,\n }),\n );\n }\n\n public runBlockScript(\n blockAPIName: string,\n scriptId: string,\n args?: Record<string, string | number>,\n ): void {\n this.instance.postMessage(\n JSON.stringify({\n action: ACTIONS.COMMUNICATE,\n type: COMMUNICATIONS.RUN_BLOCK_SCRIPT,\n eventName: runBlockScriptEventName,\n recipient: {\n block: blockAPIName,\n script: scriptId,\n },\n args,\n }),\n );\n }\n\n public sendMessageToOwnFrame(payload: unknown, path: string): void {\n this.instance.postMessage(\n JSON.stringify({\n action: ACTIONS.COMMUNICATE,\n type: COMMUNICATIONS.SEND_MESSAGE_TO_FRAME,\n args: {\n payload,\n path,\n },\n }),\n );\n }\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  import './chunk-LGJYUPYZ.js';
2
- export { Communicate, runBlockScriptEventName, runFrameScriptEventName } from './chunk-XEZJ3I3F.js';
3
- export { IFRAME_PREFIX, INDICATOR_TYPE, ThirdPartyScript } from './chunk-5BBUKTOE.js';
2
+ export { Communicate, runBlockScriptEventName, runFrameScriptEventName } from './chunk-PTK42TY3.js';
3
+ export { IFRAME_PREFIX, INDICATOR_TYPE, ThirdPartyScript } from './chunk-DI3FQCXU.js';
4
4
  import './chunk-5WRI5ZAA.js';
5
5
  //# sourceMappingURL=communication.js.map
6
6
  //# sourceMappingURL=communication.js.map
@@ -1,7 +1,7 @@
1
- export { BaseWorkerContext } from '../chunk-2AJY4I2T.js';
2
- import '../chunk-2V75NG3U.js';
3
- import '../chunk-XEZJ3I3F.js';
4
- import '../chunk-5BBUKTOE.js';
1
+ export { BaseWorkerContext } from '../chunk-FM65VYJM.js';
2
+ import '../chunk-LSKKLO7U.js';
3
+ import '../chunk-PTK42TY3.js';
4
+ import '../chunk-DI3FQCXU.js';
5
5
  import '../chunk-5WRI5ZAA.js';
6
6
  //# sourceMappingURL=base.js.map
7
7
  //# sourceMappingURL=base.js.map
@@ -1,8 +1,8 @@
1
- export { FloatingFrameWorkerContext } from '../chunk-G43HJUPD.js';
2
- import '../chunk-2AJY4I2T.js';
3
- import '../chunk-2V75NG3U.js';
4
- import '../chunk-XEZJ3I3F.js';
5
- import '../chunk-5BBUKTOE.js';
1
+ export { FloatingFrameWorkerContext } from '../chunk-3YLJ35JR.js';
2
+ import '../chunk-FM65VYJM.js';
3
+ import '../chunk-LSKKLO7U.js';
4
+ import '../chunk-PTK42TY3.js';
5
+ import '../chunk-DI3FQCXU.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-REAN7GYY.js';
2
- import '../chunk-2AJY4I2T.js';
3
- import '../chunk-2V75NG3U.js';
4
- import '../chunk-XEZJ3I3F.js';
5
- import '../chunk-5BBUKTOE.js';
1
+ export { RecordDetailWorkerContext } from '../chunk-GUTKQJIQ.js';
2
+ import '../chunk-FM65VYJM.js';
3
+ import '../chunk-LSKKLO7U.js';
4
+ import '../chunk-PTK42TY3.js';
5
+ import '../chunk-DI3FQCXU.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-TPV5Q6GW.js';
2
- import './chunk-S4WCVWFO.js';
3
- import './chunk-2V75NG3U.js';
4
- import './chunk-5BBUKTOE.js';
1
+ export { clearNavigationContext, consumeNavigationContext, modalSize, readNavigationContext, runExpression, runObjectExpression, runOptionExpression, runScript, runStringExpression, version } from './chunk-3OBYDDMG.js';
2
+ import './chunk-B6A5OU2M.js';
3
+ import './chunk-LSKKLO7U.js';
4
+ import './chunk-DI3FQCXU.js';
5
5
  import './chunk-5WRI5ZAA.js';
6
6
  //# sourceMappingURL=index.js.map
7
7
  //# sourceMappingURL=index.js.map
package/dist/react.d.ts CHANGED
@@ -354,7 +354,7 @@ interface SetupAssistantContextValue {
354
354
  setState: (stateUpdate: SetStateAction<Record<string, UnknownJSON>> | Record<string, UnknownJSON>) => void;
355
355
  interpolateValue: (accessor: string) => unknown;
356
356
  getNestedFields: () => AssistantField[];
357
- reInferFieldsForObject: (objectKey: string) => Promise<void>;
357
+ reInferFieldsForObject: (objectKey: string, forceObjectId?: string) => Promise<void>;
358
358
  inferencePending: boolean;
359
359
  evaluateExpression: (expression: string, key: string) => Promise<unknown>;
360
360
  shouldHideField: (key: string) => boolean;
package/dist/react.js CHANGED
@@ -1,9 +1,9 @@
1
- import { runScript, getPluginSafeHTML, getStableHash, readNavigationContext, clearNavigationContext, runExpression, isFlagEnabled } from './chunk-TPV5Q6GW.js';
1
+ import { runScript, getPluginSafeHTML, getStableHash, readNavigationContext, clearNavigationContext, runExpression, isFlagEnabled } from './chunk-3OBYDDMG.js';
2
2
  import './chunk-LGJYUPYZ.js';
3
- import { generateExecutionKey } from './chunk-S4WCVWFO.js';
4
- import { buildIframeURLWithProxy, unwrapProxyMessage, getAllNestedInputsFromConfig, getActionFieldKey, getFieldFromAction, getActionMenuFieldKey } from './chunk-2V75NG3U.js';
5
- import { runFrameScriptEventName, runBlockScriptEventName } from './chunk-XEZJ3I3F.js';
6
- import { QUERY_KEYS, ROUTE_CHANGE_INTERNAL_EVENT, IFRAME_PREFIX, ROUTE_CHANGE_IFRAME_EVENT } from './chunk-5BBUKTOE.js';
3
+ import { generateExecutionKey } from './chunk-B6A5OU2M.js';
4
+ import { buildIframeURLWithProxy, unwrapProxyMessage, getAllNestedInputsFromConfig, getActionFieldKey, getFieldFromAction, getActionMenuFieldKey } from './chunk-LSKKLO7U.js';
5
+ import { runFrameScriptEventName, runBlockScriptEventName } from './chunk-PTK42TY3.js';
6
+ import { QUERY_KEYS, ROUTE_CHANGE_INTERNAL_EVENT, IFRAME_PREFIX, ROUTE_CHANGE_IFRAME_EVENT } from './chunk-DI3FQCXU.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';
@@ -2440,9 +2440,28 @@ var SetupAssistantContext = createContext(null);
2440
2440
  var SetupAssistantProvider = SetupAssistantContext.Provider;
2441
2441
  var getUsableValue = (type, value) => {
2442
2442
  if (type === "custom_object") {
2443
+ if (Array.isArray(value)) {
2444
+ return value[0]?.id;
2445
+ }
2443
2446
  return value?.id;
2444
2447
  }
2445
2448
  };
2449
+ var getStateAccessorKey = (accessor) => {
2450
+ if (accessor.startsWith("{{") && accessor.endsWith("}}")) {
2451
+ return accessor.slice(2, -2).trim();
2452
+ }
2453
+ return void 0;
2454
+ };
2455
+ var interpolateValueFromState = (accessor, consideredState) => {
2456
+ const stateKey = getStateAccessorKey(accessor);
2457
+ if (stateKey !== void 0) {
2458
+ return getUsableValue(
2459
+ consideredState[stateKey]?.type,
2460
+ consideredState[stateKey]?.value
2461
+ );
2462
+ }
2463
+ return accessor;
2464
+ };
2446
2465
  var doesValueExist = (field, value) => {
2447
2466
  if (field.type === "custom_object") {
2448
2467
  if (field.allow_multiple) {
@@ -2501,6 +2520,24 @@ var getNestedFieldsFromConfig = (config) => {
2501
2520
  );
2502
2521
  return [...objects, ...recursiveFields];
2503
2522
  };
2523
+ var resolveInferredObjectId = ({
2524
+ objectIdAccessor,
2525
+ forceObjectId,
2526
+ resolvedObjects,
2527
+ state
2528
+ }) => {
2529
+ if (forceObjectId !== void 0) {
2530
+ return forceObjectId;
2531
+ }
2532
+ const accessorKey = getStateAccessorKey(objectIdAccessor);
2533
+ if (accessorKey !== void 0) {
2534
+ const resolvedObjectId = resolvedObjects?.[accessorKey]?.id;
2535
+ if (resolvedObjectId !== void 0) {
2536
+ return resolvedObjectId;
2537
+ }
2538
+ }
2539
+ return interpolateValueFromState(objectIdAccessor, state);
2540
+ };
2504
2541
  var SetupAssistantController = ({
2505
2542
  children,
2506
2543
  config,
@@ -2600,24 +2637,11 @@ var SetupAssistantController = ({
2600
2637
  },
2601
2638
  [onStateChange]
2602
2639
  );
2603
- const interpolateValueFromState = useCallback(
2604
- (accessor, consideredState) => {
2605
- if (accessor.startsWith("{{") && accessor.endsWith("}}")) {
2606
- const stateKey = accessor.slice(2, -2).trim();
2607
- return getUsableValue(
2608
- consideredState[stateKey]?.type,
2609
- consideredState[stateKey]?.value
2610
- );
2611
- }
2612
- return accessor;
2613
- },
2614
- []
2615
- );
2616
2640
  const interpolateValue = useCallback(
2617
2641
  (accessor) => {
2618
2642
  return interpolateValueFromState(accessor, state);
2619
2643
  },
2620
- [state, interpolateValueFromState]
2644
+ [state]
2621
2645
  );
2622
2646
  const { clientObject } = useAppState();
2623
2647
  const getPotentialMatch = useCallback(
@@ -2637,6 +2661,7 @@ var SetupAssistantController = ({
2637
2661
  );
2638
2662
  const handleInferObjects = useCallback(async () => {
2639
2663
  const objectsToInfer = getNestedObjectsFromConfig(config);
2664
+ const matchedObjects = {};
2640
2665
  for (const inferrableObject of objectsToInfer) {
2641
2666
  if (!inferrableObject.match_hint) {
2642
2667
  continue;
@@ -2647,6 +2672,7 @@ var SetupAssistantController = ({
2647
2672
  id: potentialMatch[0].id,
2648
2673
  objectName: potentialMatch[0].object_name
2649
2674
  };
2675
+ matchedObjects[inferrableObject.key] = value2;
2650
2676
  setState((prev) => {
2651
2677
  const result = {
2652
2678
  ...prev,
@@ -2659,23 +2685,32 @@ var SetupAssistantController = ({
2659
2685
  });
2660
2686
  }
2661
2687
  }
2688
+ return matchedObjects;
2662
2689
  }, [config, setState, getPotentialMatch]);
2663
2690
  const getInferrableFields = useCallback(() => {
2664
2691
  return getNestedFieldsFromConfig(config);
2665
2692
  }, [config]);
2666
2693
  const handleInferFields = useCallback(
2667
- async (objectIdFilter, forceObjectId) => {
2694
+ async (objectIdFilter, forceObjectId, resolvedObjects) => {
2668
2695
  const fieldsToInfer = getInferrableFields();
2669
2696
  const objectResults = {};
2670
2697
  for (const inferrableField of fieldsToInfer) {
2671
2698
  if (!inferrableField.object_id) {
2672
2699
  continue;
2673
2700
  }
2674
- const objectId = forceObjectId ?? interpolateValueFromState(inferrableField.object_id, inferenceState.current);
2675
- if (objectIdFilter && !inferrableField.object_id.includes(objectIdFilter)) {
2701
+ if (objectIdFilter && getStateAccessorKey(inferrableField.object_id) !== objectIdFilter) {
2676
2702
  continue;
2677
2703
  }
2678
- if (!objectResults[objectId] && objectId) {
2704
+ const objectId = resolveInferredObjectId({
2705
+ objectIdAccessor: inferrableField.object_id,
2706
+ forceObjectId,
2707
+ resolvedObjects,
2708
+ state: inferenceState.current
2709
+ });
2710
+ if (!objectId) {
2711
+ continue;
2712
+ }
2713
+ if (!objectResults[objectId]) {
2679
2714
  try {
2680
2715
  objectResults[objectId] = await getCustomObjectDetails(objectId);
2681
2716
  } catch {
@@ -2706,7 +2741,7 @@ var SetupAssistantController = ({
2706
2741
  }
2707
2742
  }
2708
2743
  },
2709
- [interpolateValueFromState, getInferrableFields, setState, getCustomObjectDetails]
2744
+ [getInferrableFields, setState, getCustomObjectDetails]
2710
2745
  );
2711
2746
  const handleReinferObjectByKey = useCallback(
2712
2747
  async (key) => {
@@ -2714,7 +2749,13 @@ var SetupAssistantController = ({
2714
2749
  const matchingObject = objectsToInfer.find((obj) => obj.key === key);
2715
2750
  if (matchingObject?.match_hint) {
2716
2751
  let matchedObjectId = "";
2717
- const potentialMatch = await getPotentialMatch(matchingObject.match_hint);
2752
+ let potentialMatch;
2753
+ try {
2754
+ potentialMatch = await getPotentialMatch(matchingObject.match_hint);
2755
+ } catch (ex) {
2756
+ console.warn("Failed to re-infer object for key:", key, ex);
2757
+ return;
2758
+ }
2718
2759
  const match = potentialMatch?.[0];
2719
2760
  if (match) {
2720
2761
  matchedObjectId = match.id;
@@ -2732,7 +2773,7 @@ var SetupAssistantController = ({
2732
2773
  return result;
2733
2774
  });
2734
2775
  if (matchedObjectId) {
2735
- void handleInferFields(void 0, matchedObjectId);
2776
+ void handleInferFields(key, matchedObjectId);
2736
2777
  }
2737
2778
  }
2738
2779
  }
@@ -2740,16 +2781,21 @@ var SetupAssistantController = ({
2740
2781
  [config, setState, handleInferFields, getPotentialMatch]
2741
2782
  );
2742
2783
  const handleConfigInference = useCallback(async () => {
2743
- await handleInferObjects();
2744
- await handleInferFields();
2745
- setInferencePending(false);
2784
+ try {
2785
+ const inferredObjects = await handleInferObjects();
2786
+ await handleInferFields(void 0, void 0, inferredObjects);
2787
+ } catch (ex) {
2788
+ console.warn("Failed to infer setup assistant config:", ex);
2789
+ } finally {
2790
+ setInferencePending(false);
2791
+ }
2746
2792
  }, [handleInferObjects, handleInferFields]);
2747
2793
  const getNestedFields = useCallback(() => {
2748
2794
  return getNestedFieldsFromConfig(config);
2749
2795
  }, [config]);
2750
2796
  const reInferFieldsForObject = useCallback(
2751
- (objectKey) => {
2752
- return handleInferFields(objectKey);
2797
+ (objectKey, forceObjectId) => {
2798
+ return handleInferFields(objectKey, forceObjectId);
2753
2799
  },
2754
2800
  [handleInferFields]
2755
2801
  );