@kizenapps/engine 1.7.3-0f44a43 → 1.7.4-2fa1b01
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.
- package/dist/{ThirdPartyScript-CvOXQBiO.d.ts → ThirdPartyScript-DauYx3B5.d.ts} +1 -1
- package/dist/{automation-CURkgisn.d.ts → automation-Bpg6VoKc.d.ts} +3 -2
- package/dist/blocks-DuJJdwgj.d.ts +39 -0
- package/dist/{chunk-5XPV4FO2.js → chunk-2E5Z7NLE.js} +3 -3
- package/dist/{chunk-5XPV4FO2.js.map → chunk-2E5Z7NLE.js.map} +1 -1
- package/dist/{chunk-FSCARJX2.js → chunk-FDF3DENJ.js} +5 -5
- package/dist/{chunk-FSCARJX2.js.map → chunk-FDF3DENJ.js.map} +1 -1
- package/dist/{chunk-WY6MASDC.js → chunk-MRHISAX3.js} +3 -3
- package/dist/{chunk-WY6MASDC.js.map → chunk-MRHISAX3.js.map} +1 -1
- package/dist/{chunk-K7FXR4JK.js → chunk-PYZX4ZDW.js} +4 -4
- package/dist/{chunk-K7FXR4JK.js.map → chunk-PYZX4ZDW.js.map} +1 -1
- package/dist/{chunk-JSV6L5QJ.js → chunk-UQBW6I5K.js} +6 -6
- package/dist/{chunk-JSV6L5QJ.js.map → chunk-UQBW6I5K.js.map} +1 -1
- package/dist/{chunk-B43UNY3G.js → chunk-UUITD2B5.js} +3 -3
- package/dist/{chunk-B43UNY3G.js.map → chunk-UUITD2B5.js.map} +1 -1
- package/dist/{chunk-ALPMSMIU.js → chunk-W37TFKDD.js} +4 -3
- package/dist/chunk-W37TFKDD.js.map +1 -0
- package/dist/{chunk-2K5C4A54.js → chunk-X3VOYGS6.js} +19 -4
- package/dist/chunk-X3VOYGS6.js.map +1 -0
- package/dist/{chunk-NLJZDTIZ.js → chunk-XDXUE4KQ.js} +3 -3
- package/dist/{chunk-NLJZDTIZ.js.map → chunk-XDXUE4KQ.js.map} +1 -1
- package/dist/communication.d.ts +5 -3
- package/dist/communication.js +2 -2
- package/dist/contexts/base.d.ts +1 -1
- package/dist/contexts/base.js +4 -4
- package/dist/contexts/floatingFrame.d.ts +1 -1
- package/dist/contexts/floatingFrame.js +5 -5
- package/dist/contexts/recordDetail.d.ts +1 -1
- package/dist/contexts/recordDetail.js +5 -5
- package/dist/index.d.ts +6 -6
- package/dist/index.js +4 -4
- package/dist/react.d.ts +27 -5
- package/dist/react.js +111 -6
- package/dist/react.js.map +1 -1
- package/dist/types.d.ts +6 -18
- package/dist/util.d.ts +3 -3
- package/dist/util.js +6 -6
- package/dist/{values-DW0zm74v.d.ts → values-B_vFQrTp.d.ts} +2 -2
- package/dist/workers/calendarSource.worker.js +6 -6
- package/dist/workers/floatingFrame.worker.js +7 -7
- package/dist/workers/generic.worker.js +6 -6
- package/dist/workers/recordDetail.worker.js +7 -7
- package/package.json +1 -1
- package/dist/chunk-2K5C4A54.js.map +0 -1
- package/dist/chunk-ALPMSMIU.js.map +0 -1
- package/dist/generic-Bevgir2K.d.ts +0 -19
|
@@ -524,4 +524,4 @@ declare class ThirdPartyScript {
|
|
|
524
524
|
call(...params: unknown[]): void;
|
|
525
525
|
}
|
|
526
526
|
|
|
527
|
-
export { type CurriedRefreshEntityFn as $, type Args as A, type BaseAPI as B, type CurrentUser as C, type DataCache as D, type CleanValueStoreType as E, type CloseModalFn as F, type GetOptions as G, type ConfigService as H, type Instance as I, type ConsoleLogLevel as J, type CreateRecordModalQueue as K, type CreateRelatedRecordModalQueue as L, type ModalConfig as M, type CurriedCloseModalFn as N, type CurriedDynamicPromptFn as O, type PartialEntity as P, type CurriedInstallThirdPartyScriptFn as Q, type RequestWithErrorsResponse as R, type StateChangePayload as S, ThirdPartyScript as T, type UnknownJSON as U, type CurriedKizenRequestFn as V, type WorkerContextArgs as W, type CurriedOpenCreateRecordFn as X, type CurriedOpenCreateRelatedRecordFn as Y, type CurriedPostFormDataFn as Z, type CurriedPromptFn as _, type PartialCustomObject as a, type ValueStore as a$, type CurriedShowViewInModalFn as a0, type CurriedUploadFileFn as a1, type CustomObjectCleanValue as a2, type CustomObjectValueStore as a3, type DataCacheEntry as a4, type DeleteReturnValue as a5, type DynamicPromptFn as a6, type EmployeeConfig as a7, type ErrorHandler as a8, type ErrorResponse as a9, type OnShowCreateRelatedRecordModalFn as aA, type OnShowModalFn as aB, type OpenCreateRecordFn as aC, type OpenCreateRelatedRecordFn as aD, type PartialRelatedObject as aE, type PatchReturnValue as aF, type PostFormDataPayload as aG, type PostReturnValue as aH, type Profile as aI, type PromiseMap as aJ, type PromiseReject as aK, type PromiseResolve as aL, type PromiseState as aM, type PromptFn as aN, type PutReturnValue as aO, type RefreshEntityFn as aP, type ReleaseBlockingScriptHandler as aQ, type SelectCleanValue as aR, type SelectValueStore as aS, type SetInternalSessionDataFn as aT, type SetupAssistantConfig as aU, type ShowViewInModalFn as aV, type TextValueStore as aW, type UnknownFunction as aX, type UploadFileData as aY, type UploadFileFn as aZ, type UserConfig as a_, type FieldCleanValue as aa, type FieldValueStore as ab, type GetReturnValue as ac, type InstallThirdPartyScriptFn as ad, type JSONArray as ae, type JSONObject as af, type JSONPrimitive as ag, type JSONValue as ah, type KizenConfig as ai, type KizenNetworkResponse as aj, type KizenProxySuccessResponse as ak, type KizenRequestFn as al, type KizenRequestFnHandler as am, type KnownArgs as an, type MatchSetupAssistantField as ao, type MaybeMessageError as ap, type ModalBlock as aq, type ModalCancelEventSource as ar, type ModalContainer as as, type ModalQueue as at, type ModalSize as au, type NumberCleanValue as av, type NumberValueStore as aw, type OnCloseModalFn as ax, type OnNetworkErrorFn as ay, type OnShowCreateRecordModalFn as az, type PartialUser as b, modalSize as b0, KizenRequestError as b1, ACTIONS as b2, ALLOWED_INTEGRATIONS as b3,
|
|
527
|
+
export { type CurriedRefreshEntityFn as $, type Args as A, type BaseAPI as B, type CurrentUser as C, type DataCache as D, type CleanValueStoreType as E, type CloseModalFn as F, type GetOptions as G, type ConfigService as H, type Instance as I, type ConsoleLogLevel as J, type CreateRecordModalQueue as K, type CreateRelatedRecordModalQueue as L, type ModalConfig as M, type CurriedCloseModalFn as N, type CurriedDynamicPromptFn as O, type PartialEntity as P, type CurriedInstallThirdPartyScriptFn as Q, type RequestWithErrorsResponse as R, type StateChangePayload as S, ThirdPartyScript as T, type UnknownJSON as U, type CurriedKizenRequestFn as V, type WorkerContextArgs as W, type CurriedOpenCreateRecordFn as X, type CurriedOpenCreateRelatedRecordFn as Y, type CurriedPostFormDataFn as Z, type CurriedPromptFn as _, type PartialCustomObject as a, type ValueStore as a$, type CurriedShowViewInModalFn as a0, type CurriedUploadFileFn as a1, type CustomObjectCleanValue as a2, type CustomObjectValueStore as a3, type DataCacheEntry as a4, type DeleteReturnValue as a5, type DynamicPromptFn as a6, type EmployeeConfig as a7, type ErrorHandler as a8, type ErrorResponse as a9, type OnShowCreateRelatedRecordModalFn as aA, type OnShowModalFn as aB, type OpenCreateRecordFn as aC, type OpenCreateRelatedRecordFn as aD, type PartialRelatedObject as aE, type PatchReturnValue as aF, type PostFormDataPayload as aG, type PostReturnValue as aH, type Profile as aI, type PromiseMap as aJ, type PromiseReject as aK, type PromiseResolve as aL, type PromiseState as aM, type PromptFn as aN, type PutReturnValue as aO, type RefreshEntityFn as aP, type ReleaseBlockingScriptHandler as aQ, type SelectCleanValue as aR, type SelectValueStore as aS, type SetInternalSessionDataFn as aT, type SetupAssistantConfig as aU, type ShowViewInModalFn as aV, type TextValueStore as aW, type UnknownFunction as aX, type UploadFileData as aY, type UploadFileFn as aZ, type UserConfig as a_, type FieldCleanValue as aa, type FieldValueStore as ab, type GetReturnValue as ac, type InstallThirdPartyScriptFn as ad, type JSONArray as ae, type JSONObject as af, type JSONPrimitive as ag, type JSONValue as ah, type KizenConfig as ai, type KizenNetworkResponse as aj, type KizenProxySuccessResponse as ak, type KizenRequestFn as al, type KizenRequestFnHandler as am, type KnownArgs as an, type MatchSetupAssistantField as ao, type MaybeMessageError as ap, type ModalBlock as aq, type ModalCancelEventSource as ar, type ModalContainer as as, type ModalQueue as at, type ModalSize as au, type NumberCleanValue as av, type NumberValueStore as aw, type OnCloseModalFn as ax, type OnNetworkErrorFn as ay, type OnShowCreateRecordModalFn as az, type PartialUser as b, modalSize as b0, KizenRequestError as b1, ACTIONS as b2, ALLOWED_INTEGRATIONS as b3, INDICATOR_TYPE as b4, IFRAME_PREFIX as b5, type PartialTeamMember as c, type PartialBusiness as d, type PartialClientObject as e, type PostFormDataFn as f, type PromptState as g, type InternalSessionData as h, type PartialLocation as i, type RequestOptions as j, type ShowToastOptions as k, type ShowViewInModalOptions as l, type DynamicPromptConfig as m, type ConsoleBridge as n, type IncludeOption as o, type SetupAssistantField as p, type AppPlugin as q, type SelectOption as r, type AppPlugins as s, type AssistantConfigAction as t, type AssistantField as u, type AssistantLink as v, type BooleanCleanValue as w, type BooleanValueStore as x, type ButtonConfig as y, type CleanValueStore as z };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { b2 as ACTIONS, U as UnknownJSON, b3 as ALLOWED_INTEGRATIONS, J as ConsoleLogLevel, M as ModalConfig, S as StateChangePayload, k as ShowToastOptions, h as InternalSessionData, l as ShowViewInModalOptions, aT as SetInternalSessionDataFn, aB as OnShowModalFn, az as OnShowCreateRecordModalFn, aA as OnShowCreateRelatedRecordModalFn, ax as OnCloseModalFn, ay as OnNetworkErrorFn, W as WorkerContextArgs, a7 as EmployeeConfig } from './ThirdPartyScript-
|
|
1
|
+
import { b2 as ACTIONS, U as UnknownJSON, b3 as ALLOWED_INTEGRATIONS, J as ConsoleLogLevel, M as ModalConfig, S as StateChangePayload, k as ShowToastOptions, h as InternalSessionData, l as ShowViewInModalOptions, aT as SetInternalSessionDataFn, aB as OnShowModalFn, az as OnShowCreateRecordModalFn, aA as OnShowCreateRelatedRecordModalFn, ax as OnCloseModalFn, ay as OnNetworkErrorFn, W as WorkerContextArgs, a7 as EmployeeConfig } from './ThirdPartyScript-DauYx3B5.js';
|
|
2
2
|
import { H as HideConfig, S as ShowConfig } from './floatingFrames-BzaoL7cq.js';
|
|
3
3
|
import { B as BuildIframeURLWithProxyOptions } from './frames-AOHUyPDP.js';
|
|
4
4
|
|
|
@@ -120,6 +120,7 @@ interface OpenWindowEvent extends BaseEvent {
|
|
|
120
120
|
}
|
|
121
121
|
interface RecipientConfig {
|
|
122
122
|
frame?: string;
|
|
123
|
+
block?: string;
|
|
123
124
|
script?: string;
|
|
124
125
|
type?: (typeof ALLOWED_INTEGRATIONS)[keyof typeof ALLOWED_INTEGRATIONS];
|
|
125
126
|
}
|
|
@@ -362,4 +363,4 @@ interface AutomationStepConfig<T = unknown> {
|
|
|
362
363
|
plugin_api_name?: string;
|
|
363
364
|
}
|
|
364
365
|
|
|
365
|
-
export type { SchemaValidation as $, AutomationStepConfig as A, BaseEvent as B,
|
|
366
|
+
export type { SchemaValidation as $, AutomationStepConfig as A, BaseEvent as B, CalendarSourceConfig as C, DataAdornmentConfig as D, ErrorEvent as E, FloatingFrameConfig as F, GetPendingCacheCountFn as G, HideEvent as H, IframeOutputEvent as I, OnShowToastFn as J, KizenFile as K, OpenCreateRecordModalRequestEvent as L, MessageEventData as M, OpenCreateRelatedRecordModalRequestEvent as N, OnClearToastsFn as O, OpenWindowEvent as P, PerformKizenFileUploadFn as Q, RoutablePageConfig as R, PostFormDataRequestEvent as S, ToolbarItemConfig as T, PromptRequestEvent as U, QueryRequestEvent as V, RecipientConfig as W, RefreshEntityEvent as X, RefreshTimelineEvent as Y, RequestableQueryMethods as Z, RunEventScriptEvent as _, RouteScriptConfig as a, SetStateEvent as a0, ShowEvent as a1, ShowToastEvent as a2, ShowViewInModalRequestEvent as a3, TerminatorContent as a4, Terminators as a5, UIOutputEvent as a6, UpdateSessionDataEvent as a7, UploadFilePayload as a8, UploadFileRequestEvent as a9, WindowPosition as aa, RunScriptOptions as b, AuthorizeEvent as c, CalendarDefinition as d, CalendarScriptReturnData as e, CalendarSourceMap as f, CalendarSources as g, CloseModalRequestEvent as h, CommonExecutionPlugin as i, CommonPluginDefinition as j, CommunicateEvent as k, ConsoleLogEvent as l, CopyToClipboardEvent as m, CreateFileIdFn as n, DoneEvent as o, DynamicPromptRequestEvent as p, ExecuteCalendarSourceScript as q, ExecuteFloatingFrameScript as r, FloatingFrameEmployeeConfig as s, FrameQuadrant as t, InstallThirdPartyScriptRequestEvent as u, InvalidateCacheFn as v, MinimizedConfig as w, OnConsoleLogFn as x, OnNetworkRequestFn as y, OnRunEventScriptFn as z };
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { i as CommonExecutionPlugin, j as CommonPluginDefinition } from './automation-Bpg6VoKc.js';
|
|
2
|
+
import { U as UnknownJSON } from './ThirdPartyScript-DauYx3B5.js';
|
|
3
|
+
|
|
4
|
+
interface GenericPluginConfig extends CommonPluginDefinition {
|
|
5
|
+
api_name: string;
|
|
6
|
+
callback?: string;
|
|
7
|
+
css?: string;
|
|
8
|
+
event_scripts?: Record<string, string>;
|
|
9
|
+
html?: string;
|
|
10
|
+
iframe_url?: string;
|
|
11
|
+
name: string;
|
|
12
|
+
script?: string;
|
|
13
|
+
type: 'script' | 'iframe' | 'html';
|
|
14
|
+
is_toolbar_item?: boolean;
|
|
15
|
+
toolbar_icon?: string;
|
|
16
|
+
toolbar_color?: string;
|
|
17
|
+
}
|
|
18
|
+
type ExecuteGenericScript = (script: string, args?: Record<string, unknown>, executionPlugin?: CommonExecutionPlugin, overrideContext?: Record<string, unknown>) => Promise<unknown>;
|
|
19
|
+
|
|
20
|
+
type BlockType = 'homepages' | 'dashboards' | 'charts' | 'records';
|
|
21
|
+
interface BlockConfig extends CommonPluginDefinition {
|
|
22
|
+
name: string;
|
|
23
|
+
types?: BlockType[];
|
|
24
|
+
min_w?: number;
|
|
25
|
+
max_w?: number;
|
|
26
|
+
min_h?: number;
|
|
27
|
+
max_h?: number;
|
|
28
|
+
recommended_height?: number;
|
|
29
|
+
when?: string;
|
|
30
|
+
type?: 'script' | 'iframe' | 'html';
|
|
31
|
+
script?: string;
|
|
32
|
+
styles?: string;
|
|
33
|
+
html?: string;
|
|
34
|
+
iframe_url?: string;
|
|
35
|
+
event_scripts?: Record<string, string>;
|
|
36
|
+
args?: Record<string, UnknownJSON>;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export type { BlockConfig as B, ExecuteGenericScript as E, GenericPluginConfig as G, BlockType as a };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BaseWorkerContext } from './chunk-
|
|
1
|
+
import { BaseWorkerContext } from './chunk-FDF3DENJ.js';
|
|
2
2
|
|
|
3
3
|
// src/contexts/RecordDetailWorkerContext.ts
|
|
4
4
|
var isPipelineObject = (obj) => {
|
|
@@ -116,5 +116,5 @@ var RecordDetailWorkerContext = class extends BaseWorkerContext {
|
|
|
116
116
|
};
|
|
117
117
|
|
|
118
118
|
export { RecordDetailWorkerContext };
|
|
119
|
-
//# sourceMappingURL=chunk-
|
|
120
|
-
//# sourceMappingURL=chunk-
|
|
119
|
+
//# sourceMappingURL=chunk-2E5Z7NLE.js.map
|
|
120
|
+
//# sourceMappingURL=chunk-2E5Z7NLE.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/contexts/RecordDetailWorkerContext.ts"],"names":[],"mappings":"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","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/contexts/RecordDetailWorkerContext.ts"],"names":[],"mappings":";;;AAIA,IAAM,gBAAA,GAAmB,CAAC,GAAA,KAAsC;AAC9D,EAAA,OAAO,GAAA,CAAI,WAAA,KAAgB,UAAA,IAAc,GAAA,CAAI,SAAA,KAAc,UAAA;AAC7D,CAAA;AAEO,IAAM,yBAAA,GAAN,cAAwC,iBAAA,CAAkB;AAAA,EACxD,QAAA;AAAA,EACA,QAAA;AAAA,EACA,cAAA;AAAA,EACA,cAAA;AAAA,EAEP,WAAA,CAAY;AAAA,IACV,QAAA;AAAA,IACA,QAAA;AAAA,IACA,cAAA;AAAA,IACA,cAAA;AAAA,IACA,GAAG;AAAA,GACL,EAKG;AACD,IAAA,KAAA,CAAM,IAAI,CAAA;AAEV,IAAA,IAAA,CAAK,QAAA,GAAW,QAAA;AAChB,IAAA,IAAA,CAAK,QAAA,GAAW,QAAA;AAChB,IAAA,IAAA,CAAK,cAAA,GAAiB,cAAA;AACtB,IAAA,IAAA,CAAK,cAAA,GAAiB,cAAA;AACtB,IAAA,IAAA,CAAK,UAAA,GAAa,cAAA;AAAA,EACpB;AAAA,EAEA,MAAM,aAAA,GAAkC;AACtC,IAAA,IAAI,KAAK,QAAA,EAAU;AACjB,MAAA,OAAO,IAAA,CAAK,eAAA,CAAgB,IAAA,CAAK,QAAQ,CAAA;AAAA,IAC3C;AAAA,EACF;AAAA,EAEA,MAAM,aAAA,GAAkC;AACtC,IAAA,IAAI,IAAA,CAAK,QAAA,IAAY,IAAA,CAAK,QAAA,EAAU;AAClC,MAAA,OAAO,IAAA,CAAK,SAAA,CAAU,IAAA,CAAK,QAAA,EAAU,KAAK,QAAQ,CAAA;AAAA,IACpD;AAAA,EACF;AAAA,EAEA,MAAM,YAAA,GAAiC;AACrC,IAAA,IAAI,IAAA,CAAK,cAAA,IAAkB,IAAA,CAAK,cAAA,EAAgB;AAC9C,MAAA,OAAO,IAAA,CAAK,SAAA,CAAU,IAAA,CAAK,cAAA,EAAgB,KAAK,cAAc,CAAA;AAAA,IAChE;AAAA,EACF;AAAA,EAEA,aAAA,CAAc,QAAuB,OAAA,EAA0B;AAC7D,IAAA,OAAO,MAAA,CAAO,MAAA,GAAS,OAAO,CAAA,EAAG,KAAA;AAAA,EACnC;AAAA,EAEA,MAAc,gBAAgB,QAAA,EAAoC;AAChE,IAAA,MAAM,SAAS,MAAM,IAAA,CAAK,GAAA,CAAI,CAAA,QAAA,EAAW,QAAQ,CAAA,CAAE,CAAA;AAEnD,IAAA,OAAO,MAAA;AAAA,EACT;AAAA,EAEU,eAAe,QAAA,EAA2B;AAClD,IAAA,OAAO,QAAA,KAAa,KAAK,YAAA,EAAc,EAAA;AAAA,EACzC;AAAA,EAEA,MAAM,SAAA,CAAU,QAAA,EAAkB,QAAA,EAAoC;AACpE,IAAA,IAAI;AACF,MAAA,IAAI,IAAA,CAAK,cAAA,CAAe,QAAQ,CAAA,EAAG;AACjC,QAAA,OAAO,MAAM,IAAA,CAAK,eAAA,CAAgB,QAAQ,CAAA;AAAA,MAC5C;AAEA,MAAA,MAAM,QAAS,MAAM,IAAA,CAAK,GAAA,CAAI,CAAA,gBAAA,EAAmB,QAAQ,CAAA,CAAE,CAAA;AAE3D,MAAA,IAAI,gBAAA,CAAiB,KAAK,CAAA,EAAG;AAC3B,QAAA,OAAO,MAAM,IAAA,CAAK,iBAAA,CAAkB,QAAA,EAAU,QAAQ,CAAA;AAAA,MACxD;AAEA,MAAA,OAAO,MAAM,IAAA,CAAK,eAAA,CAAgB,QAAA,EAAU,QAAQ,CAAA;AAAA,IACtD,SAAS,EAAA,EAAa;AACpB,MAAA,IAAA,CAAK,QAAQ,EAAW,CAAA;AAAA,IAC1B;AAAA,EACF;AAAA,EAEA,MAAM,0BAAA,CACJ,QAAA,EACA,QAAA,EACA,OAAA,EACoB;AACpB,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAU,MAAM,IAAA,CAAK,SAAA,CAAU,UAAU,QAAQ,CAAA;AAEvD,MAAA,MAAM,KAAA,GAAQ,MAAA,CAAO,MAAA,GAAS,OAAO,CAAA;AAErC,MAAA,IAAI,CAAC,KAAA,EAAO;AACV,QAAA,IAAA,CAAK,QAAQ,IAAI,KAAA,CAAM,CAAA,uBAAA,EAA0B,OAAO,EAAE,CAAC,CAAA;AAC3D,QAAA,OAAO,EAAC;AAAA,MACV;AAEA,MAAA,MAAM,MAAA,GAAS,MAAM,IAAA,CAAK,eAAA,CAAgB,QAAQ,CAAA;AAElD,MAAA,MAAM,aAAA,GAAgB,QAAQ,eAAA,EAAiB,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,QAAA,KAAa,KAAA,CAAM,EAAE,CAAA;AAElF,MAAA,IAAI,CAAC,aAAA,EAAe;AAClB,QAAA,IAAA,CAAK,OAAA,CAAQ,IAAI,KAAA,CAAM,0BAA0B,CAAC,CAAA;AAClD,QAAA,OAAO,EAAC;AAAA,MACV;AAEA,MAAA,MAAM,aAAA,GAAgB,MAAM,OAAA,CAAQ,GAAA;AAAA,QAClC,KAAA,CAAM,KAAA,CACH,GAAA,CAAI,CAAC,KAAA,KAAU;AACd,UAAA,IAAI,KAAA,CAAM,OAAO,KAAA,CAAA,EAAW;AAC1B,YAAA,OAAO,IAAA;AAAA,UACT;AAEA,UAAA,OAAO,IAAA,CAAK,SAAA,CAAU,aAAA,CAAc,cAAA,EAAgB,MAAM,EAAE,CAAA;AAAA,QAC9D,CAAC,CAAA,CACA,MAAA,CAAO,CAAC,OAAA,KAAY,YAAY,IAAI;AAAA,OACzC;AAEA,MAAA,MAAM,MAAA,GAAS,aAAA,CAAc,MAAA,CAAO,OAAO,CAAA;AAE3C,MAAA,OAAO,MAAA;AAAA,IACT,SAAS,EAAA,EAAa;AACpB,MAAA,IAAA,CAAK,QAAQ,EAAW,CAAA;AAAA,IAC1B;AAEA,IAAA,OAAO,EAAC;AAAA,EACV;AAAA,EAEA,MAAc,iBAAA,CAAkB,QAAA,EAAkB,QAAA,EAAoC;AACpF,IAAA,MAAM,MAAA,GAAS,MAAM,IAAA,CAAK,GAAA,CAAI,cAAc,QAAQ,CAAA,gBAAA,EAAmB,QAAQ,CAAA,CAAE,CAAA;AAEjF,IAAA,OAAO,MAAA;AAAA,EACT;AAAA,EAEA,MAAc,eAAA,CAAgB,QAAA,EAAkB,QAAA,EAAoC;AAClF,IAAA,MAAM,MAAA,GAAS,MAAM,IAAA,CAAK,GAAA,CAAI,mBAAmB,QAAQ,CAAA,gBAAA,EAAmB,QAAQ,CAAA,CAAE,CAAA;AAEtF,IAAA,OAAO,MAAA;AAAA,EACT;AAAA,EAEA,MAAM,gBAAgB,EAAA,EAAsD;AAC1E,IAAA,IAAI;AACF,MAAA,MAAM,SAAS,MAAM,IAAA,CAAK,GAAA,CAAI,CAAA,gBAAA,EAAmB,EAAE,CAAA,OAAA,CAAS,CAAA;AAE5D,MAAA,OAAO,MAAA;AAAA,IACT,SAAS,EAAA,EAAa;AACpB,MAAA,IAAA,CAAK,QAAQ,EAAW,CAAA;AAAA,IAC1B;AAAA,EACF;AAAA,EAEO,eAAA,GAAwB;AAC7B,IAAA,IAAA,CAAK,oBAAA,CAAqB,KAAK,QAAQ,CAAA;AAAA,EACzC;AAAA,EAEO,aAAA,GAAsB;AAC3B,IAAA,IAAA,CAAK,kBAAA,CAAmB,KAAK,QAAQ,CAAA;AAAA,EACvC;AACF","file":"chunk-2E5Z7NLE.js","sourcesContent":["import type { PartialCustomObject, PartialEntity } from '../types/common.js';\nimport type { WorkerContextArgs } from '../types/contexts.js';\nimport { BaseWorkerContext } from './BaseWorkerContext.js';\n\nconst isPipelineObject = (obj: PartialCustomObject): boolean => {\n return obj.object_type === 'pipeline' || obj.fetch_url === 'pipeline';\n};\n\nexport class RecordDetailWorkerContext extends BaseWorkerContext {\n public objectId: string | undefined;\n public entityId: string | undefined;\n public actionObjectId: string | undefined;\n public actionEntityId: string | undefined;\n\n constructor({\n objectId,\n entityId,\n actionObjectId,\n actionEntityId,\n ...rest\n }: WorkerContextArgs & {\n objectId?: string;\n entityId?: string;\n actionObjectId?: string;\n actionEntityId?: string;\n }) {\n super(rest);\n\n this.objectId = objectId;\n this.entityId = entityId;\n this.actionObjectId = actionObjectId;\n this.actionEntityId = actionEntityId;\n this.runnerType = 'recordDetail';\n }\n\n async currentObject(): Promise<unknown> {\n if (this.objectId) {\n return this.getObjectDetail(this.objectId);\n }\n }\n\n async currentEntity(): Promise<unknown> {\n if (this.entityId && this.objectId) {\n return this.getEntity(this.objectId, this.entityId);\n }\n }\n\n async actionEntity(): Promise<unknown> {\n if (this.actionEntityId && this.actionObjectId) {\n return this.getEntity(this.actionObjectId, this.actionEntityId);\n }\n }\n\n getFieldValue(entity: PartialEntity, fieldId: string): unknown {\n return entity.fields?.[fieldId]?.value;\n }\n\n private async getClientEntity(entityId: string): Promise<unknown> {\n const result = await this.get(`/client/${entityId}`);\n\n return result;\n }\n\n protected isClientObject(objectId: string): boolean {\n return objectId === this.clientObject?.id;\n }\n\n async getEntity(objectId: string, entityId: string): Promise<unknown> {\n try {\n if (this.isClientObject(objectId)) {\n return await this.getClientEntity(entityId);\n }\n\n const model = (await this.get(`/custom-objects/${objectId}`)) as PartialCustomObject;\n\n if (isPipelineObject(model)) {\n return await this.getPipelineEntity(objectId, entityId);\n }\n\n return await this.getCustomEntity(objectId, entityId);\n } catch (ex: unknown) {\n this.onError(ex as Error);\n }\n }\n\n async getRelatedEntitiesForField(\n objectId: string,\n entityId: string,\n fieldId: string,\n ): Promise<unknown[]> {\n try {\n const entity = (await this.getEntity(objectId, entityId)) as PartialEntity;\n\n const field = entity.fields?.[fieldId];\n\n if (!field) {\n this.onError(new Error(`Field not found for ID ${fieldId}`));\n return [];\n }\n\n const object = await this.getObjectDetail(objectId);\n\n const relatedObject = object?.related_objects?.find((o) => o.field_id === field.id);\n\n if (!relatedObject) {\n this.onError(new Error('Related object not found'));\n return [];\n }\n\n const relationships = await Promise.all(\n field.value\n .map((value) => {\n if (value.id === undefined) {\n return null;\n }\n\n return this.getEntity(relatedObject.related_object, value.id);\n })\n .filter((promise) => promise !== null),\n );\n\n const result = relationships.filter(Boolean);\n\n return result;\n } catch (ex: unknown) {\n this.onError(ex as Error);\n }\n\n return [];\n }\n\n private async getPipelineEntity(objectId: string, entityId: string): Promise<unknown> {\n const result = await this.get(`/pipelines/${objectId}/entity-records/${entityId}`);\n\n return result;\n }\n\n private async getCustomEntity(objectId: string, entityId: string): Promise<unknown> {\n const result = await this.get(`/custom-objects/${objectId}/entity-records/${entityId}`);\n\n return result;\n }\n\n async getObjectDetail(id: string): Promise<PartialCustomObject | undefined> {\n try {\n const result = await this.get(`/custom-objects/${id}/detail`);\n\n return result as PartialCustomObject;\n } catch (ex: unknown) {\n this.onError(ex as Error);\n }\n }\n\n public refreshTimeline(): void {\n this.refreshTimelineForId(this.entityId);\n }\n\n public refreshEntity(): void {\n this.refreshEntityForId(this.entityId);\n }\n}\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { cleanConfig, buildIframeURLWithProxy, serializeConsoleArg } from './chunk-
|
|
2
|
-
import { Communicate } from './chunk-
|
|
3
|
-
import { RESPONSES, ACTIONS, ThirdPartyScript } from './chunk-
|
|
1
|
+
import { cleanConfig, buildIframeURLWithProxy, serializeConsoleArg } from './chunk-MRHISAX3.js';
|
|
2
|
+
import { Communicate } from './chunk-X3VOYGS6.js';
|
|
3
|
+
import { RESPONSES, ACTIONS, ThirdPartyScript } from './chunk-W37TFKDD.js';
|
|
4
4
|
|
|
5
5
|
// src/contexts/BaseWorkerContext.ts
|
|
6
6
|
var buildErrorResponse = async (result) => {
|
|
@@ -792,5 +792,5 @@ ${this.scriptBody}`);
|
|
|
792
792
|
};
|
|
793
793
|
|
|
794
794
|
export { BaseWorkerContext };
|
|
795
|
-
//# sourceMappingURL=chunk-
|
|
796
|
-
//# sourceMappingURL=chunk-
|
|
795
|
+
//# sourceMappingURL=chunk-FDF3DENJ.js.map
|
|
796
|
+
//# sourceMappingURL=chunk-FDF3DENJ.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/contexts/BaseWorkerContext.ts"],"names":[],"mappings":"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","file":"chunk-FSCARJX2.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 ConsoleBridge,\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 CloseModalFn,\n DynamicPromptFn,\n ModalConfig,\n ShowViewInModalFn,\n ShowViewInModalOptions,\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 { serializeConsoleArg } from '../util/console.js';\nimport { cleanConfig } from '../workers/util.js';\nimport { buildIframeURLWithProxy, type BuildIframeURLWithProxyOptions } from '../util/frames.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 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 showViewInModalHandler: ShowViewInModalFn;\n private closeModalHandler: CloseModalFn;\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 showViewInModal,\n closeModal,\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 this.showViewInModalHandler = showViewInModal;\n this.closeModalHandler = closeModal;\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, options?: BuildIframeURLWithProxyOptions): void {\n this.instance.postMessage(\n JSON.stringify({\n action: ACTIONS.UI_OUTPUT,\n markup,\n options,\n }),\n );\n }\n\n public runEventScript(scriptName: string, args: UnknownJSON = {}): void {\n if (!scriptName) {\n throw new Error('A script name is required to run an event script');\n }\n\n this.instance.postMessage(\n JSON.stringify({\n action: ACTIONS.RUN_EVENT_SCRIPT,\n scriptName,\n args,\n }),\n );\n }\n\n public prompt(config: ModalConfig): Promise<unknown> {\n return this.promptHandler(config);\n }\n\n public async showViewInModal(\n id: string,\n config?: { args?: UnknownJSON; options?: ShowViewInModalOptions },\n ): Promise<unknown> {\n return this.showViewInModalHandler(id, config);\n }\n\n public closeModal(values?: UnknownJSON, canceled?: boolean): void {\n this.closeModalHandler(values, canceled);\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(\n url: string,\n allow?: string[],\n sandbox?: string[],\n options?: BuildIframeURLWithProxyOptions,\n ): void {\n const { url: formattedUrl, isUsingProxy } = buildIframeURLWithProxy(\n url,\n options,\n allow?.join('; '),\n );\n\n this.instance.postMessage(\n JSON.stringify({\n action: ACTIONS.IFRAME_OUTPUT,\n url: formattedUrl,\n name: this.pluginApiName,\n allow,\n sandbox,\n preserve: this.preserve,\n isUsingProxy,\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 get console(): ConsoleBridge {\n const supported = new Set(['log', 'warn', 'error', 'info', 'debug']);\n return new Proxy({} as ConsoleBridge, {\n get: (_, prop) => {\n const level = supported.has(String(prop)) ? String(prop) : 'log';\n return (...args: unknown[]) => {\n try {\n const serializedArgs = args.map((arg) => {\n try {\n return serializeConsoleArg(arg);\n } catch {\n return null;\n }\n });\n let payload: string;\n try {\n payload = JSON.stringify({\n action: ACTIONS.CONSOLE_LOG,\n level,\n args: serializedArgs,\n });\n } catch {\n payload = JSON.stringify({\n action: ACTIONS.CONSOLE_LOG,\n level,\n args: ['[unserializable log payload]'],\n });\n }\n this.instance.postMessage(payload);\n } catch {\n /* never crash plugin code from logging */\n }\n };\n },\n });\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/contexts/BaseWorkerContext.ts"],"names":[],"mappings":"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","file":"chunk-FDF3DENJ.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 ConsoleBridge,\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 CloseModalFn,\n DynamicPromptFn,\n ModalConfig,\n ShowViewInModalFn,\n ShowViewInModalOptions,\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 { serializeConsoleArg } from '../util/console.js';\nimport { cleanConfig } from '../workers/util.js';\nimport { buildIframeURLWithProxy, type BuildIframeURLWithProxyOptions } from '../util/frames.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 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 showViewInModalHandler: ShowViewInModalFn;\n private closeModalHandler: CloseModalFn;\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 showViewInModal,\n closeModal,\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 this.showViewInModalHandler = showViewInModal;\n this.closeModalHandler = closeModal;\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, options?: BuildIframeURLWithProxyOptions): void {\n this.instance.postMessage(\n JSON.stringify({\n action: ACTIONS.UI_OUTPUT,\n markup,\n options,\n }),\n );\n }\n\n public runEventScript(scriptName: string, args: UnknownJSON = {}): void {\n if (!scriptName) {\n throw new Error('A script name is required to run an event script');\n }\n\n this.instance.postMessage(\n JSON.stringify({\n action: ACTIONS.RUN_EVENT_SCRIPT,\n scriptName,\n args,\n }),\n );\n }\n\n public prompt(config: ModalConfig): Promise<unknown> {\n return this.promptHandler(config);\n }\n\n public async showViewInModal(\n id: string,\n config?: { args?: UnknownJSON; options?: ShowViewInModalOptions },\n ): Promise<unknown> {\n return this.showViewInModalHandler(id, config);\n }\n\n public closeModal(values?: UnknownJSON, canceled?: boolean): void {\n this.closeModalHandler(values, canceled);\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(\n url: string,\n allow?: string[],\n sandbox?: string[],\n options?: BuildIframeURLWithProxyOptions,\n ): void {\n const { url: formattedUrl, isUsingProxy } = buildIframeURLWithProxy(\n url,\n options,\n allow?.join('; '),\n );\n\n this.instance.postMessage(\n JSON.stringify({\n action: ACTIONS.IFRAME_OUTPUT,\n url: formattedUrl,\n name: this.pluginApiName,\n allow,\n sandbox,\n preserve: this.preserve,\n isUsingProxy,\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 get console(): ConsoleBridge {\n const supported = new Set(['log', 'warn', 'error', 'info', 'debug']);\n return new Proxy({} as ConsoleBridge, {\n get: (_, prop) => {\n const level = supported.has(String(prop)) ? String(prop) : 'log';\n return (...args: unknown[]) => {\n try {\n const serializedArgs = args.map((arg) => {\n try {\n return serializeConsoleArg(arg);\n } catch {\n return null;\n }\n });\n let payload: string;\n try {\n payload = JSON.stringify({\n action: ACTIONS.CONSOLE_LOG,\n level,\n args: serializedArgs,\n });\n } catch {\n payload = JSON.stringify({\n action: ACTIONS.CONSOLE_LOG,\n level,\n args: ['[unserializable log payload]'],\n });\n }\n this.instance.postMessage(payload);\n } catch {\n /* never crash plugin code from logging */\n }\n };\n },\n });\n }\n}\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ACTIONS, RESPONSES } from './chunk-
|
|
1
|
+
import { ACTIONS, RESPONSES } from './chunk-W37TFKDD.js';
|
|
2
2
|
|
|
3
3
|
// src/util/console.ts
|
|
4
4
|
var UNSERIALIZABLE = (reason) => ({
|
|
@@ -659,5 +659,5 @@ var getParentFrameAllowParam = () => {
|
|
|
659
659
|
};
|
|
660
660
|
|
|
661
661
|
export { KizenRequestError, buildIframeURLWithProxy, cleanConfig, closeModalHandler, deserializeConsoleArg, dynamicPromptHandler, filterAllowList, filterSandboxList, getActionContainerKey, getActionFieldKey, getActionMenuFieldKey, getActionMenuHeadingKey, getAllNestedInputsFromConfig, getFieldFromAction, getParentFrameAllowParam, handleCommonResponse, installThirdPartyScriptHandler, isActionFieldKey, isActionMenuFieldKey, kizenRequestHandler, openCreateRecordHandler, openCreateRelatedRecordHandler, postFormDataHandler, promptHandler, refreshEntityHandler, serializeConsoleArg, showViewInModalHandler, splitActionFieldKey, splitActionMenuFieldKey, unwrapProxyMessage, uploadFileHandler };
|
|
662
|
-
//# sourceMappingURL=chunk-
|
|
663
|
-
//# sourceMappingURL=chunk-
|
|
662
|
+
//# sourceMappingURL=chunk-MRHISAX3.js.map
|
|
663
|
+
//# sourceMappingURL=chunk-MRHISAX3.js.map
|