prettier 3.0.0-alpha.1 → 3.0.0-alpha.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 (57) hide show
  1. package/LICENSE +910 -759
  2. package/README.md +3 -3
  3. package/bin/prettier.cjs +0 -0
  4. package/doc.d.ts +240 -0
  5. package/doc.js +351 -479
  6. package/doc.mjs +342 -474
  7. package/index.cjs +400 -230
  8. package/index.d.ts +921 -0
  9. package/index.mjs +17218 -32209
  10. package/internal/cli.mjs +4374 -10823
  11. package/internal/internal.mjs +6437 -0
  12. package/package.json +55 -13
  13. package/plugins/acorn.d.ts +6 -0
  14. package/plugins/acorn.js +13 -0
  15. package/plugins/acorn.mjs +13 -0
  16. package/plugins/angular.d.ts +8 -0
  17. package/plugins/angular.js +2 -2
  18. package/plugins/angular.mjs +2 -2
  19. package/plugins/babel.d.ts +17 -0
  20. package/plugins/babel.js +12 -12
  21. package/plugins/babel.mjs +12 -12
  22. package/plugins/estree.d.ts +0 -0
  23. package/plugins/estree.js +35 -0
  24. package/plugins/estree.mjs +35 -0
  25. package/plugins/flow.d.ts +5 -0
  26. package/plugins/flow.js +20 -20
  27. package/plugins/flow.mjs +20 -20
  28. package/plugins/glimmer.d.ts +5 -0
  29. package/plugins/glimmer.js +22 -17
  30. package/plugins/glimmer.mjs +22 -17
  31. package/plugins/graphql.d.ts +5 -0
  32. package/plugins/graphql.js +16 -7
  33. package/plugins/graphql.mjs +16 -7
  34. package/plugins/html.d.ts +8 -0
  35. package/plugins/html.js +19 -29
  36. package/plugins/html.mjs +19 -29
  37. package/plugins/markdown.d.ts +7 -0
  38. package/plugins/markdown.js +54 -34
  39. package/plugins/markdown.mjs +54 -34
  40. package/plugins/meriyah.d.ts +5 -0
  41. package/plugins/meriyah.js +5 -6
  42. package/plugins/meriyah.mjs +5 -6
  43. package/plugins/postcss.d.ts +7 -0
  44. package/plugins/postcss.js +45 -43
  45. package/plugins/postcss.mjs +45 -43
  46. package/plugins/typescript.d.ts +5 -0
  47. package/plugins/typescript.js +24 -239
  48. package/plugins/typescript.mjs +24 -239
  49. package/plugins/yaml.d.ts +5 -0
  50. package/plugins/yaml.js +148 -135
  51. package/plugins/yaml.mjs +148 -135
  52. package/standalone.d.ts +33 -0
  53. package/standalone.js +35 -105
  54. package/standalone.mjs +35 -105
  55. package/internal/third-party.mjs +0 -9071
  56. package/plugins/acorn-and-espree.js +0 -13
  57. package/plugins/acorn-and-espree.mjs +0 -13
package/doc.js CHANGED
@@ -1,15 +1,13 @@
1
1
  (function (factory) {
2
- function interopModuleDefault(factory) {
2
+ function interopModuleDefault() {
3
3
  var module = factory();
4
- return module;
4
+ return module.default || module;
5
5
  }
6
6
 
7
7
  if (typeof exports === "object" && typeof module === "object") {
8
- module.exports = interopModuleDefault(factory);
8
+ module.exports = interopModuleDefault();
9
9
  } else if (typeof define === "function" && define.amd) {
10
- define(function () {
11
- return interopModuleDefault(factory)
12
- });
10
+ define(interopModuleDefault);
13
11
  } else {
14
12
  var root =
15
13
  typeof globalThis !== "undefined"
@@ -19,7 +17,7 @@
19
17
  : typeof self !== "undefined"
20
18
  ? self
21
19
  : this || {};
22
- root.doc = interopModuleDefault(factory);
20
+ root.doc = interopModuleDefault();
23
21
  }
24
22
  })(function() {
25
23
  "use strict";
@@ -29,10 +27,6 @@
29
27
  var __getOwnPropNames = Object.getOwnPropertyNames;
30
28
  var __getProtoOf = Object.getPrototypeOf;
31
29
  var __hasOwnProp = Object.prototype.hasOwnProperty;
32
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
33
- var __esm = (fn, res) => function __init() {
34
- return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
35
- };
36
30
  var __commonJS = (cb, mod) => function __require() {
37
31
  return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
38
32
  };
@@ -49,75 +43,34 @@
49
43
  return to;
50
44
  };
51
45
  var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
46
+ // If the importer is in node compatibility mode or this is not an ESM
47
+ // file that has been converted to a CommonJS file using a Babel-
48
+ // compatible transform (i.e. "__esModule" has not been set), then set
49
+ // "default" to the CommonJS "module.exports" for node compatibility.
52
50
  isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
53
51
  mod
54
52
  ));
55
53
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
56
- var __publicField = (obj, key, value) => {
57
- __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
58
- return value;
59
- };
60
-
61
- // <define:process>
62
- var init_define_process = __esm({
63
- "<define:process>"() {
64
- }
65
- });
66
54
 
67
55
  // node_modules/string-width/node_modules/emoji-regex/index.js
68
56
  var require_emoji_regex = __commonJS({
69
57
  "node_modules/string-width/node_modules/emoji-regex/index.js"(exports, module) {
70
58
  "use strict";
71
- init_define_process();
72
59
  module.exports = function() {
73
60
  return /\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67)\uDB40\uDC7F|(?:\uD83E\uDDD1\uD83C\uDFFF\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFC-\uDFFF])|\uD83D\uDC68(?:\uD83C\uDFFB(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|[\u2695\u2696\u2708]\uFE0F|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))?|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])\uFE0F|\u200D(?:(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D[\uDC66\uDC67])|\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC)?|(?:\uD83D\uDC69(?:\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69]))|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC69(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83E\uDDD1(?:\u200D(?:\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDE36\u200D\uD83C\uDF2B|\uD83C\uDFF3\uFE0F\u200D\u26A7|\uD83D\uDC3B\u200D\u2744|(?:(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\uD83C\uDFF4\u200D\u2620|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])\u200D[\u2640\u2642]|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u2600-\u2604\u260E\u2611\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26B0\u26B1\u26C8\u26CF\u26D1\u26D3\u26E9\u26F0\u26F1\u26F4\u26F7\u26F8\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u3030\u303D\u3297\u3299]|\uD83C[\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]|\uD83D[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3])\uFE0F|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDE35\u200D\uD83D\uDCAB|\uD83D\uDE2E\u200D\uD83D\uDCA8|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83E\uDDD1(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83D\uDC69(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF6\uD83C\uDDE6|\uD83C\uDDF4\uD83C\uDDF2|\uD83D\uDC08\u200D\u2B1B|\u2764\uFE0F\u200D(?:\uD83D\uDD25|\uD83E\uDE79)|\uD83D\uDC41\uFE0F|\uD83C\uDFF3\uFE0F|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|[#\*0-9]\uFE0F\u20E3|\u2764\uFE0F|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|\uD83C\uDFF4|(?:[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270C\u270D]|\uD83D[\uDD74\uDD90])(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC08\uDC15\uDC3B\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE2E\uDE35\uDE36\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5]|\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD]|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF]|[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0D\uDD0E\uDD10-\uDD17\uDD1D\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78\uDD7A-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCB\uDDD0\uDDE0-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6]|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26A7\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5-\uDED7\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDD77\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g;
74
61
  };
75
62
  }
76
63
  });
