@kizenapps/engine 1.4.0-01344a3 → 1.5.0-53bcfe4

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 (53) hide show
  1. package/LICENSE.md +1 -1
  2. package/dist/{ThirdPartyScript-CoMDaLsq.d.ts → ThirdPartyScript-cM_3Ut1L.d.ts} +31 -3
  3. package/dist/{automation-CWET9vfs.d.ts → automation-DdbPK8-Z.d.ts} +20 -3
  4. package/dist/{chunk-AY5OQ5KM.js → chunk-36G3L5ZV.js} +184 -4
  5. package/dist/chunk-36G3L5ZV.js.map +1 -0
  6. package/dist/{chunk-GVATLHW3.js → chunk-4MQ4E7D6.js} +3 -3
  7. package/dist/{chunk-GVATLHW3.js.map → chunk-4MQ4E7D6.js.map} +1 -1
  8. package/dist/{chunk-MRN746YD.js → chunk-6EG3BV5X.js} +52 -6
  9. package/dist/chunk-6EG3BV5X.js.map +1 -0
  10. package/dist/{chunk-PPRZFBZZ.js → chunk-ANAHYJTV.js} +5 -3
  11. package/dist/chunk-ANAHYJTV.js.map +1 -0
  12. package/dist/{chunk-ZMIF22NR.js → chunk-D54DBKHM.js} +78 -8
  13. package/dist/chunk-D54DBKHM.js.map +1 -0
  14. package/dist/{chunk-IGHBWLIS.js → chunk-DQECJSHA.js} +7 -4
  15. package/dist/chunk-DQECJSHA.js.map +1 -0
  16. package/dist/{chunk-5ZVIHUN4.js → chunk-ETFBGH26.js} +3 -3
  17. package/dist/{chunk-5ZVIHUN4.js.map → chunk-ETFBGH26.js.map} +1 -1
  18. package/dist/{chunk-YBCIIIAP.js → chunk-MQCYS74W.js} +4 -4
  19. package/dist/{chunk-YBCIIIAP.js.map → chunk-MQCYS74W.js.map} +1 -1
  20. package/dist/{chunk-V6JXKTHL.js → chunk-Q7UJXNJH.js} +3 -3
  21. package/dist/{chunk-V6JXKTHL.js.map → chunk-Q7UJXNJH.js.map} +1 -1
  22. package/dist/communication.d.ts +2 -2
  23. package/dist/communication.js +2 -2
  24. package/dist/contexts/base.d.ts +10 -3
  25. package/dist/contexts/base.js +4 -4
  26. package/dist/contexts/floatingFrame.d.ts +1 -1
  27. package/dist/contexts/floatingFrame.js +5 -5
  28. package/dist/contexts/recordDetail.d.ts +1 -1
  29. package/dist/contexts/recordDetail.js +5 -5
  30. package/dist/{generic-CQyBACwP.d.ts → generic-CCLPwofS.d.ts} +1 -1
  31. package/dist/index.d.ts +6 -6
  32. package/dist/index.js +4 -4
  33. package/dist/react.d.ts +19 -6
  34. package/dist/react.js +118 -74
  35. package/dist/react.js.map +1 -1
  36. package/dist/types.d.ts +5 -5
  37. package/dist/util.d.ts +3 -3
  38. package/dist/util.js +5 -5
  39. package/dist/{values-BwAd85Ee.d.ts → values-BA8dwWnM.d.ts} +2 -2
  40. package/dist/workers/calendarSource.worker.js +11 -6
  41. package/dist/workers/calendarSource.worker.js.map +1 -1
  42. package/dist/workers/floatingFrame.worker.js +9 -7
  43. package/dist/workers/floatingFrame.worker.js.map +1 -1
  44. package/dist/workers/generic.worker.js +8 -6
  45. package/dist/workers/generic.worker.js.map +1 -1
  46. package/dist/workers/recordDetail.worker.js +9 -7
  47. package/dist/workers/recordDetail.worker.js.map +1 -1
  48. package/package.json +1 -1
  49. package/dist/chunk-AY5OQ5KM.js.map +0 -1
  50. package/dist/chunk-IGHBWLIS.js.map +0 -1
  51. package/dist/chunk-MRN746YD.js.map +0 -1
  52. package/dist/chunk-PPRZFBZZ.js.map +0 -1
  53. package/dist/chunk-ZMIF22NR.js.map +0 -1
package/dist/types.d.ts CHANGED
@@ -1,9 +1,9 @@
1
- import { U as UnknownJSON, b as PartialUser, c as PartialTeamMember, d as PartialBusiness, e as PartialClientObject, i as PartialLocation } from './ThirdPartyScript-CoMDaLsq.js';
2
- export { o as AppPlugin, q as AppPlugins, A as Args, r as AssistantConfigAction, s as AssistantField, t as AssistantLink, B as BaseAPI, u as BooleanCleanValue, v as BooleanValueStore, w as ButtonConfig, x as CleanValueStore, y as CleanValueStoreType, z as ConfigService, E as CreateRecordModalQueue, F as CreateRelatedRecordModalQueue, C as CurrentUser, H as CurriedDynamicPromptFn, J as CurriedInstallThirdPartyScriptFn, K as CurriedKizenRequestFn, L as CurriedOpenCreateRecordFn, N as CurriedOpenCreateRelatedRecordFn, O as CurriedPostFormDataFn, Q as CurriedPromptFn, V as CurriedRefreshEntityFn, X as CurriedUploadFileFn, Y as CustomObjectCleanValue, Z as CustomObjectValueStore, D as DataCache, _ as DataCacheEntry, $ as DeleteReturnValue, l as DynamicPromptConfig, a0 as DynamicPromptFn, a1 as EmployeeConfig, a2 as ErrorHandler, a3 as ErrorResponse, a4 as FieldCleanValue, a5 as FieldValueStore, G as GetOptions, a6 as GetReturnValue, m as IncludeOption, a7 as InstallThirdPartyScriptFn, I as Instance, h as InternalSessionData, a8 as JSONArray, a9 as JSONObject, aa as JSONPrimitive, ab as JSONValue, ac as KizenConfig, ad as KizenNetworkResponse, ae as KizenProxySuccessResponse, af as KizenRequestFn, ag as KizenRequestFnHandler, ah as KnownArgs, ai as MatchSetupAssistantField, aj as MaybeMessageError, ak as ModalBlock, al as ModalCancelEventSource, M as ModalConfig, am as ModalContainer, an as ModalQueue, ao as NumberCleanValue, ap as NumberValueStore, aq as OnNetworkErrorFn, ar as OnShowCreateRecordModalFn, as as OnShowCreateRelatedRecordModalFn, at as OnShowModalFn, au as OpenCreateRecordFn, av as OpenCreateRelatedRecordFn, a as PartialCustomObject, P as PartialEntity, aw as PartialRelatedObject, ax as PatchReturnValue, f as PostFormDataFn, ay as PostFormDataPayload, az as PostReturnValue, aA as Profile, aB as PromiseMap, aC as PromiseReject, aD as PromiseResolve, aE as PromiseState, aF as PromptFn, g as PromptState, aG as PutReturnValue, aH as RefreshEntityFn, aI as ReleaseBlockingScriptHandler, j as RequestOptions, R as RequestWithErrorsResponse, aJ as SelectCleanValue, p as SelectOption, aK as SelectValueStore, aL as SetInternalSessionDataFn, aM as SetupAssistantConfig, n as SetupAssistantField, k as ShowToastOptions, S as StateChangePayload, aN as TextValueStore, aO as UnknownFunction, aP as UploadFileData, aQ as UploadFileFn, aR as UserConfig, aS as ValueStore, W as WorkerContextArgs } from './ThirdPartyScript-CoMDaLsq.js';
3
- import { a as CommonPluginDefinition } from './automation-CWET9vfs.js';
4
- export { e as AuthorizeEvent, A as AutomationStepConfig, B as BaseEvent, f as CalendarDefinition, g as CalendarScriptReturnData, c as CalendarSourceConfig, h as CalendarSourceMap, i as CalendarSources, C as CommonExecutionPlugin, j as CommunicateEvent, k as CopyToClipboardEvent, l as CreateFileIdFn, D as DataAdornmentConfig, m as DoneEvent, n as DynamicPromptRequestEvent, E as ErrorEvent, o as ExecuteCalendarSourceScript, p as ExecuteFloatingFrameScript, F as FloatingFrameConfig, q as FloatingFrameEmployeeConfig, r as FrameQuadrant, G as GetPendingCacheCountFn, H as HideEvent, I as IframeOutputEvent, s as InstallThirdPartyScriptRequestEvent, t as InvalidateCacheFn, K as KizenFile, M as MessageEventData, u as MinimizedConfig, O as OnClearToastsFn, v as OnNetworkRequestFn, w as OnShowToastFn, x as OpenCreateRecordModalRequestEvent, y as OpenCreateRelatedRecordModalRequestEvent, z as OpenWindowEvent, P as PerformKizenFileUploadFn, J as PostFormDataRequestEvent, L as PromptRequestEvent, Q as QueryRequestEvent, N as RecipientConfig, S as RefreshEntityEvent, U as RefreshTimelineEvent, V as RequestableQueryMethods, R as RoutablePageConfig, b as RouteScriptConfig, d as RunScriptOptions, W as SchemaValidation, X as SetStateEvent, Y as ShowEvent, Z as ShowToastEvent, _ as TerminatorContent, $ as Terminators, T as ToolbarItemConfig, a0 as UIOutputEvent, a1 as UpdateSessionDataEvent, a2 as UploadFilePayload, a3 as UploadFileRequestEvent, a4 as WindowPosition } from './automation-CWET9vfs.js';
1
+ import { U as UnknownJSON, b as PartialUser, c as PartialTeamMember, d as PartialBusiness, e as PartialClientObject, i as PartialLocation } from './ThirdPartyScript-cM_3Ut1L.js';
2
+ export { q as AppPlugin, s as AppPlugins, A as Args, t as AssistantConfigAction, u as AssistantField, v as AssistantLink, B as BaseAPI, w as BooleanCleanValue, x as BooleanValueStore, y as ButtonConfig, z as CleanValueStore, E as CleanValueStoreType, F as CloseModalFn, H as ConfigService, n as ConsoleBridge, J as ConsoleLogLevel, K as CreateRecordModalQueue, L as CreateRelatedRecordModalQueue, C as CurrentUser, N as CurriedCloseModalFn, O as CurriedDynamicPromptFn, Q as CurriedInstallThirdPartyScriptFn, V as CurriedKizenRequestFn, X as CurriedOpenCreateRecordFn, Y as CurriedOpenCreateRelatedRecordFn, Z as CurriedPostFormDataFn, _ as CurriedPromptFn, $ as CurriedRefreshEntityFn, a0 as CurriedShowViewInModalFn, a1 as CurriedUploadFileFn, a2 as CustomObjectCleanValue, a3 as CustomObjectValueStore, D as DataCache, a4 as DataCacheEntry, a5 as DeleteReturnValue, m as DynamicPromptConfig, a6 as DynamicPromptFn, a7 as EmployeeConfig, a8 as ErrorHandler, a9 as ErrorResponse, aa as FieldCleanValue, ab as FieldValueStore, G as GetOptions, ac as GetReturnValue, o as IncludeOption, ad as InstallThirdPartyScriptFn, I as Instance, h as InternalSessionData, ae as JSONArray, af as JSONObject, ag as JSONPrimitive, ah as JSONValue, ai as KizenConfig, aj as KizenNetworkResponse, ak as KizenProxySuccessResponse, al as KizenRequestFn, am as KizenRequestFnHandler, an as KnownArgs, ao as MatchSetupAssistantField, ap as MaybeMessageError, aq as ModalBlock, ar as ModalCancelEventSource, M as ModalConfig, as as ModalContainer, at as ModalQueue, au as NumberCleanValue, av as NumberValueStore, aw as OnCloseModalFn, ax as OnNetworkErrorFn, ay as OnShowCreateRecordModalFn, az as OnShowCreateRelatedRecordModalFn, aA as OnShowModalFn, aB as OpenCreateRecordFn, aC as OpenCreateRelatedRecordFn, a as PartialCustomObject, P as PartialEntity, aD as PartialRelatedObject, aE as PatchReturnValue, f as PostFormDataFn, aF as PostFormDataPayload, aG as PostReturnValue, aH as Profile, aI as PromiseMap, aJ as PromiseReject, aK as PromiseResolve, aL as PromiseState, aM as PromptFn, g as PromptState, aN as PutReturnValue, aO as RefreshEntityFn, aP as ReleaseBlockingScriptHandler, j as RequestOptions, R as RequestWithErrorsResponse, aQ as SelectCleanValue, r as SelectOption, aR as SelectValueStore, aS as SetInternalSessionDataFn, aT as SetupAssistantConfig, p as SetupAssistantField, k as ShowToastOptions, aU as ShowViewInModalFn, l as ShowViewInModalOptions, S as StateChangePayload, aV as TextValueStore, aW as UnknownFunction, aX as UploadFileData, aY as UploadFileFn, aZ as UserConfig, a_ as ValueStore, W as WorkerContextArgs } from './ThirdPartyScript-cM_3Ut1L.js';
3
+ import { a as CommonPluginDefinition } from './automation-DdbPK8-Z.js';
4
+ export { e as AuthorizeEvent, A as AutomationStepConfig, B as BaseEvent, f as CalendarDefinition, g as CalendarScriptReturnData, c as CalendarSourceConfig, h as CalendarSourceMap, i as CalendarSources, j as CloseModalRequestEvent, C as CommonExecutionPlugin, k as CommunicateEvent, l as ConsoleLogEvent, m as CopyToClipboardEvent, n as CreateFileIdFn, D as DataAdornmentConfig, o as DoneEvent, p as DynamicPromptRequestEvent, E as ErrorEvent, q as ExecuteCalendarSourceScript, r as ExecuteFloatingFrameScript, F as FloatingFrameConfig, s as FloatingFrameEmployeeConfig, t as FrameQuadrant, G as GetPendingCacheCountFn, H as HideEvent, I as IframeOutputEvent, u as InstallThirdPartyScriptRequestEvent, v as InvalidateCacheFn, K as KizenFile, M as MessageEventData, w as MinimizedConfig, O as OnClearToastsFn, x as OnConsoleLogFn, y as OnNetworkRequestFn, z as OnShowToastFn, J as OpenCreateRecordModalRequestEvent, L as OpenCreateRelatedRecordModalRequestEvent, N as OpenWindowEvent, P as PerformKizenFileUploadFn, Q as PostFormDataRequestEvent, S as PromptRequestEvent, U as QueryRequestEvent, V as RecipientConfig, W as RefreshEntityEvent, X as RefreshTimelineEvent, Y as RequestableQueryMethods, R as RoutablePageConfig, b as RouteScriptConfig, d as RunScriptOptions, Z as SchemaValidation, _ as SetStateEvent, $ as ShowEvent, a0 as ShowToastEvent, a1 as ShowViewInModalRequestEvent, a2 as TerminatorContent, a3 as Terminators, T as ToolbarItemConfig, a4 as UIOutputEvent, a5 as UpdateSessionDataEvent, a6 as UploadFilePayload, a7 as UploadFileRequestEvent, a8 as WindowPosition } from './automation-DdbPK8-Z.js';
5
5
  export { H as HideConfig, S as ShowConfig } from './floatingFrames-BzaoL7cq.js';
6
- export { E as ExecuteGenericScript, G as GenericPluginConfig } from './generic-CQyBACwP.js';
6
+ export { E as ExecuteGenericScript, G as GenericPluginConfig } from './generic-CCLPwofS.js';
7
7
  import 'react';
8
8
 
9
9
  interface ExpressionPayload {
package/dist/util.d.ts CHANGED
@@ -1,7 +1,7 @@
1
- import { i as PartialLocation, aM as SetupAssistantConfig, aS as ValueStore, x as CleanValueStore, r as AssistantConfigAction, s as AssistantField, aT as KizenRequestError, U as UnknownJSON, ad as KizenNetworkResponse, ae as KizenProxySuccessResponse } from './ThirdPartyScript-CoMDaLsq.js';
2
- export { G as GetParamFunction, R as RemovedHTML, f as forceQualifiedUrl, g as getDisabledValue, a as getEnabledState, b as getLinkValue, c as getPluginSafeHTML, d as getQrCodeValue, m as mergeConfig, p as pluginMapper, r as reduceEnabledResults, e as replaceConfigValues } from './values-BwAd85Ee.js';
1
+ import { i as PartialLocation, aT as SetupAssistantConfig, a_ as ValueStore, z as CleanValueStore, t as AssistantConfigAction, u as AssistantField, a$ as KizenRequestError, U as UnknownJSON, aj as KizenNetworkResponse, ak as KizenProxySuccessResponse } from './ThirdPartyScript-cM_3Ut1L.js';
2
+ export { G as GetParamFunction, R as RemovedHTML, f as forceQualifiedUrl, g as getDisabledValue, a as getEnabledState, b as getLinkValue, c as getPluginSafeHTML, d as getQrCodeValue, m as mergeConfig, p as pluginMapper, r as reduceEnabledResults, e as replaceConfigValues } from './values-BA8dwWnM.js';
3
3
  import 'react';
4
- import './automation-CWET9vfs.js';
4
+ import './automation-DdbPK8-Z.js';
5
5
  import './floatingFrames-BzaoL7cq.js';
6
6
  import 'dompurify';
7
7
 
package/dist/util.js CHANGED
@@ -1,8 +1,8 @@
1
- export { forceQualifiedUrl, getDisabledValue, getEnabledState, getHash, getLinkValue, getPluginSafeHTML, getQrCodeValue, getStableHash, isFlagEnabled, mergeConfig, pluginMapper, reduceEnabledResults, replaceConfigValues } from './chunk-ZMIF22NR.js';
2
- export { emitRouteChange, findMatchingAction, getPartialLocation } from './chunk-PPRZFBZZ.js';
3
- import { KizenRequestError } from './chunk-AY5OQ5KM.js';
4
- export { KizenRequestError, cleanConfig, getFieldFromAction } from './chunk-AY5OQ5KM.js';
5
- import './chunk-IGHBWLIS.js';
1
+ export { forceQualifiedUrl, getDisabledValue, getEnabledState, getHash, getLinkValue, getPluginSafeHTML, getQrCodeValue, getStableHash, isFlagEnabled, mergeConfig, pluginMapper, reduceEnabledResults, replaceConfigValues } from './chunk-D54DBKHM.js';
2
+ export { emitRouteChange, findMatchingAction, getPartialLocation } from './chunk-ANAHYJTV.js';
3
+ import { KizenRequestError } from './chunk-36G3L5ZV.js';
4
+ export { KizenRequestError, cleanConfig, getFieldFromAction } from './chunk-36G3L5ZV.js';
5
+ import './chunk-DQECJSHA.js';
6
6
  import './chunk-5WRI5ZAA.js';
7
7
 
8
8
  // src/util/network.ts
@@ -1,5 +1,5 @@
1
- import { m as IncludeOption, U as UnknownJSON, n as SetupAssistantField, o as AppPlugin } from './ThirdPartyScript-CoMDaLsq.js';
2
- import { F as FloatingFrameConfig, R as RoutablePageConfig, D as DataAdornmentConfig, T as ToolbarItemConfig, b as RouteScriptConfig, c as CalendarSourceConfig, A as AutomationStepConfig } from './automation-CWET9vfs.js';
1
+ import { o as IncludeOption, U as UnknownJSON, p as SetupAssistantField, q as AppPlugin } from './ThirdPartyScript-cM_3Ut1L.js';
2
+ import { F as FloatingFrameConfig, R as RoutablePageConfig, D as DataAdornmentConfig, T as ToolbarItemConfig, b as RouteScriptConfig, c as CalendarSourceConfig, A as AutomationStepConfig } from './automation-DdbPK8-Z.js';
3
3
  import { RemovedAttribute, RemovedElement } from 'dompurify';
4
4
 
5
5
  type AllowedConfig = FloatingFrameConfig | RoutablePageConfig | DataAdornmentConfig | ToolbarItemConfig | RouteScriptConfig | CalendarSourceConfig | AutomationStepConfig;
@@ -1,9 +1,9 @@
1
- import { WorkerPromise } from '../chunk-V6JXKTHL.js';
2
- import { getFnWithReturn } from '../chunk-PPRZFBZZ.js';
3
- import { BaseWorkerContext } from '../chunk-MRN746YD.js';
4
- import { dynamicPromptHandler, promptHandler, postFormDataHandler, kizenRequestHandler, handleCommonResponse } from '../chunk-AY5OQ5KM.js';
5
- import '../chunk-GVATLHW3.js';
6
- import { ACTIONS } from '../chunk-IGHBWLIS.js';
1
+ import { WorkerPromise } from '../chunk-Q7UJXNJH.js';
2
+ import { getFnWithReturn } from '../chunk-ANAHYJTV.js';
3
+ import { BaseWorkerContext } from '../chunk-6EG3BV5X.js';
4
+ import { dynamicPromptHandler, promptHandler, postFormDataHandler, kizenRequestHandler, handleCommonResponse } from '../chunk-36G3L5ZV.js';
5
+ import '../chunk-4MQ4E7D6.js';
6
+ import { ACTIONS } from '../chunk-DQECJSHA.js';
7
7
  import '../chunk-5WRI5ZAA.js';
8
8
 
9
9
  // src/workers/calendarSource.worker.ts
@@ -14,6 +14,9 @@ var notAllowed = (fnName) => () => {
14
14
  reject(new Error(`${fnName} is not supported in calendar source scripts`));
15
15
  });
