@wxcc-desktop/sdk 1.2.6 → 1.2.10

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 (67) hide show
  1. package/README.md +18 -391
  2. package/dist/index.js +1 -0
  3. package/dist/types/index.d.ts +21 -0
  4. package/dist/types/jsapi/actions-jsapi.d.ts +33 -0
  5. package/dist/types/jsapi/agent-contact-jsapi.d.ts +430 -0
  6. package/dist/types/jsapi/agent-state-info-jsapi.d.ts +88 -0
  7. package/dist/types/jsapi/common/_logger.d.ts +4 -0
  8. package/dist/types/jsapi/common/_service-checker.d.ts +12 -0
  9. package/dist/types/jsapi/common/_service-events.d.ts +31 -0
  10. package/dist/types/jsapi/config-jsapi.d.ts +26 -0
  11. package/dist/types/jsapi/dialer-jsapi.d.ts +73 -0
  12. package/dist/types/jsapi/i18n-jsapi.d.ts +23 -0
  13. package/dist/types/jsapi/logger-jsapi.d.ts +19 -0
  14. package/dist/types/jsapi/screenpop-jsapi.d.ts +29 -0
  15. package/dist/types/jsapi/shortcut-key-jsapi.d.ts +67 -0
  16. package/dist/types/sdk.d.ts +1 -0
  17. package/package.json +5 -60
  18. package/.eslintignore +0 -5
  19. package/.eslintrc.js +0 -22
  20. package/.prettierignore +0 -5
  21. package/.prettierrc +0 -5
  22. package/README_PUBLISH.md +0 -36
  23. package/jenkins-automation/MergePipeline.groovy +0 -143
  24. package/jest.config.js +0 -15
  25. package/sonar-project.properties +0 -17
  26. package/src/[sandbox]/README.md +0 -55
  27. package/src/[sandbox]/assets/i18n/de/app.json +0 -6
  28. package/src/[sandbox]/assets/i18n/en/app.json +0 -6
  29. package/src/[sandbox]/assets/i18n/widget-using-js-api/de/widget-using-js-api.json +0 -5
  30. package/src/[sandbox]/assets/i18n/widget-using-js-api/en/widget-using-js-api.json +0 -5
  31. package/src/[sandbox]/favicon.ico +0 -0
  32. package/src/[sandbox]/index.html +0 -9
  33. package/src/[sandbox]/sandbox-config.ts +0 -23
  34. package/src/[sandbox]/sandbox-mock.ts +0 -218
  35. package/src/[sandbox]/sandbox.ts +0 -164
  36. package/src/[sandbox]/widget-using-js-api.ts +0 -658
  37. package/src/global.d.ts +0 -5
  38. package/src/index.ts +0 -101
  39. package/src/jsapi/actions-jsapi.test.ts +0 -155
  40. package/src/jsapi/actions-jsapi.ts +0 -410
  41. package/src/jsapi/agent-contact-jsapi.test.ts +0 -217
  42. package/src/jsapi/agent-contact-jsapi.ts +0 -275
  43. package/src/jsapi/agent-state-info-jsapi.test.ts +0 -176
  44. package/src/jsapi/agent-state-info-jsapi.ts +0 -288
  45. package/src/jsapi/common/_logger.test.ts +0 -16
  46. package/src/jsapi/common/_logger.ts +0 -9
  47. package/src/jsapi/common/_service-checker.test.ts +0 -44
  48. package/src/jsapi/common/_service-checker.ts +0 -28
  49. package/src/jsapi/common/_service-events.test.ts +0 -122
  50. package/src/jsapi/common/_service-events.ts +0 -156
  51. package/src/jsapi/config-jsapi.test.ts +0 -78
  52. package/src/jsapi/config-jsapi.ts +0 -106
  53. package/src/jsapi/dialer-jsapi.test.ts +0 -101
  54. package/src/jsapi/dialer-jsapi.ts +0 -116
  55. package/src/jsapi/i18n-jsapi.test.ts +0 -62
  56. package/src/jsapi/i18n-jsapi.ts +0 -77
  57. package/src/jsapi/logger-jsapi.test.ts +0 -45
  58. package/src/jsapi/logger-jsapi.ts +0 -62
  59. package/src/jsapi/screenpop-jsapi.test.ts +0 -80
  60. package/src/jsapi/screenpop-jsapi.ts +0 -100
  61. package/src/jsapi/shortcut-key-jsapi.test.ts +0 -88
  62. package/src/jsapi/shortcut-key-jsapi.ts +0 -112
  63. package/src/sdk.ts +0 -3
  64. package/src/tsconfig.json +0 -18
  65. package/tsconfig.json +0 -13
  66. package/webpack.config.dev.server.ts +0 -12
  67. package/webpack.config.ts +0 -134
