chayns-api 1.1.0-2 → 1.1.0-21

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 (92) hide show
  1. package/dist/chayns-api.js +2 -0
  2. package/dist/chayns-api.js.LICENSE.txt +41 -0
  3. package/dist/cjs/calls/dialogs/chaynsDialog.js +3 -6
  4. package/dist/cjs/calls/dialogs/date.js +29 -2
  5. package/dist/cjs/calls/dialogs/fileSelect.js +1 -2
  6. package/dist/cjs/calls/dialogs/input.js +2 -3
  7. package/dist/cjs/calls/dialogs/select.js +2 -3
  8. package/dist/cjs/calls/getUserInfo.js +1 -2
  9. package/dist/cjs/calls/index.js +93 -82
  10. package/dist/cjs/calls/toolbarChangeListener.js +1 -0
  11. package/dist/cjs/components/AppDialogWrapper.js +7 -7
  12. package/dist/cjs/components/ChaynsContext.js +2 -4
  13. package/dist/cjs/components/ChaynsProvider.js +10 -13
  14. package/dist/cjs/components/ErrorBoundary.js +31 -0
  15. package/dist/cjs/components/moduleWrapper.js +9 -0
  16. package/dist/cjs/components/withCompatMode.js +8 -7
  17. package/dist/cjs/components/withHydrationBoundary.js +54 -0
  18. package/dist/cjs/constants/hydrationContext.js +16 -0
  19. package/dist/cjs/constants/index.js +16 -0
  20. package/dist/cjs/constants/languages.js +19 -0
  21. package/dist/cjs/handler/DialogHandler.js +4 -2
  22. package/dist/cjs/hooks/useAccessToken.js +1 -0
  23. package/dist/cjs/hooks/useDialogState.js +2 -2
  24. package/dist/cjs/hooks/usePages.js +2 -2
  25. package/dist/cjs/host/ChaynsHost.js +21 -41
  26. package/dist/cjs/host/iframe/HostIframe.js +4 -6
  27. package/dist/cjs/host/iframe/utils/useUpdateData.js +1 -2
  28. package/dist/cjs/host/module/ModuleHost.js +9 -24
  29. package/dist/cjs/host/module/Test3.js +141 -0
  30. package/dist/cjs/host/module/utils/loadComponent.js +94 -49
  31. package/dist/cjs/index.js +63 -5
  32. package/dist/cjs/types/IChaynsReact.js +140 -107
  33. package/dist/cjs/util/appCall.js +3 -4
  34. package/dist/cjs/util/deviceHelper.js +18 -13
  35. package/dist/cjs/util/transferNestedFunctions.js +39 -0
  36. package/dist/cjs/util/url.js +1 -1
  37. package/dist/cjs/wrapper/AppWrapper.js +79 -16
  38. package/dist/cjs/wrapper/FrameWrapper.js +16 -5
  39. package/dist/cjs/wrapper/StaticChaynsApi.js +22 -0
  40. package/dist/esm/calls/index.js +22 -1
  41. package/dist/esm/calls/toolbarChangeListener.js +0 -0
  42. package/dist/esm/components/AppDialogWrapper.js +4 -3
  43. package/dist/esm/components/ChaynsProvider.js +6 -7
  44. package/dist/esm/components/ErrorBoundary.js +23 -0
  45. package/dist/esm/components/moduleWrapper.js +3 -0
  46. package/dist/esm/components/withCompatMode.js +5 -4
  47. package/dist/esm/components/withHydrationBoundary.js +47 -0
  48. package/dist/esm/constants/hydrationContext.js +10 -0
  49. package/dist/esm/constants/index.js +1 -0
  50. package/dist/esm/constants/languages.js +13 -0
  51. package/dist/esm/handler/DialogHandler.js +6 -4
  52. package/dist/esm/hooks/useAccessToken.js +1 -0
  53. package/dist/esm/hooks/useDialogState.js +2 -2
  54. package/dist/esm/hooks/usePages.js +1 -1
  55. package/dist/esm/host/ChaynsHost.js +18 -39
  56. package/dist/esm/host/iframe/HostIframe.js +1 -2
  57. package/dist/esm/host/module/ModuleHost.js +6 -20
  58. package/dist/esm/host/module/Test3.js +135 -0
  59. package/dist/esm/host/module/utils/loadComponent.js +95 -49
  60. package/dist/esm/index.js +7 -1
  61. package/dist/esm/types/IChaynsReact.js +142 -87
  62. package/dist/esm/util/appCall.js +2 -2
  63. package/dist/esm/util/deviceHelper.js +17 -11
  64. package/dist/esm/util/transferNestedFunctions.js +35 -0
  65. package/dist/esm/util/url.js +2 -2
  66. package/dist/esm/wrapper/AppWrapper.js +80 -16
  67. package/dist/esm/wrapper/FrameWrapper.js +16 -5
  68. package/dist/esm/wrapper/StaticChaynsApi.js +20 -0
  69. package/dist/types/calls/index.d.ts +19 -5
  70. package/dist/types/calls/toolbarChangeListener.d.ts +0 -0
  71. package/dist/types/components/AppDialogWrapper.d.ts +2 -2
  72. package/dist/types/components/ChaynsProvider.d.ts +1 -4
  73. package/dist/types/components/ErrorBoundary.d.ts +13 -0
  74. package/dist/types/components/moduleWrapper.d.ts +4 -0
  75. package/dist/types/components/withHydrationBoundary.d.ts +17 -0
  76. package/dist/types/constants/hydrationContext.d.ts +9 -0
  77. package/dist/types/constants/index.d.ts +1 -0
  78. package/dist/types/constants/languages.d.ts +12 -0
  79. package/dist/types/handler/DialogHandler.d.ts +0 -1
  80. package/dist/types/hooks/useAccessToken.d.ts +1 -0
  81. package/dist/types/hooks/useCurrentPage.d.ts +4 -1
  82. package/dist/types/host/ChaynsHost.d.ts +0 -1
  83. package/dist/types/host/module/ModuleHost.d.ts +2 -0
  84. package/dist/types/host/module/Test3.d.ts +8 -0
  85. package/dist/types/host/module/utils/loadComponent.d.ts +3 -1
  86. package/dist/types/index.d.ts +7 -1
  87. package/dist/types/types/IChaynsReact.d.ts +136 -28
  88. package/dist/types/util/deviceHelper.d.ts +2 -2
  89. package/dist/types/util/transferNestedFunctions.d.ts +1 -0
  90. package/dist/types/wrapper/StaticChaynsApi.d.ts +9 -0
  91. package/package.json +33 -22
  92. package/toolkit.config.js +20 -0
