@windwalker-io/core 4.2.0 → 4.2.2

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 (55) hide show
  1. package/LICENSE +19 -19
  2. package/dist/debugger/Dashboard-Bm7ihi81.js +1 -0
  3. package/dist/debugger/Database-BGuRRq-L.js +36 -0
  4. package/dist/debugger/DefaultLayout-DviqbPNR.js +1 -0
  5. package/dist/debugger/Events-CNF6gvg0.js +1 -0
  6. package/dist/debugger/KeyValueTable-BfTkP1Rg.js +1 -0
  7. package/dist/debugger/Request-yQA1-Fkb.js +1 -0
  8. package/dist/debugger/Routing-C5mAPB17.js +1 -0
  9. package/dist/debugger/System-JFuNpoZY.js +1 -0
  10. package/dist/debugger/Timeline-Uii-K9v_.js +1 -0
  11. package/dist/debugger/debugger-ChQADeB6.js +2 -0
  12. package/dist/debugger/debugger.js +564 -0
  13. package/dist/debugger/system.min.js +5 -0
  14. package/dist/debugger/utilities-jMzguz3m.js +1 -0
  15. package/dist/debugger/vue-animate.min-BkEL-t1R.js +9 -0
  16. package/dist/debugger/windwalker-logo-h-w.svg +1 -0
  17. package/dist/debugger-console.css +6 -0
  18. package/dist/next.d.ts +112 -0
  19. package/dist/next.js +576 -0
  20. package/package.json +11 -4
  21. package/src/app/app.ts +43 -0
  22. package/src/asset-bundler.mjs +114 -114
  23. package/src/debugger/types/global.d.js +2 -2
  24. package/src/index.mjs +11 -11
  25. package/src/legacy/4.0/js-sync.mjs +74 -74
  26. package/src/next/fusion/index.ts +2 -2
  27. package/src/next/fusion/plugins/assets.ts +29 -29
  28. package/src/next/fusion/plugins/index.ts +3 -3
  29. package/src/next/fusion/plugins/systemjs.ts +66 -66
  30. package/src/next/fusion/processors/cloneAssets.ts +81 -81
  31. package/src/next/fusion/processors/cssModulize.ts +127 -105
  32. package/src/next/fusion/processors/index.ts +4 -4
  33. package/src/next/fusion/processors/installVendors.ts +178 -178
  34. package/src/next/fusion/processors/jsModulize.ts +293 -296
  35. package/src/next/index.ts +2 -2
  36. package/src/next/utilities/asset-sync.ts +47 -47
  37. package/src/next/utilities/crypto.ts +11 -11
  38. package/src/next/utilities/fs.ts +61 -61
  39. package/src/next/utilities/index.ts +5 -5
  40. package/src/next/utilities/modules.ts +17 -17
  41. package/bin/release.js +0 -47
  42. package/core/index.d.ts +0 -1
  43. package/core/index.html +0 -13
  44. package/core/lib/main.ts +0 -9
  45. package/core/package.json +0 -26
  46. package/core/public/vite.svg +0 -1
  47. package/core/src/main.ts +0 -23
  48. package/core/src/style.css +0 -95
  49. package/core/src/typescript.svg +0 -1
  50. package/core/src/vite-env.d.ts +0 -1
  51. package/postcss.config.js +0 -12
  52. package/tailwind/console.tailwind.config.cjs +0 -32
  53. package/tailwind.config.js +0 -10
  54. package/vite.config.debugger.ts +0 -94
  55. package/vite.config.next.ts +0 -75
