@next-core/runtime 1.10.0 → 1.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/dist/cjs/internal/CustomTemplates/expandCustomTemplate.js +3 -2
  2. package/dist/cjs/internal/CustomTemplates/expandCustomTemplate.js.map +1 -1
  3. package/dist/cjs/internal/Router.js +5 -7
  4. package/dist/cjs/internal/Router.js.map +1 -1
  5. package/dist/cjs/internal/Runtime.js.map +1 -1
  6. package/dist/cjs/internal/bindListeners.js +5 -4
  7. package/dist/cjs/internal/bindListeners.js.map +1 -1
  8. package/dist/cjs/internal/checkPermissions.js +5 -5
  9. package/dist/cjs/internal/checkPermissions.js.map +1 -1
  10. package/dist/cjs/internal/compute/evaluate.js +6 -6
  11. package/dist/cjs/internal/compute/evaluate.js.map +1 -1
  12. package/dist/cjs/internal/data/getProviderBrick.js +6 -6
  13. package/dist/cjs/internal/data/getProviderBrick.js.map +1 -1
  14. package/dist/cjs/internal/data/resolveData.js +3 -2
  15. package/dist/cjs/internal/data/resolveData.js.map +1 -1
  16. package/dist/cjs/internal/hasInstalledApp.js +40 -0
  17. package/dist/cjs/internal/hasInstalledApp.js.map +1 -0
  18. package/dist/esm/internal/CustomTemplates/expandCustomTemplate.js +3 -2
  19. package/dist/esm/internal/CustomTemplates/expandCustomTemplate.js.map +1 -1
  20. package/dist/esm/internal/Router.js +6 -8
  21. package/dist/esm/internal/Router.js.map +1 -1
  22. package/dist/esm/internal/Runtime.js.map +1 -1
  23. package/dist/esm/internal/bindListeners.js +5 -4
  24. package/dist/esm/internal/bindListeners.js.map +1 -1
  25. package/dist/esm/internal/checkPermissions.js +5 -5
  26. package/dist/esm/internal/checkPermissions.js.map +1 -1
  27. package/dist/esm/internal/compute/evaluate.js +5 -5
  28. package/dist/esm/internal/compute/evaluate.js.map +1 -1
  29. package/dist/esm/internal/data/getProviderBrick.js +7 -7
  30. package/dist/esm/internal/data/getProviderBrick.js.map +1 -1
  31. package/dist/esm/internal/data/resolveData.js +3 -2
  32. package/dist/esm/internal/data/resolveData.js.map +1 -1
  33. package/dist/esm/internal/hasInstalledApp.js +34 -0
  34. package/dist/esm/internal/hasInstalledApp.js.map +1 -0
  35. package/dist/types/internal/Runtime.d.ts +19 -2
  36. package/dist/types/internal/hasInstalledApp.d.ts +3 -0
  37. package/package.json +8 -9
  38. package/dist/cjs/internal/checkInstalledApps.js +0 -105
  39. package/dist/cjs/internal/checkInstalledApps.js.map +0 -1
  40. package/dist/cjs/internal/compute/collectMemberCallUsage.js +0 -30
  41. package/dist/cjs/internal/compute/collectMemberCallUsage.js.map +0 -1
  42. package/dist/cjs/internal/data/CollectContracts.js +0 -29
  43. package/dist/cjs/internal/data/CollectContracts.js.map +0 -1
  44. package/dist/cjs/internal/data/FlowApi.js +0 -150
  45. package/dist/cjs/internal/data/FlowApi.js.map +0 -1
  46. package/dist/cjs/internal/data/FlowApiProvider.js +0 -122
  47. package/dist/cjs/internal/data/FlowApiProvider.js.map +0 -1
  48. package/dist/esm/internal/checkInstalledApps.js +0 -100
  49. package/dist/esm/internal/checkInstalledApps.js.map +0 -1
  50. package/dist/esm/internal/compute/collectMemberCallUsage.js +0 -22
  51. package/dist/esm/internal/compute/collectMemberCallUsage.js.map +0 -1
  52. package/dist/esm/internal/data/CollectContracts.js +0 -20
  53. package/dist/esm/internal/data/CollectContracts.js.map +0 -1
  54. package/dist/esm/internal/data/FlowApi.js +0 -156
  55. package/dist/esm/internal/data/FlowApi.js.map +0 -1
  56. package/dist/esm/internal/data/FlowApiProvider.js +0 -122
  57. package/dist/esm/internal/data/FlowApiProvider.js.map +0 -1
  58. package/dist/types/internal/checkInstalledApps.d.ts +0 -6
  59. package/dist/types/internal/compute/collectMemberCallUsage.d.ts +0 -8
  60. package/dist/types/internal/data/CollectContracts.d.ts +0 -5
  61. package/dist/types/internal/data/FlowApi.d.ts +0 -30
  62. package/dist/types/internal/data/FlowApiProvider.d.ts +0 -20
