@windwalker-io/core 4.2.9 → 4.2.11

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 (36) hide show
  1. package/LICENSE +19 -19
  2. package/dist/debugger/Dashboard-CzDoLneW.js +1 -0
  3. package/dist/debugger/{Database-BGuRRq-L.js → Database-CSU8eOK6.js} +2 -2
  4. package/dist/debugger/DefaultLayout-fPOBRlxo.js +1 -0
  5. package/dist/debugger/Events-zF0JqyW4.js +1 -0
  6. package/dist/debugger/KeyValueTable-6M6bFpX8.js +1 -0
  7. package/dist/debugger/{Request-yQA1-Fkb.js → Request-DKOZpKRC.js} +1 -1
  8. package/dist/debugger/{Routing-C5mAPB17.js → Routing-puFmtUNp.js} +1 -1
  9. package/dist/debugger/{System-JFuNpoZY.js → System-Daos7PgT.js} +1 -1
  10. package/dist/debugger/{Timeline-Uii-K9v_.js → Timeline-BozTDh0s.js} +1 -1
  11. package/dist/debugger/debugger.js +11 -11
  12. package/dist/next.js +17 -4
  13. package/package.json +7 -3
  14. package/src/asset-bundler.mjs +114 -114
  15. package/src/debugger/types/global.d.js +2 -2
  16. package/src/index.mjs +10 -10
  17. package/src/legacy/4.0/js-sync.mjs +74 -74
  18. package/src/next/fusion/index.ts +2 -2
  19. package/src/next/fusion/plugins/assets.ts +29 -29
  20. package/src/next/fusion/plugins/index.ts +3 -3
  21. package/src/next/fusion/plugins/systemjs.ts +66 -66
  22. package/src/next/fusion/processors/cloneAssets.ts +85 -81
  23. package/src/next/fusion/processors/cssModulize.ts +128 -128
  24. package/src/next/fusion/processors/index.ts +4 -4
  25. package/src/next/fusion/processors/installVendors.ts +184 -184
  26. package/src/next/fusion/processors/jsModulize.ts +319 -307
  27. package/src/next/index.ts +2 -2
  28. package/src/next/utilities/asset-sync.ts +47 -47
  29. package/src/next/utilities/crypto.ts +11 -11
  30. package/src/next/utilities/fs.ts +61 -61
  31. package/src/next/utilities/index.ts +5 -5
  32. package/src/next/utilities/modules.ts +17 -17
  33. package/dist/debugger/Dashboard-Bm7ihi81.js +0 -1
  34. package/dist/debugger/DefaultLayout-DviqbPNR.js +0 -1
  35. package/dist/debugger/Events-CNF6gvg0.js +0 -1
  36. package/dist/debugger/KeyValueTable-BfTkP1Rg.js +0 -1
package/dist/next.js CHANGED
@@ -1,9 +1,9 @@
1
1
  import { getGlobBaseFromPattern, callback, css, js, plugin, builder, callbackAfterBuild, copyGlob, symlink } from "@windwalker-io/fusion-next";
2
+ import fg from "fast-glob";
2
3
  import isGlob from "is-glob";
3
4
  import micromatch from "micromatch";
4
5
  import path, { relative, normalize, resolve } from "node:path";
5
6
  import fs from "node:fs";
6
- import fg from "fast-glob";
7
7
  import crypto, { randomBytes } from "node:crypto";
8
8
  import { createRequire } from "node:module";
9
9
  import fs$1 from "fs-extra";
@@ -113,9 +113,11 @@ function handleCloneAssets(builder2, clonePatterns) {
113
113
  });
114
114
  builder2.loadCallbacks.push((src) => {
115
115
  if (src === id) {
116
- const glob = clonePatterns.map((v) => v.replace(/\\/g, "/")).map((v) => v.startsWith("./") || !v.startsWith("/") ? `/${v}` : v).map((v) => `'${v}'`).join(", ");
117
- return `import.meta.glob(${glob});
118
- `;
116
+ const glob = clonePatterns.map((v) => v.replace(/\\/g, "/"));
117
+ const images = fg.globSync(glob).map((v) => v.startsWith("./") || !v.startsWith("/") ? `/${v}` : v);
118
+ const lines = images.map((v, i) => `import img${i++} from '${v}';`);
119
+ lines.push(`export default [${images.map((_, index) => `img${index}`).join(", ")}];`);
120
+ return lines.join("\n") + "\n";
119
121
  }
120
122
  });
121
123
  }
@@ -310,6 +312,17 @@ class JsModulizeProcessor {
310
312
  const inputFile = resolve(task.input);
311
313
  const tmpPath = this.options.tmpPath ?? resolve("./tmp/fusion/jsmodules/").replace(/\\/g, "/");
312
314
  const clean = this.options.cleanTmp ?? true;
315
+ if (builder2.config.build.watch) {
316
+ builder2.merge({
317
+ build: {
318
+ watch: {
319
+ exclude: [
320
+ tmpPath + "/**"
321
+ ]
322
+ }
323
+ }
324
+ });
325
+ }
313
326
  if (clean) {
314
327
  builder2.postBuildCallbacks.push((options, bundle) => {
315
328
  fs$1.removeSync(tmpPath);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@windwalker-io/core",
3
- "version": "4.2.9",
3
+ "version": "4.2.11",
4
4
  "type": "module",
5
5
  "description": "Windwalker Core JS package",
6
6
  "scripts": {
@@ -64,16 +64,20 @@
64
64
  "tailwindcss": "^3.0",
65
65
  "typescript": "^5.1.6",
66
66
  "unplugin-dts": "^1.0.0-beta.6",
67
- "vite": "^7.1.6",
67
+ "vite": "^7.1.6||^8.0",
68
68
  "vite-plugin-dts": "^4.5.4",
69
69
  "vite-plugin-public-path": "^1.1.0",
70
70
  "vue": "^3.0.11",
71
71
  "vue-router": "^4.2.4",
72
72
  "vuedraggable": "^3.0||^4.0.3"
73
73
  },
74
+ "peerDependencies": {
75
+ "vite": "^7.0||^8.0"
76
+ },
74
77
  "windwalker": {
75
78
  "vendors": [
76
79
  "@windwalker-io/core"
77
80
  ]
78
- }
81
+ },
82
+ "packageManager": "yarn@4.13.0+sha512.5c20ba010c99815433e5c8453112165e673f1c7948d8d2b267f4b5e52097538658388ebc9f9580656d9b75c5cc996f990f611f99304a2197d4c56d21eea370e7"
79
83
  }
@@ -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,10 +1,10 @@
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';
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';
@@ -1,74 +1,74 @@
1
- import { findModules } from '../../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 '../../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
+