boke-devops 0.0.30

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 (111) hide show
  1. package/.vscode/settings.json +2 -0
  2. package/lerna.json +4 -0
  3. package/package.json +43 -0
  4. package/packages/boke-devops-vue/.eslintrc.cjs +22 -0
  5. package/packages/boke-devops-vue/README.md +45 -0
  6. package/packages/boke-devops-vue/demo/App.vue +62 -0
  7. package/packages/boke-devops-vue/demo/main.ts +7 -0
  8. package/packages/boke-devops-vue/package-lock.json +13513 -0
  9. package/packages/boke-devops-vue/package.json +59 -0
  10. package/packages/boke-devops-vue/pnpm-lock.yaml +6063 -0
  11. package/packages/boke-devops-vue/src/AegisUser/__tests__/Avatar.test.js +18 -0
  12. package/packages/boke-devops-vue/src/AegisUser/__tests__/__snapshots__/Avatar.test.js.snap +60 -0
  13. package/packages/boke-devops-vue/src/AegisUser/multiple-user-select.vue +190 -0
  14. package/packages/boke-devops-vue/src/AegisUser/store.ts +23 -0
  15. package/packages/boke-devops-vue/src/AegisUser/user-avatar-group.vue +76 -0
  16. package/packages/boke-devops-vue/src/AegisUser/user-avatar.vue +347 -0
  17. package/packages/boke-devops-vue/src/Microapp/MicroAppProvider.vue +50 -0
  18. package/packages/boke-devops-vue/src/Provider/Provider.vue +22 -0
  19. package/packages/boke-devops-vue/src/Provider/store.ts +23 -0
  20. package/packages/boke-devops-vue/src/global.d.ts +43 -0
  21. package/packages/boke-devops-vue/src/index.ts +39 -0
  22. package/packages/boke-devops-vue/src/style/variables.less +79 -0
  23. package/packages/boke-devops-vue/tsconfig.json +34 -0
  24. package/packages/boke-devops-vue/tsconfig.web.json +20 -0
  25. package/packages/boke-devops-vue/types/AegisUser/multiple-user-select.vue.d.ts +97 -0
  26. package/packages/boke-devops-vue/types/AegisUser/store.d.ts +7 -0
  27. package/packages/boke-devops-vue/types/AegisUser/user-avatar-group.vue.d.ts +44 -0
  28. package/packages/boke-devops-vue/types/AegisUser/user-avatar.vue.d.ts +217 -0
  29. package/packages/boke-devops-vue/types/Microapp/MicroAppProvider.vue.d.ts +39 -0
  30. package/packages/boke-devops-vue/types/Provider/Provider.vue.d.ts +63 -0
  31. package/packages/boke-devops-vue/types/Provider/store.d.ts +15 -0
  32. package/packages/boke-devops-vue/types/index.d.ts +13 -0
  33. package/packages/boke-devops-vue/types/store.d.ts +12 -0
  34. package/packages/boke-devops-vue/vite.config.ts +90 -0
  35. package/packages/boke-docs/.dumirc.ts +64 -0
  36. package/packages/boke-docs/.eslintrc.js +14 -0
  37. package/packages/boke-docs/.fatherrc.ts +7 -0
  38. package/packages/boke-docs/README.md +1 -0
  39. package/packages/boke-docs/docs/components/Avatar/demo/normal.vue +25 -0
  40. package/packages/boke-docs/docs/components/Avatar/demo/with_provider.vue +38 -0
  41. package/packages/boke-docs/docs/components/Avatar/index.md +10 -0
  42. package/packages/boke-docs/docs/components/UserSelect/demo/normal.vue +34 -0
  43. package/packages/boke-docs/docs/components/UserSelect/demo/with_provider.vue +40 -0
  44. package/packages/boke-docs/docs/components/UserSelect/index.md +12 -0
  45. package/packages/boke-docs/docs/components/index.md +126 -0
  46. package/packages/boke-docs/docs/framework-test/external/App.vue +303 -0
  47. package/packages/boke-docs/docs/framework-test/index.md +96 -0
  48. package/packages/boke-docs/docs/index.md +50 -0
  49. package/packages/boke-docs/node_modules/.bin/acorn +17 -0
  50. package/packages/boke-docs/node_modules/.bin/acorn.CMD +12 -0
  51. package/packages/boke-docs/node_modules/.bin/acorn.ps1 +41 -0
  52. package/packages/boke-docs/node_modules/.bin/browserslist +17 -0
  53. package/packages/boke-docs/node_modules/.bin/browserslist.CMD +12 -0
  54. package/packages/boke-docs/node_modules/.bin/browserslist.ps1 +41 -0
  55. package/packages/boke-docs/node_modules/.bin/dumi +17 -0
  56. package/packages/boke-docs/node_modules/.bin/dumi.CMD +12 -0
  57. package/packages/boke-docs/node_modules/.bin/dumi.ps1 +41 -0
  58. package/packages/boke-docs/node_modules/.bin/eslint +17 -0
  59. package/packages/boke-docs/node_modules/.bin/eslint.CMD +12 -0
  60. package/packages/boke-docs/node_modules/.bin/eslint.ps1 +41 -0
  61. package/packages/boke-docs/node_modules/.bin/prettier +17 -0
  62. package/packages/boke-docs/node_modules/.bin/prettier.CMD +12 -0
  63. package/packages/boke-docs/node_modules/.bin/prettier.ps1 +41 -0
  64. package/packages/boke-docs/node_modules/.bin/stylelint +17 -0
  65. package/packages/boke-docs/node_modules/.bin/stylelint.CMD +12 -0
  66. package/packages/boke-docs/node_modules/.bin/stylelint.ps1 +41 -0
  67. package/packages/boke-docs/node_modules/.bin/tsc +17 -0
  68. package/packages/boke-docs/node_modules/.bin/tsc.CMD +12 -0
  69. package/packages/boke-docs/node_modules/.bin/tsc.ps1 +41 -0
  70. package/packages/boke-docs/node_modules/.bin/tsserver +17 -0
  71. package/packages/boke-docs/node_modules/.bin/tsserver.CMD +12 -0
  72. package/packages/boke-docs/node_modules/.bin/tsserver.ps1 +41 -0
  73. package/packages/boke-docs/node_modules/.bin/vite +17 -0
  74. package/packages/boke-docs/node_modules/.bin/vite.CMD +12 -0
  75. package/packages/boke-docs/node_modules/.bin/vite.ps1 +41 -0
  76. package/packages/boke-docs/node_modules/.bin/webpack +17 -0
  77. package/packages/boke-docs/node_modules/.bin/webpack.CMD +12 -0
  78. package/packages/boke-docs/node_modules/.bin/webpack.ps1 +41 -0
  79. package/packages/boke-docs/package.json +38 -0
  80. package/packages/boke-docs/pnpm-lock.yaml +11506 -0
  81. package/packages/boke-docs/tsconfig.json +14 -0
  82. package/packages/boke-docs/tsconfig.vue.json +10 -0
  83. package/packages/boke-js-bridge/es/child.d.ts +27 -0
  84. package/packages/boke-js-bridge/es/child.js +144 -0
  85. package/packages/boke-js-bridge/es/index.d.ts +3 -0
  86. package/packages/boke-js-bridge/es/index.js +3 -0
  87. package/packages/boke-js-bridge/es/parent.d.ts +24 -0
  88. package/packages/boke-js-bridge/es/parent.js +71 -0
  89. package/packages/boke-js-bridge/es/utils.d.ts +2 -0
  90. package/packages/boke-js-bridge/es/utils.js +6 -0
  91. package/packages/boke-js-bridge/package-lock.json +2028 -0
  92. package/packages/boke-js-bridge/package.json +35 -0
  93. package/packages/boke-js-bridge/readme.md +11 -0
  94. package/packages/boke-js-bridge/src/child.ts +174 -0
  95. package/packages/boke-js-bridge/src/index.ts +3 -0
  96. package/packages/boke-js-bridge/src/parent.ts +92 -0
  97. package/packages/boke-js-bridge/src/utils.ts +15 -0
  98. package/packages/boke-js-bridge/tsconfig.json +26 -0
  99. package/packages/boke-js-bridge/typings.d.ts +4 -0
  100. package/packages/boke-js-bridge/umd/child.js +156 -0
  101. package/packages/boke-js-bridge/umd/index.js +18 -0
  102. package/packages/boke-js-bridge/umd/parent.js +84 -0
  103. package/packages/boke-js-bridge/umd/utils.js +18 -0
  104. package/packages/test/Provider-test.vue +85 -0
  105. package/pnpm-workspace.yaml +2 -0
  106. package/scripts/configs.mjs +52 -0
  107. package/scripts/index.mjs +43 -0
  108. package/scripts/release.mjs +16 -0
  109. package/test-setup.js +24 -0
  110. package/vite.config.ts +21 -0
  111. package/vitest.config.js +22 -0