77
64
 
78
- // src/document/index.js
79
- var document_exports = {};
80
- __export(document_exports, {
81
- builders: () => builders_exports,
82
- debug: () => debug_exports,
83
- printer: () => printer_exports,
84
- utils: () => utils_exports
65
+ // src/document/public.js
66
+ var public_exports = {};
67
+ __export(public_exports, {
68
+ builders: () => builders,
69
+ printer: () => printer,
70
+ utils: () => utils
85
71
  });
86
- init_define_process();
87
-
88
- // src/document/builders.js
89
- var builders_exports = {};
90
- __export(builders_exports, {
91
- addAlignmentToDoc: () => addAlignmentToDoc,
92
- align: () => align,
93
- breakParent: () => breakParent,
94
- concat: () => concat,
95
- conditionalGroup: () => conditionalGroup,
96
- cursor: () => cursor,
97
- dedent: () => dedent,
98
- dedentToRoot: () => dedentToRoot,
99
- fill: () => fill,
100
- group: () => group,
101
- hardline: () => hardline,
102
- hardlineWithoutBreakParent: () => hardlineWithoutBreakParent,
103
- ifBreak: () => ifBreak,
104
- indent: () => indent,
105
- indentIfBreak: () => indentIfBreak,
106
- join: () => join,
107
- label: () => label,
108
- line: () => line,
109
- lineSuffix: () => lineSuffix,
110
- lineSuffixBoundary: () => lineSuffixBoundary,
111
- literalline: () => literalline,
112
- literallineWithoutBreakParent: () => literallineWithoutBreakParent,
113
- markAsRoot: () => markAsRoot,
114
- softline: () => softline,
115
- trim: () => trim
116
- });
117
- init_define_process();
118
72
 
119
73
  // src/document/constants.js
120
- init_define_process();
121
74
  var DOC_TYPE_STRING = "string";
122
75
  var DOC_TYPE_ARRAY = "array";
123
76
  var DOC_TYPE_CURSOR = "cursor";
@@ -149,23 +102,157 @@
149
102
  DOC_TYPE_BREAK_PARENT
150
103
  ]);
151
104
 
105
+ // src/document/utils/get-doc-type.js
106
+ function getDocType(doc) {
107
+ if (typeof doc === "string") {
108
+ return DOC_TYPE_STRING;
109
+ }
110
+ if (Array.isArray(doc)) {
111
+ return DOC_TYPE_ARRAY;
112
+ }
113
+ if (!doc) {
114
+ return;
115
+ }
116
+ const { type } = doc;
117
+ if (VALID_OBJECT_DOC_TYPES.has(type)) {
118
+ return type;
119
+ }
120
+ }
121
+ var get_doc_type_default = getDocType;
122
+
123
+ // src/document/invalid-doc-error.js
124
+ var disjunctionListFormat = (list) => new Intl.ListFormat("en-US", { type: "disjunction" }).format(list);
125
+ function getDocErrorMessage(doc) {
126
+ const type = doc === null ? "null" : typeof doc;
127
+ if (type !== "string" && type !== "object") {
128
+ return `Unexpected doc '${type}',
129
+ Expected it to be 'string' or 'object'.`;
130
+ }
131
+ if (get_doc_type_default(doc)) {
132
+ throw new Error("doc is valid.");
133
+ }
134
+ const objectType = Object.prototype.toString.call(doc);
135
+ if (objectType !== "[object Object]") {
136
+ return `Unexpected doc '${objectType}'.`;
137
+ }
138
+ const EXPECTED_TYPE_VALUES = disjunctionListFormat(
139
+ [...VALID_OBJECT_DOC_TYPES].map((type2) => `'${type2}'`)
140
+ );
141
+ return `Unexpected doc.type '${doc.type}'.
142
+ Expected it to be ${EXPECTED_TYPE_VALUES}.`;
143
+ }
144
+ var InvalidDocError = class extends Error {
145
+ name = "InvalidDocError";
146
+ constructor(doc) {
147
+ super(getDocErrorMessage(doc));
148
+ this.doc = doc;
149
+ }
150
+ };
151
+ var invalid_doc_error_default = InvalidDocError;
152
+
153
+ // src/document/utils/traverse-doc.js
154
+ var traverseDocOnExitStackMarker = {};
155
+ function traverseDoc(doc, onEnter, onExit, shouldTraverseConditionalGroups) {
156
+ const docsStack = [doc];
157
+ while (docsStack.length > 0) {
158
+ const doc2 = docsStack.pop();
159
+ if (doc2 === traverseDocOnExitStackMarker) {
160
+ onExit(docsStack.pop());
161
+ continue;
162
+ }
163
+ if (onExit) {
164
+ docsStack.push(doc2, traverseDocOnExitStackMarker);
165
+ }
166
+ const docType = get_doc_type_default(doc2);
167
+ if (!docType) {
168
+ throw new invalid_doc_error_default(doc2);
169
+ }
170
+ if ((onEnter == null ? void 0 : onEnter(doc2)) === false) {
171
+ continue;
172
+ }
173
+ switch (docType) {
174
+ case DOC_TYPE_ARRAY:
175
+ case DOC_TYPE_FILL: {
176
+ const parts = docType === DOC_TYPE_ARRAY ? doc2 : doc2.parts;
177
+ for (let ic = parts.length, i = ic - 1; i >= 0; --i) {
178
+ docsStack.push(parts[i]);
179
+ }
180
+ break;
181
+ }
182
+ case DOC_TYPE_IF_BREAK:
183
+ docsStack.push(doc2.flatContents, doc2.breakContents);
184
+ break;
185
+ case DOC_TYPE_GROUP:
186
+ if (shouldTraverseConditionalGroups && doc2.expandedStates) {
187
+ for (let ic = doc2.expandedStates.length, i = ic - 1; i >= 0; --i) {
188
+ docsStack.push(doc2.expandedStates[i]);
189
+ }
190
+ } else {
191
+ docsStack.push(doc2.contents);
192
+ }
193
+ break;
194
+ case DOC_TYPE_ALIGN:
195
+ case DOC_TYPE_INDENT:
196
+ case DOC_TYPE_INDENT_IF_BREAK:
197
+ case DOC_TYPE_LABEL:
198
+ case DOC_TYPE_LINE_SUFFIX:
199
+ docsStack.push(doc2.contents);
200
+ break;
201
+ case DOC_TYPE_STRING:
202
+ case DOC_TYPE_CURSOR:
203
+ case DOC_TYPE_TRIM:
204
+ case DOC_TYPE_LINE_SUFFIX_BOUNDARY:
205
+ case DOC_TYPE_LINE:
206
+ case DOC_TYPE_BREAK_PARENT:
207
+ break;
208
+ default:
209
+ throw new invalid_doc_error_default(doc2);
210
+ }
211
+ }
212
+ }
213
+ var traverse_doc_default = traverseDoc;
214
+
215
+ // src/document/utils/assert-doc.js
216
+ var noop = () => {
217
+ };
218
+ var assertDoc = true ? noop : function(doc) {
219
+ traverse_doc_default(doc, (doc2) => {
220
+ if (checked.has(doc2)) {
221
+ return false;
222
+ }
223
+ if (typeof doc2 !== "string") {
224
+ checked.add(doc2);
225
+ }
226
+ });
227
+ };
228
+ var assertDocArray = true ? noop : function(docs, optional = false) {
229
+ if (optional && !docs) {
230
+ return;
231
+ }
232
+ if (!Array.isArray(docs)) {
233
+ throw new TypeError("Unexpected doc array.");
234
+ }
235
+ for (const doc of docs) {
236
+ assertDoc(doc);
237
+ }
238
+ };
239
+
152
240
  // src/document/builders.js