@@ -1,122 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.FLOW_API_PROVIDER = void 0;
7
- exports.callFlowApi = callFlowApi;
8
- exports.hasFileType = hasFileType;
9
- exports.processExtFields = processExtFields;
10
- exports.registerFlowApiProvider = registerFlowApiProvider;
11
- exports.transformFormData = transformFormData;
12
- var _general = require("@next-core/utils/general");
13
- var _http = require("@next-core/http");
14
- var _lodash = require("lodash");
15
- const FLOW_API_PROVIDER = "core.provider-flow-api";
16
- exports.FLOW_API_PROVIDER = FLOW_API_PROVIDER;
17
- function hasFields(ext_fields, type) {
18
- return ext_fields.some(item => item.source === type);
19
- }
20
- function processExtFields(ext_fields, ...args) {
21
- const hasQueryParams = hasFields(ext_fields, "query");
22
- const hasBodyParams = hasFields(ext_fields, "body");
23
- if (hasQueryParams) {
24
- if (hasBodyParams) {
25
- const [data, params, options] = args;
26
- return {
27
- data: data,
28
- options: {
29
- params: params,
30
- ...options
31
- }
32
- };
33
- }
34
- const [params, options] = args;
35
- return {
36
- data: {},
37
- options: {
38
- params: params,
39
- ...options
40
- }
41
- };
42
- }
43
-
44
- // only hasBodyParams or default
45
- const [data, options] = args;
46
- return {
47
- data,
48
- options: options
49
- };
50
- }
51
- function hasFileType(request) {
52
- if (!request || request.type !== "object") {
53
- return false;
54
- }
55
- const processFields = fields => {
56
- return !(0, _lodash.isEmpty)(fields) && fields.some(field => ["file", "file[]"].includes(field.type) || processFields(field.fields));
57
- };
58
- return processFields(request.fields);
59
- }
60
- function transformFormData(data) {
61
- if (data instanceof FormData) {
62
- return data;
63
- }
64
- const formData = new FormData();
65
- for (const [key, value] of Object.entries(data)) {
66
- if (Array.isArray(value)) {
67
- value.forEach(v => {
68
- formData.append(key, v);
69
- });
70
- } else if ((0, _lodash.isObject)(value) && !(value instanceof Blob) && !(value instanceof Date)) {
71
- Object.entries(value).forEach(([k, v]) => {
72
- formData.append(`${key}[${k}]`, v);
73
- });
74
- } else {
75
- formData.append(key, value);
76
- }
77
- }
78
- return formData;
79
- }
80
- async function callFlowApi({
81
- url,
82
- originalUri,
83
- method = "GET",
84
- responseWrapper = true,
85
- ext_fields = [],
86
- request,
87
- isFileType
88
- }, ...args) {
89
- const isSimpleRequest = ["get", "delete", "head"].includes(method.toLowerCase());
90
- const defaultOptions = isFileType ? {
91
- responseType: "blob"
92
- } : {};
93
- let response;
94
- if (isSimpleRequest) {
95
- var _originalUri$match$le, _originalUri$match, _request$fields$lengt, _request$fields;
96
- const noParams = originalUri && (request === null || request === void 0 ? void 0 : request.type) === "object" ? ((_originalUri$match$le = (_originalUri$match = originalUri.match(/:([^/]+)/g)) === null || _originalUri$match === void 0 ? void 0 : _originalUri$match.length) !== null && _originalUri$match$le !== void 0 ? _originalUri$match$le : 0) === ((_request$fields$lengt = (_request$fields = request.fields) === null || _request$fields === void 0 ? void 0 : _request$fields.length) !== null && _request$fields$lengt !== void 0 ? _request$fields$lengt : 0) : false;
97
- let params;
98
- let options;
99
- if (noParams) {
100
- [options] = args;
101
- } else {
102
- [params, options] = args;
103
- }
104
- response = await _http.http.simpleRequest(method, url, {
105
- params,
106
- ...defaultOptions,
107
- ...options
108
- });
109
- } else {
110
- const isUploadType = hasFileType(request);
111
- const result = processExtFields(ext_fields, ...args);
112
- response = await _http.http.requestWithBody(method, url, isUploadType ? transformFormData(result.data) : result.data, {
113
- ...defaultOptions,
114
- ...result.options
115
- });
116
- }
117
- return (isFileType ? false : responseWrapper) ? response.data : response;
118
- }
119
- function registerFlowApiProvider() {
120
- customElements.define(FLOW_API_PROVIDER, (0, _general.createProviderClass)(callFlowApi));
121
- }
122
- //# sourceMappingURL=FlowApiProvider.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FlowApiProvider.js","names":["_general","require","_http","_lodash","FLOW_API_PROVIDER","exports","hasFields","ext_fields","type","some","item","source","processExtFields","args","hasQueryParams","hasBodyParams","data","params","options","hasFileType","request","processFields","fields","isEmpty","field","includes","transformFormData","FormData","formData","key","value","Object","entries","Array","isArray","forEach","v","append","isObject","Blob","Date","k","callFlowApi","url","originalUri","method","responseWrapper","isFileType","isSimpleRequest","toLowerCase","defaultOptions","responseType","response","_originalUri$match$le","_originalUri$match","_request$fields$lengt","_request$fields","noParams","match","length","http","simpleRequest","isUploadType","result","requestWithBody","registerFlowApiProvider","customElements","define","createProviderClass"],"sources":["../../../../src/internal/data/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\";\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}\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 }: 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 response = await http.simpleRequest(method, url, {\n params,\n ...defaultOptions,\n ...(options as HttpOptions),\n });\n } else {\n const isUploadType = hasFileType(request);\n const result = processExtFields(ext_fields, ...args);\n\n response = await http.requestWithBody(\n method,\n url,\n isUploadType ? transformFormData(result.data as any) : result.data,\n { ...defaultOptions, ...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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"}
@@ -1,100 +0,0 @@
1
- import _objectSpread from "@babel/runtime/helpers/objectSpread2";
2
- import { traverseStoryboardExpressions } from "@next-core/utils/storyboard";
3
- import { RuntimeApi_searchMicroAppStandalone } from "@next-api-sdk/micro-app-standalone-sdk";
4
- import { compare } from "compare-versions";
5
- import { collectInstalledAppsHasUsage } from "./compute/collectMemberCallUsage.js";
6
- import { _internalApiGetAppInBootstrapData } from "./Runtime.js";
7
- var checkingApps = new Map();
8
- var checkedApps = new Map();
9
- export function preCheckInstalledApps(storyboard) {
10
- if (window.STANDALONE_MICRO_APPS && !window.NO_AUTH_GUARD) {
11
- var appIds = scanInstalledAppsUsage(storyboard);
12
- var searchIds = [];
13
- for (var appId of appIds) {
14
- // Do not check these apps already checking or in bootstrap.
15
- if (!checkingApps.has(appId) && !_internalApiGetAppInBootstrapData(appId)) {
16
- searchIds.push(appId);
17
- }
18
- }
19
- if (searchIds.length === 0) {
20
- return;
21
- }
22
- var promise = RuntimeApi_searchMicroAppStandalone({
23
- query: {
24
- appId: {
25
- $in: searchIds
26
- }
27
- },
28
- fields: ["appId", "currentVersion", "installStatus"]
29
- }).catch(error => {
30
- // Allow search micro app to fail, and
31
- // make it not crash when the backend service is not updated.
32
- // eslint-disable-next-line no-console
33
- console.error("Get off site standalone micro-apps failed", error);
34
- });
35
- var _loop = function (_appId) {
36
- checkingApps.set(_appId, promise.then(result => {
37
- var _result$list;
38
- var app = result === null || result === void 0 ? void 0 : (_result$list = result.list) === null || _result$list === void 0 ? void 0 : _result$list.find(item => item.appId === _appId);
39
- var checkedApp = app ? _objectSpread(_objectSpread({}, app), {}, {
40
- id: _appId
41
- }) : undefined;
42
- checkedApps.set(_appId, checkedApp);
43
- return checkedApp;
44
- }));
45
- };
46
- for (var _appId of searchIds) {
47
- _loop(_appId);
48
- }
49
- }
50
- }
51
- export function waitForCheckingApps(appIds) {
52
- return Promise.all(appIds.map(appId => checkingApps.get(appId)));
53
- }
54
- export function hasInstalledApp(appId, matchVersion) {
55
- // First, check whether the app is in bootstrap already.
56
- var app = _internalApiGetAppInBootstrapData(appId);
57
- if (!app && window.STANDALONE_MICRO_APPS) {
58
- app = checkedApps.get(appId);
59
- }
60
- if (!app || app.installStatus === "running") {
61
- return false;
62
- }
63
- // Todo: `currentVersion` maybe `""`
64
- if (!matchVersion || !app.currentVersion) {
65
- return true;
66
- }
67
- // Valid `matchVersion`:
68
- // >=1.2.3
69
- // >1.2.3
70
- // =1.2.3
71
- // <=1.2.3
72
- // <1.2.3
73
- var matches = matchVersion.match(/^([><]=?|=)(.*)$/);
74
- try {
75
- if (!matches) {
76
- throw new TypeError("Invalid match version: ".concat(matchVersion));
77
- }
78
- return compare(app.currentVersion, matches[2], matches[1]);
79
- } catch (error) {
80
- // eslint-disable-next-line no-console
81
- console.error(error);
82
- }
83
- return false;
84
- }
85
- function scanInstalledAppsUsage(storyboard) {
86
- var _storyboard$meta;
87
- var usage = {
88
- usedArgs: new Set()
89
- };
90
- // `INSTALLED_APPS.has(...)` is not available in storyboard functions
91
- var {
92
- customTemplates,
93
- menus
94
- } = (_storyboard$meta = storyboard.meta) !== null && _storyboard$meta !== void 0 ? _storyboard$meta : {};
95
- traverseStoryboardExpressions([storyboard.routes, customTemplates, menus], (node, parent) => {
96
- collectInstalledAppsHasUsage(usage, node, parent);
97
- }, "INSTALLED_APPS");
98
- return [...usage.usedArgs];
99
- }
100
- //# sourceMappingURL=checkInstalledApps.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"checkInstalledApps.js","names":["traverseStoryboardExpressions","RuntimeApi_searchMicroAppStandalone","compare","collectInstalledAppsHasUsage","_internalApiGetAppInBootstrapData","checkingApps","Map","checkedApps","preCheckInstalledApps","storyboard","window","STANDALONE_MICRO_APPS","NO_AUTH_GUARD","appIds","scanInstalledAppsUsage","searchIds","appId","has","push","length","promise","query","$in","fields","catch","error","console","_loop","_appId","set","then","result","_result$list","app","list","find","item","checkedApp","_objectSpread","id","undefined","waitForCheckingApps","Promise","all","map","get","hasInstalledApp","matchVersion","installStatus","currentVersion","matches","match","TypeError","concat","_storyboard$meta","usage","usedArgs","Set","customTemplates","menus","meta","routes","node","parent"],"sources":["../../../src/internal/checkInstalledApps.ts"],"sourcesContent":["import type { MicroApp, Storyboard } from \"@next-core/types\";\nimport { traverseStoryboardExpressions } from \"@next-core/utils/storyboard\";\nimport { RuntimeApi_searchMicroAppStandalone } from \"@next-api-sdk/micro-app-standalone-sdk\";\nimport { type CompareOperator, compare } from \"compare-versions\";\nimport {\n MemberCallUsage,\n collectInstalledAppsHasUsage,\n} from \"./compute/collectMemberCallUsage.js\";\nimport { _internalApiGetAppInBootstrapData } from \"./Runtime.js\";\n\ntype AppForCheck = Pick<MicroApp, \"id\" | \"currentVersion\" | \"installStatus\">;\n\nconst checkingApps = new Map<string, Promise<AppForCheck | undefined>>();\nconst checkedApps = new Map<string, AppForCheck | undefined>();\n\nexport function preCheckInstalledApps(storyboard: Storyboard) {\n if (window.STANDALONE_MICRO_APPS && !window.NO_AUTH_GUARD) {\n const appIds = scanInstalledAppsUsage(storyboard);\n const searchIds: string[] = [];\n for (const appId of appIds) {\n // Do not check these apps already checking or in bootstrap.\n if (\n !checkingApps.has(appId) &&\n !_internalApiGetAppInBootstrapData(appId)\n ) {\n searchIds.push(appId);\n }\n }\n if (searchIds.length === 0) {\n return;\n }\n const promise = RuntimeApi_searchMicroAppStandalone({\n query: { appId: { $in: searchIds } },\n fields: [\"appId\", \"currentVersion\", \"installStatus\"],\n }).catch((error) => {\n // Allow search micro app to fail, and\n // make it not crash when the backend service is not updated.\n // eslint-disable-next-line no-console\n console.error(\"Get off site standalone micro-apps failed\", error);\n });\n for (const appId of searchIds) {\n checkingApps.set(\n appId,\n promise.then((result) => {\n const app = result?.list?.find((item) => item.appId === appId);\n const checkedApp = app\n ? {\n ...app,\n id: appId,\n }\n : undefined;\n checkedApps.set(appId, checkedApp);\n return checkedApp;\n })\n );\n }\n }\n}\n\nexport function waitForCheckingApps(appIds: string[]) {\n return Promise.all(appIds.map((appId) => checkingApps.get(appId)));\n}\n\nexport function hasInstalledApp(appId: string, matchVersion?: string): boolean {\n // First, check whether the app is in bootstrap already.\n let app = _internalApiGetAppInBootstrapData(appId) as AppForCheck | undefined;\n if (!app && window.STANDALONE_MICRO_APPS) {\n app = checkedApps.get(appId);\n }\n if (!app || app.installStatus === \"running\") {\n return false;\n }\n // Todo: `currentVersion` maybe `\"\"`\n if (!matchVersion || !app.currentVersion) {\n return true;\n }\n // Valid `matchVersion`:\n // >=1.2.3\n // >1.2.3\n // =1.2.3\n // <=1.2.3\n // <1.2.3\n const matches = matchVersion.match(/^([><]=?|=)(.*)$/);\n try {\n if (!matches) {\n throw new TypeError(`Invalid match version: ${matchVersion}`);\n }\n return compare(\n app.currentVersion,\n matches[2],\n matches[1] as CompareOperator\n );\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(error);\n }\n return false;\n}\n\nfunction scanInstalledAppsUsage(storyboard: Storyboard) {\n const usage: MemberCallUsage = {\n usedArgs: new Set(),\n };\n // `INSTALLED_APPS.has(...)` is not available in storyboard functions\n const { customTemplates, menus } = storyboard.meta ?? {};\n traverseStoryboardExpressions(\n [storyboard.routes, customTemplates, menus],\n (node, parent) => {\n collectInstalledAppsHasUsage(usage, node, parent);\n },\n \"INSTALLED_APPS\"\n );\n return [...usage.usedArgs];\n}\n"],"mappings":"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"}
@@ -1,22 +0,0 @@
1
- function collectMemberCallUsageFactory(object, property) {
2
- return function collectMemberCallUsage(usage, node, parent) {
3
- if (node.name === object) {
4
- var memberParent = parent[parent.length - 1];
5
- var callParent = parent[parent.length - 2];
6
- if ((callParent === null || callParent === void 0 ? void 0 : callParent.node.type) === "CallExpression" && (callParent === null || callParent === void 0 ? void 0 : callParent.key) === "callee" && (memberParent === null || memberParent === void 0 ? void 0 : memberParent.node.type) === "MemberExpression" && memberParent.key === "object" && (memberParent.node.computed ? memberParent.node.property.type === "Literal" && memberParent.node.property.value === property : memberParent.node.property.type === "Identifier" && memberParent.node.property.name === property)) {
7
- var args = callParent.node.arguments;
8
- if (args.length > 0) {
9
- var firstArg = args[0];
10
- if (firstArg.type === "Literal" && typeof firstArg.value === "string") {
11
- usage.usedArgs.add(firstArg.value);
12
- } else {
13
- usage.hasNonStaticUsage = true;
14
- }
15
- }
16
- }
17
- }
18
- };
19
- }
20
- export var collectAppGetMenuUsage = collectMemberCallUsageFactory("APP", "getMenu");
21
- export var collectInstalledAppsHasUsage = collectMemberCallUsageFactory("INSTALLED_APPS", "has");
22
- //# sourceMappingURL=collectMemberCallUsage.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"collectMemberCallUsage.js","names":["collectMemberCallUsageFactory","object","property","collectMemberCallUsage","usage","node","parent","name","memberParent","length","callParent","type","key","computed","value","args","arguments","firstArg","usedArgs","add","hasNonStaticUsage","collectAppGetMenuUsage","collectInstalledAppsHasUsage"],"sources":["../../../../src/internal/compute/collectMemberCallUsage.ts"],"sourcesContent":["import type { Identifier } from \"@babel/types\";\nimport type { EstreeLiteral, EstreeParent } from \"@next-core/cook\";\n\nexport interface MemberCallUsage {\n usedArgs: Set<string>;\n hasNonStaticUsage?: boolean;\n}\n\nfunction collectMemberCallUsageFactory(object: string, property: string) {\n return function collectMemberCallUsage(\n usage: MemberCallUsage,\n node: Identifier,\n parent: EstreeParent\n ) {\n if (node.name === object) {\n const memberParent = parent[parent.length - 1];\n const callParent = parent[parent.length - 2];\n if (\n callParent?.node.type === \"CallExpression\" &&\n callParent?.key === \"callee\" &&\n memberParent?.node.type === \"MemberExpression\" &&\n memberParent.key === \"object\" &&\n (memberParent.node.computed\n ? (memberParent.node.property as any).type === \"Literal\" &&\n (memberParent.node.property as any).value === property\n : memberParent.node.property.type === \"Identifier\" &&\n memberParent.node.property.name === property)\n ) {\n const args = callParent.node.arguments as unknown as EstreeLiteral[];\n if (args.length > 0) {\n const firstArg = args[0];\n if (\n firstArg.type === \"Literal\" &&\n typeof firstArg.value === \"string\"\n ) {\n usage.usedArgs.add(firstArg.value);\n } else {\n usage.hasNonStaticUsage = true;\n }\n }\n }\n }\n };\n}\n\nexport const collectAppGetMenuUsage = collectMemberCallUsageFactory(\n \"APP\",\n \"getMenu\"\n);\n\nexport const collectInstalledAppsHasUsage = collectMemberCallUsageFactory(\n \"INSTALLED_APPS\",\n \"has\"\n);\n"],"mappings":"AAQA,SAASA,6BAA6BA,CAACC,MAAc,EAAEC,QAAgB,EAAE;EACvE,OAAO,SAASC,sBAAsBA,CACpCC,KAAsB,EACtBC,IAAgB,EAChBC,MAAoB,EACpB;IACA,IAAID,IAAI,CAACE,IAAI,KAAKN,MAAM,EAAE;MACxB,IAAMO,YAAY,GAAGF,MAAM,CAACA,MAAM,CAACG,MAAM,GAAG,CAAC,CAAC;MAC9C,IAAMC,UAAU,GAAGJ,MAAM,CAACA,MAAM,CAACG,MAAM,GAAG,CAAC,CAAC;MAC5C,IACE,CAAAC,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEL,IAAI,CAACM,IAAI,MAAK,gBAAgB,IAC1C,CAAAD,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEE,GAAG,MAAK,QAAQ,IAC5B,CAAAJ,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEH,IAAI,CAACM,IAAI,MAAK,kBAAkB,IAC9CH,YAAY,CAACI,GAAG,KAAK,QAAQ,KAC5BJ,YAAY,CAACH,IAAI,CAACQ,QAAQ,GACtBL,YAAY,CAACH,IAAI,CAACH,QAAQ,CAASS,IAAI,KAAK,SAAS,IACrDH,YAAY,CAACH,IAAI,CAACH,QAAQ,CAASY,KAAK,KAAKZ,QAAQ,GACtDM,YAAY,CAACH,IAAI,CAACH,QAAQ,CAACS,IAAI,KAAK,YAAY,IAChDH,YAAY,CAACH,IAAI,CAACH,QAAQ,CAACK,IAAI,KAAKL,QAAQ,CAAC,EACjD;QACA,IAAMa,IAAI,GAAGL,UAAU,CAACL,IAAI,CAACW,SAAuC;QACpE,IAAID,IAAI,CAACN,MAAM,GAAG,CAAC,EAAE;UACnB,IAAMQ,QAAQ,GAAGF,IAAI,CAAC,CAAC,CAAC;UACxB,IACEE,QAAQ,CAACN,IAAI,KAAK,SAAS,IAC3B,OAAOM,QAAQ,CAACH,KAAK,KAAK,QAAQ,EAClC;YACAV,KAAK,CAACc,QAAQ,CAACC,GAAG,CAACF,QAAQ,CAACH,KAAK,CAAC;UACpC,CAAC,MAAM;YACLV,KAAK,CAACgB,iBAAiB,GAAG,IAAI;UAChC;QACF;MACF;IACF;EACF,CAAC;AACH;AAEA,OAAO,IAAMC,sBAAsB,GAAGrB,6BAA6B,CACjE,KAAK,EACL,SAAS,CACV;AAED,OAAO,IAAMsB,4BAA4B,GAAGtB,6BAA6B,CACvE,gBAAgB,EAChB,KAAK,CACN"}
@@ -1,20 +0,0 @@
1
- var contractsMap = new Map();
2
- var widgetContractMap = new Map();
3
- var addContract = (contracts, map) => {
4
- contracts === null || contracts === void 0 ? void 0 : contracts.forEach(contract => {
5
- map.set("".concat(contract.namespaceId, ".").concat(contract.name), contract);
6
- });
7
- };
8
- export function collectContract(contracts) {
9
- addContract(contracts, contractsMap);
10
- }
11
- export function collectWidgetContract(contracts) {
12
- addContract(contracts, widgetContractMap);
13
- }
14
- export function clearCollectWidgetContract() {
15
- widgetContractMap.clear();
16
- }
17
- export function getContract(name) {
18
- return contractsMap.get(name) || widgetContractMap.get(name);
19
- }
20
- //# sourceMappingURL=CollectContracts.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CollectContracts.js","names":["contractsMap","Map","widgetContractMap","addContract","contracts","map","forEach","contract","set","concat","namespaceId","name","collectContract","collectWidgetContract","clearCollectWidgetContract","clear","getContract","get"],"sources":["../../../../src/internal/data/CollectContracts.ts"],"sourcesContent":["import { Contract } from \"@next-core/types\";\n\nconst contractsMap: Map<string, Contract> = new Map();\nconst widgetContractMap: Map<string, Contract> = new Map();\n\nconst addContract = (\n contracts: Contract[] | undefined,\n map: Map<string, Contract>\n): void => {\n contracts?.forEach((contract) => {\n map.set(`${contract.namespaceId}.${contract.name}`, contract);\n });\n};\n\nexport function collectContract(contracts: Contract[] | undefined): void {\n addContract(contracts, contractsMap);\n}\n\nexport function collectWidgetContract(contracts: Contract[] | undefined): void {\n addContract(contracts, widgetContractMap);\n}\n\nexport function clearCollectWidgetContract(): void {\n widgetContractMap.clear();\n}\n\nexport function getContract(name: string): Contract | undefined {\n return contractsMap.get(name) || widgetContractMap.get(name);\n}\n"],"mappings":"AAEA,IAAMA,YAAmC,GAAG,IAAIC,GAAG,EAAE;AACrD,IAAMC,iBAAwC,GAAG,IAAID,GAAG,EAAE;AAE1D,IAAME,WAAW,GAAGA,CAClBC,SAAiC,EACjCC,GAA0B,KACjB;EACTD,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAEE,OAAO,CAAEC,QAAQ,IAAK;IAC/BF,GAAG,CAACG,GAAG,IAAAC,MAAA,CAAIF,QAAQ,CAACG,WAAW,OAAAD,MAAA,CAAIF,QAAQ,CAACI,IAAI,GAAIJ,QAAQ,CAAC;EAC/D,CAAC,CAAC;AACJ,CAAC;AAED,OAAO,SAASK,eAAeA,CAACR,SAAiC,EAAQ;EACvED,WAAW,CAACC,SAAS,EAAEJ,YAAY,CAAC;AACtC;AAEA,OAAO,SAASa,qBAAqBA,CAACT,SAAiC,EAAQ;EAC7ED,WAAW,CAACC,SAAS,EAAEF,iBAAiB,CAAC;AAC3C;AAEA,OAAO,SAASY,0BAA0BA,CAAA,EAAS;EACjDZ,iBAAiB,CAACa,KAAK,EAAE;AAC3B;AAEA,OAAO,SAASC,WAAWA,CAACL,IAAY,EAAwB;EAC9D,OAAOX,YAAY,CAACiB,GAAG,CAACN,IAAI,CAAC,IAAIT,iBAAiB,CAACe,GAAG,CAACN,IAAI,CAAC;AAC9D"}
@@ -1,156 +0,0 @@
1
- import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
2
- import yaml from "js-yaml";
3
- import { ContractApi_searchSingleContract } from "@next-api-sdk/api-gateway-sdk";
4
- import { getContract } from "./CollectContracts.js";
5
- var flowApiDefinitionPromiseMap = new Map();
6
-
7
- // Legacy Custom API: `${namespace}@${name}`
8
- // Flow API: `${namespace}@${name}:${version}`
9
- export function isFlowApiProvider(provider) {
10
- return provider.includes("@");
11
- }
12
- export function getArgsOfFlowApi(_x, _x2, _x3) {
13
- return _getArgsOfFlowApi.apply(this, arguments);
14
- }
15
- function _getArgsOfFlowApi() {
16
- _getArgsOfFlowApi = _asyncToGenerator(function* (provider, originalArgs, method) {
17
- if (!isFlowApiProvider(provider)) {
18
- return originalArgs;
19
- }
20
- if (!provider.includes(":")) {
21
- throw new Error("You're using legacy Custom API \"".concat(provider, "\" which is dropped in v3, please use Flow API instead"));
22
- }
23
- var apiDefinition = yield fetchFlowApiDefinition(provider);
24
- if (!apiDefinition) {
25
- throw new Error("Flow API not found: \"".concat(provider, "\""));
26
- }
27
- var apiProfile = getApiProfileFromApiDefinition(provider, apiDefinition);
28
- return getApiArgsFromApiProfile(apiProfile, originalArgs, method);
29
- });
30
- return _getArgsOfFlowApi.apply(this, arguments);
31
- }
32
- function getApiArgsFromApiProfile(_ref, originalArgs, method) {
33
- var {
34
- uri,
35
- method: apiMethod,
36
- ext_fields,
37
- name,
38
- namespace,
39
- serviceName,
40
- responseWrapper,
41
- version,
42
- isFileType,
43
- request
44
- } = _ref;
45
- var isDownload = isFileType && method === "saveAs";
46
- var fileName;
47
- if (isDownload) {
48
- fileName = originalArgs.shift();
49
- }
50
- var {
51
- url,
52
- args
53
- } = getTransformedUriAndRestArgs(uri, originalArgs, name, namespace, serviceName, version);
54
- return [...(isDownload ? [fileName] : []), {
55
- url,
56
- originalUri: uri,
57
- method: apiMethod,
58
- ext_fields,
59
- responseWrapper,
60
- request,
61
- isFileType
62
- }, ...args];
63
- }
64
- function getTransformedUriAndRestArgs(uri, originalArgs, name, namespace, serviceName, version) {
65
- var prefix = version ? serviceName ? "api/gateway/".concat(serviceName) : "api/gateway/".concat(namespace, ".").concat(name, "@").concat(version) : "api/gateway/api_service.".concat(namespace, ".").concat(name);
66
- var restArgs = originalArgs.slice();
67
- var transformedUri = uri.replace(/:([^/]+)/g, () => restArgs.shift());
68
- return {
69
- url: prefix + transformedUri,
70
- args: restArgs
71
- };
72
- }
73
- function getApiProfileFromApiDefinition(provider, api) {
74
- var _contract$endpoint, _contract$response;
75
- var contract = typeof api.contract === "string" ? yaml.safeLoad(api.contract, {
76
- schema: yaml.JSON_SCHEMA,
77
- json: true
78
- }) : api.contract;
79
- var {
80
- uri,
81
- method = "GET",
82
- ext_fields
83
- } = (_contract$endpoint = contract === null || contract === void 0 ? void 0 : contract.endpoint) !== null && _contract$endpoint !== void 0 ? _contract$endpoint : {};
84
- var responseWrapper = contract !== null && contract !== void 0 && contract.response ? contract.response.wrapper !== false : false;
85
- if (!uri) {
86
- throw new Error("Missing endpoint.uri in contract of provider \"".concat(provider, "\""));
87
- }
88
- return {
89
- uri,
90
- method: method.toLowerCase() === "list" ? "get" : method,
91
- ext_fields,
92
- name: api.name,
93
- namespace: api.namespace,
94
- serviceName: api.serviceName,
95
- version: api.version,
96
- isFileType: (contract === null || contract === void 0 ? void 0 : (_contract$response = contract.response) === null || _contract$response === void 0 ? void 0 : _contract$response.type) === "file",
97
- responseWrapper,
98
- request: contract === null || contract === void 0 ? void 0 : contract.request
99
- };
100
- }
101
- function fetchFlowApiDefinition(provider) {
102
- var promise = flowApiDefinitionPromiseMap.get(provider);
103
- if (!promise) {
104
- promise = _fetchFlowApiDefinition(provider);
105
- flowApiDefinitionPromiseMap.set(provider, promise);
106
- }
107
- return promise;
108
- }
109
- function _fetchFlowApiDefinition(_x4) {
110
- return _fetchFlowApiDefinition2.apply(this, arguments);
111
- }
112
- function _fetchFlowApiDefinition2() {
113
- _fetchFlowApiDefinition2 = _asyncToGenerator(function* (provider) {
114
- var [namespaceName, nameWithVersion] = provider.split("@");
115
- var [name, version] = nameWithVersion.split(":");
116
- var contract = getContract("".concat(namespaceName, ".").concat(name));
117
- if (contract) {
118
- return {
119
- name: contract.name,
120
- namespace: contract.namespaceId,
121
- serviceName: contract.serviceName,
122
- version: contract.version,
123
- contract: {
124
- endpoint: contract.endpoint,
125
- response: contract.response,
126
- request: contract.request
127
- }
128
- };
129
- } else {
130
- var {
131
- contractData
132
- } = yield ContractApi_searchSingleContract({
133
- contractName: "".concat(namespaceName, ".").concat(name),
134
- version
135
- });
136
-
137
- // return undefined if don't found contract
138
- if (contractData) {
139
- var _contractData$namespa, _contractData$namespa2;
140
- return {
141
- name: contractData.name,
142
- namespace: (_contractData$namespa = contractData.namespace) === null || _contractData$namespa === void 0 ? void 0 : (_contractData$namespa2 = _contractData$namespa[0]) === null || _contractData$namespa2 === void 0 ? void 0 : _contractData$namespa2.name,
143
- serviceName: contractData.serviceName,
144
- version: contractData.version,
145
- contract: {
146
- endpoint: contractData.endpoint,
147
- response: contractData.response,
148
- request: contractData.request
149
- }
150
- };
151
- }
152
- }
153
- });
154
- return _fetchFlowApiDefinition2.apply(this, arguments);
155
- }
156
- //# sourceMappingURL=FlowApi.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FlowApi.js","names":["yaml","ContractApi_searchSingleContract","getContract","flowApiDefinitionPromiseMap","Map","isFlowApiProvider","provider","includes","getArgsOfFlowApi","_x","_x2","_x3","_getArgsOfFlowApi","apply","arguments","_asyncToGenerator","originalArgs","method","Error","concat","apiDefinition","fetchFlowApiDefinition","apiProfile","getApiProfileFromApiDefinition","getApiArgsFromApiProfile","_ref","uri","apiMethod","ext_fields","name","namespace","serviceName","responseWrapper","version","isFileType","request","isDownload","fileName","shift","url","args","getTransformedUriAndRestArgs","originalUri","prefix","restArgs","slice","transformedUri","replace","api","_contract$endpoint","_contract$response","contract","safeLoad","schema","JSON_SCHEMA","json","endpoint","response","wrapper","toLowerCase","type","promise","get","_fetchFlowApiDefinition","set","_x4","_fetchFlowApiDefinition2","namespaceName","nameWithVersion","split","namespaceId","contractData","contractName","_contractData$namespa","_contractData$namespa2"],"sources":["../../../../src/internal/data/FlowApi.ts"],"sourcesContent":["import yaml from \"js-yaml\";\nimport { ContractApi_searchSingleContract } from \"@next-api-sdk/api-gateway-sdk\";\nimport { ContractRequest, ContractResponse, ExtField } from \"@next-core/types\";\nimport { getContract } from \"./CollectContracts.js\";\n\nconst flowApiDefinitionPromiseMap = new Map<\n string,\n Promise<CustomApiDefinition | undefined>\n>();\n\n// Legacy Custom API: `${namespace}@${name}`\n// Flow API: `${namespace}@${name}:${version}`\nexport function isFlowApiProvider(provider: string): boolean {\n return provider.includes(\"@\");\n}\n\nexport async function getArgsOfFlowApi(\n provider: string,\n originalArgs: unknown[],\n method?: string\n): Promise<unknown[]> {\n if (!isFlowApiProvider(provider)) {\n return originalArgs;\n }\n\n if (!provider.includes(\":\")) {\n throw new Error(\n `You're using legacy Custom API \"${provider}\" which is dropped in v3, please use Flow API instead`\n );\n }\n\n const apiDefinition = await fetchFlowApiDefinition(provider);\n\n if (!apiDefinition) {\n throw new Error(`Flow API not found: \"${provider}\"`);\n }\n\n const apiProfile = getApiProfileFromApiDefinition(provider, apiDefinition);\n\n return getApiArgsFromApiProfile(apiProfile, originalArgs, method);\n}\n\nfunction getApiArgsFromApiProfile(\n {\n uri,\n method: apiMethod,\n ext_fields,\n name,\n namespace,\n serviceName,\n responseWrapper,\n version,\n isFileType,\n request,\n }: CustomApiProfile,\n originalArgs: unknown[],\n method?: string\n): unknown[] {\n const isDownload = isFileType && method === \"saveAs\";\n let fileName: string | undefined;\n if (isDownload) {\n fileName = originalArgs.shift() as string;\n }\n\n const { url, args } = getTransformedUriAndRestArgs(\n uri,\n originalArgs,\n name,\n namespace,\n serviceName,\n version\n );\n\n return [\n ...(isDownload ? [fileName] : []),\n {\n url,\n originalUri: uri,\n method: apiMethod,\n ext_fields,\n responseWrapper,\n request,\n isFileType,\n },\n ...args,\n ];\n}\n\nfunction getTransformedUriAndRestArgs(\n uri: string,\n originalArgs: unknown[],\n name: string,\n namespace: string,\n serviceName: string | undefined,\n version?: string\n): { url: string; args: unknown[] } {\n const prefix = version\n ? serviceName\n ? `api/gateway/${serviceName}`\n : `api/gateway/${namespace}.${name}@${version}`\n : `api/gateway/api_service.${namespace}.${name}`;\n const restArgs = originalArgs.slice();\n const transformedUri = uri.replace(\n /:([^/]+)/g,\n () => restArgs.shift() as string\n );\n return {\n url: prefix + transformedUri,\n args: restArgs,\n };\n}\n\nfunction getApiProfileFromApiDefinition(\n provider: string,\n api: CustomApiDefinition\n): CustomApiProfile {\n const contract: CustomApiDefinition[\"contract\"] =\n typeof api.contract === \"string\"\n ? (yaml.safeLoad(api.contract, {\n schema: yaml.JSON_SCHEMA,\n json: true,\n }) as CustomApiDefinition[\"contract\"])\n : api.contract;\n const { uri, method = \"GET\", ext_fields } = contract?.endpoint ?? {};\n const responseWrapper = contract?.response\n ? contract.response.wrapper !== false\n : false;\n if (!uri) {\n throw new Error(\n `Missing endpoint.uri in contract of provider \"${provider}\"`\n );\n }\n return {\n uri,\n method: method.toLowerCase() === \"list\" ? \"get\" : method,\n ext_fields,\n name: api.name,\n namespace: api.namespace,\n serviceName: api.serviceName,\n version: api.version,\n isFileType: contract?.response?.type === \"file\",\n responseWrapper,\n request: contract?.request,\n };\n}\n\nfunction fetchFlowApiDefinition(\n provider: string\n): Promise<CustomApiDefinition | undefined> {\n let promise = flowApiDefinitionPromiseMap.get(provider);\n if (!promise) {\n promise = _fetchFlowApiDefinition(provider);\n flowApiDefinitionPromiseMap.set(provider, promise);\n }\n return promise;\n}\n\nasync function _fetchFlowApiDefinition(\n provider: string\n): Promise<CustomApiDefinition | undefined> {\n const [namespaceName, nameWithVersion] = provider.split(\"@\");\n const [name, version] = nameWithVersion.split(\":\");\n\n const contract = getContract(`${namespaceName}.${name}`);\n if (contract) {\n return {\n name: contract.name,\n namespace: contract.namespaceId,\n serviceName: contract.serviceName,\n version: contract.version,\n contract: {\n endpoint: contract.endpoint,\n response: contract.response,\n request: contract.request,\n },\n };\n } else {\n const { contractData } = await ContractApi_searchSingleContract({\n contractName: `${namespaceName}.${name}`,\n version,\n });\n\n // return undefined if don't found contract\n if (contractData) {\n return {\n name: contractData.name,\n namespace: contractData.namespace?.[0]?.name,\n serviceName: contractData.serviceName,\n version: contractData.version,\n contract: {\n endpoint: contractData.endpoint,\n response: contractData.response,\n request: contractData.request,\n },\n };\n }\n }\n}\n\nexport interface CustomApiDefinition {\n name: string;\n namespace: string;\n version?: string;\n serviceName?: string;\n contract?: {\n endpoint: {\n ext_fields?: ExtField[];\n uri: string;\n method:\n | \"POST\"\n | \"post\"\n | \"PUT\"\n | \"put\"\n | \"GET\"\n | \"get\"\n | \"DELETE\"\n | \"delete\"\n | \"LIST\"\n | \"list\"\n | \"PATCH\"\n | \"patch\"\n | \"HEAD\"\n | \"head\";\n };\n request?: ContractRequest;\n response?: ContractResponse;\n };\n}\n\nexport interface CustomApiProfile {\n uri: string;\n method: string;\n name: string;\n namespace: string;\n serviceName?: string;\n responseWrapper: boolean;\n version?: string;\n isFileType?: boolean;\n ext_fields?: ExtField[];\n request?: ContractRequest;\n}\n"],"mappings":";AAAA,OAAOA,IAAI,MAAM,SAAS;AAC1B,SAASC,gCAAgC,QAAQ,+BAA+B;AAEhF,SAASC,WAAW,QAAQ,uBAAuB;AAEnD,IAAMC,2BAA2B,GAAG,IAAIC,GAAG,EAGxC;;AAEH;AACA;AACA,OAAO,SAASC,iBAAiBA,CAACC,QAAgB,EAAW;EAC3D,OAAOA,QAAQ,CAACC,QAAQ,CAAC,GAAG,CAAC;AAC/B;AAEA,gBAAsBC,gBAAgBA,CAAAC,EAAA,EAAAC,GAAA,EAAAC,GAAA;EAAA,OAAAC,iBAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;AAwBrC,SAAAF,kBAAA;EAAAA,iBAAA,GAAAG,iBAAA,CAxBM,WACLT,QAAgB,EAChBU,YAAuB,EACvBC,MAAe,EACK;IACpB,IAAI,CAACZ,iBAAiB,CAACC,QAAQ,CAAC,EAAE;MAChC,OAAOU,YAAY;IACrB;IAEA,IAAI,CAACV,QAAQ,CAACC,QAAQ,CAAC,GAAG,CAAC,EAAE;MAC3B,MAAM,IAAIW,KAAK,qCAAAC,MAAA,CACsBb,QAAQ,4DAC5C;IACH;IAEA,IAAMc,aAAa,SAASC,sBAAsB,CAACf,QAAQ,CAAC;IAE5D,IAAI,CAACc,aAAa,EAAE;MAClB,MAAM,IAAIF,KAAK,0BAAAC,MAAA,CAAyBb,QAAQ,QAAI;IACtD;IAEA,IAAMgB,UAAU,GAAGC,8BAA8B,CAACjB,QAAQ,EAAEc,aAAa,CAAC;IAE1E,OAAOI,wBAAwB,CAACF,UAAU,EAAEN,YAAY,EAAEC,MAAM,CAAC;EACnE,CAAC;EAAA,OAAAL,iBAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;AAED,SAASU,wBAAwBA,CAAAC,IAAA,EAa/BT,YAAuB,EACvBC,MAAe,EACJ;EAAA,IAdX;IACES,GAAG;IACHT,MAAM,EAAEU,SAAS;IACjBC,UAAU;IACVC,IAAI;IACJC,SAAS;IACTC,WAAW;IACXC,eAAe;IACfC,OAAO;IACPC,UAAU;IACVC;EACgB,CAAC,GAAAV,IAAA;EAInB,IAAMW,UAAU,GAAGF,UAAU,IAAIjB,MAAM,KAAK,QAAQ;EACpD,IAAIoB,QAA4B;EAChC,IAAID,UAAU,EAAE;IACdC,QAAQ,GAAGrB,YAAY,CAACsB,KAAK,EAAY;EAC3C;EAEA,IAAM;IAAEC,GAAG;IAAEC;EAAK,CAAC,GAAGC,4BAA4B,CAChDf,GAAG,EACHV,YAAY,EACZa,IAAI,EACJC,SAAS,EACTC,WAAW,EACXE,OAAO,CACR;EAED,OAAO,CACL,IAAIG,UAAU,GAAG,CAACC,QAAQ,CAAC,GAAG,EAAE,CAAC,EACjC;IACEE,GAAG;IACHG,WAAW,EAAEhB,GAAG;IAChBT,MAAM,EAAEU,SAAS;IACjBC,UAAU;IACVI,eAAe;IACfG,OAAO;IACPD;EACF,CAAC,EACD,GAAGM,IAAI,CACR;AACH;AAEA,SAASC,4BAA4BA,CACnCf,GAAW,EACXV,YAAuB,EACvBa,IAAY,EACZC,SAAiB,EACjBC,WAA+B,EAC/BE,OAAgB,EACkB;EAClC,IAAMU,MAAM,GAAGV,OAAO,GAClBF,WAAW,kBAAAZ,MAAA,CACMY,WAAW,mBAAAZ,MAAA,CACXW,SAAS,OAAAX,MAAA,CAAIU,IAAI,OAAAV,MAAA,CAAIc,OAAO,CAAE,8BAAAd,MAAA,CACpBW,SAAS,OAAAX,MAAA,CAAIU,IAAI,CAAE;EAClD,IAAMe,QAAQ,GAAG5B,YAAY,CAAC6B,KAAK,EAAE;EACrC,IAAMC,cAAc,GAAGpB,GAAG,CAACqB,OAAO,CAChC,WAAW,EACX,MAAMH,QAAQ,CAACN,KAAK,EAAY,CACjC;EACD,OAAO;IACLC,GAAG,EAAEI,MAAM,GAAGG,cAAc;IAC5BN,IAAI,EAAEI;EACR,CAAC;AACH;AAEA,SAASrB,8BAA8BA,CACrCjB,QAAgB,EAChB0C,GAAwB,EACN;EAAA,IAAAC,kBAAA,EAAAC,kBAAA;EAClB,IAAMC,QAAyC,GAC7C,OAAOH,GAAG,CAACG,QAAQ,KAAK,QAAQ,GAC3BnD,IAAI,CAACoD,QAAQ,CAACJ,GAAG,CAACG,QAAQ,EAAE;IAC3BE,MAAM,EAAErD,IAAI,CAACsD,WAAW;IACxBC,IAAI,EAAE;EACR,CAAC,CAAC,GACFP,GAAG,CAACG,QAAQ;EAClB,IAAM;IAAEzB,GAAG;IAAET,MAAM,GAAG,KAAK;IAAEW;EAAW,CAAC,IAAAqB,kBAAA,GAAGE,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEK,QAAQ,cAAAP,kBAAA,cAAAA,kBAAA,GAAI,CAAC,CAAC;EACpE,IAAMjB,eAAe,GAAGmB,QAAQ,aAARA,QAAQ,eAARA,QAAQ,CAAEM,QAAQ,GACtCN,QAAQ,CAACM,QAAQ,CAACC,OAAO,KAAK,KAAK,GACnC,KAAK;EACT,IAAI,CAAChC,GAAG,EAAE;IACR,MAAM,IAAIR,KAAK,mDAAAC,MAAA,CACoCb,QAAQ,QAC1D;EACH;EACA,OAAO;IACLoB,GAAG;IACHT,MAAM,EAAEA,MAAM,CAAC0C,WAAW,EAAE,KAAK,MAAM,GAAG,KAAK,GAAG1C,MAAM;IACxDW,UAAU;IACVC,IAAI,EAAEmB,GAAG,CAACnB,IAAI;IACdC,SAAS,EAAEkB,GAAG,CAAClB,SAAS;IACxBC,WAAW,EAAEiB,GAAG,CAACjB,WAAW;IAC5BE,OAAO,EAAEe,GAAG,CAACf,OAAO;IACpBC,UAAU,EAAE,CAAAiB,QAAQ,aAARA,QAAQ,wBAAAD,kBAAA,GAARC,QAAQ,CAAEM,QAAQ,cAAAP,kBAAA,uBAAlBA,kBAAA,CAAoBU,IAAI,MAAK,MAAM;IAC/C5B,eAAe;IACfG,OAAO,EAAEgB,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEhB;EACrB,CAAC;AACH;AAEA,SAASd,sBAAsBA,CAC7Bf,QAAgB,EAC0B;EAC1C,IAAIuD,OAAO,GAAG1D,2BAA2B,CAAC2D,GAAG,CAACxD,QAAQ,CAAC;EACvD,IAAI,CAACuD,OAAO,EAAE;IACZA,OAAO,GAAGE,uBAAuB,CAACzD,QAAQ,CAAC;IAC3CH,2BAA2B,CAAC6D,GAAG,CAAC1D,QAAQ,EAAEuD,OAAO,CAAC;EACpD;EACA,OAAOA,OAAO;AAChB;AAAC,SAEcE,uBAAuBA,CAAAE,GAAA;EAAA,OAAAC,wBAAA,CAAArD,KAAA,OAAAC,SAAA;AAAA;AAAA,SAAAoD,yBAAA;EAAAA,wBAAA,GAAAnD,iBAAA,CAAtC,WACET,QAAgB,EAC0B;IAC1C,IAAM,CAAC6D,aAAa,EAAEC,eAAe,CAAC,GAAG9D,QAAQ,CAAC+D,KAAK,CAAC,GAAG,CAAC;IAC5D,IAAM,CAACxC,IAAI,EAAEI,OAAO,CAAC,GAAGmC,eAAe,CAACC,KAAK,CAAC,GAAG,CAAC;IAElD,IAAMlB,QAAQ,GAAGjD,WAAW,IAAAiB,MAAA,CAAIgD,aAAa,OAAAhD,MAAA,CAAIU,IAAI,EAAG;IACxD,IAAIsB,QAAQ,EAAE;MACZ,OAAO;QACLtB,IAAI,EAAEsB,QAAQ,CAACtB,IAAI;QACnBC,SAAS,EAAEqB,QAAQ,CAACmB,WAAW;QAC/BvC,WAAW,EAAEoB,QAAQ,CAACpB,WAAW;QACjCE,OAAO,EAAEkB,QAAQ,CAAClB,OAAO;QACzBkB,QAAQ,EAAE;UACRK,QAAQ,EAAEL,QAAQ,CAACK,QAAQ;UAC3BC,QAAQ,EAAEN,QAAQ,CAACM,QAAQ;UAC3BtB,OAAO,EAAEgB,QAAQ,CAAChB;QACpB;MACF,CAAC;IACH,CAAC,MAAM;MACL,IAAM;QAAEoC;MAAa,CAAC,SAAStE,gCAAgC,CAAC;QAC9DuE,YAAY,KAAArD,MAAA,CAAKgD,aAAa,OAAAhD,MAAA,CAAIU,IAAI,CAAE;QACxCI;MACF,CAAC,CAAC;;MAEF;MACA,IAAIsC,YAAY,EAAE;QAAA,IAAAE,qBAAA,EAAAC,sBAAA;QAChB,OAAO;UACL7C,IAAI,EAAE0C,YAAY,CAAC1C,IAAI;UACvBC,SAAS,GAAA2C,qBAAA,GAAEF,YAAY,CAACzC,SAAS,cAAA2C,qBAAA,wBAAAC,sBAAA,GAAtBD,qBAAA,CAAyB,CAAC,CAAC,cAAAC,sBAAA,uBAA3BA,sBAAA,CAA6B7C,IAAI;UAC5CE,WAAW,EAAEwC,YAAY,CAACxC,WAAW;UACrCE,OAAO,EAAEsC,YAAY,CAACtC,OAAO;UAC7BkB,QAAQ,EAAE;YACRK,QAAQ,EAAEe,YAAY,CAACf,QAAQ;YAC/BC,QAAQ,EAAEc,YAAY,CAACd,QAAQ;YAC/BtB,OAAO,EAAEoC,YAAY,CAACpC;UACxB;QACF,CAAC;MACH;IACF;EACF,CAAC;EAAA,OAAA+B,wBAAA,CAAArD,KAAA,OAAAC,SAAA;AAAA"}
@@ -1,122 +0,0 @@
1
- import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
2
- import _objectSpread from "@babel/runtime/helpers/objectSpread2";
3
- import { createProviderClass } from "@next-core/utils/general";
4
- import { http } from "@next-core/http";
5
- import { isEmpty, isObject } from "lodash";
6
- export var FLOW_API_PROVIDER = "core.provider-flow-api";
7
- function hasFields(ext_fields, type) {
8
- return ext_fields.some(item => item.source === type);
9
- }
10
- export function processExtFields(ext_fields) {
11
- var hasQueryParams = hasFields(ext_fields, "query");
12
- var hasBodyParams = hasFields(ext_fields, "body");
13
- for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
14
- args[_key - 1] = arguments[_key];
15
- }
16
- if (hasQueryParams) {
17
- if (hasBodyParams) {
18
- var [_data, _params, _options] = args;
19
- return {
20
- data: _data,
21
- options: _objectSpread({
22
- params: _params
23
- }, _options)
24
- };
25
- }
26
- var [params, _options2] = args;
27
- return {
28
- data: {},
29
- options: _objectSpread({
30
- params: params
31
- }, _options2)
32
- };
33
- }
34
-
35
- // only hasBodyParams or default
36
- var [data, options] = args;
37
- return {
38
- data,
39
- options: options
40
- };
41
- }
42
- export function hasFileType(request) {
43
- if (!request || request.type !== "object") {
44
- return false;
45
- }
46
- var processFields = fields => {
47
- return !isEmpty(fields) && fields.some(field => ["file", "file[]"].includes(field.type) || processFields(field.fields));
48
- };
49
- return processFields(request.fields);
50
- }
51
- export function transformFormData(data) {
52
- if (data instanceof FormData) {
53
- return data;
54
- }
55
- var formData = new FormData();
56
- var _loop = function (key) {
57
- if (Array.isArray(value)) {
58
- value.forEach(v => {
59
- formData.append(key, v);
60
- });
61
- } else if (isObject(value) && !(value instanceof Blob) && !(value instanceof Date)) {
62
- Object.entries(value).forEach(_ref => {
63
- var [k, v] = _ref;
64
- formData.append("".concat(key, "[").concat(k, "]"), v);
65
- });
66
- } else {
67
- formData.append(key, value);
68
- }
69
- };
70
- for (var [key, value] of Object.entries(data)) {
71
- _loop(key);
72
- }
73
- return formData;
74
- }
75
- export function callFlowApi(_x) {
76
- return _callFlowApi.apply(this, arguments);
77
- }
78
- function _callFlowApi() {
79
- _callFlowApi = _asyncToGenerator(function* (_ref2) {
80
- var {
81
- url,
82
- originalUri,
83
- method = "GET",
84
- responseWrapper = true,
85
- ext_fields = [],
86
- request,
87
- isFileType
88
- } = _ref2;
89
- var isSimpleRequest = ["get", "delete", "head"].includes(method.toLowerCase());
90
- var defaultOptions = isFileType ? {
91
- responseType: "blob"
92
- } : {};
93
- var response;
94
- for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
95
- args[_key2 - 1] = arguments[_key2];
96
- }
97
- if (isSimpleRequest) {
98
- var _originalUri$match$le, _originalUri$match, _request$fields$lengt, _request$fields;
99
- var noParams = originalUri && (request === null || request === void 0 ? void 0 : request.type) === "object" ? ((_originalUri$match$le = (_originalUri$match = originalUri.match(/:([^/]+)/g)) === null || _originalUri$match === void 0 ? void 0 : _originalUri$match.length) !== null && _originalUri$match$le !== void 0 ? _originalUri$match$le : 0) === ((_request$fields$lengt = (_request$fields = request.fields) === null || _request$fields === void 0 ? void 0 : _request$fields.length) !== null && _request$fields$lengt !== void 0 ? _request$fields$lengt : 0) : false;
100
- var params;
101
- var options;
102
- if (noParams) {
103
- [options] = args;
104
- } else {
105
- [params, options] = args;
106
- }
107
- response = yield http.simpleRequest(method, url, _objectSpread(_objectSpread({
108
- params
109
- }, defaultOptions), options));
110
- } else {
111
- var isUploadType = hasFileType(request);
112
- var result = processExtFields(ext_fields, ...args);
113
- response = yield http.requestWithBody(method, url, isUploadType ? transformFormData(result.data) : result.data, _objectSpread(_objectSpread({}, defaultOptions), result.options));
114
- }
115
- return (isFileType ? false : responseWrapper) ? response.data : response;
116
- });
117
- return _callFlowApi.apply(this, arguments);
118
- }
119
- export function registerFlowApiProvider() {
120
- customElements.define(FLOW_API_PROVIDER, createProviderClass(callFlowApi));
121
- }
122
- //# sourceMappingURL=FlowApiProvider.js.map