@@ -0,0 +1,14 @@
1
+ {
2
+ "compilerOptions": {
3
+ "baseUrl": "./",
4
+ "paths": {
5
+ "@devops/boke-docs": ["./src"],
6
+ "@devops/boke-devops-vue": ["./../boke-devops-vue"]
7
+ },
8
+ "allowJs": true,
9
+ "jsx": "preserve",
10
+ "jsxImportSource": "vue",
11
+ "strictNullChecks": false
12
+ },
13
+ "include": [".dumirc.ts", "src/**/*", "docs/**/*"]
14
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "extends": "./tsconfig.json",
3
+ "compilerOptions": {
4
+ "allowJs": true,
5
+ "jsx": "preserve",
6
+ "jsxImportSource": "vue",
7
+ "strictNullChecks": false
8
+ },
9
+ "include": ["src/**/*", "docs/**/*", "./../boke-devops-vue/src"]
10
+ }
@@ -0,0 +1,27 @@
1
+ interface ChildMethods {
2
+ /*** 获取授权 */
3
+ getAuthorization: () => Promise<any>;
4
+ /*** 获取用户信息 */
5
+ getUserInfo: () => Promise<any>;
6
+ /*** 获取自定义事件的数据 */
7
+ fetchCustomData: (tokenName /*** 获取授权 */: any) => Promise<any>;
8
+ /*** 触发parent的事件 */
9
+ triggerEvent: (methodName: string, methodData?: any) => any;
10
+ /**事件挂载函数到Child */
11
+ $on: (methodName: string, cb: (data: string) => void) => void;
12
+ /**事件移除函数到Child */
13
+ $off: (methodName: string) => void;
14
+ /**事件挂载函数到Child, 包含Parent回调函数 */
15
+ $onCallback: (methodName: string, cb: (data: string) => void) => void;
16
+ /**事件移除函数到Child, 包含Parent回调函数 */
17
+ $offCallback: (methodName: string) => void;
18
+ goPage: (path: string, params: any) => void;
19
+ refreshTag: () => void;
20
+ /*** 关闭弹窗 */
21
+ closeModal: () => void;
22
+ toast: (msg: string) => void;
23
+ cacheData: any;
24
+ version: string;
25
+ }
26
+ declare const _default: ChildMethods;
27
+ export default _default;
@@ -0,0 +1,144 @@
1
+ import * as tslib_1 from "tslib";
2
+ import { childLogger } from './utils';
3
+ const ChildHanlder = () => {
4
+ let methods = {};
5
+ const triggerAppEvent = (eventName, eventData) => {
6
+ const webviewBridge = window || null;
7
+ if (!webviewBridge && window.bokeJsBridge) {
8
+ alert('请在 boke 中运行此页面!');
9
+ }
10
+ else {
11
+ const postdata = {
12
+ eventName: eventName,
13
+ eventData: eventData,
14
+ msgScoped: "boke-JS-BRIDGE"
15
+ };
16
+ childLogger("boke-JS-BRIDGE", `postMessage to ParentSdk: ${postdata}`);
17
+ webviewBridge.parent.postMessage(JSON.stringify(postdata), '*');
18
+ }
19
+ };
20
+ methods.goPage = (path = '', params = {}) => {
21
+ triggerAppEvent('goPage', { path, params });
22
+ };
23
+ methods.refreshTag = () => {
24
+ triggerAppEvent('refreshTag', {});
25
+ };
26
+ methods.closeModal = () => {
27
+ triggerAppEvent('closeModal', {});
28
+ };
29
+ methods.toast = (text = '你触发了一个提示!') => {
30
+ triggerAppEvent('toast', text);
31
+ };
32
+ methods.$on = (eventName, callback) => {
33
+ window.messageArray.set(eventName, (eventData) => {
34
+ callback(eventData);
35
+ });
36
+ };
37
+ methods.$off = (eventName) => {
38
+ window.messageArray.delete(eventName);
39
+ };
40
+ methods.$onCallback = (eventName, callback) => {
41
+ methods.$on(eventName + '@Callback', callback);
42
+ };
43
+ methods.$offCallback = (eventName) => {
44
+ methods.$off(eventName + '@Callback');
45
+ };
46
+ methods.cacheData = {};
47
+ methods.version = '0.0.1';
48
+ const cratePromise = (asyncName, timeout = 1200) => {
49
+ let result = {
50
+ status: "pending",
51
+ data: null,
52
+ err: null
53
+ };
54
+ let pro = new Promise((resolve, rejected) => {
55
+ let autoTimer;
56
+ const callback = (eventData) => {
57
+ autoTimer && clearTimeout(autoTimer);
58
+ methods.$offCallback(asyncName);
59
+ resolve(eventData);
60
+ };
61
+ autoTimer = setTimeout(() => {
62
+ callback(null);
63
+ }, timeout); // 1.2秒内没有应答 直接结束.
64
+ methods.$onCallback(asyncName, callback);
65
+ triggerAppEvent(asyncName, null);
66
+ }).then(res => {
67
+ result.data = res;
68
+ result.status = "fulfiled";
69
+ methods.cacheData[asyncName] = result;
70
+ return result;
71
+ }).catch(e => {
72
+ result.err = e;
73
+ result.status = "rejected";
74
+ methods.cacheData[asyncName] = result;
75
+ return result;
76
+ });
77
+ return pro;
78
+ };
79
+ function withAsyncContext(asyncName) {
80
+ let run = null;
81
+ try {
82
+ run = () => {
83
+ if (methods.cacheData[asyncName]) {
84
+ if (methods.cacheData[asyncName].status === 'fulfiled') {
85
+ return methods.cacheData[asyncName].data;
86
+ }
87
+ else if (methods.cacheData[asyncName].status === 'rejected') {
88
+ throw methods.cacheData[asyncName].err;
89
+ }
90
+ }
91
+ throw cratePromise(asyncName).then(res => res.data);
92
+ };
93
+ return run();
94
+ }
95
+ catch (e) {
96
+ if (e instanceof Promise) {
97
+ e.finally(done => {
98
+ throw methods.cacheData[asyncName].data;
99
+ });
100
+ }
101
+ }
102
+ }
103
+ methods.getAuthorization = () => tslib_1.__awaiter(this, void 0, void 0, function* () {
104
+ return yield cratePromise("getAuthorization").then(res => res.data);
105
+ });
106
+ methods.getUserInfo = () => tslib_1.__awaiter(this, void 0, void 0, function* () {
107
+ return yield cratePromise("getUserInfo").then(res => res.data);
108
+ });
109
+ methods.fetchCustomData = (tokenName) => tslib_1.__awaiter(this, void 0, void 0, function* () {
110
+ return yield cratePromise(tokenName, 3000).then(res => res.data);
111
+ });
112
+ methods.triggerEvent = (eventName, eventArgs) => tslib_1.__awaiter(this, void 0, void 0, function* () {
113
+ triggerAppEvent(eventName, eventArgs);
114
+ });
115
+ if (!window.bokeJsBridge) {
116
+ window.bokeJsBridge = new Proxy(methods, {
117
+ get(target, property) {
118
+ if (property in target) {
119
+ return target[property];
120
+ }
121
+ },
122
+ });
123
+ window.messageArray = new Map();
124
+ window.addEventListener('message', ({ data, source, origin }) => {
125
+ window.messageArray.forEach((callback, key) => {
126
+ try {
127
+ const { eventName, eventData, msgScoped } = JSON.parse(data);
128
+ if (msgScoped != "boke-JS-BRIDGE") {
129
+ return; // 非boke的信息不处理
130
+ }
131
+ if (eventName == key) {
132
+ callback(eventData);
133
+ childLogger("boke-JS-BRIDGE", `postMessage to ChildSdk: ${data}`);
134
+ }
135
+ }
136
+ catch (e) {
137
+ }
138
+ });
139
+ });
140
+ childLogger("boke-JS-BRIDGE", "ChildSdk is ready");
141
+ }
142
+ return window.bokeJsBridge;
143
+ };
144
+ export default ChildHanlder();
@@ -0,0 +1,3 @@
1
+ export { default as bokeJsBridgeParent } from './parent';
2
+ export { default as bokeJsBridgeChild } from './child';
3
+ export * from './utils';
@@ -0,0 +1,3 @@
1
+ export { default as bokeJsBridgeParent } from './parent';
2
+ export { default as bokeJsBridgeChild } from './child';
3
+ export * from './utils';
@@ -0,0 +1,24 @@
1
+ interface CommonEvent {
2
+ [props: string]: (prop: any) => any;
3
+ }
4
+ interface CallbackEvent {
5
+ getAuthorization?: (data?: any) => any;
6
+ getUserInfo?: (data?: any) => any;
7
+ [props: string]: (prop?: any) => any;
8
+ }
9
+ declare type ConfigType = {
10
+ /***自定义事件的具体实现 */
11
+ events: CommonEvent;
12
+ /***异步自定义事件的具体实现: 支持async异步方法 */
13
+ eventsCallback: CallbackEvent;
14
+ /***自动启动父iframe事件绑定, 默认: 是 */
15
+ autoStart?: boolean;
16
+ };
17
+ export default function (iframeTarget: HTMLIFrameElement, configs: ConfigType): {
18
+ postMessage(eventName: any, eventData: any): void;
19
+ destory(): void;
20
+ start(): void;
21
+ on(eventName: any, cb: any): void;
22
+ off(key: any): void;
23
+ };
24
+ export {};
@@ -0,0 +1,71 @@
1
+ import * as tslib_1 from "tslib";
2
+ import { parentLogger } from './utils';
3
+ (() => {
4
+ if (!(window.bokeMessageQueue)) {
5
+ window.bokeMessageQueue = new Map();
6
+ window.addEventListener("message", (data) => {
7
+ window.bokeMessageQueue.forEach((cb, key) => {
8
+ key && cb(data);
9
+ });
10
+ });
11
+ }
12
+ parentLogger("boke-JS-BRIDGE", "ParentSDK is Ready");
13
+ return;
14
+ })();
15
+ export default function (iframeTarget, configs) {
16
+ const frameUUID = encodeURIComponent(iframeTarget.src);
17
+ let { events = {}, eventsCallback = {}, autoStart = true } = configs;
18
+ const handler = function (e) {
19
+ try {
20
+ const { eventName, eventData, msgScoped } = JSON.parse(e.data);
21
+ if (msgScoped != "boke-JS-BRIDGE") {
22
+ return; // 没有msgScoped, 不属于sdk传递的消息
23
+ }
24
+ Object.keys(events).forEach((key) => {
25
+ if (eventName == key) {
26
+ events[key](eventData);
27
+ parentLogger("boke-JS-BRIDGE", `postMessage to ParentSdk: ${e.data}`);
28
+ }
29
+ });
30
+ Object.keys(eventsCallback).forEach((key) => tslib_1.__awaiter(this, void 0, void 0, function* () {
31
+ if (eventName == key) {
32
+ let cbdata = yield eventsCallback[key](eventData);
33
+ let data = JSON.stringify({
34
+ eventName: eventName + "@Callback",
35
+ eventData: cbdata,
36
+ msgScoped: "boke-JS-BRIDGE"
37
+ });
38
+ parentLogger("boke-JS-BRIDGE", `callbackListener to ChildSdk: ${data}`);
39
+ iframeTarget.contentWindow.postMessage(data, "*");
40
+ }
41
+ }));
42
+ }
43
+ catch (error) {
44
+ }
45
+ };
46
+ const methods = {
47
+ postMessage(eventName, eventData) {
48
+ const data = JSON.stringify({
49
+ eventName: eventName,
50
+ eventData: eventData,
51
+ msgScoped: "boke-JS-BRIDGE"
52
+ });
53
+ parentLogger("boke-JS-BRIDGE", `postMessage to ChildSdk: ${data}`);
54
+ iframeTarget.contentWindow.postMessage(data, "*");
55
+ },
56
+ destory() {
57
+ window.bokeMessageQueue.delete(frameUUID);
58
+ },
59
+ start() {
60
+ window.bokeMessageQueue.set(frameUUID, handler);
61
+ },
62
+ on(eventName, cb) {
63
+ events[eventName] = cb;
64
+ },
65
+ off(key) {
66
+ delete events[key];
67
+ },
68
+ };
69
+ autoStart && methods.start();
70
+ return Object.assign({}, methods);
71
+ }
@@ -0,0 +1,2 @@
1
+ export declare const parentLogger: (title: any, msg: any) => void;
2
+ export declare const childLogger: (title: any, msg: any) => void;
@@ -0,0 +1,6 @@
1
+ export const parentLogger = (title, msg) => {
2
+ console.log(` %c ${title} %c ${msg} `, 'color: #fff; background: #4B60CF; padding:5px 0;', 'background: #030307; color: #fff; padding:5px 0;word-break:break-all');
3
+ };
4
+ export const childLogger = (title, msg) => {
5
+ console.log(` %c ${title} %c ${msg}`, 'color: #fa8c16; background: #fff7e6; padding:5px 0;', 'background: #030307; color: #fff; padding:5px 0;word-break:break-all');
6
+ };