@next-core/easyops-runtime 0.10.5 → 0.10.7
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/cjs/analytics/http.js +3 -4
- package/dist/cjs/analytics/http.js.map +1 -1
- package/dist/cjs/checkInstalledApps.js +1 -2
- package/dist/cjs/checkInstalledApps.js.map +1 -1
- package/dist/cjs/checkPermissions.js.map +1 -1
- package/dist/cjs/flowApi/CollectContracts.js.map +1 -1
- package/dist/cjs/flowApi/FlowApi.js +2 -2
- package/dist/cjs/flowApi/FlowApi.js.map +1 -1
- package/dist/cjs/flowApi/FlowApiProvider.js +5 -5
- package/dist/cjs/flowApi/FlowApiProvider.js.map +1 -1
- package/dist/cjs/menu/fetchMenuById.js.map +1 -1
- package/dist/cjs/menu/fetchMenuTitle.js +1 -1
- package/dist/cjs/menu/fetchMenuTitle.js.map +1 -1
- package/dist/cjs/menu/getMenusOfStandaloneApp.js +2 -2
- package/dist/cjs/menu/getMenusOfStandaloneApp.js.map +1 -1
- package/dist/cjs/menu/mergeMenu.js +1 -2
- package/dist/cjs/menu/mergeMenu.js.map +1 -1
- package/dist/cjs/menu/reorderMenuItems.js +1 -4
- package/dist/cjs/menu/reorderMenuItems.js.map +1 -1
- package/dist/cjs/websocket/MessageDispatcher.js.map +1 -1
- package/dist/cjs/websocket/MessageService.js.map +1 -1
- package/dist/esm/analytics/analytics.js +23 -18
- package/dist/esm/analytics/analytics.js.map +1 -1
- package/dist/esm/analytics/http.js +19 -20
- package/dist/esm/analytics/http.js.map +1 -1
- package/dist/esm/analytics/pageView.js +6 -6
- package/dist/esm/analytics/pageView.js.map +1 -1
- package/dist/esm/analytics/transport.js +12 -12
- package/dist/esm/analytics/transport.js.map +1 -1
- package/dist/esm/auth-v2.js +1 -1
- package/dist/esm/auth-v2.js.map +1 -1
- package/dist/esm/auth.js +5 -4
- package/dist/esm/auth.js.map +1 -1
- package/dist/esm/checkInstalledApps.js +19 -30
- package/dist/esm/checkInstalledApps.js.map +1 -1
- package/dist/esm/checkPermissions.js +35 -48
- package/dist/esm/checkPermissions.js.map +1 -1
- package/dist/esm/flowApi/CollectContracts.js +5 -5
- package/dist/esm/flowApi/CollectContracts.js.map +1 -1
- package/dist/esm/flowApi/FlowApi.js +68 -87
- package/dist/esm/flowApi/FlowApi.js.map +1 -1
- package/dist/esm/flowApi/FlowApiProvider.js +87 -87
- package/dist/esm/flowApi/FlowApiProvider.js.map +1 -1
- package/dist/esm/index.js +3 -3
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/menu/computeMenuData.js +17 -24
- package/dist/esm/menu/computeMenuData.js.map +1 -1
- package/dist/esm/menu/constants.js +3 -3
- package/dist/esm/menu/constants.js.map +1 -1
- package/dist/esm/menu/fetchMenuById.js +61 -70
- package/dist/esm/menu/fetchMenuById.js.map +1 -1
- package/dist/esm/menu/fetchMenuTitle.js +27 -34
- package/dist/esm/menu/fetchMenuTitle.js.map +1 -1
- package/dist/esm/menu/getMenusOfStandaloneApp.js +11 -9
- package/dist/esm/menu/getMenusOfStandaloneApp.js.map +1 -1
- package/dist/esm/menu/loadDynamicMenuItems.js +17 -23
- package/dist/esm/menu/loadDynamicMenuItems.js.map +1 -1
- package/dist/esm/menu/mergeMenu.js +44 -54
- package/dist/esm/menu/mergeMenu.js.map +1 -1
- package/dist/esm/menu/reorderMenuItems.js +3 -6
- package/dist/esm/menu/reorderMenuItems.js.map +1 -1
- package/dist/esm/websocket/MessageDispatcher.js +19 -19
- package/dist/esm/websocket/MessageDispatcher.js.map +1 -1
- package/dist/esm/websocket/MessageService.js +9 -9
- package/dist/esm/websocket/MessageService.js.map +1 -1
- package/package.json +9 -9
|
@@ -1,40 +1,40 @@
|
|
|
1
|
-
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
|
2
|
-
import _objectSpread from "@babel/runtime/helpers/objectSpread2";
|
|
3
1
|
import { createProviderClass } from "@next-core/utils/general";
|
|
4
2
|
import { http } from "@next-core/http";
|
|
5
3
|
import { isEmpty, isObject } from "lodash";
|
|
6
4
|
import { createSSEStream } from "@next-core/utils/general";
|
|
7
|
-
export
|
|
5
|
+
export const FLOW_API_PROVIDER = "core.provider-flow-api";
|
|
8
6
|
function hasFields(ext_fields, type) {
|
|
9
7
|
return ext_fields.some(item => item.source === type);
|
|
10
8
|
}
|
|
11
9
|
export function processExtFields(ext_fields) {
|
|
12
|
-
|
|
13
|
-
|
|
10
|
+
const hasQueryParams = hasFields(ext_fields, "query");
|
|
11
|
+
const hasBodyParams = hasFields(ext_fields, "body");
|
|
14
12
|
for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
|
15
13
|
args[_key - 1] = arguments[_key];
|
|
16
14
|
}
|
|
17
15
|
if (hasQueryParams) {
|
|
18
16
|
if (hasBodyParams) {
|
|
19
|
-
|
|
17
|
+
const [data, params, options] = args;
|
|
20
18
|
return {
|
|
21
|
-
data:
|
|
22
|
-
options:
|
|
23
|
-
params:
|
|
24
|
-
|
|
19
|
+
data: data,
|
|
20
|
+
options: {
|
|
21
|
+
params: params,
|
|
22
|
+
...options
|
|
23
|
+
}
|
|
25
24
|
};
|
|
26
25
|
}
|
|
27
|
-
|
|
26
|
+
const [params, options] = args;
|
|
28
27
|
return {
|
|
29
28
|
data: {},
|
|
30
|
-
options:
|
|
31
|
-
params: params
|
|
32
|
-
|
|
29
|
+
options: {
|
|
30
|
+
params: params,
|
|
31
|
+
...options
|
|
32
|
+
}
|
|
33
33
|
};
|
|
34
34
|
}
|
|
35
35
|
|
|
36
36
|
// only hasBodyParams or default
|
|
37
|
-
|
|
37
|
+
const [data, options] = args;
|
|
38
38
|
return {
|
|
39
39
|
data,
|
|
40
40
|
options: options
|
|
@@ -44,7 +44,7 @@ export function hasFileType(request) {
|
|
|
44
44
|
if (!request || request.type !== "object") {
|
|
45
45
|
return false;
|
|
46
46
|
}
|
|
47
|
-
|
|
47
|
+
const processFields = fields => {
|
|
48
48
|
return !isEmpty(fields) && fields.some(field => ["file", "file[]"].includes(field.type) || processFields(field.fields));
|
|
49
49
|
};
|
|
50
50
|
return processFields(request.fields);
|
|
@@ -53,92 +53,92 @@ export function transformFormData(data) {
|
|
|
53
53
|
if (data instanceof FormData) {
|
|
54
54
|
return data;
|
|
55
55
|
}
|
|
56
|
-
|
|
57
|
-
|
|
56
|
+
const formData = new FormData();
|
|
57
|
+
for (const [key, value] of Object.entries(data)) {
|
|
58
58
|
if (Array.isArray(value)) {
|
|
59
59
|
value.forEach(v => {
|
|
60
60
|
formData.append(key, v);
|
|
61
61
|
});
|
|
62
62
|
} else if (isObject(value) && !(value instanceof Blob) && !(value instanceof Date)) {
|
|
63
63
|
Object.entries(value).forEach(_ref => {
|
|
64
|
-
|
|
65
|
-
formData.append(
|
|
64
|
+
let [k, v] = _ref;
|
|
65
|
+
formData.append(`${key}[${k}]`, v);
|
|
66
66
|
});
|
|
67
67
|
} else {
|
|
68
68
|
formData.append(key, value);
|
|
69
69
|
}
|
|
70
|
-
};
|
|
71
|
-
for (var [key, value] of Object.entries(data)) {
|
|
72
|
-
_loop(key);
|
|
73
70
|
}
|
|
74
71
|
return formData;
|
|
75
72
|
}
|
|
76
|
-
export function callFlowApi(
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
var params;
|
|
103
|
-
var options;
|
|
104
|
-
if (noParams) {
|
|
105
|
-
[options] = args;
|
|
106
|
-
} else {
|
|
107
|
-
[params, options] = args;
|
|
108
|
-
}
|
|
109
|
-
if (stream) {
|
|
110
|
-
var _options$headers, _options3;
|
|
111
|
-
var _stream = yield createSSEStream(http.getUrlWithParams(url, params), _objectSpread(_objectSpread(_objectSpread({}, defaultOptions), options), {}, {
|
|
112
|
-
method,
|
|
113
|
-
headers: Object.fromEntries([...new Headers((_options$headers = (_options3 = options) === null || _options3 === void 0 ? void 0 : _options3.headers) !== null && _options$headers !== void 0 ? _options$headers : {}).entries()])
|
|
114
|
-
}));
|
|
115
|
-
return _stream;
|
|
116
|
-
}
|
|
117
|
-
response = yield http.simpleRequest(method, url, _objectSpread(_objectSpread({
|
|
118
|
-
params
|
|
119
|
-
}, defaultOptions), options));
|
|
73
|
+
export async function callFlowApi(_ref2) {
|
|
74
|
+
let {
|
|
75
|
+
url,
|
|
76
|
+
originalUri,
|
|
77
|
+
method = "GET",
|
|
78
|
+
responseWrapper = true,
|
|
79
|
+
ext_fields = [],
|
|
80
|
+
request,
|
|
81
|
+
isFileType,
|
|
82
|
+
stream
|
|
83
|
+
} = _ref2;
|
|
84
|
+
const isSimpleRequest = ["get", "delete", "head"].includes(method.toLowerCase());
|
|
85
|
+
const defaultOptions = isFileType ? {
|
|
86
|
+
responseType: "blob"
|
|
87
|
+
} : {};
|
|
88
|
+
let response;
|
|
89
|
+
for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
|
|
90
|
+
args[_key2 - 1] = arguments[_key2];
|
|
91
|
+
}
|
|
92
|
+
if (isSimpleRequest) {
|
|
93
|
+
var _originalUri$match, _request$fields;
|
|
94
|
+
const noParams = originalUri && (request === null || request === void 0 ? void 0 : request.type) === "object" ? (((_originalUri$match = originalUri.match(/:([^/]+)/g)) === null || _originalUri$match === void 0 ? void 0 : _originalUri$match.length) ?? 0) === (((_request$fields = request.fields) === null || _request$fields === void 0 ? void 0 : _request$fields.length) ?? 0) : false;
|
|
95
|
+
let params;
|
|
96
|
+
let options;
|
|
97
|
+
if (noParams) {
|
|
98
|
+
[options] = args;
|
|
120
99
|
} else {
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
headers: Object.fromEntries([...new Headers(headers !== null && headers !== void 0 ? headers : {}).entries()]),
|
|
133
|
-
body
|
|
134
|
-
}));
|
|
135
|
-
return _stream2;
|
|
136
|
-
}
|
|
137
|
-
response = yield http.requestWithBody(method, url, data, _objectSpread(_objectSpread({}, defaultOptions), result.options));
|
|
100
|
+
[params, options] = args;
|
|
101
|
+
}
|
|
102
|
+
if (stream) {
|
|
103
|
+
var _options;
|
|
104
|
+
const stream = await createSSEStream(http.getUrlWithParams(url, params), {
|
|
105
|
+
...defaultOptions,
|
|
106
|
+
...options,
|
|
107
|
+
method,
|
|
108
|
+
headers: Object.fromEntries([...new Headers(((_options = options) === null || _options === void 0 ? void 0 : _options.headers) ?? {}).entries()])
|
|
109
|
+
});
|
|
110
|
+
return stream;
|
|
138
111
|
}
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
112
|
+
response = await http.simpleRequest(method, url, {
|
|
113
|
+
params,
|
|
114
|
+
...defaultOptions,
|
|
115
|
+
...options
|
|
116
|
+
});
|
|
117
|
+
} else {
|
|
118
|
+
const isUploadType = hasFileType(request);
|
|
119
|
+
const result = processExtFields(ext_fields, ...args);
|
|
120
|
+
const data = isUploadType ? transformFormData(result.data) : result.data;
|
|
121
|
+
if (stream) {
|
|
122
|
+
var _result$options;
|
|
123
|
+
const {
|
|
124
|
+
body,
|
|
125
|
+
headers
|
|
126
|
+
} = http.getBodyAndHeaders(data, (_result$options = result.options) === null || _result$options === void 0 ? void 0 : _result$options.headers);
|
|
127
|
+
const stream = await createSSEStream(url, {
|
|
128
|
+
...defaultOptions,
|
|
129
|
+
...result.options,
|
|
130
|
+
method,
|
|
131
|
+
headers: Object.fromEntries([...new Headers(headers ?? {}).entries()]),
|
|
132
|
+
body
|
|
133
|
+
});
|
|
134
|
+
return stream;
|
|
135
|
+
}
|
|
136
|
+
response = await http.requestWithBody(method, url, data, {
|
|
137
|
+
...defaultOptions,
|
|
138
|
+
...result.options
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
return (isFileType ? false : responseWrapper) ? response.data : response;
|
|
142
142
|
}
|
|
143
143
|
export function registerFlowApiProvider() {
|
|
144
144
|
customElements.define(FLOW_API_PROVIDER, createProviderClass(callFlowApi));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FlowApiProvider.js","names":["createProviderClass","http","isEmpty","isObject","createSSEStream","FLOW_API_PROVIDER","hasFields","ext_fields","type","some","item","source","processExtFields","hasQueryParams","hasBodyParams","_len","arguments","length","args","Array","_key","data","params","options","_objectSpread","hasFileType","request","processFields","fields","field","includes","transformFormData","FormData","formData","_loop","key","isArray","value","forEach","v","append","Blob","Date","Object","entries","_ref","k","concat","callFlowApi","_x","_callFlowApi","apply","_asyncToGenerator","_ref2","url","originalUri","method","responseWrapper","isFileType","stream","isSimpleRequest","toLowerCase","defaultOptions","responseType","response","_len2","_key2","_originalUri$match$le","_originalUri$match","_request$fields$lengt","_request$fields","noParams","match","_options$headers","_options3","getUrlWithParams","headers","fromEntries","Headers","simpleRequest","isUploadType","result","_result$options","body","getBodyAndHeaders","requestWithBody","registerFlowApiProvider","customElements","define"],"sources":["../../../src/flowApi/FlowApiProvider.ts"],"sourcesContent":["import { createProviderClass } from \"@next-core/utils/general\";\nimport {\n ExtField,\n ContractRequest,\n ContractField,\n ContractFieldItem,\n} from \"@next-core/types\";\nimport { http, HttpOptions, HttpParams } from \"@next-core/http\";\nimport { isEmpty, isObject } from \"lodash\";\nimport { createSSEStream } from \"@next-core/utils/general\";\n\nexport const FLOW_API_PROVIDER = \"core.provider-flow-api\";\n\nexport interface CustomApiParams {\n url: string;\n originalUri?: string;\n method?: string;\n responseWrapper?: boolean;\n ext_fields?: ExtField[];\n request?: ContractRequest;\n isFileType?: boolean;\n stream?: boolean;\n}\nfunction hasFields(ext_fields: ExtField[], type: \"query\" | \"body\"): boolean {\n return ext_fields.some((item) => item.source === type);\n}\n\nexport function processExtFields(\n ext_fields: ExtField[],\n ...args: unknown[]\n): { data: unknown; options: HttpOptions } {\n const hasQueryParams = hasFields(ext_fields, \"query\");\n const hasBodyParams = hasFields(ext_fields, \"body\");\n\n if (hasQueryParams) {\n if (hasBodyParams) {\n const [data, params, options] = args;\n return {\n data: data,\n options: {\n params: params as HttpParams,\n ...(options as HttpOptions),\n },\n };\n }\n\n const [params, options] = args;\n return {\n data: {},\n options: {\n params: params as HttpParams,\n ...(options as HttpOptions),\n },\n };\n }\n\n // only hasBodyParams or default\n const [data, options] = args;\n return {\n data,\n options: options as HttpOptions,\n };\n}\n\nexport function hasFileType(request: ContractRequest | undefined): boolean {\n if (!request || request.type !== \"object\") {\n return false;\n }\n\n const processFields = (fields: ContractField[] | undefined): boolean => {\n return (\n !isEmpty(fields) &&\n fields!.some(\n (field) =>\n [\"file\", \"file[]\"].includes((field as ContractFieldItem).type) ||\n processFields((field as ContractFieldItem).fields)\n )\n );\n };\n\n return processFields(request.fields);\n}\n\nexport function transformFormData(\n data: Record<string, unknown> | FormData\n): FormData {\n if (data instanceof FormData) {\n return data;\n }\n\n const formData = new FormData();\n for (const [key, value] of Object.entries(data)) {\n if (Array.isArray(value)) {\n value.forEach((v) => {\n formData.append(key, v);\n });\n } else if (\n isObject(value) &&\n !(value instanceof Blob) &&\n !(value instanceof Date)\n ) {\n Object.entries(value).forEach(([k, v]) => {\n formData.append(`${key}[${k}]`, v);\n });\n } else {\n formData.append(key, value as string);\n }\n }\n\n return formData;\n}\n\nexport async function callFlowApi(\n {\n url,\n originalUri,\n method = \"GET\",\n responseWrapper = true,\n ext_fields = [],\n request,\n isFileType,\n stream,\n }: CustomApiParams,\n ...args: unknown[]\n): Promise<unknown> {\n const isSimpleRequest = [\"get\", \"delete\", \"head\"].includes(\n method.toLowerCase()\n );\n const defaultOptions: HttpOptions = isFileType\n ? { responseType: \"blob\" }\n : {};\n let response: { data?: unknown };\n\n if (isSimpleRequest) {\n const noParams =\n originalUri && request?.type === \"object\"\n ? (originalUri.match(/:([^/]+)/g)?.length ?? 0) ===\n (request.fields?.length ?? 0)\n : false;\n let params: HttpParams | undefined;\n let options: HttpOptions | undefined;\n\n if (noParams) {\n [options] = args as [HttpOptions?];\n } else {\n [params, options] = args as [HttpParams?, HttpOptions?];\n }\n\n if (stream) {\n const stream = await createSSEStream(http.getUrlWithParams(url, params), {\n ...defaultOptions,\n ...options,\n method,\n headers: Object.fromEntries([\n ...new Headers(options?.headers ?? {}).entries(),\n ]),\n });\n return stream;\n }\n\n response = await http.simpleRequest(method, url, {\n params,\n ...defaultOptions,\n ...options,\n });\n } else {\n const isUploadType = hasFileType(request);\n const result = processExtFields(ext_fields, ...args);\n\n const data = isUploadType\n ? transformFormData(result.data as any)\n : result.data;\n\n if (stream) {\n const { body, headers } = http.getBodyAndHeaders(\n data,\n result.options?.headers\n );\n const stream = await createSSEStream(url, {\n ...defaultOptions,\n ...result.options,\n method,\n headers: Object.fromEntries([...new Headers(headers ?? {}).entries()]),\n body,\n });\n return stream;\n }\n\n response = await http.requestWithBody(method, url, data, {\n ...defaultOptions,\n ...result.options,\n });\n }\n\n return (isFileType ? false : responseWrapper) ? response.data : response;\n}\n\nexport function registerFlowApiProvider(): void {\n customElements.define(FLOW_API_PROVIDER, createProviderClass(callFlowApi));\n}\n"],"mappings":";;AAAA,SAASA,mBAAmB,QAAQ,0BAA0B;AAO9D,SAASC,IAAI,QAAiC,iBAAiB;AAC/D,SAASC,OAAO,EAAEC,QAAQ,QAAQ,QAAQ;AAC1C,SAASC,eAAe,QAAQ,0BAA0B;AAE1D,OAAO,IAAMC,iBAAiB,GAAG,wBAAwB;AAYzD,SAASC,SAASA,CAACC,UAAsB,EAAEC,IAAsB,EAAW;EAC1E,OAAOD,UAAU,CAACE,IAAI,CAAEC,IAAI,IAAKA,IAAI,CAACC,MAAM,KAAKH,IAAI,CAAC;AACxD;AAEA,OAAO,SAASI,gBAAgBA,CAC9BL,UAAsB,EAEmB;EACzC,IAAMM,cAAc,GAAGP,SAAS,CAACC,UAAU,EAAE,OAAO,CAAC;EACrD,IAAMO,aAAa,GAAGR,SAAS,CAACC,UAAU,EAAE,MAAM,CAAC;EAAC,SAAAQ,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAHjDC,IAAI,OAAAC,KAAA,CAAAJ,IAAA,OAAAA,IAAA,WAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA;IAAJF,IAAI,CAAAE,IAAA,QAAAJ,SAAA,CAAAI,IAAA;EAAA;EAKP,IAAIP,cAAc,EAAE;IAClB,IAAIC,aAAa,EAAE;MACjB,IAAM,CAACO,KAAI,EAAEC,OAAM,EAAEC,QAAO,CAAC,GAAGL,IAAI;MACpC,OAAO;QACLG,IAAI,EAAEA,KAAI;QACVE,OAAO,EAAAC,aAAA;UACLF,MAAM,EAAEA;QAAoB,GACxBC,QAAO;MAEf,CAAC;IACH;IAEA,IAAM,CAACD,MAAM,EAAEC,SAAO,CAAC,GAAGL,IAAI;IAC9B,OAAO;MACLG,IAAI,EAAE,CAAC,CAAC;MACRE,OAAO,EAAAC,aAAA;QACLF,MAAM,EAAEA;MAAoB,GACxBC,SAAO;IAEf,CAAC;EACH;;EAEA;EACA,IAAM,CAACF,IAAI,EAAEE,OAAO,CAAC,GAAGL,IAAI;EAC5B,OAAO;IACLG,IAAI;IACJE,OAAO,EAAEA;EACX,CAAC;AACH;AAEA,OAAO,SAASE,WAAWA,CAACC,OAAoC,EAAW;EACzE,IAAI,CAACA,OAAO,IAAIA,OAAO,CAAClB,IAAI,KAAK,QAAQ,EAAE;IACzC,OAAO,KAAK;EACd;EAEA,IAAMmB,aAAa,GAAIC,MAAmC,IAAc;IACtE,OACE,CAAC1B,OAAO,CAAC0B,MAAM,CAAC,IAChBA,MAAM,CAAEnB,IAAI,CACToB,KAAK,IACJ,CAAC,MAAM,EAAE,QAAQ,CAAC,CAACC,QAAQ,CAAED,KAAK,CAAuBrB,IAAI,CAAC,IAC9DmB,aAAa,CAAEE,KAAK,CAAuBD,MAAM,CACrD,CAAC;EAEL,CAAC;EAED,OAAOD,aAAa,CAACD,OAAO,CAACE,MAAM,CAAC;AACtC;AAEA,OAAO,SAASG,iBAAiBA,CAC/BV,IAAwC,EAC9B;EACV,IAAIA,IAAI,YAAYW,QAAQ,EAAE;IAC5B,OAAOX,IAAI;EACb;EAEA,IAAMY,QAAQ,GAAG,IAAID,QAAQ,CAAC,CAAC;EAAC,IAAAE,KAAA,YAAAA,CAAAC,GAAA,EACiB;IAC/C,IAAIhB,KAAK,CAACiB,OAAO,CAACC,KAAK,CAAC,EAAE;MACxBA,KAAK,CAACC,OAAO,CAAEC,CAAC,IAAK;QACnBN,QAAQ,CAACO,MAAM,CAACL,GAAG,EAAEI,CAAC,CAAC;MACzB,CAAC,CAAC;IACJ,CAAC,MAAM,IACLpC,QAAQ,CAACkC,KAAK,CAAC,IACf,EAAEA,KAAK,YAAYI,IAAI,CAAC,IACxB,EAAEJ,KAAK,YAAYK,IAAI,CAAC,EACxB;MACAC,MAAM,CAACC,OAAO,CAACP,KAAK,CAAC,CAACC,OAAO,CAACO,IAAA,IAAY;QAAA,IAAX,CAACC,CAAC,EAAEP,CAAC,CAAC,GAAAM,IAAA;QACnCZ,QAAQ,CAACO,MAAM,IAAAO,MAAA,CAAIZ,GAAG,OAAAY,MAAA,CAAID,CAAC,QAAKP,CAAC,CAAC;MACpC,CAAC,CAAC;IACJ,CAAC,MAAM;MACLN,QAAQ,CAACO,MAAM,CAACL,GAAG,EAAEE,KAAe,CAAC;IACvC;EACF,CAAC;EAhBD,KAAK,IAAM,CAACF,GAAG,EAAEE,KAAK,CAAC,IAAIM,MAAM,CAACC,OAAO,CAACvB,IAAI,CAAC;IAAAa,KAAA,CAAAC,GAAA;EAAA;EAkB/C,OAAOF,QAAQ;AACjB;AAEA,gBAAsBe,WAAWA,CAAAC,EAAA;EAAA,OAAAC,YAAA,CAAAC,KAAA,OAAAnC,SAAA;AAAA;AAmFhC,SAAAkC,aAAA;EAAAA,YAAA,GAAAE,iBAAA,CAnFM,WAAAC,KAAA,EAYa;IAAA,IAXlB;MACEC,GAAG;MACHC,WAAW;MACXC,MAAM,GAAG,KAAK;MACdC,eAAe,GAAG,IAAI;MACtBlD,UAAU,GAAG,EAAE;MACfmB,OAAO;MACPgC,UAAU;MACVC;IACe,CAAC,GAAAN,KAAA;IAGlB,IAAMO,eAAe,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC9B,QAAQ,CACxD0B,MAAM,CAACK,WAAW,CAAC,CACrB,CAAC;IACD,IAAMC,cAA2B,GAAGJ,UAAU,GAC1C;MAAEK,YAAY,EAAE;IAAO,CAAC,GACxB,CAAC,CAAC;IACN,IAAIC,QAA4B;IAAC,SAAAC,KAAA,GAAAjD,SAAA,CAAAC,MAAA,EAR9BC,IAAI,OAAAC,KAAA,CAAA8C,KAAA,OAAAA,KAAA,WAAAC,KAAA,MAAAA,KAAA,GAAAD,KAAA,EAAAC,KAAA;MAAJhD,IAAI,CAAAgD,KAAA,QAAAlD,SAAA,CAAAkD,KAAA;IAAA;IAUP,IAAIN,eAAe,EAAE;MAAA,IAAAO,qBAAA,EAAAC,kBAAA,EAAAC,qBAAA,EAAAC,eAAA;MACnB,IAAMC,QAAQ,GACZhB,WAAW,IAAI,CAAA7B,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAElB,IAAI,MAAK,QAAQ,GACrC,EAAA2D,qBAAA,IAAAC,kBAAA,GAACb,WAAW,CAACiB,KAAK,CAAC,WAAW,CAAC,cAAAJ,kBAAA,uBAA9BA,kBAAA,CAAgCnD,MAAM,cAAAkD,qBAAA,cAAAA,qBAAA,GAAI,CAAC,QAAAE,qBAAA,IAAAC,eAAA,GAC3C5C,OAAO,CAACE,MAAM,cAAA0C,eAAA,uBAAdA,eAAA,CAAgBrD,MAAM,cAAAoD,qBAAA,cAAAA,qBAAA,GAAI,CAAC,CAAC,GAC7B,KAAK;MACX,IAAI/C,MAA8B;MAClC,IAAIC,OAAgC;MAEpC,IAAIgD,QAAQ,EAAE;QACZ,CAAChD,OAAO,CAAC,GAAGL,IAAsB;MACpC,CAAC,MAAM;QACL,CAACI,MAAM,EAAEC,OAAO,CAAC,GAAGL,IAAmC;MACzD;MAEA,IAAIyC,MAAM,EAAE;QAAA,IAAAc,gBAAA,EAAAC,SAAA;QACV,IAAMf,OAAM,SAASvD,eAAe,CAACH,IAAI,CAAC0E,gBAAgB,CAACrB,GAAG,EAAEhC,MAAM,CAAC,EAAAE,aAAA,CAAAA,aAAA,CAAAA,aAAA,KAClEsC,cAAc,GACdvC,OAAO;UACViC,MAAM;UACNoB,OAAO,EAAEjC,MAAM,CAACkC,WAAW,CAAC,CAC1B,GAAG,IAAIC,OAAO,EAAAL,gBAAA,IAAAC,SAAA,GAACnD,OAAO,cAAAmD,SAAA,uBAAPA,SAAA,CAASE,OAAO,cAAAH,gBAAA,cAAAA,gBAAA,GAAI,CAAC,CAAC,CAAC,CAAC7B,OAAO,CAAC,CAAC,CACjD;QAAC,EACH,CAAC;QACF,OAAOe,OAAM;MACf;MAEAK,QAAQ,SAAS/D,IAAI,CAAC8E,aAAa,CAACvB,MAAM,EAAEF,GAAG,EAAA9B,aAAA,CAAAA,aAAA;QAC7CF;MAAM,GACHwC,cAAc,GACdvC,OAAO,CACX,CAAC;IACJ,CAAC,MAAM;MACL,IAAMyD,YAAY,GAAGvD,WAAW,CAACC,OAAO,CAAC;MACzC,IAAMuD,MAAM,GAAGrE,gBAAgB,CAACL,UAAU,EAAE,GAAGW,IAAI,CAAC;MAEpD,IAAMG,IAAI,GAAG2D,YAAY,GACrBjD,iBAAiB,CAACkD,MAAM,CAAC5D,IAAW,CAAC,GACrC4D,MAAM,CAAC5D,IAAI;MAEf,IAAIsC,MAAM,EAAE;QAAA,IAAAuB,eAAA;QACV,IAAM;UAAEC,IAAI;UAAEP;QAAQ,CAAC,GAAG3E,IAAI,CAACmF,iBAAiB,CAC9C/D,IAAI,GAAA6D,eAAA,GACJD,MAAM,CAAC1D,OAAO,cAAA2D,eAAA,uBAAdA,eAAA,CAAgBN,OAClB,CAAC;QACD,IAAMjB,QAAM,SAASvD,eAAe,CAACkD,GAAG,EAAA9B,aAAA,CAAAA,aAAA,CAAAA,aAAA,KACnCsC,cAAc,GACdmB,MAAM,CAAC1D,OAAO;UACjBiC,MAAM;UACNoB,OAAO,EAAEjC,MAAM,CAACkC,WAAW,CAAC,CAAC,GAAG,IAAIC,OAAO,CAACF,OAAO,aAAPA,OAAO,cAAPA,OAAO,GAAI,CAAC,CAAC,CAAC,CAAChC,OAAO,CAAC,CAAC,CAAC,CAAC;UACtEuC;QAAI,EACL,CAAC;QACF,OAAOxB,QAAM;MACf;MAEAK,QAAQ,SAAS/D,IAAI,CAACoF,eAAe,CAAC7B,MAAM,EAAEF,GAAG,EAAEjC,IAAI,EAAAG,aAAA,CAAAA,aAAA,KAClDsC,cAAc,GACdmB,MAAM,CAAC1D,OAAO,CAClB,CAAC;IACJ;IAEA,OAAO,CAACmC,UAAU,GAAG,KAAK,GAAGD,eAAe,IAAIO,QAAQ,CAAC3C,IAAI,GAAG2C,QAAQ;EAC1E,CAAC;EAAA,OAAAd,YAAA,CAAAC,KAAA,OAAAnC,SAAA;AAAA;AAED,OAAO,SAASsE,uBAAuBA,CAAA,EAAS;EAC9CC,cAAc,CAACC,MAAM,CAACnF,iBAAiB,EAAEL,mBAAmB,CAACgD,WAAW,CAAC,CAAC;AAC5E","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"FlowApiProvider.js","names":["createProviderClass","http","isEmpty","isObject","createSSEStream","FLOW_API_PROVIDER","hasFields","ext_fields","type","some","item","source","processExtFields","hasQueryParams","hasBodyParams","_len","arguments","length","args","Array","_key","data","params","options","hasFileType","request","processFields","fields","field","includes","transformFormData","FormData","formData","key","value","Object","entries","isArray","forEach","v","append","Blob","Date","_ref","k","callFlowApi","_ref2","url","originalUri","method","responseWrapper","isFileType","stream","isSimpleRequest","toLowerCase","defaultOptions","responseType","response","_len2","_key2","_originalUri$match","_request$fields","noParams","match","_options","getUrlWithParams","headers","fromEntries","Headers","simpleRequest","isUploadType","result","_result$options","body","getBodyAndHeaders","requestWithBody","registerFlowApiProvider","customElements","define"],"sources":["../../../src/flowApi/FlowApiProvider.ts"],"sourcesContent":["import { createProviderClass } from \"@next-core/utils/general\";\nimport {\n ExtField,\n ContractRequest,\n ContractField,\n ContractFieldItem,\n} from \"@next-core/types\";\nimport { http, HttpOptions, HttpParams } from \"@next-core/http\";\nimport { isEmpty, isObject } from \"lodash\";\nimport { createSSEStream } from \"@next-core/utils/general\";\n\nexport const FLOW_API_PROVIDER = \"core.provider-flow-api\";\n\nexport interface CustomApiParams {\n url: string;\n originalUri?: string;\n method?: string;\n responseWrapper?: boolean;\n ext_fields?: ExtField[];\n request?: ContractRequest;\n isFileType?: boolean;\n stream?: boolean;\n}\nfunction hasFields(ext_fields: ExtField[], type: \"query\" | \"body\"): boolean {\n return ext_fields.some((item) => item.source === type);\n}\n\nexport function processExtFields(\n ext_fields: ExtField[],\n ...args: unknown[]\n): { data: unknown; options: HttpOptions } {\n const hasQueryParams = hasFields(ext_fields, \"query\");\n const hasBodyParams = hasFields(ext_fields, \"body\");\n\n if (hasQueryParams) {\n if (hasBodyParams) {\n const [data, params, options] = args;\n return {\n data: data,\n options: {\n params: params as HttpParams,\n ...(options as HttpOptions),\n },\n };\n }\n\n const [params, options] = args;\n return {\n data: {},\n options: {\n params: params as HttpParams,\n ...(options as HttpOptions),\n },\n };\n }\n\n // only hasBodyParams or default\n const [data, options] = args;\n return {\n data,\n options: options as HttpOptions,\n };\n}\n\nexport function hasFileType(request: ContractRequest | undefined): boolean {\n if (!request || request.type !== \"object\") {\n return false;\n }\n\n const processFields = (fields: ContractField[] | undefined): boolean => {\n return (\n !isEmpty(fields) &&\n fields!.some(\n (field) =>\n [\"file\", \"file[]\"].includes((field as ContractFieldItem).type) ||\n processFields((field as ContractFieldItem).fields)\n )\n );\n };\n\n return processFields(request.fields);\n}\n\nexport function transformFormData(\n data: Record<string, unknown> | FormData\n): FormData {\n if (data instanceof FormData) {\n return data;\n }\n\n const formData = new FormData();\n for (const [key, value] of Object.entries(data)) {\n if (Array.isArray(value)) {\n value.forEach((v) => {\n formData.append(key, v);\n });\n } else if (\n isObject(value) &&\n !(value instanceof Blob) &&\n !(value instanceof Date)\n ) {\n Object.entries(value).forEach(([k, v]) => {\n formData.append(`${key}[${k}]`, v);\n });\n } else {\n formData.append(key, value as string);\n }\n }\n\n return formData;\n}\n\nexport async function callFlowApi(\n {\n url,\n originalUri,\n method = \"GET\",\n responseWrapper = true,\n ext_fields = [],\n request,\n isFileType,\n stream,\n }: CustomApiParams,\n ...args: unknown[]\n): Promise<unknown> {\n const isSimpleRequest = [\"get\", \"delete\", \"head\"].includes(\n method.toLowerCase()\n );\n const defaultOptions: HttpOptions = isFileType\n ? { responseType: \"blob\" }\n : {};\n let response: { data?: unknown };\n\n if (isSimpleRequest) {\n const noParams =\n originalUri && request?.type === \"object\"\n ? (originalUri.match(/:([^/]+)/g)?.length ?? 0) ===\n (request.fields?.length ?? 0)\n : false;\n let params: HttpParams | undefined;\n let options: HttpOptions | undefined;\n\n if (noParams) {\n [options] = args as [HttpOptions?];\n } else {\n [params, options] = args as [HttpParams?, HttpOptions?];\n }\n\n if (stream) {\n const stream = await createSSEStream(http.getUrlWithParams(url, params), {\n ...defaultOptions,\n ...options,\n method,\n headers: Object.fromEntries([\n ...new Headers(options?.headers ?? {}).entries(),\n ]),\n });\n return stream;\n }\n\n response = await http.simpleRequest(method, url, {\n params,\n ...defaultOptions,\n ...options,\n });\n } else {\n const isUploadType = hasFileType(request);\n const result = processExtFields(ext_fields, ...args);\n\n const data = isUploadType\n ? transformFormData(result.data as any)\n : result.data;\n\n if (stream) {\n const { body, headers } = http.getBodyAndHeaders(\n data,\n result.options?.headers\n );\n const stream = await createSSEStream(url, {\n ...defaultOptions,\n ...result.options,\n method,\n headers: Object.fromEntries([...new Headers(headers ?? {}).entries()]),\n body,\n });\n return stream;\n }\n\n response = await http.requestWithBody(method, url, data, {\n ...defaultOptions,\n ...result.options,\n });\n }\n\n return (isFileType ? false : responseWrapper) ? response.data : response;\n}\n\nexport function registerFlowApiProvider(): void {\n customElements.define(FLOW_API_PROVIDER, createProviderClass(callFlowApi));\n}\n"],"mappings":"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","ignoreList":[]}
|
package/dist/esm/index.js
CHANGED
|
@@ -11,11 +11,11 @@ import * as _menu from "./menu/index.js";
|
|
|
11
11
|
export { _menu as menu };
|
|
12
12
|
import * as _analytics from "./analytics/index.js";
|
|
13
13
|
export { _analytics as analytics };
|
|
14
|
-
export
|
|
14
|
+
export const checkPermissions = Object.freeze({
|
|
15
15
|
checkPermissions: _checkPermissions,
|
|
16
16
|
preCheckPermissions,
|
|
17
17
|
preCheckPermissionsForBrickOrRoute
|
|
18
18
|
});
|
|
19
|
-
export
|
|
20
|
-
export
|
|
19
|
+
export const messageDispatcher = new MessageDispatcher();
|
|
20
|
+
export const auth = authV2Factory() || authV3;
|
|
21
21
|
//# sourceMappingURL=index.js.map
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["checkPermissions","_checkPermissions","preCheckPermissions","preCheckPermissionsForBrickOrRoute","MessageDispatcher","authV3","authV2Factory","_checkInstalledApps","checkInstalledApps","_flowApi","flowApi","_menu","menu","_analytics","analytics","Object","freeze","messageDispatcher","auth"],"sources":["../../src/index.ts"],"sourcesContent":["// istanbul ignore file\nimport {\n checkPermissions as _checkPermissions,\n preCheckPermissions,\n preCheckPermissionsForBrickOrRoute,\n} from \"./checkPermissions.js\";\nimport { MessageDispatcher } from \"./websocket/MessageDispatcher.js\";\nimport * as authV3 from \"./auth.js\";\nimport { authV2Factory } from \"./auth-v2.js\";\n\nexport * as checkInstalledApps from \"./checkInstalledApps.js\";\nexport * as flowApi from \"./flowApi/index.js\";\nexport * as menu from \"./menu/index.js\";\nexport * as analytics from \"./analytics/index.js\";\n\nexport const checkPermissions = Object.freeze({\n checkPermissions: _checkPermissions,\n preCheckPermissions,\n preCheckPermissionsForBrickOrRoute,\n});\n\nexport const messageDispatcher = new MessageDispatcher();\n\nexport const auth = authV2Factory() || authV3;\n"],"mappings":"AAAA;AACA,SACEA,gBAAgB,IAAIC,iBAAiB,EACrCC,mBAAmB,EACnBC,kCAAkC,QAC7B,uBAAuB;AAC9B,SAASC,iBAAiB,QAAQ,kCAAkC;AACpE,OAAO,KAAKC,MAAM,MAAM,WAAW;AACnC,SAASC,aAAa,QAAQ,cAAc;AAAC,YAAAC,mBAAA,MAET,yBAAyB;AAAA,SAAAA,mBAAA,IAAjDC,kBAAkB;AAAA,YAAAC,QAAA,MACL,oBAAoB;AAAA,SAAAA,QAAA,IAAjCC,OAAO;AAAA,YAAAC,KAAA,MACG,iBAAiB;AAAA,SAAAA,KAAA,IAA3BC,IAAI;AAAA,YAAAC,UAAA,MACW,sBAAsB;AAAA,SAAAA,UAAA,IAArCC,SAAS;AAErB,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","names":["checkPermissions","_checkPermissions","preCheckPermissions","preCheckPermissionsForBrickOrRoute","MessageDispatcher","authV3","authV2Factory","_checkInstalledApps","checkInstalledApps","_flowApi","flowApi","_menu","menu","_analytics","analytics","Object","freeze","messageDispatcher","auth"],"sources":["../../src/index.ts"],"sourcesContent":["// istanbul ignore file\nimport {\n checkPermissions as _checkPermissions,\n preCheckPermissions,\n preCheckPermissionsForBrickOrRoute,\n} from \"./checkPermissions.js\";\nimport { MessageDispatcher } from \"./websocket/MessageDispatcher.js\";\nimport * as authV3 from \"./auth.js\";\nimport { authV2Factory } from \"./auth-v2.js\";\n\nexport * as checkInstalledApps from \"./checkInstalledApps.js\";\nexport * as flowApi from \"./flowApi/index.js\";\nexport * as menu from \"./menu/index.js\";\nexport * as analytics from \"./analytics/index.js\";\n\nexport const checkPermissions = Object.freeze({\n checkPermissions: _checkPermissions,\n preCheckPermissions,\n preCheckPermissionsForBrickOrRoute,\n});\n\nexport const messageDispatcher = new MessageDispatcher();\n\nexport const auth = authV2Factory() || authV3;\n"],"mappings":"AAAA;AACA,SACEA,gBAAgB,IAAIC,iBAAiB,EACrCC,mBAAmB,EACnBC,kCAAkC,QAC7B,uBAAuB;AAC9B,SAASC,iBAAiB,QAAQ,kCAAkC;AACpE,OAAO,KAAKC,MAAM,MAAM,WAAW;AACnC,SAASC,aAAa,QAAQ,cAAc;AAAC,YAAAC,mBAAA,MAET,yBAAyB;AAAA,SAAAA,mBAAA,IAAjDC,kBAAkB;AAAA,YAAAC,QAAA,MACL,oBAAoB;AAAA,SAAAA,QAAA,IAAjCC,OAAO;AAAA,YAAAC,KAAA,MACG,iBAAiB;AAAA,SAAAA,KAAA,IAA3BC,IAAI;AAAA,YAAAC,UAAA,MACW,sBAAsB;AAAA,SAAAA,UAAA,IAArCC,SAAS;AAErB,OAAO,MAAMd,gBAAgB,GAAGe,MAAM,CAACC,MAAM,CAAC;EAC5ChB,gBAAgB,EAAEC,iBAAiB;EACnCC,mBAAmB;EACnBC;AACF,CAAC,CAAC;AAEF,OAAO,MAAMc,iBAAiB,GAAG,IAAIb,iBAAiB,CAAC,CAAC;AAExD,OAAO,MAAMc,IAAI,GAAGZ,aAAa,CAAC,CAAC,IAAID,MAAM","ignoreList":[]}
|
|
@@ -1,14 +1,10 @@
|
|
|
1
|
-
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
2
|
-
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
|
3
|
-
import _objectSpread from "@babel/runtime/helpers/objectSpread2";
|
|
4
|
-
var _excluded = ["children"];
|
|
5
1
|
import { symbolAppId, symbolMenuI18nNamespace, symbolOverrideApp } from "./constants.js";
|
|
6
2
|
import { hasOwnProperty, isObject } from "@next-core/utils/general";
|
|
7
3
|
import { pipes } from "@next-core/pipes";
|
|
8
4
|
import { isEvaluable } from "@next-core/cook";
|
|
9
5
|
export function computeMenuData(data, overrideAppId, runtimeContext, helpers) {
|
|
10
6
|
if ("titleDataSource" in data && isObject(data.titleDataSource) && Object.entries(data.titleDataSource).every(_ref => {
|
|
11
|
-
|
|
7
|
+
let [, value] = _ref;
|
|
12
8
|
return value === null || value === "";
|
|
13
9
|
})) {
|
|
14
10
|
delete data.titleDataSource;
|
|
@@ -17,39 +13,36 @@ export function computeMenuData(data, overrideAppId, runtimeContext, helpers) {
|
|
|
17
13
|
delete data.if;
|
|
18
14
|
}
|
|
19
15
|
if ("to" in data && data.to && !isEvaluable(data.to)) {
|
|
20
|
-
|
|
16
|
+
const yaml = pipes.yaml(data.to);
|
|
21
17
|
if (isObject(yaml) && ["pathname", "search", "hash"].some(key => hasOwnProperty(yaml, key))) {
|
|
22
18
|
data.to = yaml;
|
|
23
19
|
}
|
|
24
20
|
}
|
|
25
|
-
|
|
21
|
+
let newRuntimeContext = runtimeContext;
|
|
26
22
|
if (overrideAppId !== runtimeContext.app.id) {
|
|
27
23
|
var _helpers$getStoryboar;
|
|
28
|
-
|
|
29
|
-
newRuntimeContext =
|
|
24
|
+
const overrideApp = window.STANDALONE_MICRO_APPS ? data[symbolOverrideApp] : (_helpers$getStoryboar = helpers.getStoryboardByAppId(overrideAppId)) === null || _helpers$getStoryboar === void 0 ? void 0 : _helpers$getStoryboar.app;
|
|
25
|
+
newRuntimeContext = {
|
|
26
|
+
...runtimeContext,
|
|
30
27
|
overrideApp,
|
|
31
28
|
appendI18nNamespace: data[symbolMenuI18nNamespace]
|
|
32
|
-
}
|
|
29
|
+
};
|
|
33
30
|
}
|
|
34
31
|
return helpers.asyncComputeRealValue(data, newRuntimeContext, {
|
|
35
32
|
ignoreSymbols: true
|
|
36
33
|
});
|
|
37
34
|
}
|
|
38
35
|
export function computeMenuItems(items, runtimeContext, helpers) {
|
|
39
|
-
return Promise.all(items.map(
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
});
|
|
49
|
-
});
|
|
50
|
-
return function (_x) {
|
|
51
|
-
return _ref3.apply(this, arguments);
|
|
36
|
+
return Promise.all(items.map(async _ref2 => {
|
|
37
|
+
let {
|
|
38
|
+
children,
|
|
39
|
+
...rest
|
|
40
|
+
} = _ref2;
|
|
41
|
+
const [computedRest, computedChildren] = await Promise.all([computeMenuData(rest, rest[symbolAppId], runtimeContext, helpers), children && (await computeMenuItems(children, runtimeContext, helpers))]);
|
|
42
|
+
return {
|
|
43
|
+
...computedRest,
|
|
44
|
+
children: computedChildren
|
|
52
45
|
};
|
|
53
|
-
}
|
|
46
|
+
}));
|
|
54
47
|
}
|
|
55
48
|
//# sourceMappingURL=computeMenuData.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"computeMenuData.js","names":["symbolAppId","symbolMenuI18nNamespace","symbolOverrideApp","hasOwnProperty","isObject","pipes","isEvaluable","computeMenuData","data","overrideAppId","runtimeContext","helpers","titleDataSource","Object","entries","every","_ref","value","if","to","yaml","some","key","newRuntimeContext","app","id","_helpers$getStoryboar","overrideApp","window","STANDALONE_MICRO_APPS","getStoryboardByAppId","
|
|
1
|
+
{"version":3,"file":"computeMenuData.js","names":["symbolAppId","symbolMenuI18nNamespace","symbolOverrideApp","hasOwnProperty","isObject","pipes","isEvaluable","computeMenuData","data","overrideAppId","runtimeContext","helpers","titleDataSource","Object","entries","every","_ref","value","if","to","yaml","some","key","newRuntimeContext","app","id","_helpers$getStoryboar","overrideApp","window","STANDALONE_MICRO_APPS","getStoryboardByAppId","appendI18nNamespace","asyncComputeRealValue","ignoreSymbols","computeMenuItems","items","Promise","all","map","_ref2","children","rest","computedRest","computedChildren"],"sources":["../../../src/menu/computeMenuData.ts"],"sourcesContent":["import type {\n RuntimeContext,\n RuntimeHelpers,\n RuntimeMenuItemRawData,\n RuntimeMenuRawData,\n} from \"./interfaces.js\";\nimport {\n symbolAppId,\n symbolMenuI18nNamespace,\n symbolOverrideApp,\n} from \"./constants.js\";\nimport { hasOwnProperty, isObject } from \"@next-core/utils/general\";\nimport { pipes } from \"@next-core/pipes\";\nimport { isEvaluable } from \"@next-core/cook\";\n\ntype RuntimeMenuRestRawData = Omit<RuntimeMenuRawData, \"app\" | \"items\">;\ntype RuntimeMenuItemRestRawData = Omit<RuntimeMenuItemRawData, \"children\">;\n\nexport function computeMenuData<\n T extends RuntimeMenuRestRawData | RuntimeMenuItemRestRawData,\n>(\n data: T,\n overrideAppId: string,\n runtimeContext: RuntimeContext,\n helpers: RuntimeHelpers\n): Promise<T> {\n if (\n \"titleDataSource\" in data &&\n isObject(data.titleDataSource) &&\n Object.entries(data.titleDataSource).every(\n ([, value]) => value === null || value === \"\"\n )\n ) {\n delete data.titleDataSource;\n }\n if (\"if\" in data && data.if === null) {\n delete data.if;\n }\n if (\"to\" in data && data.to && !isEvaluable(data.to as string)) {\n const yaml = pipes.yaml(data.to as string);\n\n if (\n isObject(yaml) &&\n [\"pathname\", \"search\", \"hash\"].some((key) => hasOwnProperty(yaml, key))\n ) {\n data.to = yaml;\n }\n }\n\n let newRuntimeContext = runtimeContext;\n if (overrideAppId !== runtimeContext.app.id) {\n const overrideApp = window.STANDALONE_MICRO_APPS\n ? data[symbolOverrideApp]\n : helpers.getStoryboardByAppId(overrideAppId)?.app;\n newRuntimeContext = {\n ...runtimeContext,\n overrideApp,\n appendI18nNamespace: data[symbolMenuI18nNamespace],\n };\n }\n return helpers.asyncComputeRealValue(data, newRuntimeContext, {\n ignoreSymbols: true,\n }) as Promise<T>;\n}\n\nexport function computeMenuItems(\n items: RuntimeMenuItemRawData[],\n runtimeContext: RuntimeContext,\n helpers: RuntimeHelpers\n): Promise<RuntimeMenuItemRawData[]> {\n return Promise.all(\n items.map(async ({ children, ...rest }) => {\n const [computedRest, computedChildren] = await Promise.all([\n computeMenuData(rest, rest[symbolAppId], runtimeContext, helpers),\n children && (await computeMenuItems(children, runtimeContext, helpers)),\n ]);\n return {\n ...computedRest,\n children: computedChildren,\n };\n })\n );\n}\n"],"mappings":"AAMA,SACEA,WAAW,EACXC,uBAAuB,EACvBC,iBAAiB,QACZ,gBAAgB;AACvB,SAASC,cAAc,EAAEC,QAAQ,QAAQ,0BAA0B;AACnE,SAASC,KAAK,QAAQ,kBAAkB;AACxC,SAASC,WAAW,QAAQ,iBAAiB;AAK7C,OAAO,SAASC,eAAeA,CAG7BC,IAAO,EACPC,aAAqB,EACrBC,cAA8B,EAC9BC,OAAuB,EACX;EACZ,IACE,iBAAiB,IAAIH,IAAI,IACzBJ,QAAQ,CAACI,IAAI,CAACI,eAAe,CAAC,IAC9BC,MAAM,CAACC,OAAO,CAACN,IAAI,CAACI,eAAe,CAAC,CAACG,KAAK,CACxCC,IAAA;IAAA,IAAC,GAAGC,KAAK,CAAC,GAAAD,IAAA;IAAA,OAAKC,KAAK,KAAK,IAAI,IAAIA,KAAK,KAAK,EAAE;EAAA,CAC/C,CAAC,EACD;IACA,OAAOT,IAAI,CAACI,eAAe;EAC7B;EACA,IAAI,IAAI,IAAIJ,IAAI,IAAIA,IAAI,CAACU,EAAE,KAAK,IAAI,EAAE;IACpC,OAAOV,IAAI,CAACU,EAAE;EAChB;EACA,IAAI,IAAI,IAAIV,IAAI,IAAIA,IAAI,CAACW,EAAE,IAAI,CAACb,WAAW,CAACE,IAAI,CAACW,EAAY,CAAC,EAAE;IAC9D,MAAMC,IAAI,GAAGf,KAAK,CAACe,IAAI,CAACZ,IAAI,CAACW,EAAY,CAAC;IAE1C,IACEf,QAAQ,CAACgB,IAAI,CAAC,IACd,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,CAAC,CAACC,IAAI,CAAEC,GAAG,IAAKnB,cAAc,CAACiB,IAAI,EAAEE,GAAG,CAAC,CAAC,EACvE;MACAd,IAAI,CAACW,EAAE,GAAGC,IAAI;IAChB;EACF;EAEA,IAAIG,iBAAiB,GAAGb,cAAc;EACtC,IAAID,aAAa,KAAKC,cAAc,CAACc,GAAG,CAACC,EAAE,EAAE;IAAA,IAAAC,qBAAA;IAC3C,MAAMC,WAAW,GAAGC,MAAM,CAACC,qBAAqB,GAC5CrB,IAAI,CAACN,iBAAiB,CAAC,IAAAwB,qBAAA,GACvBf,OAAO,CAACmB,oBAAoB,CAACrB,aAAa,CAAC,cAAAiB,qBAAA,uBAA3CA,qBAAA,CAA6CF,GAAG;IACpDD,iBAAiB,GAAG;MAClB,GAAGb,cAAc;MACjBiB,WAAW;MACXI,mBAAmB,EAAEvB,IAAI,CAACP,uBAAuB;IACnD,CAAC;EACH;EACA,OAAOU,OAAO,CAACqB,qBAAqB,CAACxB,IAAI,EAAEe,iBAAiB,EAAE;IAC5DU,aAAa,EAAE;EACjB,CAAC,CAAC;AACJ;AAEA,OAAO,SAASC,gBAAgBA,CAC9BC,KAA+B,EAC/BzB,cAA8B,EAC9BC,OAAuB,EACY;EACnC,OAAOyB,OAAO,CAACC,GAAG,CAChBF,KAAK,CAACG,GAAG,CAAC,MAAAC,KAAA,IAAiC;IAAA,IAA1B;MAAEC,QAAQ;MAAE,GAAGC;IAAK,CAAC,GAAAF,KAAA;IACpC,MAAM,CAACG,YAAY,EAAEC,gBAAgB,CAAC,GAAG,MAAMP,OAAO,CAACC,GAAG,CAAC,CACzD9B,eAAe,CAACkC,IAAI,EAAEA,IAAI,CAACzC,WAAW,CAAC,EAAEU,cAAc,EAAEC,OAAO,CAAC,EACjE6B,QAAQ,KAAK,MAAMN,gBAAgB,CAACM,QAAQ,EAAE9B,cAAc,EAAEC,OAAO,CAAC,CAAC,CACxE,CAAC;IACF,OAAO;MACL,GAAG+B,YAAY;MACfF,QAAQ,EAAEG;IACZ,CAAC;EACH,CAAC,CACH,CAAC;AACH","ignoreList":[]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export
|
|
2
|
-
export
|
|
3
|
-
export
|
|
1
|
+
export const symbolAppId = Symbol("appId");
|
|
2
|
+
export const symbolMenuI18nNamespace = Symbol("menuI18nNamespace");
|
|
3
|
+
export const symbolOverrideApp = Symbol("overrideApp");
|
|
4
4
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","names":["symbolAppId","Symbol","symbolMenuI18nNamespace","symbolOverrideApp"],"sources":["../../../src/menu/constants.ts"],"sourcesContent":["export const symbolAppId = Symbol(\"appId\");\nexport const symbolMenuI18nNamespace = Symbol(\"menuI18nNamespace\");\nexport const symbolOverrideApp = Symbol(\"overrideApp\");\n"],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"constants.js","names":["symbolAppId","Symbol","symbolMenuI18nNamespace","symbolOverrideApp"],"sources":["../../../src/menu/constants.ts"],"sourcesContent":["export const symbolAppId = Symbol(\"appId\");\nexport const symbolMenuI18nNamespace = Symbol(\"menuI18nNamespace\");\nexport const symbolOverrideApp = Symbol(\"overrideApp\");\n"],"mappings":"AAAA,OAAO,MAAMA,WAAW,GAAGC,MAAM,CAAC,OAAO,CAAC;AAC1C,OAAO,MAAMC,uBAAuB,GAAGD,MAAM,CAAC,mBAAmB,CAAC;AAClE,OAAO,MAAME,iBAAiB,GAAGF,MAAM,CAAC,aAAa,CAAC","ignoreList":[]}
|
|
@@ -1,7 +1,3 @@
|
|
|
1
|
-
import _objectSpread from "@babel/runtime/helpers/objectSpread2";
|
|
2
|
-
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
3
|
-
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
|
4
|
-
var _excluded = ["items", "app"];
|
|
5
1
|
import { InstanceApi_postSearch } from "@next-api-sdk/cmdb-sdk";
|
|
6
2
|
import { InstalledMicroAppApi_getMenusInfo } from "@next-api-sdk/micro-app-sdk";
|
|
7
3
|
import { omit, pick } from "lodash";
|
|
@@ -12,12 +8,12 @@ import { computeMenuItems, computeMenuData } from "./computeMenuData.js";
|
|
|
12
8
|
import { fetchMenuTitle } from "./fetchMenuTitle.js";
|
|
13
9
|
import { getMenusOfStandaloneApp } from "./getMenusOfStandaloneApp.js";
|
|
14
10
|
import { preCheckPermissionsForAny } from "../checkPermissions.js";
|
|
15
|
-
|
|
16
|
-
|
|
11
|
+
const menuPromises = new Map();
|
|
12
|
+
const menuCache = new Map();
|
|
17
13
|
function transformMenuItems(menuItems) {
|
|
18
14
|
return menuItems === null || menuItems === void 0 ? void 0 : menuItems.filter(checkIfOfComputed).map(item => {
|
|
19
|
-
|
|
20
|
-
|
|
15
|
+
const children = transformMenuItems(item.children);
|
|
16
|
+
const transformedMenuItem = item.type === "group" ? {
|
|
21
17
|
type: "group",
|
|
22
18
|
title: item.text,
|
|
23
19
|
childLayout: item.childLayout,
|
|
@@ -39,77 +35,72 @@ export function getMenuById(menuId) {
|
|
|
39
35
|
return menuCache.get(menuId);
|
|
40
36
|
}
|
|
41
37
|
export function fetchMenuById(menuId, runtimeContext, helpers) {
|
|
42
|
-
|
|
38
|
+
let promise = menuPromises.get(menuId);
|
|
43
39
|
if (!promise) {
|
|
44
40
|
promise = _fetchMenuById(menuId, runtimeContext, helpers);
|
|
45
41
|
}
|
|
46
42
|
return promise;
|
|
47
43
|
}
|
|
48
|
-
function _fetchMenuById(
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
44
|
+
async function _fetchMenuById(menuId, runtimeContext, helpers) {
|
|
45
|
+
const menuList = window.STANDALONE_MICRO_APPS ? getMenusOfStandaloneApp(menuId, runtimeContext.app.id, helpers) : runtimeContext.flags["three-level-menu-layout"] ? (await InstalledMicroAppApi_getMenusInfo(menuId, {
|
|
46
|
+
menuObjectId: "EASYOPS_STORYBOARD_MENU"
|
|
47
|
+
})).menus : (await InstanceApi_postSearch("EASYOPS_STORYBOARD_MENU", {
|
|
48
|
+
page: 1,
|
|
49
|
+
page_size: 200,
|
|
50
|
+
fields: {
|
|
51
|
+
menuId: true,
|
|
52
|
+
title: true,
|
|
53
|
+
icon: true,
|
|
54
|
+
link: true,
|
|
55
|
+
titleDataSource: true,
|
|
56
|
+
defaultCollapsed: true,
|
|
57
|
+
defaultCollapsedBreakpoint: true,
|
|
58
|
+
type: true,
|
|
59
|
+
injectMenuGroupId: true,
|
|
60
|
+
dynamicItems: true,
|
|
61
|
+
itemsResolve: true,
|
|
62
|
+
items: true,
|
|
63
|
+
i18n: true,
|
|
64
|
+
"items.children": true,
|
|
65
|
+
"app.appId": true
|
|
66
|
+
},
|
|
67
|
+
query: {
|
|
68
|
+
menuId: {
|
|
69
|
+
$eq: menuId
|
|
74
70
|
},
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
$
|
|
78
|
-
},
|
|
79
|
-
app: {
|
|
80
|
-
$size: {
|
|
81
|
-
$gt: 0
|
|
82
|
-
}
|
|
71
|
+
app: {
|
|
72
|
+
$size: {
|
|
73
|
+
$gt: 0
|
|
83
74
|
}
|
|
84
75
|
}
|
|
85
|
-
})).list;
|
|
86
|
-
var menuData = yield mergeMenu(menuList, runtimeContext, helpers);
|
|
87
|
-
if (!menuData) {
|
|
88
|
-
throw new Error("Menu not found: ".concat(menuId));
|
|
89
76
|
}
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
77
|
+
})).list;
|
|
78
|
+
const menuData = await mergeMenu(menuList, runtimeContext, helpers);
|
|
79
|
+
if (!menuData) {
|
|
80
|
+
throw new Error(`Menu not found: ${menuId}`);
|
|
81
|
+
}
|
|
82
|
+
reorderMenu(menuData);
|
|
83
|
+
const {
|
|
84
|
+
items,
|
|
85
|
+
app,
|
|
86
|
+
...restMenuData
|
|
87
|
+
} = menuData;
|
|
88
|
+
const newRuntimeContext = {
|
|
89
|
+
...runtimeContext,
|
|
90
|
+
pendingPermissionsPreCheck: [...runtimeContext.pendingPermissionsPreCheck, preCheckPermissionsForAny([items, restMenuData])]
|
|
91
|
+
};
|
|
92
|
+
delete newRuntimeContext.tplStateStoreId;
|
|
93
|
+
delete newRuntimeContext.forEachItem;
|
|
94
|
+
delete newRuntimeContext.forEachIndex;
|
|
95
|
+
const rootAppId = app[0].appId;
|
|
96
|
+
const [computedMenuData, computedMenuItems] = await Promise.all([computeMenuData(restMenuData, rootAppId, newRuntimeContext, helpers), computeMenuItems(items, newRuntimeContext, helpers)]);
|
|
97
|
+
const finalMenuData = {
|
|
98
|
+
title: await fetchMenuTitle(computedMenuData),
|
|
99
|
+
...pick(computedMenuData, ["icon", "link", "defaultCollapsed", "defaultCollapsedBreakpoint"]),
|
|
100
|
+
menuItems: transformMenuItems(computedMenuItems)
|
|
101
|
+
};
|
|
109
102
|
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
});
|
|
113
|
-
return _fetchMenuById2.apply(this, arguments);
|
|
103
|
+
// Todo(steve): reconsider the menu cache strategy
|
|
104
|
+
menuCache.set(menuId, finalMenuData);
|
|
114
105
|
}
|
|
115
106
|
//# sourceMappingURL=fetchMenuById.js.map
|