@corva/ui 3.76.0-15 → 3.76.0-17
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/cjs-bundle/componentsV2/TemplatesControl/Store/hooks/useInitialize.js +1 -1
- package/cjs-bundle/componentsV2/TemplatesControl/Store/hooks/useInitialize.js.map +1 -1
- package/cjs-bundle/effects/useDevCenterApp.js +1 -1
- package/cjs-bundle/effects/useDevCenterApp.js.map +1 -1
- package/componentsV2/TemplatesControl/Store/hooks/useInitialize.d.ts.map +1 -1
- package/componentsV2/TemplatesControl/Store/hooks/useInitialize.js +1 -1
- package/componentsV2/TemplatesControl/Store/hooks/useInitialize.js.map +1 -1
- package/effects/useDevCenterApp.d.ts.map +1 -1
- package/effects/useDevCenterApp.js +1 -1
- package/effects/useDevCenterApp.js.map +1 -1
- package/mcp-server/server.mjs +1 -1
- package/package.json +1 -1
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/toConsumableArray"),t=require("@babel/runtime/helpers/asyncToGenerator"),r=require("@babel/runtime/helpers/defineProperty"),s=require("@babel/runtime/helpers/slicedToArray"),n=require("@babel/runtime/regenerator"),i=require("react"),a=require("lodash"),u=require("../utils.js"),o=require("../Store.js"),l=require("./sharedHooks.js"),c=require("../../../../clients/jsonApi/index.js"),p=require("../../../../permissions/usePermissions.js"),f=require("../../../../permissions/constants/index.js");require("../../../../permissions/withPermissionsHOC.js"),require("../../../../permissions/ProvidePermissions.js"),require("../../../../permissions/PermissionsContext.js"),require("../../../../utils/index.js");var d=require("../../../../utils/notificationToasts.js");function m(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var b=m(e),j=m(t),v=m(r),g=m(s),O=m(n);function h(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,s)}return r}function
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/toConsumableArray"),t=require("@babel/runtime/helpers/asyncToGenerator"),r=require("@babel/runtime/helpers/defineProperty"),s=require("@babel/runtime/helpers/slicedToArray"),n=require("@babel/runtime/regenerator"),i=require("react"),a=require("lodash"),u=require("../utils.js"),o=require("../Store.js"),l=require("./sharedHooks.js"),c=require("../../../../clients/jsonApi/index.js"),p=require("../../../../permissions/usePermissions.js"),f=require("../../../../permissions/constants/index.js");require("../../../../permissions/withPermissionsHOC.js"),require("../../../../permissions/ProvidePermissions.js"),require("../../../../permissions/PermissionsContext.js"),require("../../../../utils/index.js");var d=require("../../../../utils/notificationToasts.js");function m(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var b=m(e),j=m(t),v=m(r),g=m(s),O=m(n);function h(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,s)}return r}function q(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?h(Object(r),!0).forEach((function(t){v.default(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):h(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}exports.useInitialize=function(){var e=l.useGet("get"),t=l.useGet("set"),r=i.useState(!1),s=g.default(r,2),n=s[0],m=s[1],h=i.useState(),y=g.default(h,2),P=y[0],x=y[1],S={canPublish:f.PERMISSIONS.userCreate},w=p(S);i.useEffect((function(){var r=Object.entries(w).reduce((function(e,t){var r=g.default(t,2),s=r[0],n=r[1],i=n.loading,a=n.active;return{loaded:e.loaded&&!i,permissions:q(q({},e.permissions),{},v.default({},s,a))}}),{loaded:!0,permissions:{}}),s=r.loaded,n=r.permissions;s&&(a.isEqual(e().permissions,n)||t({permissions:n}),m(!0))}),[w,e,t]),i.useEffect((function(){var t=function(){var t=j.default(O.default.mark((function t(){var r,s,n;return O.default.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,r=e(),s=r.appKey,t.t0=u.dataFormatter,t.next=5,c.getAppSettingsTemplates(s,{per_page:o.perPage,fields:o.baseFields});case 5:t.t1=t.sent,n=t.t0.deserialize.call(t.t0,t.t1),x(n),t.next=14;break;case 10:t.prev=10,t.t2=t.catch(0),d.showErrorNotification("Error loading app templates"),console.error(t.t2);case 14:case"end":return t.stop()}}),t,null,[[0,10]])})));return function(){return t.apply(this,arguments)}}();t()}),[e,t]),i.useEffect((function(){var r=function(){var r=j.default(O.default.mark((function r(){var s,i,o,l,c,p,f,d,m,j,v;return O.default.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:if(n&&P){r.next=2;break}return r.abrupt("return");case 2:return s=e(),i=s.currentTemplateId,o=s.templateSettings,l=s.onChange,c=s.hooks.getDefaultTemplate,r.next=5,u.processLoadedTemplates(e,P);case 5:if(p=r.sent,t(p),f=u.findTemplate(e,i),!(d=(null==c?void 0:c([].concat(b.default(e().presetTemplates),b.default(e().loadedTemplates)),{currentTemplateId:i,templateSettings:o,event:"loadList"}))||f)){r.next=16;break}return r.next=12,u.ensureTemplateSettings(e,t,d);case 12:m=r.sent,j=!f&&!!d,v=!a.isEqual(m.settings,null==f?void 0:f.settings),(j||v)&&l&&(t({templateSettings:m.settings}),l(m,"initialLoad"));case 16:t({isInitialized:!0});case 17:case"end":return r.stop()}}),r)})));return function(){return r.apply(this,arguments)}}();r()}),[P,e,n,t])};
|
|
2
2
|
//# sourceMappingURL=useInitialize.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useInitialize.js","sources":["../../../../../../src/componentsV2/TemplatesControl/Store/hooks/useInitialize.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\nimport { isEqual } from 'lodash';\n\nimport { Store, Template, TemplateData } from '../../types';\nimport {\n dataFormatter,\n ensureTemplateSettings,\n findTemplate,\n processLoadedTemplates,\n} from '../utils';\nimport { baseFields, perPage } from '../Store';\n\nimport { useGet } from './sharedHooks';\n\nimport { getAppSettingsTemplates } from '~/clients/jsonApi';\nimport { PERMISSIONS, usePermissions } from '~/permissions';\nimport { StringifiedPermission } from '~/permissions/utils';\nimport { showErrorNotification } from '~/utils';\n\nexport const useInitialize = <T extends TemplateData>() => {\n const get = useGet<T, 'get'>('get');\n const set = useGet<T, 'set'>('set');\n\n const [permissionsLoaded, setPermissionsLoaded] = useState(false);\n const [baseLoadedTemplates, setBaseLoadedTemplates] = useState<Template<T>[]>();\n\n const permissionMap: Record<keyof Store['permissions'], StringifiedPermission> = {\n canPublish: PERMISSIONS.userCreate,\n };\n\n const permissionRecordsMap = usePermissions(permissionMap);\n\n // Permissions\n useEffect(() => {\n const { loaded, permissions } = Object.entries(permissionRecordsMap).reduce(\n (acc, [key, { loading, active }]) => ({\n loaded: acc.loaded && !loading,\n permissions: {\n ...acc.permissions,\n [key]: active,\n },\n }),\n {\n loaded: true,\n permissions: {},\n } as {\n loaded: boolean;\n permissions: Record<keyof Store['permissions'], boolean>;\n }\n );\n\n if (loaded) {\n set({ permissions });\n setPermissionsLoaded(true);\n }\n }, [permissionRecordsMap, set]);\n\n // Data load\n useEffect(() => {\n const loader = async () => {\n try {\n const { appKey } = get();\n\n const templates = dataFormatter.deserialize(\n await getAppSettingsTemplates(appKey, {\n per_page: perPage,\n fields: baseFields,\n })\n ) as Template<T>[];\n\n setBaseLoadedTemplates(templates);\n } catch (e) {\n showErrorNotification('Error loading app templates');\n console.error(e);\n }\n };\n\n loader();\n }, [get, set]);\n\n useEffect(() => {\n const onLoadedEverything = async () => {\n if (!permissionsLoaded || !baseLoadedTemplates) {\n return;\n }\n\n const {\n currentTemplateId,\n templateSettings,\n onChange,\n hooks: { getDefaultTemplate },\n } = get();\n\n const templatesData = await processLoadedTemplates(get, baseLoadedTemplates);\n set(templatesData);\n\n // Handling currently selected template\n const currentTemplate = findTemplate(get, currentTemplateId);\n\n const selectedTemplate =\n getDefaultTemplate?.([...get().presetTemplates, ...get().loadedTemplates], {\n currentTemplateId,\n templateSettings,\n event: 'loadList',\n }) || currentTemplate;\n\n // Case when data from app is outdated (other app instance)\n if (selectedTemplate) {\n const templateWithSettings = await ensureTemplateSettings(get, set, selectedTemplate);\n\n const noInitialSelectedTemplate = !currentTemplate && !!selectedTemplate;\n const isOwnOutdatedTemplate = !isEqual(\n templateWithSettings.settings,\n currentTemplate?.settings\n );\n\n if ((noInitialSelectedTemplate || isOwnOutdatedTemplate) && onChange) {\n set({ templateSettings: templateWithSettings.settings });\n onChange(templateWithSettings, 'initialLoad');\n }\n }\n\n set({ isInitialized: true });\n };\n\n onLoadedEverything();\n }, [baseLoadedTemplates, get, permissionsLoaded, set]);\n};\n"],"names":["get","useGet","set","useState","_useState2","_slicedToArray","_useState","permissionsLoaded","setPermissionsLoaded","_useState3","_useState4","baseLoadedTemplates","setBaseLoadedTemplates","permissionMap","canPublish","PERMISSIONS","userCreate","permissionRecordsMap","usePermissions","useEffect","Object","entries","reduce","acc","_ref","_ref2","key","_ref2$","loading","active","loaded","permissions","loader","_ref3","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_get","appKey","templates","wrap","_context","prev","next","t0","dataFormatter","getAppSettingsTemplates","per_page","perPage","fields","baseFields","t1","sent","deserialize","call","t2","showErrorNotification","console","error","stop","apply","this","arguments","onLoadedEverything","_ref4","_callee2","_get2","currentTemplateId","templateSettings","onChange","getDefaultTemplate","templatesData","currentTemplate","selectedTemplate","templateWithSettings","noInitialSelectedTemplate","isOwnOutdatedTemplate","_context2","abrupt","hooks","processLoadedTemplates","findTemplate","concat","_toConsumableArray","presetTemplates","loadedTemplates","event","ensureTemplateSettings","
|
|
1
|
+
{"version":3,"file":"useInitialize.js","sources":["../../../../../../src/componentsV2/TemplatesControl/Store/hooks/useInitialize.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\nimport { isEqual } from 'lodash';\n\nimport { Store, Template, TemplateData } from '../../types';\nimport {\n dataFormatter,\n ensureTemplateSettings,\n findTemplate,\n processLoadedTemplates,\n} from '../utils';\nimport { baseFields, perPage } from '../Store';\n\nimport { useGet } from './sharedHooks';\n\nimport { getAppSettingsTemplates } from '~/clients/jsonApi';\nimport { PERMISSIONS, usePermissions } from '~/permissions';\nimport { StringifiedPermission } from '~/permissions/utils';\nimport { showErrorNotification } from '~/utils';\n\nexport const useInitialize = <T extends TemplateData>() => {\n const get = useGet<T, 'get'>('get');\n const set = useGet<T, 'set'>('set');\n\n const [permissionsLoaded, setPermissionsLoaded] = useState(false);\n const [baseLoadedTemplates, setBaseLoadedTemplates] = useState<Template<T>[]>();\n\n const permissionMap: Record<keyof Store['permissions'], StringifiedPermission> = {\n canPublish: PERMISSIONS.userCreate,\n };\n\n const permissionRecordsMap = usePermissions(permissionMap);\n\n // Permissions\n useEffect(() => {\n const { loaded, permissions } = Object.entries(permissionRecordsMap).reduce(\n (acc, [key, { loading, active }]) => ({\n loaded: acc.loaded && !loading,\n permissions: {\n ...acc.permissions,\n [key]: active,\n },\n }),\n {\n loaded: true,\n permissions: {},\n } as {\n loaded: boolean;\n permissions: Record<keyof Store['permissions'], boolean>;\n }\n );\n\n if (loaded) {\n // usePermissions returns a fresh object every render, so this effect re-runs on every\n // render; writing unconditionally notified the store's subscribers each time, which\n // re-rendered and re-ran the effect until React gave up.\n if (!isEqual(get().permissions, permissions)) {\n set({ permissions });\n }\n setPermissionsLoaded(true);\n }\n }, [permissionRecordsMap, get, set]);\n\n // Data load\n useEffect(() => {\n const loader = async () => {\n try {\n const { appKey } = get();\n\n const templates = dataFormatter.deserialize(\n await getAppSettingsTemplates(appKey, {\n per_page: perPage,\n fields: baseFields,\n })\n ) as Template<T>[];\n\n setBaseLoadedTemplates(templates);\n } catch (e) {\n showErrorNotification('Error loading app templates');\n console.error(e);\n }\n };\n\n loader();\n }, [get, set]);\n\n useEffect(() => {\n const onLoadedEverything = async () => {\n if (!permissionsLoaded || !baseLoadedTemplates) {\n return;\n }\n\n const {\n currentTemplateId,\n templateSettings,\n onChange,\n hooks: { getDefaultTemplate },\n } = get();\n\n const templatesData = await processLoadedTemplates(get, baseLoadedTemplates);\n set(templatesData);\n\n // Handling currently selected template\n const currentTemplate = findTemplate(get, currentTemplateId);\n\n const selectedTemplate =\n getDefaultTemplate?.([...get().presetTemplates, ...get().loadedTemplates], {\n currentTemplateId,\n templateSettings,\n event: 'loadList',\n }) || currentTemplate;\n\n // Case when data from app is outdated (other app instance)\n if (selectedTemplate) {\n const templateWithSettings = await ensureTemplateSettings(get, set, selectedTemplate);\n\n const noInitialSelectedTemplate = !currentTemplate && !!selectedTemplate;\n const isOwnOutdatedTemplate = !isEqual(\n templateWithSettings.settings,\n currentTemplate?.settings\n );\n\n if ((noInitialSelectedTemplate || isOwnOutdatedTemplate) && onChange) {\n set({ templateSettings: templateWithSettings.settings });\n onChange(templateWithSettings, 'initialLoad');\n }\n }\n\n set({ isInitialized: true });\n };\n\n onLoadedEverything();\n }, [baseLoadedTemplates, get, permissionsLoaded, set]);\n};\n"],"names":["get","useGet","set","useState","_useState2","_slicedToArray","_useState","permissionsLoaded","setPermissionsLoaded","_useState3","_useState4","baseLoadedTemplates","setBaseLoadedTemplates","permissionMap","canPublish","PERMISSIONS","userCreate","permissionRecordsMap","usePermissions","useEffect","Object","entries","reduce","acc","_ref","_ref2","key","_ref2$","loading","active","loaded","permissions","isEqual","loader","_ref3","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_get","appKey","templates","wrap","_context","prev","next","t0","dataFormatter","getAppSettingsTemplates","per_page","perPage","fields","baseFields","t1","sent","deserialize","call","t2","showErrorNotification","console","error","stop","apply","this","arguments","onLoadedEverything","_ref4","_callee2","_get2","currentTemplateId","templateSettings","onChange","getDefaultTemplate","templatesData","currentTemplate","selectedTemplate","templateWithSettings","noInitialSelectedTemplate","isOwnOutdatedTemplate","_context2","abrupt","hooks","processLoadedTemplates","findTemplate","concat","_toConsumableArray","presetTemplates","loadedTemplates","event","ensureTemplateSettings","settings","isInitialized"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var n=require("@babel/runtime/helpers/slicedToArray"),e=require("react"),t=require("../utils/devcenter.js");function o(n){return n&&"object"==typeof n&&"default"in n?n:{default:n}}var
|
|
1
|
+
"use strict";var n=require("@babel/runtime/helpers/slicedToArray"),e=require("react"),t=require("../utils/devcenter.js");function o(n){return n&&"object"==typeof n&&"default"in n?n:{default:n}}var r=o(n),i={},u={};module.exports=function(n){var o,l=n.CLIAppComponent,p=n.CLIAppSettings,c=n.app,a=n.version,s=c.app.app_key,d=process.env.REACT_APP_DEBUG_DC_APP_KEY===s,f=d?"http://127.0.0.1:3000/app.js":null==c||null===(o=c.package)||void 0===o?void 0:o.url,v=t.getAppIdentifier({appKey:s,version:a,isLocalDebugMode:d}),m=e.useState(null),A=r.default(m,2),g=A[0],C=A[1],E=i[v],b=l||(null==E?void 0:E.component)||null,_=p||(null==E?void 0:E.settings)||null,h=function(){C(null),(u[v]||[]).forEach((function(n){return n()})),delete u[v]};e.useEffect((function(){v in u&&(C(v),u[v].push((function(){C(null)})))}),[v]),e.useEffect((function(){if(!(!f||!v||b&&_||v in u)){if(!l&&!E||null!=E&&E.component){if(C(v),!E||!E.script){var n=document.createElement("script");n.src=f,n.onload=function(){var n;i[v]=(null===(n=window[v])||void 0===n?void 0:n.default)||{error:!0},h()},i[v]={component:null,script:n},setTimeout((function(){return document.body.appendChild(n)}))}var e=i[v].script;if(e.onload){var t=e.onload;e.onload=function(){t(),h()}}var o=function(){i[v]={error:!0},h()};e.onabort=o,e.onerror=o}u[v]=[function(){return C(null)}]}}),[v,f]);var y=g===v,L=!(!f||E&&!E.script);return{isLoading:!l&&(y||L),AppComponent:b,AppSettings:_}};
|
|
2
2
|
//# sourceMappingURL=useDevCenterApp.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDevCenterApp.js","sources":["../../../src/effects/useDevCenterApp.js"],"sourcesContent":["import { useState, useEffect } from 'react';\n\nimport { getAppIdentifier } from '~/utils/devcenter';\n\nconst COMPONENTS = {};\nconst FINISH_LOADING_HANLDERS_BY_APP_NAME = {};\n\nconst LOCAL_DEBUG_URL = 'http://127.0.0.1:3000/app.js';\n\nconst useDevCenterApp = ({ CLIAppComponent, CLIAppSettings, app, version }) => {\n const appKey = app.app.app_key;\n\n const isLocalDebugMode = process.env.REACT_APP_DEBUG_DC_APP_KEY === appKey;\n const url = isLocalDebugMode ? LOCAL_DEBUG_URL : app?.package?.url;\n\n const appName = getAppIdentifier({ appKey, version, isLocalDebugMode });\n const [
|
|
1
|
+
{"version":3,"file":"useDevCenterApp.js","sources":["../../../src/effects/useDevCenterApp.js"],"sourcesContent":["import { useState, useEffect } from 'react';\n\nimport { getAppIdentifier } from '~/utils/devcenter';\n\nconst COMPONENTS = {};\nconst FINISH_LOADING_HANLDERS_BY_APP_NAME = {};\n\nconst LOCAL_DEBUG_URL = 'http://127.0.0.1:3000/app.js';\n\nconst useDevCenterApp = ({ CLIAppComponent, CLIAppSettings, app, version }) => {\n const appKey = app.app.app_key;\n\n const isLocalDebugMode = process.env.REACT_APP_DEBUG_DC_APP_KEY === appKey;\n const url = isLocalDebugMode ? LOCAL_DEBUG_URL : app?.package?.url;\n\n const appName = getAppIdentifier({ appKey, version, isLocalDebugMode });\n const [loadingAppName, setLoadingAppName] = useState(null);\n\n const appSource = COMPONENTS[appName];\n const AppComponent = CLIAppComponent || appSource?.component || null;\n const AppSettings = CLIAppSettings || appSource?.settings || null;\n\n const finishLoading = () => {\n setLoadingAppName(null);\n (FINISH_LOADING_HANLDERS_BY_APP_NAME[appName] || []).forEach(handler => handler());\n delete FINISH_LOADING_HANLDERS_BY_APP_NAME[appName];\n };\n\n useEffect(() => {\n if (appName in FINISH_LOADING_HANLDERS_BY_APP_NAME) {\n setLoadingAppName(appName);\n FINISH_LOADING_HANLDERS_BY_APP_NAME[appName].push(() => {\n setLoadingAppName(null);\n });\n }\n }, [appName]);\n\n useEffect(() => {\n if (\n !url ||\n !appName ||\n (AppComponent && AppSettings) ||\n appName in FINISH_LOADING_HANLDERS_BY_APP_NAME\n )\n return;\n\n if ((!CLIAppComponent && !appSource) || appSource?.component) {\n setLoadingAppName(appName);\n\n if (!appSource || !appSource.script) {\n const scriptFile = document.createElement('script');\n\n scriptFile.src = url;\n\n scriptFile.onload = () => {\n COMPONENTS[appName] = window[appName]?.default || { error: true };\n finishLoading();\n };\n\n COMPONENTS[appName] = {\n component: null,\n script: scriptFile,\n };\n\n setTimeout(() => document.body.appendChild(scriptFile));\n }\n\n const { script } = COMPONENTS[appName];\n\n if (script.onload) {\n const loaderCallback = script.onload;\n script.onload = () => {\n loaderCallback();\n finishLoading();\n };\n }\n\n const failLoading = () => {\n COMPONENTS[appName] = { error: true };\n finishLoading();\n };\n\n script.onabort = failLoading;\n script.onerror = failLoading;\n }\n\n FINISH_LOADING_HANLDERS_BY_APP_NAME[appName] = [() => setLoadingAppName(null)];\n }, [appName, url]);\n\n const isCurrentAppLoading = loadingAppName === appName;\n // The bundle is pending before the loading effect runs and while its script is loading.\n const isAppBundlePending = !!url && (!appSource || !!appSource.script);\n const isLoading = !CLIAppComponent && (isCurrentAppLoading || isAppBundlePending);\n\n return {\n isLoading,\n AppComponent,\n AppSettings,\n };\n};\n\nexport default useDevCenterApp;\n"],"names":["COMPONENTS","FINISH_LOADING_HANLDERS_BY_APP_NAME","_ref","_app$package","CLIAppComponent","CLIAppSettings","app","version","appKey","app_key","isLocalDebugMode","process","env","REACT_APP_DEBUG_DC_APP_KEY","url","package","appName","getAppIdentifier","useState","_useState2","_slicedToArray","_useState","loadingAppName","setLoadingAppName","appSource","AppComponent","component","AppSettings","settings","finishLoading","forEach","handler","useEffect","push","script","scriptFile","document","createElement","src","onload","_window$appName","window","default","error","setTimeout","body","appendChild","loaderCallback","failLoading","onabort","onerror","isCurrentAppLoading","isAppBundlePending","isLoading"],"mappings":"4MAIMA,EAAa,CAAA,EACbC,EAAsC,CAAA,iBAIpB,SAAuDC,GAAA,IAAAC,EAApDC,IAAAA,gBAAiBC,IAAAA,eAAgBC,IAAAA,IAAKC,IAAAA,QACzDC,EAASF,EAAIA,IAAIG,QAEjBC,EAAmBC,QAAQC,IAAIC,6BAA+BL,EAC9DM,EAAMJ,EANU,+BAM2BJ,SAAY,UAAZA,EAAKS,eAAO,IAAAZ,SAAZA,EAAcW,IAEzDE,EAAUC,EAAAA,iBAAiB,CAAET,OAAAA,EAAQD,QAAAA,EAASG,iBAAAA,IACRQ,EAAAA,EAAQA,SAAC,MAAKC,EAAAC,EAAAA,QAAAC,EAAA,GAAnDC,EAAcH,EAAA,GAAEI,EAAiBJ,EAAA,GAElCK,EAAYxB,EAAWgB,GACvBS,EAAerB,IAAmBoB,aAAS,EAATA,EAAWE,YAAa,KAC1DC,EAActB,IAAkBmB,aAAS,EAATA,EAAWI,WAAY,KAEvDC,EAAgB,WACpBN,EAAkB,OACjBtB,EAAoCe,IAAY,IAAIc,SAAQ,SAAAC,GAAO,OAAIA,cACjE9B,EAAoCe,IAG7CgB,EAAAA,WAAU,WACJhB,KAAWf,IACbsB,EAAkBP,GAClBf,EAAoCe,GAASiB,MAAK,WAChDV,EAAkB,KACpB,IAEJ,GAAG,CAACP,IAEJgB,EAAAA,WAAU,WACR,MACGlB,IACAE,GACAS,GAAgBE,GACjBX,KAAWf,GAJb,CAQA,IAAMG,IAAoBoB,GAAcA,SAAAA,EAAWE,UAAW,CAG5D,GAFAH,EAAkBP,IAEbQ,IAAcA,EAAUU,OAAQ,CACnC,IAAMC,EAAaC,SAASC,cAAc,UAE1CF,EAAWG,IAAMxB,EAEjBqB,EAAWI,OAAS,WAAM,IAAAC,EACxBxC,EAAWgB,IAA0B,QAAfyB,EAAAA,OAAOzB,UAAQ,IAAAwB,OAAA,EAAfA,EAAiBE,UAAW,CAAEC,OAAO,GAC3Dd,KAGF7B,EAAWgB,GAAW,CACpBU,UAAW,KACXQ,OAAQC,GAGVS,YAAW,WAAA,OAAMR,SAASS,KAAKC,YAAYX,KAC7C,CAEA,IAAQD,EAAWlC,EAAWgB,GAAtBkB,OAER,GAAIA,EAAOK,OAAQ,CACjB,IAAMQ,EAAiBb,EAAOK,OAC9BL,EAAOK,OAAS,WACdQ,IACAlB,IAEJ,CAEA,IAAMmB,EAAc,WAClBhD,EAAWgB,GAAW,CAAE2B,OAAO,GAC/Bd,KAGFK,EAAOe,QAAUD,EACjBd,EAAOgB,QAAUF,CACnB,CAEA/C,EAAoCe,GAAW,CAAC,WAAA,OAAMO,EAAkB,OA1CtE,CA2CJ,GAAG,CAACP,EAASF,IAEb,IAAMqC,EAAsB7B,IAAmBN,EAEzCoC,KAAuBtC,GAASU,IAAeA,EAAUU,QAG/D,MAAO,CACLmB,WAHiBjD,IAAoB+C,GAAuBC,GAI5D3B,aAAAA,EACAE,YAAAA,EAEJ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useInitialize.d.ts","sourceRoot":"","sources":["../../../../../src/componentsV2/TemplatesControl/Store/hooks/useInitialize.ts"],"names":[],"mappings":"AAGA,OAAO,EAAmB,YAAY,EAAE,MAAM,aAAa,CAAC;AAgB5D,eAAO,MAAM,aAAa,GAAI,CAAC,SAAS,YAAY,
|
|
1
|
+
{"version":3,"file":"useInitialize.d.ts","sourceRoot":"","sources":["../../../../../src/componentsV2/TemplatesControl/Store/hooks/useInitialize.ts"],"names":[],"mappings":"AAGA,OAAO,EAAmB,YAAY,EAAE,MAAM,aAAa,CAAC;AAgB5D,eAAO,MAAM,aAAa,GAAI,CAAC,SAAS,YAAY,WAiHnD,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import e from"@babel/runtime/helpers/toConsumableArray";import r from"@babel/runtime/helpers/asyncToGenerator";import t from"@babel/runtime/helpers/defineProperty";import n from"@babel/runtime/helpers/slicedToArray";import s from"@babel/runtime/regenerator";import{useState as i,useEffect as o}from"react";import{isEqual as a}from"lodash";import{dataFormatter as p,findTemplate as c,ensureTemplateSettings as m,processLoadedTemplates as l}from"../utils.js";import{perPage as u,baseFields as f}from"../Store.js";import{useGet as d}from"./sharedHooks.js";import{getAppSettingsTemplates as b}from"../../../../clients/jsonApi/index.js";import j from"../../../../permissions/usePermissions.js";import{PERMISSIONS as v}from"../../../../permissions/constants/index.js";import"../../../../permissions/withPermissionsHOC.js";import"../../../../permissions/ProvidePermissions.js";import"../../../../permissions/PermissionsContext.js";import"../../../../utils/index.js";import{showErrorNotification as g}from"../../../../utils/notificationToasts.js";function h(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function O(e){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{};r%2?h(Object(n),!0).forEach((function(r){t(e,r,n[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):h(Object(n)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))}))}return e}var y=function(){var h=d("get"),y=d("set"),P=i(!1),x=n(P,2),w=x[0],k=x[1],T=i(),S=n(T,2),C=S[0],D=S[1],A={canPublish:v.userCreate},E=j(A);o((function(){var e=Object.entries(E).reduce((function(e,r){var s=n(r,2),i=s[0],o=s[1],a=o.loading,p=o.active;return{loaded:e.loaded&&!a,permissions:O(O({},e.permissions),{},t({},i,p))}}),{loaded:!0,permissions:{}}),r=e.loaded,s=e.permissions;r&&(y({permissions:s}),k(!0))}),[E,y]),o((function(){var e=function(){var e=r(s.mark((function e(){var r,t,n;return s.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,r=h(),t=r.appKey,e.t0=p,e.next=5,b(t,{per_page:u,fields:f});case 5:e.t1=e.sent,n=e.t0.deserialize.call(e.t0,e.t1),D(n),e.next=14;break;case 10:e.prev=10,e.t2=e.catch(0),g("Error loading app templates"),console.error(e.t2);case 14:case"end":return e.stop()}}),e,null,[[0,10]])})));return function(){return e.apply(this,arguments)}}();e()}),[h,y]),o((function(){var t=function(){var t=r(s.mark((function r(){var t,n,i,o,p,u,f,d,b,j,v;return s.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:if(w&&C){r.next=2;break}return r.abrupt("return");case 2:return t=h(),n=t.currentTemplateId,i=t.templateSettings,o=t.onChange,p=t.hooks.getDefaultTemplate,r.next=5,l(h,C);case 5:if(u=r.sent,y(u),f=c(h,n),!(d=(null==p?void 0:p([].concat(e(h().presetTemplates),e(h().loadedTemplates)),{currentTemplateId:n,templateSettings:i,event:"loadList"}))||f)){r.next=16;break}return r.next=12,m(h,y,d);case 12:b=r.sent,j=!f&&!!d,v=!a(b.settings,null==f?void 0:f.settings),(j||v)&&o&&(y({templateSettings:b.settings}),o(b,"initialLoad"));case 16:y({isInitialized:!0});case 17:case"end":return r.stop()}}),r)})));return function(){return t.apply(this,arguments)}}();t()}),[C,h,w,y])};export{y as useInitialize};
|
|
1
|
+
import e from"@babel/runtime/helpers/toConsumableArray";import r from"@babel/runtime/helpers/asyncToGenerator";import t from"@babel/runtime/helpers/defineProperty";import n from"@babel/runtime/helpers/slicedToArray";import s from"@babel/runtime/regenerator";import{useState as i,useEffect as o}from"react";import{isEqual as a}from"lodash";import{dataFormatter as p,findTemplate as c,ensureTemplateSettings as m,processLoadedTemplates as l}from"../utils.js";import{perPage as u,baseFields as f}from"../Store.js";import{useGet as d}from"./sharedHooks.js";import{getAppSettingsTemplates as b}from"../../../../clients/jsonApi/index.js";import j from"../../../../permissions/usePermissions.js";import{PERMISSIONS as v}from"../../../../permissions/constants/index.js";import"../../../../permissions/withPermissionsHOC.js";import"../../../../permissions/ProvidePermissions.js";import"../../../../permissions/PermissionsContext.js";import"../../../../utils/index.js";import{showErrorNotification as g}from"../../../../utils/notificationToasts.js";function h(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function O(e){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{};r%2?h(Object(n),!0).forEach((function(r){t(e,r,n[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):h(Object(n)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))}))}return e}var y=function(){var h=d("get"),y=d("set"),P=i(!1),x=n(P,2),w=x[0],k=x[1],T=i(),S=n(T,2),C=S[0],D=S[1],A={canPublish:v.userCreate},E=j(A);o((function(){var e=Object.entries(E).reduce((function(e,r){var s=n(r,2),i=s[0],o=s[1],a=o.loading,p=o.active;return{loaded:e.loaded&&!a,permissions:O(O({},e.permissions),{},t({},i,p))}}),{loaded:!0,permissions:{}}),r=e.loaded,s=e.permissions;r&&(a(h().permissions,s)||y({permissions:s}),k(!0))}),[E,h,y]),o((function(){var e=function(){var e=r(s.mark((function e(){var r,t,n;return s.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,r=h(),t=r.appKey,e.t0=p,e.next=5,b(t,{per_page:u,fields:f});case 5:e.t1=e.sent,n=e.t0.deserialize.call(e.t0,e.t1),D(n),e.next=14;break;case 10:e.prev=10,e.t2=e.catch(0),g("Error loading app templates"),console.error(e.t2);case 14:case"end":return e.stop()}}),e,null,[[0,10]])})));return function(){return e.apply(this,arguments)}}();e()}),[h,y]),o((function(){var t=function(){var t=r(s.mark((function r(){var t,n,i,o,p,u,f,d,b,j,v;return s.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:if(w&&C){r.next=2;break}return r.abrupt("return");case 2:return t=h(),n=t.currentTemplateId,i=t.templateSettings,o=t.onChange,p=t.hooks.getDefaultTemplate,r.next=5,l(h,C);case 5:if(u=r.sent,y(u),f=c(h,n),!(d=(null==p?void 0:p([].concat(e(h().presetTemplates),e(h().loadedTemplates)),{currentTemplateId:n,templateSettings:i,event:"loadList"}))||f)){r.next=16;break}return r.next=12,m(h,y,d);case 12:b=r.sent,j=!f&&!!d,v=!a(b.settings,null==f?void 0:f.settings),(j||v)&&o&&(y({templateSettings:b.settings}),o(b,"initialLoad"));case 16:y({isInitialized:!0});case 17:case"end":return r.stop()}}),r)})));return function(){return t.apply(this,arguments)}}();t()}),[C,h,w,y])};export{y as useInitialize};
|
|
2
2
|
//# sourceMappingURL=useInitialize.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useInitialize.js","sources":["../../../../../src/componentsV2/TemplatesControl/Store/hooks/useInitialize.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\nimport { isEqual } from 'lodash';\n\nimport { Store, Template, TemplateData } from '../../types';\nimport {\n dataFormatter,\n ensureTemplateSettings,\n findTemplate,\n processLoadedTemplates,\n} from '../utils';\nimport { baseFields, perPage } from '../Store';\n\nimport { useGet } from './sharedHooks';\n\nimport { getAppSettingsTemplates } from '~/clients/jsonApi';\nimport { PERMISSIONS, usePermissions } from '~/permissions';\nimport { StringifiedPermission } from '~/permissions/utils';\nimport { showErrorNotification } from '~/utils';\n\nexport const useInitialize = <T extends TemplateData>() => {\n const get = useGet<T, 'get'>('get');\n const set = useGet<T, 'set'>('set');\n\n const [permissionsLoaded, setPermissionsLoaded] = useState(false);\n const [baseLoadedTemplates, setBaseLoadedTemplates] = useState<Template<T>[]>();\n\n const permissionMap: Record<keyof Store['permissions'], StringifiedPermission> = {\n canPublish: PERMISSIONS.userCreate,\n };\n\n const permissionRecordsMap = usePermissions(permissionMap);\n\n // Permissions\n useEffect(() => {\n const { loaded, permissions } = Object.entries(permissionRecordsMap).reduce(\n (acc, [key, { loading, active }]) => ({\n loaded: acc.loaded && !loading,\n permissions: {\n ...acc.permissions,\n [key]: active,\n },\n }),\n {\n loaded: true,\n permissions: {},\n } as {\n loaded: boolean;\n permissions: Record<keyof Store['permissions'], boolean>;\n }\n );\n\n if (loaded) {\n set({ permissions });\n setPermissionsLoaded(true);\n }\n }, [permissionRecordsMap, set]);\n\n // Data load\n useEffect(() => {\n const loader = async () => {\n try {\n const { appKey } = get();\n\n const templates = dataFormatter.deserialize(\n await getAppSettingsTemplates(appKey, {\n per_page: perPage,\n fields: baseFields,\n })\n ) as Template<T>[];\n\n setBaseLoadedTemplates(templates);\n } catch (e) {\n showErrorNotification('Error loading app templates');\n console.error(e);\n }\n };\n\n loader();\n }, [get, set]);\n\n useEffect(() => {\n const onLoadedEverything = async () => {\n if (!permissionsLoaded || !baseLoadedTemplates) {\n return;\n }\n\n const {\n currentTemplateId,\n templateSettings,\n onChange,\n hooks: { getDefaultTemplate },\n } = get();\n\n const templatesData = await processLoadedTemplates(get, baseLoadedTemplates);\n set(templatesData);\n\n // Handling currently selected template\n const currentTemplate = findTemplate(get, currentTemplateId);\n\n const selectedTemplate =\n getDefaultTemplate?.([...get().presetTemplates, ...get().loadedTemplates], {\n currentTemplateId,\n templateSettings,\n event: 'loadList',\n }) || currentTemplate;\n\n // Case when data from app is outdated (other app instance)\n if (selectedTemplate) {\n const templateWithSettings = await ensureTemplateSettings(get, set, selectedTemplate);\n\n const noInitialSelectedTemplate = !currentTemplate && !!selectedTemplate;\n const isOwnOutdatedTemplate = !isEqual(\n templateWithSettings.settings,\n currentTemplate?.settings\n );\n\n if ((noInitialSelectedTemplate || isOwnOutdatedTemplate) && onChange) {\n set({ templateSettings: templateWithSettings.settings });\n onChange(templateWithSettings, 'initialLoad');\n }\n }\n\n set({ isInitialized: true });\n };\n\n onLoadedEverything();\n }, [baseLoadedTemplates, get, permissionsLoaded, set]);\n};\n"],"names":["useInitialize","get","useGet","set","useState","_useState2","_slicedToArray","_useState","permissionsLoaded","setPermissionsLoaded","_useState3","_useState4","baseLoadedTemplates","setBaseLoadedTemplates","permissionMap","canPublish","PERMISSIONS","userCreate","permissionRecordsMap","usePermissions","useEffect","Object","entries","reduce","acc","_ref","_ref2","key","_ref2$","loading","active","loaded","permissions","loader","_ref3","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_get","appKey","templates","wrap","_context","prev","next","t0","dataFormatter","getAppSettingsTemplates","per_page","perPage","fields","baseFields","t1","sent","deserialize","call","t2","showErrorNotification","console","error","stop","apply","this","arguments","onLoadedEverything","_ref4","_callee2","_get2","currentTemplateId","templateSettings","onChange","getDefaultTemplate","templatesData","currentTemplate","selectedTemplate","templateWithSettings","noInitialSelectedTemplate","isOwnOutdatedTemplate","_context2","abrupt","hooks","processLoadedTemplates","findTemplate","concat","_toConsumableArray","presetTemplates","loadedTemplates","event","ensureTemplateSettings","
|
|
1
|
+
{"version":3,"file":"useInitialize.js","sources":["../../../../../src/componentsV2/TemplatesControl/Store/hooks/useInitialize.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\nimport { isEqual } from 'lodash';\n\nimport { Store, Template, TemplateData } from '../../types';\nimport {\n dataFormatter,\n ensureTemplateSettings,\n findTemplate,\n processLoadedTemplates,\n} from '../utils';\nimport { baseFields, perPage } from '../Store';\n\nimport { useGet } from './sharedHooks';\n\nimport { getAppSettingsTemplates } from '~/clients/jsonApi';\nimport { PERMISSIONS, usePermissions } from '~/permissions';\nimport { StringifiedPermission } from '~/permissions/utils';\nimport { showErrorNotification } from '~/utils';\n\nexport const useInitialize = <T extends TemplateData>() => {\n const get = useGet<T, 'get'>('get');\n const set = useGet<T, 'set'>('set');\n\n const [permissionsLoaded, setPermissionsLoaded] = useState(false);\n const [baseLoadedTemplates, setBaseLoadedTemplates] = useState<Template<T>[]>();\n\n const permissionMap: Record<keyof Store['permissions'], StringifiedPermission> = {\n canPublish: PERMISSIONS.userCreate,\n };\n\n const permissionRecordsMap = usePermissions(permissionMap);\n\n // Permissions\n useEffect(() => {\n const { loaded, permissions } = Object.entries(permissionRecordsMap).reduce(\n (acc, [key, { loading, active }]) => ({\n loaded: acc.loaded && !loading,\n permissions: {\n ...acc.permissions,\n [key]: active,\n },\n }),\n {\n loaded: true,\n permissions: {},\n } as {\n loaded: boolean;\n permissions: Record<keyof Store['permissions'], boolean>;\n }\n );\n\n if (loaded) {\n // usePermissions returns a fresh object every render, so this effect re-runs on every\n // render; writing unconditionally notified the store's subscribers each time, which\n // re-rendered and re-ran the effect until React gave up.\n if (!isEqual(get().permissions, permissions)) {\n set({ permissions });\n }\n setPermissionsLoaded(true);\n }\n }, [permissionRecordsMap, get, set]);\n\n // Data load\n useEffect(() => {\n const loader = async () => {\n try {\n const { appKey } = get();\n\n const templates = dataFormatter.deserialize(\n await getAppSettingsTemplates(appKey, {\n per_page: perPage,\n fields: baseFields,\n })\n ) as Template<T>[];\n\n setBaseLoadedTemplates(templates);\n } catch (e) {\n showErrorNotification('Error loading app templates');\n console.error(e);\n }\n };\n\n loader();\n }, [get, set]);\n\n useEffect(() => {\n const onLoadedEverything = async () => {\n if (!permissionsLoaded || !baseLoadedTemplates) {\n return;\n }\n\n const {\n currentTemplateId,\n templateSettings,\n onChange,\n hooks: { getDefaultTemplate },\n } = get();\n\n const templatesData = await processLoadedTemplates(get, baseLoadedTemplates);\n set(templatesData);\n\n // Handling currently selected template\n const currentTemplate = findTemplate(get, currentTemplateId);\n\n const selectedTemplate =\n getDefaultTemplate?.([...get().presetTemplates, ...get().loadedTemplates], {\n currentTemplateId,\n templateSettings,\n event: 'loadList',\n }) || currentTemplate;\n\n // Case when data from app is outdated (other app instance)\n if (selectedTemplate) {\n const templateWithSettings = await ensureTemplateSettings(get, set, selectedTemplate);\n\n const noInitialSelectedTemplate = !currentTemplate && !!selectedTemplate;\n const isOwnOutdatedTemplate = !isEqual(\n templateWithSettings.settings,\n currentTemplate?.settings\n );\n\n if ((noInitialSelectedTemplate || isOwnOutdatedTemplate) && onChange) {\n set({ templateSettings: templateWithSettings.settings });\n onChange(templateWithSettings, 'initialLoad');\n }\n }\n\n set({ isInitialized: true });\n };\n\n onLoadedEverything();\n }, [baseLoadedTemplates, get, permissionsLoaded, set]);\n};\n"],"names":["useInitialize","get","useGet","set","useState","_useState2","_slicedToArray","_useState","permissionsLoaded","setPermissionsLoaded","_useState3","_useState4","baseLoadedTemplates","setBaseLoadedTemplates","permissionMap","canPublish","PERMISSIONS","userCreate","permissionRecordsMap","usePermissions","useEffect","Object","entries","reduce","acc","_ref","_ref2","key","_ref2$","loading","active","loaded","permissions","isEqual","loader","_ref3","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_get","appKey","templates","wrap","_context","prev","next","t0","dataFormatter","getAppSettingsTemplates","per_page","perPage","fields","baseFields","t1","sent","deserialize","call","t2","showErrorNotification","console","error","stop","apply","this","arguments","onLoadedEverything","_ref4","_callee2","_get2","currentTemplateId","templateSettings","onChange","getDefaultTemplate","templatesData","currentTemplate","selectedTemplate","templateWithSettings","noInitialSelectedTemplate","isOwnOutdatedTemplate","_context2","abrupt","hooks","processLoadedTemplates","findTemplate","concat","_toConsumableArray","presetTemplates","loadedTemplates","event","ensureTemplateSettings","settings","isInitialized"],"mappings":"8kDAmBaA,IAAAA,EAAgB,WAC3B,IAAMC,EAAMC,EAAiB,OACvBC,EAAMD,EAAiB,OAEqBE,EAAAA,GAAS,GAAMC,EAAAC,EAAAC,EAAA,GAA1DC,EAAiBH,EAAA,GAAEI,EAAoBJ,EAAA,GAC9CK,EAAsDN,IAAyBO,EAAAL,EAAAI,EAAA,GAAxEE,EAAmBD,EAAA,GAAEE,EAAsBF,EAAA,GAE5CG,EAA2E,CAC/EC,WAAYC,EAAYC,YAGpBC,EAAuBC,EAAeL,GAG5CM,GAAU,WACR,IAAgCC,EAAAA,OAAOC,QAAQJ,GAAsBK,QACnE,SAACC,EAAGC,GAAA,IAAAC,EAAApB,EAAAmB,EAAA,GAAGE,EAAGD,EAAA,GAAAE,EAAAF,EAAA,GAAIG,IAAAA,QAASC,IAAAA,OAAM,MAAS,CACpCC,OAAQP,EAAIO,SAAWF,EACvBG,mBACKR,EAAIQ,aACNL,CAAAA,EAAAA,EAAAA,CAAAA,EAAAA,EAAMG,IAEV,GACD,CACEC,QAAQ,EACRC,YAAa,CAAC,IAVVD,IAAAA,OAAQC,IAAAA,YAiBZD,IAIGE,EAAQhC,IAAM+B,YAAaA,IAC9B7B,EAAI,CAAE6B,YAAAA,IAERvB,GAAqB,GAExB,GAAE,CAACS,EAAsBjB,EAAKE,IAG/BiB,GAAU,WACR,IAAMc,EAAM,WAAA,IAAGC,EAAAC,EAAAC,EAAAC,MAAA,SAAAC,IAAA,IAAAC,EAAAC,EAAAC,EAAA,OAAAL,EAAAM,MAAA,SAAAC,GAAA,OAAA,OAAAA,EAAAC,KAAAD,EAAAE,MAAA,KAAA,EAIoB,OAJpBF,EAAAC,KAAA,EAAAL,EAEQvC,IAAXwC,IAAAA,OAAMG,EAAAG,GAEIC,EAAaJ,EAAAE,KAAA,EACvBG,EAAwBR,EAAQ,CACpCS,SAAUC,EACVC,OAAQC,IACR,KAAA,EAAAT,EAAAU,GAAAV,EAAAW,KAJEb,OAA0Bc,YAAWC,KAAAb,EAAAG,GAAAH,EAAAU,IAO3CzC,EAAuB6B,GAAWE,EAAAE,KAAA,GAAA,MAAA,KAAA,GAAAF,EAAAC,KAAA,GAAAD,EAAAc,GAAAd,EAAA,MAAA,GAElCe,EAAsB,+BACtBC,QAAQC,MAAQjB,EAAAc,IAAC,KAAA,GAAA,IAAA,MAAA,OAAAd,EAAAkB,OAAA,GAAAvB,EAAA,KAAA,CAAA,CAAA,EAAA,KAEpB,KAAA,OAAA,WAhBW,OAAAJ,EAAA4B,MAAAC,KAAAC,UAAA,EAAA,GAkBZ/B,GACF,GAAG,CAACjC,EAAKE,IAETiB,GAAU,WACR,IAAM8C,EAAkB,WAAA,IAAGC,EAAA/B,EAAAC,EAAAC,MAAA,SAAA8B,IAAA,IAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,OAAA1C,EAAAM,MAAA,SAAAqC,GAAA,OAAA,OAAAA,EAAAnC,KAAAmC,EAAAlC,MAAA,KAAA,EAAA,GACpBtC,GAAsBI,EAAmB,CAAAoE,EAAAlC,KAAA,EAAA,KAAA,CAAA,OAAAkC,EAAAC,OAAA,UAAA,KAAA,EAQjB,OARiBZ,EAS1CpE,IAJFqE,EAAAA,EAAAA,kBACAC,EAAgBF,EAAhBE,iBACAC,IAAAA,SACSC,EAATS,EAAAA,MAAST,mBAAkBO,EAAAlC,KAAA,EAGDqC,EAAuBlF,EAAKW,GAAoB,KAAA,EAa5E,GAbM8D,EAAaM,EAAAzB,KACnBpD,EAAIuE,GAGEC,EAAkBS,EAAanF,EAAKqE,KAEpCM,GACJH,eAAAA,EAAkB,GAAAY,OAAAC,EAAOrF,IAAMsF,iBAAeD,EAAKrF,IAAMuF,kBAAkB,CACzElB,kBAAAA,EACAC,iBAAAA,EACAkB,MAAO,eACHd,GAGY,CAAAK,EAAAlC,KAAA,GAAA,KAAA,CAAA,OAAAkC,EAAAlC,KAAA,GACiB4C,EAAuBzF,EAAKE,EAAKyE,GAAiB,KAAA,GAA/EC,EAAoBG,EAAAzB,KAEpBuB,GAA6BH,KAAqBC,EAClDG,GAAyB9C,EAC7B4C,EAAqBc,SACrBhB,aAAe,EAAfA,EAAiBgB,WAGdb,GAA6BC,IAA0BP,IAC1DrE,EAAI,CAAEoE,iBAAkBM,EAAqBc,WAC7CnB,EAASK,EAAsB,gBAChC,KAAA,GAGH1E,EAAI,CAAEyF,eAAe,IAAQ,KAAA,GAAA,IAAA,MAAA,OAAAZ,EAAAlB,OAAA,GAAAM,EAC9B,KAAA,OAAA,WA1CuB,OAAAD,EAAAJ,MAAAC,KAAAC,UAAA,EAAA,GA4CxBC,GACD,GAAE,CAACtD,EAAqBX,EAAKO,EAAmBL,GACnD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDevCenterApp.d.ts","sourceRoot":"","sources":["../../src/effects/useDevCenterApp.js"],"names":[],"mappings":"AASA,QAAA,MAAM,eAAe;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"useDevCenterApp.d.ts","sourceRoot":"","sources":["../../src/effects/useDevCenterApp.js"],"names":[],"mappings":"AASA,QAAA,MAAM,eAAe;;;;;;;;;CA0FpB,CAAC;eAEa,eAAe"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import n from"@babel/runtime/helpers/slicedToArray";import{useState as o,useEffect as
|
|
1
|
+
import n from"@babel/runtime/helpers/slicedToArray";import{useState as o,useEffect as r}from"react";import{getAppIdentifier as t}from"../utils/devcenter.js";var e={},i={},l=function(l){var p,u=l.CLIAppComponent,a=l.CLIAppSettings,c=l.app,s=l.version,d=c.app.app_key,f=process.env.REACT_APP_DEBUG_DC_APP_KEY===d,v=f?"http://127.0.0.1:3000/app.js":null==c||null===(p=c.package)||void 0===p?void 0:p.url,m=t({appKey:d,version:s,isLocalDebugMode:f}),A=o(null),C=n(A,2),g=C[0],_=C[1],b=e[m],h=u||(null==b?void 0:b.component)||null,E=a||(null==b?void 0:b.settings)||null,y=function(){_(null),(i[m]||[]).forEach((function(n){return n()})),delete i[m]};r((function(){m in i&&(_(m),i[m].push((function(){_(null)})))}),[m]),r((function(){if(!(!v||!m||h&&E||m in i)){if(!u&&!b||null!=b&&b.component){if(_(m),!b||!b.script){var n=document.createElement("script");n.src=v,n.onload=function(){var n;e[m]=(null===(n=window[m])||void 0===n?void 0:n.default)||{error:!0},y()},e[m]={component:null,script:n},setTimeout((function(){return document.body.appendChild(n)}))}var o=e[m].script;if(o.onload){var r=o.onload;o.onload=function(){r(),y()}}var t=function(){e[m]={error:!0},y()};o.onabort=t,o.onerror=t}i[m]=[function(){return _(null)}]}}),[m,v]);var L=g===m,P=!(!v||b&&!b.script);return{isLoading:!u&&(L||P),AppComponent:h,AppSettings:E}};export{l as default};
|
|
2
2
|
//# sourceMappingURL=useDevCenterApp.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDevCenterApp.js","sources":["../../src/effects/useDevCenterApp.js"],"sourcesContent":["import { useState, useEffect } from 'react';\n\nimport { getAppIdentifier } from '~/utils/devcenter';\n\nconst COMPONENTS = {};\nconst FINISH_LOADING_HANLDERS_BY_APP_NAME = {};\n\nconst LOCAL_DEBUG_URL = 'http://127.0.0.1:3000/app.js';\n\nconst useDevCenterApp = ({ CLIAppComponent, CLIAppSettings, app, version }) => {\n const appKey = app.app.app_key;\n\n const isLocalDebugMode = process.env.REACT_APP_DEBUG_DC_APP_KEY === appKey;\n const url = isLocalDebugMode ? LOCAL_DEBUG_URL : app?.package?.url;\n\n const appName = getAppIdentifier({ appKey, version, isLocalDebugMode });\n const [
|
|
1
|
+
{"version":3,"file":"useDevCenterApp.js","sources":["../../src/effects/useDevCenterApp.js"],"sourcesContent":["import { useState, useEffect } from 'react';\n\nimport { getAppIdentifier } from '~/utils/devcenter';\n\nconst COMPONENTS = {};\nconst FINISH_LOADING_HANLDERS_BY_APP_NAME = {};\n\nconst LOCAL_DEBUG_URL = 'http://127.0.0.1:3000/app.js';\n\nconst useDevCenterApp = ({ CLIAppComponent, CLIAppSettings, app, version }) => {\n const appKey = app.app.app_key;\n\n const isLocalDebugMode = process.env.REACT_APP_DEBUG_DC_APP_KEY === appKey;\n const url = isLocalDebugMode ? LOCAL_DEBUG_URL : app?.package?.url;\n\n const appName = getAppIdentifier({ appKey, version, isLocalDebugMode });\n const [loadingAppName, setLoadingAppName] = useState(null);\n\n const appSource = COMPONENTS[appName];\n const AppComponent = CLIAppComponent || appSource?.component || null;\n const AppSettings = CLIAppSettings || appSource?.settings || null;\n\n const finishLoading = () => {\n setLoadingAppName(null);\n (FINISH_LOADING_HANLDERS_BY_APP_NAME[appName] || []).forEach(handler => handler());\n delete FINISH_LOADING_HANLDERS_BY_APP_NAME[appName];\n };\n\n useEffect(() => {\n if (appName in FINISH_LOADING_HANLDERS_BY_APP_NAME) {\n setLoadingAppName(appName);\n FINISH_LOADING_HANLDERS_BY_APP_NAME[appName].push(() => {\n setLoadingAppName(null);\n });\n }\n }, [appName]);\n\n useEffect(() => {\n if (\n !url ||\n !appName ||\n (AppComponent && AppSettings) ||\n appName in FINISH_LOADING_HANLDERS_BY_APP_NAME\n )\n return;\n\n if ((!CLIAppComponent && !appSource) || appSource?.component) {\n setLoadingAppName(appName);\n\n if (!appSource || !appSource.script) {\n const scriptFile = document.createElement('script');\n\n scriptFile.src = url;\n\n scriptFile.onload = () => {\n COMPONENTS[appName] = window[appName]?.default || { error: true };\n finishLoading();\n };\n\n COMPONENTS[appName] = {\n component: null,\n script: scriptFile,\n };\n\n setTimeout(() => document.body.appendChild(scriptFile));\n }\n\n const { script } = COMPONENTS[appName];\n\n if (script.onload) {\n const loaderCallback = script.onload;\n script.onload = () => {\n loaderCallback();\n finishLoading();\n };\n }\n\n const failLoading = () => {\n COMPONENTS[appName] = { error: true };\n finishLoading();\n };\n\n script.onabort = failLoading;\n script.onerror = failLoading;\n }\n\n FINISH_LOADING_HANLDERS_BY_APP_NAME[appName] = [() => setLoadingAppName(null)];\n }, [appName, url]);\n\n const isCurrentAppLoading = loadingAppName === appName;\n // The bundle is pending before the loading effect runs and while its script is loading.\n const isAppBundlePending = !!url && (!appSource || !!appSource.script);\n const isLoading = !CLIAppComponent && (isCurrentAppLoading || isAppBundlePending);\n\n return {\n isLoading,\n AppComponent,\n AppSettings,\n };\n};\n\nexport default useDevCenterApp;\n"],"names":["COMPONENTS","FINISH_LOADING_HANLDERS_BY_APP_NAME","useDevCenterApp","_ref","_app$package","CLIAppComponent","CLIAppSettings","app","version","appKey","app_key","isLocalDebugMode","process","env","REACT_APP_DEBUG_DC_APP_KEY","url","package","appName","getAppIdentifier","useState","_useState2","_slicedToArray","_useState","loadingAppName","setLoadingAppName","appSource","AppComponent","component","AppSettings","settings","finishLoading","forEach","handler","useEffect","push","script","scriptFile","document","createElement","src","onload","_window$appName","window","default","error","setTimeout","body","appendChild","loaderCallback","failLoading","onabort","onerror","isCurrentAppLoading","isAppBundlePending","isLoading"],"mappings":"6JAIA,IAAMA,EAAa,CAAA,EACbC,EAAsC,CAAA,EAItCC,EAAkB,SAAuDC,GAAA,IAAAC,EAApDC,IAAAA,gBAAiBC,IAAAA,eAAgBC,IAAAA,IAAKC,IAAAA,QACzDC,EAASF,EAAIA,IAAIG,QAEjBC,EAAmBC,QAAQC,IAAIC,6BAA+BL,EAC9DM,EAAMJ,EANU,+BAM2BJ,SAAY,UAAZA,EAAKS,eAAO,IAAAZ,SAAZA,EAAcW,IAEzDE,EAAUC,EAAiB,CAAET,OAAAA,EAAQD,QAAAA,EAASG,iBAAAA,IACRQ,EAAAA,EAAS,MAAKC,EAAAC,EAAAC,EAAA,GAAnDC,EAAcH,EAAA,GAAEI,EAAiBJ,EAAA,GAElCK,EAAYzB,EAAWiB,GACvBS,EAAerB,IAAmBoB,aAAS,EAATA,EAAWE,YAAa,KAC1DC,EAActB,IAAkBmB,aAAS,EAATA,EAAWI,WAAY,KAEvDC,EAAgB,WACpBN,EAAkB,OACjBvB,EAAoCgB,IAAY,IAAIc,SAAQ,SAAAC,GAAO,OAAIA,cACjE/B,EAAoCgB,IAG7CgB,GAAU,WACJhB,KAAWhB,IACbuB,EAAkBP,GAClBhB,EAAoCgB,GAASiB,MAAK,WAChDV,EAAkB,KACpB,IAEJ,GAAG,CAACP,IAEJgB,GAAU,WACR,MACGlB,IACAE,GACAS,GAAgBE,GACjBX,KAAWhB,GAJb,CAQA,IAAMI,IAAoBoB,GAAcA,SAAAA,EAAWE,UAAW,CAG5D,GAFAH,EAAkBP,IAEbQ,IAAcA,EAAUU,OAAQ,CACnC,IAAMC,EAAaC,SAASC,cAAc,UAE1CF,EAAWG,IAAMxB,EAEjBqB,EAAWI,OAAS,WAAM,IAAAC,EACxBzC,EAAWiB,IAA0B,QAAfyB,EAAAA,OAAOzB,UAAQ,IAAAwB,OAAA,EAAfA,EAAiBE,UAAW,CAAEC,OAAO,GAC3Dd,KAGF9B,EAAWiB,GAAW,CACpBU,UAAW,KACXQ,OAAQC,GAGVS,YAAW,WAAA,OAAMR,SAASS,KAAKC,YAAYX,KAC7C,CAEA,IAAQD,EAAWnC,EAAWiB,GAAtBkB,OAER,GAAIA,EAAOK,OAAQ,CACjB,IAAMQ,EAAiBb,EAAOK,OAC9BL,EAAOK,OAAS,WACdQ,IACAlB,IAEJ,CAEA,IAAMmB,EAAc,WAClBjD,EAAWiB,GAAW,CAAE2B,OAAO,GAC/Bd,KAGFK,EAAOe,QAAUD,EACjBd,EAAOgB,QAAUF,CACnB,CAEAhD,EAAoCgB,GAAW,CAAC,WAAA,OAAMO,EAAkB,OA1CtE,CA2CJ,GAAG,CAACP,EAASF,IAEb,IAAMqC,EAAsB7B,IAAmBN,EAEzCoC,KAAuBtC,GAASU,IAAeA,EAAUU,QAG/D,MAAO,CACLmB,WAHiBjD,IAAoB+C,GAAuBC,GAI5D3B,aAAAA,EACAE,YAAAA,EAEJ"}
|
package/mcp-server/server.mjs
CHANGED