@@ -0,0 +1,141 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ exports.fetchData = fetchData;
8
+ var _useDynamicScript = require("./utils/useDynamicScript");
9
+ var _semaphoreAsyncAwait = _interopRequireDefault(require("semaphore-async-await"));
10
+ var _loadComponent = _interopRequireDefault(require("./utils/loadComponent"));
11
+ var _react = _interopRequireDefault(require("react"));
12
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
+ const Test = () => {
14
+ return /*#__PURE__*/_react.default.createElement("div", null, "Test12");
15
+ };
16
+ const Test2 = ({
17
+ fallback
18
+ }) => {
19
+ return /*#__PURE__*/_react.default.createElement("div", null, fallback);
20
+ };
21
+ let status = 'pending';
22
+ let error = false;
23
+ function wrapPromise(promise) {
24
+ console.log("nice2222");
25
+ let response;
26
+ const suspender = promise.then(res => {
27
+ console.log("settttttt");
28
+ status = 'success';
29
+ response = res;
30
+ }, err => {
31
+ console.error(err);
32
+ status = 'error';
33
+ response = err;
34
+ });
35
+ const read = () => {
36
+ console.log("status", status);
37
+ switch (status) {
38
+ case 'pending':
39
+ throw suspender;
40
+ case 'error':
41
+ throw response;
42
+ default:
43
+ return response;
44
+ }
45
+ };
46
+ console.log("nice33333");
47
+ return {
48
+ read
49
+ };
50
+ }
51
+ function fetchData(url) {
52
+ console.log("ahhh");
53
+ const promise = fetch(url).then(async res => {
54
+ var t = await res.json();
55
+ console.log("tttt", t);
56
+ return {
57
+ test: 1
58
+ };
59
+ });
60
+ return wrapPromise(promise);
61
+ }
62
+ let Raw = Test;
63
+ const Component = ({
64
+ fallback,
65
+ system
66
+ }) => {
67
+ //
68
+ // return <div>Nice</div>;
69
+
70
+ const p = new Promise(async res => {
71
+ if (!global.window) {
72
+ Raw = Test2;
73
+ res(true);
74
+ return;
75
+ }
76
+ const args = {
77
+ url: system.url,
78
+ scope: system === null || system === void 0 ? void 0 : system.scope
79
+ };
80
+ if (!args.url) {
81
+ return undefined;
82
+ }
83
+ const element = document.createElement('script');
84
+ element.src = args.url;
85
+ element.type = 'text/javascript';
86
+ element.async = true;
87
+ if (!(args.scope in _useDynamicScript.semaphore)) {
88
+ _useDynamicScript.semaphore[args.scope] = new _semaphoreAsyncAwait.default(1);
89
+ }
90
+ (async () => {
91
+ await _useDynamicScript.semaphore[args.scope].acquire();
92
+ element.onload = async () => {
93
+ await new Promise(r => setTimeout(r, 3000));
94
+ console.log('dsajkhdkjashdkjashdkashjkdhsjakhdkjsa');
95
+ const listKey = args.scope + "_list";
96
+ if (!window[listKey]) window[listKey] = [];
97
+ window[listKey].push({
98
+ url: args.url,
99
+ container: window[args.scope]
100
+ });
101
+ window[args.scope] = null;
102
+ const tt = () => new Promise(async r2 => {
103
+ var test1 = await (await (0, _loadComponent.default)(system.scope, system.module, system.url, undefined, system.preventSingleton))();
104
+ console.log("ööööö", test1.default);
105
+ r2(test1.default);
106
+ });
107
+
108
+ // return React.lazy(tt);
109
+ Raw = await tt();
110
+ res(true);
111
+ console.log("Raw", Raw);
112
+ };
113
+ element.onerror = () => {
114
+ console.log("errorrrrrrrrrrrr");
115
+ res(false);
116
+ };
117
+ document.head.appendChild(element);
118
+ })();
119
+ });
120
+ const l = wrapPromise(p);
121
+ console.error("l.read", status);
122
+ l.read();
123
+ console.error("l.read2", error, Raw);
124
+ // !system || !ready || failed
125
+
126
+ if (error) {
127
+ return /*#__PURE__*/_react.default.createElement(Test, null);
128
+ }
129
+ if (global.window) {
130
+ return /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(Raw, {
131
+ fallback: fallback
132
+ }));
133
+ }
134
+ return /*#__PURE__*/_react.default.createElement(Raw, {
135
+ fallback: fallback
136
+ });
137
+
138
+ /* eslint-disable react-hooks/exhaustive-deps */
139
+ };
140
+ var _default = Component;
141
+ exports.default = _default;
@@ -3,59 +3,104 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = loadComponent;
6
+ exports.loadModule = exports.default = void 0;
7
+ var _reactDom = _interopRequireDefault(require("react-dom"));
7
8
  var _semver = _interopRequireDefault(require("semver"));
