xshell 1.2.83 → 1.2.85

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.
package/builder.js CHANGED
@@ -220,7 +220,22 @@ export class Bundler {
220
220
  // const config: Webpack.Configuration = smp.wrap({
221
221
  let resolve_cache = {};
222
222
  const get_loader = (name) => resolve_cache[name] ??= fileURLToPath(import.meta.resolve(`${name}/package.json`)).fdir;
223
- const sass = this.target === 'web' ? await import('sass') : undefined;
223
+ const sass = this.target === 'web' ? await import('sass') : null;
224
+ const sass_loader = this.target === 'web' ?
225
+ {
226
+ // https://webpack.js.org/loaders/sass-loader
227
+ loader: get_loader('sass-loader'),
228
+ options: {
229
+ api: 'modern-compiler',
230
+ ...sass ? {
231
+ implementation: sass
232
+ } : {},
233
+ // 解决 url(search.png) 打包出错的问题
234
+ webpackImporter: false
235
+ }
236
+ }
237
+ :
238
+ null;
224
239
  this.lcompiler.resource = Webpack(this.config = {
225
240
  name: this.name,
226
241
  mode: this.production ? 'production' : 'development',
@@ -333,31 +348,24 @@ export class Bundler {
333
348
  },
334
349
  ...this.target === 'web' ? [
335
350
  {
336
- test: /\.s[ac]ss$/,
337
- use: [
338
- get_loader('style-loader'),
351
+ oneOf: [
339
352
  {
340
- // https://github.com/webpack-contrib/css-loader
341
- loader: get_loader('css-loader'),
342
- options: {
343
- url: false,
344
- }
353
+ test: /\.text\.s[ac]ss$/,
354
+ type: 'asset/source',
355
+ use: [sass_loader],
345
356
  },
346
357
  {
347
- // https://webpack.js.org/loaders/sass-loader
348
- loader: get_loader('sass-loader'),
349
- options: {
350
- api: 'modern-compiler',
351
- ...sass ? {
352
- implementation: sass
353
- } : {},
354
- // 解决 url(search.png) 打包出错的问题
355
- webpackImporter: false,
356
- sassOptions: {
357
- indentWidth: 4,
358
- }
359
- }
360
- },
358
+ test: /\.s[ac]ss$/,
359
+ use: [
360
+ get_loader('style-loader'),
361
+ {
362
+ // https://github.com/webpack-contrib/css-loader
363
+ loader: get_loader('css-loader'),
364
+ options: { url: false }
365
+ },
366
+ sass_loader
367
+ ]
368
+ }
361
369
  ]
362
370
  },
363
371
  {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "xshell",
3
- "version": "1.2.83",
3
+ "version": "1.2.85",
4
4
  "type": "module",
5
5
  "main": "./index.js",
6
6
  "bin": {
@@ -57,19 +57,19 @@
57
57
  "@svgr/webpack": "^8.1.0",
58
58
  "@types/sass-loader": "^8.0.9",
59
59
  "@types/ws": "^8.18.1",
60
- "@typescript-eslint/eslint-plugin": "^8.40.0",
61
- "@typescript-eslint/parser": "^8.40.0",
62
- "@typescript-eslint/utils": "^8.40.0",
60
+ "@typescript-eslint/eslint-plugin": "^8.41.0",
61
+ "@typescript-eslint/parser": "^8.41.0",
62
+ "@typescript-eslint/utils": "^8.41.0",
63
63
  "archiver": "^7.0.1",
64
64
  "chalk": "^5.6.0",
65
65
  "commander": "^14.0.0",
66
66
  "css-loader": "^7.1.2",
67
67
  "emoji-regex": "^10.4.0",
68
- "eslint": "^9.33.0",
68
+ "eslint": "^9.34.0",
69
69
  "eslint-plugin-import": "^2.32.0",
70
70
  "eslint-plugin-react": "^7.37.5",
71
71
  "https-proxy-agent": "^7.0.6",
72
- "i18next": "^25.3.6",
72
+ "i18next": "^25.4.2",
73
73
  "i18next-scanner": "^4.6.0",
74
74
  "koa": "^3.0.1",
75
75
  "koa-compress": "^5.1.1",
@@ -78,19 +78,19 @@
78
78
  "mime-types": "^3.0.1",
79
79
  "p-map": "^7.0.3",
80
80
  "react": "^19.1.1",
81
- "react-i18next": "^15.6.1",
81
+ "react-i18next": "^15.7.2",
82
82
  "resolve-path": "^1.4.0",
83
- "sass": "^1.90.0",
83
+ "sass": "^1.91.0",
84
84
  "sass-loader": "^16.0.5",
85
85
  "source-map-loader": "^5.0.0",
86
86
  "strip-ansi": "^7.1.0",
87
87
  "style-loader": "^4.0.0",
88
88
  "tough-cookie": "^6.0.0",
89
- "ts-loader": "^9.5.2",
89
+ "ts-loader": "^9.5.4",
90
90
  "tslib": "^2.8.1",
91
91
  "typescript": "^5.9.2",
92
92
  "ua-parser-js": "^2.0.4",
93
- "undici": "^7.14.0",
93
+ "undici": "^7.15.0",
94
94
  "webpack": "^5.101.3",
95
95
  "webpack-bundle-analyzer": "^4.10.2",
96
96
  "ws": "^8.18.3"
@@ -105,7 +105,7 @@
105
105
  "@types/koa-compress": "^4.0.6",
106
106
  "@types/mime-types": "^3.0.1",
107
107
  "@types/node": "^24.3.0",
108
- "@types/react": "^19.1.10",
108
+ "@types/react": "^19.1.11",
109
109
  "@types/tough-cookie": "^4.0.5",
110
110
  "@types/ua-parser-js": "^0.7.39",
111
111
  "@types/vscode": "^1.103.0",
@@ -138,7 +138,7 @@ declare global {
138
138
  - 'D:/'.fname === 'D:/' */
139
139
  fname: string;
140
140
  /** 文件后缀名,不带点,如: txt, zip,没有后缀时返回空字符串
141
- 特殊情况: .aaa 的 fext 为 '' */
141
+ 特殊情况: .aaa, aa.bb/ 的 fext 为 '' */
142
142
  fext: string;
143
143
  }
144
144
  interface Date {
@@ -113,6 +113,8 @@ if (!globalThis.my_prototype_defined) {
113
113
  return fp.slice(ilast + 1);
114
114
  },
115
115
  fext() {
116
+ if (this.endsWith('/'))
117
+ return '';
116
118
  const { fname } = this;
117
119
  const index = fname.lastIndexOf('.');
118
120
  return index <= 0 ? '' : fname.slice(index + 1);