@@ -1,114 +1,114 @@
1
- import { webpackBundle } from '@windwalker-io/fusion';
2
- import fs from 'fs';
3
- import { globSync } from 'glob';
4
- import path from 'path';
5
- import { findModules } from './asset-sync.mjs';
6
-
7
- /**
8
- *
9
- * @param {string} mainFile
10
- * @param {string|string[]} source
11
- * @param {string} dest
12
- * @param {any} options
13
- * @returns {Promise<any>}
14
- */
15
- export async function bundleJS(
16
- mainFile = `./resources/assets/src/app.ts`,
17
- source = 'src/Module/**/*.ts',
18
- dest = 'www/assets/js/app/app.js',
19
- options = {}
20
- ) {
21
- const workingDir = process.cwd();
22
-
23
- if (typeof source === 'string') {
24
- source = [source];
25
- }
26
-
27
- const files = findFilesFromGlobArray([
28
- ...findModules('**/assets/*.ts'),
29
- ...source,
30
- ]);
31
-
32
- let listJS = "{\n";
33
-
34
- for (const file of files) {
35
- if (file.fullpath.endsWith('.d.ts')) {
36
- continue;
37
- }
38
-
39
- let key = file.relativePath.replace(/assets$/, '').toLowerCase();
40
- key = key.substring(0, key.lastIndexOf('.'));
41
- listJS += `'${key}': () => import('${file.fullpath}'),\n`;
42
- }
43
-
44
- listJS += "}";
45
-
46
- let ts = `
47
- import loader from '@windwalker-io/core/src/loader/core-loader.ts';
48
-
49
- loader.register(${listJS});
50
-
51
- export default loader;
52
- `;
53
-
54
- // const base64 = Buffer.from(ts).toString('base64');
55
- // const dataUri = `data:text/javascript;base64,${base64}`;
56
- const tmpDir = workingDir + '/tmp/fusion';
57
- fs.mkdirSync(tmpDir, { recursive: true });
58
-
59
- const tmpFile = tmpDir + '/app.js';
60
- fs.writeFileSync(tmpFile, ts);
61
-
62
- const r = await webpackBundle(
63
- tmpFile,
64
- dest,
65
- (config) => {
66
- config.devtool = false;
67
- // config.entry = dataUri;
68
- // config.output.uniqueName = 'app';
69
- config.output.libraryTarget = 'module';
70
- config.experiments.outputModule = true;
71
- config.resolve.modules.push(path.resolve('./'));
72
- config.context = path.resolve('./');
73
- config.resolve.alias = {
74
- '@main': path.resolve(mainFile),
75
- '@app': path.resolve(mainFile),
76
- };
77
- }
78
- );
79
-
80
- // fs.unlinkSync(tmpFile);
81
-
82
- return r;
83
- }
84
-
85
- function findFilesFromGlobArray(sources) {
86
- let files = [];
87
-
88
- for (const source of sources) {
89
- files = [
90
- ...files,
91
- ...findFiles(source)
92
- ];
93
- }
94
-
95
- return files;
96
- }
97
-
98
- /**
99
- * @param {string} src
100
- */
101
- function findFiles(src) {
102
- const i = src.lastIndexOf('**');
103
-
104
- const path = src.substring(0, i);
105
-
106
- return globSync(src).map((file) => {
107
- file = file.replace(/\\/g, '/');
108
-
109
- return {
110
- fullpath: file,
111
- relativePath: file.substring(path.length)
112
- };
113
- });
114
- }
1
+ import { webpackBundle } from '@windwalker-io/fusion';
2
+ import fs from 'fs';
3
+ import { globSync } from 'glob';
4
+ import path from 'path';
5
+ import { findModules } from './asset-sync.mjs';
6
+
7
+ /**
8
+ *
9
+ * @param {string} mainFile
10
+ * @param {string|string[]} source
11
+ * @param {string} dest
12
+ * @param {any} options
13
+ * @returns {Promise<any>}
14
+ */
15
+ export async function bundleJS(
16
+ mainFile = `./resources/assets/src/app.ts`,
17
+ source = 'src/Module/**/*.ts',
18
+ dest = 'www/assets/js/app/app.js',
19
+ options = {}
20
+ ) {
21
+ const workingDir = process.cwd();
22
+
23
+ if (typeof source === 'string') {
24
+ source = [source];
25
+ }
26
+
27
+ const files = findFilesFromGlobArray([
28
+ ...findModules('**/assets/*.ts'),
29
+ ...source,
30
+ ]);
31
+
32
+ let listJS = "{\n";
33
+
34
+ for (const file of files) {
35
+ if (file.fullpath.endsWith('.d.ts')) {
36
+ continue;
37
+ }
38
+
39
+ let key = file.relativePath.replace(/assets$/, '').toLowerCase();
40
+ key = key.substring(0, key.lastIndexOf('.'));
41
+ listJS += `'${key}': () => import('${file.fullpath}'),\n`;
42
+ }
43
+
44
+ listJS += "}";
45
+
46
+ let ts = `
47
+ import loader from '@windwalker-io/core/src/loader/core-loader.ts';
48
+
49
+ loader.register(${listJS});
50
+
51
+ export default loader;
52
+ `;
53
+
54
+ // const base64 = Buffer.from(ts).toString('base64');
55
+ // const dataUri = `data:text/javascript;base64,${base64}`;
56
+ const tmpDir = workingDir + '/tmp/fusion';
57
+ fs.mkdirSync(tmpDir, { recursive: true });
58
+
59
+ const tmpFile = tmpDir + '/app.js';
60
+ fs.writeFileSync(tmpFile, ts);
61
+
62
+ const r = await webpackBundle(
63
+ tmpFile,
64
+ dest,
65
+ (config) => {
66
+ config.devtool = false;
67
+ // config.entry = dataUri;
68
+ // config.output.uniqueName = 'app';
69
+ config.output.libraryTarget = 'module';
70
+ config.experiments.outputModule = true;
71
+ config.resolve.modules.push(path.resolve('./'));
72
+ config.context = path.resolve('./');
73
+ config.resolve.alias = {
74
+ '@main': path.resolve(mainFile),
75
+ '@app': path.resolve(mainFile),
76
+ };
77
+ }
78
+ );
79
+
80
+ // fs.unlinkSync(tmpFile);
81
+
82
+ return r;
83
+ }
84
+
85
+ function findFilesFromGlobArray(sources) {
86
+ let files = [];
87
+
88
+ for (const source of sources) {
89
+ files = [
90
+ ...files,
91
+ ...findFiles(source)
92
+ ];
93
+ }
94
+
95
+ return files;
96
+ }
97
+
98
+ /**
99
+ * @param {string} src
100
+ */
101
+ function findFiles(src) {
102
+ const i = src.lastIndexOf('**');
103
+
104
+ const path = src.substring(0, i);
105
+
106
+ return globSync(src).map((file) => {
107
+ file = file.replace(/\\/g, '/');
108
+
109
+ return {
110
+ fullpath: file,
111
+ relativePath: file.substring(path.length)
112
+ };
113
+ });
114
+ }
@@ -1,2 +1,2 @@
1
- declare module '*.jpg';
2
- declare module '*.svg';
1
+ declare module '*.jpg';
2
+ declare module '*.svg';
package/src/index.mjs CHANGED
@@ -1,11 +1,11 @@
1
- /**
2
- * Part of funclass project.
3
- *
4
- * @copyright Copyright (C) 2021 LYRASOFT.
5
- * @license __LICENSE__
6
- */
7
-
8
- export * from './asset-sync.mjs';
9
- export * from './asset-bundler.mjs';
10
- export * from './install-vendors.mjs';
11
- export * from './app.ts';
1
+ /**
2
+ * Part of funclass project.
3
+ *
4
+ * @copyright Copyright (C) 2021 LYRASOFT.
5
+ * @license __LICENSE__
6
+ */
7
+
8
+ export * from './asset-sync.mjs';
9
+ export * from './asset-bundler.mjs';
10
+ export * from './install-vendors.mjs';
11
+ export * from './app.ts';
@@ -1,74 +1,74 @@
1
- import { findModules } from '@windwalker-io/core/src/index.mjs';
2
- import { dest as toDest, src, ts } from '@windwalker-io/fusion';
3
- import { postStream, prepareStream } from '@windwalker-io/fusion/src/lifecycles.js';
4
- import { extractDest } from '@windwalker-io/fusion/src/utilities/utilities.js';
5
- import { existsSync } from 'fs';
6
- import rename from 'gulp-rename';
7
- import path from 'path';
8
-
9
- /**
10
- * @deprecated
11
- */
12
- export function jsSync(source = 'src/Module', dest, options = {}) {
13
- const tsOptions = options.ts || {};
14
-
15
- if (!tsOptions.tsconfig) {
16
- tsOptions.tsconfig = path.resolve('tsconfig.json');
17
-
18
- if (!existsSync(tsOptions.tsconfig)) {
19
- tsOptions.tsconfig = path.resolve('node_modules/@windwalker-io/unicorn/tsconfig.js.json');
20
- }
21
- }
22
-
23
- const sourceList = [];
24
-
25
- sourceList.push(...findModules('**/assets/*.{js,mjs}'));
26
- sourceList.push(source + '**/assets/*.{js,mjs}');
27
-
28
- let stream = prepareStream(src(sourceList));
29
-
30
- stream = stream.pipe(rename((path) => {
31
- path.dirname = path.dirname.replace(/assets$/, '').toLowerCase();
32
- }));
33
-
34
- const jsDest = extractDest(dest);
35
-
36
- //
37
- // // if (dest.merge) {
38
- // // stream = stream.pipe(rename(path.basename(dest.file)));
39
- // // }
40
- //
41
- stream = stream.pipe(toDest(jsDest.path).on('error', e => console.error(e)));
42
-
43
- return Promise.all([
44
- new Promise((resolve) => {
45
- postStream(stream).on('end', (event) => {
46
- const data = {
47
- event,
48
- src,
49
- dest: jsDest,
50
- stream
51
- };
52
-
53
- resolve(data);
54
- });
55
- }),
56
- // Legacy mode
57
- ts(
58
- [
59
- ...findModules('**/assets/*.ts'),
60
- 'node_modules/@windwalker-io/unicorn/src/types/*.d.ts',
61
- `${source}/**/*.ts`,
62
- ],
63
- dest,
64
- {
65
- rename: (path) => {
66
- path.dirname = path.dirname.replace(/assets$/, '').toLowerCase();
67
- },
68
- ...tsOptions
69
- }
70
- )
71
- ]).then((v) => {
72
- return v[0];
73
- });
74
- }
1
+ import { findModules } from '@windwalker-io/core/src/index.mjs';
2
+ import { dest as toDest, src, ts } from '@windwalker-io/fusion';
3
+ import { postStream, prepareStream } from '@windwalker-io/fusion/src/lifecycles.js';
4
+ import { extractDest } from '@windwalker-io/fusion/src/utilities/utilities.js';
5
+ import { existsSync } from 'fs';
6
+ import rename from 'gulp-rename';
7
+ import path from 'path';
8
+
9
+ /**
10
+ * @deprecated
11
+ */
12
+ export function jsSync(source = 'src/Module', dest, options = {}) {
13
+ const tsOptions = options.ts || {};
14
+
15
+ if (!tsOptions.tsconfig) {
16
+ tsOptions.tsconfig = path.resolve('tsconfig.json');
17
+
18
+ if (!existsSync(tsOptions.tsconfig)) {
19
+ tsOptions.tsconfig = path.resolve('node_modules/@windwalker-io/unicorn/tsconfig.js.json');
20
+ }
21
+ }
22
+
23
+ const sourceList = [];
24
+
25
+ sourceList.push(...findModules('**/assets/*.{js,mjs}'));
26
+ sourceList.push(source + '**/assets/*.{js,mjs}');
27
+
28
+ let stream = prepareStream(src(sourceList));
29
+
30
+ stream = stream.pipe(rename((path) => {
31
+ path.dirname = path.dirname.replace(/assets$/, '').toLowerCase();
32
+ }));
33
+
34
+ const jsDest = extractDest(dest);
35
+
36
+ //
37
+ // // if (dest.merge) {
38
+ // // stream = stream.pipe(rename(path.basename(dest.file)));
39
+ // // }
40
+ //
41
+ stream = stream.pipe(toDest(jsDest.path).on('error', e => console.error(e)));
42
+
43
+ return Promise.all([
44
+ new Promise((resolve) => {
45
+ postStream(stream).on('end', (event) => {
46
+ const data = {
47
+ event,
48
+ src,
49
+ dest: jsDest,
50
+ stream
51
+ };
52
+
53
+ resolve(data);
54
+ });
55
+ }),
56
+ // Legacy mode
57
+ ts(
58
+ [
59
+ ...findModules('**/assets/*.ts'),
60
+ 'node_modules/@windwalker-io/unicorn/src/types/*.d.ts',
61
+ `${source}/**/*.ts`,
62
+ ],
63
+ dest,
64
+ {
65
+ rename: (path) => {
66
+ path.dirname = path.dirname.replace(/assets$/, '').toLowerCase();
67
+ },
68
+ ...tsOptions
69
+ }
70
+ )
71
+ ]).then((v) => {
72
+ return v[0];
73
+ });
74
+ }
@@ -1,2 +1,2 @@
1
- export * from './plugins';
2
- export * from './processors';
1
+ export * from './plugins';
2
+ export * from './processors';
@@ -1,29 +1,29 @@
1
- import { type FusionPlugin } from '@windwalker-io/fusion-next';
2
- import { getAvailableForReposition, handleCloneAssets, handleReposition } from '../processors/cloneAssets';
3
-
4
- export interface WindwalkerAssetsOptions {
5
- clone?: Record<string, string>;
6
- reposition?: Record<string, string>;
7
- }
8
-
9
- export function globalAssets(options: WindwalkerAssetsOptions): FusionPlugin {
10
- return {
11
- name: 'core:global-assets',
12
- buildConfig(builder) {
13
- const clone = options.clone || {};
14
- let reposition = options.reposition || {};
15
-
16
- reposition = { ...reposition, ...getAvailableForReposition(clone) };
17
-
18
- // Handle reposition
19
- handleReposition(builder, reposition);
20
-
21
- const clonePatterns = Object.keys(clone);
22
-
23
- // Handle clone
24
- if (clonePatterns.length > 0) {
25
- handleCloneAssets(builder, clonePatterns);
26
- }
27
- }
28
- };
29
- }
1
+ import { type FusionPlugin } from '@windwalker-io/fusion-next';
2
+ import { getAvailableForReposition, handleCloneAssets, handleReposition } from '../processors/cloneAssets';
3
+
4
+ export interface WindwalkerAssetsOptions {
5
+ clone?: Record<string, string>;
6
+ reposition?: Record<string, string>;
7
+ }
8
+
9
+ export function globalAssets(options: WindwalkerAssetsOptions): FusionPlugin {
10
+ return {
11
+ name: 'core:global-assets',
12
+ buildConfig(builder) {
13
+ const clone = options.clone || {};
14
+ let reposition = options.reposition || {};
15
+
16
+ reposition = { ...reposition, ...getAvailableForReposition(clone) };
17
+
18
+ // Handle reposition
19
+ handleReposition(builder, reposition);
20
+
21
+ const clonePatterns = Object.keys(clone);
22
+
23
+ // Handle clone
24
+ if (clonePatterns.length > 0) {
25
+ handleCloneAssets(builder, clonePatterns);
26
+ }
27
+ }
28
+ };
29
+ }
@@ -1,3 +1,3 @@
1
- export * from './assets';
2
- export * from './systemjs';
3
-
1
+ export * from './assets';
2
+ export * from './systemjs';
3
+
@@ -1,66 +1,66 @@
1
- import fs from 'fs-extra';
2
- import { resolve } from 'node:path';
3
- import type { OutputAsset, OutputChunk } from 'rollup';
4
- import type { PluginOption } from 'vite';
5
-
6
- export function injectSystemJS(systemPath?: string, filter?: (file: OutputAsset | OutputChunk) => any): PluginOption {
7
- systemPath ??= resolve('node_modules/systemjs/dist/system.min.js');
8
-
9
- return {
10
- name: 'core:inject-systemjs',
11
- async generateBundle(options, bundle) {
12
- if (options.format !== 'system') {
13
- return;
14
- }
15
-
16
- const systemjsCode = fs.readFileSync(
17
- resolve(systemPath),
18
- 'utf-8'
19
- );
20
-
21
- for (const file of Object.values(bundle)) {
22
- if (filter && !filter(file)) {
23
- continue;
24
- }
25
-
26
- if (file.type === 'chunk' && file.isEntry && file.fileName.endsWith('.js')) {
27
- file.code = systemjsCode + '\n' + file.code;
28
- }
29
- }
30
- }
31
- };
32
- }
33
-
34
- export function systemCSSFix(): PluginOption {
35
- return {
36
- name: 'core:systemjs-css-fix',
37
- async generateBundle(options, bundle) {
38
- if (options.format !== 'system') {
39
- return;
40
- }
41
-
42
- for (const [fileName, chunk] of Object.entries(bundle)) {
43
- if (fileName.endsWith('.css') && 'code' in chunk) {
44
- const regex = /__vite_style__\.textContent\s*=\s*"([\s\S]*?)";/;
45
- let match = chunk.code.match(regex);
46
-
47
- // For minified
48
- if (!match) {
49
- const regex = /\.textContent\s*=\s*`([\s\S]*?)`/;
50
- match = chunk.code.match(regex);
51
- }
52
-
53
- if (match && match[1]) {
54
- chunk.code = match[1]
55
- .replace(/\\"/g, '"')
56
- .replace(/\\n/g, '\n')
57
- .replace(/\\t/g, '\t')
58
- .replace(/\\\\/g, '\\')
59
- .replace(/\/\*\$vite\$:\d+\*\/$/, '')
60
- }
61
- }
62
- }
63
- }
64
- };
65
- }
66
-
1
+ import fs from 'fs-extra';
2
+ import { resolve } from 'node:path';
3
+ import type { OutputAsset, OutputChunk } from 'rollup';
4
+ import type { PluginOption } from 'vite';
5
+
6
+ export function injectSystemJS(systemPath?: string, filter?: (file: OutputAsset | OutputChunk) => any): PluginOption {
7
+ systemPath ??= resolve('node_modules/systemjs/dist/system.min.js');
8
+
9
+ return {
10
+ name: 'core:inject-systemjs',
11
+ async generateBundle(options, bundle) {
12
+ if (options.format !== 'system') {
13
+ return;
14
+ }
15
+
16
+ const systemjsCode = fs.readFileSync(
17
+ resolve(systemPath),
18
+ 'utf-8'
19
+ );
20
+
21
+ for (const file of Object.values(bundle)) {
22
+ if (filter && !filter(file)) {
23
+ continue;
24
+ }
25
+
26
+ if (file.type === 'chunk' && file.isEntry && file.fileName.endsWith('.js')) {
27
+ file.code = systemjsCode + '\n' + file.code;
28
+ }
29
+ }
30
+ }
31
+ };
32
+ }
33
+
34
+ export function systemCSSFix(): PluginOption {
35
+ return {
36
+ name: 'core:systemjs-css-fix',
37
+ async generateBundle(options, bundle) {
38
+ if (options.format !== 'system') {
39
+ return;
40
+ }
41
+
42
+ for (const [fileName, chunk] of Object.entries(bundle)) {
43
+ if (fileName.endsWith('.css') && 'code' in chunk) {
44
+ const regex = /__vite_style__\.textContent\s*=\s*"([\s\S]*?)";/;
45
+ let match = chunk.code.match(regex);
46
+
47
+ // For minified
48
+ if (!match) {
49
+ const regex = /\.textContent\s*=\s*`([\s\S]*?)`/;
50
+ match = chunk.code.match(regex);
51
+ }
52
+
53
+ if (match && match[1]) {
54
+ chunk.code = match[1]
55
+ .replace(/\\"/g, '"')
56
+ .replace(/\\n/g, '\n')
57
+ .replace(/\\t/g, '\t')
58
+ .replace(/\\\\/g, '\\')
59
+ .replace(/\/\*\$vite\$:\d+\*\/$/, '')
60
+ }
61
+ }
62
+ }
63
+ }
64
+ };
65
+ }
66
+