vite 2.9.0-beta.3 → 2.9.0-beta.7

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.

Potentially problematic release.


This version of vite might be problematic. Click here for more details.

@@ -10201,7 +10201,7 @@ function is_some_comments(comment) {
10201
10201
  // multiline comment
10202
10202
  return (
10203
10203
  (comment.type === "comment2" || comment.type === "comment1")
10204
- && /@preserve|@lic|@cc_on|^\**!/i.test(comment.value)
10204
+ && /@preserve|@copyright|@lic|@cc_on|^\**!/i.test(comment.value)
10205
10205
  );
10206
10206
  }
10207
10207
 
@@ -10314,8 +10314,8 @@ function OutputStream(options) {
10314
10314
  var OUTPUT = new Rope();
10315
10315
  let printed_comments = new Set();
10316
10316
 
10317
- var to_utf8 = options.ascii_only ? function(str, identifier) {
10318
- if (options.ecma >= 2015 && !options.safari10) {
10317
+ var to_utf8 = options.ascii_only ? function(str, identifier = false, regexp = false) {
10318
+ if (options.ecma >= 2015 && !options.safari10 && !regexp) {
10319
10319
  str = str.replace(/[\ud800-\udbff][\udc00-\udfff]/g, function(ch) {
10320
10320
  var code = get_full_char_code(ch, 0).toString(16);
10321
10321
  return "\\u{" + code + "}";
@@ -11127,7 +11127,8 @@ function OutputStream(options) {
11127
11127
  var p = output.parent();
11128
11128
  if (this.args.length === 0
11129
11129
  && (p instanceof AST_PropAccess // (new Date).getTime(), (new Date)["getTime"]()
11130
- || p instanceof AST_Call && p.expression === this)) // (new foo)(bar)
11130
+ || p instanceof AST_Call && p.expression === this
11131
+ || p instanceof AST_PrefixedTemplateString && p.prefix === this)) // (new foo)(bar)
11131
11132
  return true;
11132
11133
  });
11133
11134
 
@@ -12242,7 +12243,7 @@ function OutputStream(options) {
12242
12243
  flags = flags ? sort_regexp_flags(flags) : "";
12243
12244
  source = source.replace(r_slash_script, slash_script_replace);
12244
12245
 
12245
- output.print(output.to_utf8(`/${source}/${flags}`));
12246
+ output.print(output.to_utf8(`/${source}/${flags}`, false, true));
12246
12247
 
12247
12248
  const parent = output.parent();
12248
12249
  if (
@@ -12666,6 +12667,11 @@ const MASK_EXPORT_WANT_MANGLE = 1 << 1;
12666
12667
 
12667
12668
  let function_defs = null;
12668
12669
  let unmangleable_names = null;
12670
+ /**
12671
+ * When defined, there is a function declaration somewhere that's inside of a block.
12672
+ * See https://tc39.es/ecma262/multipage/additional-ecmascript-features-for-web-browsers.html#sec-block-level-function-declarations-web-legacy-compatibility-semantics
12673
+ */
12674
+ let scopes_with_block_defuns = null;
12669
12675
 
12670
12676
  class SymbolDef {
12671
12677
  constructor(scope, orig, init) {
@@ -13216,6 +13222,15 @@ AST_Scope.DEFMETHOD("def_variable", function(symbol, init) {
13216
13222
  });
13217
13223
 
13218
13224
  function next_mangled(scope, options) {
13225
+ let defun_scope;
13226
+ if (
13227
+ scopes_with_block_defuns
13228
+ && (defun_scope = scope.get_defun_scope())
13229
+ && scopes_with_block_defuns.has(defun_scope)
13230
+ ) {
13231
+ scope = defun_scope;
13232
+ }
13233
+
13219
13234
  var ext = scope.enclosed;
13220
13235
  var nth_identifier = options.nth_identifier;
13221
13236
  out: while (true) {
@@ -13350,6 +13365,13 @@ AST_Toplevel.DEFMETHOD("mangle_names", function(options) {
13350
13365
  lname = save_nesting;
13351
13366
  return true; // don't descend again in TreeWalker
13352
13367
  }
13368
+ if (
13369
+ node instanceof AST_Defun
13370
+ && !(tw.parent() instanceof AST_Scope)
13371
+ ) {
13372
+ scopes_with_block_defuns = scopes_with_block_defuns || new Set();
13373
+ scopes_with_block_defuns.add(node.parent_scope.get_defun_scope());
13374
+ }
13353
13375
  if (node instanceof AST_Scope) {
13354
13376
  node.variables.forEach(collect);
13355
13377
  return;
@@ -13398,6 +13420,7 @@ AST_Toplevel.DEFMETHOD("mangle_names", function(options) {
13398
13420
 
13399
13421
  function_defs = null;
13400
13422
  unmangleable_names = null;
13423
+ scopes_with_block_defuns = null;
13401
13424
 
13402
13425
  function collect(symbol) {
13403
13426
  if (symbol.export & MASK_EXPORT_DONT_MANGLE) {
@@ -30781,7 +30804,54 @@ function cache_to_json(cache) {
30781
30804
  };
30782
30805
  }
30783
30806
 
30784
- async function minify(files, options) {
30807
+ function log_input(files, options, fs, debug_folder) {
30808
+ if (!(fs && fs.writeFileSync && fs.mkdirSync)) {
30809
+ return;
30810
+ }
30811
+
30812
+ try {
30813
+ fs.mkdirSync(debug_folder);
30814
+ } catch (e) {
30815
+ if (e.code !== "EEXIST") throw e;
30816
+ }
30817
+
30818
+ const log_path = `${debug_folder}/terser-debug-${(Math.random() * 9999999) | 0}.log`;
30819
+
30820
+ options = options || {};
30821
+
30822
+ const options_str = JSON.stringify(options, (_key, thing) => {
30823
+ if (typeof thing === "function") return "[Function " + thing.toString() + "]";
30824
+ if (thing instanceof RegExp) return "[RegExp " + thing.toString() + "]";
30825
+ return thing;
30826
+ }, 4);
30827
+
30828
+ const files_str = (file) => {
30829
+ if (typeof file === "object" && options.parse && options.parse.spidermonkey) {
30830
+ return JSON.stringify(file, null, 2);
30831
+ } else if (typeof file === "object") {
30832
+ return Object.keys(file)
30833
+ .map((key) => key + ": " + files_str(file[key]))
30834
+ .join("\n\n");
30835
+ } else if (typeof file === "string") {
30836
+ return "```\n" + file + "\n```";
30837
+ } else {
30838
+ return file; // What do?
30839
+ }
30840
+ };
30841
+
30842
+ fs.writeFileSync(log_path, "Options: \n" + options_str + "\n\nInput files:\n\n" + files_str(files) + "\n");
30843
+ }
30844
+
30845
+ async function minify(files, options, _fs_module) {
30846
+ if (
30847
+ _fs_module
30848
+ && typeof process === "object"
30849
+ && process.env
30850
+ && typeof process.env.TERSER_DEBUG_DIR === "string"
30851
+ ) {
30852
+ log_input(files, options, _fs_module, process.env.TERSER_DEBUG_DIR);
30853
+ }
30854
+
30785
30855
  options = defaults(options, {
30786
30856
  compress: {},
30787
30857
  ecma: undefined,
@@ -30804,6 +30874,7 @@ async function minify(files, options) {
30804
30874
  warnings: false,
30805
30875
  wrap: false,
30806
30876
  }, true);
30877
+
30807
30878
  var timings = options.timings && {
30808
30879
  start: Date.now()
30809
30880
  };
@@ -31205,7 +31276,7 @@ async function run_cli({ program, packageJson, fs, path }) {
31205
31276
 
31206
31277
  let result;
31207
31278
  try {
31208
- result = await minify(files, options);
31279
+ result = await minify(files, options, fs);
31209
31280
  } catch (ex) {
31210
31281
  if (ex.name == "SyntaxError") {
31211
31282
  print_error("Parse error at " + ex.filename + ":" + ex.line + "," + ex.col);
@@ -31268,14 +31339,18 @@ async function run_cli({ program, packageJson, fs, path }) {
31268
31339
  }, 2));
31269
31340
  } else if (program.output == "spidermonkey") {
31270
31341
  try {
31271
- const minified = await minify(result.code, {
31272
- compress: false,
31273
- mangle: false,
31274
- format: {
31275
- ast: true,
31276
- code: false
31277
- }
31278
- });
31342
+ const minified = await minify(
31343
+ result.code,
31344
+ {
31345
+ compress: false,
31346
+ mangle: false,
31347
+ format: {
31348
+ ast: true,
31349
+ code: false
31350
+ }
31351
+ },
31352
+ fs
31353
+ );
31279
31354
  console.log(JSON.stringify(minified.ast.to_mozilla_ast(), null, 2));
31280
31355
  } catch (ex) {
31281
31356
  fatal(ex);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vite",
3
- "version": "2.9.0-beta.3",
3
+ "version": "2.9.0-beta.7",
4
4
  "license": "MIT",
5
5
  "author": "Evan You",
6
6
  "description": "Native-ESM powered web dev build tool",
@@ -44,7 +44,7 @@
44
44
  "//": "READ CONTRIBUTING.md to understand what to put under deps vs. devDeps!",
45
45
  "dependencies": {
46
46
  "esbuild": "^0.14.27",
47
- "postcss": "^8.4.6",
47
+ "postcss": "^8.4.12",
48
48
  "resolve": "^1.22.0",
49
49
  "rollup": "^2.59.0"
50
50
  },
@@ -52,17 +52,17 @@
52
52
  "fsevents": "~2.3.2"
53
53
  },
54
54
  "devDependencies": {
55
- "@ampproject/remapping": "^2.1.0",
56
- "@babel/parser": "^7.17.0",
55
+ "@ampproject/remapping": "^2.1.2",
56
+ "@babel/parser": "^7.17.8",
57
57
  "@babel/types": "^7.17.0",
58
- "@jridgewell/trace-mapping": "^0.3.2",
58
+ "@jridgewell/trace-mapping": "^0.3.4",
59
59
  "@rollup/plugin-alias": "^3.1.9",
60
- "@rollup/plugin-commonjs": "^21.0.1",
60
+ "@rollup/plugin-commonjs": "^21.0.2",
61
61
  "@rollup/plugin-dynamic-import-vars": "^1.4.2",
62
62
  "@rollup/plugin-json": "^4.1.0",
63
63
  "@rollup/plugin-node-resolve": "13.1.3",
64
- "@rollup/plugin-typescript": "^8.3.0",
65
- "@rollup/pluginutils": "^4.1.2",
64
+ "@rollup/plugin-typescript": "^8.3.1",
65
+ "@rollup/pluginutils": "^4.2.0",
66
66
  "@types/convert-source-map": "^1.5.2",
67
67
  "@types/cross-spawn": "^6.0.2",
68
68
  "@types/debug": "^4.1.7",
@@ -71,12 +71,12 @@
71
71
  "@types/less": "^3.0.3",
72
72
  "@types/micromatch": "^4.0.2",
73
73
  "@types/mime": "^2.0.3",
74
- "@types/node": "^16.11.22",
74
+ "@types/node": "^16.11.26",
75
75
  "@types/resolve": "^1.20.1",
76
76
  "@types/sass": "~1.43.1",
77
77
  "@types/stylus": "^0.48.36",
78
- "@types/ws": "^8.2.2",
79
- "@vue/compiler-dom": "^3.2.30",
78
+ "@types/ws": "^8.5.3",
79
+ "@vue/compiler-dom": "^3.2.31",
80
80
  "acorn": "^8.7.0",
81
81
  "cac": "6.7.9",
82
82
  "chokidar": "^3.5.3",
@@ -85,33 +85,34 @@
85
85
  "convert-source-map": "^1.8.0",
86
86
  "cors": "^2.8.5",
87
87
  "cross-spawn": "^7.0.3",
88
- "debug": "^4.3.3",
88
+ "debug": "^4.3.4",
89
89
  "dotenv": "^14.3.2",
90
90
  "dotenv-expand": "^5.1.0",
91
- "es-module-lexer": "^0.9.3",
91
+ "es-module-lexer": "^0.10.4",
92
92
  "estree-walker": "^2.0.2",
93
93
  "etag": "^1.8.1",
94
94
  "fast-glob": "^3.2.11",
95
95
  "http-proxy": "^1.18.1",
96
- "json5": "^2.2.0",
96
+ "json5": "^2.2.1",
97
97
  "launch-editor-middleware": "^2.3.0",
98
- "magic-string": "^0.25.7",
98
+ "magic-string": "^0.26.1",
99
99
  "micromatch": "^4.0.4",
100
100
  "mrmime": "^1.0.0",
101
- "node-forge": "^1.2.1",
101
+ "node-forge": "^1.3.0",
102
102
  "okie": "^1.0.1",
103
103
  "open": "^8.4.0",
104
104
  "periscopic": "^2.0.3",
105
105
  "picocolors": "^1.0.0",
106
106
  "postcss-import": "^14.0.2",
107
107
  "postcss-load-config": "^3.1.3",
108
- "postcss-modules": "^4.3.0",
108
+ "postcss-modules": "^4.3.1",
109
109
  "resolve.exports": "^1.1.0",
110
110
  "rollup-plugin-license": "^2.6.1",
111
111
  "sirv": "^2.0.2",
112
+ "source-map-js": "^1.0.2",
112
113
  "source-map-support": "^0.5.21",
113
114
  "strip-ansi": "^6.0.1",
114
- "terser": "^5.10.0",
115
+ "terser": "^5.12.1",
115
116
  "tsconfck": "^1.2.0",
116
117
  "tslib": "^2.3.1",
117
118
  "types": "link:./types",
package/types/ws.d.ts CHANGED
@@ -1,4 +1,7 @@
1
- // Type definitions for ws 8.2
1
+ // Modified and inlined to avoid extra dependency
2
+ // Source: https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/ws/index.d.ts
3
+
4
+ // Type definitions for ws 8.5
2
5
  // Project: https://github.com/websockets/ws
3
6
  // Definitions by: Paul Loyd <https://github.com/loyd>
4
7
  // Margus Lamp <https://github.com/mlamp>
@@ -7,6 +10,7 @@
7
10
  // teidesu <https://github.com/teidesu>
8
11
  // Bartosz Wojtkowiak <https://github.com/wojtkowiak>
9
12
  // Kyle Hensel <https://github.com/k-yle>
13
+ // Samuel Skeen <https://github.com/cwadrupldijjit>
10
14
  // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
11
15
 
12
16
  /// <reference types="node" />
@@ -40,6 +44,8 @@ declare class WebSocket extends EventEmitter {
40
44
  binaryType: 'nodebuffer' | 'arraybuffer' | 'fragments'
41
45
  readonly bufferedAmount: number
42
46
  readonly extensions: string
47
+ /** Indicates whether the websocket is paused */
48
+ readonly isPaused: boolean
43
49
  readonly protocol: string
44
50
  /** The current state of the connection */
45
51
  readonly readyState:
@@ -58,11 +64,12 @@ declare class WebSocket extends EventEmitter {
58
64
  /** The connection is closed. */
59
65
  readonly CLOSED: 3
60
66
 
61
- onopen: (event: WebSocket.Event) => void
62
- onerror: (event: WebSocket.ErrorEvent) => void
63
- onclose: (event: WebSocket.CloseEvent) => void
64
- onmessage: (event: WebSocket.MessageEvent) => void
67
+ onopen: ((event: WebSocket.Event) => void) | null
68
+ onerror: ((event: WebSocket.ErrorEvent) => void) | null
69
+ onclose: ((event: WebSocket.CloseEvent) => void) | null
70
+ onmessage: ((event: WebSocket.MessageEvent) => void) | null
65
71
 
72
+ constructor(address: null)
66
73
  constructor(
67
74
  address: string | URL,
68
75
  options?: WebSocket.ClientOptions | ClientRequestArgs
@@ -89,6 +96,18 @@ declare class WebSocket extends EventEmitter {
89
96
  ): void
90
97
  terminate(): void
91
98
 
99
+ /**
100
+ * Pause the websocket causing it to stop emitting events. Some events can still be
101
+ * emitted after this is called, until all buffered data is consumed. This method
102
+ * is a noop if the ready state is `CONNECTING` or `CLOSED`.
103
+ */
104
+ pause(): void
105
+ /**
106
+ * Make a paused socket resume emitting events. This method is a noop if the ready
107
+ * state is `CONNECTING` or `CLOSED`.
108
+ */
109
+ resume(): void
110
+
92
111
  // HTML5 WebSocket events
93
112
  addEventListener(
94
113
  method: 'message',
@@ -281,7 +300,7 @@ declare class WebSocket extends EventEmitter {
281
300
  }
282
301
 
283
302
  declare const WebSocketAlias: typeof WebSocket
284
- type WebSocketAlias = WebSocket
303
+ interface WebSocketAlias extends WebSocket {} // tslint:disable-line no-empty-interface
285
304
 
286
305
  declare namespace WebSocket {
287
306
  /**
@@ -328,6 +347,7 @@ declare namespace WebSocket {
328
347
  interface ClientOptions extends SecureContextOptions {
329
348
  protocol?: string | undefined
330
349
  followRedirects?: boolean | undefined
350
+ generateMask?(mask: Buffer): void
331
351
  handshakeTimeout?: number | undefined
332
352
  maxRedirects?: number | undefined
333
353
  perMessageDeflate?: boolean | PerMessageDeflateOptions | undefined
@@ -341,6 +361,7 @@ declare namespace WebSocket {
341
361
  checkServerIdentity?(servername: string, cert: CertMeta): boolean
342
362
  rejectUnauthorized?: boolean | undefined
343
363
  maxPayload?: number | undefined
364
+ skipUTF8Validation?: boolean | undefined
344
365
  }
345
366
 
346
367
  interface PerMessageDeflateOptions {
@@ -415,6 +436,7 @@ declare namespace WebSocket {
415
436
  perMessageDeflate?: boolean | PerMessageDeflateOptions | undefined
416
437
  maxPayload?: number | undefined
417
438
  skipUTF8Validation?: boolean | undefined
439
+ WebSocket?: typeof WebSocket.WebSocket | undefined
418
440
  }
419
441
 
420
442
  interface AddressInfo {
@@ -424,10 +446,10 @@ declare namespace WebSocket {
424
446
  }
425
447
 
426
448
  // WebSocket Server
427
- class Server extends EventEmitter {
449
+ class Server<T extends WebSocket = WebSocket> extends EventEmitter {
428
450
  options: ServerOptions
429
451
  path: string
430
- clients: Set<WebSocket>
452
+ clients: Set<T>
431
453
 
432
454
  constructor(options?: ServerOptions, callback?: () => void)
433
455
 
@@ -437,56 +459,59 @@ declare namespace WebSocket {
437
459
  request: IncomingMessage,
438
460
  socket: Duplex,
439
461
  upgradeHead: Buffer,
440
- callback: (client: WebSocket, request: IncomingMessage) => void
462
+ callback: (client: T, request: IncomingMessage) => void
441
463
  ): void
442
464
  shouldHandle(request: IncomingMessage): boolean | Promise<boolean>
443
465
 
444
466
  // Events
445
467
  on(
446
468
  event: 'connection',
447
- cb: (this: Server, socket: WebSocket, request: IncomingMessage) => void
469
+ cb: (this: Server<T>, socket: T, request: IncomingMessage) => void
448
470
  ): this
449
- on(event: 'error', cb: (this: Server, error: Error) => void): this
471
+ on(event: 'error', cb: (this: Server<T>, error: Error) => void): this
450
472
  on(
451
473
  event: 'headers',
452
- cb: (this: Server, headers: string[], request: IncomingMessage) => void
474
+ cb: (this: Server<T>, headers: string[], request: IncomingMessage) => void
453
475
  ): this
454
- on(event: 'close' | 'listening', cb: (this: Server) => void): this
476
+ on(event: 'close' | 'listening', cb: (this: Server<T>) => void): this
455
477
  on(
456
478
  event: string | symbol,
457
- listener: (this: Server, ...args: any[]) => void
479
+ listener: (this: Server<T>, ...args: any[]) => void
458
480
  ): this
459
481
 
460
482
  once(
461
483
  event: 'connection',
462
- cb: (this: Server, socket: WebSocket, request: IncomingMessage) => void
484
+ cb: (this: Server<T>, socket: T, request: IncomingMessage) => void
463
485
  ): this
464
- once(event: 'error', cb: (this: Server, error: Error) => void): this
486
+ once(event: 'error', cb: (this: Server<T>, error: Error) => void): this
465
487
  once(
466
488
  event: 'headers',
467
- cb: (this: Server, headers: string[], request: IncomingMessage) => void
489
+ cb: (this: Server<T>, headers: string[], request: IncomingMessage) => void
490
+ ): this
491
+ once(event: 'close' | 'listening', cb: (this: Server<T>) => void): this
492
+ once(
493
+ event: string | symbol,
494
+ listener: (this: Server<T>, ...args: any[]) => void
468
495
  ): this
469
- once(event: 'close' | 'listening', cb: (this: Server) => void): this
470
- once(event: string | symbol, listener: (...args: any[]) => void): this
471
496
 
472
497
  off(
473
498
  event: 'connection',
474
- cb: (this: Server, socket: WebSocket, request: IncomingMessage) => void
499
+ cb: (this: Server<T>, socket: T, request: IncomingMessage) => void
475
500
  ): this
476
- off(event: 'error', cb: (this: Server, error: Error) => void): this
501
+ off(event: 'error', cb: (this: Server<T>, error: Error) => void): this
477
502
  off(
478
503
  event: 'headers',
479
- cb: (this: Server, headers: string[], request: IncomingMessage) => void
504
+ cb: (this: Server<T>, headers: string[], request: IncomingMessage) => void
480
505
  ): this
481
- off(event: 'close' | 'listening', cb: (this: Server) => void): this
506
+ off(event: 'close' | 'listening', cb: (this: Server<T>) => void): this
482
507
  off(
483
508
  event: string | symbol,
484
- listener: (this: Server, ...args: any[]) => void
509
+ listener: (this: Server<T>, ...args: any[]) => void
485
510
  ): this
486
511
 
487
512
  addListener(
488
513
  event: 'connection',
489
- cb: (client: WebSocket, request: IncomingMessage) => void
514
+ cb: (client: T, request: IncomingMessage) => void
490
515
  ): this
491
516
  addListener(event: 'error', cb: (err: Error) => void): this
492
517
  addListener(
@@ -499,7 +524,7 @@ declare namespace WebSocket {
499
524
  listener: (...args: any[]) => void
500
525
  ): this
501
526
 
502
- removeListener(event: 'connection', cb: (client: WebSocket) => void): this
527
+ removeListener(event: 'connection', cb: (client: T) => void): this
503
528
  removeListener(event: 'error', cb: (err: Error) => void): this
504
529
  removeListener(
505
530
  event: 'headers',
@@ -513,9 +538,9 @@ declare namespace WebSocket {
513
538
  }
514
539
 
515
540
  const WebSocketServer: typeof Server
516
- type WebSocketServer = Server
541
+ interface WebSocketServer extends Server {} // tslint:disable-line no-empty-interface
517
542
  const WebSocket: typeof WebSocketAlias
518
- type WebSocket = WebSocketAlias
543
+ interface WebSocket extends WebSocketAlias {} // tslint:disable-line no-empty-interface
519
544
 
520
545
  // WebSocket stream
521
546
  function createWebSocketStream(
@@ -524,5 +549,5 @@ declare namespace WebSocket {
524
549
  ): Duplex
525
550
  }
526
551
 
527
- //export = WebSocket;
552
+ // export = WebSocket
528
553
  export { WebSocket, WebSocketAlias }