@@ -1,80 +0,0 @@
1
- import { AgentxServices, SERVICE } from "@wxcc-desktop/sdk-types";
2
- import { createScreenPopJsApi } from "./screenpop-jsapi";
3
-
4
- jest.mock("@wxcc-desktop/sdk-types", () => {
5
- const agentx_services_mock = {
6
- SERVICE: {
7
- isInited: false,
8
- init: async (accessToken: string) => {
9
- agentx_services_mock.SERVICE.isInited = true;
10
- },
11
- aqm: ({
12
- screenpop: {
13
- eScreenPop: { listen: jest.fn(), listenOnce: jest.fn() }
14
- }
15
- } as unknown) as AgentxServices["aqm"]
16
- } as AgentxServices
17
- };
18
- return agentx_services_mock;
19
- });
20
-
21
- describe("ScreenPop JSAPI", () => {
22
- let screenPop: ReturnType<typeof createScreenPopJsApi>;
23
-
24
- beforeEach(() => {
25
- (SERVICE as AgentxServices).init("fake-token");
26
-
27
- screenPop = createScreenPopJsApi();
28
-
29
- screenPop.init(SERVICE);
30
- });
31
-
32
- it("creates", () => {
33
- expect(screenPop).toBeDefined();
34
- expect(screenPop["logger"]).toBeDefined();
35
- expect(screenPop["serviceChecker"]).toBeDefined();
36
- expect(screenPop["aqmEvents"]).toBeDefined();
37
- });
38
-
39
- it("inits", () => {
40
- expect(screenPop["checkService"]()).toBeTruthy();
41
- expect(screenPop["aqmEvents"].isInited).toBeTruthy();
42
- });
43
-
44
- it("checks service", () => {
45
- screenPop["serviceChecker"].check = jest.fn();
46
- screenPop["checkService"]();
47
-
48
- expect(screenPop["serviceChecker"].check).toHaveBeenCalled();
49
- });
50
-
51
- it("listens", () => {
52
- const listener = () => {};
53
- screenPop.addEventListener("eScreenPop", listener);
54
- expect(screenPop["aqmEvents"]["listeners"].size).toBe(1);
55
- expect(SERVICE.aqm.screenpop.eScreenPop.listen).toHaveBeenCalledWith(listener);
56
- screenPop.removeEventListener("eScreenPop", listener);
57
- expect(screenPop["aqmEvents"]["listeners"].size).toBe(0);
58
- });
59
-
60
- it("listensOnce", () => {
61
- const listener = () => {};
62
- screenPop.addOnceEventListener("eScreenPop", listener);
63
- expect(screenPop["aqmEvents"]["listenersOnce"].size).toBe(1);
64
- expect(SERVICE.aqm.screenpop.eScreenPop.listenOnce).toHaveBeenCalledWith(listener);
65
- screenPop.removeOnceEventListener("eScreenPop", listener);
66
- expect(screenPop["aqmEvents"]["listenersOnce"].size).toBe(0);
67
- });
68
-
69
- it("removesAllListeners", () => {
70
- const listener1 = () => {};
71
- const listener2 = () => {};
72
- screenPop.addEventListener("eScreenPop", listener1);
73
- screenPop.addOnceEventListener("eScreenPop", listener2);
74
- expect(screenPop["aqmEvents"]["listeners"].size).toBe(1);
75
- expect(screenPop["aqmEvents"]["listenersOnce"].size).toBe(1);
76
- screenPop.removeAllEventListeners();
77
- expect(screenPop["aqmEvents"]["listeners"].size).toBe(0);
78
- expect(screenPop["aqmEvents"]["listenersOnce"].size).toBe(0);
79
- });
80
- });
@@ -1,100 +0,0 @@
1
- import { AgentxService } from "@wxcc-desktop/sdk-types";
2
- import { logger } from "../sdk";
3
- import { createJsApiLogger } from "./common/_logger";
4
- import { createServiceChecker } from "./common/_service-checker";
5
- import { AqmServiceEntityEvents, createServiceEvents } from "./common/_service-events";
6
-
7
- type Listeners = {
8
- eScreenPop: Parameters<AgentxService["aqm"]["screenpop"]["eScreenPop"]["listen"]>[0];
9
- };
10
-
11
- type Config = {
12
- logger: ReturnType<typeof createJsApiLogger>;
13
- aqmEvents: AqmServiceEntityEvents<Listeners>;
14
- serviceChecker: ReturnType<typeof createServiceChecker>;
15
- };
16
-
17
- export class ScreenPopJsApi {
18
- private readonly logger: Config["logger"];
19
- private readonly serviceChecker: Config["serviceChecker"];
20
-
21
- private readonly aqmEvents: Config["aqmEvents"];
22
-
23
- private SERVICE?: AgentxService;
24
-
25
- private checkService() {
26
- return this.serviceChecker.check(this.SERVICE);
27
- }
28
-
29
- constructor(config: Config) {
30
- this.logger = config.logger;
31
- this.aqmEvents = config.aqmEvents;
32
- this.serviceChecker = config.serviceChecker;
33
- }
34
-
35
- //
36
- init(SERVICE?: AgentxService) {
37
- if (SERVICE) {
38
- this.SERVICE = SERVICE;
39
- }
40
-
41
- if (!this.checkService()) {
42
- return;
43
- }
44
-
45
- this.aqmEvents.init({
46
- aqmServiceEntity: this.SERVICE!.aqm.screenpop,
47
- aqmServiceEntityString: "SERVICE.aqm.screenpop"
48
- });
49
-
50
- this.logger.info("Inited");
51
- }
52
-
53
- cleanup() {
54
- this.aqmEvents.cleanup();
55
-
56
- this.SERVICE = undefined;
57
-
58
- this.logger.info("Cleaned");
59
- }
60
-
61
- // data events
62
- addEventListener<T extends keyof Listeners>(eventName: T, listener: Listeners[T]) {
63
- if (!this.checkService()) {
64
- return;
65
- }
66
- this.aqmEvents.addEventListener(eventName, listener);
67
- }
68
-
69
- addOnceEventListener<T extends keyof Listeners>(eventName: T, listener: Listeners[T]) {
70
- if (!this.checkService()) {
71
- return;
72
- }
73
- this.aqmEvents.addOnceEventListener(eventName, listener);
74
- }
75
-
76
- removeEventListener<T extends keyof Listeners>(eventName: T, listener: Listeners[T]) {
77
- this.aqmEvents.removeEventListener(eventName, listener);
78
- }
79
-
80
- removeOnceEventListener<T extends keyof Listeners>(eventName: T, listener: Listeners[T]) {
81
- this.aqmEvents.removeOnceEventListener(eventName, listener);
82
- }
83
-
84
- removeAllEventListeners() {
85
- this.aqmEvents.removeAllEventListeners();
86
- }
87
- }
88
-
89
- const screenPopJsApiLogger = createJsApiLogger(logger, "[ScreenPop JSAPI] =>");
90
- const aqmServiceScreenPopJsApiLogger = createJsApiLogger(screenPopJsApiLogger, "[AqmServiceEvents: ScreenPop] =>");
91
-
92
- // Standalone init
93
- export const createScreenPopJsApi = () =>
94
- new ScreenPopJsApi({
95
- logger: screenPopJsApiLogger,
96
- aqmEvents: createServiceEvents<Listeners>({
97
- logger: aqmServiceScreenPopJsApiLogger
98
- }),
99
- serviceChecker: createServiceChecker({ logger: screenPopJsApiLogger })
100
- });
@@ -1,88 +0,0 @@
1
- import { AgentxServices, SERVICE } from "@wxcc-desktop/sdk-types";
2
- import { createShortcutKeyJsApi } from "./shortcut-key-jsapi";
3
-
4
- jest.mock("@wxcc-desktop/sdk-types", () => {
5
- const agentx_services_mock = {
6
- SERVICE: {
7
- isInited: false,
8
- init: async (accessToken: string) => {
9
- agentx_services_mock.SERVICE.isInited = true;
10
- },
11
- shortcut: ({
12
- event: {
13
- listenKeyPress: jest.fn(),
14
- listenKeyConflict: jest.fn(),
15
- listenConflictResolved: jest.fn()
16
- },
17
- register: jest.fn(),
18
- unregisterKeys: jest.fn(),
19
- getRegisteredKeys: jest.fn(),
20
- DEFAULT_SHORTCUT_KEYS: { test: "DEFAULT_SHORTCUT_KEYS" },
21
- MODIFIERS: { test: "MODIFIERS" },
22
- REGISTERED_KEYS: { test: "REGISTERED_KEYS" }
23
- } as unknown) as AgentxServices["shortcut"]
24
- } as AgentxServices
25
- };
26
- return agentx_services_mock;
27
- });
28
-
29
- describe("ShortcutKey JSAPI", () => {
30
- let shortcutKey: ReturnType<typeof createShortcutKeyJsApi>;
31
-
32
- beforeEach(async () => {
33
- await (SERVICE as AgentxServices).init("fake-token");
34
-
35
- shortcutKey = createShortcutKeyJsApi();
36
- shortcutKey.init(SERVICE);
37
- });
38
-
39
- it("creates", () => {
40
- expect(shortcutKey).toBeDefined();
41
- expect(shortcutKey["logger"]).toBeDefined();
42
- expect(shortcutKey["serviceChecker"]).toBeDefined();
43
- });
44
-
45
- it("inits", () => {
46
- expect(shortcutKey["checkService"]()).toBeTruthy();
47
- });
48
-
49
- it("cleanups", () => {
50
- shortcutKey.cleanup();
51
- expect(shortcutKey["SERVICE"]).toBeUndefined();
52
- });
53
-
54
- it("checks service", () => {
55
- shortcutKey["serviceChecker"].check = jest.fn();
56
- shortcutKey["checkService"]();
57
-
58
- expect(shortcutKey["serviceChecker"].check).toHaveBeenCalled();
59
- });
60
-
61
- it("listens", () => {
62
- const listener1 = () => {};
63
- shortcutKey.listenKeyPress(listener1);
64
- expect(SERVICE.shortcut.event.listenKeyPress).toHaveBeenCalledWith(listener1);
65
-
66
- const listener2 = () => {};
67
- shortcutKey.listenKeyConflict(listener2);
68
- expect(SERVICE.shortcut.event.listenKeyConflict).toHaveBeenCalledWith(listener2);
69
-
70
- const listener3 = () => {};
71
- shortcutKey.listenConflictResolved(listener3);
72
- expect(SERVICE.shortcut.event.listenConflictResolved).toHaveBeenCalledWith(listener3);
73
- });
74
-
75
- it("registers/unregisters", () => {
76
- shortcutKey.register({ test: "A" } as any);
77
- expect(SERVICE.shortcut.register).toHaveBeenCalledWith({ test: "A" });
78
-
79
- shortcutKey.unregisterKeys({ test: "B" } as any);
80
- expect(SERVICE.shortcut.unregisterKeys).toHaveBeenCalledWith({ test: "B" });
81
- });
82
-
83
- it("gets constants", () => {
84
- expect(shortcutKey.DEFAULT_SHORTCUT_KEYS).toEqual({ test: "DEFAULT_SHORTCUT_KEYS" });
85
- expect(shortcutKey.REGISTERED_KEYS).toEqual({ test: "REGISTERED_KEYS" });
86
- expect(shortcutKey.MODIFIERS).toEqual({ test: "MODIFIERS" });
87
- });
88
- });
@@ -1,112 +0,0 @@
1
- import { AgentxService } from "@wxcc-desktop/sdk-types";
2
- import { logger } from "../sdk";
3
- import { createJsApiLogger } from "./common/_logger";
4
- import { createServiceChecker } from "./common/_service-checker";
5
-
6
- type Config = {
7
- logger: ReturnType<typeof createJsApiLogger>;
8
- serviceChecker: ReturnType<typeof createServiceChecker>;
9
- };
10
-
11
- export class ShortcutKeyJsApi {
12
- private readonly logger: Config["logger"];
13
- private readonly serviceChecker: Config["serviceChecker"];
14
-
15
- private SERVICE?: AgentxService;
16
-
17
- private checkService() {
18
- return this.serviceChecker.check(this.SERVICE);
19
- }
20
-
21
- constructor(config: Config) {
22
- this.logger = config.logger;
23
- this.serviceChecker = config.serviceChecker;
24
- }
25
-
26
- //
27
- init(SERVICE?: AgentxService) {
28
- if (SERVICE) {
29
- this.SERVICE = SERVICE;
30
- }
31
-
32
- if (!this.checkService()) {
33
- return;
34
- }
35
-
36
- this.logger.info("Inited");
37
- }
38
-
39
- cleanup() {
40
- this.SERVICE = undefined;
41
-
42
- this.logger.info("Cleaned");
43
- }
44
-
45
- // Service-related
46
-
47
- listenKeyPress(...args: Parameters<AgentxService["shortcut"]["event"]["listenKeyPress"]>) {
48
- if (!this.checkService()) {
49
- return;
50
- }
51
-
52
- this.SERVICE?.shortcut.event.listenKeyPress(...args);
53
- }
54
-
55
- listenKeyConflict(...args: Parameters<AgentxService["shortcut"]["event"]["listenKeyConflict"]>) {
56
- if (!this.checkService()) {
57
- return;
58
- }
59
-
60
- this.SERVICE?.shortcut.event.listenKeyConflict(...args);
61
- }
62
-
63
- listenConflictResolved(...args: Parameters<AgentxService["shortcut"]["event"]["listenConflictResolved"]>) {
64
- if (!this.checkService()) {
65
- return;
66
- }
67
-
68
- this.SERVICE?.shortcut.event.listenConflictResolved(...args);
69
- }
70
-
71
- register(...args: Parameters<AgentxService["shortcut"]["register"]>) {
72
- if (!this.checkService()) {
73
- return;
74
- }
75
- this.SERVICE?.shortcut.register(...args);
76
- }
77
-
78
- unregisterKeys(...args: Parameters<AgentxService["shortcut"]["unregisterKeys"]>) {
79
- if (!this.checkService()) {
80
- return;
81
- }
82
- this.SERVICE?.shortcut.unregisterKeys(...args);
83
- }
84
-
85
- getRegisteredKeys() {
86
- if (!this.checkService()) {
87
- return;
88
- }
89
-
90
- return this.SERVICE?.shortcut.getRegisteredKeys();
91
- }
92
-
93
- get DEFAULT_SHORTCUT_KEYS() {
94
- return this.SERVICE?.shortcut.DEFAULT_SHORTCUT_KEYS;
95
- }
96
-
97
- get MODIFIERS() {
98
- return this.SERVICE?.shortcut.MODIFIERS;
99
- }
100
-
101
- get REGISTERED_KEYS() {
102
- return this.SERVICE?.shortcut.REGISTERED_KEYS;
103
- }
104
- }
105
-
106
- const shortcutKeyJsApiLogger = createJsApiLogger(logger, "[ShortcutKey JSAPI] =>");
107
-
108
- export const createShortcutKeyJsApi = () =>
109
- new ShortcutKeyJsApi({
110
- logger: shortcutKeyJsApiLogger,
111
- serviceChecker: createServiceChecker({ logger: shortcutKeyJsApiLogger })
112
- });
package/src/sdk.ts DELETED
@@ -1,3 +0,0 @@
1
- import { createLogger } from "@uuip/unified-ui-platform-sdk";
2
-
3
- export const logger = createLogger("agentx-js-api");
package/src/tsconfig.json DELETED
@@ -1,18 +0,0 @@
1
- {
2
- "compilerOptions": {
3
- "target": "ES2016",
4
- "module": "esnext",
5
- "moduleResolution": "node",
6
- "types": ["node", "jest"],
7
-
8
- "strict": true,
9
- "removeComments": false,
10
- "esModuleInterop": true,
11
- "experimentalDecorators": true,
12
- "forceConsistentCasingInFileNames": true,
13
-
14
- "declaration": true,
15
- "declarationDir": "../dist/types"
16
- },
17
- "include": ["**/*.ts"]
18
- }
package/tsconfig.json DELETED
@@ -1,13 +0,0 @@
1
- {
2
- "compilerOptions": {
3
- "target": "ES2016",
4
- "module": "commonjs",
5
-
6
- "strict": true,
7
- "esModuleInterop": true
8
- },
9
- "files": [
10
- "webpack.config.ts",
11
- "webpack.config.dev.server.ts"
12
- ]
13
- }
@@ -1,12 +0,0 @@
1
- import merge from "webpack-merge";
2
- import { commonDev, pBuild } from "./webpack.config";
3
-
4
- export default merge(commonDev, {
5
- devServer: {
6
- contentBase: pBuild,
7
- historyApiFallback: true,
8
- open: true,
9
- hot: true,
10
- port: 3333
11
- }
12
- });
package/webpack.config.ts DELETED
@@ -1,134 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-explicit-any */
2
- import { CleanWebpackPlugin } from "clean-webpack-plugin";
3
- import CopyWebpackPlugin from "copy-webpack-plugin";
4
- import HtmlWebpackPlugin from "html-webpack-plugin";
5
- import * as path from "path";
6
- import RemovePlugin from "remove-files-webpack-plugin";
7
- import * as webpack from "webpack";
8
- import merge from "webpack-merge";
9
- //import nodeExternals from "webpack-node-externals";
10
-
11
- const pSrc = path.resolve("src");
12
- const pDist = path.resolve("dist");
13
- export const pBuild = path.resolve("build");
14
-
15
- const common: webpack.Configuration = {
16
- output: {
17
- publicPath: "/"
18
- },
19
- resolve: {
20
- extensions: [".ts", ".js"]
21
- }
22
- };
23
-
24
- function ruleTS({ isDev }: { isDev: boolean }) {
25
- return {
26
- test: /\.ts$/,
27
- loader: "ts-loader",
28
- include: pSrc,
29
- options: {
30
- compilerOptions: {
31
- declarationMap: isDev,
32
- sourceMap: isDev
33
- }
34
- }
35
- };
36
- }
37
-
38
- // DEV
39
- // ----------
40
-
41
- export const commonDev = merge(common, {
42
- name: "dev",
43
- mode: "development",
44
- devtool: "source-map",
45
- entry: {
46
- index: "./src/[sandbox]/sandbox.ts"
47
- },
48
- output: {
49
- path: pBuild
50
- },
51
- module: {
52
- rules: [ruleTS({ isDev: true })]
53
- },
54
- plugins: [
55
- new CopyWebpackPlugin({
56
- patterns: [{ from: "./src/[sandbox]/assets/i18n", to: "i18n" }]
57
- }),
58
- new webpack.ProvidePlugin({
59
- AGENTX_SERVICE: ["@wxcc-desktop/sdk-types", "SERVICE"]
60
- }),
61
- new HtmlWebpackPlugin({
62
- template: "./src/[sandbox]/index.html",
63
- favicon: "./src/[sandbox]/favicon.ico" //
64
- })
65
- ]
66
- });
67
-
68
- const dev = merge(commonDev, {
69
- plugins: [new CleanWebpackPlugin()]
70
- });
71
-
72
- // DIST
73
- // ----------
74
-
75
- const commonDist = merge(common, {
76
- entry: {
77
- index: "./src/index.ts"
78
- },
79
- output: {
80
- path: pDist,
81
- filename: "[name].js",
82
- libraryTarget: "umd"
83
- },
84
- //externals: [nodeExternals({ modulesFromFile: true })],
85
- plugins: [
86
- new CleanWebpackPlugin(),
87
- new RemovePlugin({
88
- after: {
89
- log: false,
90
- include: ["./dist/types/[sandbox]"],
91
- test: [
92
- {
93
- folder: "./dist/types",
94
- method: p => new RegExp(/\.test\.d\.ts(\.map)*$/).test(p),
95
- recursive: true
96
- }
97
- ]
98
- }
99
- }) as any
100
- ]
101
- });
102
-
103
- const distDev = merge(commonDist, {
104
- name: "distDev",
105
- mode: "development",
106
- devtool: "source-map",
107
- module: {
108
- rules: [ruleTS({ isDev: true })]
109
- },
110
- // Just for check built widget in AgentX (for example)
111
- entry: {
112
- ["widget-using-js-api"]: "./src/[sandbox]/widget-using-js-api.ts"
113
- },
114
- plugins: [
115
- new CopyWebpackPlugin({
116
- patterns: [{ from: "./src/[sandbox]/assets/i18n/widget-using-js-api", to: "i18n/widget-using-js-api" }]
117
- })
118
- ]
119
- });
120
-
121
- const distDevWatch = merge(distDev, {
122
- name: "distDevWatch",
123
- watch: true
124
- });
125
-
126
- const distProd = merge(commonDist, {
127
- name: "distProd",
128
- mode: "production",
129
- module: {
130
- rules: [ruleTS({ isDev: false })]
131
- }
132
- });
133
-
134
- export default [dev, distDev, distDevWatch, distProd];