153
241
  function indent(contents) {
154
- if (false) {
155
- assertDoc(contents);
156
- }
242
+ assertDoc(contents);
157
243
  return { type: DOC_TYPE_INDENT, contents };
158
244
  }
159
245
  function align(widthOrString, contents) {
160
- if (false) {
161
- assertDoc(contents);
162
- }
246
+ assertDoc(contents);
163
247
  return { type: DOC_TYPE_ALIGN, contents, n: widthOrString };
164
248
  }
165
249
  function group(contents, opts = {}) {
166
- if (false) {
167
- assertDoc(contents);
168
- }
250
+ assertDoc(contents);
251
+ assertDocArray(
252
+ opts.expandedStates,
253
+ /* optional */
254
+ true
255
+ );
169
256
  return {
170
257
  type: DOC_TYPE_GROUP,
171
258
  id: opts.id,
@@ -187,21 +274,13 @@
187
274
  return group(states[0], { ...opts, expandedStates: states });
188
275
  }
189
276
  function fill(parts) {
190
- if (false) {
191
- for (const part of parts) {
192
- assertDoc(part);
193
- }
194
- }
277
+ assertDocArray(parts);
195
278
  return { type: DOC_TYPE_FILL, parts };
196
279
  }
197
- function ifBreak(breakContents, flatContents, opts = {}) {
198
- if (false) {
199
- if (breakContents) {
200
- assertDoc(breakContents);
201
- }
202
- if (flatContents) {
203
- assertDoc(flatContents);
204
- }
280
+ function ifBreak(breakContents, flatContents = "", opts = {}) {
281
+ assertDoc(breakContents);
282
+ if (flatContents !== "") {
283
+ assertDoc(flatContents);
205
284
  }
206
285
  return {
207
286
  type: DOC_TYPE_IF_BREAK,
@@ -211,6 +290,7 @@
211
290
  };
212
291
  }
213
292
  function indentIfBreak(contents, opts) {
293
+ assertDoc(contents);
214
294
  return {
215
295
  type: DOC_TYPE_INDENT_IF_BREAK,
216
296
  contents,
@@ -219,9 +299,7 @@
219
299
  };
220
300
  }
221
301
  function lineSuffix(contents) {
222
- if (false) {
223
- assertDoc(contents);
224
- }
302
+ assertDoc(contents);
225
303
  return { type: DOC_TYPE_LINE_SUFFIX, contents };
226
304
  }
227
305
  var lineSuffixBoundary = { type: DOC_TYPE_LINE_SUFFIX_BOUNDARY };
@@ -238,17 +316,20 @@
238
316
  var hardline = [hardlineWithoutBreakParent, breakParent];
239
317
  var literalline = [literallineWithoutBreakParent, breakParent];
240
318
  var cursor = { type: DOC_TYPE_CURSOR };
241
- function join(sep, arr) {
242
- const res = [];
243
- for (let i = 0; i < arr.length; i++) {
319
+ function join(separator, docs) {
320
+ assertDoc(separator);
321
+ assertDocArray(docs);
322
+ const parts = [];
323
+ for (let i = 0; i < docs.length; i++) {
244
324
  if (i !== 0) {
245
- res.push(sep);
325
+ parts.push(separator);
246
326
  }
247
- res.push(arr[i]);
327
+ parts.push(docs[i]);
248
328
  }
249
- return res;
329
+ return parts;
250
330
  }
251
331
  function addAlignmentToDoc(doc, size, tabWidth) {
332
+ assertDoc(doc);
252
333
  let aligned = doc;
253
334
  if (size > 0) {
254
335
  for (let i = 0; i < Math.floor(size / tabWidth); ++i) {
@@ -260,29 +341,38 @@
260
341
  return aligned;
261
342
  }
262
343
  function label(label2, contents) {
344
+ assertDoc(contents);
263
345
  return label2 ? { type: DOC_TYPE_LABEL, label: label2, contents } : contents;
264
346
  }
265
- var concat = (parts) => parts;
266
-
267
- // src/document/printer.js
268
- var printer_exports = {};
269
- __export(printer_exports, {
270
- printDocToString: () => printDocToString
271
- });
272
- init_define_process();
273
347
 
274
348
  // scripts/build/shims/at.js
275
- init_define_process();
276
- var at = (isOptionalObject, object, index, ...args) => {
349
+ var at = (isOptionalObject, object, index) => {
277
350
  if (isOptionalObject && (object === void 0 || object === null)) {
278
351
  return;
279
352
  }
280
- return object.at ? object.at(index, ...args) : object[index < 0 ? object.length + index : index];
353
+ if (Array.isArray(object) || typeof object === "string") {
354
+ return object[index < 0 ? object.length + index : index];
355
+ }
356
+ return object.at(index);
281
357
  };
282
358
  var at_default = at;
283
359
 
360
+ // scripts/build/shims/string-replace-all.js
361
+ var stringReplaceAll = (isOptionalObject, original, pattern, replacement) => {
362
+ if (isOptionalObject && (original === void 0 || original === null)) {
363
+ return;
364
+ }
365
+ if (original.replaceAll) {
366
+ return original.replaceAll(pattern, replacement);
367
+ }
368
+ if (pattern.global) {
369
+ return original.replace(pattern, replacement);
370
+ }
371
+ return original.split(pattern).join(replacement);
372
+ };
373
+ var string_replace_all_default = stringReplaceAll;
374
+
284
375
  // src/common/end-of-line.js
285
- init_define_process();
286
376
  function convertEndOfLineToChars(value) {
287
377
  switch (value) {
288
378
  case "cr":
@@ -294,17 +384,7 @@
294
384
  }
295
385
  }
296
386
 
297
- // src/utils/get-string-width.js
298
- init_define_process();
299
-
300
- // node_modules/string-width/index.js
301
- init_define_process();
302
-
303
- // node_modules/strip-ansi/index.js
304
- init_define_process();
305
-
306
387
  // node_modules/strip-ansi/node_modules/ansi-regex/index.js
307
- init_define_process();
308
388
  function ansiRegex({ onlyFirst = false } = {}) {
309
389
  const pattern = [
310
390
  "[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)",
@@ -322,12 +402,26 @@
322
402
  }
323
403
 
324
404
  // node_modules/string-width/node_modules/is-fullwidth-code-point/index.js
325
- init_define_process();
326
405
  function isFullwidthCodePoint(codePoint) {
327
406
  if (!Number.isInteger(codePoint)) {
328
407
  return false;
329
408
  }
330
- return codePoint >= 4352 && (codePoint <= 4447 || codePoint === 9001 || codePoint === 9002 || 11904 <= codePoint && codePoint <= 12871 && codePoint !== 12351 || 12880 <= codePoint && codePoint <= 19903 || 19968 <= codePoint && codePoint <= 42182 || 43360 <= codePoint && codePoint <= 43388 || 44032 <= codePoint && codePoint <= 55203 || 63744 <= codePoint && codePoint <= 64255 || 65040 <= codePoint && codePoint <= 65049 || 65072 <= codePoint && codePoint <= 65131 || 65281 <= codePoint && codePoint <= 65376 || 65504 <= codePoint && codePoint <= 65510 || 110592 <= codePoint && codePoint <= 110593 || 127488 <= codePoint && codePoint <= 127569 || 131072 <= codePoint && codePoint <= 262141);
409
+ return codePoint >= 4352 && (codePoint <= 4447 || // Hangul Jamo
410
+ codePoint === 9001 || // LEFT-POINTING ANGLE BRACKET
411
+ codePoint === 9002 || // RIGHT-POINTING ANGLE BRACKET
412
+ // CJK Radicals Supplement .. Enclosed CJK Letters and Months
413
+ 11904 <= codePoint && codePoint <= 12871 && codePoint !== 12351 || // Enclosed CJK Letters and Months .. CJK Unified Ideographs Extension A
414
+ 12880 <= codePoint && codePoint <= 19903 || // CJK Unified Ideographs .. Yi Radicals
415
+ 19968 <= codePoint && codePoint <= 42182 || // Hangul Jamo Extended-A
416
+ 43360 <= codePoint && codePoint <= 43388 || // Hangul Syllables
417
+ 44032 <= codePoint && codePoint <= 55203 || // CJK Compatibility Ideographs
418
+ 63744 <= codePoint && codePoint <= 64255 || // Vertical Forms
419
+ 65040 <= codePoint && codePoint <= 65049 || // CJK Compatibility Forms .. Small Form Variants
420
+ 65072 <= codePoint && codePoint <= 65131 || // Halfwidth and Fullwidth Forms
421
+ 65281 <= codePoint && codePoint <= 65376 || 65504 <= codePoint && codePoint <= 65510 || // Kana Supplement
422
+ 110592 <= codePoint && codePoint <= 110593 || // Enclosed Ideographic Supplement
423
+ 127488 <= codePoint && codePoint <= 127569 || // CJK Unified Ideographs Extension B .. Tertiary Ideographic Plane
424
+ 131072 <= codePoint && codePoint <= 262141);
331
425
  }
332
426
 
333
427
  // node_modules/string-width/index.js
@@ -371,141 +465,6 @@
371
465
  }
372
466
  var get_string_width_default = getStringWidth;
373
467
 
374
- // src/document/utils.js
375
- var utils_exports = {};
376
- __export(utils_exports, {
377
- canBreak: () => canBreak,
378
- cleanDoc: () => cleanDoc,
379
- findInDoc: () => findInDoc,
380
- getDocParts: () => getDocParts,
381
- getDocType: () => get_doc_type_default,
382
- mapDoc: () => mapDoc,
383
- normalizeDoc: () => normalizeDoc,
384
- normalizeParts: () => normalizeParts,
385
- propagateBreaks: () => propagateBreaks,
386
- removeLines: () => removeLines,
387
- replaceEndOfLine: () => replaceEndOfLine,
388
- stripTrailingHardline: () => stripTrailingHardline,
389
- traverseDoc: () => traverse_doc_default,
390
- willBreak: () => willBreak
391
- });
392
- init_define_process();
393
-
394
- // src/document/utils/get-doc-type.js
395
- init_define_process();
396
- function getDocType(doc) {
397
- if (typeof doc === "string") {
398
- return DOC_TYPE_STRING;
399
- }
400
- if (Array.isArray(doc)) {
401
- return DOC_TYPE_ARRAY;
402
- }
403
- if (!doc) {
404
- return;
405
- }
406
- const { type } = doc;
407
- if (VALID_OBJECT_DOC_TYPES.has(type)) {
408
- return type;
409
- }
410
- }
411
- var get_doc_type_default = getDocType;
412
-
413
- // src/document/utils/traverse-doc.js
414
- init_define_process();
415
-
416
- // src/document/invalid-doc-error.js
417
- init_define_process();
418
- var disjunctionListFormat = (list) => [...list.slice(0, -1), `or ${at_default(false, list, -1)}`].join(", ");
419
- function getDocErrorMessage(doc) {
420
- const type = doc === null ? null : typeof doc;
421
- if (type !== "string" && type !== "object") {
422
- return `Unexpected doc '${type}',
423
- Expected it to be 'string' or 'object'.`;
424
- }
425
- if (get_doc_type_default(doc)) {
426
- throw new Error("doc is valid.");
427
- }
428
- const objectType = Object.prototype.toString.call(doc);
429
- if (objectType !== "[object Object]") {
430
- return `Unexpected doc '${objectType}'.`;
431
- }
432
- const EXPECTED_TYPE_VALUES = disjunctionListFormat([...VALID_OBJECT_DOC_TYPES].map((type2) => `'${type2}'`));
433
- return `Unexpected doc.type '${doc.type}'.
434
- Expected it to be ${EXPECTED_TYPE_VALUES}.`;
435
- }
436
- var InvalidDocError = class extends Error {
437
- constructor(doc) {
438
- super(getDocErrorMessage(doc));
439
- __publicField(this, "name", "InvalidDocError");
440
- this.doc = doc;
441
- }
442
- };
443
- var invalid_doc_error_default = InvalidDocError;
444
-
445
- // src/document/utils/traverse-doc.js
446
- var traverseDocOnExitStackMarker = {};
447
- function traverseDoc(doc, onEnter, onExit, shouldTraverseConditionalGroups) {
448
- const docsStack = [doc];
449
- while (docsStack.length > 0) {
450
- const doc2 = docsStack.pop();
451
- if (doc2 === traverseDocOnExitStackMarker) {
452
- onExit(docsStack.pop());
453
- continue;
454
- }
455
- if (onExit) {
456
- docsStack.push(doc2, traverseDocOnExitStackMarker);
457
- }
458
- if ((onEnter == null ? void 0 : onEnter(doc2)) === false) {
459
- continue;
460
- }
461
- const docType = get_doc_type_default(doc2);
462
- switch (docType) {
463
- case DOC_TYPE_ARRAY:
464
- case DOC_TYPE_FILL: {
465
- const parts = docType === DOC_TYPE_ARRAY ? doc2 : doc2.parts;
466
- for (let ic = parts.length, i = ic - 1; i >= 0; --i) {
467
- docsStack.push(parts[i]);
468
- }
469
- break;
470
- }
471
- case DOC_TYPE_IF_BREAK:
472
- if (doc2.flatContents) {
473
- docsStack.push(doc2.flatContents);
474
- }
475
- if (doc2.breakContents) {
476
- docsStack.push(doc2.breakContents);
477
- }
478
- break;
479
- case DOC_TYPE_GROUP:
480
- if (shouldTraverseConditionalGroups && doc2.expandedStates) {
481
- for (let ic = doc2.expandedStates.length, i = ic - 1; i >= 0; --i) {
482
- docsStack.push(doc2.expandedStates[i]);
483
- }
484
- } else {
485
- docsStack.push(doc2.contents);
486
- }
487
- break;
488
- case DOC_TYPE_ALIGN:
489
- case DOC_TYPE_INDENT:
490
- case DOC_TYPE_INDENT_IF_BREAK:
491
- case DOC_TYPE_LABEL:
492
- case DOC_TYPE_LINE_SUFFIX:
493
- docsStack.push(doc2.contents);
494
- break;
495
- case DOC_TYPE_STRING:
496
- case DOC_TYPE_CURSOR:
497
- case DOC_TYPE_TRIM:
498
- case DOC_TYPE_LINE_SUFFIX_BOUNDARY:
499
- case DOC_TYPE_LINE:
500
- case DOC_TYPE_BREAK_PARENT:
501
- break;
502
- default:
503
- throw new invalid_doc_error_default(doc2);
504
- }
505
- }
506
- }
507
- var traverse_doc_default = traverseDoc;
508
-
509
468
  // src/document/utils.js
510
469
  var getDocParts = (doc) => {
511
470
  if (Array.isArray(doc)) {
@@ -539,19 +498,12 @@ Expected it to be ${EXPECTED_TYPE_VALUES}.`;
539
498
  ...doc2,
540
499
  parts: doc2.parts.map(rec)
541
500
  });
542
- case DOC_TYPE_IF_BREAK: {
543
- let {
544
- breakContents,
545
- flatContents
546
- } = doc2;
547
- breakContents && (breakContents = rec(breakContents));
548
- flatContents && (flatContents = rec(flatContents));
501
+ case DOC_TYPE_IF_BREAK:
549
502
  return cb({
550
503
  ...doc2,
551
- breakContents,
552
- flatContents
504
+ breakContents: rec(doc2.breakContents),
505
+ flatContents: rec(doc2.flatContents)
553
506
  });
554
- }
555
507
  case DOC_TYPE_GROUP: {
556
508
  let {
557
509
  expandedStates,
@@ -622,7 +574,12 @@ Expected it to be ${EXPECTED_TYPE_VALUES}.`;
622
574
  }
623
575
  function breakParentGroup(groupStack) {
624
576
  if (groupStack.length > 0) {
625
- const parentGroup = at_default(false, groupStack, -1);
577
+ const parentGroup = at_default(
578
+ /* isOptionalObject*/
579
+ false,
580
+ groupStack,
581
+ -1
582
+ );
626
583
  if (!parentGroup.expandedStates && !parentGroup.break) {
627
584
  parentGroup.break = "propagated";
628
585
  }
@@ -656,6 +613,7 @@ Expected it to be ${EXPECTED_TYPE_VALUES}.`;
656
613
  doc,
657
614
  propagateBreaksOnEnterFn,
658
615
  propagateBreaksOnExitFn,
616
+ /* shouldTraverseConditionalGroups */
659
617
  true
660
618
  );
661
619
  }
@@ -664,62 +622,81 @@ Expected it to be ${EXPECTED_TYPE_VALUES}.`;
664
622
  return doc.soft ? "" : " ";
665
623
  }
666
624
  if (doc.type === DOC_TYPE_IF_BREAK) {
667
- return doc.flatContents || "";
625
+ return doc.flatContents;
668
626
  }
669
627
  return doc;
670
628
  }
671
629
  function removeLines(doc) {
672
630
  return mapDoc(doc, removeLinesFn);
673
631
  }
674
- var isHardline = (doc, nextDoc) => doc && doc.type === DOC_TYPE_LINE && doc.hard && nextDoc && nextDoc.type === DOC_TYPE_BREAK_PARENT;
675
- function stripDocTrailingHardlineFromDoc(doc) {
676
- if (!doc) {
677
- return doc;
678
- }
679
- if (Array.isArray(doc) || doc.type === DOC_TYPE_FILL) {
680
- const parts = getDocParts(doc);
681
- while (parts.length > 1 && isHardline(...parts.slice(-2))) {
682
- parts.length -= 2;
683
- }
684
- if (parts.length > 0) {
685
- const lastPart = stripDocTrailingHardlineFromDoc(at_default(false, parts, -1));
686
- parts[parts.length - 1] = lastPart;
687
- }
688
- return Array.isArray(doc) ? parts : {
689
- ...doc,
690
- parts
691
- };
692
- }
693
- switch (doc.type) {
632
+ function stripTrailingHardlineFromParts(parts) {
633
+ parts = [...parts];
634
+ while (parts.length >= 2 && at_default(
635
+ /* isOptionalObject*/
636
+ false,
637
+ parts,
638
+ -2
639
+ ).type === DOC_TYPE_LINE && at_default(
640
+ /* isOptionalObject*/
641
+ false,
642
+ parts,
643
+ -1
644
+ ).type === DOC_TYPE_BREAK_PARENT) {
645
+ parts.length -= 2;
646
+ }
647
+ if (parts.length > 0) {
648
+ const lastPart = stripTrailingHardlineFromDoc(at_default(
649
+ /* isOptionalObject*/
650
+ false,
651
+ parts,
652
+ -1
653
+ ));
654
+ parts[parts.length - 1] = lastPart;
655
+ }
656
+ return parts;
657
+ }
658
+ function stripTrailingHardlineFromDoc(doc) {
659
+ switch (get_doc_type_default(doc)) {
694
660
  case DOC_TYPE_ALIGN:
695
661
  case DOC_TYPE_INDENT:
696
662
  case DOC_TYPE_INDENT_IF_BREAK:
697
663
  case DOC_TYPE_GROUP:
698
664
  case DOC_TYPE_LINE_SUFFIX:
699
665
  case DOC_TYPE_LABEL: {
700
- const contents = stripDocTrailingHardlineFromDoc(doc.contents);
666
+ const contents = stripTrailingHardlineFromDoc(doc.contents);
701
667
  return {
702
668
  ...doc,
703
669
  contents
704
670
  };
705
671
  }
706
- case DOC_TYPE_IF_BREAK: {
707
- const breakContents = stripDocTrailingHardlineFromDoc(doc.breakContents);
708
- const flatContents = stripDocTrailingHardlineFromDoc(doc.flatContents);
672
+ case DOC_TYPE_IF_BREAK:
709
673
  return {
710
674
  ...doc,
711
- breakContents,
712
- flatContents
675
+ breakContents: stripTrailingHardlineFromDoc(doc.breakContents),
676
+ flatContents: stripTrailingHardlineFromDoc(doc.flatContents)
713
677
  };
714
- }
678
+ case DOC_TYPE_FILL:
679
+ return {
680
+ ...doc,
681
+ parts: stripTrailingHardlineFromParts(doc.parts)
682
+ };
683
+ case DOC_TYPE_ARRAY:
684
+ return stripTrailingHardlineFromParts(doc);
685
+ case DOC_TYPE_STRING:
686
+ return doc.replace(/[\n\r]*$/, "");
687
+ case DOC_TYPE_CURSOR:
688
+ case DOC_TYPE_TRIM:
689
+ case DOC_TYPE_LINE_SUFFIX_BOUNDARY:
690
+ case DOC_TYPE_LINE:
691
+ case DOC_TYPE_BREAK_PARENT:
692
+ break;
693
+ default:
694
+ throw new invalid_doc_error_default(doc);
715
695
  }
716
696
  return doc;
717
697
  }
718
698
  function stripTrailingHardline(doc) {
719
- if (typeof doc === "string") {
720
- return doc.replace(/(?:\r?\n)*$/, "");
721
- }
722
- return stripDocTrailingHardlineFromDoc(cleanDoc(doc));
699
+ return stripTrailingHardlineFromDoc(cleanDoc(doc));
723
700
  }
724
701
  function cleanDocFn(doc) {
725
702
  switch (get_doc_type_default(doc)) {
@@ -756,7 +733,12 @@ Expected it to be ${EXPECTED_TYPE_VALUES}.`;
756
733
  continue;
757
734
  }
758
735
  const [currentPart, ...restParts] = Array.isArray(part) ? part : [part];
759
- if (typeof currentPart === "string" && typeof at_default(false, parts, -1) === "string") {
736
+ if (typeof currentPart === "string" && typeof at_default(
737
+ /* isOptionalObject*/
738
+ false,
739
+ parts,
740
+ -1
741
+ ) === "string") {
760
742
  parts[parts.length - 1] += currentPart;
761
743
  } else {
762
744
  parts.push(currentPart);
@@ -787,40 +769,6 @@ Expected it to be ${EXPECTED_TYPE_VALUES}.`;
787
769
  function cleanDoc(doc) {
788
770
  return mapDoc(doc, (currentDoc) => cleanDocFn(currentDoc));
789
771
  }
790
- function normalizeParts(parts) {
791
- const newParts = [];
792
- const restParts = parts.filter(Boolean);
793
- while (restParts.length > 0) {
794
- const part = restParts.shift();
795
- if (!part) {
796
- continue;
797
- }
798
- if (Array.isArray(part)) {
799
- restParts.unshift(...part);
800
- continue;
801
- }
802
- if (newParts.length > 0 && typeof at_default(false, newParts, -1) === "string" && typeof part === "string") {
803
- newParts[newParts.length - 1] += part;
804
- continue;
805
- }
806
- newParts.push(part);
807
- }
808
- return newParts;
809
- }
810
- function normalizeDoc(doc) {
811
- return mapDoc(doc, (currentDoc) => {
812
- if (Array.isArray(currentDoc)) {
813
- return normalizeParts(currentDoc);
814
- }
815
- if (!currentDoc.parts) {
816
- return currentDoc;
817
- }
818
- return {
819
- ...currentDoc,
820
- parts: normalizeParts(currentDoc.parts)
821
- };
822
- });
823
- }
824
772
  function replaceEndOfLine(doc, replacement = literalline) {
825
773
  return mapDoc(doc, (currentDoc) => typeof currentDoc === "string" ? join(replacement, currentDoc.split("\n")) : currentDoc);
826
774
  }
@@ -974,6 +922,9 @@ Expected it to be ${EXPECTED_TYPE_VALUES}.`;
974
922
  return trimCount;
975
923
  }
976
924
  function fits(next, restCommands, width, hasLineSuffix, groupModeMap, mustBeFlat) {
925
+ if (width === Number.POSITIVE_INFINITY) {
926
+ return true;
927
+ }
977
928
  let restIdx = restCommands.length;
978
929
  const cmds = [next];
979
930
  const out = [];
@@ -1022,7 +973,12 @@ Expected it to be ${EXPECTED_TYPE_VALUES}.`;
1022
973
  return false;
1023
974
  }
1024
975
  const groupMode = doc.break ? MODE_BREAK : mode;
1025
- const contents = doc.expandedStates && groupMode === MODE_BREAK ? at_default(false, doc.expandedStates, -1) : doc.contents;
976
+ const contents = doc.expandedStates && groupMode === MODE_BREAK ? at_default(
977
+ /* isOptionalObject*/
978
+ false,
979
+ doc.expandedStates,
980
+ -1
981
+ ) : doc.contents;
1026
982
  cmds.push({
1027
983
  mode: groupMode,
1028
984
  doc: contents
@@ -1075,6 +1031,7 @@ Expected it to be ${EXPECTED_TYPE_VALUES}.`;
1075
1031
  let shouldRemeasure = false;
1076
1032
  const lineSuffix2 = [];
1077
1033
  let printedCursorCount = 0;
1034
+ propagateBreaks(doc);
1078
1035
  while (cmds.length > 0) {
1079
1036
  const {
1080
1037
  ind,
@@ -1083,9 +1040,17 @@ Expected it to be ${EXPECTED_TYPE_VALUES}.`;
1083
1040
  } = cmds.pop();
1084
1041
  switch (get_doc_type_default(doc2)) {
1085
1042
  case DOC_TYPE_STRING: {
1086
- const formatted = newLine !== "\n" ? doc2.replace(/\n/g, newLine) : doc2;
1043
+ const formatted = newLine !== "\n" ? string_replace_all_default(
1044
+ /* isOptionalObject*/
1045
+ false,
1046
+ doc2,
1047
+ "\n",
1048
+ newLine
1049
+ ) : doc2;
1087
1050
  out.push(formatted);
1088
- pos += get_string_width_default(formatted);
1051
+ if (cmds.length > 0) {
1052
+ pos += get_string_width_default(formatted);
1053
+ }
1089
1054
  break;
1090
1055
  }
1091
1056
  case DOC_TYPE_ARRAY:
@@ -1145,7 +1110,12 @@ Expected it to be ${EXPECTED_TYPE_VALUES}.`;
1145
1110
  cmds.push(next);
1146
1111
  } else {
1147
1112
  if (doc2.expandedStates) {
1148
- const mostExpanded = at_default(false, doc2.expandedStates, -1);
1113
+ const mostExpanded = at_default(
1114
+ /* isOptionalObject*/
1115
+ false,
1116
+ doc2.expandedStates,
1117
+ -1
1118
+ );
1149
1119
  if (doc2.break) {
1150
1120
  cmds.push({
1151
1121
  ind,
@@ -1188,7 +1158,12 @@ Expected it to be ${EXPECTED_TYPE_VALUES}.`;
1188
1158
  }
1189
1159
  }
1190
1160
  if (doc2.id) {
1191
- groupModeMap[doc2.id] = at_default(false, cmds, -1).mode;
1161
+ groupModeMap[doc2.id] = at_default(
1162
+ /* isOptionalObject*/
1163
+ false,
1164
+ cmds,
1165
+ -1
1166
+ ).mode;
1192
1167
  }
1193
1168
  break;
1194
1169
  case DOC_TYPE_FILL: {
@@ -1372,148 +1347,45 @@ Expected it to be ${EXPECTED_TYPE_VALUES}.`;
1372
1347
  };
1373
1348
  }
1374
1349
 
1375
- // src/document/debug.js
1376
- var debug_exports = {};
1377
- __export(debug_exports, {
1378
- printDocToDebug: () => printDocToDebug
1379
- });
1380
- init_define_process();
1381
- function flattenDoc(doc) {
1382
- if (!doc) {
1383
- return "";
1384
- }
1385
- if (Array.isArray(doc)) {
1386
- const res = [];
1387
- for (const part of doc) {
1388
- if (Array.isArray(part)) {
1389
- res.push(...flattenDoc(part));
1390
- } else {
1391
- const flattened = flattenDoc(part);
1392
- if (flattened !== "") {
1393
- res.push(flattened);
1394
- }
1395
- }
1396
- }
1397
- return res;
1398
- }
1399
- if (doc.type === DOC_TYPE_IF_BREAK) {
1400
- return {
1401
- ...doc,
1402
- breakContents: flattenDoc(doc.breakContents),
1403
- flatContents: flattenDoc(doc.flatContents)
1404
- };
1405
- }
1406
- if (doc.type === DOC_TYPE_GROUP) {
1407
- return {
1408
- ...doc,
1409
- contents: flattenDoc(doc.contents),
1410
- expandedStates: doc.expandedStates && doc.expandedStates.map(flattenDoc)
1411
- };
1412
- }
1413
- if (doc.type === DOC_TYPE_FILL) {
1414
- return { type: "fill", parts: doc.parts.map(flattenDoc) };
1415
- }
1416
- if (doc.contents) {
1417
- return { ...doc, contents: flattenDoc(doc.contents) };
1418
- }
1419
- return doc;
1420
- }
1421
- function printDocToDebug(doc) {
1422
- const printedSymbols = /* @__PURE__ */ Object.create(null);
1423
- const usedKeysForSymbols = /* @__PURE__ */ new Set();
1424
- return printDoc(flattenDoc(doc));
1425
- function printDoc(doc2, index, parentParts) {
1426
- if (typeof doc2 === "string") {
1427
- return JSON.stringify(doc2);
1428
- }
1429
- if (Array.isArray(doc2)) {
1430
- const printed = doc2.map(printDoc).filter(Boolean);
1431
- return printed.length === 1 ? printed[0] : `[${printed.join(", ")}]`;
1432
- }
1433
- if (doc2.type === DOC_TYPE_LINE) {
1434
- const withBreakParent = Array.isArray(parentParts) && parentParts[index + 1] && parentParts[index + 1].type === DOC_TYPE_BREAK_PARENT;
1435
- if (doc2.literal) {
1436
- return withBreakParent ? "literalline" : "literallineWithoutBreakParent";
1437
- }
1438
- if (doc2.hard) {
1439
- return withBreakParent ? "hardline" : "hardlineWithoutBreakParent";
1440
- }
1441
- if (doc2.soft) {
1442
- return "softline";
1443
- }
1444
- return "line";
1445
- }
1446
- if (doc2.type === DOC_TYPE_BREAK_PARENT) {
1447
- const afterHardline = Array.isArray(parentParts) && parentParts[index - 1] && parentParts[index - 1].type === DOC_TYPE_LINE && parentParts[index - 1].hard;
1448
- return afterHardline ? void 0 : "breakParent";
1449
- }
1450
- if (doc2.type === DOC_TYPE_TRIM) {
1451
- return "trim";
1452
- }
1453
- if (doc2.type === DOC_TYPE_INDENT) {
1454
- return "indent(" + printDoc(doc2.contents) + ")";
1455
- }
1456
- if (doc2.type === DOC_TYPE_ALIGN) {
1457
- return doc2.n === Number.NEGATIVE_INFINITY ? "dedentToRoot(" + printDoc(doc2.contents) + ")" : doc2.n < 0 ? "dedent(" + printDoc(doc2.contents) + ")" : doc2.n.type === "root" ? "markAsRoot(" + printDoc(doc2.contents) + ")" : "align(" + JSON.stringify(doc2.n) + ", " + printDoc(doc2.contents) + ")";
1458
- }
1459
- if (doc2.type === DOC_TYPE_IF_BREAK) {
1460
- return "ifBreak(" + printDoc(doc2.breakContents) + (doc2.flatContents ? ", " + printDoc(doc2.flatContents) : "") + (doc2.groupId ? (!doc2.flatContents ? ', ""' : "") + `, { groupId: ${printGroupId(doc2.groupId)} }` : "") + ")";
1461
- }
1462
- if (doc2.type === DOC_TYPE_INDENT_IF_BREAK) {
1463
- const optionsParts = [];
1464
- if (doc2.negate) {
1465
- optionsParts.push("negate: true");
1466
- }
1467
- if (doc2.groupId) {
1468
- optionsParts.push(`groupId: ${printGroupId(doc2.groupId)}`);
1469
- }
1470
- const options = optionsParts.length > 0 ? `, { ${optionsParts.join(", ")} }` : "";
1471
- return `indentIfBreak(${printDoc(doc2.contents)}${options})`;
1472
- }
1473
- if (doc2.type === DOC_TYPE_GROUP) {
1474
- const optionsParts = [];
1475
- if (doc2.break && doc2.break !== "propagated") {
1476
- optionsParts.push("shouldBreak: true");
1477
- }
1478
- if (doc2.id) {
1479
- optionsParts.push(`id: ${printGroupId(doc2.id)}`);
1480
- }
1481
- const options = optionsParts.length > 0 ? `, { ${optionsParts.join(", ")} }` : "";
1482
- if (doc2.expandedStates) {
1483
- return `conditionalGroup([${doc2.expandedStates.map((part) => printDoc(part)).join(",")}]${options})`;
1484
- }
1485
- return `group(${printDoc(doc2.contents)}${options})`;
1486
- }
1487
- if (doc2.type === DOC_TYPE_FILL) {
1488
- return `fill([${doc2.parts.map((part) => printDoc(part)).join(", ")}])`;
1489
- }
1490
- if (doc2.type === DOC_TYPE_LINE_SUFFIX) {
1491
- return "lineSuffix(" + printDoc(doc2.contents) + ")";
1492
- }
1493
- if (doc2.type === DOC_TYPE_LINE_SUFFIX_BOUNDARY) {
1494
- return "lineSuffixBoundary";
1495
- }
1496
- if (doc2.type === DOC_TYPE_LABEL) {
1497
- return `label(${JSON.stringify(doc2.label)}, ${printDoc(doc2.contents)})`;
1498
- }
1499
- throw new Error("Unknown doc type " + doc2.type);
1500
- }
1501
- function printGroupId(id) {
1502
- if (typeof id !== "symbol") {
1503
- return JSON.stringify(String(id));
1504
- }
1505
- if (id in printedSymbols) {
1506
- return printedSymbols[id];
1507
- }
1508
- const prefix = id.description || "symbol";
1509
- for (let counter = 0; ; counter++) {
1510
- const key = prefix + (counter > 0 ? ` #${counter}` : "");
1511
- if (!usedKeysForSymbols.has(key)) {
1512
- usedKeysForSymbols.add(key);
1513
- return printedSymbols[id] = `Symbol.for(${JSON.stringify(key)})`;
1514
- }
1515
- }
1516
- }
1517
- }
1518
- return __toCommonJS(document_exports);
1350
+ // src/document/public.js
1351
+ var builders = {
1352
+ join,
1353
+ line,
1354
+ softline,
1355
+ hardline,
1356
+ literalline,
1357
+ group,
1358
+ conditionalGroup,
1359
+ fill,
1360
+ lineSuffix,
1361
+ lineSuffixBoundary,
1362
+ cursor,
1363
+ breakParent,
1364
+ ifBreak,
1365
+ trim,
1366
+ indent,
1367
+ indentIfBreak,
1368
+ align,
1369
+ addAlignmentToDoc,
1370
+ markAsRoot,
1371
+ dedentToRoot,
1372
+ dedent,
1373
+ hardlineWithoutBreakParent,
1374
+ literallineWithoutBreakParent,
1375
+ label,
1376
+ // TODO: Remove this in v4
1377
+ concat: (parts) => parts
1378
+ };
1379
+ var printer = { printDocToString };
1380
+ var utils = {
1381
+ willBreak,
1382
+ traverseDoc: traverse_doc_default,
1383
+ findInDoc,
1384
+ mapDoc,
1385
+ removeLines,
1386
+ stripTrailingHardline,
1387
+ replaceEndOfLine,
1388
+ canBreak
1389
+ };
1390
+ return __toCommonJS(public_exports);
1519
1391
  });