16
16
  };
17
+ var notAllowedVoid = (fnName) => () => {
18
+ throw new Error(`${fnName} is not supported in calendar source scripts`);
19
+ };
17
20
  self.onmessage = async (e) => {
18
21
  const data = JSON.parse(e.data);
19
22
  const {
@@ -50,6 +53,8 @@ self.onmessage = async (e) => {
50
53
  refreshEntity: notAllowed("refreshEntity"),
51
54
  openCreateRecord: notAllowed("openCreateRecord"),
52
55
  openCreateRelatedRecord: notAllowed("openCreateRelatedRecord"),
56
+ showViewInModal: notAllowed("showViewInModal"),
57
+ closeModal: notAllowedVoid("closeModal"),
53
58
  pluginApiName,
54
59
  location
55
60
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/workers/calendarSource.worker.ts"],"names":[],"mappings":";;;;;;;;;AAaA,IAAM,WAAW,IAAI,aAAA,CAAc,EAAE,OAAA,EAAS,OAAO,CAAA;AAErD,IAAI,MAAA,GAAmC,IAAA;AAEvC,IAAM,UAAA,GAAa,CAAC,MAAA,KAAmB,MAAsB;AAC3D,EAAA,OAAO,IAAI,OAAA,CAAQ,CAAC,CAAA,EAAG,MAAA,KAAW;AAChC,IAAA,MAAA,CAAO,IAAI,KAAA,CAAM,CAAA,EAAG,MAAM,8CAA8C,CAAC,CAAA;AAAA,EAC3E,CAAC,CAAA;AACH,CAAA;AAEA,IAAA,CAAK,SAAA,GAAY,OAAO,CAAA,KAA4B;AAClD,EAAA,MAAM,IAAA,GAAO,IAAA,CAAK,KAAA,CAAM,CAAA,CAAE,IAAI,CAAA;AAE9B,EAAA,MAAM;AAAA,IACJ,MAAA;AAAA,IACA,MAAA;AAAA,IACA,KAAA;AAAA,IACA,IAAA;AAAA,IACA,cAAc,EAAC;AAAA,IACf,iBAAA;AAAA,IACA,aAAA;AAAA,IACA;AAAA,GACF,GAAI,IAAA;AAEJ,EAAA,IAAI,MAAA,KAAW,OAAA,CAAQ,GAAA,IAAO,KAAA,IAAS,MAAA,EAAQ;AAC7C,IAAA,MAAM,EAAE,EAAA,EAAI,YAAA,EAAa,GAAI,gBAAgB,MAAM,CAAA;AAEnD,IAAA,MAAA,GAAS,IAAI,iBAAA,CAAkB;AAAA,MAC7B,MAAM,KAAA,CAAM,IAAA;AAAA,MACZ,YAAY,KAAA,CAAM,UAAA;AAAA,MAClB,UAAU,KAAA,CAAM,QAAA;AAAA,MAChB,cAAc,KAAA,CAAM,YAAA;AAAA,MACpB,SAAS,KAAA,CAAM,OAAA;AAAA,MACf,SAAS,KAAA,CAAM,OAAA;AAAA,MACf,UAAA,EAAY,MAAA;AAAA,MACZ,YAAA;AAAA,MACA,QAAA,EAAU,IAAA;AAAA,MACV,YAAA,EAAc,mBAAA,CAAoB,IAAA,EAAM,QAAQ,CAAA;AAAA,MAChD,YAAA,EAAc,mBAAA,CAAoB,IAAA,EAAM,QAAQ,CAAA;AAAA,MAChD,UAAA,EAAY,WAAW,YAAY,CAAA;AAAA,MACnC,uBAAA,EAAyB,WAAW,yBAAyB,CAAA;AAAA,MAC7D,MAAM,IAAA,IAAQ,EAAA;AAAA,MACd,WAAA;AAAA,MACA,iBAAA;AAAA,MACA,MAAA,EAAQ,aAAA,CAAc,IAAA,EAAM,QAAQ,CAAA;AAAA,MACpC,aAAA,EAAe,oBAAA,CAAqB,IAAA,EAAM,QAAQ,CAAA;AAAA,MAClD,aAAA,EAAe,WAAW,eAAe,CAAA;AAAA,MACzC,gBAAA,EAAkB,WAAW,kBAAkB,CAAA;AAAA,MAC/C,uBAAA,EAAyB,WAAW,yBAAyB,CAAA;AAAA,MAC7D,aAAA;AAAA,MACA;AAAA,KACD,CAAA;AAED,IAAA,MAAM,EAAA,CAAG,IAAA,CAAK,MAAM,CAAA,EAAE;AAAA,EACxB,CAAA,MAAO;AACL,IAAA,oBAAA,CAAqB,MAAA,EAAQ,GAAG,QAAQ,CAAA;AAAA,EAC1C;AACF,CAAA","file":"calendarSource.worker.js","sourcesContent":["import { ACTIONS } from '../communication/constants.js';\nimport { BaseWorkerContext } from '../contexts/BaseWorkerContext.js';\nimport type { WorkerEvent } from '../types/workers.js';\nimport { getFnWithReturn } from '../util/run.js';\nimport {\n dynamicPromptHandler,\n handleCommonResponse,\n kizenRequestHandler,\n postFormDataHandler,\n promptHandler,\n} from './util.js';\nimport { WorkerPromise } from './WorkerPromise.js';\n\nconst promises = new WorkerPromise({ isDebug: false });\n\nlet runner: BaseWorkerContext | null = null;\n\nconst notAllowed = (fnName: string) => (): Promise<never> => {\n return new Promise((_, reject) => {\n reject(new Error(`${fnName} is not supported in calendar source scripts`));\n });\n};\n\nself.onmessage = async (e: MessageEvent<string>) => {\n const data = JSON.parse(e.data) as WorkerEvent;\n\n const {\n action,\n script,\n setup,\n args,\n sessionData = {},\n pluginComponentId,\n pluginApiName,\n location,\n } = data;\n\n if (action === ACTIONS.RUN && setup && script) {\n const { fn, functionBody } = getFnWithReturn(script);\n\n runner = new BaseWorkerContext({\n user: setup.user,\n teamMember: setup.teamMember,\n business: setup.business,\n clientObject: setup.clientObject,\n isDebug: setup.isDebug,\n appPath: setup.appPath,\n scriptBody: script,\n functionBody,\n instance: self,\n kizenRequest: kizenRequestHandler(self, promises),\n postFormData: postFormDataHandler(self, promises),\n uploadFile: notAllowed('uploadFile'),\n installThirdPartyScript: notAllowed('installThirdPartyScript'),\n args: args ?? '',\n sessionData,\n pluginComponentId,\n prompt: promptHandler(self, promises),\n dynamicPrompt: dynamicPromptHandler(self, promises),\n refreshEntity: notAllowed('refreshEntity'),\n openCreateRecord: notAllowed('openCreateRecord'),\n openCreateRelatedRecord: notAllowed('openCreateRelatedRecord'),\n pluginApiName,\n location,\n });\n\n await fn.bind(runner)();\n } else {\n handleCommonResponse(action, e, promises);\n }\n};\n"]}
1
+ {"version":3,"sources":["../../src/workers/calendarSource.worker.ts"],"names":[],"mappings":";;;;;;;;;AAaA,IAAM,WAAW,IAAI,aAAA,CAAc,EAAE,OAAA,EAAS,OAAO,CAAA;AAErD,IAAI,MAAA,GAAmC,IAAA;AAEvC,IAAM,UAAA,GAAa,CAAC,MAAA,KAAmB,MAAsB;AAC3D,EAAA,OAAO,IAAI,OAAA,CAAQ,CAAC,CAAA,EAAG,MAAA,KAAW;AAChC,IAAA,MAAA,CAAO,IAAI,KAAA,CAAM,CAAA,EAAG,MAAM,8CAA8C,CAAC,CAAA;AAAA,EAC3E,CAAC,CAAA;AACH,CAAA;AAEA,IAAM,cAAA,GAAiB,CAAC,MAAA,KAAmB,MAAY;AACrD,EAAA,MAAM,IAAI,KAAA,CAAM,CAAA,EAAG,MAAM,CAAA,4CAAA,CAA8C,CAAA;AACzE,CAAA;AAEA,IAAA,CAAK,SAAA,GAAY,OAAO,CAAA,KAA4B;AAClD,EAAA,MAAM,IAAA,GAAO,IAAA,CAAK,KAAA,CAAM,CAAA,CAAE,IAAI,CAAA;AAE9B,EAAA,MAAM;AAAA,IACJ,MAAA;AAAA,IACA,MAAA;AAAA,IACA,KAAA;AAAA,IACA,IAAA;AAAA,IACA,cAAc,EAAC;AAAA,IACf,iBAAA;AAAA,IACA,aAAA;AAAA,IACA;AAAA,GACF,GAAI,IAAA;AAEJ,EAAA,IAAI,MAAA,KAAW,OAAA,CAAQ,GAAA,IAAO,KAAA,IAAS,MAAA,EAAQ;AAC7C,IAAA,MAAM,EAAE,EAAA,EAAI,YAAA,EAAa,GAAI,gBAAgB,MAAM,CAAA;AAEnD,IAAA,MAAA,GAAS,IAAI,iBAAA,CAAkB;AAAA,MAC7B,MAAM,KAAA,CAAM,IAAA;AAAA,MACZ,YAAY,KAAA,CAAM,UAAA;AAAA,MAClB,UAAU,KAAA,CAAM,QAAA;AAAA,MAChB,cAAc,KAAA,CAAM,YAAA;AAAA,MACpB,SAAS,KAAA,CAAM,OAAA;AAAA,MACf,SAAS,KAAA,CAAM,OAAA;AAAA,MACf,UAAA,EAAY,MAAA;AAAA,MACZ,YAAA;AAAA,MACA,QAAA,EAAU,IAAA;AAAA,MACV,YAAA,EAAc,mBAAA,CAAoB,IAAA,EAAM,QAAQ,CAAA;AAAA,MAChD,YAAA,EAAc,mBAAA,CAAoB,IAAA,EAAM,QAAQ,CAAA;AAAA,MAChD,UAAA,EAAY,WAAW,YAAY,CAAA;AAAA,MACnC,uBAAA,EAAyB,WAAW,yBAAyB,CAAA;AAAA,MAC7D,MAAM,IAAA,IAAQ,EAAA;AAAA,MACd,WAAA;AAAA,MACA,iBAAA;AAAA,MACA,MAAA,EAAQ,aAAA,CAAc,IAAA,EAAM,QAAQ,CAAA;AAAA,MACpC,aAAA,EAAe,oBAAA,CAAqB,IAAA,EAAM,QAAQ,CAAA;AAAA,MAClD,aAAA,EAAe,WAAW,eAAe,CAAA;AAAA,MACzC,gBAAA,EAAkB,WAAW,kBAAkB,CAAA;AAAA,MAC/C,uBAAA,EAAyB,WAAW,yBAAyB,CAAA;AAAA,MAC7D,eAAA,EAAiB,WAAW,iBAAiB,CAAA;AAAA,MAC7C,UAAA,EAAY,eAAe,YAAY,CAAA;AAAA,MACvC,aAAA;AAAA,MACA;AAAA,KACD,CAAA;AAED,IAAA,MAAM,EAAA,CAAG,IAAA,CAAK,MAAM,CAAA,EAAE;AAAA,EACxB,CAAA,MAAO;AACL,IAAA,oBAAA,CAAqB,MAAA,EAAQ,GAAG,QAAQ,CAAA;AAAA,EAC1C;AACF,CAAA","file":"calendarSource.worker.js","sourcesContent":["import { ACTIONS } from '../communication/constants.js';\nimport { BaseWorkerContext } from '../contexts/BaseWorkerContext.js';\nimport type { WorkerEvent } from '../types/workers.js';\nimport { getFnWithReturn } from '../util/run.js';\nimport {\n dynamicPromptHandler,\n handleCommonResponse,\n kizenRequestHandler,\n postFormDataHandler,\n promptHandler,\n} from './util.js';\nimport { WorkerPromise } from './WorkerPromise.js';\n\nconst promises = new WorkerPromise({ isDebug: false });\n\nlet runner: BaseWorkerContext | null = null;\n\nconst notAllowed = (fnName: string) => (): Promise<never> => {\n return new Promise((_, reject) => {\n reject(new Error(`${fnName} is not supported in calendar source scripts`));\n });\n};\n\nconst notAllowedVoid = (fnName: string) => (): void => {\n throw new Error(`${fnName} is not supported in calendar source scripts`);\n};\n\nself.onmessage = async (e: MessageEvent<string>) => {\n const data = JSON.parse(e.data) as WorkerEvent;\n\n const {\n action,\n script,\n setup,\n args,\n sessionData = {},\n pluginComponentId,\n pluginApiName,\n location,\n } = data;\n\n if (action === ACTIONS.RUN && setup && script) {\n const { fn, functionBody } = getFnWithReturn(script);\n\n runner = new BaseWorkerContext({\n user: setup.user,\n teamMember: setup.teamMember,\n business: setup.business,\n clientObject: setup.clientObject,\n isDebug: setup.isDebug,\n appPath: setup.appPath,\n scriptBody: script,\n functionBody,\n instance: self,\n kizenRequest: kizenRequestHandler(self, promises),\n postFormData: postFormDataHandler(self, promises),\n uploadFile: notAllowed('uploadFile'),\n installThirdPartyScript: notAllowed('installThirdPartyScript'),\n args: args ?? '',\n sessionData,\n pluginComponentId,\n prompt: promptHandler(self, promises),\n dynamicPrompt: dynamicPromptHandler(self, promises),\n refreshEntity: notAllowed('refreshEntity'),\n openCreateRecord: notAllowed('openCreateRecord'),\n openCreateRelatedRecord: notAllowed('openCreateRelatedRecord'),\n showViewInModal: notAllowed('showViewInModal'),\n closeModal: notAllowedVoid('closeModal'),\n pluginApiName,\n location,\n });\n\n await fn.bind(runner)();\n } else {\n handleCommonResponse(action, e, promises);\n }\n};\n"]}
@@ -1,10 +1,10 @@
1
- import { FloatingFrameWorkerContext } from '../chunk-YBCIIIAP.js';
2
- import { WorkerPromise } from '../chunk-V6JXKTHL.js';
3
- import { getFn } from '../chunk-PPRZFBZZ.js';
4
- import '../chunk-MRN746YD.js';
5
- import { openCreateRelatedRecordHandler, openCreateRecordHandler, refreshEntityHandler, dynamicPromptHandler, promptHandler, installThirdPartyScriptHandler, uploadFileHandler, postFormDataHandler, kizenRequestHandler, handleCommonResponse } from '../chunk-AY5OQ5KM.js';
6
- import '../chunk-GVATLHW3.js';
7
- import { ACTIONS } from '../chunk-IGHBWLIS.js';
1
+ import { FloatingFrameWorkerContext } from '../chunk-MQCYS74W.js';
2
+ import { WorkerPromise } from '../chunk-Q7UJXNJH.js';
3
+ import { getFn } from '../chunk-ANAHYJTV.js';
4
+ import '../chunk-6EG3BV5X.js';
5
+ import { closeModalHandler, showViewInModalHandler, openCreateRelatedRecordHandler, openCreateRecordHandler, refreshEntityHandler, dynamicPromptHandler, promptHandler, installThirdPartyScriptHandler, uploadFileHandler, postFormDataHandler, kizenRequestHandler, handleCommonResponse } from '../chunk-36G3L5ZV.js';
6
+ import '../chunk-4MQ4E7D6.js';
7
+ import { ACTIONS } from '../chunk-DQECJSHA.js';
8
8
  import '../chunk-5WRI5ZAA.js';
9
9
 
10
10
  // src/workers/floatingFrame.worker.ts
@@ -45,6 +45,8 @@ self.onmessage = async (e) => {
45
45
  refreshEntity: refreshEntityHandler(self, promises),
46
46
  openCreateRecord: openCreateRecordHandler(self, promises),
47
47
  openCreateRelatedRecord: openCreateRelatedRecordHandler(self, promises),
48
+ showViewInModal: showViewInModalHandler(self, promises),
49
+ closeModal: closeModalHandler(self),
48
50
  pluginApiName,
49
51
  location
50
52
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/workers/floatingFrame.worker.ts"],"names":[],"mappings":";;;;;;;;;;AAkBA,IAAM,WAAW,IAAI,aAAA,CAAc,EAAE,OAAA,EAAS,OAAO,CAAA;AAErD,IAAA,CAAK,SAAA,GAAY,OAAO,CAAA,KAA4B;AAClD,EAAA,MAAM,IAAA,GAAO,IAAA,CAAK,KAAA,CAAM,CAAA,CAAE,IAAI,CAAA;AAE9B,EAAA,MAAM;AAAA,IACJ,MAAA;AAAA,IACA,MAAA;AAAA,IACA,KAAA;AAAA,IACA,IAAA;AAAA,IACA,cAAc,EAAC;AAAA,IACf,iBAAA;AAAA,IACA,aAAA;AAAA,IACA;AAAA,GACF,GAAI,IAAA;AAEJ,EAAA,IAAI,MAAA,KAAW,OAAA,CAAQ,GAAA,IAAO,KAAA,IAAS,MAAA,EAAQ;AAC7C,IAAA,MAAM,EAAE,EAAA,EAAI,YAAA,EAAa,GAAI,MAAM,MAAM,CAAA;AAEzC,IAAA,MAAM,MAAA,GAAS,IAAI,0BAAA,CAA2B;AAAA,MAC5C,MAAM,KAAA,CAAM,IAAA;AAAA,MACZ,YAAY,KAAA,CAAM,UAAA;AAAA,MAClB,UAAU,KAAA,CAAM,QAAA;AAAA,MAChB,cAAc,KAAA,CAAM,YAAA;AAAA,MACpB,SAAS,KAAA,CAAM,OAAA;AAAA,MACf,SAAS,KAAA,CAAM,OAAA;AAAA,MACf,UAAA,EAAY,MAAA;AAAA,MACZ,YAAA;AAAA,MACA,QAAA,EAAU,IAAA;AAAA,MACV,YAAA,EAAc,mBAAA,CAAoB,IAAA,EAAM,QAAQ,CAAA;AAAA,MAChD,YAAA,EAAc,mBAAA,CAAoB,IAAA,EAAM,QAAQ,CAAA;AAAA,MAChD,UAAA,EAAY,iBAAA,CAAkB,IAAA,EAAM,QAAQ,CAAA;AAAA,MAC5C,uBAAA,EAAyB,8BAAA,CAA+B,IAAA,EAAM,QAAQ,CAAA;AAAA,MACtE,MAAM,IAAA,IAAQ,EAAA;AAAA,MACd,WAAA;AAAA,MACA,iBAAA;AAAA,MACA,MAAA,EAAQ,aAAA,CAAc,IAAA,EAAM,QAAQ,CAAA;AAAA,MACpC,aAAA,EAAe,oBAAA,CAAqB,IAAA,EAAM,QAAQ,CAAA;AAAA,MAClD,aAAA,EAAe,oBAAA,CAAqB,IAAA,EAAM,QAAQ,CAAA;AAAA,MAClD,gBAAA,EAAkB,uBAAA,CAAwB,IAAA,EAAM,QAAQ,CAAA;AAAA,MACxD,uBAAA,EAAyB,8BAAA,CAA+B,IAAA,EAAM,QAAQ,CAAA;AAAA,MACtE,aAAA;AAAA,MACA;AAAA,KACD,CAAA;AAED,IAAA,MAAM,EAAA,CAAG,IAAA,CAAK,MAAM,CAAA,EAAE;AAAA,EACxB,CAAA,MAAO;AACL,IAAA,oBAAA,CAAqB,MAAA,EAAQ,GAAG,QAAQ,CAAA;AAAA,EAC1C;AACF,CAAA","file":"floatingFrame.worker.js","sourcesContent":["import { ACTIONS } from '../communication/constants.js';\nimport { FloatingFrameWorkerContext } from '../contexts/FloatingFrameWorkerContext.js';\nimport type { WorkerEvent } from '../types/workers.js';\nimport { getFn } from '../util/run.js';\nimport {\n dynamicPromptHandler,\n handleCommonResponse,\n installThirdPartyScriptHandler,\n kizenRequestHandler,\n openCreateRecordHandler,\n openCreateRelatedRecordHandler,\n postFormDataHandler,\n promptHandler,\n refreshEntityHandler,\n uploadFileHandler,\n} from './util.js';\nimport { WorkerPromise } from './WorkerPromise.js';\n\nconst promises = new WorkerPromise({ isDebug: false });\n\nself.onmessage = async (e: MessageEvent<string>) => {\n const data = JSON.parse(e.data) as WorkerEvent;\n\n const {\n action,\n script,\n setup,\n args,\n sessionData = {},\n pluginComponentId,\n pluginApiName,\n location,\n } = data;\n\n if (action === ACTIONS.RUN && setup && script) {\n const { fn, functionBody } = getFn(script);\n\n const runner = new FloatingFrameWorkerContext({\n user: setup.user,\n teamMember: setup.teamMember,\n business: setup.business,\n clientObject: setup.clientObject,\n appPath: setup.appPath,\n isDebug: setup.isDebug,\n scriptBody: script,\n functionBody,\n instance: self,\n kizenRequest: kizenRequestHandler(self, promises),\n postFormData: postFormDataHandler(self, promises),\n uploadFile: uploadFileHandler(self, promises),\n installThirdPartyScript: installThirdPartyScriptHandler(self, promises),\n args: args ?? '',\n sessionData,\n pluginComponentId,\n prompt: promptHandler(self, promises),\n dynamicPrompt: dynamicPromptHandler(self, promises),\n refreshEntity: refreshEntityHandler(self, promises),\n openCreateRecord: openCreateRecordHandler(self, promises),\n openCreateRelatedRecord: openCreateRelatedRecordHandler(self, promises),\n pluginApiName,\n location,\n });\n\n await fn.bind(runner)();\n } else {\n handleCommonResponse(action, e, promises);\n }\n};\n"]}
1
+ {"version":3,"sources":["../../src/workers/floatingFrame.worker.ts"],"names":[],"mappings":";;;;;;;;;;AAoBA,IAAM,WAAW,IAAI,aAAA,CAAc,EAAE,OAAA,EAAS,OAAO,CAAA;AAErD,IAAA,CAAK,SAAA,GAAY,OAAO,CAAA,KAA4B;AAClD,EAAA,MAAM,IAAA,GAAO,IAAA,CAAK,KAAA,CAAM,CAAA,CAAE,IAAI,CAAA;AAE9B,EAAA,MAAM;AAAA,IACJ,MAAA;AAAA,IACA,MAAA;AAAA,IACA,KAAA;AAAA,IACA,IAAA;AAAA,IACA,cAAc,EAAC;AAAA,IACf,iBAAA;AAAA,IACA,aAAA;AAAA,IACA;AAAA,GACF,GAAI,IAAA;AAEJ,EAAA,IAAI,MAAA,KAAW,OAAA,CAAQ,GAAA,IAAO,KAAA,IAAS,MAAA,EAAQ;AAC7C,IAAA,MAAM,EAAE,EAAA,EAAI,YAAA,EAAa,GAAI,MAAM,MAAM,CAAA;AAEzC,IAAA,MAAM,MAAA,GAAS,IAAI,0BAAA,CAA2B;AAAA,MAC5C,MAAM,KAAA,CAAM,IAAA;AAAA,MACZ,YAAY,KAAA,CAAM,UAAA;AAAA,MAClB,UAAU,KAAA,CAAM,QAAA;AAAA,MAChB,cAAc,KAAA,CAAM,YAAA;AAAA,MACpB,SAAS,KAAA,CAAM,OAAA;AAAA,MACf,SAAS,KAAA,CAAM,OAAA;AAAA,MACf,UAAA,EAAY,MAAA;AAAA,MACZ,YAAA;AAAA,MACA,QAAA,EAAU,IAAA;AAAA,MACV,YAAA,EAAc,mBAAA,CAAoB,IAAA,EAAM,QAAQ,CAAA;AAAA,MAChD,YAAA,EAAc,mBAAA,CAAoB,IAAA,EAAM,QAAQ,CAAA;AAAA,MAChD,UAAA,EAAY,iBAAA,CAAkB,IAAA,EAAM,QAAQ,CAAA;AAAA,MAC5C,uBAAA,EAAyB,8BAAA,CAA+B,IAAA,EAAM,QAAQ,CAAA;AAAA,MACtE,MAAM,IAAA,IAAQ,EAAA;AAAA,MACd,WAAA;AAAA,MACA,iBAAA;AAAA,MACA,MAAA,EAAQ,aAAA,CAAc,IAAA,EAAM,QAAQ,CAAA;AAAA,MACpC,aAAA,EAAe,oBAAA,CAAqB,IAAA,EAAM,QAAQ,CAAA;AAAA,MAClD,aAAA,EAAe,oBAAA,CAAqB,IAAA,EAAM,QAAQ,CAAA;AAAA,MAClD,gBAAA,EAAkB,uBAAA,CAAwB,IAAA,EAAM,QAAQ,CAAA;AAAA,MACxD,uBAAA,EAAyB,8BAAA,CAA+B,IAAA,EAAM,QAAQ,CAAA;AAAA,MACtE,eAAA,EAAiB,sBAAA,CAAuB,IAAA,EAAM,QAAQ,CAAA;AAAA,MACtD,UAAA,EAAY,kBAAkB,IAAI,CAAA;AAAA,MAClC,aAAA;AAAA,MACA;AAAA,KACD,CAAA;AAED,IAAA,MAAM,EAAA,CAAG,IAAA,CAAK,MAAM,CAAA,EAAE;AAAA,EACxB,CAAA,MAAO;AACL,IAAA,oBAAA,CAAqB,MAAA,EAAQ,GAAG,QAAQ,CAAA;AAAA,EAC1C;AACF,CAAA","file":"floatingFrame.worker.js","sourcesContent":["import { ACTIONS } from '../communication/constants.js';\nimport { FloatingFrameWorkerContext } from '../contexts/FloatingFrameWorkerContext.js';\nimport type { WorkerEvent } from '../types/workers.js';\nimport { getFn } from '../util/run.js';\nimport {\n closeModalHandler,\n dynamicPromptHandler,\n handleCommonResponse,\n installThirdPartyScriptHandler,\n kizenRequestHandler,\n openCreateRecordHandler,\n openCreateRelatedRecordHandler,\n postFormDataHandler,\n promptHandler,\n refreshEntityHandler,\n showViewInModalHandler,\n uploadFileHandler,\n} from './util.js';\nimport { WorkerPromise } from './WorkerPromise.js';\n\nconst promises = new WorkerPromise({ isDebug: false });\n\nself.onmessage = async (e: MessageEvent<string>) => {\n const data = JSON.parse(e.data) as WorkerEvent;\n\n const {\n action,\n script,\n setup,\n args,\n sessionData = {},\n pluginComponentId,\n pluginApiName,\n location,\n } = data;\n\n if (action === ACTIONS.RUN && setup && script) {\n const { fn, functionBody } = getFn(script);\n\n const runner = new FloatingFrameWorkerContext({\n user: setup.user,\n teamMember: setup.teamMember,\n business: setup.business,\n clientObject: setup.clientObject,\n appPath: setup.appPath,\n isDebug: setup.isDebug,\n scriptBody: script,\n functionBody,\n instance: self,\n kizenRequest: kizenRequestHandler(self, promises),\n postFormData: postFormDataHandler(self, promises),\n uploadFile: uploadFileHandler(self, promises),\n installThirdPartyScript: installThirdPartyScriptHandler(self, promises),\n args: args ?? '',\n sessionData,\n pluginComponentId,\n prompt: promptHandler(self, promises),\n dynamicPrompt: dynamicPromptHandler(self, promises),\n refreshEntity: refreshEntityHandler(self, promises),\n openCreateRecord: openCreateRecordHandler(self, promises),\n openCreateRelatedRecord: openCreateRelatedRecordHandler(self, promises),\n showViewInModal: showViewInModalHandler(self, promises),\n closeModal: closeModalHandler(self),\n pluginApiName,\n location,\n });\n\n await fn.bind(runner)();\n } else {\n handleCommonResponse(action, e, promises);\n }\n};\n"]}
@@ -1,9 +1,9 @@
1
- import { WorkerPromise } from '../chunk-V6JXKTHL.js';
2
- import { getFn } from '../chunk-PPRZFBZZ.js';
3
- import { BaseWorkerContext } from '../chunk-MRN746YD.js';
4
- import { openCreateRelatedRecordHandler, openCreateRecordHandler, refreshEntityHandler, dynamicPromptHandler, promptHandler, installThirdPartyScriptHandler, uploadFileHandler, postFormDataHandler, kizenRequestHandler, handleCommonResponse } from '../chunk-AY5OQ5KM.js';
5
- import '../chunk-GVATLHW3.js';
6
- import { ACTIONS } from '../chunk-IGHBWLIS.js';
1
+ import { WorkerPromise } from '../chunk-Q7UJXNJH.js';
2
+ import { getFn } from '../chunk-ANAHYJTV.js';
3
+ import { BaseWorkerContext } from '../chunk-6EG3BV5X.js';
4
+ import { closeModalHandler, showViewInModalHandler, openCreateRelatedRecordHandler, openCreateRecordHandler, refreshEntityHandler, dynamicPromptHandler, promptHandler, installThirdPartyScriptHandler, uploadFileHandler, postFormDataHandler, kizenRequestHandler, handleCommonResponse } from '../chunk-36G3L5ZV.js';
5
+ import '../chunk-4MQ4E7D6.js';
6
+ import { ACTIONS } from '../chunk-DQECJSHA.js';
7
7
  import '../chunk-5WRI5ZAA.js';
8
8
 
9
9
  // src/workers/generic.worker.ts
@@ -45,6 +45,8 @@ self.onmessage = async (e) => {
45
45
  refreshEntity: refreshEntityHandler(self, promises),
46
46
  openCreateRecord: openCreateRecordHandler(self, promises),
47
47
  openCreateRelatedRecord: openCreateRelatedRecordHandler(self, promises),
48
+ showViewInModal: showViewInModalHandler(self, promises),
49
+ closeModal: closeModalHandler(self),
48
50
  pluginApiName,
49
51
  location
50
52
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/workers/generic.worker.ts"],"names":[],"mappings":";;;;;;;;;AAkBA,IAAM,WAAW,IAAI,aAAA,CAAc,EAAE,OAAA,EAAS,OAAO,CAAA;AAErD,IAAI,MAAA,GAAmC,IAAA;AAEvC,IAAA,CAAK,SAAA,GAAY,OAAO,CAAA,KAA4B;AAClD,EAAA,MAAM,IAAA,GAAO,IAAA,CAAK,KAAA,CAAM,CAAA,CAAE,IAAI,CAAA;AAE9B,EAAA,MAAM;AAAA,IACJ,MAAA;AAAA,IACA,MAAA;AAAA,IACA,KAAA;AAAA,IACA,IAAA;AAAA,IACA,cAAc,EAAC;AAAA,IACf,iBAAA;AAAA,IACA,aAAA;AAAA,IACA;AAAA,GACF,GAAI,IAAA;AAEJ,EAAA,IAAI,MAAA,KAAW,OAAA,CAAQ,GAAA,IAAO,KAAA,IAAS,MAAA,EAAQ;AAC7C,IAAA,MAAM,EAAE,EAAA,EAAI,YAAA,EAAa,GAAI,MAAM,MAAM,CAAA;AAEzC,IAAA,MAAA,GAAS,IAAI,iBAAA,CAAkB;AAAA,MAC7B,MAAM,KAAA,CAAM,IAAA;AAAA,MACZ,YAAY,KAAA,CAAM,UAAA;AAAA,MAClB,UAAU,KAAA,CAAM,QAAA;AAAA,MAChB,cAAc,KAAA,CAAM,YAAA;AAAA,MACpB,SAAS,KAAA,CAAM,OAAA;AAAA,MACf,SAAS,KAAA,CAAM,OAAA;AAAA,MACf,UAAA,EAAY,MAAA;AAAA,MACZ,YAAA;AAAA,MACA,QAAA,EAAU,IAAA;AAAA,MACV,YAAA,EAAc,mBAAA,CAAoB,IAAA,EAAM,QAAQ,CAAA;AAAA,MAChD,YAAA,EAAc,mBAAA,CAAoB,IAAA,EAAM,QAAQ,CAAA;AAAA,MAChD,UAAA,EAAY,iBAAA,CAAkB,IAAA,EAAM,QAAQ,CAAA;AAAA,MAC5C,uBAAA,EAAyB,8BAAA,CAA+B,IAAA,EAAM,QAAQ,CAAA;AAAA,MACtE,MAAM,IAAA,IAAQ,EAAA;AAAA,MACd,WAAA;AAAA,MACA,iBAAA;AAAA,MACA,MAAA,EAAQ,aAAA,CAAc,IAAA,EAAM,QAAQ,CAAA;AAAA,MACpC,aAAA,EAAe,oBAAA,CAAqB,IAAA,EAAM,QAAQ,CAAA;AAAA,MAClD,aAAA,EAAe,oBAAA,CAAqB,IAAA,EAAM,QAAQ,CAAA;AAAA,MAClD,gBAAA,EAAkB,uBAAA,CAAwB,IAAA,EAAM,QAAQ,CAAA;AAAA,MACxD,uBAAA,EAAyB,8BAAA,CAA+B,IAAA,EAAM,QAAQ,CAAA;AAAA,MACtE,aAAA;AAAA,MACA;AAAA,KACD,CAAA;AAED,IAAA,MAAM,EAAA,CAAG,IAAA,CAAK,MAAM,CAAA,EAAE;AAAA,EACxB,CAAA,MAAO;AACL,IAAA,oBAAA,CAAqB,MAAA,EAAQ,GAAG,QAAQ,CAAA;AAAA,EAC1C;AACF,CAAA","file":"generic.worker.js","sourcesContent":["import { ACTIONS } from '../communication/constants.js';\nimport { BaseWorkerContext } from '../contexts/BaseWorkerContext.js';\nimport type { WorkerEvent } from '../types/workers.js';\nimport { getFn } from '../util/run.js';\nimport {\n dynamicPromptHandler,\n handleCommonResponse,\n installThirdPartyScriptHandler,\n kizenRequestHandler,\n openCreateRecordHandler,\n openCreateRelatedRecordHandler,\n postFormDataHandler,\n promptHandler,\n refreshEntityHandler,\n uploadFileHandler,\n} from './util.js';\nimport { WorkerPromise } from './WorkerPromise.js';\n\nconst promises = new WorkerPromise({ isDebug: false });\n\nlet runner: BaseWorkerContext | null = null;\n\nself.onmessage = async (e: MessageEvent<string>) => {\n const data = JSON.parse(e.data) as WorkerEvent;\n\n const {\n action,\n script,\n setup,\n args,\n sessionData = {},\n pluginComponentId,\n pluginApiName,\n location,\n } = data;\n\n if (action === ACTIONS.RUN && setup && script) {\n const { fn, functionBody } = getFn(script);\n\n runner = new BaseWorkerContext({\n user: setup.user,\n teamMember: setup.teamMember,\n business: setup.business,\n clientObject: setup.clientObject,\n isDebug: setup.isDebug,\n appPath: setup.appPath,\n scriptBody: script,\n functionBody,\n instance: self,\n kizenRequest: kizenRequestHandler(self, promises),\n postFormData: postFormDataHandler(self, promises),\n uploadFile: uploadFileHandler(self, promises),\n installThirdPartyScript: installThirdPartyScriptHandler(self, promises),\n args: args ?? '',\n sessionData,\n pluginComponentId,\n prompt: promptHandler(self, promises),\n dynamicPrompt: dynamicPromptHandler(self, promises),\n refreshEntity: refreshEntityHandler(self, promises),\n openCreateRecord: openCreateRecordHandler(self, promises),\n openCreateRelatedRecord: openCreateRelatedRecordHandler(self, promises),\n pluginApiName,\n location,\n });\n\n await fn.bind(runner)();\n } else {\n handleCommonResponse(action, e, promises);\n }\n};\n"]}
1
+ {"version":3,"sources":["../../src/workers/generic.worker.ts"],"names":[],"mappings":";;;;;;;;;AAoBA,IAAM,WAAW,IAAI,aAAA,CAAc,EAAE,OAAA,EAAS,OAAO,CAAA;AAErD,IAAI,MAAA,GAAmC,IAAA;AAEvC,IAAA,CAAK,SAAA,GAAY,OAAO,CAAA,KAA4B;AAClD,EAAA,MAAM,IAAA,GAAO,IAAA,CAAK,KAAA,CAAM,CAAA,CAAE,IAAI,CAAA;AAE9B,EAAA,MAAM;AAAA,IACJ,MAAA;AAAA,IACA,MAAA;AAAA,IACA,KAAA;AAAA,IACA,IAAA;AAAA,IACA,cAAc,EAAC;AAAA,IACf,iBAAA;AAAA,IACA,aAAA;AAAA,IACA;AAAA,GACF,GAAI,IAAA;AAEJ,EAAA,IAAI,MAAA,KAAW,OAAA,CAAQ,GAAA,IAAO,KAAA,IAAS,MAAA,EAAQ;AAC7C,IAAA,MAAM,EAAE,EAAA,EAAI,YAAA,EAAa,GAAI,MAAM,MAAM,CAAA;AAEzC,IAAA,MAAA,GAAS,IAAI,iBAAA,CAAkB;AAAA,MAC7B,MAAM,KAAA,CAAM,IAAA;AAAA,MACZ,YAAY,KAAA,CAAM,UAAA;AAAA,MAClB,UAAU,KAAA,CAAM,QAAA;AAAA,MAChB,cAAc,KAAA,CAAM,YAAA;AAAA,MACpB,SAAS,KAAA,CAAM,OAAA;AAAA,MACf,SAAS,KAAA,CAAM,OAAA;AAAA,MACf,UAAA,EAAY,MAAA;AAAA,MACZ,YAAA;AAAA,MACA,QAAA,EAAU,IAAA;AAAA,MACV,YAAA,EAAc,mBAAA,CAAoB,IAAA,EAAM,QAAQ,CAAA;AAAA,MAChD,YAAA,EAAc,mBAAA,CAAoB,IAAA,EAAM,QAAQ,CAAA;AAAA,MAChD,UAAA,EAAY,iBAAA,CAAkB,IAAA,EAAM,QAAQ,CAAA;AAAA,MAC5C,uBAAA,EAAyB,8BAAA,CAA+B,IAAA,EAAM,QAAQ,CAAA;AAAA,MACtE,MAAM,IAAA,IAAQ,EAAA;AAAA,MACd,WAAA;AAAA,MACA,iBAAA;AAAA,MACA,MAAA,EAAQ,aAAA,CAAc,IAAA,EAAM,QAAQ,CAAA;AAAA,MACpC,aAAA,EAAe,oBAAA,CAAqB,IAAA,EAAM,QAAQ,CAAA;AAAA,MAClD,aAAA,EAAe,oBAAA,CAAqB,IAAA,EAAM,QAAQ,CAAA;AAAA,MAClD,gBAAA,EAAkB,uBAAA,CAAwB,IAAA,EAAM,QAAQ,CAAA;AAAA,MACxD,uBAAA,EAAyB,8BAAA,CAA+B,IAAA,EAAM,QAAQ,CAAA;AAAA,MACtE,eAAA,EAAiB,sBAAA,CAAuB,IAAA,EAAM,QAAQ,CAAA;AAAA,MACtD,UAAA,EAAY,kBAAkB,IAAI,CAAA;AAAA,MAClC,aAAA;AAAA,MACA;AAAA,KACD,CAAA;AAED,IAAA,MAAM,EAAA,CAAG,IAAA,CAAK,MAAM,CAAA,EAAE;AAAA,EACxB,CAAA,MAAO;AACL,IAAA,oBAAA,CAAqB,MAAA,EAAQ,GAAG,QAAQ,CAAA;AAAA,EAC1C;AACF,CAAA","file":"generic.worker.js","sourcesContent":["import { ACTIONS } from '../communication/constants.js';\nimport { BaseWorkerContext } from '../contexts/BaseWorkerContext.js';\nimport type { WorkerEvent } from '../types/workers.js';\nimport { getFn } from '../util/run.js';\nimport {\n closeModalHandler,\n dynamicPromptHandler,\n handleCommonResponse,\n installThirdPartyScriptHandler,\n kizenRequestHandler,\n openCreateRecordHandler,\n openCreateRelatedRecordHandler,\n postFormDataHandler,\n promptHandler,\n refreshEntityHandler,\n showViewInModalHandler,\n uploadFileHandler,\n} from './util.js';\nimport { WorkerPromise } from './WorkerPromise.js';\n\nconst promises = new WorkerPromise({ isDebug: false });\n\nlet runner: BaseWorkerContext | null = null;\n\nself.onmessage = async (e: MessageEvent<string>) => {\n const data = JSON.parse(e.data) as WorkerEvent;\n\n const {\n action,\n script,\n setup,\n args,\n sessionData = {},\n pluginComponentId,\n pluginApiName,\n location,\n } = data;\n\n if (action === ACTIONS.RUN && setup && script) {\n const { fn, functionBody } = getFn(script);\n\n runner = new BaseWorkerContext({\n user: setup.user,\n teamMember: setup.teamMember,\n business: setup.business,\n clientObject: setup.clientObject,\n isDebug: setup.isDebug,\n appPath: setup.appPath,\n scriptBody: script,\n functionBody,\n instance: self,\n kizenRequest: kizenRequestHandler(self, promises),\n postFormData: postFormDataHandler(self, promises),\n uploadFile: uploadFileHandler(self, promises),\n installThirdPartyScript: installThirdPartyScriptHandler(self, promises),\n args: args ?? '',\n sessionData,\n pluginComponentId,\n prompt: promptHandler(self, promises),\n dynamicPrompt: dynamicPromptHandler(self, promises),\n refreshEntity: refreshEntityHandler(self, promises),\n openCreateRecord: openCreateRecordHandler(self, promises),\n openCreateRelatedRecord: openCreateRelatedRecordHandler(self, promises),\n showViewInModal: showViewInModalHandler(self, promises),\n closeModal: closeModalHandler(self),\n pluginApiName,\n location,\n });\n\n await fn.bind(runner)();\n } else {\n handleCommonResponse(action, e, promises);\n }\n};\n"]}
@@ -1,10 +1,10 @@
1
- import { RecordDetailWorkerContext } from '../chunk-5ZVIHUN4.js';
2
- import { WorkerPromise } from '../chunk-V6JXKTHL.js';
3
- import { getFn } from '../chunk-PPRZFBZZ.js';
4
- import '../chunk-MRN746YD.js';
5
- import { openCreateRelatedRecordHandler, openCreateRecordHandler, refreshEntityHandler, dynamicPromptHandler, promptHandler, installThirdPartyScriptHandler, uploadFileHandler, postFormDataHandler, kizenRequestHandler, handleCommonResponse } from '../chunk-AY5OQ5KM.js';
6
- import '../chunk-GVATLHW3.js';
7
- import { ACTIONS } from '../chunk-IGHBWLIS.js';
1
+ import { RecordDetailWorkerContext } from '../chunk-ETFBGH26.js';
2
+ import { WorkerPromise } from '../chunk-Q7UJXNJH.js';
3
+ import { getFn } from '../chunk-ANAHYJTV.js';
4
+ import '../chunk-6EG3BV5X.js';
5
+ import { closeModalHandler, showViewInModalHandler, openCreateRelatedRecordHandler, openCreateRecordHandler, refreshEntityHandler, dynamicPromptHandler, promptHandler, installThirdPartyScriptHandler, uploadFileHandler, postFormDataHandler, kizenRequestHandler, handleCommonResponse } from '../chunk-36G3L5ZV.js';
6
+ import '../chunk-4MQ4E7D6.js';
7
+ import { ACTIONS } from '../chunk-DQECJSHA.js';
8
8
  import '../chunk-5WRI5ZAA.js';
9
9
 
10
10
  // src/workers/recordDetail.worker.ts
@@ -49,6 +49,8 @@ self.onmessage = async (e) => {
49
49
  refreshEntity: refreshEntityHandler(self, promises),
50
50
  openCreateRecord: openCreateRecordHandler(self, promises),
51
51
  openCreateRelatedRecord: openCreateRelatedRecordHandler(self, promises),
52
+ showViewInModal: showViewInModalHandler(self, promises),
53
+ closeModal: closeModalHandler(self),
52
54
  pluginApiName,
53
55
  location
54
56
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/workers/recordDetail.worker.ts"],"names":[],"mappings":";;;;;;;;;;AAkBA,IAAM,WAAW,IAAI,aAAA,CAAc,EAAE,OAAA,EAAS,OAAO,CAAA;AAErD,IAAA,CAAK,SAAA,GAAY,OAAO,CAAA,KAA4B;AAClD,EAAA,MAAM,IAAA,GAAO,IAAA,CAAK,KAAA,CAAM,CAAA,CAAE,IAAI,CAAA;AAE9B,EAAA,MAAM;AAAA,IACJ,MAAA;AAAA,IACA,MAAA;AAAA,IACA,KAAA;AAAA,IACA,IAAA;AAAA,IACA,cAAc,EAAC;AAAA,IACf,iBAAA;AAAA,IACA,aAAA;AAAA,IACA;AAAA,GACF,GAAI,IAAA;AAEJ,EAAA,IAAI,MAAA,KAAW,OAAA,CAAQ,GAAA,IAAO,KAAA,IAAS,MAAA,EAAQ;AAC7C,IAAA,MAAM,EAAE,EAAA,EAAI,YAAA,EAAa,GAAI,MAAM,MAAM,CAAA;AAEzC,IAAA,MAAM,MAAA,GAAS,IAAI,yBAAA,CAA0B;AAAA,MAC3C,MAAM,KAAA,CAAM,IAAA;AAAA,MACZ,YAAY,KAAA,CAAM,UAAA;AAAA,MAClB,UAAU,KAAA,CAAM,QAAA;AAAA,MAChB,QAAA,EAAU,MAAM,QAAA,IAAY,EAAA;AAAA,MAC5B,QAAA,EAAU,MAAM,QAAA,IAAY,EAAA;AAAA,MAC5B,cAAA,EAAgB,MAAM,cAAA,IAAkB,EAAA;AAAA,MACxC,cAAA,EAAgB,MAAM,cAAA,IAAkB,EAAA;AAAA,MACxC,cAAc,KAAA,CAAM,YAAA;AAAA,MACpB,SAAS,KAAA,CAAM,OAAA;AAAA,MACf,SAAS,KAAA,CAAM,OAAA;AAAA,MACf,UAAA,EAAY,MAAA;AAAA,MACZ,YAAA;AAAA,MACA,QAAA,EAAU,IAAA;AAAA,MACV,YAAA,EAAc,mBAAA,CAAoB,IAAA,EAAM,QAAQ,CAAA;AAAA,MAChD,YAAA,EAAc,mBAAA,CAAoB,IAAA,EAAM,QAAQ,CAAA;AAAA,MAChD,UAAA,EAAY,iBAAA,CAAkB,IAAA,EAAM,QAAQ,CAAA;AAAA,MAC5C,uBAAA,EAAyB,8BAAA,CAA+B,IAAA,EAAM,QAAQ,CAAA;AAAA,MACtE,MAAM,IAAA,IAAQ,EAAA;AAAA,MACd,WAAA;AAAA,MACA,iBAAA;AAAA,MACA,MAAA,EAAQ,aAAA,CAAc,IAAA,EAAM,QAAQ,CAAA;AAAA,MACpC,aAAA,EAAe,oBAAA,CAAqB,IAAA,EAAM,QAAQ,CAAA;AAAA,MAClD,aAAA,EAAe,oBAAA,CAAqB,IAAA,EAAM,QAAQ,CAAA;AAAA,MAClD,gBAAA,EAAkB,uBAAA,CAAwB,IAAA,EAAM,QAAQ,CAAA;AAAA,MACxD,uBAAA,EAAyB,8BAAA,CAA+B,IAAA,EAAM,QAAQ,CAAA;AAAA,MACtE,aAAA;AAAA,MACA;AAAA,KACD,CAAA;AAED,IAAA,MAAM,EAAA,CAAG,IAAA,CAAK,MAAM,CAAA,EAAE;AAAA,EACxB,CAAA,MAAO;AACL,IAAA,oBAAA,CAAqB,MAAA,EAAQ,GAAG,QAAQ,CAAA;AAAA,EAC1C;AACF,CAAA","file":"recordDetail.worker.js","sourcesContent":["import { ACTIONS } from '../communication/constants.js';\nimport { RecordDetailWorkerContext } from '../contexts/RecordDetailWorkerContext.js';\nimport type { WorkerEvent } from '../types/workers.js';\nimport { getFn } from '../util/run.js';\nimport {\n dynamicPromptHandler,\n handleCommonResponse,\n installThirdPartyScriptHandler,\n kizenRequestHandler,\n openCreateRecordHandler,\n openCreateRelatedRecordHandler,\n postFormDataHandler,\n promptHandler,\n refreshEntityHandler,\n uploadFileHandler,\n} from './util.js';\nimport { WorkerPromise } from './WorkerPromise.js';\n\nconst promises = new WorkerPromise({ isDebug: false });\n\nself.onmessage = async (e: MessageEvent<string>) => {\n const data = JSON.parse(e.data) as WorkerEvent;\n\n const {\n action,\n script,\n setup,\n args,\n sessionData = {},\n pluginComponentId,\n pluginApiName,\n location,\n } = data;\n\n if (action === ACTIONS.RUN && setup && script) {\n const { fn, functionBody } = getFn(script);\n\n const runner = new RecordDetailWorkerContext({\n user: setup.user,\n teamMember: setup.teamMember,\n business: setup.business,\n entityId: setup.entityId ?? '',\n objectId: setup.objectId ?? '',\n actionObjectId: setup.actionObjectId ?? '',\n actionEntityId: setup.actionEntityId ?? '',\n clientObject: setup.clientObject,\n appPath: setup.appPath,\n isDebug: setup.isDebug,\n scriptBody: script,\n functionBody,\n instance: self,\n kizenRequest: kizenRequestHandler(self, promises),\n postFormData: postFormDataHandler(self, promises),\n uploadFile: uploadFileHandler(self, promises),\n installThirdPartyScript: installThirdPartyScriptHandler(self, promises),\n args: args ?? '',\n sessionData,\n pluginComponentId,\n prompt: promptHandler(self, promises),\n dynamicPrompt: dynamicPromptHandler(self, promises),\n refreshEntity: refreshEntityHandler(self, promises),\n openCreateRecord: openCreateRecordHandler(self, promises),\n openCreateRelatedRecord: openCreateRelatedRecordHandler(self, promises),\n pluginApiName,\n location,\n });\n\n await fn.bind(runner)();\n } else {\n handleCommonResponse(action, e, promises);\n }\n};\n"]}
1
+ {"version":3,"sources":["../../src/workers/recordDetail.worker.ts"],"names":[],"mappings":";;;;;;;;;;AAoBA,IAAM,WAAW,IAAI,aAAA,CAAc,EAAE,OAAA,EAAS,OAAO,CAAA;AAErD,IAAA,CAAK,SAAA,GAAY,OAAO,CAAA,KAA4B;AAClD,EAAA,MAAM,IAAA,GAAO,IAAA,CAAK,KAAA,CAAM,CAAA,CAAE,IAAI,CAAA;AAE9B,EAAA,MAAM;AAAA,IACJ,MAAA;AAAA,IACA,MAAA;AAAA,IACA,KAAA;AAAA,IACA,IAAA;AAAA,IACA,cAAc,EAAC;AAAA,IACf,iBAAA;AAAA,IACA,aAAA;AAAA,IACA;AAAA,GACF,GAAI,IAAA;AAEJ,EAAA,IAAI,MAAA,KAAW,OAAA,CAAQ,GAAA,IAAO,KAAA,IAAS,MAAA,EAAQ;AAC7C,IAAA,MAAM,EAAE,EAAA,EAAI,YAAA,EAAa,GAAI,MAAM,MAAM,CAAA;AAEzC,IAAA,MAAM,MAAA,GAAS,IAAI,yBAAA,CAA0B;AAAA,MAC3C,MAAM,KAAA,CAAM,IAAA;AAAA,MACZ,YAAY,KAAA,CAAM,UAAA;AAAA,MAClB,UAAU,KAAA,CAAM,QAAA;AAAA,MAChB,QAAA,EAAU,MAAM,QAAA,IAAY,EAAA;AAAA,MAC5B,QAAA,EAAU,MAAM,QAAA,IAAY,EAAA;AAAA,MAC5B,cAAA,EAAgB,MAAM,cAAA,IAAkB,EAAA;AAAA,MACxC,cAAA,EAAgB,MAAM,cAAA,IAAkB,EAAA;AAAA,MACxC,cAAc,KAAA,CAAM,YAAA;AAAA,MACpB,SAAS,KAAA,CAAM,OAAA;AAAA,MACf,SAAS,KAAA,CAAM,OAAA;AAAA,MACf,UAAA,EAAY,MAAA;AAAA,MACZ,YAAA;AAAA,MACA,QAAA,EAAU,IAAA;AAAA,MACV,YAAA,EAAc,mBAAA,CAAoB,IAAA,EAAM,QAAQ,CAAA;AAAA,MAChD,YAAA,EAAc,mBAAA,CAAoB,IAAA,EAAM,QAAQ,CAAA;AAAA,MAChD,UAAA,EAAY,iBAAA,CAAkB,IAAA,EAAM,QAAQ,CAAA;AAAA,MAC5C,uBAAA,EAAyB,8BAAA,CAA+B,IAAA,EAAM,QAAQ,CAAA;AAAA,MACtE,MAAM,IAAA,IAAQ,EAAA;AAAA,MACd,WAAA;AAAA,MACA,iBAAA;AAAA,MACA,MAAA,EAAQ,aAAA,CAAc,IAAA,EAAM,QAAQ,CAAA;AAAA,MACpC,aAAA,EAAe,oBAAA,CAAqB,IAAA,EAAM,QAAQ,CAAA;AAAA,MAClD,aAAA,EAAe,oBAAA,CAAqB,IAAA,EAAM,QAAQ,CAAA;AAAA,MAClD,gBAAA,EAAkB,uBAAA,CAAwB,IAAA,EAAM,QAAQ,CAAA;AAAA,MACxD,uBAAA,EAAyB,8BAAA,CAA+B,IAAA,EAAM,QAAQ,CAAA;AAAA,MACtE,eAAA,EAAiB,sBAAA,CAAuB,IAAA,EAAM,QAAQ,CAAA;AAAA,MACtD,UAAA,EAAY,kBAAkB,IAAI,CAAA;AAAA,MAClC,aAAA;AAAA,MACA;AAAA,KACD,CAAA;AAED,IAAA,MAAM,EAAA,CAAG,IAAA,CAAK,MAAM,CAAA,EAAE;AAAA,EACxB,CAAA,MAAO;AACL,IAAA,oBAAA,CAAqB,MAAA,EAAQ,GAAG,QAAQ,CAAA;AAAA,EAC1C;AACF,CAAA","file":"recordDetail.worker.js","sourcesContent":["import { ACTIONS } from '../communication/constants.js';\nimport { RecordDetailWorkerContext } from '../contexts/RecordDetailWorkerContext.js';\nimport type { WorkerEvent } from '../types/workers.js';\nimport { getFn } from '../util/run.js';\nimport {\n closeModalHandler,\n dynamicPromptHandler,\n handleCommonResponse,\n installThirdPartyScriptHandler,\n kizenRequestHandler,\n openCreateRecordHandler,\n openCreateRelatedRecordHandler,\n postFormDataHandler,\n promptHandler,\n refreshEntityHandler,\n showViewInModalHandler,\n uploadFileHandler,\n} from './util.js';\nimport { WorkerPromise } from './WorkerPromise.js';\n\nconst promises = new WorkerPromise({ isDebug: false });\n\nself.onmessage = async (e: MessageEvent<string>) => {\n const data = JSON.parse(e.data) as WorkerEvent;\n\n const {\n action,\n script,\n setup,\n args,\n sessionData = {},\n pluginComponentId,\n pluginApiName,\n location,\n } = data;\n\n if (action === ACTIONS.RUN && setup && script) {\n const { fn, functionBody } = getFn(script);\n\n const runner = new RecordDetailWorkerContext({\n user: setup.user,\n teamMember: setup.teamMember,\n business: setup.business,\n entityId: setup.entityId ?? '',\n objectId: setup.objectId ?? '',\n actionObjectId: setup.actionObjectId ?? '',\n actionEntityId: setup.actionEntityId ?? '',\n clientObject: setup.clientObject,\n appPath: setup.appPath,\n isDebug: setup.isDebug,\n scriptBody: script,\n functionBody,\n instance: self,\n kizenRequest: kizenRequestHandler(self, promises),\n postFormData: postFormDataHandler(self, promises),\n uploadFile: uploadFileHandler(self, promises),\n installThirdPartyScript: installThirdPartyScriptHandler(self, promises),\n args: args ?? '',\n sessionData,\n pluginComponentId,\n prompt: promptHandler(self, promises),\n dynamicPrompt: dynamicPromptHandler(self, promises),\n refreshEntity: refreshEntityHandler(self, promises),\n openCreateRecord: openCreateRecordHandler(self, promises),\n openCreateRelatedRecord: openCreateRelatedRecordHandler(self, promises),\n showViewInModal: showViewInModalHandler(self, promises),\n closeModal: closeModalHandler(self),\n pluginApiName,\n location,\n });\n\n await fn.bind(runner)();\n } else {\n handleCommonResponse(action, e, promises);\n }\n};\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kizenapps/engine",
3
- "version": "1.4.0-01344a3",
3
+ "version": "1.5.0-53bcfe4",
4
4
  "description": "Run JavaScript plugin apps inside Web Workers with host ↔ worker messaging",
5
5
  "license": "GPL-3.0",
6
6
  "type": "module",
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/util/errors.ts","../src/workers/util.ts"],"names":["cleanConfig","consideredValue"],"mappings":"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","file":"chunk-AY5OQ5KM.js","sourcesContent":["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 * 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 CurriedDynamicPromptFn,\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 CurriedInstallThirdPartyScriptFn,\n CurriedOpenCreateRecordFn,\n CurriedOpenCreateRelatedRecordFn,\n CurriedPostFormDataFn,\n CurriedPromptFn,\n CurriedRefreshEntityFn,\n CurriedUploadFileFn,\n} from '../types/contexts.js';\nimport type {\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';\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: `action__${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 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 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.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"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/communication/constants.ts","../src/communication/ThirdPartyScript.ts"],"names":["INDICATOR_TYPE"],"mappings":"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","file":"chunk-IGHBWLIS.js","sourcesContent":["export const ACTIONS = {\n QUERY_REQUEST: 'query:request',\n UI_OUTPUT: 'outputui',\n IFRAME_OUTPUT: 'iframeoutput',\n POSTFORMDATA_REQUEST: 'postformdata:request',\n SETSTATE: 'setstate',\n DONE: 'done',\n RUN: 'run',\n OPEN_WINDOW: 'openwindow',\n COMMUNICATE: 'communicate',\n HIDE: 'hide',\n SHOW: 'show',\n EXPAND: 'expand',\n COLLAPSE: 'collapse',\n HIDE_HEADER: 'hideheader',\n SHOW_HEADER: 'showheader',\n OPEN_CREATE_RECORD_MODAL_REQUEST: 'opencreaterecordmodal:request',\n OPEN_CREATE_RELATED_RECORD_MODAL_REQUEST: 'opencreaterelatedrecordmodal:request',\n SHOW_TOAST: 'showtoast',\n CLEAR_TOASTS: 'cleartoasts',\n REFRESH_TIMELINE: 'refreshtimeline',\n REFRESH_ENTITY: 'refreshentity',\n UPLOADFILE_REQUEST: 'uploadfile:request',\n UPDATE_SESSION_DATA: 'updatesessiondata',\n INSTALL_THIRD_PARTY_SCRIPT_REQUEST: 'installthirdpartyscript:request',\n PROMPT_REQUEST: 'prompt:request',\n // Note: We have a special request for dynamic prompts, but the regular response is sufficient\n // and no special dynamic one is needed\n DYNAMIC_PROMPT_REQUEST: 'dynamicprompt:request',\n RELEASE_BLOCKING_SCRIPT: 'releaseblockingscript',\n AUTHORIZE: 'authorize',\n COPY_TO_CLIPBOARD: 'copytoclipboard',\n};\n\nexport const RESPONSES = {\n QUERY_RESPONSE: 'query:response',\n POSTFORMDATA_RESPONSE: 'postformdata:response',\n ERROR: 'error',\n UPLOADFILE_RESPONSE: 'uploadfile:response',\n UPLOADFILE_PROGRESS: 'uploadfile:progress',\n INSTALL_THIRD_PARTY_SCRIPT_RESPONSE: 'installthirdpartyscript:response',\n PROMPT_RESPONSE: 'prompt:response',\n REFRESH_ENTITY_RESPONSE: 'refreshentity:response',\n CREATE_RECORD_RESPONSE: 'createrecord:response',\n CREATE_RELATED_RECORD_RESPONSE: 'createrelatedrecord:response',\n};\n\nexport const COMMUNICATIONS = {\n RUN_FRAME_SCRIPT: 'runframescript',\n SEND_MESSAGE_TO_FRAME: 'sendmessagetoframe',\n CALL_THIRD_PARTY_SCRIPT: 'callthirdpartyscript',\n};\n\nexport enum INDICATOR_TYPE {\n NONE = 'none',\n BLOCK = 'block',\n BUTTON = 'button',\n SPINNER = 'spinner',\n}\n\nexport const ROUTE_CHANGE_INTERNAL_EVENT = 'integration:route-change';\nexport const ROUTE_CHANGE_IFRAME_EVENT = 'kizen-route-change';\nexport const IFRAME_PREFIX = 'kzn-integration-frame';\n\nconst PKG_VERSION = __PKG_VERSION__;\n\nconst BASE_QUERY_KEY = ['__plugin_engine', PKG_VERSION] as const;\n\nexport const QUERY_KEYS = {\n CALENDAR_SOURCE_CALENDAR_LIST: (pluginApiName: string, sourceApiName: string) =>\n [...BASE_QUERY_KEY, 'calendar-source', 'calendar-list', pluginApiName, sourceApiName] as const,\n CALENDAR_SOURCE_EVENTS: (\n pluginApiName: string,\n sourceApiName: string,\n calendarId: string,\n params: unknown,\n ) =>\n [\n ...BASE_QUERY_KEY,\n 'calendar-source',\n 'events',\n pluginApiName,\n sourceApiName,\n calendarId,\n params,\n ] as const,\n};\n","import type { Instance } from '../types/contexts.js';\nimport { ACTIONS, COMMUNICATIONS } from './constants.js';\n\nconst freshWorksPattern = /https:\\/\\/.*widget\\.freshworks\\.com\\/.*\\.js/;\nconst intercomPattern = /https:\\/\\/widget\\.intercom\\.io\\/widget\\/[a-z0-9]+/;\n\nexport const ALLOWED_INTEGRATIONS = {\n FRESHWORKS: 'freshworks',\n INTERCOM: 'intercom',\n} as const;\n\n/*\n Third party scripts must match an approved regex, and arbitrary scripts cannot be\n loaded by a plugin if they do not.\n*/\nexport const getScriptIntegrationType = (\n scriptUrl: string,\n): (typeof ALLOWED_INTEGRATIONS)[keyof typeof ALLOWED_INTEGRATIONS] | undefined => {\n if (freshWorksPattern.test(scriptUrl)) {\n return ALLOWED_INTEGRATIONS.FRESHWORKS;\n }\n\n if (intercomPattern.test(scriptUrl)) {\n return ALLOWED_INTEGRATIONS.INTERCOM;\n }\n};\n\n/* \n The global name of the third-party integration. This is the variable where the\n integration code can be called from. For example, if the third-party integration\n is 'Freshworks', function calls will be made like window.FreshworksWidget(...args).\n*/\nexport const thirdPartyGlobalNames = {\n [ALLOWED_INTEGRATIONS.FRESHWORKS]: 'FreshworksWidget',\n [ALLOWED_INTEGRATIONS.INTERCOM]: 'Intercom',\n};\n\n/*\n For a predefined third-party integration, the setup script will be run\n BEFORE the third party javascript has been loaded.\n*/\nexport const thirdPartySetupScripts = {\n [ALLOWED_INTEGRATIONS.FRESHWORKS]: (args: Record<string, unknown>) => {\n (window as unknown as Record<string, unknown>).fwSettings = {\n widget_id: args.widgetId,\n };\n\n // Function adapted from https://developers.freshdesk.com/widget-api/#introduction\n (function (...rest) {\n if (\n 'function' !=\n typeof (window as unknown as Record<string, unknown>)[\n thirdPartyGlobalNames[ALLOWED_INTEGRATIONS.FRESHWORKS]\n ]\n ) {\n const n: { q: unknown[]; __kizen_pending?: boolean } = function () {\n n.q.push(...rest);\n };\n\n n.__kizen_pending = true;\n\n // eslint-disable-next-line\n ((n.q = []), ((window as any)[thirdPartyGlobalNames[ALLOWED_INTEGRATIONS.FRESHWORKS]] = n));\n }\n })();\n },\n // Function adapted from https://developers.intercom.com/installing-intercom/web/installation\n [ALLOWED_INTEGRATIONS.INTERCOM]: () => {\n (function () {\n if (\n 'function' !=\n typeof (window as unknown as Record<string, unknown>)[\n thirdPartyGlobalNames[ALLOWED_INTEGRATIONS.INTERCOM]\n ]\n ) {\n const w = window as unknown as Record<string, unknown>;\n const i: { c: (args: unknown) => void; q: unknown[]; __kizen_pending?: boolean } =\n function () {\n // eslint-disable-next-line prefer-rest-params\n i.c(arguments);\n };\n\n i.q = [];\n i.c = function (args: unknown) {\n i.q.push(args);\n };\n\n i.__kizen_pending = true;\n\n w[thirdPartyGlobalNames[ALLOWED_INTEGRATIONS.INTERCOM]] = i;\n }\n })();\n },\n};\n\n/*\n For a predefined third-party integration, the ready predicate will be run\n AFTER the third party javascript has been loaded, but before the worker has been\n notified that it is ready. This is optional, but gives a chance to wait for an arbitrary\n condition to be met before considering the third-party code initialized successfully.\n*/\nexport const thirdPartyReadyPredicates = {\n [ALLOWED_INTEGRATIONS.FRESHWORKS]: () => {\n return (\n (\n (window as unknown as Record<string, unknown>)[\n thirdPartyGlobalNames[ALLOWED_INTEGRATIONS.FRESHWORKS]\n ] as { __kizen_pending?: boolean } | undefined\n )?.__kizen_pending !== true\n );\n },\n [ALLOWED_INTEGRATIONS.INTERCOM]: () => {\n return (\n (\n (window as unknown as Record<string, unknown>)[\n thirdPartyGlobalNames[ALLOWED_INTEGRATIONS.INTERCOM]\n ] as { __kizen_pending?: boolean } | undefined\n )?.__kizen_pending !== true\n );\n },\n};\n\nexport class ThirdPartyScript {\n private instance: Instance;\n private scriptUrl: string;\n private integration: (typeof ALLOWED_INTEGRATIONS)[keyof typeof ALLOWED_INTEGRATIONS];\n\n constructor(instance: Instance, scriptUrl: string) {\n this.instance = instance;\n this.scriptUrl = scriptUrl;\n const type = getScriptIntegrationType(scriptUrl);\n\n if (type) {\n this.integration = type;\n } else {\n throw new Error(`Error: Disallowed script url: ${scriptUrl}`);\n }\n }\n\n get type(): (typeof ALLOWED_INTEGRATIONS)[keyof typeof ALLOWED_INTEGRATIONS] {\n return this.integration;\n }\n\n public call(...params: unknown[]): void {\n this.instance.postMessage(\n JSON.stringify({\n action: ACTIONS.COMMUNICATE,\n type: COMMUNICATIONS.CALL_THIRD_PARTY_SCRIPT,\n eventName: `thirdParty:${COMMUNICATIONS.CALL_THIRD_PARTY_SCRIPT}`,\n recipient: {\n script: this.scriptUrl,\n type: this.type,\n },\n params,\n }),\n );\n }\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/contexts/BaseWorkerContext.ts"],"names":[],"mappings":";;;;;AA+CA,IAAM,kBAAA,GAAqB,OAAO,MAAA,KAA6C;AAC7E,EAAA,IAAI,SAAA,GAAqB,IAAA;AAEzB,EAAA,IAAI;AACF,IAAA,SAAA,GAAY,MAAM,OAAO,IAAA,EAAK;AAAA,EAChC,CAAA,CAAA,MAAQ;AAAA,EAER;AAEA,EAAA,MAAM,KAAA,GAAQ;AAAA,IACZ,QAAQ,MAAA,CAAO,MAAA;AAAA,IACf,YAAY,MAAA,CAAO,UAAA;AAAA,IACnB,IAAA,EAAM;AAAA,GACR;AAEA,EAAA,OAAO,KAAA;AACT,CAAA;AAEA,IAAM,6BAAA,GAAgC,CACpC,EAAA,EACA,QAAA,EACA,OAAoB,EAAC,EACrB,UAAU,EAAA,KACC;AACX,EAAA,MAAM,cAAA,GAAiB,GAAG,QAAA,EAAS;AAEnC,EAAA,MAAM,MAAA,GAAS,IAAI,cAAc,CAAA,aAAA,EAAgB,QAAQ,CAAA,UAAA,EAAa,IAAA,CAAK,SAAA,CAAU,IAAI,CAAC,CAAA,yBAAA,CAAA;AAG1F,EAAA,MAAM,IAAA,GAAO,iBAAiB,OAAO;AAAA,OAAA,EAAY,MAAM,CAAA,MAAA,CAAA;AAEvD,EAAA,OAAO,IAAA;AACT,CAAA;AAOO,IAAM,oBAAN,MAAwB;AAAA,EACnB,IAAA;AAAA,EACA,UAAA;AAAA,EACA,QAAA;AAAA,EACA,YAAA;AAAA,EACA,OAAA;AAAA,EACA,SAAA,uBAAoC,GAAA,EAAI;AAAA,EACxC,eAAe,EAAC;AAAA,EAClB,GAAA;AAAA,EACD,YAAA;AAAA,EACC,cAAA,GAAiB,CAAA;AAAA,EACjB,eAAA,GAAkB,CAAA;AAAA,EAClB,iBAAA,GAAoB,CAAA;AAAA,EAClB,OAAA,GAAU,KAAA;AAAA,EACV,UAAA;AAAA,EACA,aAAA,GAAoC,EAAE,SAAA,EAAA,MAAA,aAA+B;AAAA,EACxE,OAAA,GAAU,OAAA;AAAA,EACP,QAAA;AAAA,EACF,gBAAA,GAAmB,KAAA;AAAA,EACpB,IAAA;AAAA,EACA,WAAA;AAAA,EACC,cAAA,GAAiB,KAAA;AAAA,EACjB,iBAAA;AAAA,EACA,mBAAA;AAAA,EACA,iBAAA;AAAA,EACA,8BAAA;AAAA,EACA,aAAA;AAAA,EACA,oBAAA;AAAA,EACA,oBAAA;AAAA,EACA,uBAAA;AAAA,EACA,8BAAA;AAAA,EACE,UAAA;AAAA,EACH,aAAA;AAAA,EACA,kBAA+B,EAAC;AAAA,EAC/B,eAAA;AAAA,EAER,WAAA,CAAY;AAAA,IACV,IAAA;AAAA,IACA,UAAA;AAAA,IACA,QAAA;AAAA,IACA,YAAA;AAAA,IACA,OAAA;AAAA,IACA,OAAA;AAAA,IACA,YAAA;AAAA,IACA,YAAA;AAAA,IACA,UAAA;AAAA,IACA,QAAA;AAAA,IACA,IAAA;AAAA,IACA,UAAA;AAAA,IACA,WAAA;AAAA,IACA,iBAAA;AAAA,IACA,uBAAA;AAAA,IACA,MAAA;AAAA,IACA,aAAA;AAAA,IACA,gBAAA;AAAA,IACA,uBAAA;AAAA,IACA,aAAA;AAAA,IACA,aAAA;AAAA,IACA;AAAA,GACF,EAAsB;AACpB,IAAA,IAAA,CAAK,IAAA,GAAO,IAAA;AACZ,IAAA,IAAA,CAAK,UAAA,GAAa,UAAA;AAClB,IAAA,IAAA,CAAK,QAAA,GAAW,QAAA;AAChB,IAAA,IAAA,CAAK,YAAA,GAAe,YAAA;AACpB,IAAA,IAAA,CAAK,eAAA,GAAkB,QAAA;AACvB,IAAA,IAAA,CAAK,OAAA,GAAU,OAAA;AACf,IAAA,IAAA,CAAK,UAAU,OAAA,IAAW,KAAA;AAC1B,IAAA,IAAA,CAAK,GAAA,GAAM;AAAA,MACT,GAAA,EAAK,aAAa,KAAK,CAAA;AAAA,MACvB,IAAA,EAAM,aAAa,MAAM,CAAA;AAAA,MACzB,GAAA,EAAK,aAAa,KAAK,CAAA;AAAA,MACvB,MAAA,EAAQ,aAAa,QAAQ,CAAA;AAAA,MAC7B,KAAA,EAAO,aAAa,OAAO;AAAA,KAC7B;AAEA,IAAA,IAAA,CAAK,YAAA,GAAe,YAAA;AACpB,IAAA,IAAA,CAAK,UAAA,GAAa,UAAA;AAClB,IAAA,IAAA,CAAK,QAAA,GAAW,QAAA;AAChB,IAAA,IAAA,CAAK,WAAA,GAAc,IAAI,WAAA,CAAY,QAAQ,CAAA;AAC3C,IAAA,IAAA,CAAK,iBAAA,GAAoB,UAAA;AACzB,IAAA,IAAA,CAAK,mBAAA,GAAsB,eAAe,EAAC;AAC3C,IAAA,IAAA,CAAK,iBAAA,GAAoB,iBAAA;AACzB,IAAA,IAAA,CAAK,8BAAA,GAAiC,uBAAA;AACtC,IAAA,IAAA,CAAK,aAAA,GAAgB,MAAA;AACrB,IAAA,IAAA,CAAK,oBAAA,GAAuB,aAAA;AAC5B,IAAA,IAAA,CAAK,uBAAA,GAA0B,gBAAA;AAC/B,IAAA,IAAA,CAAK,8BAAA,GAAiC,uBAAA;AACtC,IAAA,IAAA,CAAK,UAAA,GAAa,MAAA;AAClB,IAAA,IAAA,CAAK,aAAA,GAAgB,aAAA;AACrB,IAAA,IAAA,CAAK,oBAAA,GAAuB,aAAA;AAE5B,IAAA,IAAI;AACF,MAAA,IAAA,CAAK,IAAA,GAAO,IAAA,CAAK,KAAA,CAAM,IAAA,IAAQ,IAAI,CAAA;AAAA,IACrC,CAAA,CAAA,MAAQ;AACN,MAAA,IAAA,CAAK,OAAO,EAAC;AAAA,IACf;AAAA,EACF;AAAA,EAEO,QAAQ,KAAA,EAAmC;AAChD,IAAA,IAAI,KAAK,gBAAA,EAAkB;AACzB,MAAA;AAAA,IACF;AAEA,IAAA,IAAA,CAAK,QAAA,CAAS,WAAA;AAAA,MACZ,KAAK,SAAA,CAAU;AAAA,QACb,QAAQ,SAAA,CAAU,KAAA;AAAA,QAClB,OAAO,KAAA,EAAO;AAAA,OACf;AAAA,KACH;AAAA,EACF;AAAA,EAEA,IAAI,MAAM,KAAA,EAAgB;AACxB,IAAA,IAAA,CAAK,OAAA,GAAU,KAAA;AACf,IAAA,IAAA,CAAK,gBAAA,GAAmB,KAAA;AAAA,EAC1B;AAAA,EAEA,IAAI,SAAS,KAAA,EAAgB;AAC3B,IAAA,IAAA,CAAK,cAAA,GAAiB,KAAA;AAAA,EACxB;AAAA,EAEA,IAAI,QAAA,GAAoB;AACtB,IAAA,OAAO,IAAA,CAAK,cAAA;AAAA,EACd;AAAA,EAEA,UAAU,IAAA,EAAwB;AAChC,IAAA,OAAO,IAAA,CAAK,MAAM,GAAG,CAAA;AAAA,EACvB;AAAA,EAEA,WAAW,KAAA,EAAuB;AAChC,IAAA,OAAO,KAAA,CAAM,OAAA,CAAQ,KAAA,EAAO,EAAE,CAAA;AAAA,EAChC;AAAA,EAEA,UAAA,CAAW,GAAA,EAAa,MAAA,GAAS,QAAA,EAAgB;AAC/C,IAAA,IAAA,CAAK,QAAA,CAAS,WAAA;AAAA,MACZ,KAAK,SAAA,CAAU;AAAA,QACb,QAAQ,OAAA,CAAQ,WAAA;AAAA,QAChB,GAAA;AAAA,QACA,MAAA;AAAA,QACA,QAAA,EAAU;AAAA,OACX;AAAA,KACH;AAAA,EACF;AAAA,EAEA,SAAA,CACE,WAAA,EACA,MAAA,GAAuE,EAAC,EAClE;AACN,IAAA,IAAI,CAAC,WAAA,EAAa;AAChB,MAAA,MAAM,IAAI,MAAM,uCAAuC,CAAA;AAAA,IACzD;AAEA,IAAA,IAAA,CAAK,QAAA,CAAS,WAAA;AAAA,MACZ,KAAK,SAAA,CAAU;AAAA,QACb,QAAQ,OAAA,CAAQ,SAAA;AAAA,QAChB,WAAA;AAAA,QACA,MAAA,EAAQ;AAAA,UACN,mBAAA,EACE,MAAA,CAAO,mBAAA,IAAuB,CAAA,aAAA,EAAgB,KAAK,aAAa,CAAA,KAAA,CAAA;AAAA,UAClE,iBAAA,EAAmB,MAAA,CAAO,iBAAA,IAAqB,CAAA,aAAA,EAAgB,KAAK,aAAa,CAAA,KAAA;AAAA;AACnF,OACD;AAAA,KACH;AAAA,EACF;AAAA,EAEA,aAAA,CAAc,aAAqB,IAAA,EAAsB;AACvD,IAAA,IAAI,CAAC,WAAA,EAAa;AAChB,MAAA,MAAM,IAAI,MAAM,+CAA+C,CAAA;AAAA,IACjE;AAEA,IAAA,MAAM,IAAA,GAAO,CAAA,6BAAA,EAAgC,IAAA,CAAK,aAAa,IAAI,WAAW,CAAA,CAAA;AAE9E,IAAA,IAAI,IAAA,CAAK,UAAA,CAAW,GAAG,CAAA,EAAG;AACxB,MAAA,OAAO,CAAA,EAAG,IAAI,CAAA,EAAG,IAAI,CAAA,CAAA;AAAA,IACvB;AAEA,IAAA,OAAO,CAAA,EAAG,IAAI,CAAA,CAAA,EAAI,IAAI,CAAA,CAAA;AAAA,EACxB;AAAA,EAEA,IAAI,eAAA,GAA+C;AACjD,IAAA,OAAO,IAAA,CAAK,QAAA;AAAA,EACd;AAAA,EAEA,IAAI,eAAA,GAAsC;AACxC,IAAA,OAAO,IAAA,CAAK,OAAA;AAAA,EACd;AAAA,EAEA,IAAI,WAAA,GAA2B;AAC7B,IAAA,OAAO;AAAA,MACL,OAAA,EAAS;AAAA,QACP,EAAA,EAAI,IAAA,CAAK,UAAA,EAAY,EAAA,IAAM,EAAA;AAAA,QAC3B,SAAA,EAAW,IAAA,CAAK,UAAA,EAAY,SAAA,IAAa,EAAA;AAAA,QACzC,UAAA,EAAY,IAAA,CAAK,UAAA,EAAY,UAAA,IAAc,EAAA;AAAA,QAC3C,SAAA,EAAW,IAAA,CAAK,UAAA,EAAY,SAAA,IAAa,EAAA;AAAA,QACzC,KAAA,EAAO,IAAA,CAAK,UAAA,EAAY,KAAA,IAAS,EAAA;AAAA,QACjC,KAAA,EAAO,IAAA,CAAK,UAAA,EAAY,KAAA,IAAS,EAAA;AAAA,QACjC,OAAA,EAAS,IAAA,CAAK,UAAA,EAAY,OAAA,IAAW,EAAA;AAAA,QACrC,aAAA,EAAe,IAAA,CAAK,IAAA,EAAM,aAAA,IAAiB;AAAA;AAC7C,KACF;AAAA,EACF;AAAA,EAEA,IAAI,WAAA,GAAmC;AACrC,IAAA,OAAO,IAAA,CAAK,mBAAA;AAAA,EACd;AAAA,EAEA,IAAI,MAAA,GAAkB;AACpB,IAAA,MAAM,eAAA,GAAkB,OAAA,CAAQ,IAAA,CAAK,IAAA,CAAK,oBAAoB,CAAA;AAE9D,IAAA,IAAI,CAAC,eAAA,EAAiB;AACpB,MAAA,OAAO,EAAC;AAAA,IACV;AAEA,IAAA,MAAM,UAAU,IAAI,KAAA,CAAM,KAAK,IAAA,CAAK,oBAAA,IAAwB,EAAC,EAAG;AAAA,MAC9D,GAAA,EAAK,CAAC,MAAA,EAAQ,IAAA,KAAS;AACrB,QAAA,IAAI,OAAA,CAAQ,GAAA,CAAI,MAAA,EAAQ,IAAI,CAAA,EAAG;AAC7B,UAAA,OAAO,OAAA,CAAQ,GAAA,CAAI,MAAA,EAAQ,IAAI,CAAA;AAAA,QACjC;AAEA,QAAA,OAAO,MAAA;AAAA,MACT;AAAA,KACD,CAAA;AAED,IAAA,OAAO,OAAA;AAAA,EACT;AAAA,EAEA,IAAI,QAAA,GAA4B;AAC9B,IAAA,OAAO,IAAI,KAAA,CAAM,IAAA,CAAK,eAAA,EAAiB;AAAA,MACrC,GAAA,EAAK,CAAC,MAAA,EAAQ,IAAA,KAAS;AACrB,QAAA,IAAI,SAAS,QAAA,EAAU;AACrB,UAAA,OAAO,MAAM;AACX,YAAA,OAAO,IAAA,CAAK,eAAA;AAAA,UACd,CAAA;AAAA,QACF;AAEA,QAAA,IAAI,OAAA,CAAQ,GAAA,CAAI,MAAA,EAAQ,IAAI,CAAA,EAAG;AAC7B,UAAA,OAAO,OAAA,CAAQ,GAAA,CAAI,MAAA,EAAQ,IAAI,CAAA;AAAA,QACjC;AAEA,QAAA,MAAM,IAAI,KAAA;AAAA,UACR,CAAA,SAAA,EAAY,MAAA,CAAO,IAAI,CAAC,CAAA,oDAAA;AAAA,SAC1B;AAAA,MACF;AAAA,KACD,CAAA;AAAA,EACH;AAAA,EAEA,IAAI,UAAA,GAAsB;AACxB,IAAA,MAAM,YAAA,GAAe,IAAA,CAAK,IAAA,CAAK,mBAAA,EAAqB,oBAAA;AAEpD,IAAA,IAAI,CAAC,YAAA,EAAc;AACjB,MAAA,OAAO,EAAC;AAAA,IACV;AAEA,IAAA,MAAM,OAAA,GAAU,IAAI,KAAA,CAAM,YAAA,EAAc;AAAA,MACtC,GAAA,EAAK,CAAC,MAAA,EAAQ,IAAA,KAAS;AACrB,QAAA,IAAI,OAAA,CAAQ,GAAA,CAAI,MAAA,EAAQ,IAAI,CAAA,EAAG;AAC7B,UAAA,OAAO,OAAA,CAAQ,GAAA,CAAI,MAAA,EAAQ,IAAI,CAAA;AAAA,QACjC;AAEA,QAAA,OAAO,MAAA;AAAA,MACT;AAAA,KACD,CAAA;AAED,IAAA,OAAO,OAAA;AAAA,EACT;AAAA,EAEA,eAAe,MAAA,EAA2B;AACxC,IAAA,IAAI,OAAO,WAAW,QAAA,EAAU;AAC9B,MAAA,MAAM,IAAI,KAAA,CAAM,CAAA,iCAAA,EAAoC,OAAO,MAAM,CAAA,CAAE,CAAA;AAAA,IACrE;AAEA,IAAA,IAAI,KAAA,CAAM,OAAA,CAAQ,MAAM,CAAA,EAAG;AACzB,MAAA,MAAM,IAAI,MAAM,CAAA,sCAAA,CAAwC,CAAA;AAAA,IAC1D;AAEA,IAAA,IAAA,CAAK,mBAAA,GAAsB;AAAA,MACzB,GAAG,IAAA,CAAK,mBAAA;AAAA,MACR,GAAG;AAAA,KACL;AAEA,IAAA,IAAA,CAAK,QAAA,CAAS,WAAA;AAAA,MACZ,KAAK,SAAA,CAAU;AAAA,QACb,QAAQ,OAAA,CAAQ,mBAAA;AAAA,QAChB;AAAA,OACD;AAAA,KACH;AAAA,EACF;AAAA,EAEA,MAAM,GAAA,CAAI,GAAA,EAAa,OAAA,EAAwC;AAC7D,IAAA,IAAI;AACF,MAAA,IAAI,IAAA,CAAK,aAAA,CAAc,GAAG,CAAA,EAAG;AAC3B,QAAA,MAAM,YAAA,GAAe,IAAA,CAAK,SAAA,CAAU,GAAA,CAAI,GAAG,CAAA;AAE3C,QAAA,IAAI,YAAA,IAAgB,CAAC,OAAA,EAAS,WAAA,EAAa;AACzC,UAAA,IAAI,SAAS,YAAA,EAAc;AACzB,YAAA,OAAO,CAAC,YAAA,CAAa,IAAA,EAAM,IAAI,CAAA;AAAA,UACjC;AAEA,UAAA,OAAO,YAAA,CAAa,IAAA;AAAA,QACtB;AAEA,QAAA,MAAM,EAAE,IAAA,EAAK,GAAI,MAAM,IAAA,CAAK,GAAA,CAAI,IAAI,GAAA,EAAK;AAAA,UACvC,GAAG,IAAA,CAAK,YAAA;AAAA,UACR,OAAA,EAAS,IAAA,CAAK,YAAA,CAAa,OAAA,EAAS,OAAO;AAAA,SAC5C,CAAA;AAED,QAAA,IAAA,CAAK,SAAA,CAAU,IAAI,GAAA,EAAK,EAAE,IAAI,IAAA,CAAK,GAAA,EAAI,EAAG,IAAA,EAAM,CAAA;AAEhD,QAAA,IAAI,SAAS,YAAA,EAAc;AACzB,UAAA,OAAO,CAAC,MAAM,IAAI,CAAA;AAAA,QACpB;AAEA,QAAA,OAAO,IAAA;AAAA,MACT,CAAA,MAAO;AACL,QAAA,MAAM,GAAA,GAAM,MAAM,KAAA,CAAM,GAAA,EAAK;AAAA,UAC3B,MAAA,EAAQ,KAAA;AAAA,UACR,OAAA,EAAS,IAAI,OAAA,CAAQ,OAAA,EAAS,OAAO,CAAA;AAAA,UACrC,WAAA,EAAa,SAAS,WAAA,IAAe;AAAA,SACtC,CAAA;AAED,QAAA,IAAI,CAAC,IAAI,EAAA,EAAI;AACX,UAAA,MAAM,GAAA,GAAM,MAAM,kBAAA,CAAmB,GAAG,CAAA;AAExC,UAAA,MAAM,GAAA;AAAA,QACR;AAEA,QAAA,MAAM,IAAA,GAAQ,MAAM,GAAA,CAAI,IAAA,EAAK;AAE7B,QAAA,IAAI,SAAS,YAAA,EAAc;AACzB,UAAA,OAAO,CAAC,MAAM,IAAI,CAAA;AAAA,QACpB;AAEA,QAAA,OAAO,IAAA;AAAA,MACT;AAAA,IACF,SAAS,EAAA,EAAI;AACX,MAAA,IAAI,SAAS,YAAA,EAAc;AACzB,QAAA,OAAO,CAAC,MAAM,EAAE,CAAA;AAAA,MAClB,CAAA,MAAO;AACL,QAAA,IAAA,CAAK,QAAQ,EAAiB,CAAA;AAAA,MAChC;AAAA,IACF;AAAA,EACF;AAAA,EAEA,MAAM,aAAA,CACJ,GAAA,EACA,OAAA,EACoC;AACpC,IAAA,OAAO,IAAA,CAAK,IAAI,GAAA,EAAK;AAAA,MACnB,GAAG,OAAA;AAAA,MACH,YAAA,EAAc;AAAA,KACf,CAAA;AAAA,EACH;AAAA,EAEA,MAAM,aAAA,GAAsC;AAC1C,IAAA,IAAI,CAAC,IAAA,CAAK,IAAA,CAAK,QAAA,IAAY,CAAC,KAAK,iBAAA,EAAmB;AAClD,MAAA,MAAM,IAAI,KAAA;AAAA,QACR;AAAA,OACF;AAAA,IACF;AAEA,IAAA,MAAM,YAAA,GAAgB,MAAM,IAAA,CAAK,GAAA,CAAI,kCAAkC,IAAA,CAAK,IAAA,CAAK,QAAQ,CAAA,CAAA,EAAI;AAAA,MAC3F,WAAA,EAAa;AAAA,KACd,CAAA;AAED,IAAA,OAAO,YAAA,CAAa,MAAA,GAAS,IAAA,CAAK,iBAAiB,KAAK,EAAC;AAAA,EAC3D;AAAA,EAEA,MAAM,cAAc,MAAA,EAAuC;AACzD,IAAA,IAAI,CAAC,IAAA,CAAK,IAAA,CAAK,QAAA,IAAY,CAAC,KAAK,iBAAA,EAAmB;AAClD,MAAA,MAAM,IAAI,KAAA;AAAA,QACR;AAAA,OACF;AAAA,IACF;AAEA,IAAA,MAAM,SAAA,GAAa,MAAM,IAAA,CAAK,GAAA,CAAI,kCAAkC,IAAA,CAAK,IAAA,CAAK,QAAQ,CAAA,CAAA,EAAI;AAAA,MACxF,WAAA,EAAa;AAAA,KACd,CAAA;AAED,IAAA,MAAM,cAAA,GAAiB,MAAM,IAAA,CAAK,IAAA,CAAK,kCAAkC,IAAA,CAAK,IAAA,CAAK,QAAQ,CAAA,CAAA,EAAI;AAAA,MAC7F,MAAA,EAAQ;AAAA,QACN,GAAG,SAAA,EAAW,MAAA;AAAA,QACd,CAAC,IAAA,CAAK,iBAAiB,GAAG;AAAA,UACxB,GAAG,SAAA,EAAW,MAAA,GAAS,IAAA,CAAK,iBAAiB,CAAA;AAAA,UAC7C,GAAG;AAAA;AACL;AACF,KACD,CAAA;AAED,IAAA,OAAO,cAAA;AAAA,EACT;AAAA,EAEA,MAAM,KAAA,CAAM,GAAA,EAAa,IAAA,EAAoB,OAAA,EAA4C;AACvF,IAAA,IAAI;AACF,MAAA,IAAI,IAAA,CAAK,aAAA,CAAc,GAAG,CAAA,EAAG;AAC3B,QAAA,MAAM,EAAE,MAAK,GAAI,MAAM,KAAK,GAAA,CAAI,KAAA,CAAM,KAAK,IAAA,EAAM;AAAA,UAC/C,GAAG,IAAA,CAAK,YAAA;AAAA,UACR,SAAS,OAAA,EAAS;AAAA,SACnB,CAAA;AAED,QAAA,IAAI,SAAS,YAAA,EAAc;AACzB,UAAA,OAAO,CAAC,MAAM,IAAI,CAAA;AAAA,QACpB;AAEA,QAAA,OAAO,IAAA;AAAA,MACT,CAAA,MAAO;AACL,QAAA,MAAM,GAAA,GAAM,MAAM,KAAA,CAAM,GAAA,EAAK;AAAA,UAC3B,MAAA,EAAQ,OAAA;AAAA,UACR,IAAA,EAAM,IAAA,GAAO,IAAA,CAAK,SAAA,CAAU,IAAI,CAAA,GAAI,IAAA;AAAA,UACpC,OAAA,EAAS,IAAI,OAAA,CAAQ,OAAA,EAAS,OAAO,CAAA;AAAA,UACrC,WAAA,EAAa,SAAS,WAAA,IAAe;AAAA,SACtC,CAAA;AAED,QAAA,IAAI,CAAC,IAAI,EAAA,EAAI;AACX,UAAA,MAAM,GAAA,GAAM,MAAM,kBAAA,CAAmB,GAAG,CAAA;AACxC,UAAA,MAAM,GAAA;AAAA,QACR;AAEA,QAAA,MAAM,IAAA,GAAQ,MAAM,GAAA,CAAI,IAAA,EAAK;AAE7B,QAAA,IAAI,SAAS,YAAA,EAAc;AACzB,UAAA,OAAO,CAAC,MAAM,IAAI,CAAA;AAAA,QACpB;AAEA,QAAA,OAAO,IAAA;AAAA,MACT;AAAA,IACF,SAAS,EAAA,EAAI;AACX,MAAA,IAAI,SAAS,YAAA,EAAc;AACzB,QAAA,OAAO,CAAC,MAAM,EAAE,CAAA;AAAA,MAClB,CAAA,MAAO;AACL,QAAA,IAAA,CAAK,QAAQ,EAAiB,CAAA;AAAA,MAChC;AAAA,IACF;AAAA,EACF;AAAA,EAEA,MAAM,eAAA,CACJ,GAAA,EACA,IAAA,EACA,OAAA,EACoC;AACpC,IAAA,OAAO,IAAA,CAAK,KAAA,CAAM,GAAA,EAAK,IAAA,EAAM;AAAA,MAC3B,GAAG,OAAA;AAAA,MACH,YAAA,EAAc;AAAA,KACf,CAAA;AAAA,EACH;AAAA,EAEA,MAAM,IAAA,CAAK,GAAA,EAAa,IAAA,EAAoB,OAAA,EAA4C;AACtF,IAAA,IAAI;AACF,MAAA,IAAI,IAAA,CAAK,aAAA,CAAc,GAAG,CAAA,EAAG;AAC3B,QAAA,MAAM,EAAE,MAAK,GAAI,MAAM,KAAK,GAAA,CAAI,IAAA,CAAK,KAAK,IAAA,EAAM;AAAA,UAC9C,GAAG,IAAA,CAAK,YAAA;AAAA,UACR,OAAA,EAAS,IAAA,CAAK,YAAA,CAAa,OAAA,EAAS,OAAO;AAAA,SAC5C,CAAA;AAED,QAAA,IAAI,SAAS,YAAA,EAAc;AACzB,UAAA,OAAO,CAAC,MAAM,IAAI,CAAA;AAAA,QACpB;AAEA,QAAA,OAAO,IAAA;AAAA,MACT,CAAA,MAAO;AACL,QAAA,MAAM,GAAA,GAAM,MAAM,KAAA,CAAM,GAAA,EAAK;AAAA,UAC3B,MAAA,EAAQ,MAAA;AAAA,UACR,IAAA,EAAM,IAAA,GAAO,IAAA,CAAK,SAAA,CAAU,IAAI,CAAA,GAAI,IAAA;AAAA,UACpC,OAAA,EAAS,IAAI,OAAA,CAAQ,OAAA,EAAS,OAAO,CAAA;AAAA,UACrC,WAAA,EAAa,SAAS,WAAA,IAAe;AAAA,SACtC,CAAA;AAED,QAAA,IAAI,CAAC,IAAI,EAAA,EAAI;AACX,UAAA,MAAM,GAAA,GAAM,MAAM,kBAAA,CAAmB,GAAG,CAAA;AACxC,UAAA,MAAM,GAAA;AAAA,QACR;AAEA,QAAA,MAAM,IAAA,GAAQ,MAAM,GAAA,CAAI,IAAA,EAAK;AAE7B,QAAA,IAAI,SAAS,YAAA,EAAc;AACzB,UAAA,OAAO,CAAC,MAAM,IAAI,CAAA;AAAA,QACpB;AAEA,QAAA,OAAO,IAAA;AAAA,MACT;AAAA,IACF,SAAS,EAAA,EAAI;AACX,MAAA,IAAI,SAAS,YAAA,EAAc;AACzB,QAAA,OAAO,CAAC,MAAM,EAAE,CAAA;AAAA,MAClB,CAAA,MAAO;AACL,QAAA,IAAA,CAAK,QAAQ,EAAiB,CAAA;AAAA,MAChC;AAAA,IACF;AAAA,EACF;AAAA,EAEA,MAAM,cAAA,CACJ,GAAA,EACA,IAAA,EACA,OAAA,EACoC;AACpC,IAAA,OAAO,IAAA,CAAK,IAAA,CAAK,GAAA,EAAK,IAAA,EAAM;AAAA,MAC1B,GAAG,OAAA;AAAA,MACH,YAAA,EAAc;AAAA,KACf,CAAA;AAAA,EACH;AAAA,EAEA,MAAM,MAAA,CAAO,GAAA,EAAa,OAAA,EAA4C;AACpE,IAAA,IAAI;AACF,MAAA,IAAI,IAAA,CAAK,aAAA,CAAc,GAAG,CAAA,EAAG;AAC3B,QAAA,MAAM,EAAE,IAAA,EAAK,GAAI,MAAM,IAAA,CAAK,GAAA,CAAI,OAAO,GAAA,EAAK;AAAA,UAC1C,GAAG,IAAA,CAAK,YAAA;AAAA,UACR,OAAA,EAAS,IAAA,CAAK,YAAA,CAAa,OAAA,EAAS,OAAO;AAAA,SAC5C,CAAA;AAED,QAAA,IAAI,SAAS,YAAA,EAAc;AACzB,UAAA,OAAO,CAAC,MAAM,IAAI,CAAA;AAAA,QACpB;AAEA,QAAA,OAAO,IAAA;AAAA,MACT,CAAA,MAAO;AACL,QAAA,MAAM,GAAA,GAAM,MAAM,KAAA,CAAM,GAAA,EAAK;AAAA,UAC3B,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS,IAAI,OAAA,CAAQ,OAAA,EAAS,OAAO,CAAA;AAAA,UACrC,WAAA,EAAa,SAAS,WAAA,IAAe;AAAA,SACtC,CAAA;AAED,QAAA,IAAI,CAAC,IAAI,EAAA,EAAI;AACX,UAAA,MAAM,GAAA,GAAM,MAAM,kBAAA,CAAmB,GAAG,CAAA;AACxC,UAAA,MAAM,GAAA;AAAA,QACR;AAEA,QAAA,IAAI,IAAA,GAA2B,IAAA;AAE/B,QAAA,IAAI,GAAA,CAAI,WAAW,GAAA,EAAK;AACtB,UAAA,IAAA,GAAQ,MAAM,IAAI,IAAA,EAAK;AAAA,QACzB;AAEA,QAAA,IAAI,SAAS,YAAA,EAAc;AACzB,UAAA,OAAO,CAAC,MAAM,IAAI,CAAA;AAAA,QACpB;AAEA,QAAA,OAAO,IAAA;AAAA,MACT;AAAA,IACF,SAAS,EAAA,EAAI;AACX,MAAA,IAAI,SAAS,YAAA,EAAc;AACzB,QAAA,OAAO,CAAC,MAAM,EAAE,CAAA;AAAA,MAClB,CAAA,MAAO;AACL,QAAA,IAAA,CAAK,QAAQ,EAAiB,CAAA;AAAA,MAChC;AAAA,IACF;AAAA,EACF;AAAA,EAEA,MAAM,gBAAA,CACJ,GAAA,EACA,OAAA,EACoC;AACpC,IAAA,OAAO,IAAA,CAAK,OAAO,GAAA,EAAK;AAAA,MACtB,GAAG,OAAA;AAAA,MACH,YAAA,EAAc;AAAA,KACf,CAAA;AAAA,EACH;AAAA,EAEA,MAAa,sBAAsB,QAAA,EAAoC;AACrE,IAAA,OAAO,IAAA,CAAK,wBAAwB,QAAQ,CAAA;AAAA,EAC9C;AAAA,EAEA,MAAa,4BAAA,CACX,QAAA,EACA,eAAA,EACkB;AAClB,IAAA,OAAO,IAAA,CAAK,8BAAA,CAA+B,QAAA,EAAU,eAAe,CAAA;AAAA,EACtE;AAAA,EAEO,SAAA,CAAU,SAAiB,YAAA,EAAsC;AACtE,IAAA,IAAA,CAAK,QAAA,CAAS,WAAA;AAAA,MACZ,KAAK,SAAA,CAAU;AAAA,QACb,QAAQ,OAAA,CAAQ,UAAA;AAAA,QAChB,OAAA;AAAA,QACA;AAAA,OACD;AAAA,KACH;AAAA,EACF;AAAA,EAEO,WAAA,GAAoB;AACzB,IAAA,IAAA,CAAK,QAAA,CAAS,WAAA;AAAA,MACZ,KAAK,SAAA,CAAU;AAAA,QACb,QAAQ,OAAA,CAAQ;AAAA,OACjB;AAAA,KACH;AAAA,EACF;AAAA,EAEO,SAAS,MAAA,EAAsB;AACpC,IAAA,IAAA,CAAK,QAAA,CAAS,WAAA;AAAA,MACZ,KAAK,SAAA,CAAU;AAAA,QACb,QAAQ,OAAA,CAAQ,SAAA;AAAA,QAChB;AAAA,OACD;AAAA,KACH;AAAA,EACF;AAAA,EAEO,OAAO,MAAA,EAAuC;AACnD,IAAA,OAAO,IAAA,CAAK,cAAc,MAAM,CAAA;AAAA,EAClC;AAAA,EAEA,MAAa,cAAc,OAAA,EAAgD;AACzE,IAAA,MAAM,cAAA,GAAiB,eAAA;AAEvB,IAAA,IAAI,OAAA,GAAU,6BAAA;AAEd,IAAA,IAAI,QAAQ,aAAA,EAAe;AACzB,MAAA,MAAM,KAAA,GAAQ,MAAA,CAAO,IAAA,CAAK,OAAA,CAAQ,aAAa,CAAA;AAC/C,MAAA,OAAA,IAAW,KAAA,CACR,GAAA,CAAI,CAAC,CAAA,KAAM;AACV,QAAA,MAAM,IAAA,GAAO,OAAA,CAAQ,aAAA,GAAgB,CAAC,CAAA;AAEtC,QAAA,IAAI,OAAO,SAAS,UAAA,EAAY;AAC9B,UAAA,MAAM,IAAI,KAAA,CAAM,CAAA,gBAAA,EAAmB,CAAC,CAAA,wBAAA,EAA2B,OAAO,IAAI,CAAA,CAAE,CAAA;AAAA,QAC9E;AAEA,QAAA,OAAO,CAAA,eAAA,EAAkB,CAAC,CAAA,MAAA,EAAS,IAAA,CAAK,UAAU,CAAA,EAAA,CAAA;AAAA,MACpD,CAAC,CAAA,CACA,IAAA,CAAK,IAAI,CAAA;AAAA,IACd;AAEA,IAAA,MAAM,mBAAA,GAAsB,OAAA,CAAQ,OAAA,EAAS,GAAA,CAAI,CAAC,CAAA,KAAM;AACtD,MAAA,IAAI,YAAA,GAAe,EAAA;AACnB,MAAA,IAAI,kBAAkB,CAAA,EAAG;AACvB,QAAA,YAAA,GAAe,6BAAA;AAAA,UACb,CAAA,CAAE,YAAA;AAAA,UACF,cAAA;AAAA,UACA,CAAA,CAAE,IAAA;AAAA,UACF;AAAA,SACF;AAAA,MACF;AAEA,MAAA,IAAI,WAAA,GAAc,EAAA;AAClB,MAAA,IAAI,iBAAiB,CAAA,EAAG;AACtB,QAAA,WAAA,GAAc,8BAA8B,CAAA,CAAE,WAAA,EAAa,cAAA,EAAgB,CAAA,CAAE,MAAM,OAAO,CAAA;AAAA,MAC5F;AAEA,MAAA,IAAI,UAAA,GAAa,EAAA;AACjB,MAAA,IAAI,gBAAgB,CAAA,EAAG;AACrB,QAAA,UAAA,GAAa,8BAA8B,CAAA,CAAE,UAAA,EAAY,cAAA,EAAgB,CAAA,CAAE,MAAM,OAAO,CAAA;AAAA,MAC1F;AAEA,MAAA,IAAI,OAAA,GAAU,EAAA;AACd,MAAA,IAAI,aAAa,CAAA,EAAG;AAClB,QAAA,OAAA,GAAU,8BAA8B,CAAA,CAAE,OAAA,EAAS,cAAA,EAAgB,CAAA,CAAE,MAAM,OAAO,CAAA;AAAA,MACpF;AAEA,MAAA,OAAO;AAAA,QACL,GAAG,CAAA;AAAA,QACH,YAAA;AAAA,QACA,WAAA;AAAA,QACA,UAAA;AAAA,QACA;AAAA,OACF;AAAA,IACF,CAAC,CAAA;AAED,IAAA,MAAM,MAAA,GAAS;AAAA,MACb,GAAG,OAAA;AAAA,MACH,OAAA,EAAS;AAAA,KACX;AAEA,IAAA,MAAM,oBAAA,GAAuB;AAAA,MAC3B,QAAQ,MAAA,CAAO;AAAA,KACjB;AAEA,IAAA,MAAM,MAAA,GAAS,MAAM,IAAA,CAAK,oBAAA,CAAqB,MAAM,CAAA;AAErD,IAAA,MAAM,gBAAA,GAAmB,WAAA,CAAY,oBAAA,EAAsB,MAAA,CAAO,MAAM,CAAA;AAExE,IAAA,OAAO;AAAA,MACL,GAAG,MAAA;AAAA,MACH,MAAA,EAAQ;AAAA,KACV;AAAA,EACF;AAAA,EAEO,YAAA,CAAa,GAAA,EAAa,KAAA,EAAkB,OAAA,EAAwB;AACzE,IAAA,IAAA,CAAK,QAAA,CAAS,WAAA;AAAA,MACZ,KAAK,SAAA,CAAU;AAAA,QACb,QAAQ,OAAA,CAAQ,aAAA;AAAA,QAChB,GAAA;AAAA,QACA,KAAA;AAAA,QACA,OAAA;AAAA,QACA,UAAU,IAAA,CAAK;AAAA,OAChB;AAAA,KACH;AAAA,EACF;AAAA,EAEQ,qBAAqB,IAAA,EAA6B;AACxD,IAAA,OAAO,IAAI,OAAA,CAAgB,CAAC,OAAA,EAAS,MAAA,KAAW;AAC9C,MAAA,MAAM,MAAA,GAAS,IAAI,UAAA,EAAW;AAE9B,MAAA,MAAA,CAAO,cAAc,IAAI,CAAA;AAEzB,MAAA,MAAA,CAAO,SAAS,MAAM;AACpB,QAAA,OAAA,CAAQ,OAAO,MAAgB,CAAA;AAAA,MACjC,CAAA;AAEA,MAAA,MAAA,CAAO,OAAA,GAAU,CAAC,KAAA,KAAU;AAE1B,QAAA,MAAA,CAAO,KAAK,CAAA;AAAA,MACd,CAAA;AAAA,IACF,CAAC,CAAA;AAAA,EACH;AAAA,EAEA,MAAa,UAAA,CAAW,IAAA,EAAY,QAAA,EAAmB,WAAW,KAAA,EAAyB;AACzF,IAAA,MAAM,OAAA,GAAU,MAAM,IAAA,CAAK,oBAAA,CAAqB,IAAI,CAAA;AACpD,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,iBAAA,CAAkB;AAAA,MACvC,IAAA,EAAM,OAAA;AAAA,MACN,UAAU,QAAA,IAAY,OAAA,GAAU,MAAA,CAAO,IAAA,CAAK,KAAK,CAAA;AAAA,MACjD;AAAA,KACD,CAAA;AAED,IAAA,OAAO,GAAA;AAAA,EACT;AAAA,EAEU,UAAA,GAAmB;AAAA,EAE7B;AAAA,EAEU,OAAA,GAAgB;AACxB,IAAA,IAAI,IAAA,CAAK,oBAAoB,CAAA,EAAG;AAC9B,MAAA,MAAM,IAAI,KAAA;AAAA,QACR;AAAA,OACF;AAAA,IACF;AAEA,IAAA,IAAI,IAAA,CAAK,sBAAsB,CAAA,EAAG;AAChC,MAAA,MAAM,IAAI,MAAM,gCAAgC,CAAA;AAAA,IAClD;AAEA,IAAA,IAAI,KAAK,OAAA,EAAS;AAChB,MAAA,IAAA,CAAK,QAAQ,GAAA,CAAI,CAAA;;AAAA,EAAsB,IAAA,CAAK,UAAU,CAAA,CAAE,CAAA;AAAA,IAC1D;AAEA,IAAA,IAAA,CAAK,eAAA,EAAA;AACL,IAAA,IAAA,CAAK,cAAA,GAAiB,YAAY,GAAA,EAAI;AAEtC,IAAA,IAAA,CAAK,UAAA,EAAW;AAAA,EAClB;AAAA,EAEU,UAAU,MAAA,EAAwB;AAC1C,IAAA,IAAI,IAAA,CAAK,sBAAsB,CAAA,EAAG;AAChC,MAAA,MAAM,IAAI,KAAA;AAAA,QACR;AAAA,OACF;AAAA,IACF;AAEA,IAAA,IAAI,IAAA,CAAK,oBAAoB,CAAA,EAAG;AAC9B,MAAA,MAAM,IAAI,MAAM,iCAAiC,CAAA;AAAA,IACnD;AAEA,IAAA,IAAA,CAAK,iBAAA,EAAA;AACL,IAAA,IAAA,CAAK,YAAA,CAAA,MAAA,YAAgC;AACrC,IAAA,MAAM,GAAA,GAAM,YAAY,GAAA,EAAI;AAC5B,IAAA,IAAI,KAAK,OAAA,EAAS;AAChB,MAAA,IAAA,CAAK,OAAA,CAAQ,IAAI,CAAA,sBAAA,EAAyB,MAAA,CAAO,MAAM,IAAA,CAAK,cAAc,CAAC,CAAA,EAAA,CAAI,CAAA;AAAA,IACjF;AAEA,IAAA,IAAA,CAAK,IAAA,CAAK,IAAA,CAAK,QAAA,EAAU,MAAM,CAAA;AAAA,EACjC;AAAA,EAEA,aAAa,SAAA,GAAA,MAAA,aAAwE;AACnF,IAAA,IAAA,CAAK,cAAc,SAAA,GAAY,SAAA;AAE/B,IAAA,IAAA,CAAK,QAAA,CAAS,EAAE,SAAA,EAAW,CAAA;AAAA,EAC7B;AAAA,EAEA,KAAK,EAAA,EAA2B;AAC9B,IAAA,OAAO,IAAI,OAAA,CAAQ,CAAC,YAAY,UAAA,CAAW,OAAA,EAAS,EAAE,CAAC,CAAA;AAAA,EACzD;AAAA,EAEQ,IAAA,CAAK,UAAmB,MAAA,EAAwB;AACtD,IAAA,IAAA,CAAK,QAAA,CAAS,WAAA;AAAA,MACZ,KAAK,SAAA,CAAU;AAAA,QACb,QAAQ,OAAA,CAAQ,IAAA;AAAA,QAChB,MAAA;AAAA,QACA;AAAA,OACD;AAAA,KACH;AAAA,EACF;AAAA,EAEQ,SAAS,KAAA,EAAsB;AACrC,IAAA,IAAA,CAAK,QAAA,CAAS,WAAA;AAAA,MACZ,KAAK,SAAA,CAAU;AAAA,QACb,QAAQ,OAAA,CAAQ,QAAA;AAAA,QAChB;AAAA,OACD;AAAA,KACH;AAAA,EACF;AAAA,EAEU,cAAc,GAAA,EAAsB;AAC5C,IAAA,OAAO,GAAA,CAAI,WAAW,GAAG,CAAA;AAAA,EAC3B;AAAA,EAEQ,YAAA,CAAa,OAAA,GAAkC,EAAC,EAA2B;AACjF,IAAA,OAAO;AAAA,MACL,GAAG,OAAA;AAAA,MACH,gBAAA,EAAkB;AAAA,KACpB;AAAA,EACF;AAAA,EAEO,qBAAqB,EAAA,EAAmB;AAC7C,IAAA,IAAI,EAAA,EAAI;AACN,MAAA,IAAA,CAAK,QAAA,CAAS,WAAA;AAAA,QACZ,KAAK,SAAA,CAAU;AAAA,UACb,QAAQ,OAAA,CAAQ,gBAAA;AAAA,UAChB,QAAA,EAAU;AAAA,SACX;AAAA,OACH;AAAA,IACF;AAAA,EACF;AAAA,EAEO,mBAAmB,EAAA,EAAsB;AAC9C,IAAA,IAAI,EAAA,EAAI;AACN,MAAA,OAAO,IAAA,CAAK,qBAAqB,EAAE,CAAA;AAAA,IACrC;AAAA,EACF;AAAA,EAEA,MAAa,wBAAwB,SAAA,EAA0D;AAC7F,IAAA,IAAI;AACF,MAAA,MAAM,SAAS,MAAM,IAAA,CAAK,8BAAA,CAA+B,SAAA,EAAW,KAAK,IAAI,CAAA;AAC7E,MAAA,MAAM,UAAU,IAAI,gBAAA,CAAiB,IAAA,CAAK,QAAA,EAAU,OAAO,GAAG,CAAA;AAE9D,MAAA,OAAO,OAAA;AAAA,IACT,CAAA,CAAA,MAAQ;AACN,MAAA,IAAA,CAAK,QAAQ,IAAI,KAAA,CAAM,CAAA,mBAAA,EAAsB,SAAS,0BAA0B,CAAC,CAAA;AAAA,IACnF;AAAA,EACF;AAAA,EAEO,qBAAA,GAA8B;AACnC,IAAA,IAAA,CAAK,QAAA,CAAS,WAAA;AAAA,MACZ,KAAK,SAAA,CAAU;AAAA,QACb,QAAQ,OAAA,CAAQ;AAAA,OACjB;AAAA,KACH;AAAA,EACF;AAAA,EAEO,gBAAgB,IAAA,EAAoB;AACzC,IAAA,IAAA,CAAK,QAAA,CAAS,WAAA;AAAA,MACZ,KAAK,SAAA,CAAU;AAAA,QACb,QAAQ,OAAA,CAAQ,iBAAA;AAAA,QAChB;AAAA,OACD;AAAA,KACH;AAAA,EACF;AAAA,EAEO,iBAAiB,UAAA,EAA0B;AAChD,IAAA,IAAI,OAAO,eAAe,QAAA,EAAU;AAClC,MAAA,MAAM,IAAI,KAAA,CAAM,CAAA,oBAAA,EAAuB,MAAA,CAAO,UAAU,CAAC,CAAA,CAAE,CAAA;AAAA,IAC7D;AAEA,IAAA,IAAI,CAAC,qBAAA,CAAsB,IAAA,CAAK,UAAU,CAAA,EAAG;AAC3C,MAAA,MAAM,IAAI,KAAA,CAAM,CAAA,YAAA,EAAe,UAAU,CAAA,gCAAA,CAAkC,CAAA;AAAA,IAC7E;AAEA,IAAA,MAAM,KAAA,GAAQ,UAAA,CAAW,KAAA,CAAM,GAAG,CAAA,CAAE,GAAA,CAAI,CAAC,IAAA,KAAS,QAAA,CAAS,IAAA,EAAM,EAAE,CAAC,CAAA;AAEpE,IAAA,IAAI,KAAA,CAAM,SAAS,CAAA,EAAG;AACpB,MAAA,MAAM,IAAI,KAAA,CAAM,CAAA,YAAA,EAAe,UAAU,CAAA,0CAAA,CAA4C,CAAA;AAAA,IACvF;AAGA,IAAA,MAAM,OAAA,GAAU,IAAI,IAAA,CAAK,KAAA,CAAM,CAAC,CAAA,EAAI,KAAA,CAAM,CAAC,CAAA,GAAK,CAAA,EAAG,KAAA,CAAM,CAAC,CAAC,CAAA;AAE3D,IAAA,OAAO,OAAA;AAAA,EACT;AAAA,EAEO,sBAAsB,IAAA,EAAoB;AAC/C,IAAA,OAAO,KAAK,OAAA,EAAQ;AAAA,EACtB;AACF","file":"chunk-MRN746YD.js","sourcesContent":["/* eslint-disable @typescript-eslint/only-throw-error */\nimport { Communicate } from '../communication/Communicate.js';\nimport { ACTIONS, INDICATOR_TYPE, RESPONSES } from '../communication/constants.js';\nimport { ThirdPartyScript } from '../communication/ThirdPartyScript.js';\nimport type {\n CurrentUser,\n PartialBusiness,\n PartialClientObject,\n PartialLocation,\n PartialTeamMember,\n PartialUser,\n UnknownJSON,\n} from '../types/common.js';\nimport type {\n Args,\n BaseAPI,\n DataCache,\n ErrorResponse,\n InstallThirdPartyScriptFn,\n Instance,\n InternalSessionData,\n OpenCreateRecordFn,\n OpenCreateRelatedRecordFn,\n PostFormDataFn,\n PromptFn,\n RefreshEntityFn,\n ShowToastOptions,\n StateChangePayload,\n UploadFileFn,\n UserConfig,\n WorkerContextArgs,\n} from '../types/contexts.js';\nimport type {\n DynamicPromptConfig,\n DynamicPromptFn,\n ModalConfig,\n PromptState,\n UnknownFunction,\n} from '../types/modals.js';\nimport type {\n GetOptions,\n GetReturnValue,\n RequestOptions,\n RequestWithErrorsResponse,\n} from '../types/request.js';\nimport { cleanConfig } from '../workers/util.js';\n\nconst buildErrorResponse = async (result: Response): Promise<ErrorResponse> => {\n let errorJSON: unknown = null;\n\n try {\n errorJSON = await result.json();\n } catch {\n // If the response is not JSON, we just return the text\n }\n\n const error = {\n status: result.status,\n statusText: result.statusText,\n body: errorJSON,\n };\n\n return error;\n};\n\nconst convertToSelfInvokingFunction = (\n fn: UnknownFunction,\n variable: string,\n args: UnknownJSON = {},\n prepend = '',\n): string => {\n const functionString = fn.toString();\n // Create a self-invoking function that takes in the replacement variable, and additional args as the arguments\n const innner = `(${functionString})({ state: {{${variable}}}, args: ${JSON.stringify(args)}, utils: __kizen_utils })`;\n\n // Wrap the function in a closure that includes any prepended code (like registered utils) and returns the result of the function\n const full = `(function() { ${prepend}\\nreturn ${innner}; })()`;\n\n return full;\n};\n\n/*\n * This is the primary class that exposes the public methods available\n * to our custom scripts. It should only be used in the context of a worker\n * script.\n */\nexport class BaseWorkerContext {\n protected user?: PartialUser;\n protected teamMember?: PartialTeamMember;\n protected business?: PartialBusiness;\n protected clientObject?: PartialClientObject | undefined;\n protected appPath?: string;\n protected dataCache: DataCache<unknown> = new Map();\n protected queryOptions = {};\n private api: BaseAPI;\n public postFormData: PostFormDataFn;\n private executionTimer = 0;\n private setupExecutions = 0;\n private cleanupExecutions = 0;\n protected isDebug = false;\n protected scriptBody: string;\n protected internalState: StateChangePayload = { indicator: INDICATOR_TYPE.NONE };\n public console = console;\n protected instance: Instance;\n private breakOnException = false;\n public args: Args;\n public communicate: Communicate;\n private shouldPreserve = false;\n private uploadFileHandler: UploadFileFn;\n private internalSessionData: InternalSessionData;\n private pluginComponentId: string | undefined;\n private installThirdPartyScriptHandler: InstallThirdPartyScriptFn;\n private promptHandler: PromptFn;\n private dynamicPromptHandler: DynamicPromptFn;\n private refreshEntityHandler: RefreshEntityFn;\n private openCreateRecordHandler: OpenCreateRecordFn;\n private openCreateRelatedRecordHandler: OpenCreateRelatedRecordFn;\n protected runnerType: 'base' | 'floatingFrame' | 'recordDetail';\n public pluginApiName: string;\n public tempPromptState: PromptState = {};\n private partialLocation: PartialLocation;\n\n constructor({\n user,\n teamMember,\n business,\n clientObject,\n appPath,\n isDebug,\n kizenRequest,\n postFormData,\n scriptBody,\n instance,\n args,\n uploadFile,\n sessionData,\n pluginComponentId,\n installThirdPartyScript,\n prompt,\n refreshEntity,\n openCreateRecord,\n openCreateRelatedRecord,\n pluginApiName,\n dynamicPrompt,\n location,\n }: WorkerContextArgs) {\n this.user = user;\n this.teamMember = teamMember;\n this.business = business;\n this.clientObject = clientObject;\n this.partialLocation = location;\n this.appPath = appPath;\n this.isDebug = isDebug ?? false;\n this.api = {\n get: kizenRequest('get'),\n post: kizenRequest('post'),\n put: kizenRequest('put'),\n delete: kizenRequest('delete'),\n patch: kizenRequest('patch'),\n };\n\n this.postFormData = postFormData;\n this.scriptBody = scriptBody;\n this.instance = instance;\n this.communicate = new Communicate(instance);\n this.uploadFileHandler = uploadFile;\n this.internalSessionData = sessionData ?? {};\n this.pluginComponentId = pluginComponentId;\n this.installThirdPartyScriptHandler = installThirdPartyScript;\n this.promptHandler = prompt;\n this.refreshEntityHandler = refreshEntity;\n this.openCreateRecordHandler = openCreateRecord;\n this.openCreateRelatedRecordHandler = openCreateRelatedRecord;\n this.runnerType = 'base';\n this.pluginApiName = pluginApiName;\n this.dynamicPromptHandler = dynamicPrompt;\n\n try {\n this.args = JSON.parse(args ?? '{}') as Args;\n } catch {\n this.args = {} as Args;\n }\n }\n\n public onError(error?: UnknownJSON | Error): void {\n if (this.breakOnException) {\n debugger;\n }\n\n this.instance.postMessage(\n JSON.stringify({\n action: RESPONSES.ERROR,\n error: error?.message,\n }),\n );\n }\n\n set debug(value: boolean) {\n this.isDebug = value;\n this.breakOnException = value;\n }\n\n set preserve(value: boolean) {\n this.shouldPreserve = value;\n }\n\n get preserve(): boolean {\n return this.shouldPreserve;\n }\n\n parseDate(date: string): string[] {\n return date.split('-');\n }\n\n parsePhone(phone: string): string {\n return phone.replace(/\\+/g, '');\n }\n\n openWindow(url: string, target = '_blank'): void {\n this.instance.postMessage(\n JSON.stringify({\n action: ACTIONS.OPEN_WINDOW,\n url,\n target,\n features: 'noopener noreferrer',\n }),\n );\n }\n\n authorize(\n serviceName?: string,\n config: { successRedirectPath?: string; errorRedirectPath?: string } = {},\n ): void {\n if (!serviceName) {\n throw new Error('Service name is required to authorize');\n }\n\n this.instance.postMessage(\n JSON.stringify({\n action: ACTIONS.AUTHORIZE,\n serviceName,\n config: {\n successRedirectPath:\n config.successRedirectPath ?? `/marketplace/${this.pluginApiName}/auth`,\n errorRedirectPath: config.errorRedirectPath ?? `/marketplace/${this.pluginApiName}/auth`,\n },\n }),\n );\n }\n\n getServiceUrl(serviceName: string, path: string): string {\n if (!serviceName) {\n throw new Error('Service name is required to get a service url');\n }\n\n const base = `/external-integrations/proxy/${this.pluginApiName}/${serviceName}`;\n\n if (path.startsWith('/')) {\n return `${base}${path}`;\n }\n\n return `${base}/${path}`;\n }\n\n get currentBusiness(): PartialBusiness | undefined {\n return this.business;\n }\n\n get applicationPath(): string | undefined {\n return this.appPath;\n }\n\n get currentUser(): CurrentUser {\n return {\n profile: {\n id: this.teamMember?.id ?? '',\n full_name: this.teamMember?.full_name ?? '',\n first_name: this.teamMember?.first_name ?? '',\n last_name: this.teamMember?.last_name ?? '',\n email: this.teamMember?.email ?? '',\n phone: this.teamMember?.phone ?? '',\n created: this.teamMember?.created ?? '',\n crm_client_id: this.user?.crm_client_id ?? '',\n },\n };\n }\n\n get sessionData(): InternalSessionData {\n return this.internalSessionData;\n }\n\n get config(): unknown {\n const hasCustomConfig = Boolean(this.args.__kizen_clean_config);\n\n if (!hasCustomConfig) {\n return {};\n }\n\n const manager = new Proxy(this.args.__kizen_clean_config ?? {}, {\n get: (target, name) => {\n if (Reflect.has(target, name)) {\n return Reflect.get(target, name) as unknown;\n }\n\n return undefined;\n },\n });\n\n return manager;\n }\n\n get location(): PartialLocation {\n return new Proxy(this.partialLocation, {\n get: (target, name) => {\n if (name === 'toJSON') {\n return () => {\n return this.partialLocation;\n };\n }\n\n if (Reflect.has(target, name)) {\n return Reflect.get(target, name) as string;\n }\n\n throw new Error(\n `Property ${String(name)} is not available on location object for plugin apps`,\n );\n },\n });\n }\n\n get userConfig(): unknown {\n const customConfig = this.args.__kizen_user_config?.__kizen_clean_config;\n\n if (!customConfig) {\n return {};\n }\n\n const manager = new Proxy(customConfig, {\n get: (target, name) => {\n if (Reflect.has(target, name)) {\n return Reflect.get(target, name) as unknown;\n }\n\n return undefined;\n },\n });\n\n return manager;\n }\n\n setSessionData(update: UnknownJSON): void {\n if (typeof update !== 'object') {\n throw new Error(`Invalid session update with type ${typeof update}`);\n }\n\n if (Array.isArray(update)) {\n throw new Error(`Invalid session update with type array`);\n }\n\n this.internalSessionData = {\n ...this.internalSessionData,\n ...update,\n };\n\n this.instance.postMessage(\n JSON.stringify({\n action: ACTIONS.UPDATE_SESSION_DATA,\n update,\n }),\n );\n }\n\n async get(url: string, options?: GetOptions): Promise<unknown> {\n try {\n if (this.isRelativeUrl(url)) {\n const cachedResult = this.dataCache.get(url) as GetReturnValue | undefined;\n\n if (cachedResult && !options?.ignoreCache) {\n if (options?.returnErrors) {\n return [cachedResult.data, null];\n }\n\n return cachedResult.data;\n }\n\n const { data } = await this.api.get(url, {\n ...this.queryOptions,\n headers: this.buildHeaders(options?.headers),\n });\n\n this.dataCache.set(url, { ts: Date.now(), data });\n\n if (options?.returnErrors) {\n return [data, null];\n }\n\n return data;\n } else {\n const res = await fetch(url, {\n method: 'GET',\n headers: new Headers(options?.headers),\n credentials: options?.credentials ?? 'same-origin',\n });\n\n if (!res.ok) {\n const err = await buildErrorResponse(res);\n\n throw err;\n }\n\n const json = (await res.json()) as UnknownJSON;\n\n if (options?.returnErrors) {\n return [json, null];\n }\n\n return json;\n }\n } catch (ex) {\n if (options?.returnErrors) {\n return [null, ex];\n } else {\n this.onError(ex as UnknownJSON);\n }\n }\n }\n\n async getWithErrors(\n url: string,\n options?: Omit<GetOptions, 'returnErrors'>,\n ): Promise<RequestWithErrorsResponse> {\n return this.get(url, {\n ...options,\n returnErrors: true,\n }) as Promise<RequestWithErrorsResponse>;\n }\n\n async getUserConfig(): Promise<UnknownJSON> {\n if (!this.args.pluginId || !this.pluginComponentId) {\n throw new Error(\n 'User config is not available for scripts not associated to a plugin or plugin component',\n );\n }\n\n const configResult = (await this.get(`/employee/mine/configs/plugins/${this.args.pluginId}`, {\n ignoreCache: true,\n })) as UserConfig;\n\n return configResult.config?.[this.pluginComponentId] ?? {};\n }\n\n async setUserConfig(config: UnknownJSON): Promise<unknown> {\n if (!this.args.pluginId || !this.pluginComponentId) {\n throw new Error(\n 'User config is not available for scripts not associated to a plugin or plugin component',\n );\n }\n\n const oldConfig = (await this.get(`/employee/mine/configs/plugins/${this.args.pluginId}`, {\n ignoreCache: true,\n })) as UserConfig | undefined;\n\n const mutationResult = await this.post(`/employee/mine/configs/plugins/${this.args.pluginId}`, {\n config: {\n ...oldConfig?.config,\n [this.pluginComponentId]: {\n ...oldConfig?.config?.[this.pluginComponentId],\n ...config,\n },\n },\n });\n\n return mutationResult;\n }\n\n async patch(url: string, body?: UnknownJSON, options?: RequestOptions): Promise<unknown> {\n try {\n if (this.isRelativeUrl(url)) {\n const { data } = await this.api.patch(url, body, {\n ...this.queryOptions,\n headers: options?.headers,\n });\n\n if (options?.returnErrors) {\n return [data, null];\n }\n\n return data;\n } else {\n const res = await fetch(url, {\n method: 'PATCH',\n body: body ? JSON.stringify(body) : null,\n headers: new Headers(options?.headers),\n credentials: options?.credentials ?? 'same-origin',\n });\n\n if (!res.ok) {\n const err = await buildErrorResponse(res);\n throw err;\n }\n\n const json = (await res.json()) as UnknownJSON;\n\n if (options?.returnErrors) {\n return [json, null];\n }\n\n return json;\n }\n } catch (ex) {\n if (options?.returnErrors) {\n return [null, ex];\n } else {\n this.onError(ex as UnknownJSON);\n }\n }\n }\n\n async patchWithErrors(\n url: string,\n body: UnknownJSON,\n options?: Omit<RequestOptions, 'returnErrors'>,\n ): Promise<RequestWithErrorsResponse> {\n return this.patch(url, body, {\n ...options,\n returnErrors: true,\n }) as Promise<RequestWithErrorsResponse>;\n }\n\n async post(url: string, body?: UnknownJSON, options?: RequestOptions): Promise<unknown> {\n try {\n if (this.isRelativeUrl(url)) {\n const { data } = await this.api.post(url, body, {\n ...this.queryOptions,\n headers: this.buildHeaders(options?.headers),\n });\n\n if (options?.returnErrors) {\n return [data, null];\n }\n\n return data;\n } else {\n const res = await fetch(url, {\n method: 'POST',\n body: body ? JSON.stringify(body) : null,\n headers: new Headers(options?.headers),\n credentials: options?.credentials ?? 'same-origin',\n });\n\n if (!res.ok) {\n const err = await buildErrorResponse(res);\n throw err;\n }\n\n const json = (await res.json()) as UnknownJSON;\n\n if (options?.returnErrors) {\n return [json, null];\n }\n\n return json;\n }\n } catch (ex) {\n if (options?.returnErrors) {\n return [null, ex];\n } else {\n this.onError(ex as UnknownJSON);\n }\n }\n }\n\n async postWithErrors(\n url: string,\n body: UnknownJSON,\n options?: Omit<RequestOptions, 'returnErrors'>,\n ): Promise<RequestWithErrorsResponse> {\n return this.post(url, body, {\n ...options,\n returnErrors: true,\n }) as Promise<RequestWithErrorsResponse>;\n }\n\n async delete(url: string, options?: RequestOptions): Promise<unknown> {\n try {\n if (this.isRelativeUrl(url)) {\n const { data } = await this.api.delete(url, {\n ...this.queryOptions,\n headers: this.buildHeaders(options?.headers),\n });\n\n if (options?.returnErrors) {\n return [data, null];\n }\n\n return data;\n } else {\n const res = await fetch(url, {\n method: 'DELETE',\n headers: new Headers(options?.headers),\n credentials: options?.credentials ?? 'same-origin',\n });\n\n if (!res.ok) {\n const err = await buildErrorResponse(res);\n throw err;\n }\n\n let json: UnknownJSON | null = null;\n\n if (res.status !== 204) {\n json = (await res.json()) as UnknownJSON;\n }\n\n if (options?.returnErrors) {\n return [json, null];\n }\n\n return json;\n }\n } catch (ex) {\n if (options?.returnErrors) {\n return [null, ex];\n } else {\n this.onError(ex as UnknownJSON);\n }\n }\n }\n\n async deleteWithErrors(\n url: string,\n options?: Omit<RequestOptions, 'returnErrors'>,\n ): Promise<RequestWithErrorsResponse> {\n return this.delete(url, {\n ...options,\n returnErrors: true,\n }) as Promise<RequestWithErrorsResponse>;\n }\n\n public async openCreateRecordModal(objectId: string): Promise<unknown> {\n return this.openCreateRecordHandler(objectId);\n }\n\n public async openCreateRelatedRecordModal(\n objectId: string,\n relatedEntityId: string,\n ): Promise<unknown> {\n return this.openCreateRelatedRecordHandler(objectId, relatedEntityId);\n }\n\n public showToast(message: string, toastOptions: ShowToastOptions): void {\n this.instance.postMessage(\n JSON.stringify({\n action: ACTIONS.SHOW_TOAST,\n message,\n toastOptions,\n }),\n );\n }\n\n public clearToasts(): void {\n this.instance.postMessage(\n JSON.stringify({\n action: ACTIONS.CLEAR_TOASTS,\n }),\n );\n }\n\n public outputUI(markup: string): void {\n this.instance.postMessage(\n JSON.stringify({\n action: ACTIONS.UI_OUTPUT,\n markup,\n }),\n );\n }\n\n public prompt(config: ModalConfig): Promise<unknown> {\n return this.promptHandler(config);\n }\n\n public async dynamicPrompt(_config: DynamicPromptConfig): Promise<unknown> {\n const replacementVar = '__kizen_state';\n\n let prepend = 'const __kizen_utils = {};\\n';\n\n if (_config.registerUtils) {\n const utils = Object.keys(_config.registerUtils);\n prepend += utils\n .map((u) => {\n const body = _config.registerUtils?.[u];\n\n if (typeof body !== 'function') {\n throw new Error(`Registered util ${u} is not a function, got ${typeof body}`);\n }\n\n return `__kizen_utils[\"${u}\"] = (${body.toString()});`;\n })\n .join('\\n');\n }\n\n const configContentResult = _config.content?.map((f) => {\n let optionMapper = '';\n if ('optionMapper' in f) {\n optionMapper = convertToSelfInvokingFunction(\n f.optionMapper,\n replacementVar,\n f.args,\n prepend,\n );\n }\n\n let getFetchUrl = '';\n if ('getFetchUrl' in f) {\n getFetchUrl = convertToSelfInvokingFunction(f.getFetchUrl, replacementVar, f.args, prepend);\n }\n\n let getHeaders = '';\n if ('getHeaders' in f) {\n getHeaders = convertToSelfInvokingFunction(f.getHeaders, replacementVar, f.args, prepend);\n }\n\n let getBody = '';\n if ('getBody' in f) {\n getBody = convertToSelfInvokingFunction(f.getBody, replacementVar, f.args, prepend);\n }\n\n return {\n ...f,\n optionMapper,\n getFetchUrl,\n getHeaders,\n getBody,\n };\n });\n\n const config = {\n ..._config,\n content: configContentResult,\n } as DynamicPromptConfig;\n\n const setupAssistantConfig = {\n fields: config.content,\n };\n\n const result = await this.dynamicPromptHandler(config);\n\n const cleanConfigValue = cleanConfig(setupAssistantConfig, result.values);\n\n return {\n ...result,\n values: cleanConfigValue,\n };\n }\n\n public outputIframe(url: string, allow?: string[], sandbox?: string): void {\n this.instance.postMessage(\n JSON.stringify({\n action: ACTIONS.IFRAME_OUTPUT,\n url,\n allow,\n sandbox,\n preserve: this.preserve,\n }),\n );\n }\n\n private getBase64EncodedBlob(data: Blob): Promise<string> {\n return new Promise<string>((resolve, reject) => {\n const reader = new FileReader();\n\n reader.readAsDataURL(data);\n\n reader.onload = () => {\n resolve(reader.result as string);\n };\n\n reader.onerror = (error) => {\n // eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors\n reject(error);\n };\n });\n }\n\n public async uploadFile(data: Blob, fileName?: string, isPublic = false): Promise<unknown> {\n const encoded = await this.getBase64EncodedBlob(data);\n const res = await this.uploadFileHandler({\n file: encoded,\n fileName: fileName ?? 'file_' + String(Date.now()),\n isPublic,\n });\n\n return res;\n }\n\n protected afterSetup(): void {\n /* empty */\n }\n\n protected __setup(): void {\n if (this.setupExecutions !== 0) {\n throw new Error(\n 'Setup must be called exactly once, and should never be called by a script directly.',\n );\n }\n\n if (this.cleanupExecutions !== 0) {\n throw new Error('Setup was called after cleanup');\n }\n\n if (this.isDebug) {\n this.console.log(`Running script:\\n\\n${this.scriptBody}`);\n }\n\n this.setupExecutions++;\n this.executionTimer = performance.now();\n\n this.afterSetup();\n }\n\n protected __cleanup(result?: unknown): void {\n if (this.cleanupExecutions !== 0) {\n throw new Error(\n 'Cleanup must be called exactly once, and should never be called by a script directly.',\n );\n }\n\n if (this.setupExecutions !== 1) {\n throw new Error('Cleanup was called before setup');\n }\n\n this.cleanupExecutions++;\n this.setIndicator(INDICATOR_TYPE.NONE);\n const end = performance.now();\n if (this.isDebug) {\n this.console.log(`Script execution took ${String(end - this.executionTimer)}ms`);\n }\n\n this.done(this.preserve, result);\n }\n\n setIndicator(indicator: StateChangePayload['indicator'] = INDICATOR_TYPE.NONE): void {\n this.internalState.indicator = indicator;\n\n this.setState({ indicator });\n }\n\n wait(ms: number): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, ms));\n }\n\n private done(preserve: boolean, result?: unknown): void {\n this.instance.postMessage(\n JSON.stringify({\n action: ACTIONS.DONE,\n result,\n preserve,\n }),\n );\n }\n\n private setState(state: unknown): void {\n this.instance.postMessage(\n JSON.stringify({\n action: ACTIONS.SETSTATE,\n state,\n }),\n );\n }\n\n protected isRelativeUrl(url: string): boolean {\n return url.startsWith('/');\n }\n\n private buildHeaders(headers: Record<string, string> = {}): Record<string, string> {\n return {\n ...headers,\n 'X-Request-Type': 'kizen-ui-scripting-api',\n };\n }\n\n public refreshTimelineForId(id?: string): void {\n if (id) {\n this.instance.postMessage(\n JSON.stringify({\n action: ACTIONS.REFRESH_TIMELINE,\n entityId: id,\n }),\n );\n }\n }\n\n public refreshEntityForId(id?: string): unknown {\n if (id) {\n return this.refreshEntityHandler(id);\n }\n }\n\n public async installThirdPartyScript(scriptUrl: string): Promise<ThirdPartyScript | undefined> {\n try {\n const result = await this.installThirdPartyScriptHandler(scriptUrl, this.args);\n const manager = new ThirdPartyScript(this.instance, result.url);\n\n return manager;\n } catch {\n this.onError(new Error(`Third party script ${scriptUrl} could not be installed.`));\n }\n }\n\n public releaseBlockingScript(): void {\n this.instance.postMessage(\n JSON.stringify({\n action: ACTIONS.RELEASE_BLOCKING_SCRIPT,\n }),\n );\n }\n\n public copyToClipboard(text: string): void {\n this.instance.postMessage(\n JSON.stringify({\n action: ACTIONS.COPY_TO_CLIPBOARD,\n text,\n }),\n );\n }\n\n public createDateObject(dateString: string): Date {\n if (typeof dateString !== 'string') {\n throw new Error(`Invalid date string ${String(dateString)}`);\n }\n\n if (!/^\\d{4}-\\d{2}-\\d{2}$/.test(dateString)) {\n throw new Error(`Date string ${dateString} is not in the format YYYY-MM-DD`);\n }\n\n const parts = dateString.split('-').map((part) => parseInt(part, 10));\n\n if (parts.length < 3) {\n throw new Error(`Date string ${dateString} could not be parsed into valid date parts`);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const dateObj = new Date(parts[0]!, parts[1]! - 1, parts[2]);\n\n return dateObj;\n }\n\n public formatDateForResponse(date: Date): number {\n return date.getTime();\n }\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/util/run.ts"],"names":["action"],"mappings":"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","file":"chunk-PPRZFBZZ.js","sourcesContent":["import { ROUTE_CHANGE_INTERNAL_EVENT } from '../communication/constants.js';\nimport type { PartialLocation } from '../types/common.js';\nimport type { CommonExecutionPlugin, CommonPluginDefinition } from '../types/run.js';\nimport type { AsyncFunctionConstructor, BuiltAsyncFn } from '../types/workers.js';\n\nexport const getPartialLocation = (): PartialLocation => {\n return {\n host: window.location.host,\n hash: window.location.hash,\n href: window.location.href,\n origin: window.location.origin,\n pathname: window.location.pathname,\n search: window.location.search,\n port: window.location.port,\n protocol: window.location.protocol,\n };\n};\n\nexport const generateUUIDV4 = (): string => {\n let d = new Date().getTime();\n\n if (typeof performance !== 'undefined' && typeof performance.now === 'function') {\n d += performance.now();\n }\n\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\n const r = ((d + Math.random() * 16) % 16) | 0;\n d = Math.floor(d / 16);\n return (c === 'x' ? r : (r & 0x3) | 0x8).toString(16);\n });\n};\n\nconst AsyncFunction = (\n Object.getPrototypeOf(async function () {\n /* empty */\n }) as { constructor: AsyncFunctionConstructor }\n).constructor;\n\nexport const getFnWithReturn = (script: string): BuiltAsyncFn => {\n const functionBody = `\n const __cleanup = this.__cleanup.bind(this);\n const __error = this.onError.bind(this);\n let __kizen_internal_result;\n {\n this.__setup();\n }\n try {\n __kizen_internal_result = await (async () => { ${script} })();\n } catch (ex) {\n __error(ex);\n } finally {\n __cleanup(__kizen_internal_result);\n }\n `;\n\n try {\n const fn = new AsyncFunction(functionBody);\n\n return { fn, functionBody };\n } catch {\n const errorFnBody = `\n this.__setup();\n this.onError({ message: \"The script has a syntax error and could not be parsed\" });\n this.__cleanup();\n `;\n\n const fn = new AsyncFunction(errorFnBody);\n\n return { fn, functionBody: errorFnBody };\n }\n};\n\nexport const getFn = (script: string): BuiltAsyncFn => {\n const functionBody = `\n const __cleanup = this.__cleanup.bind(this);\n const __error = this.onError.bind(this);\n {\n this.__setup();\n }\n try {\n ${script}\n } catch (ex) {\n __error(ex);\n } finally {\n __cleanup();\n }\n `;\n\n try {\n const fn = new AsyncFunction(functionBody);\n\n return { fn, functionBody };\n } catch {\n const errorFnBody = `\n this.__setup();\n this.onError({ message: \"The script has a syntax error and could not be parsed\" });\n this.__cleanup();\n `;\n\n const fn = new AsyncFunction(errorFnBody);\n\n return { fn, functionBody: errorFnBody };\n }\n};\n\nexport const generateExecutionKey = (\n pluginConfig?: CommonPluginDefinition | CommonExecutionPlugin,\n): string => {\n return `${pluginConfig?.plugin_api_name ?? ''}-${pluginConfig?.id ?? ''}-${pluginConfig?.api_name ?? ''}-${pluginConfig?.script_id ?? ''}`;\n};\n\nexport const emitRouteChange = (): void => {\n const event = new CustomEvent(ROUTE_CHANGE_INTERNAL_EVENT, {\n detail: {\n location: getPartialLocation(),\n },\n });\n\n window.dispatchEvent(event);\n};\n\nconst splitScriptApiName = (\n scriptApiName: string,\n): { pluginApiName: string | undefined; actionApiName: string | undefined } => {\n const [pluginApiName, actionApiName] = scriptApiName.split('.');\n\n return {\n pluginApiName,\n actionApiName,\n };\n};\n\nexport const findMatchingAction = (\n availableActions: {\n pluginApp?: {\n apiName: string;\n };\n apiName: string;\n }[],\n apiName?: string,\n): unknown => {\n if (!apiName) {\n return null;\n }\n\n const { pluginApiName, actionApiName } = splitScriptApiName(apiName);\n\n if (!pluginApiName) {\n const action = availableActions.find((act) => !act.pluginApp && act.apiName === actionApiName);\n\n return action;\n }\n\n const action = availableActions.find(\n (act) => act.apiName === actionApiName && act.pluginApp?.apiName === pluginApiName,\n );\n\n return action;\n};\n"]}