8
9
  var _react = _interopRequireDefault(require("react"));
9
- var _useDynamicScript = require("./useDynamicScript");
10
+ var _runtime = require("@module-federation/runtime");
10
11
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
- /* eslint-disable */
12
- // @ts-nocheck
13
-
14
- let instances = {};
15
- function loadComponent(scope, module, url, skipCompatMode = false) {
16
- return async () => {
17
- // Initializes the shared scope. Fills it with known provided modules from this build and all remotes
18
- // eslint-disable-next-line no-undef
19
- await __webpack_init_sharing__('default');
20
- const {
21
- container
22
- } = window[scope + "_list"].find(x => x.url === url); // or get the container somewhere else
23
- // Initialize the container, it may provide shared modules
24
- // eslint-disable-next-line no-undef
25
- await container.init(__webpack_share_scopes__.default);
26
- const factory = await container.get(module);
27
- _useDynamicScript.semaphore[scope].release();
28
- let ModuleMap = instances[`${scope}__${module}`];
29
- let Module;
30
- if (!ModuleMap) {
31
- ModuleMap = {};
32
- instances[`${scope}__${module}`] = ModuleMap;
12
+ const registeredScopes = {};
13
+ const moduleMap = {};
14
+ const componentMap = {};
15
+ (0, _runtime.init)({
16
+ // @ts-expect-error will be set by chayns-toolkit via DefinePlugin
17
+ name: process.env.__PACKAGE_NAME__,
18
+ remotes: [],
19
+ shared: {
20
+ react: {
21
+ version: _react.default.version,
22
+ scope: 'default',
23
+ lib: () => _react.default
24
+ },
25
+ 'react-dom': {
26
+ version: _reactDom.default.version,
27
+ scope: 'default',
28
+ lib: () => _reactDom.default
33
29
  }
34
- if (Object.keys(ModuleMap).length > 0) {
35
- const newModule = factory();
36
- Module = ModuleMap[`${newModule.default.buildEnv}__${newModule.default.appVersion}`];
37
- if (!Module) {
38
- Module = newModule;
39
- ModuleMap[`${newModule.default.buildEnv}__${newModule.default.appVersion}`] = newModule;
40
- }
41
- } else {
42
- Module = factory();
43
- ModuleMap[`${Module.default.buildEnv}__${Module.default.appVersion}`] = Module;
30
+ }
31
+ });
32
+ const loadModule = (scope, module, url, preventSingleton = false) => {
33
+ if (registeredScopes[scope] !== url || preventSingleton) {
34
+ if (scope in registeredScopes) {
35
+ console.error(`[chayns-api] call registerRemote with force for scope ${scope}. url: ${url}`);
44
36
  }
45
- if (skipCompatMode) return Module;
46
- const hostVersion = _semver.default.minVersion(_react.default.version);
47
- const {
48
- requiredVersion,
49
- environment
50
- } = Module.default;
51
- const matchReactVersion = requiredVersion && _semver.default.satisfies(hostVersion, requiredVersion);
52
- if (!matchReactVersion || environment !== 'production') {
37
+ (0, _runtime.registerRemotes)([{
38
+ name: scope,
39
+ entry: url,
40
+ alias: scope
41
+ }], {
42
+ force: scope in registeredScopes
43
+ });
44
+ registeredScopes[scope] = url;
45
+ moduleMap[scope] = {};
46
+ componentMap[scope] = {};
47
+ }
48
+ if (!(module in moduleMap[scope])) {
49
+ const path = `${scope}/${module.replace(/^\.\//, '')}`;
50
+ const promise = (0, _runtime.loadRemote)(path);
51
+ promise.catch(e => {
52
+ console.error("[chayns-api] Failed to load module", scope, url, e);
53
+ // causes registerRemote with force = true on next attempt to load the component which tries to load the component again
54
+ registeredScopes[scope] = '';
55
+ });
56
+ return promise;
57
+ }
58
+ return moduleMap[scope][module];
59
+ };
60
+ exports.loadModule = loadModule;
61
+ const loadComponent = (scope, module, url, skipCompatMode = false, preventSingleton = false) => {
62
+ if (skipCompatMode) {
63
+ console.warn('[chayns-api] skipCompatMode-option is deprecated and is set automatically now');
64
+ }
65
+ if (!componentMap[scope]) {
66
+ componentMap[scope] = {};
67
+ }
68
+ if (!(module in componentMap[scope])) {
69
+ const promise = loadModule(scope, module, url, preventSingleton).then(async Module => {
70
+ if (typeof Module.default === 'function') {
71
+ return Module;
72
+ }
73
+ const hostVersion = _semver.default.minVersion(_react.default.version);
74
+ const {
75
+ requiredVersion,
76
+ environment
77
+ } = Module.default;
78
+ const shareScopes = await new Promise(resolve => {
79
+ (0, _runtime.loadShareSync)('react', {
80
+ resolver: shareOptions => {
81
+ resolve(shareOptions);
82
+ return shareOptions[0];
83
+ }
84
+ });
85
+ });
86
+ const matchReactVersion = requiredVersion && _semver.default.satisfies(hostVersion, requiredVersion) && !shareScopes.some(t => {
87
+ const {
88
+ version,
89
+ from
90
+ } = t;
91
+ return _semver.default.gt(version, hostVersion) && _semver.default.satisfies(version, requiredVersion) || scope === from.split('-').join('_');
92
+ });
93
+ if (!matchReactVersion || environment !== 'production' || process.env.NODE_ENV === 'development') {
94
+ return {
95
+ default: Module.default.CompatComponent
96
+ };
97
+ }
53
98
  return {
54
- default: Module.default.CompatComponent
99
+ default: Module.default.Component
55
100
  };
56
- }
57
- return {
58
- default: Module.default.Component
59
- };
60
- };
61
- }
101
+ });
102
+ componentMap[scope][module] = /*#__PURE__*/_react.default.lazy(() => promise);
103
+ }
104
+ return componentMap[scope][module];
105
+ };
106
+ var _default = exports.default = loadComponent;
package/dist/cjs/index.js CHANGED
@@ -7,8 +7,14 @@ var _exportNames = {
7
7
  ChaynsProvider: true,
8
8
  getDeviceInfo: true,
9
9
  getScreenSize: true,
10
+ getClientDeviceInfo: true,
10
11
  ChaynsHost: true,
11
12
  withCompatMode: true,
13
+ withHydrationBoundary: true,
14
+ StaticChaynsApi: true,
15
+ loadComponent: true,
16
+ loadModule: true,
17
+ DialogHandler: true,
12
18
  dialog: true
13
19
  };
14
20
  Object.defineProperty(exports, "ChaynsHost", {
@@ -23,7 +29,25 @@ Object.defineProperty(exports, "ChaynsProvider", {
23
29
  return _ChaynsProvider.default;
24
30
  }
25
31
  });
32
+ Object.defineProperty(exports, "DialogHandler", {
33
+ enumerable: true,
34
+ get: function () {
35
+ return _DialogHandler.default;
36
+ }
37
+ });
38
+ Object.defineProperty(exports, "StaticChaynsApi", {
39
+ enumerable: true,
40
+ get: function () {
41
+ return _StaticChaynsApi.default;
42
+ }
43
+ });
26
44
  exports.dialog = exports.default = void 0;
45
+ Object.defineProperty(exports, "getClientDeviceInfo", {
46
+ enumerable: true,
47
+ get: function () {
48
+ return _deviceHelper.getClientDeviceInfo;
49
+ }
50
+ });
27
51
  Object.defineProperty(exports, "getDeviceInfo", {
28
52
  enumerable: true,
29
53
  get: function () {
@@ -36,12 +60,31 @@ Object.defineProperty(exports, "getScreenSize", {
36
60
  return _deviceHelper.getScreenSize;
37
61
  }
38
62
  });
63
+ Object.defineProperty(exports, "loadComponent", {
64
+ enumerable: true,
65
+ get: function () {
66
+ return _loadComponent.default;
67
+ }
68
+ });
69
+ Object.defineProperty(exports, "loadModule", {
70
+ enumerable: true,
71
+ get: function () {
72
+ return _loadComponent.loadModule;
73
+ }
74
+ });
39
75
  Object.defineProperty(exports, "withCompatMode", {
40
76
  enumerable: true,
41
77
  get: function () {
42
78
  return _withCompatMode.withCompatMode;
43
79
  }
44
80
  });
81
+ Object.defineProperty(exports, "withHydrationBoundary", {
82
+ enumerable: true,
83
+ get: function () {
84
+ return _withHydrationBoundary.default;
85
+ }
86
+ });
87
+ require("./util/transferNestedFunctions");
45
88
  var _ChaynsProvider = _interopRequireDefault(require("./components/ChaynsProvider"));
46
89
  var _deviceHelper = _interopRequireWildcard(require("./util/deviceHelper"));
47
90
  var _ChaynsHost = _interopRequireDefault(require("./host/ChaynsHost"));
@@ -105,13 +148,28 @@ Object.keys(_IChaynsReact).forEach(function (key) {
105
148
  }
106
149
  });
107
150
  });
151
+ var _constants = require("./constants");
152
+ Object.keys(_constants).forEach(function (key) {
153
+ if (key === "default" || key === "__esModule") return;
154
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
155
+ if (key in exports && exports[key] === _constants[key]) return;
156
+ Object.defineProperty(exports, key, {
157
+ enumerable: true,
158
+ get: function () {
159
+ return _constants[key];
160
+ }
161
+ });
162
+ });
163
+ var _withHydrationBoundary = _interopRequireDefault(require("./components/withHydrationBoundary"));
164
+ var _StaticChaynsApi = _interopRequireDefault(require("./wrapper/StaticChaynsApi"));
165
+ var _loadComponent = _interopRequireWildcard(require("./host/module/utils/loadComponent"));
166
+ var _DialogHandler = _interopRequireDefault(require("./handler/DialogHandler"));
108
167
  var _dialog = _interopRequireWildcard(require("./calls/dialogs/index"));
109
168
  exports.dialog = _dialog;
110
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
111
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
169
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
170
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
112
171
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
113
- var _default = {
172
+ var _default = exports.default = {
114
173
  buildEnv: process.env.BUILD_ENV,
115
174
  appVersion: process.env.VERSION
116
- };
117
- exports.default = _default;
175
+ };