@typespec/prettier-plugin-typespec 0.47.0-dev.0 → 0.47.0-dev.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ThirdPartyNotices.txt +5158 -0
- package/dist/index.js +2518 -1157
- package/dist/index.js.map +1 -1
- package/package.json +4 -3
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../compiler/dist/src/core/nonascii.js","../../compiler/dist/src/core/charcode.js","../../compiler/dist/src/core/types.js","../../compiler/dist/src/core/library.js","../../compiler/dist/src/core/messages.js","../../compiler/dist/src/core/diagnostics.js","../../compiler/dist/src/core/scanner.js","../../compiler/dist/src/formatter/print/comment-handler.js","../../compiler/dist/src/formatter/print/needs-parens.js","../../compiler/dist/src/formatter/print/printer.js","../../compiler/dist/src/core/util.js","../../compiler/dist/src/core/parser.js","../../compiler/dist/src/formatter/parser.js","../../compiler/dist/src/formatter/index.js","../../compiler/dist/src/index.js","../src/index.mjs"],"sourcesContent":["//\n// Generated by scripts/regen-nonascii-map.js\n// on node v18.16.0 with unicode 15.0.\n//\n/**\n * @internal\n *\n * Map of non-ascii characters that are valid in an identifier. Each pair of\n * numbers represents an inclusive range of code points.\n */\n//prettier-ignore\nexport const nonAsciiIdentifierMap = [\n 0xa0, 0x377,\n 0x37a, 0x37f,\n 0x384, 0x38a,\n 0x38c, 0x38c,\n 0x38e, 0x3a1,\n 0x3a3, 0x52f,\n 0x531, 0x556,\n 0x559, 0x58a,\n 0x58d, 0x58f,\n 0x591, 0x5c7,\n 0x5d0, 0x5ea,\n 0x5ef, 0x5f4,\n 0x600, 0x70d,\n 0x70f, 0x74a,\n 0x74d, 0x7b1,\n 0x7c0, 0x7fa,\n 0x7fd, 0x82d,\n 0x830, 0x83e,\n 0x840, 0x85b,\n 0x85e, 0x85e,\n 0x860, 0x86a,\n 0x870, 0x88e,\n 0x890, 0x891,\n 0x898, 0x983,\n 0x985, 0x98c,\n 0x98f, 0x990,\n 0x993, 0x9a8,\n 0x9aa, 0x9b0,\n 0x9b2, 0x9b2,\n 0x9b6, 0x9b9,\n 0x9bc, 0x9c4,\n 0x9c7, 0x9c8,\n 0x9cb, 0x9ce,\n 0x9d7, 0x9d7,\n 0x9dc, 0x9dd,\n 0x9df, 0x9e3,\n 0x9e6, 0x9fe,\n 0xa01, 0xa03,\n 0xa05, 0xa0a,\n 0xa0f, 0xa10,\n 0xa13, 0xa28,\n 0xa2a, 0xa30,\n 0xa32, 0xa33,\n 0xa35, 0xa36,\n 0xa38, 0xa39,\n 0xa3c, 0xa3c,\n 0xa3e, 0xa42,\n 0xa47, 0xa48,\n 0xa4b, 0xa4d,\n 0xa51, 0xa51,\n 0xa59, 0xa5c,\n 0xa5e, 0xa5e,\n 0xa66, 0xa76,\n 0xa81, 0xa83,\n 0xa85, 0xa8d,\n 0xa8f, 0xa91,\n 0xa93, 0xaa8,\n 0xaaa, 0xab0,\n 0xab2, 0xab3,\n 0xab5, 0xab9,\n 0xabc, 0xac5,\n 0xac7, 0xac9,\n 0xacb, 0xacd,\n 0xad0, 0xad0,\n 0xae0, 0xae3,\n 0xae6, 0xaf1,\n 0xaf9, 0xaff,\n 0xb01, 0xb03,\n 0xb05, 0xb0c,\n 0xb0f, 0xb10,\n 0xb13, 0xb28,\n 0xb2a, 0xb30,\n 0xb32, 0xb33,\n 0xb35, 0xb39,\n 0xb3c, 0xb44,\n 0xb47, 0xb48,\n 0xb4b, 0xb4d,\n 0xb55, 0xb57,\n 0xb5c, 0xb5d,\n 0xb5f, 0xb63,\n 0xb66, 0xb77,\n 0xb82, 0xb83,\n 0xb85, 0xb8a,\n 0xb8e, 0xb90,\n 0xb92, 0xb95,\n 0xb99, 0xb9a,\n 0xb9c, 0xb9c,\n 0xb9e, 0xb9f,\n 0xba3, 0xba4,\n 0xba8, 0xbaa,\n 0xbae, 0xbb9,\n 0xbbe, 0xbc2,\n 0xbc6, 0xbc8,\n 0xbca, 0xbcd,\n 0xbd0, 0xbd0,\n 0xbd7, 0xbd7,\n 0xbe6, 0xbfa,\n 0xc00, 0xc0c,\n 0xc0e, 0xc10,\n 0xc12, 0xc28,\n 0xc2a, 0xc39,\n 0xc3c, 0xc44,\n 0xc46, 0xc48,\n 0xc4a, 0xc4d,\n 0xc55, 0xc56,\n 0xc58, 0xc5a,\n 0xc5d, 0xc5d,\n 0xc60, 0xc63,\n 0xc66, 0xc6f,\n 0xc77, 0xc8c,\n 0xc8e, 0xc90,\n 0xc92, 0xca8,\n 0xcaa, 0xcb3,\n 0xcb5, 0xcb9,\n 0xcbc, 0xcc4,\n 0xcc6, 0xcc8,\n 0xcca, 0xccd,\n 0xcd5, 0xcd6,\n 0xcdd, 0xcde,\n 0xce0, 0xce3,\n 0xce6, 0xcef,\n 0xcf1, 0xcf3,\n 0xd00, 0xd0c,\n 0xd0e, 0xd10,\n 0xd12, 0xd44,\n 0xd46, 0xd48,\n 0xd4a, 0xd4f,\n 0xd54, 0xd63,\n 0xd66, 0xd7f,\n 0xd81, 0xd83,\n 0xd85, 0xd96,\n 0xd9a, 0xdb1,\n 0xdb3, 0xdbb,\n 0xdbd, 0xdbd,\n 0xdc0, 0xdc6,\n 0xdca, 0xdca,\n 0xdcf, 0xdd4,\n 0xdd6, 0xdd6,\n 0xdd8, 0xddf,\n 0xde6, 0xdef,\n 0xdf2, 0xdf4,\n 0xe01, 0xe3a,\n 0xe3f, 0xe5b,\n 0xe81, 0xe82,\n 0xe84, 0xe84,\n 0xe86, 0xe8a,\n 0xe8c, 0xea3,\n 0xea5, 0xea5,\n 0xea7, 0xebd,\n 0xec0, 0xec4,\n 0xec6, 0xec6,\n 0xec8, 0xece,\n 0xed0, 0xed9,\n 0xedc, 0xedf,\n 0xf00, 0xf47,\n 0xf49, 0xf6c,\n 0xf71, 0xf97,\n 0xf99, 0xfbc,\n 0xfbe, 0xfcc,\n 0xfce, 0xfda,\n 0x1000, 0x10c5,\n 0x10c7, 0x10c7,\n 0x10cd, 0x10cd,\n 0x10d0, 0x1248,\n 0x124a, 0x124d,\n 0x1250, 0x1256,\n 0x1258, 0x1258,\n 0x125a, 0x125d,\n 0x1260, 0x1288,\n 0x128a, 0x128d,\n 0x1290, 0x12b0,\n 0x12b2, 0x12b5,\n 0x12b8, 0x12be,\n 0x12c0, 0x12c0,\n 0x12c2, 0x12c5,\n 0x12c8, 0x12d6,\n 0x12d8, 0x1310,\n 0x1312, 0x1315,\n 0x1318, 0x135a,\n 0x135d, 0x137c,\n 0x1380, 0x1399,\n 0x13a0, 0x13f5,\n 0x13f8, 0x13fd,\n 0x1400, 0x169c,\n 0x16a0, 0x16f8,\n 0x1700, 0x1715,\n 0x171f, 0x1736,\n 0x1740, 0x1753,\n 0x1760, 0x176c,\n 0x176e, 0x1770,\n 0x1772, 0x1773,\n 0x1780, 0x17dd,\n 0x17e0, 0x17e9,\n 0x17f0, 0x17f9,\n 0x1800, 0x1819,\n 0x1820, 0x1878,\n 0x1880, 0x18aa,\n 0x18b0, 0x18f5,\n 0x1900, 0x191e,\n 0x1920, 0x192b,\n 0x1930, 0x193b,\n 0x1940, 0x1940,\n 0x1944, 0x196d,\n 0x1970, 0x1974,\n 0x1980, 0x19ab,\n 0x19b0, 0x19c9,\n 0x19d0, 0x19da,\n 0x19de, 0x1a1b,\n 0x1a1e, 0x1a5e,\n 0x1a60, 0x1a7c,\n 0x1a7f, 0x1a89,\n 0x1a90, 0x1a99,\n 0x1aa0, 0x1aad,\n 0x1ab0, 0x1ace,\n 0x1b00, 0x1b4c,\n 0x1b50, 0x1b7e,\n 0x1b80, 0x1bf3,\n 0x1bfc, 0x1c37,\n 0x1c3b, 0x1c49,\n 0x1c4d, 0x1c88,\n 0x1c90, 0x1cba,\n 0x1cbd, 0x1cc7,\n 0x1cd0, 0x1cfa,\n 0x1d00, 0x1f15,\n 0x1f18, 0x1f1d,\n 0x1f20, 0x1f45,\n 0x1f48, 0x1f4d,\n 0x1f50, 0x1f57,\n 0x1f59, 0x1f59,\n 0x1f5b, 0x1f5b,\n 0x1f5d, 0x1f5d,\n 0x1f5f, 0x1f7d,\n 0x1f80, 0x1fb4,\n 0x1fb6, 0x1fc4,\n 0x1fc6, 0x1fd3,\n 0x1fd6, 0x1fdb,\n 0x1fdd, 0x1fef,\n 0x1ff2, 0x1ff4,\n 0x1ff6, 0x1ffe,\n 0x2000, 0x200d,\n 0x2010, 0x2027,\n 0x202a, 0x2064,\n 0x2066, 0x2071,\n 0x2074, 0x208e,\n 0x2090, 0x209c,\n 0x20a0, 0x20c0,\n 0x20d0, 0x20f0,\n 0x2100, 0x218b,\n 0x2190, 0x2426,\n 0x2440, 0x244a,\n 0x2460, 0x2b73,\n 0x2b76, 0x2b95,\n 0x2b97, 0x2cf3,\n 0x2cf9, 0x2d25,\n 0x2d27, 0x2d27,\n 0x2d2d, 0x2d2d,\n 0x2d30, 0x2d67,\n 0x2d6f, 0x2d70,\n 0x2d7f, 0x2d96,\n 0x2da0, 0x2da6,\n 0x2da8, 0x2dae,\n 0x2db0, 0x2db6,\n 0x2db8, 0x2dbe,\n 0x2dc0, 0x2dc6,\n 0x2dc8, 0x2dce,\n 0x2dd0, 0x2dd6,\n 0x2dd8, 0x2dde,\n 0x2de0, 0x2e5d,\n 0x2e80, 0x2e99,\n 0x2e9b, 0x2ef3,\n 0x2f00, 0x2fd5,\n 0x2ff0, 0x2ffb,\n 0x3000, 0x303f,\n 0x3041, 0x3096,\n 0x3099, 0x30ff,\n 0x3105, 0x312f,\n 0x3131, 0x318e,\n 0x3190, 0x31e3,\n 0x31f0, 0x321e,\n 0x3220, 0xa48c,\n 0xa490, 0xa4c6,\n 0xa4d0, 0xa62b,\n 0xa640, 0xa6f7,\n 0xa700, 0xa7ca,\n 0xa7d0, 0xa7d1,\n 0xa7d3, 0xa7d3,\n 0xa7d5, 0xa7d9,\n 0xa7f2, 0xa82c,\n 0xa830, 0xa839,\n 0xa840, 0xa877,\n 0xa880, 0xa8c5,\n 0xa8ce, 0xa8d9,\n 0xa8e0, 0xa953,\n 0xa95f, 0xa97c,\n 0xa980, 0xa9cd,\n 0xa9cf, 0xa9d9,\n 0xa9de, 0xa9fe,\n 0xaa00, 0xaa36,\n 0xaa40, 0xaa4d,\n 0xaa50, 0xaa59,\n 0xaa5c, 0xaac2,\n 0xaadb, 0xaaf6,\n 0xab01, 0xab06,\n 0xab09, 0xab0e,\n 0xab11, 0xab16,\n 0xab20, 0xab26,\n 0xab28, 0xab2e,\n 0xab30, 0xab6b,\n 0xab70, 0xabed,\n 0xabf0, 0xabf9,\n 0xac00, 0xd7a3,\n 0xd7b0, 0xd7c6,\n 0xd7cb, 0xd7fb,\n 0xf900, 0xfa6d,\n 0xfa70, 0xfad9,\n 0xfb00, 0xfb06,\n 0xfb13, 0xfb17,\n 0xfb1d, 0xfb36,\n 0xfb38, 0xfb3c,\n 0xfb3e, 0xfb3e,\n 0xfb40, 0xfb41,\n 0xfb43, 0xfb44,\n 0xfb46, 0xfbc2,\n 0xfbd3, 0xfd8f,\n 0xfd92, 0xfdc7,\n 0xfdcf, 0xfdcf,\n 0xfdf0, 0xfe19,\n 0xfe20, 0xfe52,\n 0xfe54, 0xfe66,\n 0xfe68, 0xfe6b,\n 0xfe70, 0xfe74,\n 0xfe76, 0xfefc,\n 0xfeff, 0xfeff,\n 0xff01, 0xffbe,\n 0xffc2, 0xffc7,\n 0xffca, 0xffcf,\n 0xffd2, 0xffd7,\n 0xffda, 0xffdc,\n 0xffe0, 0xffe6,\n 0xffe8, 0xffee,\n 0xfff9, 0xfffc,\n 0x10000, 0x1000b,\n 0x1000d, 0x10026,\n 0x10028, 0x1003a,\n 0x1003c, 0x1003d,\n 0x1003f, 0x1004d,\n 0x10050, 0x1005d,\n 0x10080, 0x100fa,\n 0x10100, 0x10102,\n 0x10107, 0x10133,\n 0x10137, 0x1018e,\n 0x10190, 0x1019c,\n 0x101a0, 0x101a0,\n 0x101d0, 0x101fd,\n 0x10280, 0x1029c,\n 0x102a0, 0x102d0,\n 0x102e0, 0x102fb,\n 0x10300, 0x10323,\n 0x1032d, 0x1034a,\n 0x10350, 0x1037a,\n 0x10380, 0x1039d,\n 0x1039f, 0x103c3,\n 0x103c8, 0x103d5,\n 0x10400, 0x1049d,\n 0x104a0, 0x104a9,\n 0x104b0, 0x104d3,\n 0x104d8, 0x104fb,\n 0x10500, 0x10527,\n 0x10530, 0x10563,\n 0x1056f, 0x1057a,\n 0x1057c, 0x1058a,\n 0x1058c, 0x10592,\n 0x10594, 0x10595,\n 0x10597, 0x105a1,\n 0x105a3, 0x105b1,\n 0x105b3, 0x105b9,\n 0x105bb, 0x105bc,\n 0x10600, 0x10736,\n 0x10740, 0x10755,\n 0x10760, 0x10767,\n 0x10780, 0x10785,\n 0x10787, 0x107b0,\n 0x107b2, 0x107ba,\n 0x10800, 0x10805,\n 0x10808, 0x10808,\n 0x1080a, 0x10835,\n 0x10837, 0x10838,\n 0x1083c, 0x1083c,\n 0x1083f, 0x10855,\n 0x10857, 0x1089e,\n 0x108a7, 0x108af,\n 0x108e0, 0x108f2,\n 0x108f4, 0x108f5,\n 0x108fb, 0x1091b,\n 0x1091f, 0x10939,\n 0x1093f, 0x1093f,\n 0x10980, 0x109b7,\n 0x109bc, 0x109cf,\n 0x109d2, 0x10a03,\n 0x10a05, 0x10a06,\n 0x10a0c, 0x10a13,\n 0x10a15, 0x10a17,\n 0x10a19, 0x10a35,\n 0x10a38, 0x10a3a,\n 0x10a3f, 0x10a48,\n 0x10a50, 0x10a58,\n 0x10a60, 0x10a9f,\n 0x10ac0, 0x10ae6,\n 0x10aeb, 0x10af6,\n 0x10b00, 0x10b35,\n 0x10b39, 0x10b55,\n 0x10b58, 0x10b72,\n 0x10b78, 0x10b91,\n 0x10b99, 0x10b9c,\n 0x10ba9, 0x10baf,\n 0x10c00, 0x10c48,\n 0x10c80, 0x10cb2,\n 0x10cc0, 0x10cf2,\n 0x10cfa, 0x10d27,\n 0x10d30, 0x10d39,\n 0x10e60, 0x10e7e,\n 0x10e80, 0x10ea9,\n 0x10eab, 0x10ead,\n 0x10eb0, 0x10eb1,\n 0x10efd, 0x10f27,\n 0x10f30, 0x10f59,\n 0x10f70, 0x10f89,\n 0x10fb0, 0x10fcb,\n 0x10fe0, 0x10ff6,\n 0x11000, 0x1104d,\n 0x11052, 0x11075,\n 0x1107f, 0x110c2,\n 0x110cd, 0x110cd,\n 0x110d0, 0x110e8,\n 0x110f0, 0x110f9,\n 0x11100, 0x11134,\n 0x11136, 0x11147,\n 0x11150, 0x11176,\n 0x11180, 0x111df,\n 0x111e1, 0x111f4,\n 0x11200, 0x11211,\n 0x11213, 0x11241,\n 0x11280, 0x11286,\n 0x11288, 0x11288,\n 0x1128a, 0x1128d,\n 0x1128f, 0x1129d,\n 0x1129f, 0x112a9,\n 0x112b0, 0x112ea,\n 0x112f0, 0x112f9,\n 0x11300, 0x11303,\n 0x11305, 0x1130c,\n 0x1130f, 0x11310,\n 0x11313, 0x11328,\n 0x1132a, 0x11330,\n 0x11332, 0x11333,\n 0x11335, 0x11339,\n 0x1133b, 0x11344,\n 0x11347, 0x11348,\n 0x1134b, 0x1134d,\n 0x11350, 0x11350,\n 0x11357, 0x11357,\n 0x1135d, 0x11363,\n 0x11366, 0x1136c,\n 0x11370, 0x11374,\n 0x11400, 0x1145b,\n 0x1145d, 0x11461,\n 0x11480, 0x114c7,\n 0x114d0, 0x114d9,\n 0x11580, 0x115b5,\n 0x115b8, 0x115dd,\n 0x11600, 0x11644,\n 0x11650, 0x11659,\n 0x11660, 0x1166c,\n 0x11680, 0x116b9,\n 0x116c0, 0x116c9,\n 0x11700, 0x1171a,\n 0x1171d, 0x1172b,\n 0x11730, 0x11746,\n 0x11800, 0x1183b,\n 0x118a0, 0x118f2,\n 0x118ff, 0x11906,\n 0x11909, 0x11909,\n 0x1190c, 0x11913,\n 0x11915, 0x11916,\n 0x11918, 0x11935,\n 0x11937, 0x11938,\n 0x1193b, 0x11946,\n 0x11950, 0x11959,\n 0x119a0, 0x119a7,\n 0x119aa, 0x119d7,\n 0x119da, 0x119e4,\n 0x11a00, 0x11a47,\n 0x11a50, 0x11aa2,\n 0x11ab0, 0x11af8,\n 0x11b00, 0x11b09,\n 0x11c00, 0x11c08,\n 0x11c0a, 0x11c36,\n 0x11c38, 0x11c45,\n 0x11c50, 0x11c6c,\n 0x11c70, 0x11c8f,\n 0x11c92, 0x11ca7,\n 0x11ca9, 0x11cb6,\n 0x11d00, 0x11d06,\n 0x11d08, 0x11d09,\n 0x11d0b, 0x11d36,\n 0x11d3a, 0x11d3a,\n 0x11d3c, 0x11d3d,\n 0x11d3f, 0x11d47,\n 0x11d50, 0x11d59,\n 0x11d60, 0x11d65,\n 0x11d67, 0x11d68,\n 0x11d6a, 0x11d8e,\n 0x11d90, 0x11d91,\n 0x11d93, 0x11d98,\n 0x11da0, 0x11da9,\n 0x11ee0, 0x11ef8,\n 0x11f00, 0x11f10,\n 0x11f12, 0x11f3a,\n 0x11f3e, 0x11f59,\n 0x11fb0, 0x11fb0,\n 0x11fc0, 0x11ff1,\n 0x11fff, 0x12399,\n 0x12400, 0x1246e,\n 0x12470, 0x12474,\n 0x12480, 0x12543,\n 0x12f90, 0x12ff2,\n 0x13000, 0x13455,\n 0x14400, 0x14646,\n 0x16800, 0x16a38,\n 0x16a40, 0x16a5e,\n 0x16a60, 0x16a69,\n 0x16a6e, 0x16abe,\n 0x16ac0, 0x16ac9,\n 0x16ad0, 0x16aed,\n 0x16af0, 0x16af5,\n 0x16b00, 0x16b45,\n 0x16b50, 0x16b59,\n 0x16b5b, 0x16b61,\n 0x16b63, 0x16b77,\n 0x16b7d, 0x16b8f,\n 0x16e40, 0x16e9a,\n 0x16f00, 0x16f4a,\n 0x16f4f, 0x16f87,\n 0x16f8f, 0x16f9f,\n 0x16fe0, 0x16fe4,\n 0x16ff0, 0x16ff1,\n 0x17000, 0x187f7,\n 0x18800, 0x18cd5,\n 0x18d00, 0x18d08,\n 0x1aff0, 0x1aff3,\n 0x1aff5, 0x1affb,\n 0x1affd, 0x1affe,\n 0x1b000, 0x1b122,\n 0x1b132, 0x1b132,\n 0x1b150, 0x1b152,\n 0x1b155, 0x1b155,\n 0x1b164, 0x1b167,\n 0x1b170, 0x1b2fb,\n 0x1bc00, 0x1bc6a,\n 0x1bc70, 0x1bc7c,\n 0x1bc80, 0x1bc88,\n 0x1bc90, 0x1bc99,\n 0x1bc9c, 0x1bca3,\n 0x1cf00, 0x1cf2d,\n 0x1cf30, 0x1cf46,\n 0x1cf50, 0x1cfc3,\n 0x1d000, 0x1d0f5,\n 0x1d100, 0x1d126,\n 0x1d129, 0x1d1ea,\n 0x1d200, 0x1d245,\n 0x1d2c0, 0x1d2d3,\n 0x1d2e0, 0x1d2f3,\n 0x1d300, 0x1d356,\n 0x1d360, 0x1d378,\n 0x1d400, 0x1d454,\n 0x1d456, 0x1d49c,\n 0x1d49e, 0x1d49f,\n 0x1d4a2, 0x1d4a2,\n 0x1d4a5, 0x1d4a6,\n 0x1d4a9, 0x1d4ac,\n 0x1d4ae, 0x1d4b9,\n 0x1d4bb, 0x1d4bb,\n 0x1d4bd, 0x1d4c3,\n 0x1d4c5, 0x1d505,\n 0x1d507, 0x1d50a,\n 0x1d50d, 0x1d514,\n 0x1d516, 0x1d51c,\n 0x1d51e, 0x1d539,\n 0x1d53b, 0x1d53e,\n 0x1d540, 0x1d544,\n 0x1d546, 0x1d546,\n 0x1d54a, 0x1d550,\n 0x1d552, 0x1d6a5,\n 0x1d6a8, 0x1d7cb,\n 0x1d7ce, 0x1da8b,\n 0x1da9b, 0x1da9f,\n 0x1daa1, 0x1daaf,\n 0x1df00, 0x1df1e,\n 0x1df25, 0x1df2a,\n 0x1e000, 0x1e006,\n 0x1e008, 0x1e018,\n 0x1e01b, 0x1e021,\n 0x1e023, 0x1e024,\n 0x1e026, 0x1e02a,\n 0x1e030, 0x1e06d,\n 0x1e08f, 0x1e08f,\n 0x1e100, 0x1e12c,\n 0x1e130, 0x1e13d,\n 0x1e140, 0x1e149,\n 0x1e14e, 0x1e14f,\n 0x1e290, 0x1e2ae,\n 0x1e2c0, 0x1e2f9,\n 0x1e2ff, 0x1e2ff,\n 0x1e4d0, 0x1e4f9,\n 0x1e7e0, 0x1e7e6,\n 0x1e7e8, 0x1e7eb,\n 0x1e7ed, 0x1e7ee,\n 0x1e7f0, 0x1e7fe,\n 0x1e800, 0x1e8c4,\n 0x1e8c7, 0x1e8d6,\n 0x1e900, 0x1e94b,\n 0x1e950, 0x1e959,\n 0x1e95e, 0x1e95f,\n 0x1ec71, 0x1ecb4,\n 0x1ed01, 0x1ed3d,\n 0x1ee00, 0x1ee03,\n 0x1ee05, 0x1ee1f,\n 0x1ee21, 0x1ee22,\n 0x1ee24, 0x1ee24,\n 0x1ee27, 0x1ee27,\n 0x1ee29, 0x1ee32,\n 0x1ee34, 0x1ee37,\n 0x1ee39, 0x1ee39,\n 0x1ee3b, 0x1ee3b,\n 0x1ee42, 0x1ee42,\n 0x1ee47, 0x1ee47,\n 0x1ee49, 0x1ee49,\n 0x1ee4b, 0x1ee4b,\n 0x1ee4d, 0x1ee4f,\n 0x1ee51, 0x1ee52,\n 0x1ee54, 0x1ee54,\n 0x1ee57, 0x1ee57,\n 0x1ee59, 0x1ee59,\n 0x1ee5b, 0x1ee5b,\n 0x1ee5d, 0x1ee5d,\n 0x1ee5f, 0x1ee5f,\n 0x1ee61, 0x1ee62,\n 0x1ee64, 0x1ee64,\n 0x1ee67, 0x1ee6a,\n 0x1ee6c, 0x1ee72,\n 0x1ee74, 0x1ee77,\n 0x1ee79, 0x1ee7c,\n 0x1ee7e, 0x1ee7e,\n 0x1ee80, 0x1ee89,\n 0x1ee8b, 0x1ee9b,\n 0x1eea1, 0x1eea3,\n 0x1eea5, 0x1eea9,\n 0x1eeab, 0x1eebb,\n 0x1eef0, 0x1eef1,\n 0x1f000, 0x1f02b,\n 0x1f030, 0x1f093,\n 0x1f0a0, 0x1f0ae,\n 0x1f0b1, 0x1f0bf,\n 0x1f0c1, 0x1f0cf,\n 0x1f0d1, 0x1f0f5,\n 0x1f100, 0x1f1ad,\n 0x1f1e6, 0x1f202,\n 0x1f210, 0x1f23b,\n 0x1f240, 0x1f248,\n 0x1f250, 0x1f251,\n 0x1f260, 0x1f265,\n 0x1f300, 0x1f6d7,\n 0x1f6dc, 0x1f6ec,\n 0x1f6f0, 0x1f6fc,\n 0x1f700, 0x1f776,\n 0x1f77b, 0x1f7d9,\n 0x1f7e0, 0x1f7eb,\n 0x1f7f0, 0x1f7f0,\n 0x1f800, 0x1f80b,\n 0x1f810, 0x1f847,\n 0x1f850, 0x1f859,\n 0x1f860, 0x1f887,\n 0x1f890, 0x1f8ad,\n 0x1f8b0, 0x1f8b1,\n 0x1f900, 0x1fa53,\n 0x1fa60, 0x1fa6d,\n 0x1fa70, 0x1fa7c,\n 0x1fa80, 0x1fa88,\n 0x1fa90, 0x1fabd,\n 0x1fabf, 0x1fac5,\n 0x1face, 0x1fadb,\n 0x1fae0, 0x1fae8,\n 0x1faf0, 0x1faf8,\n 0x1fb00, 0x1fb92,\n 0x1fb94, 0x1fbca,\n 0x1fbf0, 0x1fbf9,\n 0x20000, 0x2a6df,\n 0x2a700, 0x2b739,\n 0x2b740, 0x2b81d,\n 0x2b820, 0x2cea1,\n 0x2ceb0, 0x2ebe0,\n 0x2f800, 0x2fa1d,\n 0x30000, 0x3134a,\n 0x31350, 0x323af,\n 0xe0001, 0xe0001,\n 0xe0020, 0xe007f,\n 0xe0100, 0xe01ef,\n];\n//# sourceMappingURL=nonascii.js.map","import { nonAsciiIdentifierMap } from \"./nonascii.js\";\nexport function utf16CodeUnits(codePoint) {\n return codePoint >= 0x10000 ? 2 : 1;\n}\nexport function isHighSurrogate(ch) {\n return ch >= 0xd800 && ch <= 0xdbff;\n}\nexport function isLowSurrogate(ch) {\n return ch >= 0xdc00 && ch <= 0xdfff;\n}\nexport function isLineBreak(ch) {\n return ch === 10 /* CharCode.LineFeed */ || ch === 13 /* CharCode.CarriageReturn */;\n}\nexport function isAsciiWhiteSpaceSingleLine(ch) {\n return (ch === 32 /* CharCode.Space */ ||\n ch === 9 /* CharCode.Tab */ ||\n ch === 11 /* CharCode.VerticalTab */ ||\n ch === 12 /* CharCode.FormFeed */);\n}\nexport function isNonAsciiWhiteSpaceSingleLine(ch) {\n return (ch === 133 /* CharCode.NextLine */ || // not considered a line break\n ch === 8206 /* CharCode.LeftToRightMark */ ||\n ch === 8207 /* CharCode.RightToLeftMark */ ||\n ch === 8232 /* CharCode.LineSeparator */ ||\n ch === 8233 /* CharCode.ParagraphSeparator */);\n}\nexport function isWhiteSpace(ch) {\n return isWhiteSpaceSingleLine(ch) || isLineBreak(ch);\n}\nexport function isWhiteSpaceSingleLine(ch) {\n return (isAsciiWhiteSpaceSingleLine(ch) ||\n (ch > 127 /* CharCode.MaxAscii */ && isNonAsciiWhiteSpaceSingleLine(ch)));\n}\nexport function trim(str) {\n let start = 0;\n let end = str.length - 1;\n if (!isWhiteSpace(str.charCodeAt(start)) && !isWhiteSpace(str.charCodeAt(end))) {\n return str;\n }\n while (isWhiteSpace(str.charCodeAt(start))) {\n start++;\n }\n while (isWhiteSpace(str.charCodeAt(end))) {\n end--;\n }\n return str.substring(start, end + 1);\n}\nexport function isDigit(ch) {\n return ch >= 48 /* CharCode._0 */ && ch <= 57 /* CharCode._9 */;\n}\nexport function isHexDigit(ch) {\n return (isDigit(ch) || (ch >= 65 /* CharCode.A */ && ch <= 70 /* CharCode.F */) || (ch >= 97 /* CharCode.a */ && ch <= 102 /* CharCode.f */));\n}\nexport function isBinaryDigit(ch) {\n return ch === 48 /* CharCode._0 */ || ch === 49 /* CharCode._1 */;\n}\nexport function isLowercaseAsciiLetter(ch) {\n return ch >= 97 /* CharCode.a */ && ch <= 122 /* CharCode.z */;\n}\nexport function isAsciiIdentifierStart(ch) {\n return ((ch >= 65 /* CharCode.A */ && ch <= 90 /* CharCode.Z */) ||\n (ch >= 97 /* CharCode.a */ && ch <= 122 /* CharCode.z */) ||\n ch === 36 /* CharCode.$ */ ||\n ch === 95 /* CharCode._ */);\n}\nexport function isAsciiIdentifierContinue(ch) {\n return ((ch >= 65 /* CharCode.A */ && ch <= 90 /* CharCode.Z */) ||\n (ch >= 97 /* CharCode.a */ && ch <= 122 /* CharCode.z */) ||\n (ch >= 48 /* CharCode._0 */ && ch <= 57 /* CharCode._9 */) ||\n ch === 36 /* CharCode.$ */ ||\n ch === 95 /* CharCode._ */);\n}\nexport function isIdentifierStart(codePoint) {\n return (isAsciiIdentifierStart(codePoint) ||\n (codePoint > 127 /* CharCode.MaxAscii */ && isNonAsciiIdentifierCharacter(codePoint)));\n}\nexport function isIdentifierContinue(codePoint) {\n return (isAsciiIdentifierContinue(codePoint) ||\n (codePoint > 127 /* CharCode.MaxAscii */ && isNonAsciiIdentifierCharacter(codePoint)));\n}\nexport function isNonAsciiIdentifierCharacter(codePoint) {\n return lookupInNonAsciiMap(codePoint, nonAsciiIdentifierMap);\n}\nexport function codePointBefore(text, pos) {\n if (pos <= 0 || pos >= text.length) {\n return undefined;\n }\n const ch = text.charCodeAt(pos - 1);\n if (!isLowSurrogate(ch) || !isHighSurrogate(text.charCodeAt(pos - 2))) {\n return ch;\n }\n return text.codePointAt(pos - 2);\n}\nfunction lookupInNonAsciiMap(codePoint, map) {\n // Perform binary search in one of the Unicode range maps\n let lo = 0;\n let hi = map.length;\n let mid;\n while (lo + 1 < hi) {\n mid = lo + (hi - lo) / 2;\n // mid has to be even to catch a range's beginning\n mid -= mid % 2;\n if (map[mid] <= codePoint && codePoint <= map[mid + 1]) {\n return true;\n }\n if (codePoint < map[mid]) {\n hi = mid;\n }\n else {\n lo = mid + 2;\n }\n }\n return false;\n}\n//# sourceMappingURL=charcode.js.map","/**\n * AST types\n */\nexport var SyntaxKind;\n(function (SyntaxKind) {\n SyntaxKind[SyntaxKind[\"TypeSpecScript\"] = 0] = \"TypeSpecScript\";\n /** @deprecated Use TypeSpecScript */\n SyntaxKind[SyntaxKind[\"CadlScript\"] = 0] = \"CadlScript\";\n SyntaxKind[SyntaxKind[\"JsSourceFile\"] = 1] = \"JsSourceFile\";\n SyntaxKind[SyntaxKind[\"ImportStatement\"] = 2] = \"ImportStatement\";\n SyntaxKind[SyntaxKind[\"Identifier\"] = 3] = \"Identifier\";\n SyntaxKind[SyntaxKind[\"AugmentDecoratorStatement\"] = 4] = \"AugmentDecoratorStatement\";\n SyntaxKind[SyntaxKind[\"DecoratorExpression\"] = 5] = \"DecoratorExpression\";\n SyntaxKind[SyntaxKind[\"DirectiveExpression\"] = 6] = \"DirectiveExpression\";\n SyntaxKind[SyntaxKind[\"MemberExpression\"] = 7] = \"MemberExpression\";\n SyntaxKind[SyntaxKind[\"NamespaceStatement\"] = 8] = \"NamespaceStatement\";\n SyntaxKind[SyntaxKind[\"UsingStatement\"] = 9] = \"UsingStatement\";\n SyntaxKind[SyntaxKind[\"OperationStatement\"] = 10] = \"OperationStatement\";\n SyntaxKind[SyntaxKind[\"OperationSignatureDeclaration\"] = 11] = \"OperationSignatureDeclaration\";\n SyntaxKind[SyntaxKind[\"OperationSignatureReference\"] = 12] = \"OperationSignatureReference\";\n SyntaxKind[SyntaxKind[\"ModelStatement\"] = 13] = \"ModelStatement\";\n SyntaxKind[SyntaxKind[\"ModelExpression\"] = 14] = \"ModelExpression\";\n SyntaxKind[SyntaxKind[\"ModelProperty\"] = 15] = \"ModelProperty\";\n SyntaxKind[SyntaxKind[\"ModelSpreadProperty\"] = 16] = \"ModelSpreadProperty\";\n SyntaxKind[SyntaxKind[\"ScalarStatement\"] = 17] = \"ScalarStatement\";\n SyntaxKind[SyntaxKind[\"InterfaceStatement\"] = 18] = \"InterfaceStatement\";\n SyntaxKind[SyntaxKind[\"UnionStatement\"] = 19] = \"UnionStatement\";\n SyntaxKind[SyntaxKind[\"UnionVariant\"] = 20] = \"UnionVariant\";\n SyntaxKind[SyntaxKind[\"EnumStatement\"] = 21] = \"EnumStatement\";\n SyntaxKind[SyntaxKind[\"EnumMember\"] = 22] = \"EnumMember\";\n SyntaxKind[SyntaxKind[\"EnumSpreadMember\"] = 23] = \"EnumSpreadMember\";\n SyntaxKind[SyntaxKind[\"AliasStatement\"] = 24] = \"AliasStatement\";\n SyntaxKind[SyntaxKind[\"DecoratorDeclarationStatement\"] = 25] = \"DecoratorDeclarationStatement\";\n SyntaxKind[SyntaxKind[\"FunctionDeclarationStatement\"] = 26] = \"FunctionDeclarationStatement\";\n SyntaxKind[SyntaxKind[\"FunctionParameter\"] = 27] = \"FunctionParameter\";\n SyntaxKind[SyntaxKind[\"UnionExpression\"] = 28] = \"UnionExpression\";\n SyntaxKind[SyntaxKind[\"IntersectionExpression\"] = 29] = \"IntersectionExpression\";\n SyntaxKind[SyntaxKind[\"TupleExpression\"] = 30] = \"TupleExpression\";\n SyntaxKind[SyntaxKind[\"ArrayExpression\"] = 31] = \"ArrayExpression\";\n SyntaxKind[SyntaxKind[\"StringLiteral\"] = 32] = \"StringLiteral\";\n SyntaxKind[SyntaxKind[\"NumericLiteral\"] = 33] = \"NumericLiteral\";\n SyntaxKind[SyntaxKind[\"BooleanLiteral\"] = 34] = \"BooleanLiteral\";\n SyntaxKind[SyntaxKind[\"ExternKeyword\"] = 35] = \"ExternKeyword\";\n SyntaxKind[SyntaxKind[\"VoidKeyword\"] = 36] = \"VoidKeyword\";\n SyntaxKind[SyntaxKind[\"NeverKeyword\"] = 37] = \"NeverKeyword\";\n SyntaxKind[SyntaxKind[\"UnknownKeyword\"] = 38] = \"UnknownKeyword\";\n SyntaxKind[SyntaxKind[\"ValueOfExpression\"] = 39] = \"ValueOfExpression\";\n SyntaxKind[SyntaxKind[\"TypeReference\"] = 40] = \"TypeReference\";\n SyntaxKind[SyntaxKind[\"ProjectionReference\"] = 41] = \"ProjectionReference\";\n SyntaxKind[SyntaxKind[\"TemplateParameterDeclaration\"] = 42] = \"TemplateParameterDeclaration\";\n SyntaxKind[SyntaxKind[\"EmptyStatement\"] = 43] = \"EmptyStatement\";\n SyntaxKind[SyntaxKind[\"InvalidStatement\"] = 44] = \"InvalidStatement\";\n SyntaxKind[SyntaxKind[\"LineComment\"] = 45] = \"LineComment\";\n SyntaxKind[SyntaxKind[\"BlockComment\"] = 46] = \"BlockComment\";\n SyntaxKind[SyntaxKind[\"Doc\"] = 47] = \"Doc\";\n SyntaxKind[SyntaxKind[\"DocText\"] = 48] = \"DocText\";\n SyntaxKind[SyntaxKind[\"DocParamTag\"] = 49] = \"DocParamTag\";\n SyntaxKind[SyntaxKind[\"DocReturnsTag\"] = 50] = \"DocReturnsTag\";\n SyntaxKind[SyntaxKind[\"DocTemplateTag\"] = 51] = \"DocTemplateTag\";\n SyntaxKind[SyntaxKind[\"DocUnknownTag\"] = 52] = \"DocUnknownTag\";\n SyntaxKind[SyntaxKind[\"Projection\"] = 53] = \"Projection\";\n SyntaxKind[SyntaxKind[\"ProjectionParameterDeclaration\"] = 54] = \"ProjectionParameterDeclaration\";\n SyntaxKind[SyntaxKind[\"ProjectionModelSelector\"] = 55] = \"ProjectionModelSelector\";\n SyntaxKind[SyntaxKind[\"ProjectionModelPropertySelector\"] = 56] = \"ProjectionModelPropertySelector\";\n SyntaxKind[SyntaxKind[\"ProjectionOperationSelector\"] = 57] = \"ProjectionOperationSelector\";\n SyntaxKind[SyntaxKind[\"ProjectionUnionSelector\"] = 58] = \"ProjectionUnionSelector\";\n SyntaxKind[SyntaxKind[\"ProjectionUnionVariantSelector\"] = 59] = \"ProjectionUnionVariantSelector\";\n SyntaxKind[SyntaxKind[\"ProjectionInterfaceSelector\"] = 60] = \"ProjectionInterfaceSelector\";\n SyntaxKind[SyntaxKind[\"ProjectionEnumSelector\"] = 61] = \"ProjectionEnumSelector\";\n SyntaxKind[SyntaxKind[\"ProjectionEnumMemberSelector\"] = 62] = \"ProjectionEnumMemberSelector\";\n SyntaxKind[SyntaxKind[\"ProjectionExpressionStatement\"] = 63] = \"ProjectionExpressionStatement\";\n SyntaxKind[SyntaxKind[\"ProjectionIfExpression\"] = 64] = \"ProjectionIfExpression\";\n SyntaxKind[SyntaxKind[\"ProjectionBlockExpression\"] = 65] = \"ProjectionBlockExpression\";\n SyntaxKind[SyntaxKind[\"ProjectionMemberExpression\"] = 66] = \"ProjectionMemberExpression\";\n SyntaxKind[SyntaxKind[\"ProjectionLogicalExpression\"] = 67] = \"ProjectionLogicalExpression\";\n SyntaxKind[SyntaxKind[\"ProjectionEqualityExpression\"] = 68] = \"ProjectionEqualityExpression\";\n SyntaxKind[SyntaxKind[\"ProjectionUnaryExpression\"] = 69] = \"ProjectionUnaryExpression\";\n SyntaxKind[SyntaxKind[\"ProjectionRelationalExpression\"] = 70] = \"ProjectionRelationalExpression\";\n SyntaxKind[SyntaxKind[\"ProjectionArithmeticExpression\"] = 71] = \"ProjectionArithmeticExpression\";\n SyntaxKind[SyntaxKind[\"ProjectionCallExpression\"] = 72] = \"ProjectionCallExpression\";\n SyntaxKind[SyntaxKind[\"ProjectionLambdaExpression\"] = 73] = \"ProjectionLambdaExpression\";\n SyntaxKind[SyntaxKind[\"ProjectionLambdaParameterDeclaration\"] = 74] = \"ProjectionLambdaParameterDeclaration\";\n SyntaxKind[SyntaxKind[\"ProjectionModelExpression\"] = 75] = \"ProjectionModelExpression\";\n SyntaxKind[SyntaxKind[\"ProjectionModelProperty\"] = 76] = \"ProjectionModelProperty\";\n SyntaxKind[SyntaxKind[\"ProjectionModelSpreadProperty\"] = 77] = \"ProjectionModelSpreadProperty\";\n SyntaxKind[SyntaxKind[\"ProjectionSpreadProperty\"] = 78] = \"ProjectionSpreadProperty\";\n SyntaxKind[SyntaxKind[\"ProjectionTupleExpression\"] = 79] = \"ProjectionTupleExpression\";\n SyntaxKind[SyntaxKind[\"ProjectionStatement\"] = 80] = \"ProjectionStatement\";\n SyntaxKind[SyntaxKind[\"ProjectionDecoratorReferenceExpression\"] = 81] = \"ProjectionDecoratorReferenceExpression\";\n SyntaxKind[SyntaxKind[\"Return\"] = 82] = \"Return\";\n})(SyntaxKind || (SyntaxKind = {}));\nexport var IdentifierKind;\n(function (IdentifierKind) {\n IdentifierKind[IdentifierKind[\"TypeReference\"] = 0] = \"TypeReference\";\n IdentifierKind[IdentifierKind[\"Decorator\"] = 1] = \"Decorator\";\n IdentifierKind[IdentifierKind[\"Function\"] = 2] = \"Function\";\n IdentifierKind[IdentifierKind[\"Using\"] = 3] = \"Using\";\n IdentifierKind[IdentifierKind[\"Declaration\"] = 4] = \"Declaration\";\n IdentifierKind[IdentifierKind[\"Other\"] = 5] = \"Other\";\n})(IdentifierKind || (IdentifierKind = {}));\nexport const NoTarget = Symbol.for(\"NoTarget\");\nexport var ListenerFlow;\n(function (ListenerFlow) {\n /**\n * Do not navigate any containing or referenced type.\n */\n ListenerFlow[ListenerFlow[\"NoRecursion\"] = 1] = \"NoRecursion\";\n})(ListenerFlow || (ListenerFlow = {}));\n//# sourceMappingURL=types.js.map","import { compilerAssert, createDiagnosticCreator } from \"./diagnostics.js\";\nimport { createJSONSchemaValidator } from \"./schema-validator.js\";\nconst globalLibraryUrlsLoadedSym = Symbol.for(\"TYPESPEC_LIBRARY_URLS_LOADED\");\nif (globalThis[globalLibraryUrlsLoadedSym] === undefined) {\n globalThis[globalLibraryUrlsLoadedSym] = new Set();\n}\nconst loadedUrls = globalThis[globalLibraryUrlsLoadedSym];\n/**\n * @internal List of urls that used `createTypeSpecLibrary`. Used to keep track of the loaded version of library and make sure they are compatible.\n */\nexport function getLibraryUrlsLoaded() {\n return loadedUrls;\n}\n/** @deprecated use createTypeSpecLibrary */\nexport const createCadlLibrary = createTypeSpecLibrary;\n/**\n * Create a new TypeSpec library definition.\n * @param lib Library definition.\n * @returns Library with utility functions.\n *\n *\n * @tutorial Create the lib object with `as const` to get the full typing.\n *\n * @example\n * const libDef = {\n * name: \"myLib\",\n * diagnostics: {\n * \"my-code\": {serverity: \"error\", messages: {default: \"Foo bar\"}}\n * },\n * } as const;\n *\n * const lib = createTypeSpecLibrary(libDef);\n */\nexport function createTypeSpecLibrary(lib) {\n let emitterOptionValidator;\n const { reportDiagnostic, createDiagnostic } = createDiagnosticCreator(lib.diagnostics, lib.name);\n function createStateSymbol(name) {\n return Symbol.for(`${lib.name}.${name}`);\n }\n const caller = getCaller();\n if (caller) {\n loadedUrls.add(caller);\n }\n return {\n ...lib,\n reportDiagnostic,\n createDiagnostic,\n createStateSymbol,\n get emitterOptionValidator() {\n var _a;\n if (!emitterOptionValidator && ((_a = lib.emitter) === null || _a === void 0 ? void 0 : _a.options)) {\n emitterOptionValidator = createJSONSchemaValidator(lib.emitter.options, {\n coerceTypes: true,\n });\n }\n return emitterOptionValidator;\n },\n getTracer,\n };\n function getTracer(program) {\n return program.tracer.sub(lib.name);\n }\n}\nexport function paramMessage(strings, ...keys) {\n const template = (dict) => {\n const result = [strings[0]];\n keys.forEach((key, i) => {\n const value = dict[key];\n if (value !== undefined) {\n result.push(value);\n }\n result.push(strings[i + 1]);\n });\n return result.join(\"\");\n };\n template.keys = keys;\n return template;\n}\n/** Create a new linter rule. */\nexport function createLinterRule(definition) {\n compilerAssert(!definition.name.includes(\"/\"), \"Rule name cannot contain a '/'.\");\n return definition;\n}\n/** @deprecated use setTypeSpecNamespace */\nexport const setCadlNamespace = setTypeSpecNamespace;\n/**\n * Set the TypeSpec namespace for that function.\n * @param namespace Namespace string (e.g. \"Foo.Bar\")\n * @param functions Functions\n */\nexport function setTypeSpecNamespace(namespace, ...functions) {\n functions.forEach((c) => (c.namespace = namespace));\n}\nfunction getCaller() {\n const caller = getCallStack()[2];\n return typeof caller === \"object\" && \"getFileName\" in caller ? caller.getFileName() : undefined;\n}\nfunction getCallStack() {\n const _prepareStackTrace = Error.prepareStackTrace;\n Error.prepareStackTrace = (_, stack) => stack;\n const stack = new Error().stack.slice(1); // eslint-disable-line unicorn/error-message\n Error.prepareStackTrace = _prepareStackTrace;\n return stack;\n}\n//# sourceMappingURL=library.js.map","// Static assert: this won't compile if one of the entries above is invalid.\nimport { createDiagnosticCreator } from \"./diagnostics.js\";\nimport { paramMessage } from \"./library.js\";\nconst diagnostics = {\n /**\n * Scanner errors.\n */\n \"digit-expected\": {\n severity: \"error\",\n messages: {\n default: \"Digit expected.\",\n },\n },\n \"hex-digit-expected\": {\n severity: \"error\",\n messages: {\n default: \"Hexadecimal digit expected.\",\n },\n },\n \"binary-digit-expected\": {\n severity: \"error\",\n messages: {\n default: \"Binary digit expected.\",\n },\n },\n unterminated: {\n severity: \"error\",\n messages: {\n default: paramMessage `Unterminated ${\"token\"}.`,\n },\n },\n \"creating-file\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Error creating single file: ${\"filename\"}, ${\"error\"}`,\n },\n },\n \"invalid-escape-sequence\": {\n severity: \"error\",\n messages: {\n default: \"Invalid escape sequence.\",\n },\n },\n \"no-new-line-start-triple-quote\": {\n severity: \"error\",\n messages: {\n default: \"String content in triple quotes must begin on a new line.\",\n },\n },\n \"no-new-line-end-triple-quote\": {\n severity: \"error\",\n messages: {\n default: \"Closing triple quotes must begin on a new line.\",\n },\n },\n \"triple-quote-indent\": {\n severity: \"error\",\n messages: {\n default: \"All lines in triple-quoted string lines must have the same indentation as closing triple quotes.\",\n },\n },\n \"invalid-character\": {\n severity: \"error\",\n messages: {\n default: \"Invalid character.\",\n },\n },\n /**\n * Utils\n */\n \"file-not-found\": {\n severity: \"error\",\n messages: {\n default: paramMessage `File ${\"path\"} not found.`,\n },\n },\n \"file-load\": {\n severity: \"error\",\n messages: {\n default: paramMessage `${\"message\"}`,\n },\n },\n /**\n * Init templates\n */\n \"init-template-invalid-json\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Unable to parse ${\"url\"}: ${\"message\"}. Check that the template URL is correct.`,\n },\n },\n \"init-template-download-failed\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Failed to download template from ${\"url\"}: ${\"message\"}. Check that the template URL is correct.`,\n },\n },\n /**\n * Parser errors.\n */\n \"multiple-blockless-namespace\": {\n severity: \"error\",\n messages: {\n default: \"Cannot use multiple blockless namespaces.\",\n },\n },\n \"blockless-namespace-first\": {\n severity: \"error\",\n messages: {\n default: \"Blockless namespaces can't follow other declarations.\",\n topLevel: \"Blockless namespace can only be top-level.\",\n },\n },\n \"import-first\": {\n severity: \"error\",\n messages: {\n default: \"Imports must come prior to namespaces or other declarations.\",\n topLevel: \"Imports must be top-level and come prior to namespaces or other declarations.\",\n },\n },\n \"token-expected\": {\n severity: \"error\",\n messages: {\n default: paramMessage `${\"token\"} expected.`,\n unexpected: paramMessage `Unexpected token ${\"token\"}`,\n numericOrStringLiteral: \"Expected numeric or string literal.\",\n identifier: \"Identifier expected.\",\n projectionDirection: \"from or to expected.\",\n expression: \"Expression expected.\",\n statement: \"Statement expected.\",\n property: \"Property expected.\",\n enumMember: \"Enum member expected.\",\n },\n },\n \"trailing-token\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Trailing ${\"token\"}`,\n },\n },\n \"unknown-directive\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Unknown directive '#${\"id\"}'`,\n },\n },\n \"augment-decorator-target\": {\n severity: \"error\",\n messages: {\n default: `Augment decorator first argument must be a type reference.`,\n noInstance: `Cannot reference template instances`,\n },\n },\n \"duplicate-decorator\": {\n severity: \"warning\",\n messages: {\n default: paramMessage `Decorator ${\"decoratorName\"} cannot be used twice on the same declaration.`,\n },\n },\n \"decorator-conflict\": {\n severity: \"warning\",\n messages: {\n default: paramMessage `Decorator ${\"decoratorName\"} cannot be used with decorator ${\"otherDecoratorName\"} on the same declaration.`,\n },\n },\n \"reserved-identifier\": {\n severity: \"error\",\n messages: {\n default: \"Keyword cannot be used as identifier.\",\n },\n },\n \"invalid-directive-location\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Cannot place directive on ${\"nodeName\"}.`,\n },\n },\n \"invalid-decorator-location\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Cannot decorate ${\"nodeName\"}.`,\n },\n },\n \"invalid-projection\": {\n severity: \"error\",\n messages: {\n default: \"Invalid projection\",\n wrongType: \"Non-projection can't be used to project\",\n noTo: \"Projection missing to projection\",\n projectionError: paramMessage `An error occurred when projecting this type: ${\"message\"}`,\n },\n },\n \"default-required\": {\n severity: \"error\",\n messages: {\n default: \"Required template parameters must not follow optional template parameters\",\n },\n },\n \"invalid-template-default\": {\n severity: \"error\",\n messages: {\n default: \"Template parameter defaults can only reference previously declared type parameters.\",\n },\n },\n \"required-parameter-first\": {\n severity: \"error\",\n messages: {\n default: \"A required parameter cannot follow an optional parameter.\",\n },\n },\n \"rest-parameter-last\": {\n severity: \"error\",\n messages: {\n default: \"A rest parameter must be last in a parameter list.\",\n },\n },\n \"rest-parameter-required\": {\n severity: \"error\",\n messages: {\n default: \"A rest parameter cannot be optional.\",\n },\n },\n /**\n * Parser doc comment warnings.\n * Design goal: Malformed doc comments should only produce warnings, not errors.\n */\n \"doc-invalid-identifier\": {\n severity: \"warning\",\n messages: {\n default: \"Invalid identifier.\",\n tag: \"Invalid tag name. Use backticks around code if this was not meant to be a tag.\",\n param: \"Invalid parameter name.\",\n templateParam: \"Invalid template parameter name.\",\n },\n },\n /**\n * Checker\n */\n \"using-invalid-ref\": {\n severity: \"error\",\n messages: {\n default: \"Using must refer to a namespace\",\n decorator: \"Can't use a decorator\",\n function: \"Can't use a function\",\n projection: \"Can't use a projection\",\n },\n },\n \"invalid-type-ref\": {\n severity: \"error\",\n messages: {\n default: \"Invalid type reference\",\n decorator: \"Can't put a decorator in a type\",\n function: \"Can't use a function as a type\",\n },\n },\n \"invalid-template-args\": {\n severity: \"error\",\n messages: {\n default: \"Invalid template arguments.\",\n notTemplate: \"Can't pass template arguments to non-templated type\",\n tooFew: \"Too few template arguments provided.\",\n tooMany: \"Too many template arguments provided.\",\n },\n },\n \"intersect-non-model\": {\n severity: \"error\",\n messages: {\n default: \"Cannot intersect non-model types (including union types).\",\n },\n },\n \"intersect-invalid-index\": {\n severity: \"error\",\n messages: {\n default: \"Cannot intersect incompatible models.\",\n never: \"Cannot intersect a model that cannot hold properties.\",\n array: \"Cannot intersect an array model.\",\n },\n },\n \"intersect-duplicate-property\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Intersection contains duplicate property definitions for ${\"propName\"}`,\n },\n },\n \"unknown-identifier\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Unknown identifier ${\"id\"}`,\n },\n },\n \"unknown-decorator\": {\n severity: \"error\",\n messages: {\n default: \"Unknown decorator\",\n },\n },\n \"invalid-decorator\": {\n severity: \"error\",\n messages: {\n default: paramMessage `${\"id\"} is not a decorator`,\n },\n },\n \"invalid-ref\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Cannot resolve ${\"id\"}`,\n inDecorator: paramMessage `Cannot resolve ${\"id\"} in decorator`,\n underNamespace: paramMessage `Namespace ${\"namespace\"} doesn't have member ${\"id\"}`,\n underContainer: paramMessage `${\"kind\"} doesn't have member ${\"id\"}`,\n node: paramMessage `Cannot resolve '${\"id\"}' in node ${\"nodeName\"} since it has no members. Did you mean to use \"::\" instead of \".\"?`,\n },\n },\n \"duplicate-property\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Model already has a property named ${\"propName\"}`,\n },\n },\n \"override-property-mismatch\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Model has an inherited property named ${\"propName\"} of type ${\"propType\"} which cannot override type ${\"parentType\"}`,\n },\n },\n \"extend-scalar\": {\n severity: \"error\",\n messages: {\n default: \"Scalar must extend other scalars.\",\n },\n },\n \"extend-model\": {\n severity: \"error\",\n messages: {\n default: \"Models must extend other models.\",\n modelExpression: \"Models cannot extend model expressions.\",\n },\n },\n \"is-model\": {\n severity: \"error\",\n messages: {\n default: \"Model `is` must specify another model.\",\n modelExpression: \"Model `is` cannot specify a model expression.\",\n },\n },\n \"is-operation\": {\n severity: \"error\",\n messages: {\n default: \"Operation can only reuse the signature of another operation.\",\n },\n },\n \"spread-model\": {\n severity: \"error\",\n messages: {\n default: \"Cannot spread properties of non-model type.\",\n neverIndex: \"Cannot spread type because it cannot hold properties.\",\n },\n },\n \"unsupported-default\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Default must be have a value type but has type '${\"type\"}'.`,\n },\n },\n unassignable: {\n severity: \"error\",\n messages: {\n default: paramMessage `Type '${\"value\"}' is not assignable to type '${\"targetType\"}'`,\n withDetails: paramMessage `Type '${\"sourceType\"}' is not assignable to type '${\"targetType\"}'\\n ${\"details\"}`,\n },\n },\n \"no-prop\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Property '${\"propName\"}' cannot be defined because model cannot hold properties.`,\n },\n },\n \"missing-index\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Index signature for type '${\"indexType\"}' is missing in type '${\"sourceType\"}'.`,\n },\n },\n \"missing-property\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Property '${\"propertyName\"}' is missing on type '${\"sourceType\"}' but required in '${\"targetType\"}'`,\n },\n },\n \"extends-interface\": {\n severity: \"error\",\n messages: {\n default: \"Interfaces can only extend other interfaces\",\n },\n },\n \"extends-interface-duplicate\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Interface extends cannot have duplicate members. The duplicate member is named ${\"name\"}`,\n },\n },\n \"interface-duplicate\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Interface already has a member named ${\"name\"}`,\n },\n },\n \"union-duplicate\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Union already has a variant named ${\"name\"}`,\n },\n },\n \"enum-member-duplicate\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Enum already has a member named ${\"name\"}`,\n },\n },\n \"spread-enum\": {\n severity: \"error\",\n messages: {\n default: \"Cannot spread members of non-enum type.\",\n },\n },\n \"decorator-fail\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Decorator ${\"decoratorName\"} failed!\\n\\n${\"error\"}`,\n },\n },\n \"rest-parameter-array\": {\n severity: \"error\",\n messages: {\n default: \"A rest parameter must be of an array type.\",\n },\n },\n \"decorator-extern\": {\n severity: \"error\",\n messages: {\n default: \"A decorator declaration must be prefixed with the 'extern' modifier.\",\n },\n },\n \"function-extern\": {\n severity: \"error\",\n messages: {\n default: \"A function declaration must be prefixed with the 'extern' modifier.\",\n },\n },\n \"missing-implementation\": {\n severity: \"error\",\n messages: {\n default: \"Extern declaration must have an implementation in JS file.\",\n },\n },\n \"overload-same-parent\": {\n severity: \"error\",\n messages: {\n default: `Overload must be in the same interface or namespace.`,\n },\n },\n shadow: {\n severity: \"warning\",\n messages: {\n default: paramMessage `Shadowing parent template parmaeter with the same name \"${\"name\"}\"`,\n },\n },\n /**\n * Configuration\n */\n \"config-invalid-argument\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Argument \"${\"name\"}\" is not defined as a parameter in the config.`,\n },\n },\n \"config-circular-variable\": {\n severity: \"error\",\n messages: {\n default: paramMessage `There is a circular reference to variable \"${\"name\"}\" in the cli configuration or arguments.`,\n },\n },\n \"config-path-absolute\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Path \"${\"path\"}\" cannot be relative. Use {cwd} or {project-root} to specify what the path should be relative to.`,\n },\n },\n \"config-path-not-found\": {\n severity: \"error\",\n messages: {\n default: paramMessage `No configuration file found at config path \"${\"path\"}\".`,\n },\n },\n /**\n * Program\n */\n \"dynamic-import\": {\n severity: \"error\",\n messages: {\n default: \"Dynamically generated TypeSpec cannot have imports\",\n },\n },\n \"invalid-import\": {\n severity: \"error\",\n messages: {\n default: \"Import paths must reference either a directory, a .tsp file, or .js file\",\n },\n },\n \"invalid-main\": {\n severity: \"error\",\n messages: {\n default: \"Main file must either be a .tsp file or a .js file.\",\n },\n },\n \"import-not-found\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Couldn't resolve import \"${\"path\"}\"`,\n },\n },\n \"library-invalid\": {\n severity: \"error\",\n messages: {\n tspMain: paramMessage `Library \"${\"path\"}\" has an invalid tspMain file.`,\n default: paramMessage `Library \"${\"path\"}\" has an invalid main file.`,\n },\n },\n \"incompatible-library\": {\n severity: \"warning\",\n messages: {\n default: paramMessage `Multiple versions of \"${\"name\"}\" library were loaded:\\n${\"versionMap\"}`,\n },\n },\n \"compiler-version-mismatch\": {\n severity: \"warning\",\n messages: {\n default: paramMessage `Current TypeSpec compiler conflicts with local version of @typespec/compiler referenced in ${\"basedir\"}. \\nIf this warning occurs on the command line, try running \\`typespec\\` with a working directory of ${\"basedir\"}. \\nIf this warning occurs in the IDE, try configuring the \\`tsp-server\\` path to ${\"betterTypeSpecServerPath\"}.\\n Expected: ${\"expected\"}\\n Resolved: ${\"actual\"}`,\n },\n },\n \"duplicate-symbol\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Duplicate name: \"${\"name\"}\"`,\n },\n },\n \"decorator-decl-target\": {\n severity: \"error\",\n messages: {\n default: \"dec must have at least one parameter.\",\n required: \"dec first parameter must be required.\",\n },\n },\n \"projections-are-experimental\": {\n severity: \"warning\",\n messages: {\n default: \"Projections are experimental - your code will need to change as this feature evolves.\",\n },\n },\n /**\n * Binder\n */\n \"ambiguous-symbol\": {\n severity: \"error\",\n messages: {\n default: paramMessage `\"${\"name\"}\" is an ambiguous name between ${\"duplicateNames\"}. Try using fully qualified name instead: ${\"duplicateNames\"}`,\n },\n },\n \"duplicate-using\": {\n severity: \"error\",\n messages: {\n default: paramMessage `duplicate using of \"${\"usingName\"}\" namespace`,\n },\n },\n /**\n * Library\n */\n \"on-validate-fail\": {\n severity: \"error\",\n messages: {\n default: paramMessage `onValidate failed with errors. ${\"error\"}`,\n },\n },\n \"invalid-emitter\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Requested emitter package ${\"emitterPackage\"} does not provide an \"onEmit\" function.`,\n },\n },\n \"missing-import\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Emitter '${\"emitterName\"}' requires '${\"requiredImport\"}' to be imported. Add 'import \"${\"requiredImport\"}\".`,\n },\n },\n /**\n * Linter\n */\n \"invalid-rule-ref\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Reference \"${\"ref\"}\" is not a valid reference to a rule or ruleset. It must be in the following format: \"<library-name>:<rule-name>\"`,\n },\n },\n \"unknown-rule\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Rule \"${\"ruleName\"}\" is not found in library \"${\"libraryName\"}\"`,\n },\n },\n \"unknown-rule-set\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Rule set \"${\"ruleSetName\"}\" is not found in library \"${\"libraryName\"}\"`,\n },\n },\n \"rule-enabled-disabled\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Rule \"${\"ruleName\"}\" has been enabled and disabled in the same ruleset.`,\n },\n },\n /**\n * Decorator\n */\n \"decorator-wrong-target\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Cannot apply ${\"decorator\"} decorator to ${\"to\"}`,\n withExpected: paramMessage `Cannot apply ${\"decorator\"} decorator to ${\"to\"} since it is not assignable to ${\"expected\"}`,\n },\n },\n \"invalid-argument\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Argument '${\"value\"}' is not assignable to parameter of type '${\"expected\"}'`,\n },\n },\n \"invalid-argument-count\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Expected ${\"expected\"} arguments, but got ${\"actual\"}.`,\n atLeast: paramMessage `Expected at least ${\"expected\"} arguments, but got ${\"actual\"}.`,\n },\n },\n \"known-values-invalid-enum\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Enum cannot be used on this type. Member ${\"member\"} is not assignable to type ${\"type\"}.`,\n },\n },\n \"invalid-value\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Type '${\"kind\"}' is not a value type.`,\n atPath: paramMessage `Type '${\"kind\"}' of '${\"path\"}' is not a value type.`,\n },\n },\n deprecated: {\n severity: \"warning\",\n messages: {\n default: paramMessage `Deprecated: ${\"message\"}`,\n },\n },\n \"no-optional-key\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Property '${\"propertyName\"}' marked as key cannot be optional.`,\n },\n },\n \"invalid-discriminated-union\": {\n severity: \"error\",\n messages: {\n default: \"\",\n noAnonVariants: \"Unions with anonymous variants cannot be discriminated\",\n },\n },\n \"invalid-discriminated-union-variant\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Union variant \"${\"name\"}\" must be a model type.`,\n noDiscriminant: paramMessage `Variant \"${\"name\"}\" type is missing the discriminant property \"${\"discriminant\"}\".`,\n wrongDiscriminantType: paramMessage `Variant \"${\"name\"}\" type's discriminant property \"${\"discriminant\"}\" must be a string literal or string enum member.`,\n },\n },\n \"missing-discriminator-property\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Each derived model of a discriminated model type should have set the discriminator property(\"${\"discriminator\"}\") or have a derived model which has. Add \\`${\"discriminator\"}: \"<discriminator-value>\"\\``,\n },\n },\n \"invalid-discriminator-value\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Discriminator value should be a string, union of string or string enum but was ${\"kind\"}.`,\n required: \"The discriminator property must be a required property.\",\n duplicate: paramMessage `Discriminator value \"${\"discriminator\"}\" is already used in another variant.`,\n },\n },\n \"invalid-encode\": {\n severity: \"error\",\n messages: {\n default: \"Invalid encoding\",\n wrongType: paramMessage `Encoding '${\"encoding\"}' cannot be used on type '${\"type\"}'. Expected: ${\"expected\"}.`,\n wrongEncodingType: paramMessage `Encoding '${\"encoding\"}' on type '${\"type\"}' is expected to be serialized as '${\"expected\"}' but got '${\"actual\"}'.`,\n },\n },\n /**\n * Service\n */\n \"service-decorator-duplicate\": {\n severity: \"error\",\n messages: {\n default: `@service can only be set once per TypeSpec document.`,\n },\n },\n \"list-type-not-model\": {\n severity: \"error\",\n messages: {\n default: \"@list decorator's parameter must be a model type.\",\n },\n },\n \"invalid-range\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Range \"${\"start\"}..${\"end\"}\" is invalid.`,\n },\n },\n /**\n * Mutator\n */\n \"add-response\": {\n severity: \"error\",\n messages: {\n default: \"Cannot add a response to anything except an operation statement.\",\n },\n },\n \"add-parameter\": {\n severity: \"error\",\n messages: {\n default: \"Cannot add a parameter to anything except an operation statement.\",\n },\n },\n \"add-model-property\": {\n severity: \"error\",\n messages: {\n default: \"Cannot add a model property to anything except a model statement.\",\n },\n },\n \"add-model-property-fail\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Could not add property/parameter \"${\"propertyName\"}\" of type \"${\"propertyTypeName\"}\"`,\n },\n },\n \"add-response-type\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Could not add response type \"${\"responseTypeName\"}\" to operation ${\"operationName\"}\"`,\n },\n },\n \"circular-base-type\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Type '${\"typeName\"}' recursively references itself as a base type.`,\n },\n },\n \"circular-op-signature\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Operation '${\"typeName\"}' recursively references itself.`,\n },\n },\n \"circular-alias-type\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Alias type '${\"typeName\"}' recursively references itself.`,\n },\n },\n \"conflict-marker\": {\n severity: \"error\",\n messages: {\n default: \"Conflict marker encountered.\",\n },\n },\n};\nexport const { createDiagnostic, reportDiagnostic } = createDiagnosticCreator(diagnostics);\n//# sourceMappingURL=messages.js.map","import { formatLog } from \"./logger/index.js\";\nimport { reportDiagnostic } from \"./messages.js\";\nimport { NoTarget, SyntaxKind, } from \"./types.js\";\n/**\n * Create a new diagnostics creator.\n * @param diagnostics Map of the potential diagnostics.\n * @param libraryName Optional name of the library if in the scope of a library.\n * @returns @see DiagnosticCreator\n */\nexport function createDiagnosticCreator(diagnostics, libraryName) {\n const errorMessage = libraryName\n ? `It must match one of the code defined in the library '${libraryName}'`\n : \"It must match one of the code defined in the compiler.\";\n function createDiagnostic(diagnostic) {\n var _a;\n const diagnosticDef = diagnostics[diagnostic.code];\n if (!diagnosticDef) {\n const codeStr = Object.keys(diagnostics)\n .map((x) => ` - ${x}`)\n .join(\"\\n\");\n const code = String(diagnostic.code);\n throw new Error(`Unexpected diagnostic code '${code}'. ${errorMessage}. Defined codes:\\n${codeStr}`);\n }\n const message = diagnosticDef.messages[(_a = diagnostic.messageId) !== null && _a !== void 0 ? _a : \"default\"];\n if (!message) {\n const codeStr = Object.keys(diagnosticDef.messages)\n .map((x) => ` - ${x}`)\n .join(\"\\n\");\n const messageId = String(diagnostic.messageId);\n const code = String(diagnostic.code);\n throw new Error(`Unexpected message id '${messageId}'. ${errorMessage} for code '${code}'. Defined codes:\\n${codeStr}`);\n }\n const messageStr = typeof message === \"string\" ? message : message(diagnostic.format);\n return {\n code: libraryName ? `${libraryName}/${String(diagnostic.code)}` : diagnostic.code.toString(),\n severity: diagnosticDef.severity,\n message: messageStr,\n target: diagnostic.target,\n };\n }\n function reportDiagnostic(program, diagnostic) {\n const diag = createDiagnostic(diagnostic);\n program.reportDiagnostic(diag);\n }\n return {\n diagnostics,\n createDiagnostic,\n reportDiagnostic,\n };\n}\n/**\n * Represents a failure while interpreting a projection.\n */\nexport class ProjectionError extends Error {\n constructor(message) {\n super(message);\n this.name = \"ProjectionError\";\n }\n}\nexport function logDiagnostics(diagnostics, logger) {\n for (const diagnostic of diagnostics) {\n logger.log({\n level: diagnostic.severity,\n message: diagnostic.message,\n code: diagnostic.code,\n sourceLocation: getSourceLocation(diagnostic.target),\n });\n }\n}\nexport function formatDiagnostic(diagnostic) {\n return formatLog({\n code: diagnostic.code,\n level: diagnostic.severity,\n message: diagnostic.message,\n sourceLocation: getSourceLocation(diagnostic.target),\n }, { pretty: false });\n}\nexport function createSourceFile(text, path) {\n let lineStarts = undefined;\n return {\n text,\n path,\n getLineStarts,\n getLineAndCharacterOfPosition,\n };\n function getLineStarts() {\n return (lineStarts = lineStarts !== null && lineStarts !== void 0 ? lineStarts : scanLineStarts(text));\n }\n function getLineAndCharacterOfPosition(position) {\n const starts = getLineStarts();\n let line = binarySearch(starts, position);\n // When binarySearch returns < 0 indicating that the value was not found, it\n // returns the bitwise complement of the index where the value would need to\n // be inserted to keep the array sorted. So flipping the bits back to this\n // positive index tells us what the line number would be if we were to\n // create a new line starting at the given position, and subtracting 1 from\n // that therefore gives us the line number we're after.\n if (line < 0) {\n line = ~line - 1;\n }\n return {\n line,\n character: position - starts[line],\n };\n }\n}\nexport function getSourceLocation(target) {\n if (target === NoTarget || target === undefined) {\n return undefined;\n }\n if (\"file\" in target) {\n return target;\n }\n if (!(\"kind\" in target)) {\n // symbol\n if (target.flags & 524288 /* SymbolFlags.Using */) {\n target = target.symbolSource;\n }\n if (!target.declarations[0]) {\n return createSyntheticSourceLocation();\n }\n return getSourceLocationOfNode(target.declarations[0]);\n }\n else if (typeof target.kind === \"number\") {\n // node\n return getSourceLocationOfNode(target);\n }\n else {\n // type\n const targetNode = target.node;\n if (targetNode) {\n return getSourceLocationOfNode(targetNode);\n }\n return createSyntheticSourceLocation();\n }\n}\nfunction createSyntheticSourceLocation(loc = \"<unknown location>\") {\n return {\n file: createSourceFile(\"\", loc),\n pos: 0,\n end: 0,\n isSynthetic: true,\n };\n}\nfunction getSourceLocationOfNode(node) {\n let root = node;\n while (root.parent !== undefined) {\n root = root.parent;\n }\n if (root.kind !== SyntaxKind.TypeSpecScript && root.kind !== SyntaxKind.JsSourceFile) {\n return createSyntheticSourceLocation(node.flags & 8 /* NodeFlags.Synthetic */\n ? undefined\n : \"<unknown location - cannot obtain source location of unbound node - file bug at https://github.com/microsoft/typespec>\");\n }\n return {\n file: root.file,\n pos: node.pos,\n end: node.end,\n };\n}\n/**\n * Verbose output is enabled by default for runs in mocha explorer in VS Code,\n * where the output is nicely associated with the individual test, and disabled\n * by default for command line runs where we don't want to spam the console.\n *\n * If the steps taken to produce the message are expensive, pass a callback\n * instead of producing the message then passing it here only to be dropped\n * when verbose output is disabled.\n */\nexport function logVerboseTestOutput(messageOrCallback) {\n if (process.env.TYPESPEC_VERBOSE_TEST_OUTPUT) {\n if (typeof messageOrCallback === \"string\") {\n // eslint-disable-next-line no-console\n console.log(messageOrCallback);\n }\n else {\n // eslint-disable-next-line no-console\n messageOrCallback(console.log);\n }\n }\n}\n/**\n * Use this to report bugs in the compiler, and not errors in the source code\n * being compiled.\n *\n * @param condition Throw if this is not true.\n *\n * @param message Error message.\n *\n * @param target Optional location in source code that might give a clue about\n * what got the compiler off track.\n */\nexport function compilerAssert(condition, message, target) {\n if (condition) {\n return;\n }\n if (target) {\n let location;\n try {\n location = getSourceLocation(target);\n }\n catch (err) { }\n if (location) {\n const pos = location.file.getLineAndCharacterOfPosition(location.pos);\n const file = location.file.path;\n const line = pos.line + 1;\n const col = pos.character + 1;\n message += `\\nOccurred while compiling code in ${file} near line ${line}, column ${col}`;\n }\n }\n throw new Error(message);\n}\nfunction scanLineStarts(text) {\n const starts = [];\n let start = 0;\n let pos = 0;\n while (pos < text.length) {\n const ch = text.charCodeAt(pos);\n pos++;\n switch (ch) {\n case 13 /* CharCode.CarriageReturn */:\n if (text.charCodeAt(pos) === 10 /* CharCode.LineFeed */) {\n pos++;\n }\n // fallthrough\n case 10 /* CharCode.LineFeed */:\n starts.push(start);\n start = pos;\n break;\n }\n }\n starts.push(start);\n return starts;\n}\n/**\n * Search sorted array of numbers for the given value. If found, return index\n * in array where value was found. If not found, return a negative number that\n * is the bitwise complement of the index where value would need to be inserted\n * to keep the array sorted.\n */\nfunction binarySearch(array, value) {\n let low = 0;\n let high = array.length - 1;\n while (low <= high) {\n const middle = low + ((high - low) >> 1);\n const v = array[middle];\n if (v < value) {\n low = middle + 1;\n }\n else if (v > value) {\n high = middle - 1;\n }\n else {\n return middle;\n }\n }\n return ~low;\n}\n/**\n * Assert that the input type has one of the kinds provided\n */\nexport function assertType(typeDescription, t, ...kinds) {\n if (kinds.indexOf(t.kind) === -1) {\n throw new ProjectionError(`Expected ${typeDescription} to be type ${kinds.join(\", \")}`);\n }\n}\n/**\n * Report a deprecated diagnostic.\n * @param program TypeSpec Program.\n * @param message Message describing the deprecation.\n * @param target Target of the deprecation.\n */\nexport function reportDeprecated(program, message, target) {\n reportDiagnostic(program, {\n code: \"deprecated\",\n format: {\n message,\n },\n target,\n });\n}\n/**\n * Create a new instance of the @see DiagnosticCollector.\n */\nexport function createDiagnosticCollector() {\n const diagnostics = [];\n return {\n diagnostics,\n add,\n pipe,\n wrap,\n };\n function add(diagnostic) {\n diagnostics.push(diagnostic);\n }\n function pipe(result) {\n const [value, diags] = result;\n for (const diag of diags) {\n diagnostics.push(diag);\n }\n return value;\n }\n function wrap(value) {\n return [value, diagnostics];\n }\n}\n/**\n * Ignore the diagnostics emitted by the diagnostic accessor pattern and just return the actual result.\n * @param result: Accessor pattern tuple result including the actual result and the list of diagnostics.\n * @returns Actual result.\n */\nexport function ignoreDiagnostics(result) {\n return result[0];\n}\n//# sourceMappingURL=diagnostics.js.map","import { isAsciiIdentifierContinue, isAsciiIdentifierStart, isBinaryDigit, isDigit, isHexDigit, isIdentifierContinue, isIdentifierStart, isLineBreak, isLowercaseAsciiLetter, isNonAsciiIdentifierCharacter, isNonAsciiWhiteSpaceSingleLine, isWhiteSpace, isWhiteSpaceSingleLine, utf16CodeUnits, } from \"./charcode.js\";\nimport { compilerAssert, createSourceFile } from \"./diagnostics.js\";\nimport { createDiagnostic } from \"./messages.js\";\n// All conflict markers consist of the same character repeated seven times. If it is\n// a <<<<<<< or >>>>>>> marker then it is also followed by a space.\nconst mergeConflictMarkerLength = 7;\nexport var Token;\n(function (Token) {\n Token[Token[\"None\"] = 0] = \"None\";\n Token[Token[\"Invalid\"] = 1] = \"Invalid\";\n Token[Token[\"EndOfFile\"] = 2] = \"EndOfFile\";\n Token[Token[\"Identifier\"] = 3] = \"Identifier\";\n Token[Token[\"NumericLiteral\"] = 4] = \"NumericLiteral\";\n Token[Token[\"StringLiteral\"] = 5] = \"StringLiteral\";\n // Add new tokens above if they don't fit any of the categories below\n ///////////////////////////////////////////////////////////////\n // Trivia\n /**@internal */ Token[Token[\"__StartTrivia\"] = 6] = \"__StartTrivia\";\n Token[Token[\"SingleLineComment\"] = 6] = \"SingleLineComment\";\n Token[Token[\"MultiLineComment\"] = 7] = \"MultiLineComment\";\n Token[Token[\"NewLine\"] = 8] = \"NewLine\";\n Token[Token[\"Whitespace\"] = 9] = \"Whitespace\";\n Token[Token[\"ConflictMarker\"] = 10] = \"ConflictMarker\";\n // Add new trivia above\n /** @internal */ Token[Token[\"__EndTrivia\"] = 11] = \"__EndTrivia\";\n ///////////////////////////////////////////////////////////////\n ///////////////////////////////////////////////////////////////\n // Doc comment content\n /** @internal */ Token[Token[\"__StartDocComment\"] = 11] = \"__StartDocComment\";\n Token[Token[\"DocText\"] = 11] = \"DocText\";\n Token[Token[\"DocCodeSpan\"] = 12] = \"DocCodeSpan\";\n Token[Token[\"DocCodeFenceDelimiter\"] = 13] = \"DocCodeFenceDelimiter\";\n /** @internal */ Token[Token[\"__EndDocComment\"] = 14] = \"__EndDocComment\";\n ///////////////////////////////////////////////////////////////\n ///////////////////////////////////////////////////////////////\n // Punctuation\n /** @internal */ Token[Token[\"__StartPunctuation\"] = 14] = \"__StartPunctuation\";\n Token[Token[\"OpenBrace\"] = 14] = \"OpenBrace\";\n Token[Token[\"CloseBrace\"] = 15] = \"CloseBrace\";\n Token[Token[\"OpenParen\"] = 16] = \"OpenParen\";\n Token[Token[\"CloseParen\"] = 17] = \"CloseParen\";\n Token[Token[\"OpenBracket\"] = 18] = \"OpenBracket\";\n Token[Token[\"CloseBracket\"] = 19] = \"CloseBracket\";\n Token[Token[\"Dot\"] = 20] = \"Dot\";\n Token[Token[\"Ellipsis\"] = 21] = \"Ellipsis\";\n Token[Token[\"Semicolon\"] = 22] = \"Semicolon\";\n Token[Token[\"Comma\"] = 23] = \"Comma\";\n Token[Token[\"LessThan\"] = 24] = \"LessThan\";\n Token[Token[\"GreaterThan\"] = 25] = \"GreaterThan\";\n Token[Token[\"Equals\"] = 26] = \"Equals\";\n Token[Token[\"Ampersand\"] = 27] = \"Ampersand\";\n Token[Token[\"Bar\"] = 28] = \"Bar\";\n Token[Token[\"Question\"] = 29] = \"Question\";\n Token[Token[\"Colon\"] = 30] = \"Colon\";\n Token[Token[\"ColonColon\"] = 31] = \"ColonColon\";\n Token[Token[\"At\"] = 32] = \"At\";\n Token[Token[\"AtAt\"] = 33] = \"AtAt\";\n Token[Token[\"Hash\"] = 34] = \"Hash\";\n Token[Token[\"Star\"] = 35] = \"Star\";\n Token[Token[\"ForwardSlash\"] = 36] = \"ForwardSlash\";\n Token[Token[\"Plus\"] = 37] = \"Plus\";\n Token[Token[\"Hyphen\"] = 38] = \"Hyphen\";\n Token[Token[\"Exclamation\"] = 39] = \"Exclamation\";\n Token[Token[\"LessThanEquals\"] = 40] = \"LessThanEquals\";\n Token[Token[\"GreaterThanEquals\"] = 41] = \"GreaterThanEquals\";\n Token[Token[\"AmpsersandAmpersand\"] = 42] = \"AmpsersandAmpersand\";\n Token[Token[\"BarBar\"] = 43] = \"BarBar\";\n Token[Token[\"EqualsEquals\"] = 44] = \"EqualsEquals\";\n Token[Token[\"ExclamationEquals\"] = 45] = \"ExclamationEquals\";\n Token[Token[\"EqualsGreaterThan\"] = 46] = \"EqualsGreaterThan\";\n // Add new punctuation above\n /** @internal */ Token[Token[\"__EndPunctuation\"] = 47] = \"__EndPunctuation\";\n ///////////////////////////////////////////////////////////////\n ///////////////////////////////////////////////////////////////\n // Statement keywords\n /** @internal */ Token[Token[\"__StartKeyword\"] = 47] = \"__StartKeyword\";\n /** @internal */ Token[Token[\"__StartStatementKeyword\"] = 47] = \"__StartStatementKeyword\";\n Token[Token[\"ImportKeyword\"] = 47] = \"ImportKeyword\";\n Token[Token[\"ModelKeyword\"] = 48] = \"ModelKeyword\";\n Token[Token[\"ScalarKeyword\"] = 49] = \"ScalarKeyword\";\n Token[Token[\"NamespaceKeyword\"] = 50] = \"NamespaceKeyword\";\n Token[Token[\"UsingKeyword\"] = 51] = \"UsingKeyword\";\n Token[Token[\"OpKeyword\"] = 52] = \"OpKeyword\";\n Token[Token[\"EnumKeyword\"] = 53] = \"EnumKeyword\";\n Token[Token[\"AliasKeyword\"] = 54] = \"AliasKeyword\";\n Token[Token[\"IsKeyword\"] = 55] = \"IsKeyword\";\n Token[Token[\"InterfaceKeyword\"] = 56] = \"InterfaceKeyword\";\n Token[Token[\"UnionKeyword\"] = 57] = \"UnionKeyword\";\n Token[Token[\"ProjectionKeyword\"] = 58] = \"ProjectionKeyword\";\n Token[Token[\"ElseKeyword\"] = 59] = \"ElseKeyword\";\n Token[Token[\"IfKeyword\"] = 60] = \"IfKeyword\";\n Token[Token[\"DecKeyword\"] = 61] = \"DecKeyword\";\n Token[Token[\"FnKeyword\"] = 62] = \"FnKeyword\";\n Token[Token[\"ValueOfKeyword\"] = 63] = \"ValueOfKeyword\";\n // Add new statement keyword above\n /** @internal */ Token[Token[\"__EndStatementKeyword\"] = 64] = \"__EndStatementKeyword\";\n ///////////////////////////////////////////////////////////////\n ///////////////////////////////////////////////////////////////\n /** @internal */ Token[Token[\"__StartModifierKeyword\"] = 64] = \"__StartModifierKeyword\";\n Token[Token[\"ExternKeyword\"] = 64] = \"ExternKeyword\";\n /** @internal */ Token[Token[\"__EndModifierKeyword\"] = 65] = \"__EndModifierKeyword\";\n ///////////////////////////////////////////////////////////////\n ///////////////////////////////////////////////////////////////\n // Other keywords\n Token[Token[\"ExtendsKeyword\"] = 65] = \"ExtendsKeyword\";\n Token[Token[\"TrueKeyword\"] = 66] = \"TrueKeyword\";\n Token[Token[\"FalseKeyword\"] = 67] = \"FalseKeyword\";\n Token[Token[\"ReturnKeyword\"] = 68] = \"ReturnKeyword\";\n Token[Token[\"VoidKeyword\"] = 69] = \"VoidKeyword\";\n Token[Token[\"NeverKeyword\"] = 70] = \"NeverKeyword\";\n Token[Token[\"UnknownKeyword\"] = 71] = \"UnknownKeyword\";\n // Add new non-statement keyword above\n /** @internal */ Token[Token[\"__EndKeyword\"] = 72] = \"__EndKeyword\";\n ///////////////////////////////////////////////////////////////\n /** @internal */ Token[Token[\"__Count\"] = 72] = \"__Count\";\n})(Token || (Token = {}));\n/** @internal */\nexport const TokenDisplay = getTokenDisplayTable([\n [Token.None, \"none\"],\n [Token.Invalid, \"invalid\"],\n [Token.EndOfFile, \"end of file\"],\n [Token.SingleLineComment, \"single-line comment\"],\n [Token.MultiLineComment, \"multi-line comment\"],\n [Token.ConflictMarker, \"conflict marker\"],\n [Token.NumericLiteral, \"numeric literal\"],\n [Token.StringLiteral, \"string literal\"],\n [Token.NewLine, \"newline\"],\n [Token.Whitespace, \"whitespace\"],\n [Token.DocCodeFenceDelimiter, \"doc code fence delimiter\"],\n [Token.DocCodeSpan, \"doc code span\"],\n [Token.DocText, \"doc text\"],\n [Token.OpenBrace, \"'{'\"],\n [Token.CloseBrace, \"'}'\"],\n [Token.OpenParen, \"'('\"],\n [Token.CloseParen, \"')'\"],\n [Token.OpenBracket, \"'['\"],\n [Token.CloseBracket, \"']'\"],\n [Token.Dot, \"'.'\"],\n [Token.Ellipsis, \"'...'\"],\n [Token.Semicolon, \"';'\"],\n [Token.Comma, \"','\"],\n [Token.LessThan, \"'<'\"],\n [Token.GreaterThan, \"'>'\"],\n [Token.Equals, \"'='\"],\n [Token.Ampersand, \"'&'\"],\n [Token.Bar, \"'|'\"],\n [Token.Question, \"'?'\"],\n [Token.Colon, \"':'\"],\n [Token.ColonColon, \"'::'\"],\n [Token.At, \"'@'\"],\n [Token.AtAt, \"'@@'\"],\n [Token.Hash, \"'#'\"],\n [Token.Star, \"'*'\"],\n [Token.ForwardSlash, \"'/'\"],\n [Token.Plus, \"'+'\"],\n [Token.Hyphen, \"'-'\"],\n [Token.Exclamation, \"'!'\"],\n [Token.LessThanEquals, \"'<='\"],\n [Token.GreaterThanEquals, \"'>='\"],\n [Token.AmpsersandAmpersand, \"'&&'\"],\n [Token.BarBar, \"'||'\"],\n [Token.EqualsEquals, \"'=='\"],\n [Token.ExclamationEquals, \"'!='\"],\n [Token.EqualsGreaterThan, \"'=>'\"],\n [Token.Identifier, \"identifier\"],\n [Token.ImportKeyword, \"'import'\"],\n [Token.ModelKeyword, \"'model'\"],\n [Token.ScalarKeyword, \"'scalar'\"],\n [Token.NamespaceKeyword, \"'namespace'\"],\n [Token.UsingKeyword, \"'using'\"],\n [Token.OpKeyword, \"'op'\"],\n [Token.EnumKeyword, \"'enum'\"],\n [Token.AliasKeyword, \"'alias'\"],\n [Token.IsKeyword, \"'is'\"],\n [Token.InterfaceKeyword, \"'interface'\"],\n [Token.UnionKeyword, \"'union'\"],\n [Token.ProjectionKeyword, \"'projection'\"],\n [Token.ElseKeyword, \"'else'\"],\n [Token.IfKeyword, \"'if'\"],\n [Token.DecKeyword, \"'dec'\"],\n [Token.FnKeyword, \"'fn'\"],\n [Token.ValueOfKeyword, \"'valueof'\"],\n [Token.ExtendsKeyword, \"'extends'\"],\n [Token.TrueKeyword, \"'true'\"],\n [Token.FalseKeyword, \"'false'\"],\n [Token.ReturnKeyword, \"'return'\"],\n [Token.VoidKeyword, \"'void'\"],\n [Token.NeverKeyword, \"'never'\"],\n [Token.UnknownKeyword, \"'unknown'\"],\n [Token.ExternKeyword, \"'extern'\"],\n]);\n/** @internal */\nexport const Keywords = new Map([\n [\"import\", Token.ImportKeyword],\n [\"model\", Token.ModelKeyword],\n [\"scalar\", Token.ScalarKeyword],\n [\"namespace\", Token.NamespaceKeyword],\n [\"interface\", Token.InterfaceKeyword],\n [\"union\", Token.UnionKeyword],\n [\"if\", Token.IfKeyword],\n [\"else\", Token.ElseKeyword],\n [\"projection\", Token.ProjectionKeyword],\n [\"using\", Token.UsingKeyword],\n [\"op\", Token.OpKeyword],\n [\"extends\", Token.ExtendsKeyword],\n [\"is\", Token.IsKeyword],\n [\"enum\", Token.EnumKeyword],\n [\"alias\", Token.AliasKeyword],\n [\"dec\", Token.DecKeyword],\n [\"fn\", Token.FnKeyword],\n [\"valueof\", Token.ValueOfKeyword],\n [\"true\", Token.TrueKeyword],\n [\"false\", Token.FalseKeyword],\n [\"return\", Token.ReturnKeyword],\n [\"void\", Token.VoidKeyword],\n [\"never\", Token.NeverKeyword],\n [\"unknown\", Token.UnknownKeyword],\n [\"extern\", Token.ExternKeyword],\n]);\nexport var TokenFlags;\n(function (TokenFlags) {\n TokenFlags[TokenFlags[\"None\"] = 0] = \"None\";\n TokenFlags[TokenFlags[\"Escaped\"] = 1] = \"Escaped\";\n TokenFlags[TokenFlags[\"TripleQuoted\"] = 2] = \"TripleQuoted\";\n TokenFlags[TokenFlags[\"Unterminated\"] = 4] = \"Unterminated\";\n TokenFlags[TokenFlags[\"NonAscii\"] = 8] = \"NonAscii\";\n TokenFlags[TokenFlags[\"DocComment\"] = 16] = \"DocComment\";\n TokenFlags[TokenFlags[\"Backticked\"] = 32] = \"Backticked\";\n})(TokenFlags || (TokenFlags = {}));\nexport function isTrivia(token) {\n return token >= Token.__StartTrivia && token < Token.__EndTrivia;\n}\nexport function isComment(token) {\n return token === Token.SingleLineComment || token === Token.MultiLineComment;\n}\nexport function isKeyword(token) {\n return token >= Token.__StartKeyword && token < Token.__EndKeyword;\n}\nexport function isPunctuation(token) {\n return token >= Token.__StartPunctuation && token < Token.__EndPunctuation;\n}\nexport function isModifier(token) {\n return token >= Token.__StartModifierKeyword && token < Token.__EndModifierKeyword;\n}\nexport function isStatementKeyword(token) {\n return token >= Token.__StartStatementKeyword && token < Token.__EndStatementKeyword;\n}\nexport function createScanner(source, diagnosticHandler) {\n const file = typeof source === \"string\" ? createSourceFile(source, \"<anonymous file>\") : source;\n const input = file.text;\n let position = 0;\n let endPosition = input.length;\n let token = Token.None;\n let tokenPosition = -1;\n let tokenFlags = TokenFlags.None;\n // Skip BOM\n if (position < endPosition && input.charCodeAt(position) === 65279 /* CharCode.ByteOrderMark */) {\n position++;\n }\n return {\n get position() {\n return position;\n },\n get token() {\n return token;\n },\n get tokenPosition() {\n return tokenPosition;\n },\n get tokenFlags() {\n return tokenFlags;\n },\n file,\n scan,\n scanRange,\n scanDoc,\n eof,\n getTokenText,\n getTokenValue,\n };\n function eof() {\n return position >= endPosition;\n }\n function getTokenText() {\n return input.substring(tokenPosition, position);\n }\n function getTokenValue() {\n switch (token) {\n case Token.StringLiteral:\n return getStringTokenValue();\n case Token.Identifier:\n return getIdentifierTokenValue();\n default:\n return getTokenText();\n }\n }\n function lookAhead(offset) {\n const p = position + offset;\n if (p >= endPosition) {\n return Number.NaN;\n }\n return input.charCodeAt(p);\n }\n function scan() {\n tokenPosition = position;\n tokenFlags = TokenFlags.None;\n if (!eof()) {\n const ch = input.charCodeAt(position);\n switch (ch) {\n case 13 /* CharCode.CarriageReturn */:\n if (lookAhead(1) === 10 /* CharCode.LineFeed */) {\n position++;\n }\n // fallthrough\n case 10 /* CharCode.LineFeed */:\n return next(Token.NewLine);\n case 32 /* CharCode.Space */:\n case 9 /* CharCode.Tab */:\n case 11 /* CharCode.VerticalTab */:\n case 12 /* CharCode.FormFeed */:\n return scanWhitespace();\n case 40 /* CharCode.OpenParen */:\n return next(Token.OpenParen);\n case 41 /* CharCode.CloseParen */:\n return next(Token.CloseParen);\n case 44 /* CharCode.Comma */:\n return next(Token.Comma);\n case 58 /* CharCode.Colon */:\n return lookAhead(1) === 58 /* CharCode.Colon */ ? next(Token.ColonColon, 2) : next(Token.Colon);\n case 59 /* CharCode.Semicolon */:\n return next(Token.Semicolon);\n case 91 /* CharCode.OpenBracket */:\n return next(Token.OpenBracket);\n case 93 /* CharCode.CloseBracket */:\n return next(Token.CloseBracket);\n case 123 /* CharCode.OpenBrace */:\n return next(Token.OpenBrace);\n case 125 /* CharCode.CloseBrace */:\n return next(Token.CloseBrace);\n case 64 /* CharCode.At */:\n return lookAhead(1) === 64 /* CharCode.At */ ? next(Token.AtAt, 2) : next(Token.At);\n case 35 /* CharCode.Hash */:\n return next(Token.Hash);\n case 43 /* CharCode.Plus */:\n return isDigit(lookAhead(1)) ? scanSignedNumber() : next(Token.Plus);\n case 45 /* CharCode.Minus */:\n return isDigit(lookAhead(1)) ? scanSignedNumber() : next(Token.Hyphen);\n case 42 /* CharCode.Asterisk */:\n return next(Token.Star);\n case 63 /* CharCode.Question */:\n return next(Token.Question);\n case 38 /* CharCode.Ampersand */:\n return lookAhead(1) === 38 /* CharCode.Ampersand */\n ? next(Token.AmpsersandAmpersand, 2)\n : next(Token.Ampersand);\n case 46 /* CharCode.Dot */:\n return lookAhead(1) === 46 /* CharCode.Dot */ && lookAhead(2) === 46 /* CharCode.Dot */\n ? next(Token.Ellipsis, 3)\n : next(Token.Dot);\n case 47 /* CharCode.Slash */:\n switch (lookAhead(1)) {\n case 47 /* CharCode.Slash */:\n return scanSingleLineComment();\n case 42 /* CharCode.Asterisk */:\n return scanMultiLineComment();\n }\n return next(Token.ForwardSlash);\n case 48 /* CharCode._0 */:\n switch (lookAhead(1)) {\n case 120 /* CharCode.x */:\n return scanHexNumber();\n case 98 /* CharCode.b */:\n return scanBinaryNumber();\n }\n // fallthrough\n case 49 /* CharCode._1 */:\n case 50 /* CharCode._2 */:\n case 51 /* CharCode._3 */:\n case 52 /* CharCode._4 */:\n case 53 /* CharCode._5 */:\n case 54 /* CharCode._6 */:\n case 55 /* CharCode._7 */:\n case 56 /* CharCode._8 */:\n case 57 /* CharCode._9 */:\n return scanNumber();\n case 60 /* CharCode.LessThan */:\n if (atConflictMarker())\n return scanConflictMarker();\n return lookAhead(1) === 61 /* CharCode.Equals */\n ? next(Token.LessThanEquals, 2)\n : next(Token.LessThan);\n case 62 /* CharCode.GreaterThan */:\n if (atConflictMarker())\n return scanConflictMarker();\n return lookAhead(1) === 61 /* CharCode.Equals */\n ? next(Token.GreaterThanEquals, 2)\n : next(Token.GreaterThan);\n case 61 /* CharCode.Equals */:\n if (atConflictMarker())\n return scanConflictMarker();\n switch (lookAhead(1)) {\n case 61 /* CharCode.Equals */:\n return next(Token.EqualsEquals, 2);\n case 62 /* CharCode.GreaterThan */:\n return next(Token.EqualsGreaterThan, 2);\n }\n return next(Token.Equals);\n case 124 /* CharCode.Bar */:\n if (atConflictMarker())\n return scanConflictMarker();\n return lookAhead(1) === 124 /* CharCode.Bar */ ? next(Token.BarBar, 2) : next(Token.Bar);\n case 34 /* CharCode.DoubleQuote */:\n return lookAhead(1) === 34 /* CharCode.DoubleQuote */ && lookAhead(2) === 34 /* CharCode.DoubleQuote */\n ? scanTripleQuotedString()\n : scanString();\n case 33 /* CharCode.Exclamation */:\n return lookAhead(1) === 61 /* CharCode.Equals */\n ? next(Token.ExclamationEquals, 2)\n : next(Token.Exclamation);\n case 96 /* CharCode.Backtick */:\n return scanBacktickedIdentifier();\n default:\n if (isLowercaseAsciiLetter(ch)) {\n return scanIdentifierOrKeyword();\n }\n if (isAsciiIdentifierStart(ch)) {\n return scanIdentifier();\n }\n if (ch <= 127 /* CharCode.MaxAscii */) {\n return scanInvalidCharacter();\n }\n return scanNonAsciiToken();\n }\n }\n return (token = Token.EndOfFile);\n }\n function scanDoc() {\n tokenPosition = position;\n tokenFlags = TokenFlags.None;\n if (!eof()) {\n const ch = input.charCodeAt(position);\n switch (ch) {\n case 13 /* CharCode.CarriageReturn */:\n if (lookAhead(1) === 10 /* CharCode.LineFeed */) {\n position++;\n }\n // fallthrough\n case 10 /* CharCode.LineFeed */:\n return next(Token.NewLine);\n case 32 /* CharCode.Space */:\n case 9 /* CharCode.Tab */:\n case 11 /* CharCode.VerticalTab */:\n case 12 /* CharCode.FormFeed */:\n return scanWhitespace();\n case 125 /* CharCode.CloseBrace */:\n return next(Token.CloseBrace);\n case 64 /* CharCode.At */:\n return next(Token.At);\n case 42 /* CharCode.Asterisk */:\n return next(Token.Star);\n case 96 /* CharCode.Backtick */:\n return lookAhead(1) === 96 /* CharCode.Backtick */ && lookAhead(2) === 96 /* CharCode.Backtick */\n ? next(Token.DocCodeFenceDelimiter, 3)\n : scanDocCodeSpan();\n case 60 /* CharCode.LessThan */:\n case 62 /* CharCode.GreaterThan */:\n case 61 /* CharCode.Equals */:\n case 124 /* CharCode.Bar */:\n if (atConflictMarker())\n return scanConflictMarker();\n return next(Token.DocText);\n }\n if (isAsciiIdentifierStart(ch)) {\n return scanIdentifier();\n }\n if (ch <= 127 /* CharCode.MaxAscii */) {\n return next(Token.DocText);\n }\n const cp = input.codePointAt(position);\n if (isIdentifierStart(cp)) {\n return scanNonAsciiIdentifier(cp);\n }\n return scanUnknown(Token.DocText);\n }\n return (token = Token.EndOfFile);\n }\n function scanRange(range, callback) {\n const savedPosition = position;\n const savedEndPosition = endPosition;\n const savedToken = token;\n const savedTokenPosition = tokenPosition;\n const savedTokenFlags = tokenFlags;\n position = range.pos;\n endPosition = range.end;\n token = Token.None;\n tokenPosition = -1;\n tokenFlags = TokenFlags.None;\n const result = callback();\n position = savedPosition;\n endPosition = savedEndPosition;\n token = savedToken;\n tokenPosition = savedTokenPosition;\n tokenFlags = savedTokenFlags;\n return result;\n }\n function next(t, count = 1) {\n position += count;\n return (token = t);\n }\n function unterminated(t) {\n tokenFlags |= TokenFlags.Unterminated;\n error({ code: \"unterminated\", format: { token: TokenDisplay[t] } });\n return (token = t);\n }\n function scanNonAsciiToken() {\n tokenFlags |= TokenFlags.NonAscii;\n const ch = input.charCodeAt(position);\n if (isNonAsciiWhiteSpaceSingleLine(ch)) {\n return scanWhitespace();\n }\n const cp = input.codePointAt(position);\n if (isNonAsciiIdentifierCharacter(cp)) {\n return scanNonAsciiIdentifier(cp);\n }\n return scanInvalidCharacter();\n }\n function scanInvalidCharacter() {\n token = scanUnknown(Token.Invalid);\n error({ code: \"invalid-character\" });\n return token;\n }\n function scanUnknown(t) {\n const codePoint = input.codePointAt(position);\n return (token = next(t, utf16CodeUnits(codePoint)));\n }\n function error(report) {\n const diagnostic = createDiagnostic({\n ...report,\n target: { file, pos: tokenPosition, end: position },\n });\n diagnosticHandler(diagnostic);\n }\n function scanWhitespace() {\n do {\n position++;\n } while (!eof() && isWhiteSpaceSingleLine(input.charCodeAt(position)));\n return (token = Token.Whitespace);\n }\n function scanSignedNumber() {\n position++; // consume '+/-'\n return scanNumber();\n }\n function scanNumber() {\n scanKnownDigits();\n if (!eof() && input.charCodeAt(position) === 46 /* CharCode.Dot */) {\n position++;\n scanRequiredDigits();\n }\n if (!eof() && input.charCodeAt(position) === 101 /* CharCode.e */) {\n position++;\n const ch = input.charCodeAt(position);\n if (ch === 43 /* CharCode.Plus */ || ch === 45 /* CharCode.Minus */) {\n position++;\n }\n scanRequiredDigits();\n }\n return (token = Token.NumericLiteral);\n }\n function scanKnownDigits() {\n do {\n position++;\n } while (!eof() && isDigit(input.charCodeAt(position)));\n }\n function scanRequiredDigits() {\n if (eof() || !isDigit(input.charCodeAt(position))) {\n error({ code: \"digit-expected\" });\n return;\n }\n scanKnownDigits();\n }\n function scanHexNumber() {\n position += 2; // consume '0x'\n if (eof() || !isHexDigit(input.charCodeAt(position))) {\n error({ code: \"hex-digit-expected\" });\n return (token = Token.NumericLiteral);\n }\n do {\n position++;\n } while (!eof() && isHexDigit(input.charCodeAt(position)));\n return (token = Token.NumericLiteral);\n }\n function scanBinaryNumber() {\n position += 2; // consume '0b'\n if (eof() || !isBinaryDigit(input.charCodeAt(position))) {\n error({ code: \"binary-digit-expected\" });\n return (token = Token.NumericLiteral);\n }\n do {\n position++;\n } while (!eof() && isBinaryDigit(input.charCodeAt(position)));\n return (token = Token.NumericLiteral);\n }\n function scanSingleLineComment() {\n position = skipSingleLineComment(input, position, endPosition);\n return (token = Token.SingleLineComment);\n }\n function scanMultiLineComment() {\n token = Token.MultiLineComment;\n if (lookAhead(2) === 42 /* CharCode.Asterisk */) {\n tokenFlags |= TokenFlags.DocComment;\n }\n const [newPosition, terminated] = skipMultiLineComment(input, position);\n position = newPosition;\n return terminated ? token : unterminated(token);\n }\n function scanDocCodeSpan() {\n position++; // consume '`'\n loop: for (; !eof(); position++) {\n const ch = input.charCodeAt(position);\n switch (ch) {\n case 96 /* CharCode.Backtick */:\n position++;\n return (token = Token.DocCodeSpan);\n case 13 /* CharCode.CarriageReturn */:\n case 10 /* CharCode.LineFeed */:\n break loop;\n }\n }\n return unterminated(Token.DocCodeSpan);\n }\n function scanString() {\n position++; // consume '\"'\n loop: for (; !eof(); position++) {\n const ch = input.charCodeAt(position);\n switch (ch) {\n case 92 /* CharCode.Backslash */:\n tokenFlags |= TokenFlags.Escaped;\n position++;\n if (eof()) {\n break loop;\n }\n continue;\n case 34 /* CharCode.DoubleQuote */:\n position++;\n return (token = Token.StringLiteral);\n case 13 /* CharCode.CarriageReturn */:\n case 10 /* CharCode.LineFeed */:\n break loop;\n }\n }\n return unterminated(Token.StringLiteral);\n }\n function scanTripleQuotedString() {\n tokenFlags |= TokenFlags.TripleQuoted;\n position += 3; // consume '\"\"\"'\n for (; !eof(); position++) {\n if (input.charCodeAt(position) === 34 /* CharCode.DoubleQuote */ &&\n lookAhead(1) === 34 /* CharCode.DoubleQuote */ &&\n lookAhead(2) === 34 /* CharCode.DoubleQuote */) {\n position += 3;\n return (token = Token.StringLiteral);\n }\n }\n return unterminated(Token.StringLiteral);\n }\n function getStringTokenValue() {\n const quoteLength = tokenFlags & TokenFlags.TripleQuoted ? 3 : 1;\n const start = tokenPosition + quoteLength;\n const end = tokenFlags & TokenFlags.Unterminated ? position : position - quoteLength;\n if (tokenFlags & TokenFlags.TripleQuoted) {\n return unindentAndUnescapeTripleQuotedString(start, end);\n }\n if (tokenFlags & TokenFlags.Escaped) {\n return unescapeString(start, end);\n }\n return input.substring(start, end);\n }\n function getIdentifierTokenValue() {\n const start = tokenFlags & TokenFlags.Backticked ? tokenPosition + 1 : tokenPosition;\n const end = tokenFlags & TokenFlags.Backticked && !(tokenFlags & TokenFlags.Unterminated)\n ? position - 1\n : position;\n const text = tokenFlags & TokenFlags.Escaped ? unescapeString(start, end) : input.substring(start, end);\n if (tokenFlags & TokenFlags.NonAscii) {\n return text.normalize(\"NFC\");\n }\n return text;\n }\n function unindentAndUnescapeTripleQuotedString(start, end) {\n // ignore leading whitespace before required initial line break\n while (start < end && isWhiteSpaceSingleLine(input.charCodeAt(start))) {\n start++;\n }\n // remove required initial line break\n if (isLineBreak(input.charCodeAt(start))) {\n if (isCrlf(start, start, end)) {\n start++;\n }\n start++;\n }\n else {\n error({ code: \"no-new-line-start-triple-quote\" });\n }\n // remove whitespace before closing delimiter and record it as required\n // indentation for all lines\n const indentationEnd = end;\n while (end > start && isWhiteSpaceSingleLine(input.charCodeAt(end - 1))) {\n end--;\n }\n const indentationStart = end;\n // remove required final line break\n if (isLineBreak(input.charCodeAt(end - 1))) {\n if (isCrlf(end - 2, start, end)) {\n end--;\n }\n end--;\n }\n else {\n error({ code: \"no-new-line-end-triple-quote\" });\n }\n // remove required matching indentation from each line and unescape in the\n // process of doing so\n let result = \"\";\n let pos = start;\n while (pos < end) {\n // skip indentation at start of line\n start = skipMatchingIndentation(pos, end, indentationStart, indentationEnd);\n let ch;\n while (pos < end && !isLineBreak((ch = input.charCodeAt(pos)))) {\n if (ch !== 92 /* CharCode.Backslash */) {\n pos++;\n continue;\n }\n result += input.substring(start, pos);\n if (pos === end - 1) {\n error({ code: \"invalid-escape-sequence\" });\n pos++;\n }\n else {\n result += unescapeOne(pos);\n pos += 2;\n }\n start = pos;\n }\n if (pos < end) {\n if (isCrlf(pos, start, end)) {\n // CRLF in multi-line string is normalized to LF in string value.\n // This keeps program behavior unchanged by line-ending conversion.\n result += input.substring(start, pos);\n result += \"\\n\";\n pos += 2;\n }\n else {\n pos++; // include non-CRLF newline\n result += input.substring(start, pos);\n }\n start = pos;\n }\n }\n result += input.substring(start, pos);\n return result;\n }\n function isCrlf(pos, start, end) {\n return (pos >= start &&\n pos < end - 1 &&\n input.charCodeAt(pos) === 13 /* CharCode.CarriageReturn */ &&\n input.charCodeAt(pos + 1) === 10 /* CharCode.LineFeed */);\n }\n function skipMatchingIndentation(pos, end, indentationStart, indentationEnd) {\n let indentationPos = indentationStart;\n end = Math.min(end, pos + (indentationEnd - indentationStart));\n while (pos < end) {\n const ch = input.charCodeAt(pos);\n if (isLineBreak(ch)) {\n // allow subset of indentation if line has only whitespace\n break;\n }\n if (ch !== input.charCodeAt(indentationPos)) {\n error({ code: \"triple-quote-indent\" });\n break;\n }\n indentationPos++;\n pos++;\n }\n return pos;\n }\n function unescapeString(start, end) {\n let result = \"\";\n let pos = start;\n while (pos < end) {\n const ch = input.charCodeAt(pos);\n if (ch !== 92 /* CharCode.Backslash */) {\n pos++;\n continue;\n }\n if (pos === end - 1) {\n error({ code: \"invalid-escape-sequence\" });\n break;\n }\n result += input.substring(start, pos);\n result += unescapeOne(pos);\n pos += 2;\n start = pos;\n }\n result += input.substring(start, pos);\n return result;\n }\n function unescapeOne(pos) {\n const ch = input.charCodeAt(pos + 1);\n switch (ch) {\n case 114 /* CharCode.r */:\n return \"\\r\";\n case 110 /* CharCode.n */:\n return \"\\n\";\n case 116 /* CharCode.t */:\n return \"\\t\";\n case 34 /* CharCode.DoubleQuote */:\n return '\"';\n case 92 /* CharCode.Backslash */:\n return \"\\\\\";\n case 96 /* CharCode.Backtick */:\n return \"`\";\n default:\n error({ code: \"invalid-escape-sequence\" });\n return String.fromCharCode(ch);\n }\n }\n function scanIdentifierOrKeyword() {\n let count = 0;\n let ch = input.charCodeAt(position);\n while (true) {\n position++;\n count++;\n if (eof()) {\n break;\n }\n ch = input.charCodeAt(position);\n if (count < 10 /* KeywordLimit.MaxLength */ && isLowercaseAsciiLetter(ch)) {\n continue;\n }\n if (isAsciiIdentifierContinue(ch)) {\n return scanIdentifier();\n }\n if (ch > 127 /* CharCode.MaxAscii */) {\n const cp = input.codePointAt(position);\n if (isNonAsciiIdentifierCharacter(cp)) {\n return scanNonAsciiIdentifier(cp);\n }\n }\n break;\n }\n if (count >= 2 /* KeywordLimit.MinLength */ && count <= 10 /* KeywordLimit.MaxLength */) {\n const keyword = Keywords.get(getTokenText());\n if (keyword) {\n return (token = keyword);\n }\n }\n return (token = Token.Identifier);\n }\n function scanIdentifier() {\n let ch;\n do {\n position++;\n if (eof()) {\n return (token = Token.Identifier);\n }\n } while (isAsciiIdentifierContinue((ch = input.charCodeAt(position))));\n if (ch > 127 /* CharCode.MaxAscii */) {\n const cp = input.codePointAt(position);\n if (isNonAsciiIdentifierCharacter(cp)) {\n return scanNonAsciiIdentifier(cp);\n }\n }\n return (token = Token.Identifier);\n }\n function scanBacktickedIdentifier() {\n position++; // consume '`'\n tokenFlags |= TokenFlags.Backticked;\n loop: for (; !eof(); position++) {\n const ch = input.charCodeAt(position);\n switch (ch) {\n case 92 /* CharCode.Backslash */:\n position++;\n tokenFlags |= TokenFlags.Escaped;\n continue;\n case 96 /* CharCode.Backtick */:\n position++;\n return (token = Token.Identifier);\n case 13 /* CharCode.CarriageReturn */:\n case 10 /* CharCode.LineFeed */:\n break loop;\n default:\n if (ch > 127 /* CharCode.MaxAscii */) {\n tokenFlags |= TokenFlags.NonAscii;\n }\n }\n }\n return unterminated(Token.Identifier);\n }\n function scanNonAsciiIdentifier(startCodePoint) {\n tokenFlags |= TokenFlags.NonAscii;\n let cp = startCodePoint;\n do {\n position += utf16CodeUnits(cp);\n } while (!eof() && isIdentifierContinue((cp = input.codePointAt(position))));\n return (token = Token.Identifier);\n }\n function atConflictMarker() {\n return isConflictMarker(input, position, endPosition);\n }\n function scanConflictMarker() {\n const marker = input.charCodeAt(position);\n position += mergeConflictMarkerLength;\n error({ code: \"conflict-marker\" });\n if (marker === 60 /* CharCode.LessThan */ || marker === 62 /* CharCode.GreaterThan */) {\n // Consume everything from >>>>>>> or <<<<<<< to the end of the line.\n while (position < endPosition && !isLineBreak(input.charCodeAt(position))) {\n position++;\n }\n }\n else {\n // Consume everything from the start of a ||||||| or =======\n // marker to the start of the next ======= or >>>>>>> marker.\n while (position < endPosition) {\n const ch = input.charCodeAt(position);\n if ((ch === 61 /* CharCode.Equals */ || ch === 62 /* CharCode.GreaterThan */) &&\n ch !== marker &&\n isConflictMarker(input, position, endPosition)) {\n break;\n }\n position++;\n }\n }\n return (token = Token.ConflictMarker);\n }\n}\nexport function skipTrivia(input, position, endPosition = input.length) {\n while (position < endPosition) {\n const ch = input.charCodeAt(position);\n if (isWhiteSpace(ch)) {\n position++;\n continue;\n }\n if (ch === 47 /* CharCode.Slash */) {\n switch (input.charCodeAt(position + 1)) {\n case 47 /* CharCode.Slash */:\n position = skipSingleLineComment(input, position, endPosition);\n continue;\n case 42 /* CharCode.Asterisk */:\n position = skipMultiLineComment(input, position, endPosition)[0];\n continue;\n }\n }\n break;\n }\n return position;\n}\nexport function skipWhiteSpace(input, position, endPosition = input.length) {\n while (position < endPosition) {\n const ch = input.charCodeAt(position);\n if (!isWhiteSpace(ch)) {\n break;\n }\n position++;\n }\n return position;\n}\nfunction skipSingleLineComment(input, position, endPosition = input.length) {\n position += 2; // consume '//'\n for (; position < endPosition; position++) {\n if (isLineBreak(input.charCodeAt(position))) {\n break;\n }\n }\n return position;\n}\nfunction skipMultiLineComment(input, position, endPosition = input.length) {\n position += 2; // consume '/*'\n for (; position < endPosition; position++) {\n if (input.charCodeAt(position) === 42 /* CharCode.Asterisk */ &&\n input.charCodeAt(position + 1) === 47 /* CharCode.Slash */) {\n return [position + 2, true];\n }\n }\n return [position, false];\n}\nfunction isConflictMarker(input, position, endPosition = input.length) {\n // Conflict markers must be at the start of a line.\n const ch = input.charCodeAt(position);\n if (position === 0 || isLineBreak(input.charCodeAt(position - 1))) {\n if (position + mergeConflictMarkerLength < endPosition) {\n for (let i = 0; i < mergeConflictMarkerLength; i++) {\n if (input.charCodeAt(position + i) !== ch) {\n return false;\n }\n }\n return (ch === 61 /* CharCode.Equals */ ||\n input.charCodeAt(position + mergeConflictMarkerLength) === 32 /* CharCode.Space */);\n }\n }\n return false;\n}\nfunction getTokenDisplayTable(entries) {\n const table = new Array(entries.length);\n for (const [token, display] of entries) {\n compilerAssert(token >= 0 && token < Token.__Count, `Invalid entry in token display table, ${token}, ${Token[token]}, ${display}`);\n compilerAssert(!table[token], `Duplicate entry in token display table for: ${token}, ${Token[token]}, ${display}`);\n table[token] = display;\n }\n for (let token = 0; token < Token.__Count; token++) {\n compilerAssert(table[token], `Missing entry in token display table: ${token}, ${Token[token]}`);\n }\n return table;\n}\n//# sourceMappingURL=scanner.js.map","import prettier from \"prettier\";\nimport { SyntaxKind } from \"../../core/types.js\";\nconst { util } = prettier;\n/**\n * Override the default behavior to attach comments to syntax node.\n */\nexport const commentHandler = {\n ownLine: (comment, text, options, ast, isLastComment) => [\n addEmptyInterfaceComment,\n addEmptyModelComment,\n addStatementDecoratorComment,\n handleOnlyComments,\n ].some((x) => x({ comment, text, options, ast: ast, isLastComment })),\n};\n/**\n * When a comment is on an empty interface make sure it gets added as a dangling comment on it and not on the identifier.\n *\n * @example\n *\n * interface Foo {\n * // My comment\n * }\n */\nfunction addEmptyInterfaceComment({ comment }) {\n const { precedingNode, enclosingNode } = comment;\n if (enclosingNode &&\n enclosingNode.kind === SyntaxKind.InterfaceStatement &&\n enclosingNode.operations.length === 0 &&\n precedingNode &&\n precedingNode.kind === SyntaxKind.Identifier) {\n util.addDanglingComment(enclosingNode, comment, undefined);\n return true;\n }\n return false;\n}\n/**\n * When a comment is in between decorators.\n *\n * @example\n *\n * @foo\n * // My comment\n * @bar\n * model Foo {\n * }\n */\nfunction addStatementDecoratorComment({ comment }) {\n const { enclosingNode, precedingNode } = comment;\n if (precedingNode &&\n precedingNode.kind === SyntaxKind.DecoratorExpression &&\n enclosingNode &&\n (enclosingNode.kind === SyntaxKind.NamespaceStatement ||\n enclosingNode.kind === SyntaxKind.ModelStatement ||\n enclosingNode.kind === SyntaxKind.EnumStatement ||\n enclosingNode.kind === SyntaxKind.OperationStatement ||\n enclosingNode.kind === SyntaxKind.ScalarStatement ||\n enclosingNode.kind === SyntaxKind.InterfaceStatement ||\n enclosingNode.kind === SyntaxKind.ModelProperty ||\n enclosingNode.kind === SyntaxKind.EnumMember ||\n enclosingNode.kind === SyntaxKind.UnionStatement)) {\n util.addTrailingComment(precedingNode, comment);\n return true;\n }\n return false;\n}\n/**\n * When a comment is on an empty model make sure it gets added as a dangling comment on it and not on the identifier.\n *\n * @example\n *\n * model Foo {\n * // My comment\n * }\n */\nfunction addEmptyModelComment({ comment }) {\n const { precedingNode, enclosingNode } = comment;\n if (enclosingNode &&\n enclosingNode.kind === SyntaxKind.ModelStatement &&\n enclosingNode.properties.length === 0 &&\n precedingNode &&\n (precedingNode === enclosingNode.is ||\n precedingNode === enclosingNode.id ||\n precedingNode === enclosingNode.extends)) {\n util.addDanglingComment(enclosingNode, comment, undefined);\n return true;\n }\n return false;\n}\nfunction handleOnlyComments({ comment, ast, isLastComment }) {\n var _a, _b;\n const { enclosingNode } = comment;\n if (((_a = ast === null || ast === void 0 ? void 0 : ast.statements) === null || _a === void 0 ? void 0 : _a.length) === 0) {\n if (isLastComment) {\n util.addDanglingComment(ast, comment, undefined);\n }\n else {\n util.addLeadingComment(ast, comment);\n }\n return true;\n }\n if ((enclosingNode === null || enclosingNode === void 0 ? void 0 : enclosingNode.kind) === SyntaxKind.TypeSpecScript &&\n enclosingNode.statements.length === 0 &&\n ((_b = enclosingNode.directives) === null || _b === void 0 ? void 0 : _b.length) === 0) {\n if (isLastComment) {\n util.addDanglingComment(enclosingNode, comment, undefined);\n }\n else {\n util.addLeadingComment(enclosingNode, comment);\n }\n return true;\n }\n return false;\n}\n//# sourceMappingURL=comment-handler.js.map","import { SyntaxKind } from \"../../core/types.js\";\n/**\n * Check if the current path should be wrapped in parentheses\n * @param path Prettier print path.\n * @param options Prettier options\n */\nexport function needsParens(path, options) {\n const parent = path.getParentNode();\n if (!parent) {\n return false;\n }\n const node = path.getValue();\n switch (node.kind) {\n case SyntaxKind.IntersectionExpression:\n return (parent.kind === SyntaxKind.UnionExpression || parent.kind === SyntaxKind.ArrayExpression);\n case SyntaxKind.UnionExpression:\n return (parent.kind === SyntaxKind.IntersectionExpression ||\n parent.kind === SyntaxKind.ArrayExpression);\n case SyntaxKind.ProjectionLogicalExpression:\n return parent.kind === SyntaxKind.ProjectionLogicalExpression;\n case SyntaxKind.ProjectionArithmeticExpression:\n return parent.kind === SyntaxKind.ProjectionArithmeticExpression;\n default:\n return false;\n }\n}\n//# sourceMappingURL=needs-parens.js.map","import prettier from \"prettier\";\nimport { isIdentifierContinue, isIdentifierStart, utf16CodeUnits } from \"../../core/charcode.js\";\nimport { compilerAssert } from \"../../core/diagnostics.js\";\nimport { Keywords } from \"../../core/scanner.js\";\nimport { SyntaxKind, } from \"../../core/types.js\";\nimport { commentHandler } from \"./comment-handler.js\";\nimport { needsParens } from \"./needs-parens.js\";\nconst { align, breakParent, group, hardline, ifBreak, indent, join, line, softline } = prettier.doc.builders;\nconst { isNextLineEmpty } = prettier.util;\n/**\n * If the decorators for that node should try to be kept inline.\n */\nconst DecoratorsTryInline = {\n modelProperty: true,\n enumMember: true,\n unionVariant: true,\n};\nexport const typespecPrinter = {\n print: printTypeSpec,\n canAttachComment: canAttachComment,\n printComment: printComment,\n handleComments: commentHandler,\n};\nexport function printTypeSpec(\n// Path to the AST node to print\npath, options, print) {\n const node = path.getValue();\n const docs = printDocComments(path, options, print);\n const directives = shouldPrintDirective(node) ? printDirectives(path, options, print) : \"\";\n const printedNode = printNode(path, options, print);\n const value = needsParens(path, options) ? [\"(\", printedNode, \")\"] : printedNode;\n const parts = [docs, directives, value];\n if (node.kind === SyntaxKind.TypeSpecScript) {\n // For TypeSpecScript(root of typespec document) we had a new line at the end.\n // This must be done here so the hardline entry can be the last item of the doc array returned by the printer\n // so the markdown(and other embedded formatter) can omit that extra line.\n parts.push(hardline);\n }\n return parts;\n}\nfunction shouldPrintDirective(node) {\n // Model property handle printing directive itself.\n return node.kind !== SyntaxKind.ModelProperty;\n}\nexport function printNode(\n// Path to the AST node to print\npath, options, print) {\n const node = path.getValue();\n switch (node.kind) {\n // Root\n case SyntaxKind.TypeSpecScript:\n return printTypeSpecScript(path, options, print);\n // Statements\n case SyntaxKind.ImportStatement:\n return [`import \"${node.path.value}\";`];\n case SyntaxKind.UsingStatement:\n return [`using `, path.call(print, \"name\"), `;`];\n case SyntaxKind.OperationStatement:\n return printOperationStatement(path, options, print);\n case SyntaxKind.OperationSignatureDeclaration:\n return printOperationSignatureDeclaration(path, options, print);\n case SyntaxKind.OperationSignatureReference:\n return printOperationSignatureReference(path, options, print);\n case SyntaxKind.NamespaceStatement:\n return printNamespaceStatement(path, options, print);\n case SyntaxKind.ModelStatement:\n return printModelStatement(path, options, print);\n case SyntaxKind.ScalarStatement:\n return printScalarStatement(path, options, print);\n case SyntaxKind.AliasStatement:\n return printAliasStatement(path, options, print);\n case SyntaxKind.EnumStatement:\n return printEnumStatement(path, options, print);\n case SyntaxKind.UnionStatement:\n return printUnionStatement(path, options, print);\n case SyntaxKind.InterfaceStatement:\n return printInterfaceStatement(path, options, print);\n // Others.\n case SyntaxKind.Identifier:\n return printIdentifier(node, options);\n case SyntaxKind.StringLiteral:\n return printStringLiteral(path, options);\n case SyntaxKind.NumericLiteral:\n return printNumberLiteral(path, options);\n case SyntaxKind.BooleanLiteral:\n return printBooleanLiteral(path, options);\n case SyntaxKind.ModelExpression:\n return printModelExpression(path, options, print);\n case SyntaxKind.ModelProperty:\n return printModelProperty(path, options, print);\n case SyntaxKind.DecoratorExpression:\n return printDecorator(path, options, print);\n case SyntaxKind.AugmentDecoratorStatement:\n return printAugmentDecorator(path, options, print);\n case SyntaxKind.DirectiveExpression:\n return printDirective(path, options, print);\n case SyntaxKind.UnionExpression:\n return printUnion(path, options, print);\n case SyntaxKind.IntersectionExpression:\n return printIntersection(path, options, print);\n case SyntaxKind.ArrayExpression:\n return printArray(path, options, print);\n case SyntaxKind.TupleExpression:\n return printTuple(path, options, print);\n case SyntaxKind.MemberExpression:\n return printMemberExpression(path, options, print);\n case SyntaxKind.EnumMember:\n return printEnumMember(path, options, print);\n case SyntaxKind.EnumSpreadMember:\n return printEnumSpreadMember(path, options, print);\n case SyntaxKind.UnionVariant:\n return printUnionVariant(path, options, print);\n case SyntaxKind.TypeReference:\n return printTypeReference(path, options, print);\n case SyntaxKind.ValueOfExpression:\n return printValueOfExpression(path, options, print);\n case SyntaxKind.TemplateParameterDeclaration:\n return printTemplateParameterDeclaration(path, options, print);\n case SyntaxKind.ModelSpreadProperty:\n return printModelSpread(path, options, print);\n case SyntaxKind.DecoratorDeclarationStatement:\n return printDecoratorDeclarationStatement(path, options, print);\n case SyntaxKind.FunctionDeclarationStatement:\n return printFunctionDeclarationStatement(path, options, print);\n case SyntaxKind.FunctionParameter:\n return printFunctionParameterDeclaration(path, options, print);\n case SyntaxKind.ExternKeyword:\n return \"extern\";\n case SyntaxKind.VoidKeyword:\n return \"void\";\n case SyntaxKind.NeverKeyword:\n return \"never\";\n case SyntaxKind.UnknownKeyword:\n return \"unknown\";\n case SyntaxKind.ProjectionStatement:\n return printProjectionStatement(path, options, print);\n case SyntaxKind.ProjectionModelSelector:\n return \"model\";\n case SyntaxKind.ProjectionModelPropertySelector:\n return \"modelproperty\";\n case SyntaxKind.ProjectionOperationSelector:\n return \"op\";\n case SyntaxKind.ProjectionUnionSelector:\n return \"union\";\n case SyntaxKind.ProjectionUnionVariantSelector:\n return \"unionvariant\";\n case SyntaxKind.ProjectionInterfaceSelector:\n return \"interface\";\n case SyntaxKind.ProjectionEnumSelector:\n return \"enum\";\n case SyntaxKind.ProjectionEnumMemberSelector:\n return \"enummember\";\n case SyntaxKind.Projection:\n return printProjection(path, options, print);\n case SyntaxKind.ProjectionParameterDeclaration:\n return printProjectionParameterDeclaration(path, options, print);\n case SyntaxKind.ProjectionExpressionStatement:\n return printProjectionExpressionStatement(path, options, print);\n case SyntaxKind.ProjectionIfExpression:\n return printProjectionIfExpressionNode(path, options, print);\n case SyntaxKind.ProjectionBlockExpression:\n return printProjectionBlockExpressionNode(path, options, print);\n case SyntaxKind.ProjectionMemberExpression:\n return printProjectionMemberExpression(path, options, print);\n case SyntaxKind.ProjectionLogicalExpression:\n case SyntaxKind.ProjectionEqualityExpression:\n case SyntaxKind.ProjectionRelationalExpression:\n case SyntaxKind.ProjectionArithmeticExpression:\n return printProjectionLeftRightExpression(path, options, print);\n case SyntaxKind.ProjectionUnaryExpression:\n return printProjectionUnaryExpression(path, options, print);\n case SyntaxKind.ProjectionCallExpression:\n return printProjectionCallExpression(path, options, print);\n case SyntaxKind.ProjectionLambdaExpression:\n return printProjectionLambdaExpression(path, options, print);\n case SyntaxKind.ProjectionLambdaParameterDeclaration:\n return printProjectionLambdaParameterDeclaration(path, options, print);\n case SyntaxKind.ProjectionModelExpression:\n return printModelExpression(path, options, print);\n case SyntaxKind.ProjectionModelProperty:\n return printModelProperty(path, options, print);\n case SyntaxKind.ProjectionModelSpreadProperty:\n return printModelSpread(path, options, print);\n case SyntaxKind.ProjectionTupleExpression:\n return printTuple(path, options, print);\n case SyntaxKind.ProjectionDecoratorReferenceExpression:\n return path.call(print, \"target\");\n case SyntaxKind.Return:\n return printReturnExpression(path, options, print);\n case SyntaxKind.Doc:\n return printDoc(path, options, print);\n case SyntaxKind.DocText:\n case SyntaxKind.DocParamTag:\n case SyntaxKind.DocTemplateTag:\n case SyntaxKind.DocReturnsTag:\n case SyntaxKind.DocUnknownTag:\n // https://github.com/microsoft/typespec/issues/1319 Tracks pretty-printing doc comments.\n compilerAssert(false, \"Currently, doc comments are only handled as regular comments and we do not opt in to parsing them so we shouldn't reach here.\");\n return \"\";\n case SyntaxKind.EmptyStatement:\n return \"\";\n case SyntaxKind.JsSourceFile:\n case SyntaxKind.InvalidStatement:\n return getRawText(node, options);\n default:\n // Dummy const to ensure we handle all node types.\n // If you get an error here, add a case for the new node type\n // you added..\n const _assertNever = node;\n return getRawText(node, options);\n }\n}\nexport function printTypeSpecScript(path, options, print) {\n const node = path.getValue();\n const nodeHasComments = hasComments(node, CommentCheckFlags.Dangling);\n const body = [];\n if (nodeHasComments) {\n body.push(printDanglingComments(path, options, { sameIndent: true }));\n }\n body.push(printStatementSequence(path, options, print, \"statements\"));\n return body;\n}\nexport function printAliasStatement(path, options, print) {\n const id = path.call(print, \"id\");\n const template = printTemplateParameters(path, options, print, \"templateParameters\");\n return [\"alias \", id, template, \" = \", path.call(print, \"value\"), \";\"];\n}\nfunction printTemplateParameters(path, options, print, propertyName) {\n const node = path.getValue();\n const args = node[propertyName];\n if (args.length === 0) {\n return \"\";\n }\n const shouldHug = args.length === 1;\n if (shouldHug) {\n return [\"<\", join(\", \", path.map(print, propertyName)), \">\"];\n }\n else {\n const body = indent([softline, join([\", \", softline], path.map(print, propertyName))]);\n return group([\"<\", body, softline, \">\"]);\n }\n}\nexport function canAttachComment(node) {\n const kind = node.kind;\n return Boolean(kind &&\n kind !== SyntaxKind.LineComment &&\n kind !== SyntaxKind.BlockComment &&\n kind !== SyntaxKind.EmptyStatement &&\n kind !== SyntaxKind.Doc &&\n kind !== SyntaxKind.DocParamTag &&\n kind !== SyntaxKind.DocReturnsTag &&\n kind !== SyntaxKind.DocTemplateTag &&\n kind !== SyntaxKind.DocText &&\n kind !== SyntaxKind.DocUnknownTag &&\n !(node.flags & 8 /* NodeFlags.Synthetic */));\n}\nexport function printComment(commentPath, options) {\n const comment = commentPath.getValue();\n comment.printed = true;\n switch (comment.kind) {\n case SyntaxKind.BlockComment:\n return printBlockComment(commentPath, options);\n case SyntaxKind.LineComment:\n return `${options.originalText.slice(comment.pos, comment.end).trimEnd()}`;\n default:\n throw new Error(`Not a comment: ${JSON.stringify(comment)}`);\n }\n}\nfunction printBlockComment(commentPath, options) {\n const comment = commentPath.getValue();\n const rawComment = options.originalText.slice(comment.pos + 2, comment.end - 2);\n const printed = isIndentableBlockComment(rawComment)\n ? printIndentableBlockCommentContent(rawComment)\n : rawComment;\n return [\"/*\", printed, \"*/\"];\n}\nfunction isIndentableBlockComment(rawComment) {\n // If the comment has multiple lines and every line starts with a star\n // we can fix the indentation of each line. The stars in the `/*` and\n // `*/` delimiters are not included in the comment value, so add them\n // back first.\n const lines = `*${rawComment}*`.split(\"\\n\");\n return lines.length > 1 && lines.every((line) => line.trim()[0] === \"*\");\n}\nfunction printIndentableBlockCommentContent(rawComment) {\n const lines = rawComment.split(\"\\n\");\n return [\n join(hardline, lines.map((line, index) => index === 0\n ? line.trimEnd()\n : \" \" + (index < lines.length - 1 ? line.trim() : line.trimStart()))),\n ];\n}\n/** Print a doc comment. */\nfunction printDoc(path, options, print) {\n const node = path.getValue();\n const rawComment = options.originalText.slice(node.pos + 3, node.end - 2);\n const printed = isIndentableBlockComment(rawComment)\n ? printIndentableBlockCommentContent(rawComment)\n : rawComment.includes(\"\\n\")\n ? rawComment\n : ` ${rawComment.trim()} `;\n return [\"/**\", printed, \"*/\"];\n}\nexport function printDecorators(path, options, print, { tryInline }) {\n const node = path.getValue();\n if (node.decorators.length === 0) {\n return { decorators: \"\", multiline: false };\n }\n const shouldBreak = shouldDecoratorBreakLine(path, options, { tryInline });\n const decorators = path.map((x) => [print(x), ifBreak(line, \" \")], \"decorators\");\n return {\n decorators: group([shouldBreak ? breakParent : \"\", decorators]),\n multiline: shouldBreak,\n };\n}\n/** Check if the decorators of the given node should be broken in sparate line */\nfunction shouldDecoratorBreakLine(path, options, { tryInline }) {\n const node = path.getValue();\n return (!tryInline || node.decorators.length >= 3 || hasNewlineBetweenOrAfterDecorators(node, options));\n}\n/**\n * Check if there is already new lines in between the decorators of the node.\n */\nfunction hasNewlineBetweenOrAfterDecorators(node, options) {\n return node.decorators.some((decorator) => prettier.util.hasNewline(options.originalText, decorator.end));\n}\nexport function printDecorator(path, options, print) {\n const args = printDecoratorArgs(path, options, print);\n return [\"@\", path.call(print, \"target\"), args];\n}\nexport function printAugmentDecorator(path, options, print) {\n const args = printAugmentDecoratorArgs(path, options, print);\n return [\"@@\", path.call(print, \"target\"), args, \";\"];\n}\nfunction printAugmentDecoratorArgs(path, options, print) {\n return [\n \"(\",\n group([\n indent(join(\", \", [\n path.call(print, \"targetType\"),\n ...path.map((arg) => [softline, print(arg)], \"arguments\"),\n ])),\n softline,\n ]),\n \")\",\n ];\n}\nexport function printDocComments(path, options, print) {\n const node = path.getValue();\n if (node.docs === undefined || node.docs.length === 0) {\n return \"\";\n }\n const docs = path.map((x) => [print(x), line], \"docs\");\n return group([...docs, breakParent]);\n}\nexport function printDirectives(path, options, print) {\n const node = path.getValue();\n if (node.directives === undefined || node.directives.length === 0) {\n return \"\";\n }\n const directives = path.map((x) => [print(x), line], \"directives\");\n return group([...directives, breakParent]);\n}\nexport function printDirective(path, options, print) {\n const args = printDirectiveArgs(path, options, print);\n return [\"#\", path.call(print, \"target\"), \" \", args];\n}\nfunction printDecoratorArgs(path, options, print) {\n const node = path.getValue();\n if (node.arguments.length === 0) {\n return \"\";\n }\n // So that decorator with single object arguments have ( and { hugging.\n // @deco({\n // value: \"foo\"\n // })\n const shouldHug = node.arguments.length === 1 &&\n (node.arguments[0].kind === SyntaxKind.ModelExpression ||\n node.arguments[0].kind === SyntaxKind.StringLiteral);\n if (shouldHug) {\n return [\n \"(\",\n join(\", \", path.map((arg) => [print(arg)], \"arguments\")),\n \")\",\n ];\n }\n return [\n \"(\",\n group([\n indent(join(\", \", path.map((arg) => [softline, print(arg)], \"arguments\"))),\n softline,\n ]),\n \")\",\n ];\n}\nexport function printDirectiveArgs(path, options, print) {\n const node = path.getValue();\n if (node.arguments.length === 0) {\n return \"\";\n }\n return join(\" \", path.map((arg) => [print(arg)], \"arguments\"));\n}\nexport function printEnumStatement(path, options, print) {\n const { decorators } = printDecorators(path, options, print, { tryInline: false });\n const id = path.call(print, \"id\");\n return [decorators, \"enum \", id, \" \", printEnumBlock(path, options, print)];\n}\nfunction printEnumBlock(path, options, print) {\n const node = path.getValue();\n if (node.members.length === 0) {\n return \"{}\";\n }\n return group([\n \"{\",\n indent([\n hardline,\n join(hardline, path.map((x) => [print(x), \",\"], \"members\")),\n ]),\n hardline,\n \"}\",\n ]);\n}\nexport function printEnumMember(path, options, print) {\n const node = path.getValue();\n const id = path.call(print, \"id\");\n const value = node.value ? [\": \", path.call(print, \"value\")] : \"\";\n const { decorators, multiline } = printDecorators(path, options, print, {\n tryInline: DecoratorsTryInline.enumMember,\n });\n const propertyIndex = path.stack[path.stack.length - 2];\n const isNotFirst = typeof propertyIndex === \"number\" && propertyIndex > 0;\n return [multiline && isNotFirst ? hardline : \"\", decorators, id, value];\n}\nfunction printEnumSpreadMember(path, options, print) {\n return [\"...\", path.call(print, \"target\")];\n}\nexport function printUnionStatement(path, options, print) {\n const id = path.call(print, \"id\");\n const { decorators } = printDecorators(path, options, print, { tryInline: false });\n const generic = printTemplateParameters(path, options, print, \"templateParameters\");\n return [decorators, \"union \", id, generic, \" \", printUnionVariantsBlock(path, options, print)];\n}\nexport function printUnionVariantsBlock(path, options, print) {\n const node = path.getValue();\n if (node.options.length === 0) {\n return \"{}\";\n }\n return group([\n \"{\",\n indent([\n hardline,\n join(hardline, path.map((x) => [print(x), \",\"], \"options\")),\n ]),\n hardline,\n \"}\",\n ]);\n}\nexport function printUnionVariant(path, options, print) {\n const id = path.call(print, \"id\");\n const value = [\": \", path.call(print, \"value\")];\n const { decorators } = printDecorators(path, options, print, {\n tryInline: DecoratorsTryInline.unionVariant,\n });\n return [decorators, id, value];\n}\nexport function printInterfaceStatement(path, options, print) {\n const id = path.call(print, \"id\");\n const { decorators } = printDecorators(path, options, print, { tryInline: false });\n const generic = printTemplateParameters(path, options, print, \"templateParameters\");\n const extendList = printInterfaceExtends(path, options, print);\n return [\n decorators,\n \"interface \",\n id,\n generic,\n extendList,\n \" \",\n printInterfaceMembers(path, options, print),\n ];\n}\nfunction printInterfaceExtends(path, options, print) {\n const node = path.getValue();\n if (node.extends.length === 0) {\n return \"\";\n }\n const keyword = \"extends \";\n return [group(indent([line, keyword, indent(join([\",\", line], path.map(print, \"extends\")))]))];\n}\nexport function printInterfaceMembers(path, options, print) {\n const node = path.getValue();\n const hasOperations = node.operations.length > 0;\n const nodeHasComments = hasComments(node, CommentCheckFlags.Dangling);\n if (!hasOperations && !nodeHasComments) {\n return \"{}\";\n }\n const lastOperation = node.operations[node.operations.length - 1];\n const parts = [];\n path.each((operationPath) => {\n const node = operationPath.getValue();\n const printed = print(operationPath);\n parts.push(printed);\n if (node !== lastOperation) {\n parts.push(hardline);\n if (isNextLineEmpty(options.originalText, node, options.locEnd)) {\n parts.push(hardline);\n }\n }\n }, \"operations\");\n const body = [hardline, parts];\n if (nodeHasComments) {\n body.push(printDanglingComments(path, options, { sameIndent: true }));\n }\n return group([\"{\", indent(body), hardline, \"}\"]);\n}\nfunction printDanglingComments(path, options, { sameIndent }) {\n const node = path.getValue();\n const parts = [];\n if (!node || !node.comments) {\n return \"\";\n }\n path.each((commentPath) => {\n const comment = commentPath.getValue();\n if (!comment.leading && !comment.trailing) {\n parts.push(printComment(path, options));\n }\n }, \"comments\");\n if (parts.length === 0) {\n return \"\";\n }\n if (sameIndent) {\n return join(hardline, parts);\n }\n return indent([hardline, join(hardline, parts)]);\n}\n/**\n * Handle printing an intersection node.\n * @example `Foo & Bar` or `{foo: string} & {bar: string}`\n *\n * @param path Prettier AST Path.\n * @param options Prettier options\n * @param print Prettier child print callback.\n * @returns Prettier document.\n */\nexport function printIntersection(path, options, print) {\n const node = path.getValue();\n const types = path.map(print, \"options\");\n const result = [];\n let wasIndented = false;\n for (let i = 0; i < types.length; ++i) {\n if (i === 0) {\n result.push(types[i]);\n }\n else if (isModelNode(node.options[i - 1]) && isModelNode(node.options[i])) {\n // If both are objects, don't indent\n result.push([\" & \", wasIndented ? indent(types[i]) : types[i]]);\n }\n else if (!isModelNode(node.options[i - 1]) && !isModelNode(node.options[i])) {\n // If no object is involved, go to the next line if it breaks\n result.push(indent([\" &\", line, types[i]]));\n }\n else {\n // If you go from object to non-object or vis-versa, then inline it\n if (i > 1) {\n wasIndented = true;\n }\n result.push(\" & \", i > 1 ? indent(types[i]) : types[i]);\n }\n }\n return group(result);\n}\nfunction isModelNode(node) {\n return node.kind === SyntaxKind.ModelExpression;\n}\nexport function printArray(path, options, print) {\n return [path.call(print, \"elementType\"), \"[]\"];\n}\nexport function printTuple(path, options, print) {\n return group([\n \"[\",\n indent(join(\", \", path.map((arg) => [softline, print(arg)], \"values\"))),\n softline,\n \"]\",\n ]);\n}\nexport function printMemberExpression(path, options, print) {\n const node = path.getValue();\n return [node.base ? [path.call(print, \"base\"), node.selector] : \"\", path.call(print, \"id\")];\n}\nexport function printModelExpression(path, options, print) {\n const inBlock = isModelExpressionInBlock(path);\n const node = path.getValue();\n if (inBlock) {\n return group(printModelPropertiesBlock(path, options, print));\n }\n else {\n const properties = node.properties.length === 0\n ? \"\"\n : indent(joinPropertiesInBlock(path, options, print, ifBreak(\",\", \", \"), softline));\n return group([properties, softline]);\n }\n}\nexport function printModelStatement(path, options, print) {\n const node = path.getValue();\n const id = path.call(print, \"id\");\n const heritage = node.extends\n ? [ifBreak(line, \" \"), \"extends \", path.call(print, \"extends\")]\n : \"\";\n const isBase = node.is ? [ifBreak(line, \" \"), \"is \", path.call(print, \"is\")] : \"\";\n const generic = printTemplateParameters(path, options, print, \"templateParameters\");\n const nodeHasComments = hasComments(node, CommentCheckFlags.Dangling);\n const shouldPrintBody = nodeHasComments || !(node.properties.length === 0 && node.is);\n const body = shouldPrintBody ? [\" \", printModelPropertiesBlock(path, options, print)] : \";\";\n return [\n printDecorators(path, options, print, { tryInline: false }).decorators,\n \"model \",\n id,\n generic,\n group(indent([\"\", heritage, isBase])),\n body,\n ];\n}\nfunction printModelPropertiesBlock(path, options, print) {\n var _a;\n const node = path.getValue();\n const hasProperties = node.properties && node.properties.length > 0;\n const nodeHasComments = hasComments(node, CommentCheckFlags.Dangling);\n if (!hasProperties && !nodeHasComments) {\n return \"{}\";\n }\n const tryInline = ((_a = path.getParentNode()) === null || _a === void 0 ? void 0 : _a.kind) === SyntaxKind.TemplateParameterDeclaration;\n const lineDoc = tryInline ? softline : hardline;\n const seperator = isModelAValue(path) ? \",\" : \";\";\n const body = [joinPropertiesInBlock(path, options, print, seperator, lineDoc)];\n if (nodeHasComments) {\n body.push(printDanglingComments(path, options, { sameIndent: true }));\n }\n return group([\"{\", indent(body), lineDoc, \"}\"]);\n}\nfunction joinPropertiesInBlock(path, options, print, separator, regularLine) {\n const doc = [regularLine];\n const propertyContainerNode = path.getValue();\n let newLineBeforeNextProp = false;\n path.each((item, propertyIndex) => {\n const isFirst = propertyIndex === 0;\n const isLast = propertyIndex === propertyContainerNode.properties.length - 1;\n const shouldWrapInNewLines = shouldWrapPropertyInNewLines(item, options);\n if ((newLineBeforeNextProp || shouldWrapInNewLines) && !isFirst) {\n doc.push(hardline);\n newLineBeforeNextProp = false;\n }\n doc.push(print(item));\n if (isLast) {\n doc.push(ifBreak(separator));\n }\n else {\n doc.push(separator);\n doc.push(regularLine);\n if (shouldWrapInNewLines) {\n newLineBeforeNextProp = true;\n }\n }\n }, \"properties\");\n return doc;\n}\n/**\n * Check if property item (PropertyNode, SpreadProperty) should be wrapped in new lines.\n * It can be wrapped for the following reasons:\n * - has decorators on lines above\n * - has leading comments\n */\nfunction shouldWrapPropertyInNewLines(path, options) {\n var _a;\n const node = path.getValue();\n return (((node.kind === SyntaxKind.ModelProperty || node.kind === SyntaxKind.ProjectionModelProperty) &&\n shouldDecoratorBreakLine(path, options, {\n tryInline: DecoratorsTryInline.modelProperty,\n })) ||\n hasComments(node, CommentCheckFlags.Leading) ||\n (node.docs && ((_a = node.docs) === null || _a === void 0 ? void 0 : _a.length) > 0));\n}\n/**\n * Figure out if this model is being used as a definition or value.\n * @returns true if the model is used as a value(e.g. decorator value), false if it is used as a model definition.\n */\nfunction isModelAValue(path) {\n let count = 0;\n let node = path.getValue();\n do {\n switch (node.kind) {\n case SyntaxKind.ModelStatement:\n case SyntaxKind.AliasStatement:\n case SyntaxKind.OperationStatement:\n return false;\n case SyntaxKind.DecoratorExpression:\n return true;\n }\n } while ((node = path.getParentNode(count++)));\n return true;\n}\nexport function printModelProperty(path, options, print) {\n const node = path.getValue();\n const { decorators } = printDecorators(path, options, print, {\n tryInline: DecoratorsTryInline.modelProperty,\n });\n const id = printIdentifier(node.id, options);\n return [\n printDirectives(path, options, print),\n decorators,\n id,\n node.optional ? \"?: \" : \": \",\n path.call(print, \"value\"),\n node.default ? [\" = \", path.call(print, \"default\")] : \"\",\n ];\n}\nfunction printIdentifier(id, options) {\n return printId(id.sv);\n}\nexport function printId(sv) {\n if (needBacktick(sv)) {\n const escapedString = sv\n .replace(/\\\\/g, \"\\\\\\\\\")\n .replace(/\\n/g, \"\\\\n\")\n .replace(/\\r/g, \"\\\\r\")\n .replace(/\\t/g, \"\\\\t\")\n .replace(/`/g, \"\\\\`\");\n return `\\`${escapedString}\\``;\n }\n else {\n return sv;\n }\n}\nfunction needBacktick(sv) {\n if (sv.length === 0) {\n return false;\n }\n if (Keywords.has(sv)) {\n return true;\n }\n let cp = sv.codePointAt(0);\n if (!isIdentifierStart(cp)) {\n return true;\n }\n let pos = 0;\n do {\n pos += utf16CodeUnits(cp);\n } while (pos < sv.length && isIdentifierContinue((cp = sv.codePointAt(pos))));\n return pos < sv.length;\n}\nfunction isModelExpressionInBlock(path) {\n const parent = path.getParentNode();\n switch (parent === null || parent === void 0 ? void 0 : parent.kind) {\n case SyntaxKind.OperationSignatureDeclaration:\n return parent.parameters !== path.getNode();\n default:\n return true;\n }\n}\nexport function printScalarStatement(path, options, print) {\n const node = path.getValue();\n const id = path.call(print, \"id\");\n const template = printTemplateParameters(path, options, print, \"templateParameters\");\n const heritage = node.extends\n ? [ifBreak(line, \" \"), \"extends \", path.call(print, \"extends\")]\n : \"\";\n return [\n printDecorators(path, options, print, { tryInline: false }).decorators,\n \"scalar \",\n id,\n template,\n group(indent([\"\", heritage])),\n \";\",\n ];\n}\nexport function printNamespaceStatement(path, options, print) {\n const names = path.map(print, \"ids\");\n const currentNode = path.getNode();\n const suffix = (currentNode === null || currentNode === void 0 ? void 0 : currentNode.statements) === undefined\n ? \";\"\n : [\n \" {\",\n indent([hardline, printStatementSequence(path, options, print, \"statements\")]),\n hardline,\n \"}\",\n ];\n const { decorators } = printDecorators(path, options, print, { tryInline: false });\n return [decorators, `namespace `, join(\".\", names), suffix];\n}\nexport function printOperationSignatureDeclaration(path, options, print) {\n return [\"(\", path.call(print, \"parameters\"), \"): \", path.call(print, \"returnType\")];\n}\nexport function printOperationSignatureReference(path, options, print) {\n return [\" is \", path.call(print, \"baseOperation\")];\n}\nexport function printOperationStatement(path, options, print) {\n var _a;\n const inInterface = ((_a = path.getParentNode()) === null || _a === void 0 ? void 0 : _a.kind) === SyntaxKind.InterfaceStatement;\n const templateParams = printTemplateParameters(path, options, print, \"templateParameters\");\n const { decorators } = printDecorators(path, options, print, {\n tryInline: true,\n });\n return [\n decorators,\n inInterface ? \"\" : \"op \",\n path.call(print, \"id\"),\n templateParams,\n path.call(print, \"signature\"),\n `;`,\n ];\n}\nexport function printStatementSequence(path, options, print, property) {\n const node = path.getValue();\n const parts = [];\n const lastStatement = getLastStatement(node[property]);\n path.each((statementPath) => {\n const node = path.getValue();\n if (node.kind === SyntaxKind.EmptyStatement) {\n return;\n }\n const printed = print(statementPath);\n parts.push(printed);\n if (node !== lastStatement) {\n parts.push(hardline);\n if (isNextLineEmpty(options.originalText, node, options.locEnd)) {\n parts.push(hardline);\n }\n }\n }, property);\n return parts;\n}\nfunction getLastStatement(statements) {\n for (let i = statements.length - 1; i >= 0; i--) {\n const statement = statements[i];\n if (statement.kind !== SyntaxKind.EmptyStatement) {\n return statement;\n }\n }\n return undefined;\n}\nexport function printUnion(path, options, print) {\n const node = path.getValue();\n const shouldHug = shouldHugType(node);\n const types = path.map((typePath) => {\n let printedType = print(typePath);\n if (!shouldHug) {\n printedType = align(2, printedType);\n }\n return printedType;\n }, \"options\");\n if (shouldHug) {\n return join(\" | \", types);\n }\n const shouldAddStartLine = true;\n const code = [ifBreak([shouldAddStartLine ? line : \"\", \"| \"], \"\"), join([line, \"| \"], types)];\n return group(indent(code));\n}\nfunction shouldHugType(node) {\n if (node.kind === SyntaxKind.UnionExpression || node.kind === SyntaxKind.IntersectionExpression) {\n return node.options.length < 4;\n }\n return false;\n}\nexport function printTypeReference(path, options, print) {\n const type = path.call(print, \"target\");\n const template = printTemplateParameters(path, options, print, \"arguments\");\n return [type, template];\n}\nexport function printValueOfExpression(path, options, print) {\n const type = path.call(print, \"target\");\n return [\"valueof \", type];\n}\nfunction printTemplateParameterDeclaration(path, options, print) {\n const node = path.getValue();\n return [\n path.call(print, \"id\"),\n node.constraint ? [\" extends \", path.call(print, \"constraint\")] : \"\",\n node.default ? [\" = \", path.call(print, \"default\")] : \"\",\n ];\n}\nfunction printModelSpread(path, options, print) {\n return [\"...\", path.call(print, \"target\")];\n}\nfunction printDecoratorDeclarationStatement(path, options, print) {\n const id = path.call(print, \"id\");\n const parameters = [\n group([\n indent(join(\", \", [\n [softline, path.call(print, \"target\")],\n ...path.map((arg) => [softline, print(arg)], \"parameters\"),\n ])),\n softline,\n ]),\n ];\n return [printModifiers(path, options, print), \"dec \", id, \"(\", parameters, \")\", \";\"];\n}\nfunction printFunctionDeclarationStatement(path, options, print) {\n const node = path.getValue();\n const id = path.call(print, \"id\");\n const parameters = [\n group([\n indent(join(\", \", path.map((arg) => [softline, print(arg)], \"parameters\"))),\n softline,\n ]),\n ];\n const returnType = node.returnType ? [\": \", path.call(print, \"returnType\")] : \"\";\n return [printModifiers(path, options, print), \"fn \", id, \"(\", parameters, \")\", returnType, \";\"];\n}\nfunction printFunctionParameterDeclaration(path, options, print) {\n const node = path.getValue();\n const id = path.call(print, \"id\");\n const type = node.type ? [\": \", path.call(print, \"type\")] : \"\";\n return [\n node.rest ? \"...\" : \"\",\n printDirectives(path, options, print),\n id,\n node.optional ? \"?\" : \"\",\n type,\n ];\n}\nexport function printModifiers(path, options, print) {\n const node = path.getValue();\n if (node.modifiers.length === 0) {\n return \"\";\n }\n return path.map((x) => [print(x), \" \"], \"modifiers\");\n}\nfunction printStringLiteral(path, options) {\n const node = path.getValue();\n return getRawText(node, options);\n}\nfunction printNumberLiteral(path, options) {\n const node = path.getValue();\n return getRawText(node, options);\n}\nfunction printBooleanLiteral(path, options) {\n const node = path.getValue();\n return node.value ? \"true\" : \"false\";\n}\nfunction printProjectionStatement(path, options, print) {\n const selector = path.call(print, \"selector\");\n const id = path.call(print, \"id\");\n const projections = path.map(print, \"projections\").flatMap((x) => [hardline, x]);\n return [\n \"projection \",\n selector,\n \"#\",\n id,\n \" {\",\n indent(projections),\n projections.length > 0 ? hardline : \"\",\n \"}\",\n ];\n}\nfunction printProjection(path, options, print) {\n const node = path.getValue();\n const params = printProjectionParameters(path, options, print);\n const body = printProjectionExpressionStatements(path, options, print, \"body\");\n return [\n ...node.modifierIds.flatMap((i) => [i.sv, \" \"]),\n node.directionId.sv,\n params,\n \" {\",\n indent(body),\n hardline,\n \"}\",\n ];\n}\nfunction printProjectionParameters(path, options, print) {\n const node = path.getValue();\n const params = node.parameters;\n if (params.length === 0) {\n return \"\";\n }\n const shouldHug = params.length === 1;\n if (shouldHug) {\n return [\"(\", printItemList(path, options, print, \"parameters\"), \")\"];\n }\n else {\n const body = indent([softline, join([\", \", softline], path.map(print, \"parameters\"))]);\n return group([\"(\", body, softline, \")\"]);\n }\n}\nfunction printProjectionExpressionStatements(path, options, print, key) {\n const parts = [hardline];\n const lastIndex = path.getValue()[key].length - 1;\n path.each((statementPath, index) => {\n const node = path.getValue();\n if (node.kind === SyntaxKind.EmptyStatement) {\n return;\n }\n const printed = print(statementPath);\n parts.push(printed);\n parts.push(\";\");\n if (index < lastIndex) {\n parts.push(hardline);\n if (isNextLineEmpty(options.originalText, node, options.locEnd)) {\n parts.push(hardline);\n }\n }\n }, key);\n return parts;\n}\nfunction printProjectionParameterDeclaration(path, options, print) {\n return path.call(print, \"id\");\n}\nfunction printProjectionExpressionStatement(path, options, print) {\n return path.call(print, \"expr\");\n}\nfunction printProjectionIfExpressionNode(path, options, print) {\n const node = path.getValue();\n const test = path.call(print, \"test\");\n const consequent = path.call(print, \"consequent\");\n const alternate = node.alternate ? [\" else \", path.call(print, \"alternate\")] : \"\";\n return [\"if \", test, \" \", consequent, alternate];\n}\nexport function printProjectionBlockExpressionNode(path, options, print) {\n const node = path.getValue();\n if (node.statements.length === 0) {\n return \"{}\";\n }\n return [\n \"{\",\n indent(printProjectionExpressionStatements(path, options, print, \"statements\")),\n hardline,\n \"}\",\n ];\n}\nexport function printProjectionMemberExpression(path, options, print) {\n const node = path.getValue();\n return [path.call(print, \"base\"), node.selector, path.call(print, \"id\")];\n}\nexport function printProjectionLeftRightExpression(path, options, print) {\n const node = path.getValue();\n return [path.call(print, \"left\"), \" \", node.op, \" \", path.call(print, \"right\")];\n}\nexport function printProjectionUnaryExpression(path, options, print) {\n return [\"!\", path.call(print, \"target\")];\n}\nexport function printProjectionCallExpression(path, options, print) {\n const node = path.getValue();\n const target = path.call(print, \"target\");\n const params = printItemList(path, options, print, \"arguments\");\n if (node.callKind === \"method\") {\n return [target, \"(\", params, \")\"];\n }\n else {\n return [target, \"<\", params, \">\"];\n }\n}\nexport function printProjectionLambdaExpression(path, options, print) {\n return [\n \"(\",\n printItemList(path, options, print, \"parameters\"),\n \")\",\n \" => \",\n path.call(print, \"body\"),\n ];\n}\nexport function printProjectionLambdaParameterDeclaration(path, options, print) {\n return path.call(print, \"id\");\n}\nexport function printReturnExpression(path, options, print) {\n return [\"return \", path.call(print, \"value\")];\n}\nfunction printItemList(path, options, print, key) {\n return join(\", \", path.map(print, key));\n}\n/**\n * @param node Node that has postition information.\n * @param options Prettier options\n * @returns Raw text in the file for the given node.\n */\nfunction getRawText(node, options) {\n return options.originalText.slice(node.pos, node.end);\n}\nfunction hasComments(node, flags) {\n if (!node.comments || node.comments.length === 0) {\n return false;\n }\n const test = getCommentTestFunction(flags);\n return test ? node.comments.some(test) : true;\n}\nvar CommentCheckFlags;\n(function (CommentCheckFlags) {\n /** Check comment is a leading comment */\n CommentCheckFlags[CommentCheckFlags[\"Leading\"] = 2] = \"Leading\";\n /** Check comment is a trailing comment */\n CommentCheckFlags[CommentCheckFlags[\"Trailing\"] = 4] = \"Trailing\";\n /** Check comment is a dangling comment */\n CommentCheckFlags[CommentCheckFlags[\"Dangling\"] = 8] = \"Dangling\";\n /** Check comment is a block comment */\n CommentCheckFlags[CommentCheckFlags[\"Block\"] = 16] = \"Block\";\n /** Check comment is a line comment */\n CommentCheckFlags[CommentCheckFlags[\"Line\"] = 32] = \"Line\";\n /** Check comment is a `prettier-ignore` comment */\n CommentCheckFlags[CommentCheckFlags[\"PrettierIgnore\"] = 64] = \"PrettierIgnore\";\n /** Check comment is the first attached comment */\n CommentCheckFlags[CommentCheckFlags[\"First\"] = 128] = \"First\";\n /** Check comment is the last attached comment */\n CommentCheckFlags[CommentCheckFlags[\"Last\"] = 256] = \"Last\";\n})(CommentCheckFlags || (CommentCheckFlags = {}));\nfunction getCommentTestFunction(flags) {\n if (flags) {\n return (comment, index, comments) => !((flags & CommentCheckFlags.Leading && !comment.leading) ||\n (flags & CommentCheckFlags.Trailing && !comment.trailing) ||\n (flags & CommentCheckFlags.Dangling && (comment.leading || comment.trailing)) ||\n (flags & CommentCheckFlags.Block && !isBlockComment(comment)) ||\n (flags & CommentCheckFlags.Line && !isLineComment(comment)) ||\n (flags & CommentCheckFlags.First && index !== 0) ||\n (flags & CommentCheckFlags.Last && index !== comments.length - 1));\n }\n return undefined;\n}\nfunction isBlockComment(comment) {\n return comment.kind === SyntaxKind.BlockComment;\n}\nfunction isLineComment(comment) {\n return comment.kind === SyntaxKind.BlockComment;\n}\n//# sourceMappingURL=printer.js.map","var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar _MultiKeyMap_currentId, _MultiKeyMap_idMap, _MultiKeyMap_items, _Queue_elements, _Queue_headIndex, _DuplicateTracker_entries, _RekeyableMapImpl_keys, _RekeyableMapImpl_values, _a;\nimport { createSourceFile } from \"./diagnostics.js\";\nimport { createDiagnostic } from \"./messages.js\";\nimport { getAnyExtensionFromPath, getDirectoryPath, isPathAbsolute, isUrl, joinPaths, normalizePath, resolvePath, } from \"./path-utils.js\";\nimport { NoTarget, } from \"./types.js\";\nexport { typespecVersion } from \"../manifest.js\";\nexport { NodeHost } from \"./node-host.js\";\nexport class ExternalError extends Error {\n}\n/**\n * Recursively calls Object.freeze such that all objects and arrays\n * referenced are frozen.\n *\n * Does not support cycles. Intended to be used only on plain data that can\n * be directly represented in JSON.\n */\nexport function deepFreeze(value) {\n if (Array.isArray(value)) {\n value.forEach(deepFreeze);\n }\n else if (typeof value === \"object\") {\n for (const prop in value) {\n deepFreeze(value[prop]);\n }\n }\n return Object.freeze(value);\n}\n/**\n * Deeply clones an object.\n *\n * Does not support cycles. Intended to be used only on plain data that can\n * be directly represented in JSON.\n */\nexport function deepClone(value) {\n if (Array.isArray(value)) {\n return value.map(deepClone);\n }\n if (typeof value === \"object\") {\n const obj = {};\n for (const prop in value) {\n obj[prop] = deepClone(value[prop]);\n }\n return obj;\n }\n return value;\n}\n/**\n * Checks if two objects are deeply equal.\n *\n * Does not support cycles. Intended to be used only on plain data that can\n * be directly represented in JSON.\n */\nexport function deepEquals(left, right) {\n if (left === right) {\n return true;\n }\n if (left === null || right === null || typeof left !== \"object\" || typeof right !== \"object\") {\n return false;\n }\n if (Array.isArray(left)) {\n return Array.isArray(right) ? arrayEquals(left, right, deepEquals) : false;\n }\n return mapEquals(new Map(Object.entries(left)), new Map(Object.entries(right)), deepEquals);\n}\n/**\n * Check if two arrays have the same elements.\n *\n * @param equals Optional callback for element equality comparison.\n * Default is to compare by identity using `===`.\n */\nexport function arrayEquals(left, right, equals = (x, y) => x === y) {\n if (left === right) {\n return true;\n }\n if (left.length !== right.length) {\n return false;\n }\n for (let i = 0; i < left.length; i++) {\n if (!equals(left[i], right[i])) {\n return false;\n }\n }\n return true;\n}\n/**\n * Check if two maps have the same entries.\n *\n * @param equals Optional callback for value equality comparison.\n * Default is to compare by identity using `===`.\n */\nexport function mapEquals(left, right, equals = (x, y) => x === y) {\n if (left === right) {\n return true;\n }\n if (left.size !== right.size) {\n return false;\n }\n for (const [key, value] of left) {\n if (!right.has(key) || !equals(value, right.get(key))) {\n return false;\n }\n }\n return true;\n}\nexport async function getNormalizedRealPath(host, path) {\n return normalizePath(await host.realpath(path));\n}\nexport async function doIO(action, path, reportDiagnostic, options) {\n var _b;\n let result;\n try {\n result = await action(path);\n }\n catch (e) {\n let diagnostic;\n let target = (_b = options === null || options === void 0 ? void 0 : options.diagnosticTarget) !== null && _b !== void 0 ? _b : NoTarget;\n // blame the JS file, not the TypeSpec import statement for JS syntax errors.\n if (e instanceof SyntaxError && (options === null || options === void 0 ? void 0 : options.jsDiagnosticTarget)) {\n target = options.jsDiagnosticTarget;\n }\n switch (e.code) {\n case \"ENOENT\":\n if (options === null || options === void 0 ? void 0 : options.allowFileNotFound) {\n return undefined;\n }\n diagnostic = createDiagnostic({ code: \"file-not-found\", target, format: { path } });\n break;\n default:\n diagnostic = createDiagnostic({\n code: \"file-load\",\n target,\n format: { message: e.message },\n });\n break;\n }\n reportDiagnostic(diagnostic);\n return undefined;\n }\n return result;\n}\nexport async function loadFile(host, path, load, reportDiagnostic, options) {\n const file = await doIO(host.readFile, path, reportDiagnostic, options);\n if (!file) {\n return [undefined, createSourceFile(\"\", path)];\n }\n let data;\n try {\n data = load(file.text);\n }\n catch (e) {\n reportDiagnostic({\n code: \"file-load\",\n message: e.message,\n severity: \"error\",\n target: { file, pos: 1, end: 1 },\n });\n return [undefined, file];\n }\n return [data, file];\n}\nexport async function readUrlOrPath(host, pathOrUrl) {\n if (isUrl(pathOrUrl)) {\n return host.readUrl(pathOrUrl);\n }\n return host.readFile(pathOrUrl);\n}\nexport function resolveRelativeUrlOrPath(base, relativeOrAbsolute) {\n if (isUrl(relativeOrAbsolute)) {\n return relativeOrAbsolute;\n }\n else if (isPathAbsolute(relativeOrAbsolute)) {\n return relativeOrAbsolute;\n }\n else if (isUrl(base)) {\n return new URL(relativeOrAbsolute, base).href;\n }\n else {\n return resolvePath(base, relativeOrAbsolute);\n }\n}\n/**\n * A specially typed version of `Array.isArray` to work around [this issue](https://github.com/microsoft/TypeScript/issues/17002).\n */\nexport function isArray(\n// eslint-disable-next-line @typescript-eslint/ban-types\narg) {\n return Array.isArray(arg);\n}\n/**\n * Check if argument is not undefined.\n */\nexport function isDefined(arg) {\n return arg !== undefined;\n}\n/**\n * Remove undefined properties from object.\n */\nexport function omitUndefined(data) {\n return Object.fromEntries(Object.entries(data).filter(([k, v]) => v !== undefined));\n}\n/**\n * Look for the project root by looking up until a `package.json` is found.\n * @param path Path to start looking\n * @param lookIn\n */\nexport async function findProjectRoot(host, path) {\n let current = path;\n while (true) {\n const pkgPath = joinPaths(current, \"package.json\");\n const stat = await doIO(() => host.stat(pkgPath), pkgPath, () => { });\n if (stat === null || stat === void 0 ? void 0 : stat.isFile()) {\n return current;\n }\n const parent = getDirectoryPath(current);\n if (parent === current) {\n return undefined;\n }\n current = parent;\n }\n}\n/**\n * Extract package.json's tspMain entry point in a given path. Note, it takes into\n * back compat for deprecated cadlMain\n * @param path Path that contains package.json\n * @param reportDiagnostic optional diagnostic handler.\n */\nexport function resolveTspMain(packageJson) {\n if ((packageJson === null || packageJson === void 0 ? void 0 : packageJson.tspMain) !== undefined) {\n return packageJson.tspMain;\n }\n if ((packageJson === null || packageJson === void 0 ? void 0 : packageJson.cadlMain) !== undefined) {\n return packageJson.cadlMain;\n }\n return undefined;\n}\n/**\n * A map keyed by a set of objects.\n *\n * This is likely non-optimal.\n */\nexport class MultiKeyMap {\n constructor() {\n _MultiKeyMap_currentId.set(this, 0);\n _MultiKeyMap_idMap.set(this, new WeakMap());\n _MultiKeyMap_items.set(this, new Map());\n }\n get(items) {\n return __classPrivateFieldGet(this, _MultiKeyMap_items, \"f\").get(this.compositeKeyFor(items));\n }\n set(items, value) {\n const key = this.compositeKeyFor(items);\n __classPrivateFieldGet(this, _MultiKeyMap_items, \"f\").set(key, value);\n }\n compositeKeyFor(items) {\n return items.map((i) => this.keyFor(i)).join(\",\");\n }\n keyFor(item) {\n var _b, _c;\n if (__classPrivateFieldGet(this, _MultiKeyMap_idMap, \"f\").has(item)) {\n return __classPrivateFieldGet(this, _MultiKeyMap_idMap, \"f\").get(item);\n }\n const id = (__classPrivateFieldSet(this, _MultiKeyMap_currentId, (_c = __classPrivateFieldGet(this, _MultiKeyMap_currentId, \"f\"), _b = _c++, _c), \"f\"), _b);\n __classPrivateFieldGet(this, _MultiKeyMap_idMap, \"f\").set(item, id);\n return id;\n }\n}\n_MultiKeyMap_currentId = new WeakMap(), _MultiKeyMap_idMap = new WeakMap(), _MultiKeyMap_items = new WeakMap();\n/**\n * A map with exactly two keys per value.\n *\n * Functionally the same as `MultiKeyMap<[K1, K2], V>`, but more efficient.\n */\nexport class TwoLevelMap extends Map {\n /**\n * Get an existing entry in the map or add a new one if not found.\n *\n * @param key1 The first key\n * @param key2 The second key\n * @param create A callback to create the new entry when not found.\n * @param sentinel An optional sentinel value to use to indicate that the\n * entry is being created.\n */\n getOrAdd(key1, key2, create, sentinel) {\n let map = this.get(key1);\n if (map === undefined) {\n map = new Map();\n this.set(key1, map);\n }\n let entry = map.get(key2);\n if (entry === undefined) {\n if (sentinel !== undefined) {\n map.set(key2, sentinel);\n }\n entry = create();\n map.set(key2, entry);\n }\n return entry;\n }\n}\n// Adapted from https://github.com/microsoft/TypeScript/blob/bc52ff6f4be9347981de415a35da90497eae84ac/src/compiler/core.ts#L1507\nexport class Queue {\n constructor(elements) {\n var _b;\n _Queue_elements.set(this, void 0);\n _Queue_headIndex.set(this, 0);\n __classPrivateFieldSet(this, _Queue_elements, (_b = elements === null || elements === void 0 ? void 0 : elements.slice()) !== null && _b !== void 0 ? _b : [], \"f\");\n }\n isEmpty() {\n return __classPrivateFieldGet(this, _Queue_headIndex, \"f\") === __classPrivateFieldGet(this, _Queue_elements, \"f\").length;\n }\n enqueue(...items) {\n __classPrivateFieldGet(this, _Queue_elements, \"f\").push(...items);\n }\n dequeue() {\n var _b;\n if (this.isEmpty()) {\n throw new Error(\"Queue is empty.\");\n }\n const result = __classPrivateFieldGet(this, _Queue_elements, \"f\")[__classPrivateFieldGet(this, _Queue_headIndex, \"f\")];\n __classPrivateFieldGet(this, _Queue_elements, \"f\")[__classPrivateFieldGet(this, _Queue_headIndex, \"f\")] = undefined; // Don't keep referencing dequeued item\n __classPrivateFieldSet(this, _Queue_headIndex, // Don't keep referencing dequeued item\n (_b = __classPrivateFieldGet(this, _Queue_headIndex, \"f\"), _b++, _b), \"f\");\n // If more than half of the queue is empty, copy the remaining elements to the\n // front and shrink the array (unless we'd be saving fewer than 100 slots)\n if (__classPrivateFieldGet(this, _Queue_headIndex, \"f\") > 100 && __classPrivateFieldGet(this, _Queue_headIndex, \"f\") > __classPrivateFieldGet(this, _Queue_elements, \"f\").length >> 1) {\n const newLength = __classPrivateFieldGet(this, _Queue_elements, \"f\").length - __classPrivateFieldGet(this, _Queue_headIndex, \"f\");\n __classPrivateFieldGet(this, _Queue_elements, \"f\").copyWithin(0, __classPrivateFieldGet(this, _Queue_headIndex, \"f\"));\n __classPrivateFieldGet(this, _Queue_elements, \"f\").length = newLength;\n __classPrivateFieldSet(this, _Queue_headIndex, 0, \"f\");\n }\n return result;\n }\n}\n_Queue_elements = new WeakMap(), _Queue_headIndex = new WeakMap();\n/**\n * Casts away readonly typing.\n *\n * Use it like this when it is safe to override readonly typing:\n * mutate(item).prop = value;\n */\nexport function mutate(value) {\n return value;\n}\nexport function getSourceFileKindFromExt(path) {\n const ext = getAnyExtensionFromPath(path);\n if (ext === \".js\" || ext === \".mjs\") {\n return \"js\";\n }\n else if (ext === \".tsp\" || ext === \".cadl\") {\n return \"typespec\";\n }\n else {\n return undefined;\n }\n}\nexport function createStringMap(caseInsensitive) {\n return caseInsensitive ? new CaseInsensitiveMap() : new Map();\n}\nclass CaseInsensitiveMap extends Map {\n get(key) {\n return super.get(key.toUpperCase());\n }\n set(key, value) {\n return super.set(key.toUpperCase(), value);\n }\n has(key) {\n return super.has(key.toUpperCase());\n }\n delete(key) {\n return super.delete(key.toUpperCase());\n }\n}\n/**\n * Helper class to track duplicate instance\n */\nexport class DuplicateTracker {\n constructor() {\n _DuplicateTracker_entries.set(this, new Map());\n }\n /**\n * Track usage of K.\n * @param k key that is being checked for duplicate.\n * @param v value that map to the key\n */\n track(k, v) {\n const existing = __classPrivateFieldGet(this, _DuplicateTracker_entries, \"f\").get(k);\n if (existing === undefined) {\n __classPrivateFieldGet(this, _DuplicateTracker_entries, \"f\").set(k, [v]);\n }\n else {\n existing.push(v);\n }\n }\n /**\n * Return iterator of all the duplicate entries.\n */\n *entries() {\n for (const [k, v] of __classPrivateFieldGet(this, _DuplicateTracker_entries, \"f\").entries()) {\n if (v.length > 1) {\n yield [k, v];\n }\n }\n }\n}\n_DuplicateTracker_entries = new WeakMap();\nexport function createRekeyableMap(entries) {\n return new RekeyableMapImpl(entries);\n}\nclass RekeyableMapImpl {\n constructor(entries) {\n _RekeyableMapImpl_keys.set(this, new Map());\n _RekeyableMapImpl_values.set(this, new Map());\n this[_a] = \"RekeyableMap\";\n if (entries) {\n for (const [key, value] of entries) {\n this.set(key, value);\n }\n }\n }\n clear() {\n __classPrivateFieldGet(this, _RekeyableMapImpl_keys, \"f\").clear();\n __classPrivateFieldGet(this, _RekeyableMapImpl_values, \"f\").clear();\n }\n delete(key) {\n const keyItem = __classPrivateFieldGet(this, _RekeyableMapImpl_keys, \"f\").get(key);\n if (keyItem) {\n __classPrivateFieldGet(this, _RekeyableMapImpl_keys, \"f\").delete(key);\n return __classPrivateFieldGet(this, _RekeyableMapImpl_values, \"f\").delete(keyItem);\n }\n return false;\n }\n forEach(callbackfn, thisArg) {\n __classPrivateFieldGet(this, _RekeyableMapImpl_values, \"f\").forEach((value, keyItem) => {\n callbackfn(value, keyItem.key, this);\n }, thisArg);\n }\n get(key) {\n const keyItem = __classPrivateFieldGet(this, _RekeyableMapImpl_keys, \"f\").get(key);\n return keyItem ? __classPrivateFieldGet(this, _RekeyableMapImpl_values, \"f\").get(keyItem) : undefined;\n }\n has(key) {\n return __classPrivateFieldGet(this, _RekeyableMapImpl_keys, \"f\").has(key);\n }\n set(key, value) {\n let keyItem = __classPrivateFieldGet(this, _RekeyableMapImpl_keys, \"f\").get(key);\n if (!keyItem) {\n keyItem = { key };\n __classPrivateFieldGet(this, _RekeyableMapImpl_keys, \"f\").set(key, keyItem);\n }\n __classPrivateFieldGet(this, _RekeyableMapImpl_values, \"f\").set(keyItem, value);\n return this;\n }\n get size() {\n return __classPrivateFieldGet(this, _RekeyableMapImpl_values, \"f\").size;\n }\n *entries() {\n for (const [k, v] of __classPrivateFieldGet(this, _RekeyableMapImpl_values, \"f\")) {\n yield [k.key, v];\n }\n }\n *keys() {\n for (const k of __classPrivateFieldGet(this, _RekeyableMapImpl_values, \"f\").keys()) {\n yield k.key;\n }\n }\n values() {\n return __classPrivateFieldGet(this, _RekeyableMapImpl_values, \"f\").values();\n }\n [(_RekeyableMapImpl_keys = new WeakMap(), _RekeyableMapImpl_values = new WeakMap(), Symbol.iterator)]() {\n return this.entries();\n }\n rekey(existingKey, newKey) {\n const keyItem = __classPrivateFieldGet(this, _RekeyableMapImpl_keys, \"f\").get(existingKey);\n if (!keyItem) {\n return false;\n }\n __classPrivateFieldGet(this, _RekeyableMapImpl_keys, \"f\").delete(existingKey);\n keyItem.key = newKey;\n __classPrivateFieldGet(this, _RekeyableMapImpl_keys, \"f\").set(newKey, keyItem);\n return true;\n }\n}\n_a = Symbol.toStringTag;\n//# sourceMappingURL=util.js.map","import { trim } from \"./charcode.js\";\nimport { compilerAssert } from \"./diagnostics.js\";\nimport { createDiagnostic } from \"./messages.js\";\nimport { Token, TokenDisplay, TokenFlags, createScanner, isComment, isKeyword, isPunctuation, isStatementKeyword, isTrivia, } from \"./scanner.js\";\nimport { IdentifierKind, SyntaxKind, } from \"./types.js\";\nimport { isArray, mutate } from \"./util.js\";\n/**\n * The fixed set of options for each of the kinds of delimited lists in TypeSpec.\n */\n// eslint-disable-next-line @typescript-eslint/no-namespace\nvar ListKind;\n(function (ListKind) {\n const PropertiesBase = {\n allowEmpty: true,\n toleratedDelimiterIsValid: true,\n trailingDelimiterIsValid: true,\n allowedStatementKeyword: Token.None,\n };\n ListKind.OperationParameters = {\n ...PropertiesBase,\n open: Token.OpenParen,\n close: Token.CloseParen,\n delimiter: Token.Comma,\n toleratedDelimiter: Token.Semicolon,\n };\n ListKind.DecoratorArguments = {\n ...ListKind.OperationParameters,\n invalidAnnotationTarget: \"expression\",\n };\n ListKind.ModelProperties = {\n ...PropertiesBase,\n open: Token.OpenBrace,\n close: Token.CloseBrace,\n delimiter: Token.Semicolon,\n toleratedDelimiter: Token.Comma,\n };\n ListKind.InterfaceMembers = {\n ...PropertiesBase,\n open: Token.OpenBrace,\n close: Token.CloseBrace,\n delimiter: Token.Semicolon,\n toleratedDelimiter: Token.Comma,\n toleratedDelimiterIsValid: false,\n allowedStatementKeyword: Token.OpKeyword,\n };\n ListKind.UnionVariants = {\n ...PropertiesBase,\n open: Token.OpenBrace,\n close: Token.CloseBrace,\n delimiter: Token.Semicolon,\n toleratedDelimiter: Token.Comma,\n toleratedDelimiterIsValid: true,\n };\n ListKind.EnumMembers = {\n ...ListKind.ModelProperties,\n };\n const ExpresionsBase = {\n allowEmpty: true,\n delimiter: Token.Comma,\n toleratedDelimiter: Token.Semicolon,\n toleratedDelimiterIsValid: false,\n trailingDelimiterIsValid: false,\n invalidAnnotationTarget: \"expression\",\n allowedStatementKeyword: Token.None,\n };\n ListKind.TemplateParameters = {\n ...ExpresionsBase,\n allowEmpty: false,\n open: Token.LessThan,\n close: Token.GreaterThan,\n invalidAnnotationTarget: \"template parameter\",\n };\n ListKind.TemplateArguments = {\n ...ListKind.TemplateParameters,\n };\n ListKind.CallArguments = {\n ...ExpresionsBase,\n allowEmpty: true,\n open: Token.OpenParen,\n close: Token.CloseParen,\n };\n ListKind.Heritage = {\n ...ExpresionsBase,\n allowEmpty: false,\n open: Token.None,\n close: Token.None,\n };\n ListKind.Tuple = {\n ...ExpresionsBase,\n allowEmpty: true,\n open: Token.OpenBracket,\n close: Token.CloseBracket,\n };\n ListKind.FunctionParameters = {\n ...ExpresionsBase,\n allowEmpty: true,\n open: Token.OpenParen,\n close: Token.CloseParen,\n invalidAnnotationTarget: \"expression\",\n };\n ListKind.ProjectionExpression = {\n ...ExpresionsBase,\n allowEmpty: true,\n open: Token.OpenParen,\n close: Token.CloseParen,\n };\n ListKind.ProjectionParameter = {\n ...ExpresionsBase,\n allowEmpty: true,\n open: Token.OpenParen,\n close: Token.CloseParen,\n };\n})(ListKind || (ListKind = {}));\nexport function parse(code, options = {}) {\n const parser = createParser(code, options);\n return parser.parseTypeSpecScript();\n}\nexport function parseStandaloneTypeReference(code) {\n const parser = createParser(code);\n const node = parser.parseStandaloneReferenceExpression();\n return [node, parser.parseDiagnostics];\n}\nfunction createParser(code, options = {}) {\n let parseErrorInNextFinishedNode = false;\n let previousTokenEnd = -1;\n let realPositionOfLastError = -1;\n let missingIdentifierCounter = 0;\n let treePrintable = true;\n let newLineIsTrivia = true;\n let currentMode = 0 /* ParseMode.Syntax */;\n const parseDiagnostics = [];\n const scanner = createScanner(code, reportDiagnostic);\n const comments = [];\n let docRanges = [];\n nextToken();\n return {\n parseDiagnostics,\n parseTypeSpecScript,\n parseStandaloneReferenceExpression,\n };\n function parseTypeSpecScript() {\n const statements = parseTypeSpecScriptItemList();\n return {\n kind: SyntaxKind.TypeSpecScript,\n statements,\n file: scanner.file,\n id: {\n kind: SyntaxKind.Identifier,\n sv: scanner.file.path,\n pos: 0,\n end: 0,\n flags: 8 /* NodeFlags.Synthetic */,\n },\n namespaces: [],\n usings: [],\n locals: undefined,\n inScopeNamespaces: [],\n parseDiagnostics,\n comments,\n printable: treePrintable,\n parseOptions: options,\n ...finishNode(0),\n };\n }\n /** Try to parse doc comments, directives and decorators in any order. */\n function parseAnnotations({ skipParsingDocNodes } = {}) {\n const directives = [];\n const decorators = [];\n const docs = [];\n let pos = tokenPos();\n if (!skipParsingDocNodes) {\n const [firstPos, addedDocs] = parseDocList();\n pos = firstPos;\n for (const doc of addedDocs) {\n docs.push(doc);\n }\n }\n while (token() === Token.Hash || token() === Token.At) {\n if (token() === Token.Hash) {\n directives.push(parseDirectiveExpression());\n }\n else if (token() === Token.At) {\n decorators.push(parseDecoratorExpression());\n }\n if (!skipParsingDocNodes) {\n const [_, addedDocs] = parseDocList();\n for (const doc of addedDocs) {\n docs.push(doc);\n }\n }\n }\n return { pos, docs, directives, decorators };\n }\n function parseTypeSpecScriptItemList() {\n const stmts = [];\n let seenBlocklessNs = false;\n let seenDecl = false;\n let seenUsing = false;\n while (token() !== Token.EndOfFile) {\n const { pos, docs, directives, decorators } = parseAnnotations();\n const tok = token();\n let item;\n switch (tok) {\n case Token.AtAt:\n reportInvalidDecorators(decorators, \"augment decorator statement\");\n item = parseAugmentDecorator();\n break;\n case Token.ImportKeyword:\n reportInvalidDecorators(decorators, \"import statement\");\n item = parseImportStatement();\n break;\n case Token.ModelKeyword:\n item = parseModelStatement(pos, decorators);\n break;\n case Token.ScalarKeyword:\n item = parseScalarStatement(pos, decorators);\n break;\n case Token.NamespaceKeyword:\n item = parseNamespaceStatement(pos, decorators);\n break;\n case Token.InterfaceKeyword:\n item = parseInterfaceStatement(pos, decorators);\n break;\n case Token.UnionKeyword:\n item = parseUnionStatement(pos, decorators);\n break;\n case Token.OpKeyword:\n item = parseOperationStatement(pos, decorators);\n break;\n case Token.EnumKeyword:\n item = parseEnumStatement(pos, decorators);\n break;\n case Token.AliasKeyword:\n reportInvalidDecorators(decorators, \"alias statement\");\n item = parseAliasStatement(pos);\n break;\n case Token.UsingKeyword:\n reportInvalidDecorators(decorators, \"using statement\");\n item = parseUsingStatement(pos);\n break;\n case Token.ProjectionKeyword:\n reportInvalidDecorators(decorators, \"projection statement\");\n item = parseProjectionStatement(pos);\n break;\n case Token.Semicolon:\n reportInvalidDecorators(decorators, \"empty statement\");\n item = parseEmptyStatement(pos);\n break;\n // Start of declaration with modifiers\n case Token.ExternKeyword:\n case Token.FnKeyword:\n case Token.DecKeyword:\n item = parseDeclaration(pos);\n break;\n default:\n item = parseInvalidStatement(pos, decorators);\n break;\n }\n mutate(item).directives = directives;\n mutate(item).docs = docs;\n if (isBlocklessNamespace(item)) {\n if (seenBlocklessNs) {\n error({ code: \"multiple-blockless-namespace\", target: item });\n }\n if (seenDecl) {\n error({ code: \"blockless-namespace-first\", target: item });\n }\n seenBlocklessNs = true;\n }\n else if (item.kind === SyntaxKind.ImportStatement) {\n if (seenDecl || seenBlocklessNs || seenUsing) {\n error({ code: \"import-first\", target: item });\n }\n }\n else if (item.kind === SyntaxKind.UsingStatement) {\n seenUsing = true;\n }\n else {\n seenDecl = true;\n }\n stmts.push(item);\n }\n return stmts;\n }\n function parseStatementList() {\n const stmts = [];\n while (token() !== Token.CloseBrace) {\n const { pos, docs, directives, decorators } = parseAnnotations();\n const tok = token();\n let item;\n switch (tok) {\n case Token.AtAt:\n reportInvalidDecorators(decorators, \"augment decorator statement\");\n item = parseAugmentDecorator();\n break;\n case Token.ImportKeyword:\n reportInvalidDecorators(decorators, \"import statement\");\n item = parseImportStatement();\n error({ code: \"import-first\", messageId: \"topLevel\", target: item });\n break;\n case Token.ModelKeyword:\n item = parseModelStatement(pos, decorators);\n break;\n case Token.ScalarKeyword:\n item = parseScalarStatement(pos, decorators);\n break;\n case Token.NamespaceKeyword:\n const ns = parseNamespaceStatement(pos, decorators);\n if (!Array.isArray(ns.statements)) {\n error({ code: \"blockless-namespace-first\", messageId: \"topLevel\", target: ns });\n }\n item = ns;\n break;\n case Token.InterfaceKeyword:\n item = parseInterfaceStatement(pos, decorators);\n break;\n case Token.UnionKeyword:\n item = parseUnionStatement(pos, decorators);\n break;\n case Token.OpKeyword:\n item = parseOperationStatement(pos, decorators);\n break;\n case Token.EnumKeyword:\n item = parseEnumStatement(pos, decorators);\n break;\n case Token.AliasKeyword:\n reportInvalidDecorators(decorators, \"alias statement\");\n item = parseAliasStatement(pos);\n break;\n case Token.UsingKeyword:\n reportInvalidDecorators(decorators, \"using statement\");\n item = parseUsingStatement(pos);\n break;\n case Token.ExternKeyword:\n case Token.FnKeyword:\n case Token.DecKeyword:\n item = parseDeclaration(pos);\n break;\n case Token.ProjectionKeyword:\n reportInvalidDecorators(decorators, \"project statement\");\n item = parseProjectionStatement(pos);\n break;\n case Token.EndOfFile:\n parseExpected(Token.CloseBrace);\n return stmts;\n case Token.Semicolon:\n reportInvalidDecorators(decorators, \"empty statement\");\n item = parseEmptyStatement(pos);\n break;\n default:\n item = parseInvalidStatement(pos, decorators);\n break;\n }\n mutate(item).directives = directives;\n mutate(item).docs = docs;\n stmts.push(item);\n }\n return stmts;\n }\n function parseDecoratorList() {\n const decorators = [];\n while (token() === Token.At) {\n decorators.push(parseDecoratorExpression());\n }\n return decorators;\n }\n function parseDirectiveList() {\n const directives = [];\n while (token() === Token.Hash) {\n directives.push(parseDirectiveExpression());\n }\n return directives;\n }\n function parseNamespaceStatement(pos, decorators) {\n parseExpected(Token.NamespaceKeyword);\n let currentName = parseIdentifierOrMemberExpression();\n const nsSegments = [];\n while (currentName.kind !== SyntaxKind.Identifier) {\n nsSegments.push(currentName.id);\n currentName = currentName.base;\n }\n nsSegments.push(currentName);\n const nextTok = parseExpectedOneOf(Token.Semicolon, Token.OpenBrace);\n let statements;\n if (nextTok === Token.OpenBrace) {\n statements = parseStatementList();\n parseExpected(Token.CloseBrace);\n }\n let outerNs = {\n kind: SyntaxKind.NamespaceStatement,\n decorators,\n id: nsSegments[0],\n locals: undefined,\n statements,\n ...finishNode(pos),\n };\n for (let i = 1; i < nsSegments.length; i++) {\n outerNs = {\n kind: SyntaxKind.NamespaceStatement,\n decorators: [],\n id: nsSegments[i],\n statements: outerNs,\n locals: undefined,\n ...finishNode(pos),\n };\n }\n return outerNs;\n }\n function parseInterfaceStatement(pos, decorators) {\n parseExpected(Token.InterfaceKeyword);\n const id = parseIdentifier();\n const templateParameters = parseTemplateParameterList();\n let extendList = [];\n if (token() === Token.ExtendsKeyword) {\n nextToken();\n extendList = parseList(ListKind.Heritage, parseReferenceExpression);\n }\n else if (token() === Token.Identifier) {\n error({ code: \"token-expected\", format: { token: \"'extends' or '{'\" } });\n nextToken();\n }\n const operations = parseList(ListKind.InterfaceMembers, (pos, decorators) => parseOperationStatement(pos, decorators, true));\n return {\n kind: SyntaxKind.InterfaceStatement,\n id,\n templateParameters,\n operations,\n extends: extendList,\n decorators,\n ...finishNode(pos),\n };\n }\n function parseTemplateParameterList() {\n const list = parseOptionalList(ListKind.TemplateParameters, parseTemplateParameter);\n let setDefault = false;\n for (const item of list) {\n if (!item.default && setDefault) {\n error({ code: \"default-required\", target: item });\n continue;\n }\n if (item.default) {\n setDefault = true;\n }\n }\n return list;\n }\n function parseUnionStatement(pos, decorators) {\n parseExpected(Token.UnionKeyword);\n const id = parseIdentifier();\n const templateParameters = parseTemplateParameterList();\n const options = parseList(ListKind.UnionVariants, parseUnionVariant);\n return {\n kind: SyntaxKind.UnionStatement,\n id,\n templateParameters,\n decorators,\n options,\n ...finishNode(pos),\n };\n }\n function parseUnionVariant(pos, decorators) {\n const id = parseIdentifier({\n message: \"property\",\n allowStringLiteral: true,\n });\n parseExpected(Token.Colon);\n const value = parseExpression();\n return {\n kind: SyntaxKind.UnionVariant,\n id,\n value,\n decorators,\n ...finishNode(pos),\n };\n }\n function parseUsingStatement(pos) {\n parseExpected(Token.UsingKeyword);\n const name = parseIdentifierOrMemberExpression(undefined, true);\n parseExpected(Token.Semicolon);\n return {\n kind: SyntaxKind.UsingStatement,\n name,\n ...finishNode(pos),\n };\n }\n function parseOperationStatement(pos, decorators, inInterface) {\n if (inInterface) {\n parseOptional(Token.OpKeyword);\n }\n else {\n parseExpected(Token.OpKeyword);\n }\n const id = parseIdentifier();\n const templateParameters = parseTemplateParameterList();\n // Make sure the next token is one that is expected\n const token = expectTokenIsOneOf(Token.OpenParen, Token.IsKeyword);\n // Check if we're parsing a declaration or reuse of another operation\n let signature;\n const signaturePos = tokenPos();\n if (token === Token.OpenParen) {\n const parameters = parseOperationParameters();\n parseExpected(Token.Colon);\n const returnType = parseExpression();\n signature = {\n kind: SyntaxKind.OperationSignatureDeclaration,\n parameters,\n returnType,\n ...finishNode(signaturePos),\n };\n }\n else {\n parseExpected(Token.IsKeyword);\n const opReference = parseReferenceExpression();\n signature = {\n kind: SyntaxKind.OperationSignatureReference,\n baseOperation: opReference,\n ...finishNode(signaturePos),\n };\n }\n // The interface parser handles semicolon parsing between statements\n if (!inInterface) {\n parseExpected(Token.Semicolon);\n }\n return {\n kind: SyntaxKind.OperationStatement,\n id,\n templateParameters,\n signature,\n decorators,\n ...finishNode(pos),\n };\n }\n function parseOperationParameters() {\n const pos = tokenPos();\n const properties = parseList(ListKind.OperationParameters, parseModelPropertyOrSpread);\n const parameters = {\n kind: SyntaxKind.ModelExpression,\n properties,\n ...finishNode(pos),\n };\n return parameters;\n }\n function parseModelStatement(pos, decorators) {\n parseExpected(Token.ModelKeyword);\n const id = parseIdentifier();\n const templateParameters = parseTemplateParameterList();\n expectTokenIsOneOf(Token.OpenBrace, Token.Equals, Token.ExtendsKeyword, Token.IsKeyword);\n const optionalExtends = parseOptionalModelExtends();\n const optionalIs = optionalExtends ? undefined : parseOptionalModelIs();\n let properties = [];\n if (optionalIs) {\n const tok = expectTokenIsOneOf(Token.Semicolon, Token.OpenBrace);\n if (tok === Token.Semicolon) {\n nextToken();\n }\n else {\n properties = parseList(ListKind.ModelProperties, parseModelPropertyOrSpread);\n }\n }\n else {\n properties = parseList(ListKind.ModelProperties, parseModelPropertyOrSpread);\n }\n return {\n kind: SyntaxKind.ModelStatement,\n id,\n extends: optionalExtends,\n is: optionalIs,\n templateParameters,\n decorators,\n properties,\n ...finishNode(pos),\n };\n }\n function parseOptionalModelExtends() {\n if (parseOptional(Token.ExtendsKeyword)) {\n return parseExpression();\n }\n return undefined;\n }\n function parseOptionalModelIs() {\n if (parseOptional(Token.IsKeyword)) {\n return parseExpression();\n }\n return;\n }\n function parseTemplateParameter() {\n const pos = tokenPos();\n const id = parseIdentifier();\n let constraint;\n if (parseOptional(Token.ExtendsKeyword)) {\n constraint = parseExpression();\n }\n let def;\n if (parseOptional(Token.Equals)) {\n def = parseExpression();\n }\n return {\n kind: SyntaxKind.TemplateParameterDeclaration,\n id,\n constraint,\n default: def,\n ...finishNode(pos),\n };\n }\n function parseModelPropertyOrSpread(pos, decorators) {\n return token() === Token.Ellipsis\n ? parseModelSpreadProperty(pos, decorators)\n : parseModelProperty(pos, decorators);\n }\n function parseModelSpreadProperty(pos, decorators) {\n parseExpected(Token.Ellipsis);\n reportInvalidDecorators(decorators, \"spread property\");\n // This could be broadened to allow any type expression\n const target = parseReferenceExpression();\n return {\n kind: SyntaxKind.ModelSpreadProperty,\n target,\n ...finishNode(pos),\n };\n }\n function parseModelProperty(pos, decorators) {\n const id = parseIdentifier({\n message: \"property\",\n allowStringLiteral: true,\n });\n const optional = parseOptional(Token.Question);\n parseExpected(Token.Colon);\n const value = parseExpression();\n const hasDefault = parseOptional(Token.Equals);\n const defaultValue = hasDefault ? parseExpression() : undefined;\n return {\n kind: SyntaxKind.ModelProperty,\n id,\n decorators,\n value,\n optional,\n default: defaultValue,\n ...finishNode(pos),\n };\n }\n function parseScalarStatement(pos, decorators) {\n parseExpected(Token.ScalarKeyword);\n const id = parseIdentifier();\n const templateParameters = parseTemplateParameterList();\n const optionalExtends = parseOptionalScalarExtends();\n return {\n kind: SyntaxKind.ScalarStatement,\n id,\n templateParameters,\n extends: optionalExtends,\n decorators,\n ...finishNode(pos),\n };\n }\n function parseOptionalScalarExtends() {\n if (parseOptional(Token.ExtendsKeyword)) {\n return parseReferenceExpression();\n }\n return undefined;\n }\n function parseEnumStatement(pos, decorators) {\n parseExpected(Token.EnumKeyword);\n const id = parseIdentifier();\n const members = parseList(ListKind.EnumMembers, parseEnumMemberOrSpread);\n return {\n kind: SyntaxKind.EnumStatement,\n id,\n decorators,\n members,\n ...finishNode(pos),\n };\n }\n function parseEnumMemberOrSpread(pos, decorators) {\n return token() === Token.Ellipsis\n ? parseEnumSpreadMember(pos, decorators)\n : parseEnumMember(pos, decorators);\n }\n function parseEnumSpreadMember(pos, decorators) {\n parseExpected(Token.Ellipsis);\n reportInvalidDecorators(decorators, \"spread enum\");\n const target = parseReferenceExpression();\n return {\n kind: SyntaxKind.EnumSpreadMember,\n target,\n ...finishNode(pos),\n };\n }\n function parseEnumMember(pos, decorators) {\n const id = parseIdentifier({\n message: \"enumMember\",\n allowStringLiteral: true,\n });\n let value;\n if (parseOptional(Token.Colon)) {\n const expr = parseExpression();\n if (expr.kind === SyntaxKind.StringLiteral || expr.kind === SyntaxKind.NumericLiteral) {\n value = expr;\n }\n else if (expr.kind === SyntaxKind.TypeReference &&\n expr.target.flags & 2 /* NodeFlags.ThisNodeHasError */) {\n parseErrorInNextFinishedNode = true;\n }\n else {\n error({ code: \"token-expected\", messageId: \"numericOrStringLiteral\", target: expr });\n }\n }\n return {\n kind: SyntaxKind.EnumMember,\n id,\n value,\n decorators,\n ...finishNode(pos),\n };\n }\n function parseAliasStatement(pos) {\n parseExpected(Token.AliasKeyword);\n const id = parseIdentifier();\n const templateParameters = parseTemplateParameterList();\n parseExpected(Token.Equals);\n const value = parseExpression();\n parseExpected(Token.Semicolon);\n return {\n kind: SyntaxKind.AliasStatement,\n id,\n templateParameters,\n value,\n ...finishNode(pos),\n };\n }\n function parseExpression() {\n return parseUnionExpressionOrHigher();\n }\n function parseUnionExpressionOrHigher() {\n const pos = tokenPos();\n parseOptional(Token.Bar);\n const node = parseIntersectionExpressionOrHigher();\n if (token() !== Token.Bar) {\n return node;\n }\n const options = [node];\n while (parseOptional(Token.Bar)) {\n const expr = parseIntersectionExpressionOrHigher();\n options.push(expr);\n }\n return {\n kind: SyntaxKind.UnionExpression,\n options,\n ...finishNode(pos),\n };\n }\n function parseIntersectionExpressionOrHigher() {\n const pos = tokenPos();\n parseOptional(Token.Ampersand);\n const node = parseArrayExpressionOrHigher();\n if (token() !== Token.Ampersand) {\n return node;\n }\n const options = [node];\n while (parseOptional(Token.Ampersand)) {\n const expr = parseArrayExpressionOrHigher();\n options.push(expr);\n }\n return {\n kind: SyntaxKind.IntersectionExpression,\n options,\n ...finishNode(pos),\n };\n }\n function parseArrayExpressionOrHigher() {\n const pos = tokenPos();\n let expr = parsePrimaryExpression();\n while (parseOptional(Token.OpenBracket)) {\n parseExpected(Token.CloseBracket);\n expr = {\n kind: SyntaxKind.ArrayExpression,\n elementType: expr,\n ...finishNode(pos),\n };\n }\n return expr;\n }\n function parseStandaloneReferenceExpression() {\n const expr = parseReferenceExpression();\n if (parseDiagnostics.length === 0 && token() !== Token.EndOfFile) {\n error({ code: \"token-expected\", messageId: \"unexpected\", format: { token: Token[token()] } });\n }\n return expr;\n }\n function parseValueOfExpression() {\n const pos = tokenPos();\n parseExpected(Token.ValueOfKeyword);\n const target = parseExpression();\n return {\n kind: SyntaxKind.ValueOfExpression,\n target,\n ...finishNode(pos),\n };\n }\n function parseReferenceExpression(message) {\n const pos = tokenPos();\n const target = parseIdentifierOrMemberExpression(message);\n const args = parseOptionalList(ListKind.TemplateArguments, parseExpression);\n return {\n kind: SyntaxKind.TypeReference,\n target,\n arguments: args,\n ...finishNode(pos),\n };\n }\n function parseAugmentDecorator() {\n const pos = tokenPos();\n parseExpected(Token.AtAt);\n // Error recovery: false arg here means don't treat a keyword as an\n // identifier. We want to parse `@ model Foo` as invalid decorator\n // `@<missing identifier>` applied to `model Foo`, and not as `@model`\n // applied to invalid statement `Foo`.\n const target = parseIdentifierOrMemberExpression(undefined, false);\n const args = parseOptionalList(ListKind.DecoratorArguments, parseExpression);\n if (args.length === 0) {\n error({ code: \"augment-decorator-target\" });\n return {\n kind: SyntaxKind.AugmentDecoratorStatement,\n target,\n targetType: {\n kind: SyntaxKind.TypeReference,\n target: createMissingIdentifier(),\n arguments: [],\n ...finishNode(pos),\n },\n arguments: [],\n ...finishNode(pos),\n };\n }\n let [targetEntity, ...decoratorArgs] = args;\n if (targetEntity.kind !== SyntaxKind.TypeReference) {\n error({ code: \"augment-decorator-target\", target: targetEntity });\n targetEntity = {\n kind: SyntaxKind.TypeReference,\n target: createMissingIdentifier(),\n arguments: [],\n ...finishNode(pos),\n };\n }\n return {\n kind: SyntaxKind.AugmentDecoratorStatement,\n target,\n targetType: targetEntity,\n arguments: decoratorArgs,\n ...finishNode(pos),\n };\n }\n function parseImportStatement() {\n const pos = tokenPos();\n parseExpected(Token.ImportKeyword);\n const path = parseStringLiteral();\n parseExpected(Token.Semicolon);\n return {\n kind: SyntaxKind.ImportStatement,\n path,\n ...finishNode(pos),\n };\n }\n function parseDecoratorExpression() {\n const pos = tokenPos();\n parseExpected(Token.At);\n // Error recovery: false arg here means don't treat a keyword as an\n // identifier. We want to parse `@ model Foo` as invalid decorator\n // `@<missing identifier>` applied to `model Foo`, and not as `@model`\n // applied to invalid statement `Foo`.\n const target = parseIdentifierOrMemberExpression(undefined, false);\n const args = parseOptionalList(ListKind.DecoratorArguments, parseExpression);\n return {\n kind: SyntaxKind.DecoratorExpression,\n arguments: args,\n target,\n ...finishNode(pos),\n };\n }\n function parseDirectiveExpression() {\n const pos = tokenPos();\n parseExpected(Token.Hash);\n const target = parseIdentifier();\n if (target.sv !== \"suppress\") {\n error({\n code: \"unknown-directive\",\n format: { id: target.sv },\n target: { pos, end: pos + target.sv.length },\n printable: true,\n });\n }\n // The newline will mark the end of the directive.\n newLineIsTrivia = false;\n const args = [];\n while (token() !== Token.NewLine && token() !== Token.EndOfFile) {\n const param = parseDirectiveParameter();\n if (param) {\n args.push(param);\n }\n }\n newLineIsTrivia = true;\n nextToken();\n return {\n kind: SyntaxKind.DirectiveExpression,\n arguments: args,\n target,\n ...finishNode(pos),\n };\n }\n function parseDirectiveParameter() {\n switch (token()) {\n case Token.Identifier:\n return parseIdentifier();\n case Token.StringLiteral:\n return parseStringLiteral();\n default:\n error({\n code: \"token-expected\",\n messageId: \"unexpected\",\n format: { token: Token[token()] },\n });\n do {\n nextToken();\n } while (!isStatementKeyword(token()) &&\n token() !== Token.NewLine &&\n token() !== Token.At &&\n token() !== Token.Semicolon &&\n token() !== Token.EndOfFile);\n return undefined;\n }\n }\n function parseIdentifierOrMemberExpression(message, recoverFromKeyword = true) {\n const pos = tokenPos();\n let base = parseIdentifier({\n message,\n recoverFromKeyword,\n });\n while (token() !== Token.EndOfFile) {\n if (parseOptional(Token.Dot)) {\n base = {\n kind: SyntaxKind.MemberExpression,\n base,\n // Error recovery: false arg here means don't treat a keyword as an\n // identifier after `.` in member expression. Otherwise we will\n // parse `@Outer.<missing identifier> model M{}` as having decorator\n // `@Outer.model` applied to invalid statement `M {}` instead of\n // having incomplete decorator `@Outer.` applied to `model M {}`.\n id: parseIdentifier({\n recoverFromKeyword: false,\n }),\n selector: \".\",\n ...finishNode(pos),\n };\n }\n else if (parseOptional(Token.ColonColon)) {\n base = {\n kind: SyntaxKind.MemberExpression,\n base,\n id: parseIdentifier(),\n selector: \"::\",\n ...finishNode(pos),\n };\n }\n else {\n break;\n }\n }\n return base;\n }\n function parsePrimaryExpression() {\n while (true) {\n switch (token()) {\n case Token.ValueOfKeyword:\n return parseValueOfExpression();\n case Token.Identifier:\n return parseReferenceExpression();\n case Token.StringLiteral:\n return parseStringLiteral();\n case Token.TrueKeyword:\n case Token.FalseKeyword:\n return parseBooleanLiteral();\n case Token.NumericLiteral:\n return parseNumericLiteral();\n case Token.OpenBrace:\n return parseModelExpression();\n case Token.OpenBracket:\n return parseTupleExpression();\n case Token.OpenParen:\n return parseParenthesizedExpression();\n case Token.At:\n const decorators = parseDecoratorList();\n reportInvalidDecorators(decorators, \"expression\");\n continue;\n case Token.Hash:\n const directives = parseDirectiveList();\n reportInvalidDirective(directives, \"expression\");\n continue;\n case Token.VoidKeyword:\n return parseVoidKeyword();\n case Token.NeverKeyword:\n return parseNeverKeyword();\n case Token.UnknownKeyword:\n return parseUnknownKeyword();\n default:\n return parseReferenceExpression(\"expression\");\n }\n }\n }\n function parseExternKeyword() {\n const pos = tokenPos();\n parseExpected(Token.ExternKeyword);\n return {\n kind: SyntaxKind.ExternKeyword,\n ...finishNode(pos),\n };\n }\n function parseVoidKeyword() {\n const pos = tokenPos();\n parseExpected(Token.VoidKeyword);\n return {\n kind: SyntaxKind.VoidKeyword,\n ...finishNode(pos),\n };\n }\n function parseNeverKeyword() {\n const pos = tokenPos();\n parseExpected(Token.NeverKeyword);\n return {\n kind: SyntaxKind.NeverKeyword,\n ...finishNode(pos),\n };\n }\n function parseUnknownKeyword() {\n const pos = tokenPos();\n parseExpected(Token.UnknownKeyword);\n return {\n kind: SyntaxKind.UnknownKeyword,\n ...finishNode(pos),\n };\n }\n function parseParenthesizedExpression() {\n const pos = tokenPos();\n parseExpected(Token.OpenParen);\n const expr = parseExpression();\n parseExpected(Token.CloseParen);\n return { ...expr, ...finishNode(pos) };\n }\n function parseTupleExpression() {\n const pos = tokenPos();\n const values = parseList(ListKind.Tuple, parseExpression);\n return {\n kind: SyntaxKind.TupleExpression,\n values,\n ...finishNode(pos),\n };\n }\n function parseModelExpression() {\n const pos = tokenPos();\n const properties = parseList(ListKind.ModelProperties, parseModelPropertyOrSpread);\n return {\n kind: SyntaxKind.ModelExpression,\n properties,\n ...finishNode(pos),\n };\n }\n function parseStringLiteral() {\n const pos = tokenPos();\n const value = tokenValue();\n parseExpected(Token.StringLiteral);\n return {\n kind: SyntaxKind.StringLiteral,\n value,\n ...finishNode(pos),\n };\n }\n function parseNumericLiteral() {\n const pos = tokenPos();\n const valueAsString = tokenValue();\n const value = Number(valueAsString);\n parseExpected(Token.NumericLiteral);\n return {\n kind: SyntaxKind.NumericLiteral,\n value,\n valueAsString,\n ...finishNode(pos),\n };\n }\n function parseBooleanLiteral() {\n const pos = tokenPos();\n const token = parseExpectedOneOf(Token.TrueKeyword, Token.FalseKeyword);\n const value = token === Token.TrueKeyword;\n return {\n kind: SyntaxKind.BooleanLiteral,\n value,\n ...finishNode(pos),\n };\n }\n function parseIdentifier(options) {\n var _a;\n if ((options === null || options === void 0 ? void 0 : options.recoverFromKeyword) !== false && isKeyword(token())) {\n error({ code: \"reserved-identifier\" });\n }\n else if (token() !== Token.Identifier &&\n (!(options === null || options === void 0 ? void 0 : options.allowStringLiteral) || token() !== Token.StringLiteral)) {\n // Error recovery: when we fail to parse an identifier or expression,\n // we insert a synthesized identifier with a unique name.\n error({ code: \"token-expected\", messageId: (_a = options === null || options === void 0 ? void 0 : options.message) !== null && _a !== void 0 ? _a : \"identifier\" });\n return createMissingIdentifier();\n }\n const pos = tokenPos();\n const sv = tokenValue();\n nextToken();\n return {\n kind: SyntaxKind.Identifier,\n sv,\n ...finishNode(pos),\n };\n }\n function parseDeclaration(pos) {\n const modifiers = parseModifiers();\n switch (token()) {\n case Token.DecKeyword:\n return parseDecoratorDeclarationStatement(pos, modifiers);\n case Token.FnKeyword:\n return parseFunctionDeclarationStatement(pos, modifiers);\n }\n return parseInvalidStatement(pos, []);\n }\n function parseModifiers() {\n const modifiers = [];\n let modifier;\n while ((modifier = parseModifier())) {\n modifiers.push(modifier);\n }\n return modifiers;\n }\n function parseModifier() {\n switch (token()) {\n case Token.ExternKeyword:\n return parseExternKeyword();\n default:\n return undefined;\n }\n }\n function parseDecoratorDeclarationStatement(pos, modifiers) {\n const modifierFlags = modifiersToFlags(modifiers);\n parseExpected(Token.DecKeyword);\n const id = parseIdentifier();\n let [target, ...parameters] = parseFunctionParameters();\n if (target === undefined) {\n error({ code: \"decorator-decl-target\", target: { pos, end: previousTokenEnd } });\n target = {\n kind: SyntaxKind.FunctionParameter,\n id: createMissingIdentifier(),\n type: createMissingIdentifier(),\n optional: false,\n rest: false,\n ...finishNode(pos),\n };\n }\n if (target.optional) {\n error({ code: \"decorator-decl-target\", messageId: \"required\" });\n }\n parseExpected(Token.Semicolon);\n return {\n kind: SyntaxKind.DecoratorDeclarationStatement,\n modifiers,\n modifierFlags,\n id,\n target,\n parameters,\n ...finishNode(pos),\n };\n }\n function parseFunctionDeclarationStatement(pos, modifiers) {\n const modifierFlags = modifiersToFlags(modifiers);\n parseExpected(Token.FnKeyword);\n const id = parseIdentifier();\n const parameters = parseFunctionParameters();\n let returnType;\n if (parseOptional(Token.Colon)) {\n returnType = parseExpression();\n }\n parseExpected(Token.Semicolon);\n return {\n kind: SyntaxKind.FunctionDeclarationStatement,\n modifiers,\n modifierFlags,\n id,\n parameters,\n returnType,\n ...finishNode(pos),\n };\n }\n function parseFunctionParameters() {\n const parameters = parseList(ListKind.FunctionParameters, parseFunctionParameter);\n let foundOptional = false;\n for (const [index, item] of parameters.entries()) {\n if (!item.optional && foundOptional) {\n error({ code: \"required-parameter-first\", target: item });\n continue;\n }\n if (item.optional) {\n foundOptional = true;\n }\n if (item.rest && item.optional) {\n error({ code: \"rest-parameter-required\", target: item });\n }\n if (item.rest && index !== parameters.length - 1) {\n error({ code: \"rest-parameter-last\", target: item });\n }\n }\n return parameters;\n }\n function parseFunctionParameter() {\n const pos = tokenPos();\n const rest = parseOptional(Token.Ellipsis);\n const id = parseIdentifier({ message: \"property\" });\n const optional = parseOptional(Token.Question);\n let type;\n if (parseOptional(Token.Colon)) {\n type = parseExpression();\n }\n return {\n kind: SyntaxKind.FunctionParameter,\n id,\n type,\n optional,\n rest,\n ...finishNode(pos),\n };\n }\n function modifiersToFlags(modifiers) {\n let flags = 0 /* ModifierFlags.None */;\n for (const modifier of modifiers) {\n switch (modifier.kind) {\n case SyntaxKind.ExternKeyword:\n flags |= 2 /* ModifierFlags.Extern */;\n break;\n }\n }\n return flags;\n }\n function parseProjectionStatement(pos) {\n parseExpected(Token.ProjectionKeyword);\n const selector = parseProjectionSelector();\n parseExpected(Token.Hash);\n const id = parseIdentifier();\n parseExpected(Token.OpenBrace);\n const projectionMap = new Map();\n const projections = [];\n while (token() === Token.Identifier) {\n const projection = parseProjection();\n if (projection.direction !== \"<error>\") {\n if (projectionMap.has(projection.direction)) {\n error({ code: \"duplicate-symbol\", target: projection, format: { name: \"projection\" } });\n }\n else {\n projectionMap.set(projection.direction, projection);\n }\n }\n // NOTE: Don't drop projections with error in direction definition from the AST.\n projections.push(projection);\n }\n parseExpected(Token.CloseBrace);\n return {\n kind: SyntaxKind.ProjectionStatement,\n selector,\n projections,\n preTo: projectionMap.get(\"pre_to\"),\n preFrom: projectionMap.get(\"pre_from\"),\n from: projectionMap.get(\"from\"),\n to: projectionMap.get(\"to\"),\n id,\n ...finishNode(pos),\n };\n }\n function parseProjection() {\n const pos = tokenPos();\n let directionId = parseIdentifier({ message: \"projectionDirection\" });\n let direction;\n const modifierIds = [];\n let isPre = false;\n if (directionId.sv === \"pre\") {\n isPre = true;\n modifierIds.push(directionId);\n directionId = parseIdentifier({ message: \"projectionDirection\" });\n }\n if (directionId.sv !== \"to\" && directionId.sv !== \"from\") {\n error({ code: \"token-expected\", messageId: \"projectionDirection\" });\n direction = \"<error>\";\n }\n else if (isPre) {\n direction = directionId.sv === \"to\" ? \"pre_to\" : \"pre_from\";\n }\n else {\n direction = directionId.sv;\n }\n let parameters;\n if (token() === Token.OpenParen) {\n parameters = parseList(ListKind.ProjectionParameter, parseProjectionParameter);\n }\n else {\n parameters = [];\n }\n parseExpected(Token.OpenBrace);\n const body = parseProjectionStatementList();\n parseExpected(Token.CloseBrace);\n return {\n kind: SyntaxKind.Projection,\n body,\n direction,\n directionId,\n modifierIds,\n parameters,\n ...finishNode(pos),\n };\n }\n function parseProjectionParameter() {\n const pos = tokenPos();\n const id = parseIdentifier();\n return {\n kind: SyntaxKind.ProjectionParameterDeclaration,\n id,\n ...finishNode(pos),\n };\n }\n function parseProjectionStatementList() {\n const stmts = [];\n while (token() !== Token.CloseBrace) {\n const startPos = tokenPos();\n if (token() === Token.EndOfFile) {\n error({ code: \"token-expected\", messageId: \"default\", format: { token: \"}\" } });\n break;\n }\n const expr = parseProjectionExpressionStatement();\n stmts.push(expr);\n if (tokenPos() === startPos) {\n // we didn't manage to parse anything, so break out\n // and we'll report errors elsewhere.\n break;\n }\n }\n return stmts;\n }\n function parseProjectionExpressionStatement() {\n const pos = tokenPos();\n const expr = parseProjectionExpression();\n parseExpected(Token.Semicolon);\n return {\n kind: SyntaxKind.ProjectionExpressionStatement,\n expr,\n ...finishNode(pos),\n };\n }\n function parseProjectionExpression() {\n return parseProjectionReturnExpressionOrHigher();\n }\n function parseProjectionReturnExpressionOrHigher() {\n if (token() === Token.ReturnKeyword) {\n const pos = tokenPos();\n parseExpected(Token.ReturnKeyword);\n return {\n kind: SyntaxKind.Return,\n value: parseProjectionExpression(),\n ...finishNode(pos),\n };\n }\n return parseProjectionLogicalOrExpressionOrHigher();\n }\n function parseProjectionLogicalOrExpressionOrHigher() {\n let expr = parseProjectionLogicalAndExpressionOrHigher();\n while (token() !== Token.EndOfFile) {\n const pos = expr.pos;\n if (parseOptional(Token.BarBar)) {\n expr = {\n kind: SyntaxKind.ProjectionLogicalExpression,\n op: \"||\",\n left: expr,\n right: parseProjectionLogicalAndExpressionOrHigher(),\n ...finishNode(pos),\n };\n }\n else {\n break;\n }\n }\n return expr;\n }\n function parseProjectionLogicalAndExpressionOrHigher() {\n let expr = parseProjectionEqualityExpressionOrHigher();\n while (token() !== Token.EndOfFile) {\n const pos = expr.pos;\n if (parseOptional(Token.AmpsersandAmpersand)) {\n expr = {\n kind: SyntaxKind.ProjectionLogicalExpression,\n op: \"&&\",\n left: expr,\n right: parseProjectionEqualityExpressionOrHigher(),\n ...finishNode(pos),\n };\n }\n else {\n break;\n }\n }\n return expr;\n }\n function parseProjectionEqualityExpressionOrHigher() {\n let expr = parseProjectionRelationalExpressionOrHigher();\n while (token() !== Token.EndOfFile) {\n const pos = expr.pos;\n const tok = token();\n if (tok === Token.EqualsEquals || tok === Token.ExclamationEquals) {\n const op = tokenValue();\n nextToken();\n expr = {\n kind: SyntaxKind.ProjectionEqualityExpression,\n op,\n left: expr,\n right: parseProjectionRelationalExpressionOrHigher(),\n ...finishNode(pos),\n };\n }\n else {\n break;\n }\n }\n return expr;\n }\n function parseProjectionRelationalExpressionOrHigher() {\n let expr = parseProjectionAdditiveExpressionOrHigher();\n while (token() !== Token.EndOfFile) {\n const pos = expr.pos;\n const tok = token();\n if (tok === Token.LessThan ||\n tok === Token.LessThanEquals ||\n tok === Token.GreaterThan ||\n tok === Token.GreaterThanEquals) {\n const op = tokenValue();\n nextToken();\n expr = {\n kind: SyntaxKind.ProjectionRelationalExpression,\n op,\n left: expr,\n right: parseProjectionAdditiveExpressionOrHigher(),\n ...finishNode(pos),\n };\n }\n else {\n break;\n }\n }\n return expr;\n }\n function parseProjectionAdditiveExpressionOrHigher() {\n let expr = parseProjectionMultiplicativeExpressionOrHigher();\n while (token() !== Token.EndOfFile) {\n const pos = expr.pos;\n const tok = token();\n if (tok === Token.Plus || tok === Token.Hyphen) {\n const op = tokenValue();\n nextToken();\n expr = {\n kind: SyntaxKind.ProjectionArithmeticExpression,\n op,\n left: expr,\n right: parseProjectionMultiplicativeExpressionOrHigher(),\n ...finishNode(pos),\n };\n }\n else {\n break;\n }\n }\n return expr;\n }\n function parseProjectionMultiplicativeExpressionOrHigher() {\n let expr = parseProjectionUnaryExpressionOrHigher();\n while (token() !== Token.EndOfFile) {\n const pos = expr.pos;\n const tok = token();\n if (tok === Token.ForwardSlash || tok === Token.Star) {\n const op = tokenValue();\n nextToken();\n expr = {\n kind: SyntaxKind.ProjectionArithmeticExpression,\n op,\n left: expr,\n right: parseProjectionUnaryExpressionOrHigher(),\n ...finishNode(pos),\n };\n }\n else {\n break;\n }\n }\n return expr;\n }\n function parseProjectionUnaryExpressionOrHigher() {\n if (token() === Token.Exclamation) {\n const pos = tokenPos();\n nextToken();\n return {\n kind: SyntaxKind.ProjectionUnaryExpression,\n op: \"!\",\n target: parseProjectionUnaryExpressionOrHigher(),\n ...finishNode(pos),\n };\n }\n return parseProjectionCallExpressionOrHigher();\n }\n function parseProjectionCallExpressionOrHigher() {\n let expr = parseProjectionDecoratorReferenceExpressionOrHigher();\n while (token() !== Token.EndOfFile) {\n const pos = expr.pos;\n expr = parseProjectionMemberExpressionRest(expr, pos);\n if (token() === Token.OpenParen) {\n expr = {\n kind: SyntaxKind.ProjectionCallExpression,\n callKind: \"method\",\n target: expr,\n arguments: parseList(ListKind.CallArguments, parseProjectionExpression),\n ...finishNode(pos),\n };\n }\n else {\n break;\n }\n }\n return expr;\n }\n function parseProjectionDecoratorReferenceExpressionOrHigher() {\n if (token() === Token.At) {\n const pos = tokenPos();\n nextToken();\n return {\n kind: SyntaxKind.ProjectionDecoratorReferenceExpression,\n target: parseIdentifierOrMemberExpression(undefined, true),\n ...finishNode(pos),\n };\n }\n return parseProjectionMemberExpressionOrHigher();\n }\n function parseProjectionMemberExpressionOrHigher() {\n const pos = tokenPos();\n let expr = parseProjectionPrimaryExpression();\n expr = parseProjectionMemberExpressionRest(expr, pos);\n return expr;\n }\n function parseProjectionMemberExpressionRest(expr, pos) {\n while (token() !== Token.EndOfFile) {\n if (parseOptional(Token.Dot)) {\n expr = {\n kind: SyntaxKind.ProjectionMemberExpression,\n base: expr,\n id: parseIdentifier(),\n selector: \".\",\n ...finishNode(pos),\n };\n }\n else if (parseOptional(Token.ColonColon)) {\n expr = {\n kind: SyntaxKind.ProjectionMemberExpression,\n base: expr,\n id: parseIdentifier(),\n selector: \"::\",\n ...finishNode(pos),\n };\n }\n else {\n break;\n }\n }\n return expr;\n }\n function parseProjectionPrimaryExpression() {\n switch (token()) {\n case Token.IfKeyword:\n return parseProjectionIfExpression();\n case Token.NumericLiteral:\n return parseNumericLiteral();\n case Token.StringLiteral:\n return parseStringLiteral();\n case Token.TrueKeyword:\n case Token.FalseKeyword:\n return parseBooleanLiteral();\n case Token.OpenBracket:\n return parseProjectionTupleExpression();\n case Token.OpenBrace:\n return parseProjectionModelExpression();\n case Token.OpenParen:\n return parseProjectionLambdaOrParenthesizedExpression();\n case Token.VoidKeyword:\n return parseVoidKeyword();\n case Token.NeverKeyword:\n return parseNeverKeyword();\n case Token.UnknownKeyword:\n return parseUnknownKeyword();\n default:\n return parseIdentifier({ message: \"expression\" });\n }\n }\n function parseProjectionLambdaOrParenthesizedExpression() {\n const pos = tokenPos();\n const exprs = parseList(ListKind.ProjectionExpression, parseProjectionExpression);\n if (token() === Token.EqualsGreaterThan) {\n // unpack the exprs (which should be just identifiers) into a param list\n const params = [];\n for (const expr of exprs) {\n if (expr.kind === SyntaxKind.Identifier) {\n params.push(withSymbol({\n kind: SyntaxKind.ProjectionLambdaParameterDeclaration,\n id: expr,\n pos: expr.pos,\n end: expr.end,\n flags: 0 /* NodeFlags.None */,\n }));\n }\n else {\n error({ code: \"token-expected\", messageId: \"identifier\", target: expr });\n }\n }\n return parseProjectionLambdaExpressionRest(pos, params);\n }\n else {\n if (exprs.length === 0) {\n error({\n code: \"token-expected\",\n messageId: \"expression\",\n });\n }\n // verify we only have one entry\n for (let i = 1; i < exprs.length; i++) {\n error({\n code: \"token-expected\",\n messageId: \"unexpected\",\n format: { token: \"expression\" },\n target: exprs[i],\n });\n }\n return exprs[0];\n }\n }\n function parseProjectionLambdaExpressionRest(pos, parameters) {\n parseExpected(Token.EqualsGreaterThan);\n const body = parseProjectionBlockExpression();\n return {\n kind: SyntaxKind.ProjectionLambdaExpression,\n parameters,\n body,\n ...finishNode(pos),\n };\n }\n function parseProjectionModelExpression() {\n const pos = tokenPos();\n const properties = parseList(ListKind.ModelProperties, parseProjectionModelPropertyOrSpread);\n return {\n kind: SyntaxKind.ProjectionModelExpression,\n properties,\n ...finishNode(pos),\n };\n }\n function parseProjectionModelPropertyOrSpread(pos, decorators) {\n return token() === Token.Ellipsis\n ? parseProjectionModelSpreadProperty(pos, decorators)\n : parseProjectionModelProperty(pos, decorators);\n }\n function parseProjectionModelSpreadProperty(pos, decorators) {\n parseExpected(Token.Ellipsis);\n reportInvalidDecorators(decorators, \"spread property\");\n const target = parseProjectionExpression();\n return {\n kind: SyntaxKind.ProjectionModelSpreadProperty,\n target,\n ...finishNode(pos),\n };\n }\n function parseProjectionModelProperty(pos, decorators) {\n const id = parseIdentifier({ message: \"property\", allowStringLiteral: true });\n const optional = parseOptional(Token.Question);\n parseExpected(Token.Colon);\n const value = parseProjectionExpression();\n const hasDefault = parseOptional(Token.Equals);\n const defaultValue = hasDefault ? parseProjectionExpression() : undefined;\n return {\n kind: SyntaxKind.ProjectionModelProperty,\n id,\n decorators,\n value,\n optional,\n default: defaultValue,\n ...finishNode(pos),\n };\n }\n function parseProjectionIfExpression() {\n const pos = tokenPos();\n parseExpected(Token.IfKeyword);\n const test = parseProjectionExpression();\n const consequent = parseProjectionBlockExpression();\n let alternate = undefined;\n if (parseOptional(Token.ElseKeyword)) {\n if (token() === Token.IfKeyword) {\n alternate = parseProjectionIfExpression();\n }\n else {\n alternate = parseProjectionBlockExpression();\n }\n }\n return {\n kind: SyntaxKind.ProjectionIfExpression,\n test,\n consequent,\n alternate,\n ...finishNode(pos),\n };\n }\n function parseProjectionBlockExpression() {\n const pos = tokenPos();\n parseExpected(Token.OpenBrace);\n const statements = parseProjectionStatementList();\n parseExpected(Token.CloseBrace);\n return {\n kind: SyntaxKind.ProjectionBlockExpression,\n statements,\n ...finishNode(pos),\n };\n }\n function parseProjectionTupleExpression() {\n const pos = tokenPos();\n const values = parseList(ListKind.Tuple, parseProjectionExpression);\n return {\n kind: SyntaxKind.ProjectionTupleExpression,\n values,\n ...finishNode(pos),\n };\n }\n function parseProjectionSelector() {\n const pos = tokenPos();\n const selectorTok = expectTokenIsOneOf(Token.Identifier, Token.ModelKeyword, Token.OpKeyword, Token.InterfaceKeyword, Token.UnionKeyword, Token.EnumKeyword);\n switch (selectorTok) {\n case Token.Identifier:\n const id = parseIdentifierOrMemberExpression(undefined, true);\n if (id.kind === SyntaxKind.Identifier) {\n switch (id.sv) {\n case \"modelproperty\":\n return {\n kind: SyntaxKind.ProjectionModelPropertySelector,\n ...finishNode(pos),\n };\n case \"unionvariant\":\n return {\n kind: SyntaxKind.ProjectionUnionVariantSelector,\n ...finishNode(pos),\n };\n case \"enummember\":\n return {\n kind: SyntaxKind.ProjectionEnumMemberSelector,\n ...finishNode(pos),\n };\n }\n }\n return id;\n case Token.ModelKeyword:\n nextToken();\n return {\n kind: SyntaxKind.ProjectionModelSelector,\n ...finishNode(pos),\n };\n case Token.OpKeyword:\n nextToken();\n return {\n kind: SyntaxKind.ProjectionOperationSelector,\n ...finishNode(pos),\n };\n case Token.InterfaceKeyword:\n nextToken();\n return {\n kind: SyntaxKind.ProjectionInterfaceSelector,\n ...finishNode(pos),\n };\n case Token.UnionKeyword:\n nextToken();\n return {\n kind: SyntaxKind.ProjectionUnionSelector,\n ...finishNode(pos),\n };\n case Token.EnumKeyword:\n nextToken();\n return {\n kind: SyntaxKind.ProjectionEnumSelector,\n ...finishNode(pos),\n };\n default:\n // recovery: return a missing identifier to use as the selector\n // we don't need to emit a diagnostic here as the `expectTokenOneOf` above\n // will have done so.\n return createMissingIdentifier();\n }\n }\n function parseRange(mode, range, callback) {\n const savedMode = currentMode;\n const result = scanner.scanRange(range, () => {\n currentMode = mode;\n nextToken();\n return callback();\n });\n currentMode = savedMode;\n return result;\n }\n /** Remove leading slash-star-star and trailing star-slash (if terminated) from doc comment range. */\n function innerDocRange(range) {\n return {\n pos: range.pos + 3,\n end: tokenFlags() & TokenFlags.Unterminated ? range.end : range.end - 2,\n };\n }\n function parseDocList() {\n if (docRanges.length === 0 || options.docs === false) {\n return [tokenPos(), []];\n }\n const docs = [];\n for (const range of docRanges) {\n const doc = parseRange(1 /* ParseMode.Doc */, innerDocRange(range), () => parseDoc(range));\n docs.push(doc);\n if (range.comment) {\n mutate(range.comment).parsedAsDocs = true;\n }\n }\n return [docRanges[0].pos, docs];\n }\n function parseDoc(range) {\n const content = [];\n const tags = [];\n loop: while (true) {\n switch (token()) {\n case Token.EndOfFile:\n break loop;\n case Token.At:\n const tag = parseDocTag();\n tags.push(tag);\n break;\n default:\n content.push(...parseDocContent());\n break;\n }\n }\n return {\n kind: SyntaxKind.Doc,\n content,\n tags,\n ...finishNode(range.pos),\n end: range.end,\n };\n }\n function parseDocContent() {\n const parts = [];\n const source = scanner.file.text;\n const pos = tokenPos();\n let start = pos;\n let inCodeFence = false;\n loop: while (true) {\n switch (token()) {\n case Token.DocCodeFenceDelimiter:\n inCodeFence = !inCodeFence;\n nextToken();\n break;\n case Token.NewLine:\n parts.push(source.substring(start, tokenPos()));\n parts.push(\"\\n\"); // normalize line endings\n nextToken();\n start = tokenPos();\n while (parseOptional(Token.Whitespace))\n ;\n if (parseOptional(Token.Star)) {\n parseOptional(Token.Whitespace);\n start = tokenPos();\n break;\n }\n break;\n case Token.EndOfFile:\n break loop;\n case Token.At:\n if (!inCodeFence) {\n break loop;\n }\n nextToken();\n break;\n default:\n nextToken();\n break;\n }\n }\n parts.push(source.substring(start, tokenPos()));\n const text = trim(parts.join(\"\"));\n return [\n {\n kind: SyntaxKind.DocText,\n text,\n ...finishNode(pos),\n },\n ];\n }\n function parseDocTag() {\n const pos = tokenPos();\n parseExpected(Token.At);\n const tagName = parseDocIdentifier(\"tag\");\n switch (tagName.sv) {\n case \"param\":\n return parseDocParamLikeTag(pos, tagName, SyntaxKind.DocParamTag, \"param\");\n case \"template\":\n return parseDocParamLikeTag(pos, tagName, SyntaxKind.DocTemplateTag, \"templateParam\");\n case \"return\":\n case \"returns\":\n return parseDocSimpleTag(pos, tagName, SyntaxKind.DocReturnsTag);\n default:\n return parseDocSimpleTag(pos, tagName, SyntaxKind.DocUnknownTag);\n }\n }\n function parseDocParamLikeTag(pos, tagName, kind, messageId) {\n const name = parseDocIdentifier(messageId);\n const content = parseDocContent();\n return {\n kind,\n tagName,\n paramName: name,\n content,\n ...finishNode(pos),\n };\n }\n function parseDocSimpleTag(pos, tagName, kind) {\n const content = parseDocContent();\n return {\n kind,\n tagName,\n content,\n ...finishNode(pos),\n };\n }\n function parseDocIdentifier(messageId) {\n // We don't allow whitespace between @ and tag name, but allow\n // whitespace before all other identifiers.\n if (messageId !== \"tag\") {\n while (parseOptional(Token.Whitespace))\n ;\n }\n const pos = tokenPos();\n let sv;\n if (token() === Token.Identifier) {\n sv = tokenValue();\n nextToken();\n }\n else {\n sv = \"\";\n warning({ code: \"doc-invalid-identifier\", messageId });\n }\n return {\n kind: SyntaxKind.Identifier,\n sv,\n ...finishNode(pos),\n };\n }\n // utility functions\n function token() {\n return scanner.token;\n }\n function tokenFlags() {\n return scanner.tokenFlags;\n }\n function tokenValue() {\n return scanner.getTokenValue();\n }\n function tokenPos() {\n return scanner.tokenPosition;\n }\n function tokenEnd() {\n return scanner.position;\n }\n function nextToken() {\n // keep track of the previous token end separately from the current scanner\n // position as these will differ when the previous token had trailing\n // trivia, and we don't want to squiggle the trivia.\n previousTokenEnd = scanner.position;\n return currentMode === 0 /* ParseMode.Syntax */ ? nextSyntaxToken() : nextDocToken();\n }\n function nextSyntaxToken() {\n docRanges = [];\n for (;;) {\n scanner.scan();\n if (isTrivia(token())) {\n if (!newLineIsTrivia && token() === Token.NewLine) {\n break;\n }\n let comment = undefined;\n if (options.comments && isComment(token())) {\n comment = {\n kind: token() === Token.SingleLineComment\n ? SyntaxKind.LineComment\n : SyntaxKind.BlockComment,\n pos: tokenPos(),\n end: tokenEnd(),\n };\n comments.push(comment);\n }\n if (tokenFlags() & TokenFlags.DocComment) {\n docRanges.push({\n pos: tokenPos(),\n end: tokenEnd(),\n comment: comment,\n });\n }\n }\n else {\n break;\n }\n }\n }\n function nextDocToken() {\n // NOTE: trivia tokens are always significant in doc comments.\n scanner.scanDoc();\n }\n function createMissingIdentifier() {\n const pos = tokenPos();\n previousTokenEnd = pos;\n missingIdentifierCounter++;\n return {\n kind: SyntaxKind.Identifier,\n sv: \"<missing identifier>\" + missingIdentifierCounter,\n ...finishNode(pos),\n };\n }\n function finishNode(pos) {\n const flags = parseErrorInNextFinishedNode ? 2 /* NodeFlags.ThisNodeHasError */ : 0 /* NodeFlags.None */;\n parseErrorInNextFinishedNode = false;\n return withSymbol({ pos, end: previousTokenEnd, flags });\n }\n // pretend to add as symbol property, likely to a node that is being created.\n function withSymbol(obj) {\n return obj;\n }\n /**\n * Parse a delimited list of elements, including the surrounding open and\n * close punctuation\n *\n * This shared driver function is used to share sensitive error recovery code.\n * In particular, error recovery by inserting tokens deemed missing is\n * susceptible to getting stalled in a loop iteration without making any\n * progress, and we guard against this in a shared place here.\n *\n * Note that statement and decorator lists do not have this issue. We always\n * consume at least a real '@' for a decorator and if the leading token of a\n * statement is not one of our statement keywords, ';', or '@', it is consumed\n * as part of a bad statement. As such, parsing of decorators and statements\n * do not go through here.\n */\n function parseList(kind, parseItem) {\n if (kind.open !== Token.None) {\n parseExpected(kind.open);\n }\n if (kind.allowEmpty && parseOptional(kind.close)) {\n return [];\n }\n const items = [];\n while (true) {\n const { pos, docs, directives, decorators } = parseAnnotations({\n skipParsingDocNodes: Boolean(kind.invalidAnnotationTarget),\n });\n if (kind.invalidAnnotationTarget) {\n reportInvalidDecorators(decorators, kind.invalidAnnotationTarget);\n reportInvalidDirective(directives, kind.invalidAnnotationTarget);\n }\n if (directives.length === 0 && decorators.length === 0 && atEndOfListWithError(kind)) {\n // Error recovery: end surrounded list at statement keyword or end\n // of file. Note, however, that we must parse a missing element if\n // there were directives or decorators as we cannot drop those from\n // the tree.\n parseExpected(kind.close);\n break;\n }\n let item;\n if (kind.invalidAnnotationTarget) {\n item = parseItem();\n }\n else {\n item = parseItem(pos, decorators);\n mutate(item).docs = docs;\n mutate(item).directives = directives;\n }\n items.push(item);\n const delimiter = token();\n const delimiterPos = tokenPos();\n if (parseOptionalDelimiter(kind)) {\n // Delimiter found: check if it's trailing.\n if (parseOptional(kind.close)) {\n if (!kind.trailingDelimiterIsValid) {\n error({\n code: \"trailing-token\",\n format: { token: TokenDisplay[delimiter] },\n target: {\n pos: delimiterPos,\n end: delimiterPos + 1,\n },\n });\n }\n // It was trailing and we've consumed the close token.\n break;\n }\n // Not trailing. We can safely skip the progress check below here\n // because we know that we consumed a real delimiter.\n continue;\n }\n else if (kind.close === Token.None) {\n // If a list is *not* surrounded by punctuation, then the list ends when\n // there's no delimiter after an item.\n break;\n }\n else if (parseOptional(kind.close)) {\n // If a list *is* surrounded by punctuation, then the list ends when we\n // reach the close token.\n break;\n }\n else if (atEndOfListWithError(kind)) {\n // Error recovery: If a list *is* surrounded by punctuation, then\n // the list ends at statement keyword or end-of-file under the\n // assumption that the closing delimiter is missing. This check is\n // duplicated from above to preempt the parseExpected(delimeter)\n // below.\n parseExpected(kind.close);\n break;\n }\n else {\n // Error recovery: if a list kind *is* surrounded by punctuation and we\n // find neither a delimiter nor a close token after an item, then we\n // assume there is a missing delimiter between items.\n //\n // Example: `model M { a: B <missing semicolon> c: D }\n parseExpected(kind.delimiter);\n }\n if (pos === tokenPos()) {\n // Error recovery: we've inserted everything during this loop iteration\n // and haven't made any progress. Assume that the current token is a bad\n // representation of the end of the the list that we're trying to get\n // through.\n //\n // Simple repro: `model M { ]` would loop forever without this check.\n //\n parseExpected(kind.close);\n nextToken();\n // remove the item that was entirely inserted by error recovery.\n items.pop();\n break;\n }\n }\n return items;\n }\n /**\n * Parse a delimited list with surrounding open and close punctuation if the\n * open token is present. Otherwise, return an empty list.\n */\n function parseOptionalList(kind, parseItem) {\n return token() === kind.open ? parseList(kind, parseItem) : [];\n }\n function parseOptionalDelimiter(kind) {\n if (parseOptional(kind.delimiter)) {\n return true;\n }\n if (token() === kind.toleratedDelimiter) {\n if (!kind.toleratedDelimiterIsValid) {\n parseExpected(kind.delimiter);\n }\n nextToken();\n return true;\n }\n return false;\n }\n function atEndOfListWithError(kind) {\n return (kind.close !== Token.None &&\n (isStatementKeyword(token()) || token() === Token.EndOfFile) &&\n token() !== kind.allowedStatementKeyword);\n }\n function parseEmptyStatement(pos) {\n parseExpected(Token.Semicolon);\n return { kind: SyntaxKind.EmptyStatement, ...finishNode(pos) };\n }\n function parseInvalidStatement(pos, decorators) {\n // Error recovery: avoid an avalanche of errors when we get cornered into\n // parsing statements where none exist. Skip until we find a statement\n // keyword or decorator and only report one error for a contiguous range of\n // neither.\n do {\n nextToken();\n } while (!isStatementKeyword(token()) &&\n token() !== Token.At &&\n token() !== Token.Semicolon &&\n token() !== Token.EndOfFile);\n error({\n code: \"token-expected\",\n messageId: \"statement\",\n target: { pos, end: previousTokenEnd },\n });\n return { kind: SyntaxKind.InvalidStatement, decorators, ...finishNode(pos) };\n }\n function error(report) {\n var _a, _b, _c, _d, _e, _f;\n parseErrorInNextFinishedNode = true;\n const location = {\n file: scanner.file,\n pos: (_b = (_a = report.target) === null || _a === void 0 ? void 0 : _a.pos) !== null && _b !== void 0 ? _b : tokenPos(),\n end: (_d = (_c = report.target) === null || _c === void 0 ? void 0 : _c.end) !== null && _d !== void 0 ? _d : tokenEnd(),\n };\n if (!report.printable) {\n treePrintable = false;\n }\n // Error recovery: don't report more than 1 consecutive error at the same\n // position. The code path taken by error recovery after logging an error\n // can otherwise produce redundant and less decipherable errors, which this\n // suppresses.\n const realPos = (_f = (_e = report.target) === null || _e === void 0 ? void 0 : _e.realPos) !== null && _f !== void 0 ? _f : location.pos;\n if (realPositionOfLastError === realPos) {\n return;\n }\n realPositionOfLastError = realPos;\n const diagnostic = createDiagnostic({\n ...report,\n target: location,\n });\n assert(diagnostic.severity === \"error\", \"This function is for reporting errors. Use warning() for warnings.\");\n parseDiagnostics.push(diagnostic);\n }\n function warning(report) {\n var _a, _b, _c, _d;\n const location = {\n file: scanner.file,\n pos: (_b = (_a = report.target) === null || _a === void 0 ? void 0 : _a.pos) !== null && _b !== void 0 ? _b : tokenPos(),\n end: (_d = (_c = report.target) === null || _c === void 0 ? void 0 : _c.end) !== null && _d !== void 0 ? _d : tokenEnd(),\n };\n const diagnostic = createDiagnostic({\n ...report,\n target: location,\n });\n assert(diagnostic.severity === \"warning\", \"This function is for reporting warnings only. Use error() for errors.\");\n parseDiagnostics.push(diagnostic);\n }\n function reportDiagnostic(diagnostic) {\n if (diagnostic.severity === \"error\") {\n parseErrorInNextFinishedNode = true;\n treePrintable = false;\n }\n parseDiagnostics.push(diagnostic);\n }\n function assert(condition, message) {\n const location = {\n file: scanner.file,\n pos: tokenPos(),\n end: tokenEnd(),\n };\n compilerAssert(condition, message, location);\n }\n function reportInvalidDecorators(decorators, nodeName) {\n for (const decorator of decorators) {\n error({ code: \"invalid-decorator-location\", format: { nodeName }, target: decorator });\n }\n }\n function reportInvalidDirective(directives, nodeName) {\n for (const directive of directives) {\n error({ code: \"invalid-directive-location\", format: { nodeName }, target: directive });\n }\n }\n function parseExpected(expectedToken) {\n if (token() === expectedToken) {\n nextToken();\n return true;\n }\n const location = getAdjustedDefaultLocation(expectedToken);\n error({\n code: \"token-expected\",\n format: { token: TokenDisplay[expectedToken] },\n target: location,\n printable: isPunctuation(expectedToken),\n });\n return false;\n }\n function expectTokenIsOneOf(...args) {\n const tok = token();\n for (const expected of args) {\n if (expected === Token.None) {\n continue;\n }\n if (tok === expected) {\n return tok;\n }\n }\n errorTokenIsNotOneOf(...args);\n return Token.None;\n }\n function parseExpectedOneOf(...args) {\n const tok = expectTokenIsOneOf(...args);\n if (tok !== Token.None) {\n nextToken();\n }\n return tok;\n }\n function errorTokenIsNotOneOf(...args) {\n const location = getAdjustedDefaultLocation(args[0]);\n const displayList = args.map((t, i) => {\n if (i === args.length - 1) {\n return `or ${TokenDisplay[t]}`;\n }\n return TokenDisplay[t];\n });\n error({ code: \"token-expected\", format: { token: displayList.join(\", \") }, target: location });\n }\n function parseOptional(optionalToken) {\n if (token() === optionalToken) {\n nextToken();\n return true;\n }\n return false;\n }\n function getAdjustedDefaultLocation(token) {\n // Put the squiggly immediately after prior token when missing punctuation.\n // Avoids saying ';' is expected far away after a long comment, for example.\n // It's also confusing to squiggle the current token even if its nearby\n // in this case.\n return isPunctuation(token)\n ? { pos: previousTokenEnd, end: previousTokenEnd + 1, realPos: tokenPos() }\n : undefined;\n }\n}\nexport function visitChildren(node, cb) {\n if (node.directives) {\n const result = visitEach(cb, node.directives);\n if (result)\n return result;\n }\n if (node.docs) {\n const result = visitEach(cb, node.docs);\n if (result)\n return result;\n }\n switch (node.kind) {\n case SyntaxKind.TypeSpecScript:\n return visitNode(cb, node.id) || visitEach(cb, node.statements);\n case SyntaxKind.ArrayExpression:\n return visitNode(cb, node.elementType);\n case SyntaxKind.AugmentDecoratorStatement:\n return (visitNode(cb, node.target) ||\n visitNode(cb, node.targetType) ||\n visitEach(cb, node.arguments));\n case SyntaxKind.DecoratorExpression:\n return visitNode(cb, node.target) || visitEach(cb, node.arguments);\n case SyntaxKind.DirectiveExpression:\n return visitNode(cb, node.target) || visitEach(cb, node.arguments);\n case SyntaxKind.ImportStatement:\n return visitNode(cb, node.path);\n case SyntaxKind.OperationStatement:\n return (visitEach(cb, node.decorators) ||\n visitNode(cb, node.id) ||\n visitEach(cb, node.templateParameters) ||\n visitNode(cb, node.signature));\n case SyntaxKind.OperationSignatureDeclaration:\n return visitNode(cb, node.parameters) || visitNode(cb, node.returnType);\n case SyntaxKind.OperationSignatureReference:\n return visitNode(cb, node.baseOperation);\n case SyntaxKind.NamespaceStatement:\n return (visitEach(cb, node.decorators) ||\n visitNode(cb, node.id) ||\n (isArray(node.statements) ? visitEach(cb, node.statements) : visitNode(cb, node.statements)));\n case SyntaxKind.InterfaceStatement:\n return (visitEach(cb, node.decorators) ||\n visitNode(cb, node.id) ||\n visitEach(cb, node.templateParameters) ||\n visitEach(cb, node.extends) ||\n visitEach(cb, node.operations));\n case SyntaxKind.UsingStatement:\n return visitNode(cb, node.name);\n case SyntaxKind.IntersectionExpression:\n return visitEach(cb, node.options);\n case SyntaxKind.MemberExpression:\n return visitNode(cb, node.base) || visitNode(cb, node.id);\n case SyntaxKind.ModelExpression:\n return visitEach(cb, node.properties);\n case SyntaxKind.ModelProperty:\n return (visitEach(cb, node.decorators) ||\n visitNode(cb, node.id) ||\n visitNode(cb, node.value) ||\n visitNode(cb, node.default));\n case SyntaxKind.ModelSpreadProperty:\n return visitNode(cb, node.target);\n case SyntaxKind.ModelStatement:\n return (visitEach(cb, node.decorators) ||\n visitNode(cb, node.id) ||\n visitEach(cb, node.templateParameters) ||\n visitNode(cb, node.extends) ||\n visitNode(cb, node.is) ||\n visitEach(cb, node.properties));\n case SyntaxKind.ScalarStatement:\n return (visitEach(cb, node.decorators) ||\n visitNode(cb, node.id) ||\n visitEach(cb, node.templateParameters) ||\n visitNode(cb, node.extends));\n case SyntaxKind.UnionStatement:\n return (visitEach(cb, node.decorators) ||\n visitNode(cb, node.id) ||\n visitEach(cb, node.templateParameters) ||\n visitEach(cb, node.options));\n case SyntaxKind.UnionVariant:\n return visitEach(cb, node.decorators) || visitNode(cb, node.id) || visitNode(cb, node.value);\n case SyntaxKind.EnumStatement:\n return (visitEach(cb, node.decorators) || visitNode(cb, node.id) || visitEach(cb, node.members));\n case SyntaxKind.EnumMember:\n return visitEach(cb, node.decorators) || visitNode(cb, node.id) || visitNode(cb, node.value);\n case SyntaxKind.EnumSpreadMember:\n return visitNode(cb, node.target);\n case SyntaxKind.AliasStatement:\n return (visitNode(cb, node.id) ||\n visitEach(cb, node.templateParameters) ||\n visitNode(cb, node.value));\n case SyntaxKind.DecoratorDeclarationStatement:\n return (visitEach(cb, node.modifiers) ||\n visitNode(cb, node.id) ||\n visitNode(cb, node.target) ||\n visitEach(cb, node.parameters));\n case SyntaxKind.FunctionDeclarationStatement:\n return (visitEach(cb, node.modifiers) ||\n visitNode(cb, node.id) ||\n visitEach(cb, node.parameters) ||\n visitNode(cb, node.returnType));\n case SyntaxKind.FunctionParameter:\n return visitNode(cb, node.id) || visitNode(cb, node.type);\n case SyntaxKind.TypeReference:\n return visitNode(cb, node.target) || visitEach(cb, node.arguments);\n case SyntaxKind.ValueOfExpression:\n return visitNode(cb, node.target);\n case SyntaxKind.TupleExpression:\n return visitEach(cb, node.values);\n case SyntaxKind.UnionExpression:\n return visitEach(cb, node.options);\n case SyntaxKind.Projection:\n return (visitNode(cb, node.directionId) ||\n visitEach(cb, node.modifierIds) ||\n visitEach(cb, node.parameters) ||\n visitEach(cb, node.body));\n case SyntaxKind.ProjectionExpressionStatement:\n return visitNode(cb, node.expr);\n case SyntaxKind.ProjectionCallExpression:\n return visitNode(cb, node.target) || visitEach(cb, node.arguments);\n case SyntaxKind.ProjectionMemberExpression:\n return visitNode(cb, node.base) || visitNode(cb, node.id);\n // binops\n case SyntaxKind.ProjectionLogicalExpression:\n case SyntaxKind.ProjectionRelationalExpression:\n case SyntaxKind.ProjectionArithmeticExpression:\n case SyntaxKind.ProjectionEqualityExpression:\n return visitNode(cb, node.left) || visitNode(cb, node.right);\n case SyntaxKind.ProjectionUnaryExpression:\n return visitNode(cb, node.target);\n case SyntaxKind.ProjectionModelExpression:\n return visitEach(cb, node.properties);\n case SyntaxKind.ProjectionModelProperty:\n return (visitEach(cb, node.decorators) ||\n visitNode(cb, node.id) ||\n visitNode(cb, node.value) ||\n visitNode(cb, node.default));\n case SyntaxKind.ProjectionModelSpreadProperty:\n return visitNode(cb, node.target);\n case SyntaxKind.ProjectionTupleExpression:\n return visitEach(cb, node.values);\n case SyntaxKind.ProjectionBlockExpression:\n return visitEach(cb, node.statements);\n case SyntaxKind.ProjectionIfExpression:\n return (visitNode(cb, node.test) || visitNode(cb, node.consequent) || visitNode(cb, node.alternate));\n case SyntaxKind.ProjectionLambdaExpression:\n return visitEach(cb, node.parameters) || visitNode(cb, node.body);\n case SyntaxKind.ProjectionStatement:\n return (visitNode(cb, node.id) || visitNode(cb, node.selector) || visitEach(cb, node.projections));\n case SyntaxKind.ProjectionDecoratorReferenceExpression:\n return visitNode(cb, node.target);\n case SyntaxKind.Return:\n return visitNode(cb, node.value);\n case SyntaxKind.InvalidStatement:\n return visitEach(cb, node.decorators);\n case SyntaxKind.TemplateParameterDeclaration:\n return (visitNode(cb, node.id) || visitNode(cb, node.constraint) || visitNode(cb, node.default));\n case SyntaxKind.ProjectionLambdaParameterDeclaration:\n return visitNode(cb, node.id);\n case SyntaxKind.ProjectionParameterDeclaration:\n return visitNode(cb, node.id);\n case SyntaxKind.Doc:\n return visitEach(cb, node.content) || visitEach(cb, node.tags);\n case SyntaxKind.DocParamTag:\n case SyntaxKind.DocTemplateTag:\n return (visitNode(cb, node.tagName) || visitNode(cb, node.paramName) || visitEach(cb, node.content));\n case SyntaxKind.DocReturnsTag:\n case SyntaxKind.DocUnknownTag:\n return visitNode(cb, node.tagName) || visitEach(cb, node.content);\n // no children for the rest of these.\n case SyntaxKind.StringLiteral:\n case SyntaxKind.NumericLiteral:\n case SyntaxKind.BooleanLiteral:\n case SyntaxKind.Identifier:\n case SyntaxKind.EmptyStatement:\n case SyntaxKind.ProjectionModelSelector:\n case SyntaxKind.ProjectionModelPropertySelector:\n case SyntaxKind.ProjectionUnionSelector:\n case SyntaxKind.ProjectionUnionVariantSelector:\n case SyntaxKind.ProjectionInterfaceSelector:\n case SyntaxKind.ProjectionOperationSelector:\n case SyntaxKind.ProjectionEnumSelector:\n case SyntaxKind.ProjectionEnumMemberSelector:\n case SyntaxKind.VoidKeyword:\n case SyntaxKind.NeverKeyword:\n case SyntaxKind.ExternKeyword:\n case SyntaxKind.UnknownKeyword:\n case SyntaxKind.JsSourceFile:\n case SyntaxKind.DocText:\n return;\n default:\n // Dummy const to ensure we handle all node types.\n // If you get an error here, add a case for the new node type\n // you added..\n const _assertNever = node;\n return;\n }\n}\nfunction visitNode(cb, node) {\n return node && cb(node);\n}\nfunction visitEach(cb, nodes) {\n if (!nodes) {\n return;\n }\n for (const node of nodes) {\n const result = cb(node);\n if (result) {\n return result;\n }\n }\n return;\n}\nexport function getNodeAtPosition(script, position, filter = (node) => true) {\n return visit(script);\n function visit(node) {\n // We deliberately include the end position here because we need to hit\n // nodes when the cursor is positioned immediately after an identifier.\n // This is especially vital for completion. It's also generally OK\n // because the language doesn't (and should never) have syntax where you\n // could place the cursor ambiguously between two adjacent,\n // non-punctuation, non-trivia tokens that have no punctuation or trivia\n // separating them.\n if (node.pos <= position && position <= node.end) {\n // We only need to recursively visit children of nodes that satisfied\n // the condition above and therefore contain the given position. If a\n // node does not contain a position, then neither do its children.\n const child = visitChildren(node, visit);\n // A child match here is better than a self-match below as we want the\n // deepest (most specific) node. In other words, the search is depth\n // first. For example, consider `A<B<C>>`: If the cursor is on `B`,\n // then prefer B<C> over A<B<C>>.\n if (child) {\n return child;\n }\n if (filter(node)) {\n return node;\n }\n }\n return undefined;\n }\n}\nexport function hasParseError(node) {\n if (node.flags & 2 /* NodeFlags.ThisNodeHasError */) {\n return true;\n }\n checkForDescendantErrors(node);\n return node.flags & 4 /* NodeFlags.DescendantHasError */;\n}\nfunction checkForDescendantErrors(node) {\n if (node.flags & 1 /* NodeFlags.DescendantErrorsExamined */) {\n return;\n }\n mutate(node).flags |= 1 /* NodeFlags.DescendantErrorsExamined */;\n visitChildren(node, (child) => {\n if (child.flags & 2 /* NodeFlags.ThisNodeHasError */) {\n mutate(node).flags |= 4 /* NodeFlags.DescendantHasError */ | 1 /* NodeFlags.DescendantErrorsExamined */;\n return true;\n }\n checkForDescendantErrors(child);\n if (child.flags & 4 /* NodeFlags.DescendantHasError */) {\n mutate(node).flags |= 4 /* NodeFlags.DescendantHasError */ | 1 /* NodeFlags.DescendantErrorsExamined */;\n return true;\n }\n mutate(child).flags |= 1 /* NodeFlags.DescendantErrorsExamined */;\n return false;\n });\n}\nexport function isImportStatement(node) {\n return node.kind === SyntaxKind.ImportStatement;\n}\nfunction isBlocklessNamespace(node) {\n if (node.kind !== SyntaxKind.NamespaceStatement) {\n return false;\n }\n while (!isArray(node.statements) && node.statements) {\n node = node.statements;\n }\n return node.statements === undefined;\n}\nexport function getFirstAncestor(node, test) {\n for (let n = node.parent; n; n = n.parent) {\n if (test(n)) {\n return n;\n }\n }\n return undefined;\n}\nexport function getIdentifierContext(id) {\n const node = getFirstAncestor(id, (n) => n.kind !== SyntaxKind.MemberExpression);\n compilerAssert(node, \"Identifier with no non-member-expression ancestor.\");\n let kind;\n switch (node.kind) {\n case SyntaxKind.TypeReference:\n kind = IdentifierKind.TypeReference;\n break;\n case SyntaxKind.AugmentDecoratorStatement:\n case SyntaxKind.DecoratorExpression:\n kind = IdentifierKind.Decorator;\n break;\n case SyntaxKind.ProjectionCallExpression:\n kind = IdentifierKind.Function;\n break;\n case SyntaxKind.UsingStatement:\n kind = IdentifierKind.Using;\n break;\n default:\n kind =\n id.parent.id === id\n ? IdentifierKind.Declaration\n : IdentifierKind.Other;\n break;\n }\n return { node, kind };\n}\n//# sourceMappingURL=parser.js.map","import { getSourceLocation } from \"../core/diagnostics.js\";\nimport { parse as typespecParse, visitChildren } from \"../core/parser.js\";\nimport { SyntaxKind } from \"../core/types.js\";\nimport { mutate } from \"../core/util.js\";\nexport function parse(text, parsers, opts) {\n const result = typespecParse(text, { comments: true, docs: true });\n flattenNamespaces(result);\n const errors = result.parseDiagnostics.filter((x) => x.severity === \"error\");\n if (errors.length > 0 && !result.printable) {\n throw new PrettierParserError(errors[0]);\n }\n // Remove doc comments as those are handled directly.\n mutate(result).comments = result.comments.filter((x) => !(x.kind === SyntaxKind.BlockComment && x.parsedAsDocs));\n return result;\n}\n/**\n * We are patching the syntax tree to flatten the namespace nodes that are created from namespace Foo.Bar; which have the same pos, end\n * This causes prettier to not know where comments belong.\n * https://github.com/microsoft/typespec/pull/2061\n */\nfunction flattenNamespaces(base) {\n visitChildren(base, (node) => {\n if (node.kind === SyntaxKind.NamespaceStatement) {\n let current = node;\n const ids = [node.id];\n while (current.statements && \"kind\" in current.statements) {\n current = current.statements;\n ids.push(current.id);\n }\n Object.assign(node, current, {\n ids,\n });\n flattenNamespaces(current);\n }\n });\n}\nexport class PrettierParserError extends Error {\n constructor(error) {\n var _a, _b;\n super(error.message);\n this.error = error;\n const location = getSourceLocation(error.target);\n this.loc = {\n start: (_a = location === null || location === void 0 ? void 0 : location.pos) !== null && _a !== void 0 ? _a : 0,\n end: (_b = location === null || location === void 0 ? void 0 : location.end) !== null && _b !== void 0 ? _b : 0,\n };\n }\n}\n//# sourceMappingURL=parser.js.map","import { parse } from \"./parser.js\";\nimport { typespecPrinter } from \"./print/index.js\";\nexport const defaultOptions = {};\nexport const languages = [\n {\n name: \"TypeSpec\",\n parsers: [\"typespec\"],\n extensions: [\".tsp\", \".cadl\"],\n vscodeLanguageIds: [\"typespec\"],\n },\n];\nconst TypeSpecParser = {\n parse,\n astFormat: \"typespec-format\",\n locStart(node) {\n return node.pos;\n },\n locEnd(node) {\n return node.end;\n },\n};\nexport const parsers = {\n typespec: TypeSpecParser,\n};\nexport const printers = {\n \"typespec-format\": typespecPrinter,\n};\n//# sourceMappingURL=index.js.map","export * from \"./core/index.js\";\nexport * from \"./lib/decorators.js\";\nexport * as decorators from \"./lib/decorators.js\";\nexport * from \"./server/index.js\";\nimport * as formatter from \"./formatter/index.js\";\nexport const TypeSpecPrettierPlugin = formatter;\n/** @deprecated Use TypeSpecPrettierPlugin */\nexport const CadlPrettierPlugin = TypeSpecPrettierPlugin;\n//# sourceMappingURL=index.js.map","/**\n * Reexport the bare minimum for rollup to do the tree shaking.\n */\nimport { TypeSpecPrettierPlugin } from \"@typespec/compiler\";\nexport default TypeSpecPrettierPlugin;\n"],"names":["this","parse","typespecParse"],"mappings":";;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAM,qBAAqB,GAAG;AACrC,IAAI,IAAI,EAAE,KAAK;AACf,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../compiler/dist/src/core/types.js","../../compiler/dist/src/core/diagnostics.js","../../compiler/dist/src/core/library.js","../../compiler/dist/src/core/messages.js","../../compiler/dist/src/core/util.js","../../../common/temp/node_modules/.pnpm/prettier@3.0.1/node_modules/prettier/doc.mjs","../../compiler/dist/src/core/nonascii.js","../../compiler/dist/src/core/charcode.js","../../compiler/dist/src/core/scanner.js","../../../common/temp/node_modules/.pnpm/prettier@3.0.1/node_modules/prettier/standalone.mjs","../../compiler/dist/src/formatter/print/util.js","../../compiler/dist/src/formatter/print/comment-handler.js","../../compiler/dist/src/formatter/print/needs-parens.js","../../compiler/dist/src/formatter/print/printer.js","../../compiler/dist/src/core/parser.js","../../compiler/dist/src/formatter/parser.js","../../compiler/dist/src/formatter/index.js","../../compiler/dist/src/index.js","../src/index.mjs"],"sourcesContent":["/**\n * AST types\n */\nexport var SyntaxKind;\n(function (SyntaxKind) {\n SyntaxKind[SyntaxKind[\"TypeSpecScript\"] = 0] = \"TypeSpecScript\";\n /** @deprecated Use TypeSpecScript */\n SyntaxKind[SyntaxKind[\"CadlScript\"] = 0] = \"CadlScript\";\n SyntaxKind[SyntaxKind[\"JsSourceFile\"] = 1] = \"JsSourceFile\";\n SyntaxKind[SyntaxKind[\"ImportStatement\"] = 2] = \"ImportStatement\";\n SyntaxKind[SyntaxKind[\"Identifier\"] = 3] = \"Identifier\";\n SyntaxKind[SyntaxKind[\"AugmentDecoratorStatement\"] = 4] = \"AugmentDecoratorStatement\";\n SyntaxKind[SyntaxKind[\"DecoratorExpression\"] = 5] = \"DecoratorExpression\";\n SyntaxKind[SyntaxKind[\"DirectiveExpression\"] = 6] = \"DirectiveExpression\";\n SyntaxKind[SyntaxKind[\"MemberExpression\"] = 7] = \"MemberExpression\";\n SyntaxKind[SyntaxKind[\"NamespaceStatement\"] = 8] = \"NamespaceStatement\";\n SyntaxKind[SyntaxKind[\"UsingStatement\"] = 9] = \"UsingStatement\";\n SyntaxKind[SyntaxKind[\"OperationStatement\"] = 10] = \"OperationStatement\";\n SyntaxKind[SyntaxKind[\"OperationSignatureDeclaration\"] = 11] = \"OperationSignatureDeclaration\";\n SyntaxKind[SyntaxKind[\"OperationSignatureReference\"] = 12] = \"OperationSignatureReference\";\n SyntaxKind[SyntaxKind[\"ModelStatement\"] = 13] = \"ModelStatement\";\n SyntaxKind[SyntaxKind[\"ModelExpression\"] = 14] = \"ModelExpression\";\n SyntaxKind[SyntaxKind[\"ModelProperty\"] = 15] = \"ModelProperty\";\n SyntaxKind[SyntaxKind[\"ModelSpreadProperty\"] = 16] = \"ModelSpreadProperty\";\n SyntaxKind[SyntaxKind[\"ScalarStatement\"] = 17] = \"ScalarStatement\";\n SyntaxKind[SyntaxKind[\"InterfaceStatement\"] = 18] = \"InterfaceStatement\";\n SyntaxKind[SyntaxKind[\"UnionStatement\"] = 19] = \"UnionStatement\";\n SyntaxKind[SyntaxKind[\"UnionVariant\"] = 20] = \"UnionVariant\";\n SyntaxKind[SyntaxKind[\"EnumStatement\"] = 21] = \"EnumStatement\";\n SyntaxKind[SyntaxKind[\"EnumMember\"] = 22] = \"EnumMember\";\n SyntaxKind[SyntaxKind[\"EnumSpreadMember\"] = 23] = \"EnumSpreadMember\";\n SyntaxKind[SyntaxKind[\"AliasStatement\"] = 24] = \"AliasStatement\";\n SyntaxKind[SyntaxKind[\"DecoratorDeclarationStatement\"] = 25] = \"DecoratorDeclarationStatement\";\n SyntaxKind[SyntaxKind[\"FunctionDeclarationStatement\"] = 26] = \"FunctionDeclarationStatement\";\n SyntaxKind[SyntaxKind[\"FunctionParameter\"] = 27] = \"FunctionParameter\";\n SyntaxKind[SyntaxKind[\"UnionExpression\"] = 28] = \"UnionExpression\";\n SyntaxKind[SyntaxKind[\"IntersectionExpression\"] = 29] = \"IntersectionExpression\";\n SyntaxKind[SyntaxKind[\"TupleExpression\"] = 30] = \"TupleExpression\";\n SyntaxKind[SyntaxKind[\"ArrayExpression\"] = 31] = \"ArrayExpression\";\n SyntaxKind[SyntaxKind[\"StringLiteral\"] = 32] = \"StringLiteral\";\n SyntaxKind[SyntaxKind[\"NumericLiteral\"] = 33] = \"NumericLiteral\";\n SyntaxKind[SyntaxKind[\"BooleanLiteral\"] = 34] = \"BooleanLiteral\";\n SyntaxKind[SyntaxKind[\"ExternKeyword\"] = 35] = \"ExternKeyword\";\n SyntaxKind[SyntaxKind[\"VoidKeyword\"] = 36] = \"VoidKeyword\";\n SyntaxKind[SyntaxKind[\"NeverKeyword\"] = 37] = \"NeverKeyword\";\n SyntaxKind[SyntaxKind[\"UnknownKeyword\"] = 38] = \"UnknownKeyword\";\n SyntaxKind[SyntaxKind[\"ValueOfExpression\"] = 39] = \"ValueOfExpression\";\n SyntaxKind[SyntaxKind[\"TypeReference\"] = 40] = \"TypeReference\";\n SyntaxKind[SyntaxKind[\"ProjectionReference\"] = 41] = \"ProjectionReference\";\n SyntaxKind[SyntaxKind[\"TemplateParameterDeclaration\"] = 42] = \"TemplateParameterDeclaration\";\n SyntaxKind[SyntaxKind[\"EmptyStatement\"] = 43] = \"EmptyStatement\";\n SyntaxKind[SyntaxKind[\"InvalidStatement\"] = 44] = \"InvalidStatement\";\n SyntaxKind[SyntaxKind[\"LineComment\"] = 45] = \"LineComment\";\n SyntaxKind[SyntaxKind[\"BlockComment\"] = 46] = \"BlockComment\";\n SyntaxKind[SyntaxKind[\"Doc\"] = 47] = \"Doc\";\n SyntaxKind[SyntaxKind[\"DocText\"] = 48] = \"DocText\";\n SyntaxKind[SyntaxKind[\"DocParamTag\"] = 49] = \"DocParamTag\";\n SyntaxKind[SyntaxKind[\"DocReturnsTag\"] = 50] = \"DocReturnsTag\";\n SyntaxKind[SyntaxKind[\"DocTemplateTag\"] = 51] = \"DocTemplateTag\";\n SyntaxKind[SyntaxKind[\"DocUnknownTag\"] = 52] = \"DocUnknownTag\";\n SyntaxKind[SyntaxKind[\"Projection\"] = 53] = \"Projection\";\n SyntaxKind[SyntaxKind[\"ProjectionParameterDeclaration\"] = 54] = \"ProjectionParameterDeclaration\";\n SyntaxKind[SyntaxKind[\"ProjectionModelSelector\"] = 55] = \"ProjectionModelSelector\";\n SyntaxKind[SyntaxKind[\"ProjectionModelPropertySelector\"] = 56] = \"ProjectionModelPropertySelector\";\n SyntaxKind[SyntaxKind[\"ProjectionOperationSelector\"] = 57] = \"ProjectionOperationSelector\";\n SyntaxKind[SyntaxKind[\"ProjectionUnionSelector\"] = 58] = \"ProjectionUnionSelector\";\n SyntaxKind[SyntaxKind[\"ProjectionUnionVariantSelector\"] = 59] = \"ProjectionUnionVariantSelector\";\n SyntaxKind[SyntaxKind[\"ProjectionInterfaceSelector\"] = 60] = \"ProjectionInterfaceSelector\";\n SyntaxKind[SyntaxKind[\"ProjectionEnumSelector\"] = 61] = \"ProjectionEnumSelector\";\n SyntaxKind[SyntaxKind[\"ProjectionEnumMemberSelector\"] = 62] = \"ProjectionEnumMemberSelector\";\n SyntaxKind[SyntaxKind[\"ProjectionExpressionStatement\"] = 63] = \"ProjectionExpressionStatement\";\n SyntaxKind[SyntaxKind[\"ProjectionIfExpression\"] = 64] = \"ProjectionIfExpression\";\n SyntaxKind[SyntaxKind[\"ProjectionBlockExpression\"] = 65] = \"ProjectionBlockExpression\";\n SyntaxKind[SyntaxKind[\"ProjectionMemberExpression\"] = 66] = \"ProjectionMemberExpression\";\n SyntaxKind[SyntaxKind[\"ProjectionLogicalExpression\"] = 67] = \"ProjectionLogicalExpression\";\n SyntaxKind[SyntaxKind[\"ProjectionEqualityExpression\"] = 68] = \"ProjectionEqualityExpression\";\n SyntaxKind[SyntaxKind[\"ProjectionUnaryExpression\"] = 69] = \"ProjectionUnaryExpression\";\n SyntaxKind[SyntaxKind[\"ProjectionRelationalExpression\"] = 70] = \"ProjectionRelationalExpression\";\n SyntaxKind[SyntaxKind[\"ProjectionArithmeticExpression\"] = 71] = \"ProjectionArithmeticExpression\";\n SyntaxKind[SyntaxKind[\"ProjectionCallExpression\"] = 72] = \"ProjectionCallExpression\";\n SyntaxKind[SyntaxKind[\"ProjectionLambdaExpression\"] = 73] = \"ProjectionLambdaExpression\";\n SyntaxKind[SyntaxKind[\"ProjectionLambdaParameterDeclaration\"] = 74] = \"ProjectionLambdaParameterDeclaration\";\n SyntaxKind[SyntaxKind[\"ProjectionModelExpression\"] = 75] = \"ProjectionModelExpression\";\n SyntaxKind[SyntaxKind[\"ProjectionModelProperty\"] = 76] = \"ProjectionModelProperty\";\n SyntaxKind[SyntaxKind[\"ProjectionModelSpreadProperty\"] = 77] = \"ProjectionModelSpreadProperty\";\n SyntaxKind[SyntaxKind[\"ProjectionSpreadProperty\"] = 78] = \"ProjectionSpreadProperty\";\n SyntaxKind[SyntaxKind[\"ProjectionTupleExpression\"] = 79] = \"ProjectionTupleExpression\";\n SyntaxKind[SyntaxKind[\"ProjectionStatement\"] = 80] = \"ProjectionStatement\";\n SyntaxKind[SyntaxKind[\"ProjectionDecoratorReferenceExpression\"] = 81] = \"ProjectionDecoratorReferenceExpression\";\n SyntaxKind[SyntaxKind[\"Return\"] = 82] = \"Return\";\n})(SyntaxKind || (SyntaxKind = {}));\nexport var IdentifierKind;\n(function (IdentifierKind) {\n IdentifierKind[IdentifierKind[\"TypeReference\"] = 0] = \"TypeReference\";\n IdentifierKind[IdentifierKind[\"Decorator\"] = 1] = \"Decorator\";\n IdentifierKind[IdentifierKind[\"Function\"] = 2] = \"Function\";\n IdentifierKind[IdentifierKind[\"Using\"] = 3] = \"Using\";\n IdentifierKind[IdentifierKind[\"Declaration\"] = 4] = \"Declaration\";\n IdentifierKind[IdentifierKind[\"Other\"] = 5] = \"Other\";\n})(IdentifierKind || (IdentifierKind = {}));\nexport const NoTarget = Symbol.for(\"NoTarget\");\nexport var ListenerFlow;\n(function (ListenerFlow) {\n /**\n * Do not navigate any containing or referenced type.\n */\n ListenerFlow[ListenerFlow[\"NoRecursion\"] = 1] = \"NoRecursion\";\n})(ListenerFlow || (ListenerFlow = {}));\n//# sourceMappingURL=types.js.map","import { formatLog } from \"./logger/index.js\";\nimport { reportDiagnostic } from \"./messages.js\";\nimport { NoTarget, SyntaxKind, } from \"./types.js\";\n/**\n * Create a new diagnostics creator.\n * @param diagnostics Map of the potential diagnostics.\n * @param libraryName Optional name of the library if in the scope of a library.\n * @returns @see DiagnosticCreator\n */\nexport function createDiagnosticCreator(diagnostics, libraryName) {\n const errorMessage = libraryName\n ? `It must match one of the code defined in the library '${libraryName}'`\n : \"It must match one of the code defined in the compiler.\";\n function createDiagnostic(diagnostic) {\n var _a;\n const diagnosticDef = diagnostics[diagnostic.code];\n if (!diagnosticDef) {\n const codeStr = Object.keys(diagnostics)\n .map((x) => ` - ${x}`)\n .join(\"\\n\");\n const code = String(diagnostic.code);\n throw new Error(`Unexpected diagnostic code '${code}'. ${errorMessage}. Defined codes:\\n${codeStr}`);\n }\n const message = diagnosticDef.messages[(_a = diagnostic.messageId) !== null && _a !== void 0 ? _a : \"default\"];\n if (!message) {\n const codeStr = Object.keys(diagnosticDef.messages)\n .map((x) => ` - ${x}`)\n .join(\"\\n\");\n const messageId = String(diagnostic.messageId);\n const code = String(diagnostic.code);\n throw new Error(`Unexpected message id '${messageId}'. ${errorMessage} for code '${code}'. Defined codes:\\n${codeStr}`);\n }\n const messageStr = typeof message === \"string\" ? message : message(diagnostic.format);\n return {\n code: libraryName ? `${libraryName}/${String(diagnostic.code)}` : diagnostic.code.toString(),\n severity: diagnosticDef.severity,\n message: messageStr,\n target: diagnostic.target,\n };\n }\n function reportDiagnostic(program, diagnostic) {\n const diag = createDiagnostic(diagnostic);\n program.reportDiagnostic(diag);\n }\n return {\n diagnostics,\n createDiagnostic,\n reportDiagnostic,\n };\n}\n/**\n * Represents a failure while interpreting a projection.\n */\nexport class ProjectionError extends Error {\n constructor(message) {\n super(message);\n this.name = \"ProjectionError\";\n }\n}\nexport function logDiagnostics(diagnostics, logger) {\n for (const diagnostic of diagnostics) {\n logger.log({\n level: diagnostic.severity,\n message: diagnostic.message,\n code: diagnostic.code,\n sourceLocation: getSourceLocation(diagnostic.target),\n });\n }\n}\nexport function formatDiagnostic(diagnostic) {\n return formatLog({\n code: diagnostic.code,\n level: diagnostic.severity,\n message: diagnostic.message,\n sourceLocation: getSourceLocation(diagnostic.target),\n }, { pretty: false });\n}\nexport function createSourceFile(text, path) {\n let lineStarts = undefined;\n return {\n text,\n path,\n getLineStarts,\n getLineAndCharacterOfPosition,\n };\n function getLineStarts() {\n return (lineStarts = lineStarts !== null && lineStarts !== void 0 ? lineStarts : scanLineStarts(text));\n }\n function getLineAndCharacterOfPosition(position) {\n const starts = getLineStarts();\n let line = binarySearch(starts, position);\n // When binarySearch returns < 0 indicating that the value was not found, it\n // returns the bitwise complement of the index where the value would need to\n // be inserted to keep the array sorted. So flipping the bits back to this\n // positive index tells us what the line number would be if we were to\n // create a new line starting at the given position, and subtracting 1 from\n // that therefore gives us the line number we're after.\n if (line < 0) {\n line = ~line - 1;\n }\n return {\n line,\n character: position - starts[line],\n };\n }\n}\nexport function getSourceLocation(target) {\n if (target === NoTarget || target === undefined) {\n return undefined;\n }\n if (\"file\" in target) {\n return target;\n }\n if (!(\"kind\" in target)) {\n // symbol\n if (target.flags & 524288 /* SymbolFlags.Using */) {\n target = target.symbolSource;\n }\n if (!target.declarations[0]) {\n return createSyntheticSourceLocation();\n }\n return getSourceLocationOfNode(target.declarations[0]);\n }\n else if (typeof target.kind === \"number\") {\n // node\n return getSourceLocationOfNode(target);\n }\n else {\n // type\n const targetNode = target.node;\n if (targetNode) {\n return getSourceLocationOfNode(targetNode);\n }\n return createSyntheticSourceLocation();\n }\n}\nfunction createSyntheticSourceLocation(loc = \"<unknown location>\") {\n return {\n file: createSourceFile(\"\", loc),\n pos: 0,\n end: 0,\n isSynthetic: true,\n };\n}\nfunction getSourceLocationOfNode(node) {\n let root = node;\n while (root.parent !== undefined) {\n root = root.parent;\n }\n if (root.kind !== SyntaxKind.TypeSpecScript && root.kind !== SyntaxKind.JsSourceFile) {\n return createSyntheticSourceLocation(node.flags & 8 /* NodeFlags.Synthetic */\n ? undefined\n : \"<unknown location - cannot obtain source location of unbound node - file bug at https://github.com/microsoft/typespec>\");\n }\n return {\n file: root.file,\n pos: node.pos,\n end: node.end,\n };\n}\n/**\n * Verbose output is enabled by default for runs in mocha explorer in VS Code,\n * where the output is nicely associated with the individual test, and disabled\n * by default for command line runs where we don't want to spam the console.\n *\n * If the steps taken to produce the message are expensive, pass a callback\n * instead of producing the message then passing it here only to be dropped\n * when verbose output is disabled.\n */\nexport function logVerboseTestOutput(messageOrCallback) {\n if (process.env.TYPESPEC_VERBOSE_TEST_OUTPUT) {\n if (typeof messageOrCallback === \"string\") {\n // eslint-disable-next-line no-console\n console.log(messageOrCallback);\n }\n else {\n // eslint-disable-next-line no-console\n messageOrCallback(console.log);\n }\n }\n}\n/**\n * Use this to report bugs in the compiler, and not errors in the source code\n * being compiled.\n *\n * @param condition Throw if this is not true.\n *\n * @param message Error message.\n *\n * @param target Optional location in source code that might give a clue about\n * what got the compiler off track.\n */\nexport function compilerAssert(condition, message, target) {\n if (condition) {\n return;\n }\n if (target) {\n let location;\n try {\n location = getSourceLocation(target);\n }\n catch (err) { }\n if (location) {\n const pos = location.file.getLineAndCharacterOfPosition(location.pos);\n const file = location.file.path;\n const line = pos.line + 1;\n const col = pos.character + 1;\n message += `\\nOccurred while compiling code in ${file} near line ${line}, column ${col}`;\n }\n }\n throw new Error(message);\n}\nfunction scanLineStarts(text) {\n const starts = [];\n let start = 0;\n let pos = 0;\n while (pos < text.length) {\n const ch = text.charCodeAt(pos);\n pos++;\n switch (ch) {\n case 13 /* CharCode.CarriageReturn */:\n if (text.charCodeAt(pos) === 10 /* CharCode.LineFeed */) {\n pos++;\n }\n // fallthrough\n case 10 /* CharCode.LineFeed */:\n starts.push(start);\n start = pos;\n break;\n }\n }\n starts.push(start);\n return starts;\n}\n/**\n * Search sorted array of numbers for the given value. If found, return index\n * in array where value was found. If not found, return a negative number that\n * is the bitwise complement of the index where value would need to be inserted\n * to keep the array sorted.\n */\nfunction binarySearch(array, value) {\n let low = 0;\n let high = array.length - 1;\n while (low <= high) {\n const middle = low + ((high - low) >> 1);\n const v = array[middle];\n if (v < value) {\n low = middle + 1;\n }\n else if (v > value) {\n high = middle - 1;\n }\n else {\n return middle;\n }\n }\n return ~low;\n}\n/**\n * Assert that the input type has one of the kinds provided\n */\nexport function assertType(typeDescription, t, ...kinds) {\n if (kinds.indexOf(t.kind) === -1) {\n throw new ProjectionError(`Expected ${typeDescription} to be type ${kinds.join(\", \")}`);\n }\n}\n/**\n * Report a deprecated diagnostic.\n * @param program TypeSpec Program.\n * @param message Message describing the deprecation.\n * @param target Target of the deprecation.\n */\nexport function reportDeprecated(program, message, target) {\n reportDiagnostic(program, {\n code: \"deprecated\",\n format: {\n message,\n },\n target,\n });\n}\n/**\n * Create a new instance of the @see DiagnosticCollector.\n */\nexport function createDiagnosticCollector() {\n const diagnostics = [];\n return {\n diagnostics,\n add,\n pipe,\n wrap,\n };\n function add(diagnostic) {\n diagnostics.push(diagnostic);\n }\n function pipe(result) {\n const [value, diags] = result;\n for (const diag of diags) {\n diagnostics.push(diag);\n }\n return value;\n }\n function wrap(value) {\n return [value, diagnostics];\n }\n}\n/**\n * Ignore the diagnostics emitted by the diagnostic accessor pattern and just return the actual result.\n * @param result: Accessor pattern tuple result including the actual result and the list of diagnostics.\n * @returns Actual result.\n */\nexport function ignoreDiagnostics(result) {\n return result[0];\n}\n//# sourceMappingURL=diagnostics.js.map","import { compilerAssert, createDiagnosticCreator } from \"./diagnostics.js\";\nimport { createJSONSchemaValidator } from \"./schema-validator.js\";\nconst globalLibraryUrlsLoadedSym = Symbol.for(\"TYPESPEC_LIBRARY_URLS_LOADED\");\nif (globalThis[globalLibraryUrlsLoadedSym] === undefined) {\n globalThis[globalLibraryUrlsLoadedSym] = new Set();\n}\nconst loadedUrls = globalThis[globalLibraryUrlsLoadedSym];\n/**\n * @internal List of urls that used `createTypeSpecLibrary`. Used to keep track of the loaded version of library and make sure they are compatible.\n */\nexport function getLibraryUrlsLoaded() {\n return loadedUrls;\n}\n/** @deprecated use createTypeSpecLibrary */\nexport const createCadlLibrary = createTypeSpecLibrary;\n/**\n * Create a new TypeSpec library definition.\n * @param lib Library definition.\n * @returns Library with utility functions.\n *\n *\n * @tutorial Create the lib object with `as const` to get the full typing.\n *\n * @example\n * const libDef = {\n * name: \"myLib\",\n * diagnostics: {\n * \"my-code\": {serverity: \"error\", messages: {default: \"Foo bar\"}}\n * },\n * } as const;\n *\n * const lib = createTypeSpecLibrary(libDef);\n */\nexport function createTypeSpecLibrary(lib) {\n let emitterOptionValidator;\n const { reportDiagnostic, createDiagnostic } = createDiagnosticCreator(lib.diagnostics, lib.name);\n function createStateSymbol(name) {\n return Symbol.for(`${lib.name}.${name}`);\n }\n const caller = getCaller();\n if (caller) {\n loadedUrls.add(caller);\n }\n return {\n ...lib,\n reportDiagnostic,\n createDiagnostic,\n createStateSymbol,\n get emitterOptionValidator() {\n var _a;\n if (!emitterOptionValidator && ((_a = lib.emitter) === null || _a === void 0 ? void 0 : _a.options)) {\n emitterOptionValidator = createJSONSchemaValidator(lib.emitter.options, {\n coerceTypes: true,\n });\n }\n return emitterOptionValidator;\n },\n getTracer,\n };\n function getTracer(program) {\n return program.tracer.sub(lib.name);\n }\n}\nexport function paramMessage(strings, ...keys) {\n const template = (dict) => {\n const result = [strings[0]];\n keys.forEach((key, i) => {\n const value = dict[key];\n if (value !== undefined) {\n result.push(value);\n }\n result.push(strings[i + 1]);\n });\n return result.join(\"\");\n };\n template.keys = keys;\n return template;\n}\n/** Create a new linter rule. */\nexport function createLinterRule(definition) {\n compilerAssert(!definition.name.includes(\"/\"), \"Rule name cannot contain a '/'.\");\n return definition;\n}\n/** @deprecated use setTypeSpecNamespace */\nexport const setCadlNamespace = setTypeSpecNamespace;\n/**\n * Set the TypeSpec namespace for that function.\n * @param namespace Namespace string (e.g. \"Foo.Bar\")\n * @param functions Functions\n */\nexport function setTypeSpecNamespace(namespace, ...functions) {\n functions.forEach((c) => (c.namespace = namespace));\n}\nfunction getCaller() {\n const caller = getCallStack()[2];\n return typeof caller === \"object\" && \"getFileName\" in caller ? caller.getFileName() : undefined;\n}\nfunction getCallStack() {\n const _prepareStackTrace = Error.prepareStackTrace;\n Error.prepareStackTrace = (_, stack) => stack;\n const stack = new Error().stack.slice(1); // eslint-disable-line unicorn/error-message\n Error.prepareStackTrace = _prepareStackTrace;\n return stack;\n}\n//# sourceMappingURL=library.js.map","// Static assert: this won't compile if one of the entries above is invalid.\nimport { createDiagnosticCreator } from \"./diagnostics.js\";\nimport { paramMessage } from \"./library.js\";\nconst diagnostics = {\n /**\n * Scanner errors.\n */\n \"digit-expected\": {\n severity: \"error\",\n messages: {\n default: \"Digit expected.\",\n },\n },\n \"hex-digit-expected\": {\n severity: \"error\",\n messages: {\n default: \"Hexadecimal digit expected.\",\n },\n },\n \"binary-digit-expected\": {\n severity: \"error\",\n messages: {\n default: \"Binary digit expected.\",\n },\n },\n unterminated: {\n severity: \"error\",\n messages: {\n default: paramMessage `Unterminated ${\"token\"}.`,\n },\n },\n \"creating-file\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Error creating single file: ${\"filename\"}, ${\"error\"}`,\n },\n },\n \"invalid-escape-sequence\": {\n severity: \"error\",\n messages: {\n default: \"Invalid escape sequence.\",\n },\n },\n \"no-new-line-start-triple-quote\": {\n severity: \"error\",\n messages: {\n default: \"String content in triple quotes must begin on a new line.\",\n },\n },\n \"no-new-line-end-triple-quote\": {\n severity: \"error\",\n messages: {\n default: \"Closing triple quotes must begin on a new line.\",\n },\n },\n \"triple-quote-indent\": {\n severity: \"error\",\n messages: {\n default: \"All lines in triple-quoted string lines must have the same indentation as closing triple quotes.\",\n },\n },\n \"invalid-character\": {\n severity: \"error\",\n messages: {\n default: \"Invalid character.\",\n },\n },\n /**\n * Utils\n */\n \"file-not-found\": {\n severity: \"error\",\n messages: {\n default: paramMessage `File ${\"path\"} not found.`,\n },\n },\n \"file-load\": {\n severity: \"error\",\n messages: {\n default: paramMessage `${\"message\"}`,\n },\n },\n /**\n * Init templates\n */\n \"init-template-invalid-json\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Unable to parse ${\"url\"}: ${\"message\"}. Check that the template URL is correct.`,\n },\n },\n \"init-template-download-failed\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Failed to download template from ${\"url\"}: ${\"message\"}. Check that the template URL is correct.`,\n },\n },\n /**\n * Parser errors.\n */\n \"multiple-blockless-namespace\": {\n severity: \"error\",\n messages: {\n default: \"Cannot use multiple blockless namespaces.\",\n },\n },\n \"blockless-namespace-first\": {\n severity: \"error\",\n messages: {\n default: \"Blockless namespaces can't follow other declarations.\",\n topLevel: \"Blockless namespace can only be top-level.\",\n },\n },\n \"import-first\": {\n severity: \"error\",\n messages: {\n default: \"Imports must come prior to namespaces or other declarations.\",\n topLevel: \"Imports must be top-level and come prior to namespaces or other declarations.\",\n },\n },\n \"token-expected\": {\n severity: \"error\",\n messages: {\n default: paramMessage `${\"token\"} expected.`,\n unexpected: paramMessage `Unexpected token ${\"token\"}`,\n numericOrStringLiteral: \"Expected numeric or string literal.\",\n identifier: \"Identifier expected.\",\n projectionDirection: \"from or to expected.\",\n expression: \"Expression expected.\",\n statement: \"Statement expected.\",\n property: \"Property expected.\",\n enumMember: \"Enum member expected.\",\n },\n },\n \"trailing-token\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Trailing ${\"token\"}`,\n },\n },\n \"unknown-directive\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Unknown directive '#${\"id\"}'`,\n },\n },\n \"augment-decorator-target\": {\n severity: \"error\",\n messages: {\n default: `Augment decorator first argument must be a type reference.`,\n noInstance: `Cannot reference template instances`,\n },\n },\n \"duplicate-decorator\": {\n severity: \"warning\",\n messages: {\n default: paramMessage `Decorator ${\"decoratorName\"} cannot be used twice on the same declaration.`,\n },\n },\n \"decorator-conflict\": {\n severity: \"warning\",\n messages: {\n default: paramMessage `Decorator ${\"decoratorName\"} cannot be used with decorator ${\"otherDecoratorName\"} on the same declaration.`,\n },\n },\n \"reserved-identifier\": {\n severity: \"error\",\n messages: {\n default: \"Keyword cannot be used as identifier.\",\n },\n },\n \"invalid-directive-location\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Cannot place directive on ${\"nodeName\"}.`,\n },\n },\n \"invalid-decorator-location\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Cannot decorate ${\"nodeName\"}.`,\n },\n },\n \"invalid-projection\": {\n severity: \"error\",\n messages: {\n default: \"Invalid projection\",\n wrongType: \"Non-projection can't be used to project\",\n noTo: \"Projection missing to projection\",\n projectionError: paramMessage `An error occurred when projecting this type: ${\"message\"}`,\n },\n },\n \"default-required\": {\n severity: \"error\",\n messages: {\n default: \"Required template parameters must not follow optional template parameters\",\n },\n },\n \"invalid-template-default\": {\n severity: \"error\",\n messages: {\n default: \"Template parameter defaults can only reference previously declared type parameters.\",\n },\n },\n \"required-parameter-first\": {\n severity: \"error\",\n messages: {\n default: \"A required parameter cannot follow an optional parameter.\",\n },\n },\n \"rest-parameter-last\": {\n severity: \"error\",\n messages: {\n default: \"A rest parameter must be last in a parameter list.\",\n },\n },\n \"rest-parameter-required\": {\n severity: \"error\",\n messages: {\n default: \"A rest parameter cannot be optional.\",\n },\n },\n /**\n * Parser doc comment warnings.\n * Design goal: Malformed doc comments should only produce warnings, not errors.\n */\n \"doc-invalid-identifier\": {\n severity: \"warning\",\n messages: {\n default: \"Invalid identifier.\",\n tag: \"Invalid tag name. Use backticks around code if this was not meant to be a tag.\",\n param: \"Invalid parameter name.\",\n templateParam: \"Invalid template parameter name.\",\n },\n },\n /**\n * Checker\n */\n \"using-invalid-ref\": {\n severity: \"error\",\n messages: {\n default: \"Using must refer to a namespace\",\n },\n },\n \"invalid-type-ref\": {\n severity: \"error\",\n messages: {\n default: \"Invalid type reference\",\n decorator: \"Can't put a decorator in a type\",\n function: \"Can't use a function as a type\",\n },\n },\n \"invalid-template-args\": {\n severity: \"error\",\n messages: {\n default: \"Invalid template arguments.\",\n notTemplate: \"Can't pass template arguments to non-templated type\",\n tooFew: \"Too few template arguments provided.\",\n tooMany: \"Too many template arguments provided.\",\n },\n },\n \"intersect-non-model\": {\n severity: \"error\",\n messages: {\n default: \"Cannot intersect non-model types (including union types).\",\n },\n },\n \"intersect-invalid-index\": {\n severity: \"error\",\n messages: {\n default: \"Cannot intersect incompatible models.\",\n never: \"Cannot intersect a model that cannot hold properties.\",\n array: \"Cannot intersect an array model.\",\n },\n },\n \"intersect-duplicate-property\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Intersection contains duplicate property definitions for ${\"propName\"}`,\n },\n },\n \"unknown-identifier\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Unknown identifier ${\"id\"}`,\n },\n },\n \"unknown-decorator\": {\n severity: \"error\",\n messages: {\n default: \"Unknown decorator\",\n },\n },\n \"invalid-decorator\": {\n severity: \"error\",\n messages: {\n default: paramMessage `${\"id\"} is not a decorator`,\n },\n },\n \"invalid-ref\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Cannot resolve ${\"id\"}`,\n inDecorator: paramMessage `Cannot resolve ${\"id\"} in decorator`,\n underNamespace: paramMessage `Namespace ${\"namespace\"} doesn't have member ${\"id\"}`,\n underContainer: paramMessage `${\"kind\"} doesn't have member ${\"id\"}`,\n metaProperty: paramMessage `${\"kind\"} doesn't have meta property ${\"id\"}`,\n node: paramMessage `Cannot resolve '${\"id\"}' in node ${\"nodeName\"} since it has no members. Did you mean to use \"::\" instead of \".\"?`,\n },\n },\n \"duplicate-property\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Model already has a property named ${\"propName\"}`,\n },\n },\n \"override-property-mismatch\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Model has an inherited property named ${\"propName\"} of type ${\"propType\"} which cannot override type ${\"parentType\"}`,\n },\n },\n \"extend-scalar\": {\n severity: \"error\",\n messages: {\n default: \"Scalar must extend other scalars.\",\n },\n },\n \"extend-model\": {\n severity: \"error\",\n messages: {\n default: \"Models must extend other models.\",\n modelExpression: \"Models cannot extend model expressions.\",\n },\n },\n \"is-model\": {\n severity: \"error\",\n messages: {\n default: \"Model `is` must specify another model.\",\n modelExpression: \"Model `is` cannot specify a model expression.\",\n },\n },\n \"is-operation\": {\n severity: \"error\",\n messages: {\n default: \"Operation can only reuse the signature of another operation.\",\n },\n },\n \"spread-model\": {\n severity: \"error\",\n messages: {\n default: \"Cannot spread properties of non-model type.\",\n neverIndex: \"Cannot spread type because it cannot hold properties.\",\n },\n },\n \"unsupported-default\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Default must be have a value type but has type '${\"type\"}'.`,\n },\n },\n unassignable: {\n severity: \"error\",\n messages: {\n default: paramMessage `Type '${\"value\"}' is not assignable to type '${\"targetType\"}'`,\n withDetails: paramMessage `Type '${\"sourceType\"}' is not assignable to type '${\"targetType\"}'\\n ${\"details\"}`,\n },\n },\n \"no-prop\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Property '${\"propName\"}' cannot be defined because model cannot hold properties.`,\n },\n },\n \"missing-index\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Index signature for type '${\"indexType\"}' is missing in type '${\"sourceType\"}'.`,\n },\n },\n \"missing-property\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Property '${\"propertyName\"}' is missing on type '${\"sourceType\"}' but required in '${\"targetType\"}'`,\n },\n },\n \"extends-interface\": {\n severity: \"error\",\n messages: {\n default: \"Interfaces can only extend other interfaces\",\n },\n },\n \"extends-interface-duplicate\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Interface extends cannot have duplicate members. The duplicate member is named ${\"name\"}`,\n },\n },\n \"interface-duplicate\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Interface already has a member named ${\"name\"}`,\n },\n },\n \"union-duplicate\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Union already has a variant named ${\"name\"}`,\n },\n },\n \"enum-member-duplicate\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Enum already has a member named ${\"name\"}`,\n },\n },\n \"spread-enum\": {\n severity: \"error\",\n messages: {\n default: \"Cannot spread members of non-enum type.\",\n },\n },\n \"decorator-fail\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Decorator ${\"decoratorName\"} failed!\\n\\n${\"error\"}`,\n },\n },\n \"rest-parameter-array\": {\n severity: \"error\",\n messages: {\n default: \"A rest parameter must be of an array type.\",\n },\n },\n \"decorator-extern\": {\n severity: \"error\",\n messages: {\n default: \"A decorator declaration must be prefixed with the 'extern' modifier.\",\n },\n },\n \"function-extern\": {\n severity: \"error\",\n messages: {\n default: \"A function declaration must be prefixed with the 'extern' modifier.\",\n },\n },\n \"missing-implementation\": {\n severity: \"error\",\n messages: {\n default: \"Extern declaration must have an implementation in JS file.\",\n },\n },\n \"overload-same-parent\": {\n severity: \"error\",\n messages: {\n default: `Overload must be in the same interface or namespace.`,\n },\n },\n shadow: {\n severity: \"warning\",\n messages: {\n default: paramMessage `Shadowing parent template parmaeter with the same name \"${\"name\"}\"`,\n },\n },\n \"invalid-deprecation-argument\": {\n severity: \"error\",\n messages: {\n default: \"Invalid deprecation argument\",\n },\n },\n \"duplicate-deprecation\": {\n severity: \"warning\",\n messages: {\n default: \"The #deprecated directive cannot be used more than once on the same declaration.\",\n },\n },\n /**\n * Configuration\n */\n \"config-invalid-argument\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Argument \"${\"name\"}\" is not defined as a parameter in the config.`,\n },\n },\n \"config-circular-variable\": {\n severity: \"error\",\n messages: {\n default: paramMessage `There is a circular reference to variable \"${\"name\"}\" in the cli configuration or arguments.`,\n },\n },\n \"config-path-absolute\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Path \"${\"path\"}\" cannot be relative. Use {cwd} or {project-root} to specify what the path should be relative to.`,\n },\n },\n \"config-path-not-found\": {\n severity: \"error\",\n messages: {\n default: paramMessage `No configuration file found at config path \"${\"path\"}\".`,\n },\n },\n /**\n * Program\n */\n \"dynamic-import\": {\n severity: \"error\",\n messages: {\n default: \"Dynamically generated TypeSpec cannot have imports\",\n },\n },\n \"invalid-import\": {\n severity: \"error\",\n messages: {\n default: \"Import paths must reference either a directory, a .tsp file, or .js file\",\n },\n },\n \"invalid-main\": {\n severity: \"error\",\n messages: {\n default: \"Main file must either be a .tsp file or a .js file.\",\n },\n },\n \"import-not-found\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Couldn't resolve import \"${\"path\"}\"`,\n },\n },\n \"library-invalid\": {\n severity: \"error\",\n messages: {\n tspMain: paramMessage `Library \"${\"path\"}\" has an invalid tspMain file.`,\n default: paramMessage `Library \"${\"path\"}\" has an invalid main file.`,\n },\n },\n \"incompatible-library\": {\n severity: \"warning\",\n messages: {\n default: paramMessage `Multiple versions of \"${\"name\"}\" library were loaded:\\n${\"versionMap\"}`,\n },\n },\n \"compiler-version-mismatch\": {\n severity: \"warning\",\n messages: {\n default: paramMessage `Current TypeSpec compiler conflicts with local version of @typespec/compiler referenced in ${\"basedir\"}. \\nIf this warning occurs on the command line, try running \\`typespec\\` with a working directory of ${\"basedir\"}. \\nIf this warning occurs in the IDE, try configuring the \\`tsp-server\\` path to ${\"betterTypeSpecServerPath\"}.\\n Expected: ${\"expected\"}\\n Resolved: ${\"actual\"}`,\n },\n },\n \"duplicate-symbol\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Duplicate name: \"${\"name\"}\"`,\n },\n },\n \"decorator-decl-target\": {\n severity: \"error\",\n messages: {\n default: \"dec must have at least one parameter.\",\n required: \"dec first parameter must be required.\",\n },\n },\n \"projections-are-experimental\": {\n severity: \"warning\",\n messages: {\n default: \"Projections are experimental - your code will need to change as this feature evolves.\",\n },\n },\n /**\n * Binder\n */\n \"ambiguous-symbol\": {\n severity: \"error\",\n messages: {\n default: paramMessage `\"${\"name\"}\" is an ambiguous name between ${\"duplicateNames\"}. Try using fully qualified name instead: ${\"duplicateNames\"}`,\n },\n },\n \"duplicate-using\": {\n severity: \"error\",\n messages: {\n default: paramMessage `duplicate using of \"${\"usingName\"}\" namespace`,\n },\n },\n /**\n * Library\n */\n \"on-validate-fail\": {\n severity: \"error\",\n messages: {\n default: paramMessage `onValidate failed with errors. ${\"error\"}`,\n },\n },\n \"invalid-emitter\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Requested emitter package ${\"emitterPackage\"} does not provide an \"onEmit\" function.`,\n },\n },\n \"missing-import\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Emitter '${\"emitterName\"}' requires '${\"requiredImport\"}' to be imported. Add 'import \"${\"requiredImport\"}\".`,\n },\n },\n /**\n * Linter\n */\n \"invalid-rule-ref\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Reference \"${\"ref\"}\" is not a valid reference to a rule or ruleset. It must be in the following format: \"<library-name>:<rule-name>\"`,\n },\n },\n \"unknown-rule\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Rule \"${\"ruleName\"}\" is not found in library \"${\"libraryName\"}\"`,\n },\n },\n \"unknown-rule-set\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Rule set \"${\"ruleSetName\"}\" is not found in library \"${\"libraryName\"}\"`,\n },\n },\n \"rule-enabled-disabled\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Rule \"${\"ruleName\"}\" has been enabled and disabled in the same ruleset.`,\n },\n },\n /**\n * Decorator\n */\n \"decorator-wrong-target\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Cannot apply ${\"decorator\"} decorator to ${\"to\"}`,\n withExpected: paramMessage `Cannot apply ${\"decorator\"} decorator to ${\"to\"} since it is not assignable to ${\"expected\"}`,\n },\n },\n \"invalid-argument\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Argument '${\"value\"}' is not assignable to parameter of type '${\"expected\"}'`,\n },\n },\n \"invalid-argument-count\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Expected ${\"expected\"} arguments, but got ${\"actual\"}.`,\n atLeast: paramMessage `Expected at least ${\"expected\"} arguments, but got ${\"actual\"}.`,\n },\n },\n \"known-values-invalid-enum\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Enum cannot be used on this type. Member ${\"member\"} is not assignable to type ${\"type\"}.`,\n },\n },\n \"invalid-value\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Type '${\"kind\"}' is not a value type.`,\n atPath: paramMessage `Type '${\"kind\"}' of '${\"path\"}' is not a value type.`,\n },\n },\n deprecated: {\n severity: \"warning\",\n messages: {\n default: paramMessage `Deprecated: ${\"message\"}`,\n },\n },\n \"no-optional-key\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Property '${\"propertyName\"}' marked as key cannot be optional.`,\n },\n },\n \"invalid-discriminated-union\": {\n severity: \"error\",\n messages: {\n default: \"\",\n noAnonVariants: \"Unions with anonymous variants cannot be discriminated\",\n },\n },\n \"invalid-discriminated-union-variant\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Union variant \"${\"name\"}\" must be a model type.`,\n noDiscriminant: paramMessage `Variant \"${\"name\"}\" type is missing the discriminant property \"${\"discriminant\"}\".`,\n wrongDiscriminantType: paramMessage `Variant \"${\"name\"}\" type's discriminant property \"${\"discriminant\"}\" must be a string literal or string enum member.`,\n },\n },\n \"missing-discriminator-property\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Each derived model of a discriminated model type should have set the discriminator property(\"${\"discriminator\"}\") or have a derived model which has. Add \\`${\"discriminator\"}: \"<discriminator-value>\"\\``,\n },\n },\n \"invalid-discriminator-value\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Discriminator value should be a string, union of string or string enum but was ${\"kind\"}.`,\n required: \"The discriminator property must be a required property.\",\n duplicate: paramMessage `Discriminator value \"${\"discriminator\"}\" is already used in another variant.`,\n },\n },\n \"invalid-encode\": {\n severity: \"error\",\n messages: {\n default: \"Invalid encoding\",\n wrongType: paramMessage `Encoding '${\"encoding\"}' cannot be used on type '${\"type\"}'. Expected: ${\"expected\"}.`,\n wrongEncodingType: paramMessage `Encoding '${\"encoding\"}' on type '${\"type\"}' is expected to be serialized as '${\"expected\"}' but got '${\"actual\"}'.`,\n },\n },\n /**\n * Service\n */\n \"service-decorator-duplicate\": {\n severity: \"error\",\n messages: {\n default: `@service can only be set once per TypeSpec document.`,\n },\n },\n \"list-type-not-model\": {\n severity: \"error\",\n messages: {\n default: \"@list decorator's parameter must be a model type.\",\n },\n },\n \"invalid-range\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Range \"${\"start\"}..${\"end\"}\" is invalid.`,\n },\n },\n /**\n * Mutator\n */\n \"add-response\": {\n severity: \"error\",\n messages: {\n default: \"Cannot add a response to anything except an operation statement.\",\n },\n },\n \"add-parameter\": {\n severity: \"error\",\n messages: {\n default: \"Cannot add a parameter to anything except an operation statement.\",\n },\n },\n \"add-model-property\": {\n severity: \"error\",\n messages: {\n default: \"Cannot add a model property to anything except a model statement.\",\n },\n },\n \"add-model-property-fail\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Could not add property/parameter \"${\"propertyName\"}\" of type \"${\"propertyTypeName\"}\"`,\n },\n },\n \"add-response-type\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Could not add response type \"${\"responseTypeName\"}\" to operation ${\"operationName\"}\"`,\n },\n },\n \"circular-base-type\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Type '${\"typeName\"}' recursively references itself as a base type.`,\n },\n },\n \"circular-op-signature\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Operation '${\"typeName\"}' recursively references itself.`,\n },\n },\n \"circular-alias-type\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Alias type '${\"typeName\"}' recursively references itself.`,\n },\n },\n \"conflict-marker\": {\n severity: \"error\",\n messages: {\n default: \"Conflict marker encountered.\",\n },\n },\n // #region CLI\n \"no-compatible-vs-installed\": {\n severity: \"error\",\n messages: {\n default: \"No compatible version of Visual Studio found.\",\n },\n },\n \"vs-extension-windows-only\": {\n severity: \"error\",\n messages: {\n default: \"Visual Studio extension is not supported on non-Windows.\",\n },\n },\n \"vscode-in-path\": {\n severity: \"error\",\n messages: {\n default: \"Couldn't find VS Code 'code' command in PATH. Make sure you have the VS Code executable added to the system PATH.\",\n osx: \"Couldn't find VS Code 'code' command in PATH. Make sure you have the VS Code executable added to the system PATH.\\nSee instruction for Mac OS here https://code.visualstudio.com/docs/setup/mac\",\n },\n },\n // #endregion CLI\n};\nexport const { createDiagnostic, reportDiagnostic } = createDiagnosticCreator(diagnostics);\n//# sourceMappingURL=messages.js.map","var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar _MultiKeyMap_currentId, _MultiKeyMap_idMap, _MultiKeyMap_items, _Queue_elements, _Queue_headIndex, _DuplicateTracker_entries, _RekeyableMapImpl_keys, _RekeyableMapImpl_values, _a;\nimport { createSourceFile } from \"./diagnostics.js\";\nimport { createDiagnostic } from \"./messages.js\";\nimport { getAnyExtensionFromPath, getDirectoryPath, isPathAbsolute, isUrl, joinPaths, normalizePath, resolvePath, } from \"./path-utils.js\";\nimport { NoTarget, } from \"./types.js\";\nexport { typespecVersion } from \"../manifest.js\";\nexport { NodeHost } from \"./node-host.js\";\nexport class ExternalError extends Error {\n}\n/**\n * Recursively calls Object.freeze such that all objects and arrays\n * referenced are frozen.\n *\n * Does not support cycles. Intended to be used only on plain data that can\n * be directly represented in JSON.\n */\nexport function deepFreeze(value) {\n if (Array.isArray(value)) {\n value.forEach(deepFreeze);\n }\n else if (typeof value === \"object\") {\n for (const prop in value) {\n deepFreeze(value[prop]);\n }\n }\n return Object.freeze(value);\n}\n/**\n * Deeply clones an object.\n *\n * Does not support cycles. Intended to be used only on plain data that can\n * be directly represented in JSON.\n */\nexport function deepClone(value) {\n if (Array.isArray(value)) {\n return value.map(deepClone);\n }\n if (typeof value === \"object\") {\n const obj = {};\n for (const prop in value) {\n obj[prop] = deepClone(value[prop]);\n }\n return obj;\n }\n return value;\n}\n/**\n * Checks if two objects are deeply equal.\n *\n * Does not support cycles. Intended to be used only on plain data that can\n * be directly represented in JSON.\n */\nexport function deepEquals(left, right) {\n if (left === right) {\n return true;\n }\n if (left === null || right === null || typeof left !== \"object\" || typeof right !== \"object\") {\n return false;\n }\n if (Array.isArray(left)) {\n return Array.isArray(right) ? arrayEquals(left, right, deepEquals) : false;\n }\n return mapEquals(new Map(Object.entries(left)), new Map(Object.entries(right)), deepEquals);\n}\n/**\n * Check if two arrays have the same elements.\n *\n * @param equals Optional callback for element equality comparison.\n * Default is to compare by identity using `===`.\n */\nexport function arrayEquals(left, right, equals = (x, y) => x === y) {\n if (left === right) {\n return true;\n }\n if (left.length !== right.length) {\n return false;\n }\n for (let i = 0; i < left.length; i++) {\n if (!equals(left[i], right[i])) {\n return false;\n }\n }\n return true;\n}\n/**\n * Check if two maps have the same entries.\n *\n * @param equals Optional callback for value equality comparison.\n * Default is to compare by identity using `===`.\n */\nexport function mapEquals(left, right, equals = (x, y) => x === y) {\n if (left === right) {\n return true;\n }\n if (left.size !== right.size) {\n return false;\n }\n for (const [key, value] of left) {\n if (!right.has(key) || !equals(value, right.get(key))) {\n return false;\n }\n }\n return true;\n}\nexport async function getNormalizedRealPath(host, path) {\n return normalizePath(await host.realpath(path));\n}\nexport async function doIO(action, path, reportDiagnostic, options) {\n var _b;\n let result;\n try {\n result = await action(path);\n }\n catch (e) {\n let diagnostic;\n let target = (_b = options === null || options === void 0 ? void 0 : options.diagnosticTarget) !== null && _b !== void 0 ? _b : NoTarget;\n // blame the JS file, not the TypeSpec import statement for JS syntax errors.\n if (e instanceof SyntaxError && (options === null || options === void 0 ? void 0 : options.jsDiagnosticTarget)) {\n target = options.jsDiagnosticTarget;\n }\n switch (e.code) {\n case \"ENOENT\":\n if (options === null || options === void 0 ? void 0 : options.allowFileNotFound) {\n return undefined;\n }\n diagnostic = createDiagnostic({ code: \"file-not-found\", target, format: { path } });\n break;\n default:\n diagnostic = createDiagnostic({\n code: \"file-load\",\n target,\n format: { message: e.message },\n });\n break;\n }\n reportDiagnostic(diagnostic);\n return undefined;\n }\n return result;\n}\nexport async function loadFile(host, path, load, reportDiagnostic, options) {\n const file = await doIO(host.readFile, path, reportDiagnostic, options);\n if (!file) {\n return [undefined, createSourceFile(\"\", path)];\n }\n let data;\n try {\n data = load(file.text);\n }\n catch (e) {\n reportDiagnostic({\n code: \"file-load\",\n message: e.message,\n severity: \"error\",\n target: { file, pos: 1, end: 1 },\n });\n return [undefined, file];\n }\n return [data, file];\n}\nexport async function readUrlOrPath(host, pathOrUrl) {\n if (isUrl(pathOrUrl)) {\n return host.readUrl(pathOrUrl);\n }\n return host.readFile(pathOrUrl);\n}\nexport function resolveRelativeUrlOrPath(base, relativeOrAbsolute) {\n if (isUrl(relativeOrAbsolute)) {\n return relativeOrAbsolute;\n }\n else if (isPathAbsolute(relativeOrAbsolute)) {\n return relativeOrAbsolute;\n }\n else if (isUrl(base)) {\n return new URL(relativeOrAbsolute, base).href;\n }\n else {\n return resolvePath(base, relativeOrAbsolute);\n }\n}\n/**\n * A specially typed version of `Array.isArray` to work around [this issue](https://github.com/microsoft/TypeScript/issues/17002).\n */\nexport function isArray(\n// eslint-disable-next-line @typescript-eslint/ban-types\narg) {\n return Array.isArray(arg);\n}\n/**\n * Check if argument is not undefined.\n */\nexport function isDefined(arg) {\n return arg !== undefined;\n}\n/**\n * Remove undefined properties from object.\n */\nexport function omitUndefined(data) {\n return Object.fromEntries(Object.entries(data).filter(([k, v]) => v !== undefined));\n}\n/**\n * Look for the project root by looking up until a `package.json` is found.\n * @param path Path to start looking\n * @param lookIn\n */\nexport async function findProjectRoot(host, path) {\n let current = path;\n while (true) {\n const pkgPath = joinPaths(current, \"package.json\");\n const stat = await doIO(() => host.stat(pkgPath), pkgPath, () => { });\n if (stat === null || stat === void 0 ? void 0 : stat.isFile()) {\n return current;\n }\n const parent = getDirectoryPath(current);\n if (parent === current) {\n return undefined;\n }\n current = parent;\n }\n}\n/**\n * Extract package.json's tspMain entry point in a given path. Note, it takes into\n * back compat for deprecated cadlMain\n * @param path Path that contains package.json\n * @param reportDiagnostic optional diagnostic handler.\n */\nexport function resolveTspMain(packageJson) {\n if ((packageJson === null || packageJson === void 0 ? void 0 : packageJson.tspMain) !== undefined) {\n return packageJson.tspMain;\n }\n if ((packageJson === null || packageJson === void 0 ? void 0 : packageJson.cadlMain) !== undefined) {\n return packageJson.cadlMain;\n }\n return undefined;\n}\n/**\n * A map keyed by a set of objects.\n *\n * This is likely non-optimal.\n */\nexport class MultiKeyMap {\n constructor() {\n _MultiKeyMap_currentId.set(this, 0);\n _MultiKeyMap_idMap.set(this, new WeakMap());\n _MultiKeyMap_items.set(this, new Map());\n }\n get(items) {\n return __classPrivateFieldGet(this, _MultiKeyMap_items, \"f\").get(this.compositeKeyFor(items));\n }\n set(items, value) {\n const key = this.compositeKeyFor(items);\n __classPrivateFieldGet(this, _MultiKeyMap_items, \"f\").set(key, value);\n }\n compositeKeyFor(items) {\n return items.map((i) => this.keyFor(i)).join(\",\");\n }\n keyFor(item) {\n var _b, _c;\n if (__classPrivateFieldGet(this, _MultiKeyMap_idMap, \"f\").has(item)) {\n return __classPrivateFieldGet(this, _MultiKeyMap_idMap, \"f\").get(item);\n }\n const id = (__classPrivateFieldSet(this, _MultiKeyMap_currentId, (_c = __classPrivateFieldGet(this, _MultiKeyMap_currentId, \"f\"), _b = _c++, _c), \"f\"), _b);\n __classPrivateFieldGet(this, _MultiKeyMap_idMap, \"f\").set(item, id);\n return id;\n }\n}\n_MultiKeyMap_currentId = new WeakMap(), _MultiKeyMap_idMap = new WeakMap(), _MultiKeyMap_items = new WeakMap();\n/**\n * A map with exactly two keys per value.\n *\n * Functionally the same as `MultiKeyMap<[K1, K2], V>`, but more efficient.\n * @hidden bug in typedoc\n */\nexport class TwoLevelMap extends Map {\n /**\n * Get an existing entry in the map or add a new one if not found.\n *\n * @param key1 The first key\n * @param key2 The second key\n * @param create A callback to create the new entry when not found.\n * @param sentinel An optional sentinel value to use to indicate that the\n * entry is being created.\n */\n getOrAdd(key1, key2, create, sentinel) {\n let map = this.get(key1);\n if (map === undefined) {\n map = new Map();\n this.set(key1, map);\n }\n let entry = map.get(key2);\n if (entry === undefined) {\n if (sentinel !== undefined) {\n map.set(key2, sentinel);\n }\n entry = create();\n map.set(key2, entry);\n }\n return entry;\n }\n}\n// Adapted from https://github.com/microsoft/TypeScript/blob/bc52ff6f4be9347981de415a35da90497eae84ac/src/compiler/core.ts#L1507\nexport class Queue {\n constructor(elements) {\n var _b;\n _Queue_elements.set(this, void 0);\n _Queue_headIndex.set(this, 0);\n __classPrivateFieldSet(this, _Queue_elements, (_b = elements === null || elements === void 0 ? void 0 : elements.slice()) !== null && _b !== void 0 ? _b : [], \"f\");\n }\n isEmpty() {\n return __classPrivateFieldGet(this, _Queue_headIndex, \"f\") === __classPrivateFieldGet(this, _Queue_elements, \"f\").length;\n }\n enqueue(...items) {\n __classPrivateFieldGet(this, _Queue_elements, \"f\").push(...items);\n }\n dequeue() {\n var _b;\n if (this.isEmpty()) {\n throw new Error(\"Queue is empty.\");\n }\n const result = __classPrivateFieldGet(this, _Queue_elements, \"f\")[__classPrivateFieldGet(this, _Queue_headIndex, \"f\")];\n __classPrivateFieldGet(this, _Queue_elements, \"f\")[__classPrivateFieldGet(this, _Queue_headIndex, \"f\")] = undefined; // Don't keep referencing dequeued item\n __classPrivateFieldSet(this, _Queue_headIndex, // Don't keep referencing dequeued item\n (_b = __classPrivateFieldGet(this, _Queue_headIndex, \"f\"), _b++, _b), \"f\");\n // If more than half of the queue is empty, copy the remaining elements to the\n // front and shrink the array (unless we'd be saving fewer than 100 slots)\n if (__classPrivateFieldGet(this, _Queue_headIndex, \"f\") > 100 && __classPrivateFieldGet(this, _Queue_headIndex, \"f\") > __classPrivateFieldGet(this, _Queue_elements, \"f\").length >> 1) {\n const newLength = __classPrivateFieldGet(this, _Queue_elements, \"f\").length - __classPrivateFieldGet(this, _Queue_headIndex, \"f\");\n __classPrivateFieldGet(this, _Queue_elements, \"f\").copyWithin(0, __classPrivateFieldGet(this, _Queue_headIndex, \"f\"));\n __classPrivateFieldGet(this, _Queue_elements, \"f\").length = newLength;\n __classPrivateFieldSet(this, _Queue_headIndex, 0, \"f\");\n }\n return result;\n }\n}\n_Queue_elements = new WeakMap(), _Queue_headIndex = new WeakMap();\n/**\n * Casts away readonly typing.\n *\n * Use it like this when it is safe to override readonly typing:\n * mutate(item).prop = value;\n */\nexport function mutate(value) {\n return value;\n}\nexport function getSourceFileKindFromExt(path) {\n const ext = getAnyExtensionFromPath(path);\n if (ext === \".js\" || ext === \".mjs\") {\n return \"js\";\n }\n else if (ext === \".tsp\" || ext === \".cadl\") {\n return \"typespec\";\n }\n else {\n return undefined;\n }\n}\nexport function createStringMap(caseInsensitive) {\n return caseInsensitive ? new CaseInsensitiveMap() : new Map();\n}\nclass CaseInsensitiveMap extends Map {\n get(key) {\n return super.get(key.toUpperCase());\n }\n set(key, value) {\n return super.set(key.toUpperCase(), value);\n }\n has(key) {\n return super.has(key.toUpperCase());\n }\n delete(key) {\n return super.delete(key.toUpperCase());\n }\n}\n/**\n * Helper class to track duplicate instance\n */\nexport class DuplicateTracker {\n constructor() {\n _DuplicateTracker_entries.set(this, new Map());\n }\n /**\n * Track usage of K.\n * @param k key that is being checked for duplicate.\n * @param v value that map to the key\n */\n track(k, v) {\n const existing = __classPrivateFieldGet(this, _DuplicateTracker_entries, \"f\").get(k);\n if (existing === undefined) {\n __classPrivateFieldGet(this, _DuplicateTracker_entries, \"f\").set(k, [v]);\n }\n else {\n existing.push(v);\n }\n }\n /**\n * Return iterator of all the duplicate entries.\n */\n *entries() {\n for (const [k, v] of __classPrivateFieldGet(this, _DuplicateTracker_entries, \"f\").entries()) {\n if (v.length > 1) {\n yield [k, v];\n }\n }\n }\n}\n_DuplicateTracker_entries = new WeakMap();\nexport function createRekeyableMap(entries) {\n return new RekeyableMapImpl(entries);\n}\nclass RekeyableMapImpl {\n constructor(entries) {\n _RekeyableMapImpl_keys.set(this, new Map());\n _RekeyableMapImpl_values.set(this, new Map());\n this[_a] = \"RekeyableMap\";\n if (entries) {\n for (const [key, value] of entries) {\n this.set(key, value);\n }\n }\n }\n clear() {\n __classPrivateFieldGet(this, _RekeyableMapImpl_keys, \"f\").clear();\n __classPrivateFieldGet(this, _RekeyableMapImpl_values, \"f\").clear();\n }\n delete(key) {\n const keyItem = __classPrivateFieldGet(this, _RekeyableMapImpl_keys, \"f\").get(key);\n if (keyItem) {\n __classPrivateFieldGet(this, _RekeyableMapImpl_keys, \"f\").delete(key);\n return __classPrivateFieldGet(this, _RekeyableMapImpl_values, \"f\").delete(keyItem);\n }\n return false;\n }\n forEach(callbackfn, thisArg) {\n __classPrivateFieldGet(this, _RekeyableMapImpl_values, \"f\").forEach((value, keyItem) => {\n callbackfn(value, keyItem.key, this);\n }, thisArg);\n }\n get(key) {\n const keyItem = __classPrivateFieldGet(this, _RekeyableMapImpl_keys, \"f\").get(key);\n return keyItem ? __classPrivateFieldGet(this, _RekeyableMapImpl_values, \"f\").get(keyItem) : undefined;\n }\n has(key) {\n return __classPrivateFieldGet(this, _RekeyableMapImpl_keys, \"f\").has(key);\n }\n set(key, value) {\n let keyItem = __classPrivateFieldGet(this, _RekeyableMapImpl_keys, \"f\").get(key);\n if (!keyItem) {\n keyItem = { key };\n __classPrivateFieldGet(this, _RekeyableMapImpl_keys, \"f\").set(key, keyItem);\n }\n __classPrivateFieldGet(this, _RekeyableMapImpl_values, \"f\").set(keyItem, value);\n return this;\n }\n get size() {\n return __classPrivateFieldGet(this, _RekeyableMapImpl_values, \"f\").size;\n }\n *entries() {\n for (const [k, v] of __classPrivateFieldGet(this, _RekeyableMapImpl_values, \"f\")) {\n yield [k.key, v];\n }\n }\n *keys() {\n for (const k of __classPrivateFieldGet(this, _RekeyableMapImpl_values, \"f\").keys()) {\n yield k.key;\n }\n }\n values() {\n return __classPrivateFieldGet(this, _RekeyableMapImpl_values, \"f\").values();\n }\n [(_RekeyableMapImpl_keys = new WeakMap(), _RekeyableMapImpl_values = new WeakMap(), Symbol.iterator)]() {\n return this.entries();\n }\n rekey(existingKey, newKey) {\n const keyItem = __classPrivateFieldGet(this, _RekeyableMapImpl_keys, \"f\").get(existingKey);\n if (!keyItem) {\n return false;\n }\n __classPrivateFieldGet(this, _RekeyableMapImpl_keys, \"f\").delete(existingKey);\n keyItem.key = newKey;\n __classPrivateFieldGet(this, _RekeyableMapImpl_keys, \"f\").set(newKey, keyItem);\n return true;\n }\n}\n_a = Symbol.toStringTag;\n//# sourceMappingURL=util.js.map","var __defProp = Object.defineProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\n\n// src/document/public.js\nvar public_exports = {};\n__export(public_exports, {\n builders: () => builders,\n printer: () => printer,\n utils: () => utils\n});\n\n// src/document/constants.js\nvar DOC_TYPE_STRING = \"string\";\nvar DOC_TYPE_ARRAY = \"array\";\nvar DOC_TYPE_CURSOR = \"cursor\";\nvar DOC_TYPE_INDENT = \"indent\";\nvar DOC_TYPE_ALIGN = \"align\";\nvar DOC_TYPE_TRIM = \"trim\";\nvar DOC_TYPE_GROUP = \"group\";\nvar DOC_TYPE_FILL = \"fill\";\nvar DOC_TYPE_IF_BREAK = \"if-break\";\nvar DOC_TYPE_INDENT_IF_BREAK = \"indent-if-break\";\nvar DOC_TYPE_LINE_SUFFIX = \"line-suffix\";\nvar DOC_TYPE_LINE_SUFFIX_BOUNDARY = \"line-suffix-boundary\";\nvar DOC_TYPE_LINE = \"line\";\nvar DOC_TYPE_LABEL = \"label\";\nvar DOC_TYPE_BREAK_PARENT = \"break-parent\";\nvar VALID_OBJECT_DOC_TYPES = /* @__PURE__ */ new Set([\n DOC_TYPE_CURSOR,\n DOC_TYPE_INDENT,\n DOC_TYPE_ALIGN,\n DOC_TYPE_TRIM,\n DOC_TYPE_GROUP,\n DOC_TYPE_FILL,\n DOC_TYPE_IF_BREAK,\n DOC_TYPE_INDENT_IF_BREAK,\n DOC_TYPE_LINE_SUFFIX,\n DOC_TYPE_LINE_SUFFIX_BOUNDARY,\n DOC_TYPE_LINE,\n DOC_TYPE_LABEL,\n DOC_TYPE_BREAK_PARENT\n]);\n\n// src/document/utils/get-doc-type.js\nfunction getDocType(doc) {\n if (typeof doc === \"string\") {\n return DOC_TYPE_STRING;\n }\n if (Array.isArray(doc)) {\n return DOC_TYPE_ARRAY;\n }\n if (!doc) {\n return;\n }\n const { type } = doc;\n if (VALID_OBJECT_DOC_TYPES.has(type)) {\n return type;\n }\n}\nvar get_doc_type_default = getDocType;\n\n// src/document/invalid-doc-error.js\nvar disjunctionListFormat = (list) => new Intl.ListFormat(\"en-US\", { type: \"disjunction\" }).format(list);\nfunction getDocErrorMessage(doc) {\n const type = doc === null ? \"null\" : typeof doc;\n if (type !== \"string\" && type !== \"object\") {\n return `Unexpected doc '${type}', \nExpected it to be 'string' or 'object'.`;\n }\n if (get_doc_type_default(doc)) {\n throw new Error(\"doc is valid.\");\n }\n const objectType = Object.prototype.toString.call(doc);\n if (objectType !== \"[object Object]\") {\n return `Unexpected doc '${objectType}'.`;\n }\n const EXPECTED_TYPE_VALUES = disjunctionListFormat(\n [...VALID_OBJECT_DOC_TYPES].map((type2) => `'${type2}'`)\n );\n return `Unexpected doc.type '${doc.type}'.\nExpected it to be ${EXPECTED_TYPE_VALUES}.`;\n}\nvar InvalidDocError = class extends Error {\n name = \"InvalidDocError\";\n constructor(doc) {\n super(getDocErrorMessage(doc));\n this.doc = doc;\n }\n};\nvar invalid_doc_error_default = InvalidDocError;\n\n// src/document/utils/traverse-doc.js\nvar traverseDocOnExitStackMarker = {};\nfunction traverseDoc(doc, onEnter, onExit, shouldTraverseConditionalGroups) {\n const docsStack = [doc];\n while (docsStack.length > 0) {\n const doc2 = docsStack.pop();\n if (doc2 === traverseDocOnExitStackMarker) {\n onExit(docsStack.pop());\n continue;\n }\n if (onExit) {\n docsStack.push(doc2, traverseDocOnExitStackMarker);\n }\n const docType = get_doc_type_default(doc2);\n if (!docType) {\n throw new invalid_doc_error_default(doc2);\n }\n if ((onEnter == null ? void 0 : onEnter(doc2)) === false) {\n continue;\n }\n switch (docType) {\n case DOC_TYPE_ARRAY:\n case DOC_TYPE_FILL: {\n const parts = docType === DOC_TYPE_ARRAY ? doc2 : doc2.parts;\n for (let ic = parts.length, i = ic - 1; i >= 0; --i) {\n docsStack.push(parts[i]);\n }\n break;\n }\n case DOC_TYPE_IF_BREAK:\n docsStack.push(doc2.flatContents, doc2.breakContents);\n break;\n case DOC_TYPE_GROUP:\n if (shouldTraverseConditionalGroups && doc2.expandedStates) {\n for (let ic = doc2.expandedStates.length, i = ic - 1; i >= 0; --i) {\n docsStack.push(doc2.expandedStates[i]);\n }\n } else {\n docsStack.push(doc2.contents);\n }\n break;\n case DOC_TYPE_ALIGN:\n case DOC_TYPE_INDENT:\n case DOC_TYPE_INDENT_IF_BREAK:\n case DOC_TYPE_LABEL:\n case DOC_TYPE_LINE_SUFFIX:\n docsStack.push(doc2.contents);\n break;\n case DOC_TYPE_STRING:\n case DOC_TYPE_CURSOR:\n case DOC_TYPE_TRIM:\n case DOC_TYPE_LINE_SUFFIX_BOUNDARY:\n case DOC_TYPE_LINE:\n case DOC_TYPE_BREAK_PARENT:\n break;\n default:\n throw new invalid_doc_error_default(doc2);\n }\n }\n}\nvar traverse_doc_default = traverseDoc;\n\n// src/document/utils/assert-doc.js\nvar noop = () => {\n};\nvar assertDoc = true ? noop : function(doc) {\n traverse_doc_default(doc, (doc2) => {\n if (checked.has(doc2)) {\n return false;\n }\n if (typeof doc2 !== \"string\") {\n checked.add(doc2);\n }\n });\n};\nvar assertDocArray = true ? noop : function(docs, optional = false) {\n if (optional && !docs) {\n return;\n }\n if (!Array.isArray(docs)) {\n throw new TypeError(\"Unexpected doc array.\");\n }\n for (const doc of docs) {\n assertDoc(doc);\n }\n};\n\n// src/document/builders.js\nfunction indent(contents) {\n assertDoc(contents);\n return { type: DOC_TYPE_INDENT, contents };\n}\nfunction align(widthOrString, contents) {\n assertDoc(contents);\n return { type: DOC_TYPE_ALIGN, contents, n: widthOrString };\n}\nfunction group(contents, opts = {}) {\n assertDoc(contents);\n assertDocArray(\n opts.expandedStates,\n /* optional */\n true\n );\n return {\n type: DOC_TYPE_GROUP,\n id: opts.id,\n contents,\n break: Boolean(opts.shouldBreak),\n expandedStates: opts.expandedStates\n };\n}\nfunction dedentToRoot(contents) {\n return align(Number.NEGATIVE_INFINITY, contents);\n}\nfunction markAsRoot(contents) {\n return align({ type: \"root\" }, contents);\n}\nfunction dedent(contents) {\n return align(-1, contents);\n}\nfunction conditionalGroup(states, opts) {\n return group(states[0], { ...opts, expandedStates: states });\n}\nfunction fill(parts) {\n assertDocArray(parts);\n return { type: DOC_TYPE_FILL, parts };\n}\nfunction ifBreak(breakContents, flatContents = \"\", opts = {}) {\n assertDoc(breakContents);\n if (flatContents !== \"\") {\n assertDoc(flatContents);\n }\n return {\n type: DOC_TYPE_IF_BREAK,\n breakContents,\n flatContents,\n groupId: opts.groupId\n };\n}\nfunction indentIfBreak(contents, opts) {\n assertDoc(contents);\n return {\n type: DOC_TYPE_INDENT_IF_BREAK,\n contents,\n groupId: opts.groupId,\n negate: opts.negate\n };\n}\nfunction lineSuffix(contents) {\n assertDoc(contents);\n return { type: DOC_TYPE_LINE_SUFFIX, contents };\n}\nvar lineSuffixBoundary = { type: DOC_TYPE_LINE_SUFFIX_BOUNDARY };\nvar breakParent = { type: DOC_TYPE_BREAK_PARENT };\nvar trim = { type: DOC_TYPE_TRIM };\nvar hardlineWithoutBreakParent = { type: DOC_TYPE_LINE, hard: true };\nvar literallineWithoutBreakParent = {\n type: DOC_TYPE_LINE,\n hard: true,\n literal: true\n};\nvar line = { type: DOC_TYPE_LINE };\nvar softline = { type: DOC_TYPE_LINE, soft: true };\nvar hardline = [hardlineWithoutBreakParent, breakParent];\nvar literalline = [literallineWithoutBreakParent, breakParent];\nvar cursor = { type: DOC_TYPE_CURSOR };\nfunction join(separator, docs) {\n assertDoc(separator);\n assertDocArray(docs);\n const parts = [];\n for (let i = 0; i < docs.length; i++) {\n if (i !== 0) {\n parts.push(separator);\n }\n parts.push(docs[i]);\n }\n return parts;\n}\nfunction addAlignmentToDoc(doc, size, tabWidth) {\n assertDoc(doc);\n let aligned = doc;\n if (size > 0) {\n for (let i = 0; i < Math.floor(size / tabWidth); ++i) {\n aligned = indent(aligned);\n }\n aligned = align(size % tabWidth, aligned);\n aligned = align(Number.NEGATIVE_INFINITY, aligned);\n }\n return aligned;\n}\nfunction label(label2, contents) {\n assertDoc(contents);\n return label2 ? { type: DOC_TYPE_LABEL, label: label2, contents } : contents;\n}\n\n// scripts/build/shims/at.js\nvar at = (isOptionalObject, object, index) => {\n if (isOptionalObject && (object === void 0 || object === null)) {\n return;\n }\n if (Array.isArray(object) || typeof object === \"string\") {\n return object[index < 0 ? object.length + index : index];\n }\n return object.at(index);\n};\nvar at_default = at;\n\n// scripts/build/shims/string-replace-all.js\nvar stringReplaceAll = (isOptionalObject, original, pattern, replacement) => {\n if (isOptionalObject && (original === void 0 || original === null)) {\n return;\n }\n if (original.replaceAll) {\n return original.replaceAll(pattern, replacement);\n }\n if (pattern.global) {\n return original.replace(pattern, replacement);\n }\n return original.split(pattern).join(replacement);\n};\nvar string_replace_all_default = stringReplaceAll;\n\n// src/common/end-of-line.js\nfunction convertEndOfLineToChars(value) {\n switch (value) {\n case \"cr\":\n return \"\\r\";\n case \"crlf\":\n return \"\\r\\n\";\n default:\n return \"\\n\";\n }\n}\n\n// node_modules/emoji-regex/index.mjs\nvar emoji_regex_default = () => {\n return /[#*0-9]\\uFE0F?\\u20E3|[\\xA9\\xAE\\u203C\\u2049\\u2122\\u2139\\u2194-\\u2199\\u21A9\\u21AA\\u231A\\u231B\\u2328\\u23CF\\u23ED-\\u23EF\\u23F1\\u23F2\\u23F8-\\u23FA\\u24C2\\u25AA\\u25AB\\u25B6\\u25C0\\u25FB\\u25FC\\u25FE\\u2600-\\u2604\\u260E\\u2611\\u2614\\u2615\\u2618\\u2620\\u2622\\u2623\\u2626\\u262A\\u262E\\u262F\\u2638-\\u263A\\u2640\\u2642\\u2648-\\u2653\\u265F\\u2660\\u2663\\u2665\\u2666\\u2668\\u267B\\u267E\\u267F\\u2692\\u2694-\\u2697\\u2699\\u269B\\u269C\\u26A0\\u26A7\\u26AA\\u26B0\\u26B1\\u26BD\\u26BE\\u26C4\\u26C8\\u26CF\\u26D1\\u26D3\\u26E9\\u26F0-\\u26F5\\u26F7\\u26F8\\u26FA\\u2702\\u2708\\u2709\\u270F\\u2712\\u2714\\u2716\\u271D\\u2721\\u2733\\u2734\\u2744\\u2747\\u2757\\u2763\\u27A1\\u2934\\u2935\\u2B05-\\u2B07\\u2B1B\\u2B1C\\u2B55\\u3030\\u303D\\u3297\\u3299]\\uFE0F?|[\\u261D\\u270C\\u270D](?:\\uFE0F|\\uD83C[\\uDFFB-\\uDFFF])?|[\\u270A\\u270B](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\u23E9-\\u23EC\\u23F0\\u23F3\\u25FD\\u2693\\u26A1\\u26AB\\u26C5\\u26CE\\u26D4\\u26EA\\u26FD\\u2705\\u2728\\u274C\\u274E\\u2753-\\u2755\\u2795-\\u2797\\u27B0\\u27BF\\u2B50]|\\u26F9(?:\\uFE0F|\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|\\u2764\\uFE0F?(?:\\u200D(?:\\uD83D\\uDD25|\\uD83E\\uDE79))?|\\uD83C(?:[\\uDC04\\uDD70\\uDD71\\uDD7E\\uDD7F\\uDE02\\uDE37\\uDF21\\uDF24-\\uDF2C\\uDF36\\uDF7D\\uDF96\\uDF97\\uDF99-\\uDF9B\\uDF9E\\uDF9F\\uDFCD\\uDFCE\\uDFD4-\\uDFDF\\uDFF5\\uDFF7]\\uFE0F?|[\\uDF85\\uDFC2\\uDFC7](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDFC3\\uDFC4\\uDFCA](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDFCB\\uDFCC](?:\\uFE0F|\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\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]|\\uDDE6\\uD83C[\\uDDE8-\\uDDEC\\uDDEE\\uDDF1\\uDDF2\\uDDF4\\uDDF6-\\uDDFA\\uDDFC\\uDDFD\\uDDFF]|\\uDDE7\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEF\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9\\uDDFB\\uDDFC\\uDDFE\\uDDFF]|\\uDDE8\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDEE\\uDDF0-\\uDDF5\\uDDF7\\uDDFA-\\uDDFF]|\\uDDE9\\uD83C[\\uDDEA\\uDDEC\\uDDEF\\uDDF0\\uDDF2\\uDDF4\\uDDFF]|\\uDDEA\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDED\\uDDF7-\\uDDFA]|\\uDDEB\\uD83C[\\uDDEE-\\uDDF0\\uDDF2\\uDDF4\\uDDF7]|\\uDDEC\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEE\\uDDF1-\\uDDF3\\uDDF5-\\uDDFA\\uDDFC\\uDDFE]|\\uDDED\\uD83C[\\uDDF0\\uDDF2\\uDDF3\\uDDF7\\uDDF9\\uDDFA]|\\uDDEE\\uD83C[\\uDDE8-\\uDDEA\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9]|\\uDDEF\\uD83C[\\uDDEA\\uDDF2\\uDDF4\\uDDF5]|\\uDDF0\\uD83C[\\uDDEA\\uDDEC-\\uDDEE\\uDDF2\\uDDF3\\uDDF5\\uDDF7\\uDDFC\\uDDFE\\uDDFF]|\\uDDF1\\uD83C[\\uDDE6-\\uDDE8\\uDDEE\\uDDF0\\uDDF7-\\uDDFB\\uDDFE]|\\uDDF2\\uD83C[\\uDDE6\\uDDE8-\\uDDED\\uDDF0-\\uDDFF]|\\uDDF3\\uD83C[\\uDDE6\\uDDE8\\uDDEA-\\uDDEC\\uDDEE\\uDDF1\\uDDF4\\uDDF5\\uDDF7\\uDDFA\\uDDFF]|\\uDDF4\\uD83C\\uDDF2|\\uDDF5\\uD83C[\\uDDE6\\uDDEA-\\uDDED\\uDDF0-\\uDDF3\\uDDF7-\\uDDF9\\uDDFC\\uDDFE]|\\uDDF6\\uD83C\\uDDE6|\\uDDF7\\uD83C[\\uDDEA\\uDDF4\\uDDF8\\uDDFA\\uDDFC]|\\uDDF8\\uD83C[\\uDDE6-\\uDDEA\\uDDEC-\\uDDF4\\uDDF7-\\uDDF9\\uDDFB\\uDDFD-\\uDDFF]|\\uDDF9\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDED\\uDDEF-\\uDDF4\\uDDF7\\uDDF9\\uDDFB\\uDDFC\\uDDFF]|\\uDDFA\\uD83C[\\uDDE6\\uDDEC\\uDDF2\\uDDF3\\uDDF8\\uDDFE\\uDDFF]|\\uDDFB\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDEE\\uDDF3\\uDDFA]|\\uDDFC\\uD83C[\\uDDEB\\uDDF8]|\\uDDFD\\uD83C\\uDDF0|\\uDDFE\\uD83C[\\uDDEA\\uDDF9]|\\uDDFF\\uD83C[\\uDDE6\\uDDF2\\uDDFC]|\\uDFF3\\uFE0F?(?:\\u200D(?:\\u26A7\\uFE0F?|\\uD83C\\uDF08))?|\\uDFF4(?:\\u200D\\u2620\\uFE0F?|\\uDB40\\uDC67\\uDB40\\uDC62\\uDB40(?:\\uDC65\\uDB40\\uDC6E\\uDB40\\uDC67|\\uDC73\\uDB40\\uDC63\\uDB40\\uDC74|\\uDC77\\uDB40\\uDC6C\\uDB40\\uDC73)\\uDB40\\uDC7F)?)|\\uD83D(?:[\\uDC08\\uDC26](?:\\u200D\\u2B1B)?|[\\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?|[\\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](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDC6E\\uDC70\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4-\\uDEB6](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDD74\\uDD90](?:\\uFE0F|\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDC00-\\uDC07\\uDC09-\\uDC14\\uDC16-\\uDC25\\uDC27-\\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\\uDEDC-\\uDEDF\\uDEEB\\uDEEC\\uDEF4-\\uDEFC\\uDFE0-\\uDFEB\\uDFF0]|\\uDC15(?:\\u200D\\uD83E\\uDDBA)?|\\uDC3B(?:\\u200D\\u2744\\uFE0F?)?|\\uDC41\\uFE0F?(?:\\u200D\\uD83D\\uDDE8\\uFE0F?)?|\\uDC68(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDC68\\uDC69]\\u200D\\uD83D(?:\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?)|[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?)|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFC-\\uDFFF])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB-\\uDFFE])))?))?|\\uDC69(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?[\\uDC68\\uDC69]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?|\\uDC69\\u200D\\uD83D(?:\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?))|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFC-\\uDFFF])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB-\\uDFFE])))?))?|\\uDC6F(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|\\uDD75(?:\\uFE0F|\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|\\uDE2E(?:\\u200D\\uD83D\\uDCA8)?|\\uDE35(?:\\u200D\\uD83D\\uDCAB)?|\\uDE36(?:\\u200D\\uD83C\\uDF2B\\uFE0F?)?)|\\uD83E(?:[\\uDD0C\\uDD0F\\uDD18-\\uDD1F\\uDD30-\\uDD34\\uDD36\\uDD77\\uDDB5\\uDDB6\\uDDBB\\uDDD2\\uDDD3\\uDDD5\\uDEC3-\\uDEC5\\uDEF0\\uDEF2-\\uDEF8](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDD26\\uDD35\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD-\\uDDCF\\uDDD4\\uDDD6-\\uDDDD](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDDDE\\uDDDF](?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDD0D\\uDD0E\\uDD10-\\uDD17\\uDD20-\\uDD25\\uDD27-\\uDD2F\\uDD3A\\uDD3F-\\uDD45\\uDD47-\\uDD76\\uDD78-\\uDDB4\\uDDB7\\uDDBA\\uDDBC-\\uDDCC\\uDDD0\\uDDE0-\\uDDFF\\uDE70-\\uDE7C\\uDE80-\\uDE88\\uDE90-\\uDEBD\\uDEBF-\\uDEC2\\uDECE-\\uDEDB\\uDEE0-\\uDEE8]|\\uDD3C(?:\\u200D[\\u2640\\u2642]\\uFE0F?|\\uD83C[\\uDFFB-\\uDFFF])?|\\uDDD1(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]|\\uDD1D\\u200D\\uD83E\\uDDD1))|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFC-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFD-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFD\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFE]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?))?|\\uDEF1(?:\\uD83C(?:\\uDFFB(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFC-\\uDFFF])?|\\uDFFC(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])?|\\uDFFD(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])?|\\uDFFE(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])?|\\uDFFF(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB-\\uDFFE])?))?)/g;\n};\n\n// node_modules/eastasianwidth/eastasianwidth.js\nvar eastasianwidth_default = {\n eastAsianWidth(character) {\n var x = character.charCodeAt(0);\n var y = character.length == 2 ? character.charCodeAt(1) : 0;\n var codePoint = x;\n if (55296 <= x && x <= 56319 && 56320 <= y && y <= 57343) {\n x &= 1023;\n y &= 1023;\n codePoint = x << 10 | y;\n codePoint += 65536;\n }\n if (12288 == codePoint || 65281 <= codePoint && codePoint <= 65376 || 65504 <= codePoint && codePoint <= 65510) {\n return \"F\";\n }\n if (4352 <= codePoint && codePoint <= 4447 || 4515 <= codePoint && codePoint <= 4519 || 4602 <= codePoint && codePoint <= 4607 || 9001 <= codePoint && codePoint <= 9002 || 11904 <= codePoint && codePoint <= 11929 || 11931 <= codePoint && codePoint <= 12019 || 12032 <= codePoint && codePoint <= 12245 || 12272 <= codePoint && codePoint <= 12283 || 12289 <= codePoint && codePoint <= 12350 || 12353 <= codePoint && codePoint <= 12438 || 12441 <= codePoint && codePoint <= 12543 || 12549 <= codePoint && codePoint <= 12589 || 12593 <= codePoint && codePoint <= 12686 || 12688 <= codePoint && codePoint <= 12730 || 12736 <= codePoint && codePoint <= 12771 || 12784 <= codePoint && codePoint <= 12830 || 12832 <= codePoint && codePoint <= 12871 || 12880 <= codePoint && codePoint <= 13054 || 13056 <= codePoint && codePoint <= 19903 || 19968 <= codePoint && codePoint <= 42124 || 42128 <= codePoint && codePoint <= 42182 || 43360 <= codePoint && codePoint <= 43388 || 44032 <= codePoint && codePoint <= 55203 || 55216 <= codePoint && codePoint <= 55238 || 55243 <= codePoint && codePoint <= 55291 || 63744 <= codePoint && codePoint <= 64255 || 65040 <= codePoint && codePoint <= 65049 || 65072 <= codePoint && codePoint <= 65106 || 65108 <= codePoint && codePoint <= 65126 || 65128 <= codePoint && codePoint <= 65131 || 110592 <= codePoint && codePoint <= 110593 || 127488 <= codePoint && codePoint <= 127490 || 127504 <= codePoint && codePoint <= 127546 || 127552 <= codePoint && codePoint <= 127560 || 127568 <= codePoint && codePoint <= 127569 || 131072 <= codePoint && codePoint <= 194367 || 177984 <= codePoint && codePoint <= 196605 || 196608 <= codePoint && codePoint <= 262141) {\n return \"W\";\n }\n return \"N\";\n }\n};\n\n// src/utils/get-string-width.js\nvar notAsciiRegex = /[^\\x20-\\x7F]/;\nfunction getStringWidth(text) {\n if (!text) {\n return 0;\n }\n if (!notAsciiRegex.test(text)) {\n return text.length;\n }\n text = text.replace(emoji_regex_default(), \" \");\n let width = 0;\n for (const character of text) {\n const codePoint = character.codePointAt(0);\n if (codePoint <= 31 || codePoint >= 127 && codePoint <= 159) {\n continue;\n }\n if (codePoint >= 768 && codePoint <= 879) {\n continue;\n }\n const code = eastasianwidth_default.eastAsianWidth(character);\n width += code === \"F\" || code === \"W\" ? 2 : 1;\n }\n return width;\n}\nvar get_string_width_default = getStringWidth;\n\n// src/document/utils.js\nvar getDocParts = (doc) => {\n if (Array.isArray(doc)) {\n return doc;\n }\n if (doc.type !== DOC_TYPE_FILL) {\n throw new Error(`Expect doc to be 'array' or '${DOC_TYPE_FILL}'.`);\n }\n return doc.parts;\n};\nfunction mapDoc(doc, cb) {\n if (typeof doc === \"string\") {\n return cb(doc);\n }\n const mapped = /* @__PURE__ */ new Map();\n return rec(doc);\n function rec(doc2) {\n if (mapped.has(doc2)) {\n return mapped.get(doc2);\n }\n const result = process2(doc2);\n mapped.set(doc2, result);\n return result;\n }\n function process2(doc2) {\n switch (get_doc_type_default(doc2)) {\n case DOC_TYPE_ARRAY:\n return cb(doc2.map(rec));\n case DOC_TYPE_FILL:\n return cb({\n ...doc2,\n parts: doc2.parts.map(rec)\n });\n case DOC_TYPE_IF_BREAK:\n return cb({\n ...doc2,\n breakContents: rec(doc2.breakContents),\n flatContents: rec(doc2.flatContents)\n });\n case DOC_TYPE_GROUP: {\n let {\n expandedStates,\n contents\n } = doc2;\n if (expandedStates) {\n expandedStates = expandedStates.map(rec);\n contents = expandedStates[0];\n } else {\n contents = rec(contents);\n }\n return cb({\n ...doc2,\n contents,\n expandedStates\n });\n }\n case DOC_TYPE_ALIGN:\n case DOC_TYPE_INDENT:\n case DOC_TYPE_INDENT_IF_BREAK:\n case DOC_TYPE_LABEL:\n case DOC_TYPE_LINE_SUFFIX:\n return cb({\n ...doc2,\n contents: rec(doc2.contents)\n });\n case DOC_TYPE_STRING:\n case DOC_TYPE_CURSOR:\n case DOC_TYPE_TRIM:\n case DOC_TYPE_LINE_SUFFIX_BOUNDARY:\n case DOC_TYPE_LINE:\n case DOC_TYPE_BREAK_PARENT:\n return cb(doc2);\n default:\n throw new invalid_doc_error_default(doc2);\n }\n }\n}\nfunction findInDoc(doc, fn, defaultValue) {\n let result = defaultValue;\n let shouldSkipFurtherProcessing = false;\n function findInDocOnEnterFn(doc2) {\n if (shouldSkipFurtherProcessing) {\n return false;\n }\n const maybeResult = fn(doc2);\n if (maybeResult !== void 0) {\n shouldSkipFurtherProcessing = true;\n result = maybeResult;\n }\n }\n traverse_doc_default(doc, findInDocOnEnterFn);\n return result;\n}\nfunction willBreakFn(doc) {\n if (doc.type === DOC_TYPE_GROUP && doc.break) {\n return true;\n }\n if (doc.type === DOC_TYPE_LINE && doc.hard) {\n return true;\n }\n if (doc.type === DOC_TYPE_BREAK_PARENT) {\n return true;\n }\n}\nfunction willBreak(doc) {\n return findInDoc(doc, willBreakFn, false);\n}\nfunction breakParentGroup(groupStack) {\n if (groupStack.length > 0) {\n const parentGroup = at_default(\n /* isOptionalObject*/\n false,\n groupStack,\n -1\n );\n if (!parentGroup.expandedStates && !parentGroup.break) {\n parentGroup.break = \"propagated\";\n }\n }\n return null;\n}\nfunction propagateBreaks(doc) {\n const alreadyVisitedSet = /* @__PURE__ */ new Set();\n const groupStack = [];\n function propagateBreaksOnEnterFn(doc2) {\n if (doc2.type === DOC_TYPE_BREAK_PARENT) {\n breakParentGroup(groupStack);\n }\n if (doc2.type === DOC_TYPE_GROUP) {\n groupStack.push(doc2);\n if (alreadyVisitedSet.has(doc2)) {\n return false;\n }\n alreadyVisitedSet.add(doc2);\n }\n }\n function propagateBreaksOnExitFn(doc2) {\n if (doc2.type === DOC_TYPE_GROUP) {\n const group2 = groupStack.pop();\n if (group2.break) {\n breakParentGroup(groupStack);\n }\n }\n }\n traverse_doc_default(\n doc,\n propagateBreaksOnEnterFn,\n propagateBreaksOnExitFn,\n /* shouldTraverseConditionalGroups */\n true\n );\n}\nfunction removeLinesFn(doc) {\n if (doc.type === DOC_TYPE_LINE && !doc.hard) {\n return doc.soft ? \"\" : \" \";\n }\n if (doc.type === DOC_TYPE_IF_BREAK) {\n return doc.flatContents;\n }\n return doc;\n}\nfunction removeLines(doc) {\n return mapDoc(doc, removeLinesFn);\n}\nfunction stripTrailingHardlineFromParts(parts) {\n parts = [...parts];\n while (parts.length >= 2 && at_default(\n /* isOptionalObject*/\n false,\n parts,\n -2\n ).type === DOC_TYPE_LINE && at_default(\n /* isOptionalObject*/\n false,\n parts,\n -1\n ).type === DOC_TYPE_BREAK_PARENT) {\n parts.length -= 2;\n }\n if (parts.length > 0) {\n const lastPart = stripTrailingHardlineFromDoc(at_default(\n /* isOptionalObject*/\n false,\n parts,\n -1\n ));\n parts[parts.length - 1] = lastPart;\n }\n return parts;\n}\nfunction stripTrailingHardlineFromDoc(doc) {\n switch (get_doc_type_default(doc)) {\n case DOC_TYPE_ALIGN:\n case DOC_TYPE_INDENT:\n case DOC_TYPE_INDENT_IF_BREAK:\n case DOC_TYPE_GROUP:\n case DOC_TYPE_LINE_SUFFIX:\n case DOC_TYPE_LABEL: {\n const contents = stripTrailingHardlineFromDoc(doc.contents);\n return {\n ...doc,\n contents\n };\n }\n case DOC_TYPE_IF_BREAK:\n return {\n ...doc,\n breakContents: stripTrailingHardlineFromDoc(doc.breakContents),\n flatContents: stripTrailingHardlineFromDoc(doc.flatContents)\n };\n case DOC_TYPE_FILL:\n return {\n ...doc,\n parts: stripTrailingHardlineFromParts(doc.parts)\n };\n case DOC_TYPE_ARRAY:\n return stripTrailingHardlineFromParts(doc);\n case DOC_TYPE_STRING:\n return doc.replace(/[\\n\\r]*$/, \"\");\n case DOC_TYPE_CURSOR:\n case DOC_TYPE_TRIM:\n case DOC_TYPE_LINE_SUFFIX_BOUNDARY:\n case DOC_TYPE_LINE:\n case DOC_TYPE_BREAK_PARENT:\n break;\n default:\n throw new invalid_doc_error_default(doc);\n }\n return doc;\n}\nfunction stripTrailingHardline(doc) {\n return stripTrailingHardlineFromDoc(cleanDoc(doc));\n}\nfunction cleanDocFn(doc) {\n switch (get_doc_type_default(doc)) {\n case DOC_TYPE_FILL:\n if (doc.parts.every((part) => part === \"\")) {\n return \"\";\n }\n break;\n case DOC_TYPE_GROUP:\n if (!doc.contents && !doc.id && !doc.break && !doc.expandedStates) {\n return \"\";\n }\n if (doc.contents.type === DOC_TYPE_GROUP && doc.contents.id === doc.id && doc.contents.break === doc.break && doc.contents.expandedStates === doc.expandedStates) {\n return doc.contents;\n }\n break;\n case DOC_TYPE_ALIGN:\n case DOC_TYPE_INDENT:\n case DOC_TYPE_INDENT_IF_BREAK:\n case DOC_TYPE_LINE_SUFFIX:\n if (!doc.contents) {\n return \"\";\n }\n break;\n case DOC_TYPE_IF_BREAK:\n if (!doc.flatContents && !doc.breakContents) {\n return \"\";\n }\n break;\n case DOC_TYPE_ARRAY: {\n const parts = [];\n for (const part of doc) {\n if (!part) {\n continue;\n }\n const [currentPart, ...restParts] = Array.isArray(part) ? part : [part];\n if (typeof currentPart === \"string\" && typeof at_default(\n /* isOptionalObject*/\n false,\n parts,\n -1\n ) === \"string\") {\n parts[parts.length - 1] += currentPart;\n } else {\n parts.push(currentPart);\n }\n parts.push(...restParts);\n }\n if (parts.length === 0) {\n return \"\";\n }\n if (parts.length === 1) {\n return parts[0];\n }\n return parts;\n }\n case DOC_TYPE_STRING:\n case DOC_TYPE_CURSOR:\n case DOC_TYPE_TRIM:\n case DOC_TYPE_LINE_SUFFIX_BOUNDARY:\n case DOC_TYPE_LINE:\n case DOC_TYPE_LABEL:\n case DOC_TYPE_BREAK_PARENT:\n break;\n default:\n throw new invalid_doc_error_default(doc);\n }\n return doc;\n}\nfunction cleanDoc(doc) {\n return mapDoc(doc, (currentDoc) => cleanDocFn(currentDoc));\n}\nfunction replaceEndOfLine(doc, replacement = literalline) {\n return mapDoc(doc, (currentDoc) => typeof currentDoc === \"string\" ? join(replacement, currentDoc.split(\"\\n\")) : currentDoc);\n}\nfunction canBreakFn(doc) {\n if (doc.type === DOC_TYPE_LINE) {\n return true;\n }\n}\nfunction canBreak(doc) {\n return findInDoc(doc, canBreakFn, false);\n}\n\n// src/document/printer.js\nvar MODE_BREAK = Symbol(\"MODE_BREAK\");\nvar MODE_FLAT = Symbol(\"MODE_FLAT\");\nvar CURSOR_PLACEHOLDER = Symbol(\"cursor\");\nfunction rootIndent() {\n return {\n value: \"\",\n length: 0,\n queue: []\n };\n}\nfunction makeIndent(ind, options) {\n return generateInd(ind, {\n type: \"indent\"\n }, options);\n}\nfunction makeAlign(indent2, widthOrDoc, options) {\n if (widthOrDoc === Number.NEGATIVE_INFINITY) {\n return indent2.root || rootIndent();\n }\n if (widthOrDoc < 0) {\n return generateInd(indent2, {\n type: \"dedent\"\n }, options);\n }\n if (!widthOrDoc) {\n return indent2;\n }\n if (widthOrDoc.type === \"root\") {\n return {\n ...indent2,\n root: indent2\n };\n }\n const alignType = typeof widthOrDoc === \"string\" ? \"stringAlign\" : \"numberAlign\";\n return generateInd(indent2, {\n type: alignType,\n n: widthOrDoc\n }, options);\n}\nfunction generateInd(ind, newPart, options) {\n const queue = newPart.type === \"dedent\" ? ind.queue.slice(0, -1) : [...ind.queue, newPart];\n let value = \"\";\n let length = 0;\n let lastTabs = 0;\n let lastSpaces = 0;\n for (const part of queue) {\n switch (part.type) {\n case \"indent\":\n flush();\n if (options.useTabs) {\n addTabs(1);\n } else {\n addSpaces(options.tabWidth);\n }\n break;\n case \"stringAlign\":\n flush();\n value += part.n;\n length += part.n.length;\n break;\n case \"numberAlign\":\n lastTabs += 1;\n lastSpaces += part.n;\n break;\n default:\n throw new Error(`Unexpected type '${part.type}'`);\n }\n }\n flushSpaces();\n return {\n ...ind,\n value,\n length,\n queue\n };\n function addTabs(count) {\n value += \"\t\".repeat(count);\n length += options.tabWidth * count;\n }\n function addSpaces(count) {\n value += \" \".repeat(count);\n length += count;\n }\n function flush() {\n if (options.useTabs) {\n flushTabs();\n } else {\n flushSpaces();\n }\n }\n function flushTabs() {\n if (lastTabs > 0) {\n addTabs(lastTabs);\n }\n resetLast();\n }\n function flushSpaces() {\n if (lastSpaces > 0) {\n addSpaces(lastSpaces);\n }\n resetLast();\n }\n function resetLast() {\n lastTabs = 0;\n lastSpaces = 0;\n }\n}\nfunction trim2(out) {\n let trimCount = 0;\n let cursorCount = 0;\n let outIndex = out.length;\n outer:\n while (outIndex--) {\n const last = out[outIndex];\n if (last === CURSOR_PLACEHOLDER) {\n cursorCount++;\n continue;\n }\n if (false) {\n throw new Error(`Unexpected value in trim: '${typeof last}'`);\n }\n for (let charIndex = last.length - 1; charIndex >= 0; charIndex--) {\n const char = last[charIndex];\n if (char === \" \" || char === \"\t\") {\n trimCount++;\n } else {\n out[outIndex] = last.slice(0, charIndex + 1);\n break outer;\n }\n }\n }\n if (trimCount > 0 || cursorCount > 0) {\n out.length = outIndex + 1;\n while (cursorCount-- > 0) {\n out.push(CURSOR_PLACEHOLDER);\n }\n }\n return trimCount;\n}\nfunction fits(next, restCommands, width, hasLineSuffix, groupModeMap, mustBeFlat) {\n if (width === Number.POSITIVE_INFINITY) {\n return true;\n }\n let restIdx = restCommands.length;\n const cmds = [next];\n const out = [];\n while (width >= 0) {\n if (cmds.length === 0) {\n if (restIdx === 0) {\n return true;\n }\n cmds.push(restCommands[--restIdx]);\n continue;\n }\n const {\n mode,\n doc\n } = cmds.pop();\n switch (get_doc_type_default(doc)) {\n case DOC_TYPE_STRING:\n out.push(doc);\n width -= get_string_width_default(doc);\n break;\n case DOC_TYPE_ARRAY:\n case DOC_TYPE_FILL: {\n const parts = getDocParts(doc);\n for (let i = parts.length - 1; i >= 0; i--) {\n cmds.push({\n mode,\n doc: parts[i]\n });\n }\n break;\n }\n case DOC_TYPE_INDENT:\n case DOC_TYPE_ALIGN:\n case DOC_TYPE_INDENT_IF_BREAK:\n case DOC_TYPE_LABEL:\n cmds.push({\n mode,\n doc: doc.contents\n });\n break;\n case DOC_TYPE_TRIM:\n width += trim2(out);\n break;\n case DOC_TYPE_GROUP: {\n if (mustBeFlat && doc.break) {\n return false;\n }\n const groupMode = doc.break ? MODE_BREAK : mode;\n const contents = doc.expandedStates && groupMode === MODE_BREAK ? at_default(\n /* isOptionalObject*/\n false,\n doc.expandedStates,\n -1\n ) : doc.contents;\n cmds.push({\n mode: groupMode,\n doc: contents\n });\n break;\n }\n case DOC_TYPE_IF_BREAK: {\n const groupMode = doc.groupId ? groupModeMap[doc.groupId] || MODE_FLAT : mode;\n const contents = groupMode === MODE_BREAK ? doc.breakContents : doc.flatContents;\n if (contents) {\n cmds.push({\n mode,\n doc: contents\n });\n }\n break;\n }\n case DOC_TYPE_LINE:\n if (mode === MODE_BREAK || doc.hard) {\n return true;\n }\n if (!doc.soft) {\n out.push(\" \");\n width--;\n }\n break;\n case DOC_TYPE_LINE_SUFFIX:\n hasLineSuffix = true;\n break;\n case DOC_TYPE_LINE_SUFFIX_BOUNDARY:\n if (hasLineSuffix) {\n return false;\n }\n break;\n }\n }\n return false;\n}\nfunction printDocToString(doc, options) {\n const groupModeMap = {};\n const width = options.printWidth;\n const newLine = convertEndOfLineToChars(options.endOfLine);\n let pos = 0;\n const cmds = [{\n ind: rootIndent(),\n mode: MODE_BREAK,\n doc\n }];\n const out = [];\n let shouldRemeasure = false;\n const lineSuffix2 = [];\n let printedCursorCount = 0;\n propagateBreaks(doc);\n while (cmds.length > 0) {\n const {\n ind,\n mode,\n doc: doc2\n } = cmds.pop();\n switch (get_doc_type_default(doc2)) {\n case DOC_TYPE_STRING: {\n const formatted = newLine !== \"\\n\" ? string_replace_all_default(\n /* isOptionalObject*/\n false,\n doc2,\n \"\\n\",\n newLine\n ) : doc2;\n out.push(formatted);\n if (cmds.length > 0) {\n pos += get_string_width_default(formatted);\n }\n break;\n }\n case DOC_TYPE_ARRAY:\n for (let i = doc2.length - 1; i >= 0; i--) {\n cmds.push({\n ind,\n mode,\n doc: doc2[i]\n });\n }\n break;\n case DOC_TYPE_CURSOR:\n if (printedCursorCount >= 2) {\n throw new Error(\"There are too many 'cursor' in doc.\");\n }\n out.push(CURSOR_PLACEHOLDER);\n printedCursorCount++;\n break;\n case DOC_TYPE_INDENT:\n cmds.push({\n ind: makeIndent(ind, options),\n mode,\n doc: doc2.contents\n });\n break;\n case DOC_TYPE_ALIGN:\n cmds.push({\n ind: makeAlign(ind, doc2.n, options),\n mode,\n doc: doc2.contents\n });\n break;\n case DOC_TYPE_TRIM:\n pos -= trim2(out);\n break;\n case DOC_TYPE_GROUP:\n switch (mode) {\n case MODE_FLAT:\n if (!shouldRemeasure) {\n cmds.push({\n ind,\n mode: doc2.break ? MODE_BREAK : MODE_FLAT,\n doc: doc2.contents\n });\n break;\n }\n case MODE_BREAK: {\n shouldRemeasure = false;\n const next = {\n ind,\n mode: MODE_FLAT,\n doc: doc2.contents\n };\n const rem = width - pos;\n const hasLineSuffix = lineSuffix2.length > 0;\n if (!doc2.break && fits(next, cmds, rem, hasLineSuffix, groupModeMap)) {\n cmds.push(next);\n } else {\n if (doc2.expandedStates) {\n const mostExpanded = at_default(\n /* isOptionalObject*/\n false,\n doc2.expandedStates,\n -1\n );\n if (doc2.break) {\n cmds.push({\n ind,\n mode: MODE_BREAK,\n doc: mostExpanded\n });\n break;\n } else {\n for (let i = 1; i < doc2.expandedStates.length + 1; i++) {\n if (i >= doc2.expandedStates.length) {\n cmds.push({\n ind,\n mode: MODE_BREAK,\n doc: mostExpanded\n });\n break;\n } else {\n const state = doc2.expandedStates[i];\n const cmd = {\n ind,\n mode: MODE_FLAT,\n doc: state\n };\n if (fits(cmd, cmds, rem, hasLineSuffix, groupModeMap)) {\n cmds.push(cmd);\n break;\n }\n }\n }\n }\n } else {\n cmds.push({\n ind,\n mode: MODE_BREAK,\n doc: doc2.contents\n });\n }\n }\n break;\n }\n }\n if (doc2.id) {\n groupModeMap[doc2.id] = at_default(\n /* isOptionalObject*/\n false,\n cmds,\n -1\n ).mode;\n }\n break;\n case DOC_TYPE_FILL: {\n const rem = width - pos;\n const {\n parts\n } = doc2;\n if (parts.length === 0) {\n break;\n }\n const [content, whitespace] = parts;\n const contentFlatCmd = {\n ind,\n mode: MODE_FLAT,\n doc: content\n };\n const contentBreakCmd = {\n ind,\n mode: MODE_BREAK,\n doc: content\n };\n const contentFits = fits(contentFlatCmd, [], rem, lineSuffix2.length > 0, groupModeMap, true);\n if (parts.length === 1) {\n if (contentFits) {\n cmds.push(contentFlatCmd);\n } else {\n cmds.push(contentBreakCmd);\n }\n break;\n }\n const whitespaceFlatCmd = {\n ind,\n mode: MODE_FLAT,\n doc: whitespace\n };\n const whitespaceBreakCmd = {\n ind,\n mode: MODE_BREAK,\n doc: whitespace\n };\n if (parts.length === 2) {\n if (contentFits) {\n cmds.push(whitespaceFlatCmd, contentFlatCmd);\n } else {\n cmds.push(whitespaceBreakCmd, contentBreakCmd);\n }\n break;\n }\n parts.splice(0, 2);\n const remainingCmd = {\n ind,\n mode,\n doc: fill(parts)\n };\n const secondContent = parts[0];\n const firstAndSecondContentFlatCmd = {\n ind,\n mode: MODE_FLAT,\n doc: [content, whitespace, secondContent]\n };\n const firstAndSecondContentFits = fits(firstAndSecondContentFlatCmd, [], rem, lineSuffix2.length > 0, groupModeMap, true);\n if (firstAndSecondContentFits) {\n cmds.push(remainingCmd, whitespaceFlatCmd, contentFlatCmd);\n } else if (contentFits) {\n cmds.push(remainingCmd, whitespaceBreakCmd, contentFlatCmd);\n } else {\n cmds.push(remainingCmd, whitespaceBreakCmd, contentBreakCmd);\n }\n break;\n }\n case DOC_TYPE_IF_BREAK:\n case DOC_TYPE_INDENT_IF_BREAK: {\n const groupMode = doc2.groupId ? groupModeMap[doc2.groupId] : mode;\n if (groupMode === MODE_BREAK) {\n const breakContents = doc2.type === DOC_TYPE_IF_BREAK ? doc2.breakContents : doc2.negate ? doc2.contents : indent(doc2.contents);\n if (breakContents) {\n cmds.push({\n ind,\n mode,\n doc: breakContents\n });\n }\n }\n if (groupMode === MODE_FLAT) {\n const flatContents = doc2.type === DOC_TYPE_IF_BREAK ? doc2.flatContents : doc2.negate ? indent(doc2.contents) : doc2.contents;\n if (flatContents) {\n cmds.push({\n ind,\n mode,\n doc: flatContents\n });\n }\n }\n break;\n }\n case DOC_TYPE_LINE_SUFFIX:\n lineSuffix2.push({\n ind,\n mode,\n doc: doc2.contents\n });\n break;\n case DOC_TYPE_LINE_SUFFIX_BOUNDARY:\n if (lineSuffix2.length > 0) {\n cmds.push({\n ind,\n mode,\n doc: hardlineWithoutBreakParent\n });\n }\n break;\n case DOC_TYPE_LINE:\n switch (mode) {\n case MODE_FLAT:\n if (!doc2.hard) {\n if (!doc2.soft) {\n out.push(\" \");\n pos += 1;\n }\n break;\n } else {\n shouldRemeasure = true;\n }\n case MODE_BREAK:\n if (lineSuffix2.length > 0) {\n cmds.push({\n ind,\n mode,\n doc: doc2\n }, ...lineSuffix2.reverse());\n lineSuffix2.length = 0;\n break;\n }\n if (doc2.literal) {\n if (ind.root) {\n out.push(newLine, ind.root.value);\n pos = ind.root.length;\n } else {\n out.push(newLine);\n pos = 0;\n }\n } else {\n pos -= trim2(out);\n out.push(newLine + ind.value);\n pos = ind.length;\n }\n break;\n }\n break;\n case DOC_TYPE_LABEL:\n cmds.push({\n ind,\n mode,\n doc: doc2.contents\n });\n break;\n case DOC_TYPE_BREAK_PARENT:\n break;\n default:\n throw new invalid_doc_error_default(doc2);\n }\n if (cmds.length === 0 && lineSuffix2.length > 0) {\n cmds.push(...lineSuffix2.reverse());\n lineSuffix2.length = 0;\n }\n }\n const cursorPlaceholderIndex = out.indexOf(CURSOR_PLACEHOLDER);\n if (cursorPlaceholderIndex !== -1) {\n const otherCursorPlaceholderIndex = out.indexOf(CURSOR_PLACEHOLDER, cursorPlaceholderIndex + 1);\n const beforeCursor = out.slice(0, cursorPlaceholderIndex).join(\"\");\n const aroundCursor = out.slice(cursorPlaceholderIndex + 1, otherCursorPlaceholderIndex).join(\"\");\n const afterCursor = out.slice(otherCursorPlaceholderIndex + 1).join(\"\");\n return {\n formatted: beforeCursor + aroundCursor + afterCursor,\n cursorNodeStart: beforeCursor.length,\n cursorNodeText: aroundCursor\n };\n }\n return {\n formatted: out.join(\"\")\n };\n}\n\n// src/document/public.js\nvar builders = {\n join,\n line,\n softline,\n hardline,\n literalline,\n group,\n conditionalGroup,\n fill,\n lineSuffix,\n lineSuffixBoundary,\n cursor,\n breakParent,\n ifBreak,\n trim,\n indent,\n indentIfBreak,\n align,\n addAlignmentToDoc,\n markAsRoot,\n dedentToRoot,\n dedent,\n hardlineWithoutBreakParent,\n literallineWithoutBreakParent,\n label,\n // TODO: Remove this in v4\n concat: (parts) => parts\n};\nvar printer = { printDocToString };\nvar utils = {\n willBreak,\n traverseDoc: traverse_doc_default,\n findInDoc,\n mapDoc,\n removeLines,\n stripTrailingHardline,\n replaceEndOfLine,\n canBreak\n};\n\n// with-default-export:src/document/public.js\nvar public_default = public_exports;\nexport {\n builders,\n public_default as default,\n printer,\n utils\n};\n","//\n// Generated by scripts/regen-nonascii-map.js\n// on node v18.16.0 with unicode 15.0.\n//\n/**\n * @internal\n *\n * Map of non-ascii characters that are valid in an identifier. Each pair of\n * numbers represents an inclusive range of code points.\n */\n//prettier-ignore\nexport const nonAsciiIdentifierMap = [\n 0xa0, 0x377,\n 0x37a, 0x37f,\n 0x384, 0x38a,\n 0x38c, 0x38c,\n 0x38e, 0x3a1,\n 0x3a3, 0x52f,\n 0x531, 0x556,\n 0x559, 0x58a,\n 0x58d, 0x58f,\n 0x591, 0x5c7,\n 0x5d0, 0x5ea,\n 0x5ef, 0x5f4,\n 0x600, 0x70d,\n 0x70f, 0x74a,\n 0x74d, 0x7b1,\n 0x7c0, 0x7fa,\n 0x7fd, 0x82d,\n 0x830, 0x83e,\n 0x840, 0x85b,\n 0x85e, 0x85e,\n 0x860, 0x86a,\n 0x870, 0x88e,\n 0x890, 0x891,\n 0x898, 0x983,\n 0x985, 0x98c,\n 0x98f, 0x990,\n 0x993, 0x9a8,\n 0x9aa, 0x9b0,\n 0x9b2, 0x9b2,\n 0x9b6, 0x9b9,\n 0x9bc, 0x9c4,\n 0x9c7, 0x9c8,\n 0x9cb, 0x9ce,\n 0x9d7, 0x9d7,\n 0x9dc, 0x9dd,\n 0x9df, 0x9e3,\n 0x9e6, 0x9fe,\n 0xa01, 0xa03,\n 0xa05, 0xa0a,\n 0xa0f, 0xa10,\n 0xa13, 0xa28,\n 0xa2a, 0xa30,\n 0xa32, 0xa33,\n 0xa35, 0xa36,\n 0xa38, 0xa39,\n 0xa3c, 0xa3c,\n 0xa3e, 0xa42,\n 0xa47, 0xa48,\n 0xa4b, 0xa4d,\n 0xa51, 0xa51,\n 0xa59, 0xa5c,\n 0xa5e, 0xa5e,\n 0xa66, 0xa76,\n 0xa81, 0xa83,\n 0xa85, 0xa8d,\n 0xa8f, 0xa91,\n 0xa93, 0xaa8,\n 0xaaa, 0xab0,\n 0xab2, 0xab3,\n 0xab5, 0xab9,\n 0xabc, 0xac5,\n 0xac7, 0xac9,\n 0xacb, 0xacd,\n 0xad0, 0xad0,\n 0xae0, 0xae3,\n 0xae6, 0xaf1,\n 0xaf9, 0xaff,\n 0xb01, 0xb03,\n 0xb05, 0xb0c,\n 0xb0f, 0xb10,\n 0xb13, 0xb28,\n 0xb2a, 0xb30,\n 0xb32, 0xb33,\n 0xb35, 0xb39,\n 0xb3c, 0xb44,\n 0xb47, 0xb48,\n 0xb4b, 0xb4d,\n 0xb55, 0xb57,\n 0xb5c, 0xb5d,\n 0xb5f, 0xb63,\n 0xb66, 0xb77,\n 0xb82, 0xb83,\n 0xb85, 0xb8a,\n 0xb8e, 0xb90,\n 0xb92, 0xb95,\n 0xb99, 0xb9a,\n 0xb9c, 0xb9c,\n 0xb9e, 0xb9f,\n 0xba3, 0xba4,\n 0xba8, 0xbaa,\n 0xbae, 0xbb9,\n 0xbbe, 0xbc2,\n 0xbc6, 0xbc8,\n 0xbca, 0xbcd,\n 0xbd0, 0xbd0,\n 0xbd7, 0xbd7,\n 0xbe6, 0xbfa,\n 0xc00, 0xc0c,\n 0xc0e, 0xc10,\n 0xc12, 0xc28,\n 0xc2a, 0xc39,\n 0xc3c, 0xc44,\n 0xc46, 0xc48,\n 0xc4a, 0xc4d,\n 0xc55, 0xc56,\n 0xc58, 0xc5a,\n 0xc5d, 0xc5d,\n 0xc60, 0xc63,\n 0xc66, 0xc6f,\n 0xc77, 0xc8c,\n 0xc8e, 0xc90,\n 0xc92, 0xca8,\n 0xcaa, 0xcb3,\n 0xcb5, 0xcb9,\n 0xcbc, 0xcc4,\n 0xcc6, 0xcc8,\n 0xcca, 0xccd,\n 0xcd5, 0xcd6,\n 0xcdd, 0xcde,\n 0xce0, 0xce3,\n 0xce6, 0xcef,\n 0xcf1, 0xcf3,\n 0xd00, 0xd0c,\n 0xd0e, 0xd10,\n 0xd12, 0xd44,\n 0xd46, 0xd48,\n 0xd4a, 0xd4f,\n 0xd54, 0xd63,\n 0xd66, 0xd7f,\n 0xd81, 0xd83,\n 0xd85, 0xd96,\n 0xd9a, 0xdb1,\n 0xdb3, 0xdbb,\n 0xdbd, 0xdbd,\n 0xdc0, 0xdc6,\n 0xdca, 0xdca,\n 0xdcf, 0xdd4,\n 0xdd6, 0xdd6,\n 0xdd8, 0xddf,\n 0xde6, 0xdef,\n 0xdf2, 0xdf4,\n 0xe01, 0xe3a,\n 0xe3f, 0xe5b,\n 0xe81, 0xe82,\n 0xe84, 0xe84,\n 0xe86, 0xe8a,\n 0xe8c, 0xea3,\n 0xea5, 0xea5,\n 0xea7, 0xebd,\n 0xec0, 0xec4,\n 0xec6, 0xec6,\n 0xec8, 0xece,\n 0xed0, 0xed9,\n 0xedc, 0xedf,\n 0xf00, 0xf47,\n 0xf49, 0xf6c,\n 0xf71, 0xf97,\n 0xf99, 0xfbc,\n 0xfbe, 0xfcc,\n 0xfce, 0xfda,\n 0x1000, 0x10c5,\n 0x10c7, 0x10c7,\n 0x10cd, 0x10cd,\n 0x10d0, 0x1248,\n 0x124a, 0x124d,\n 0x1250, 0x1256,\n 0x1258, 0x1258,\n 0x125a, 0x125d,\n 0x1260, 0x1288,\n 0x128a, 0x128d,\n 0x1290, 0x12b0,\n 0x12b2, 0x12b5,\n 0x12b8, 0x12be,\n 0x12c0, 0x12c0,\n 0x12c2, 0x12c5,\n 0x12c8, 0x12d6,\n 0x12d8, 0x1310,\n 0x1312, 0x1315,\n 0x1318, 0x135a,\n 0x135d, 0x137c,\n 0x1380, 0x1399,\n 0x13a0, 0x13f5,\n 0x13f8, 0x13fd,\n 0x1400, 0x169c,\n 0x16a0, 0x16f8,\n 0x1700, 0x1715,\n 0x171f, 0x1736,\n 0x1740, 0x1753,\n 0x1760, 0x176c,\n 0x176e, 0x1770,\n 0x1772, 0x1773,\n 0x1780, 0x17dd,\n 0x17e0, 0x17e9,\n 0x17f0, 0x17f9,\n 0x1800, 0x1819,\n 0x1820, 0x1878,\n 0x1880, 0x18aa,\n 0x18b0, 0x18f5,\n 0x1900, 0x191e,\n 0x1920, 0x192b,\n 0x1930, 0x193b,\n 0x1940, 0x1940,\n 0x1944, 0x196d,\n 0x1970, 0x1974,\n 0x1980, 0x19ab,\n 0x19b0, 0x19c9,\n 0x19d0, 0x19da,\n 0x19de, 0x1a1b,\n 0x1a1e, 0x1a5e,\n 0x1a60, 0x1a7c,\n 0x1a7f, 0x1a89,\n 0x1a90, 0x1a99,\n 0x1aa0, 0x1aad,\n 0x1ab0, 0x1ace,\n 0x1b00, 0x1b4c,\n 0x1b50, 0x1b7e,\n 0x1b80, 0x1bf3,\n 0x1bfc, 0x1c37,\n 0x1c3b, 0x1c49,\n 0x1c4d, 0x1c88,\n 0x1c90, 0x1cba,\n 0x1cbd, 0x1cc7,\n 0x1cd0, 0x1cfa,\n 0x1d00, 0x1f15,\n 0x1f18, 0x1f1d,\n 0x1f20, 0x1f45,\n 0x1f48, 0x1f4d,\n 0x1f50, 0x1f57,\n 0x1f59, 0x1f59,\n 0x1f5b, 0x1f5b,\n 0x1f5d, 0x1f5d,\n 0x1f5f, 0x1f7d,\n 0x1f80, 0x1fb4,\n 0x1fb6, 0x1fc4,\n 0x1fc6, 0x1fd3,\n 0x1fd6, 0x1fdb,\n 0x1fdd, 0x1fef,\n 0x1ff2, 0x1ff4,\n 0x1ff6, 0x1ffe,\n 0x2000, 0x200d,\n 0x2010, 0x2027,\n 0x202a, 0x2064,\n 0x2066, 0x2071,\n 0x2074, 0x208e,\n 0x2090, 0x209c,\n 0x20a0, 0x20c0,\n 0x20d0, 0x20f0,\n 0x2100, 0x218b,\n 0x2190, 0x2426,\n 0x2440, 0x244a,\n 0x2460, 0x2b73,\n 0x2b76, 0x2b95,\n 0x2b97, 0x2cf3,\n 0x2cf9, 0x2d25,\n 0x2d27, 0x2d27,\n 0x2d2d, 0x2d2d,\n 0x2d30, 0x2d67,\n 0x2d6f, 0x2d70,\n 0x2d7f, 0x2d96,\n 0x2da0, 0x2da6,\n 0x2da8, 0x2dae,\n 0x2db0, 0x2db6,\n 0x2db8, 0x2dbe,\n 0x2dc0, 0x2dc6,\n 0x2dc8, 0x2dce,\n 0x2dd0, 0x2dd6,\n 0x2dd8, 0x2dde,\n 0x2de0, 0x2e5d,\n 0x2e80, 0x2e99,\n 0x2e9b, 0x2ef3,\n 0x2f00, 0x2fd5,\n 0x2ff0, 0x2ffb,\n 0x3000, 0x303f,\n 0x3041, 0x3096,\n 0x3099, 0x30ff,\n 0x3105, 0x312f,\n 0x3131, 0x318e,\n 0x3190, 0x31e3,\n 0x31f0, 0x321e,\n 0x3220, 0xa48c,\n 0xa490, 0xa4c6,\n 0xa4d0, 0xa62b,\n 0xa640, 0xa6f7,\n 0xa700, 0xa7ca,\n 0xa7d0, 0xa7d1,\n 0xa7d3, 0xa7d3,\n 0xa7d5, 0xa7d9,\n 0xa7f2, 0xa82c,\n 0xa830, 0xa839,\n 0xa840, 0xa877,\n 0xa880, 0xa8c5,\n 0xa8ce, 0xa8d9,\n 0xa8e0, 0xa953,\n 0xa95f, 0xa97c,\n 0xa980, 0xa9cd,\n 0xa9cf, 0xa9d9,\n 0xa9de, 0xa9fe,\n 0xaa00, 0xaa36,\n 0xaa40, 0xaa4d,\n 0xaa50, 0xaa59,\n 0xaa5c, 0xaac2,\n 0xaadb, 0xaaf6,\n 0xab01, 0xab06,\n 0xab09, 0xab0e,\n 0xab11, 0xab16,\n 0xab20, 0xab26,\n 0xab28, 0xab2e,\n 0xab30, 0xab6b,\n 0xab70, 0xabed,\n 0xabf0, 0xabf9,\n 0xac00, 0xd7a3,\n 0xd7b0, 0xd7c6,\n 0xd7cb, 0xd7fb,\n 0xf900, 0xfa6d,\n 0xfa70, 0xfad9,\n 0xfb00, 0xfb06,\n 0xfb13, 0xfb17,\n 0xfb1d, 0xfb36,\n 0xfb38, 0xfb3c,\n 0xfb3e, 0xfb3e,\n 0xfb40, 0xfb41,\n 0xfb43, 0xfb44,\n 0xfb46, 0xfbc2,\n 0xfbd3, 0xfd8f,\n 0xfd92, 0xfdc7,\n 0xfdcf, 0xfdcf,\n 0xfdf0, 0xfe19,\n 0xfe20, 0xfe52,\n 0xfe54, 0xfe66,\n 0xfe68, 0xfe6b,\n 0xfe70, 0xfe74,\n 0xfe76, 0xfefc,\n 0xfeff, 0xfeff,\n 0xff01, 0xffbe,\n 0xffc2, 0xffc7,\n 0xffca, 0xffcf,\n 0xffd2, 0xffd7,\n 0xffda, 0xffdc,\n 0xffe0, 0xffe6,\n 0xffe8, 0xffee,\n 0xfff9, 0xfffc,\n 0x10000, 0x1000b,\n 0x1000d, 0x10026,\n 0x10028, 0x1003a,\n 0x1003c, 0x1003d,\n 0x1003f, 0x1004d,\n 0x10050, 0x1005d,\n 0x10080, 0x100fa,\n 0x10100, 0x10102,\n 0x10107, 0x10133,\n 0x10137, 0x1018e,\n 0x10190, 0x1019c,\n 0x101a0, 0x101a0,\n 0x101d0, 0x101fd,\n 0x10280, 0x1029c,\n 0x102a0, 0x102d0,\n 0x102e0, 0x102fb,\n 0x10300, 0x10323,\n 0x1032d, 0x1034a,\n 0x10350, 0x1037a,\n 0x10380, 0x1039d,\n 0x1039f, 0x103c3,\n 0x103c8, 0x103d5,\n 0x10400, 0x1049d,\n 0x104a0, 0x104a9,\n 0x104b0, 0x104d3,\n 0x104d8, 0x104fb,\n 0x10500, 0x10527,\n 0x10530, 0x10563,\n 0x1056f, 0x1057a,\n 0x1057c, 0x1058a,\n 0x1058c, 0x10592,\n 0x10594, 0x10595,\n 0x10597, 0x105a1,\n 0x105a3, 0x105b1,\n 0x105b3, 0x105b9,\n 0x105bb, 0x105bc,\n 0x10600, 0x10736,\n 0x10740, 0x10755,\n 0x10760, 0x10767,\n 0x10780, 0x10785,\n 0x10787, 0x107b0,\n 0x107b2, 0x107ba,\n 0x10800, 0x10805,\n 0x10808, 0x10808,\n 0x1080a, 0x10835,\n 0x10837, 0x10838,\n 0x1083c, 0x1083c,\n 0x1083f, 0x10855,\n 0x10857, 0x1089e,\n 0x108a7, 0x108af,\n 0x108e0, 0x108f2,\n 0x108f4, 0x108f5,\n 0x108fb, 0x1091b,\n 0x1091f, 0x10939,\n 0x1093f, 0x1093f,\n 0x10980, 0x109b7,\n 0x109bc, 0x109cf,\n 0x109d2, 0x10a03,\n 0x10a05, 0x10a06,\n 0x10a0c, 0x10a13,\n 0x10a15, 0x10a17,\n 0x10a19, 0x10a35,\n 0x10a38, 0x10a3a,\n 0x10a3f, 0x10a48,\n 0x10a50, 0x10a58,\n 0x10a60, 0x10a9f,\n 0x10ac0, 0x10ae6,\n 0x10aeb, 0x10af6,\n 0x10b00, 0x10b35,\n 0x10b39, 0x10b55,\n 0x10b58, 0x10b72,\n 0x10b78, 0x10b91,\n 0x10b99, 0x10b9c,\n 0x10ba9, 0x10baf,\n 0x10c00, 0x10c48,\n 0x10c80, 0x10cb2,\n 0x10cc0, 0x10cf2,\n 0x10cfa, 0x10d27,\n 0x10d30, 0x10d39,\n 0x10e60, 0x10e7e,\n 0x10e80, 0x10ea9,\n 0x10eab, 0x10ead,\n 0x10eb0, 0x10eb1,\n 0x10efd, 0x10f27,\n 0x10f30, 0x10f59,\n 0x10f70, 0x10f89,\n 0x10fb0, 0x10fcb,\n 0x10fe0, 0x10ff6,\n 0x11000, 0x1104d,\n 0x11052, 0x11075,\n 0x1107f, 0x110c2,\n 0x110cd, 0x110cd,\n 0x110d0, 0x110e8,\n 0x110f0, 0x110f9,\n 0x11100, 0x11134,\n 0x11136, 0x11147,\n 0x11150, 0x11176,\n 0x11180, 0x111df,\n 0x111e1, 0x111f4,\n 0x11200, 0x11211,\n 0x11213, 0x11241,\n 0x11280, 0x11286,\n 0x11288, 0x11288,\n 0x1128a, 0x1128d,\n 0x1128f, 0x1129d,\n 0x1129f, 0x112a9,\n 0x112b0, 0x112ea,\n 0x112f0, 0x112f9,\n 0x11300, 0x11303,\n 0x11305, 0x1130c,\n 0x1130f, 0x11310,\n 0x11313, 0x11328,\n 0x1132a, 0x11330,\n 0x11332, 0x11333,\n 0x11335, 0x11339,\n 0x1133b, 0x11344,\n 0x11347, 0x11348,\n 0x1134b, 0x1134d,\n 0x11350, 0x11350,\n 0x11357, 0x11357,\n 0x1135d, 0x11363,\n 0x11366, 0x1136c,\n 0x11370, 0x11374,\n 0x11400, 0x1145b,\n 0x1145d, 0x11461,\n 0x11480, 0x114c7,\n 0x114d0, 0x114d9,\n 0x11580, 0x115b5,\n 0x115b8, 0x115dd,\n 0x11600, 0x11644,\n 0x11650, 0x11659,\n 0x11660, 0x1166c,\n 0x11680, 0x116b9,\n 0x116c0, 0x116c9,\n 0x11700, 0x1171a,\n 0x1171d, 0x1172b,\n 0x11730, 0x11746,\n 0x11800, 0x1183b,\n 0x118a0, 0x118f2,\n 0x118ff, 0x11906,\n 0x11909, 0x11909,\n 0x1190c, 0x11913,\n 0x11915, 0x11916,\n 0x11918, 0x11935,\n 0x11937, 0x11938,\n 0x1193b, 0x11946,\n 0x11950, 0x11959,\n 0x119a0, 0x119a7,\n 0x119aa, 0x119d7,\n 0x119da, 0x119e4,\n 0x11a00, 0x11a47,\n 0x11a50, 0x11aa2,\n 0x11ab0, 0x11af8,\n 0x11b00, 0x11b09,\n 0x11c00, 0x11c08,\n 0x11c0a, 0x11c36,\n 0x11c38, 0x11c45,\n 0x11c50, 0x11c6c,\n 0x11c70, 0x11c8f,\n 0x11c92, 0x11ca7,\n 0x11ca9, 0x11cb6,\n 0x11d00, 0x11d06,\n 0x11d08, 0x11d09,\n 0x11d0b, 0x11d36,\n 0x11d3a, 0x11d3a,\n 0x11d3c, 0x11d3d,\n 0x11d3f, 0x11d47,\n 0x11d50, 0x11d59,\n 0x11d60, 0x11d65,\n 0x11d67, 0x11d68,\n 0x11d6a, 0x11d8e,\n 0x11d90, 0x11d91,\n 0x11d93, 0x11d98,\n 0x11da0, 0x11da9,\n 0x11ee0, 0x11ef8,\n 0x11f00, 0x11f10,\n 0x11f12, 0x11f3a,\n 0x11f3e, 0x11f59,\n 0x11fb0, 0x11fb0,\n 0x11fc0, 0x11ff1,\n 0x11fff, 0x12399,\n 0x12400, 0x1246e,\n 0x12470, 0x12474,\n 0x12480, 0x12543,\n 0x12f90, 0x12ff2,\n 0x13000, 0x13455,\n 0x14400, 0x14646,\n 0x16800, 0x16a38,\n 0x16a40, 0x16a5e,\n 0x16a60, 0x16a69,\n 0x16a6e, 0x16abe,\n 0x16ac0, 0x16ac9,\n 0x16ad0, 0x16aed,\n 0x16af0, 0x16af5,\n 0x16b00, 0x16b45,\n 0x16b50, 0x16b59,\n 0x16b5b, 0x16b61,\n 0x16b63, 0x16b77,\n 0x16b7d, 0x16b8f,\n 0x16e40, 0x16e9a,\n 0x16f00, 0x16f4a,\n 0x16f4f, 0x16f87,\n 0x16f8f, 0x16f9f,\n 0x16fe0, 0x16fe4,\n 0x16ff0, 0x16ff1,\n 0x17000, 0x187f7,\n 0x18800, 0x18cd5,\n 0x18d00, 0x18d08,\n 0x1aff0, 0x1aff3,\n 0x1aff5, 0x1affb,\n 0x1affd, 0x1affe,\n 0x1b000, 0x1b122,\n 0x1b132, 0x1b132,\n 0x1b150, 0x1b152,\n 0x1b155, 0x1b155,\n 0x1b164, 0x1b167,\n 0x1b170, 0x1b2fb,\n 0x1bc00, 0x1bc6a,\n 0x1bc70, 0x1bc7c,\n 0x1bc80, 0x1bc88,\n 0x1bc90, 0x1bc99,\n 0x1bc9c, 0x1bca3,\n 0x1cf00, 0x1cf2d,\n 0x1cf30, 0x1cf46,\n 0x1cf50, 0x1cfc3,\n 0x1d000, 0x1d0f5,\n 0x1d100, 0x1d126,\n 0x1d129, 0x1d1ea,\n 0x1d200, 0x1d245,\n 0x1d2c0, 0x1d2d3,\n 0x1d2e0, 0x1d2f3,\n 0x1d300, 0x1d356,\n 0x1d360, 0x1d378,\n 0x1d400, 0x1d454,\n 0x1d456, 0x1d49c,\n 0x1d49e, 0x1d49f,\n 0x1d4a2, 0x1d4a2,\n 0x1d4a5, 0x1d4a6,\n 0x1d4a9, 0x1d4ac,\n 0x1d4ae, 0x1d4b9,\n 0x1d4bb, 0x1d4bb,\n 0x1d4bd, 0x1d4c3,\n 0x1d4c5, 0x1d505,\n 0x1d507, 0x1d50a,\n 0x1d50d, 0x1d514,\n 0x1d516, 0x1d51c,\n 0x1d51e, 0x1d539,\n 0x1d53b, 0x1d53e,\n 0x1d540, 0x1d544,\n 0x1d546, 0x1d546,\n 0x1d54a, 0x1d550,\n 0x1d552, 0x1d6a5,\n 0x1d6a8, 0x1d7cb,\n 0x1d7ce, 0x1da8b,\n 0x1da9b, 0x1da9f,\n 0x1daa1, 0x1daaf,\n 0x1df00, 0x1df1e,\n 0x1df25, 0x1df2a,\n 0x1e000, 0x1e006,\n 0x1e008, 0x1e018,\n 0x1e01b, 0x1e021,\n 0x1e023, 0x1e024,\n 0x1e026, 0x1e02a,\n 0x1e030, 0x1e06d,\n 0x1e08f, 0x1e08f,\n 0x1e100, 0x1e12c,\n 0x1e130, 0x1e13d,\n 0x1e140, 0x1e149,\n 0x1e14e, 0x1e14f,\n 0x1e290, 0x1e2ae,\n 0x1e2c0, 0x1e2f9,\n 0x1e2ff, 0x1e2ff,\n 0x1e4d0, 0x1e4f9,\n 0x1e7e0, 0x1e7e6,\n 0x1e7e8, 0x1e7eb,\n 0x1e7ed, 0x1e7ee,\n 0x1e7f0, 0x1e7fe,\n 0x1e800, 0x1e8c4,\n 0x1e8c7, 0x1e8d6,\n 0x1e900, 0x1e94b,\n 0x1e950, 0x1e959,\n 0x1e95e, 0x1e95f,\n 0x1ec71, 0x1ecb4,\n 0x1ed01, 0x1ed3d,\n 0x1ee00, 0x1ee03,\n 0x1ee05, 0x1ee1f,\n 0x1ee21, 0x1ee22,\n 0x1ee24, 0x1ee24,\n 0x1ee27, 0x1ee27,\n 0x1ee29, 0x1ee32,\n 0x1ee34, 0x1ee37,\n 0x1ee39, 0x1ee39,\n 0x1ee3b, 0x1ee3b,\n 0x1ee42, 0x1ee42,\n 0x1ee47, 0x1ee47,\n 0x1ee49, 0x1ee49,\n 0x1ee4b, 0x1ee4b,\n 0x1ee4d, 0x1ee4f,\n 0x1ee51, 0x1ee52,\n 0x1ee54, 0x1ee54,\n 0x1ee57, 0x1ee57,\n 0x1ee59, 0x1ee59,\n 0x1ee5b, 0x1ee5b,\n 0x1ee5d, 0x1ee5d,\n 0x1ee5f, 0x1ee5f,\n 0x1ee61, 0x1ee62,\n 0x1ee64, 0x1ee64,\n 0x1ee67, 0x1ee6a,\n 0x1ee6c, 0x1ee72,\n 0x1ee74, 0x1ee77,\n 0x1ee79, 0x1ee7c,\n 0x1ee7e, 0x1ee7e,\n 0x1ee80, 0x1ee89,\n 0x1ee8b, 0x1ee9b,\n 0x1eea1, 0x1eea3,\n 0x1eea5, 0x1eea9,\n 0x1eeab, 0x1eebb,\n 0x1eef0, 0x1eef1,\n 0x1f000, 0x1f02b,\n 0x1f030, 0x1f093,\n 0x1f0a0, 0x1f0ae,\n 0x1f0b1, 0x1f0bf,\n 0x1f0c1, 0x1f0cf,\n 0x1f0d1, 0x1f0f5,\n 0x1f100, 0x1f1ad,\n 0x1f1e6, 0x1f202,\n 0x1f210, 0x1f23b,\n 0x1f240, 0x1f248,\n 0x1f250, 0x1f251,\n 0x1f260, 0x1f265,\n 0x1f300, 0x1f6d7,\n 0x1f6dc, 0x1f6ec,\n 0x1f6f0, 0x1f6fc,\n 0x1f700, 0x1f776,\n 0x1f77b, 0x1f7d9,\n 0x1f7e0, 0x1f7eb,\n 0x1f7f0, 0x1f7f0,\n 0x1f800, 0x1f80b,\n 0x1f810, 0x1f847,\n 0x1f850, 0x1f859,\n 0x1f860, 0x1f887,\n 0x1f890, 0x1f8ad,\n 0x1f8b0, 0x1f8b1,\n 0x1f900, 0x1fa53,\n 0x1fa60, 0x1fa6d,\n 0x1fa70, 0x1fa7c,\n 0x1fa80, 0x1fa88,\n 0x1fa90, 0x1fabd,\n 0x1fabf, 0x1fac5,\n 0x1face, 0x1fadb,\n 0x1fae0, 0x1fae8,\n 0x1faf0, 0x1faf8,\n 0x1fb00, 0x1fb92,\n 0x1fb94, 0x1fbca,\n 0x1fbf0, 0x1fbf9,\n 0x20000, 0x2a6df,\n 0x2a700, 0x2b739,\n 0x2b740, 0x2b81d,\n 0x2b820, 0x2cea1,\n 0x2ceb0, 0x2ebe0,\n 0x2f800, 0x2fa1d,\n 0x30000, 0x3134a,\n 0x31350, 0x323af,\n 0xe0001, 0xe0001,\n 0xe0020, 0xe007f,\n 0xe0100, 0xe01ef,\n];\n//# sourceMappingURL=nonascii.js.map","import { nonAsciiIdentifierMap } from \"./nonascii.js\";\nexport function utf16CodeUnits(codePoint) {\n return codePoint >= 0x10000 ? 2 : 1;\n}\nexport function isHighSurrogate(ch) {\n return ch >= 0xd800 && ch <= 0xdbff;\n}\nexport function isLowSurrogate(ch) {\n return ch >= 0xdc00 && ch <= 0xdfff;\n}\nexport function isLineBreak(ch) {\n return ch === 10 /* CharCode.LineFeed */ || ch === 13 /* CharCode.CarriageReturn */;\n}\nexport function isAsciiWhiteSpaceSingleLine(ch) {\n return (ch === 32 /* CharCode.Space */ ||\n ch === 9 /* CharCode.Tab */ ||\n ch === 11 /* CharCode.VerticalTab */ ||\n ch === 12 /* CharCode.FormFeed */);\n}\nexport function isNonAsciiWhiteSpaceSingleLine(ch) {\n return (ch === 133 /* CharCode.NextLine */ || // not considered a line break\n ch === 8206 /* CharCode.LeftToRightMark */ ||\n ch === 8207 /* CharCode.RightToLeftMark */ ||\n ch === 8232 /* CharCode.LineSeparator */ ||\n ch === 8233 /* CharCode.ParagraphSeparator */);\n}\nexport function isWhiteSpace(ch) {\n return isWhiteSpaceSingleLine(ch) || isLineBreak(ch);\n}\nexport function isWhiteSpaceSingleLine(ch) {\n return (isAsciiWhiteSpaceSingleLine(ch) ||\n (ch > 127 /* CharCode.MaxAscii */ && isNonAsciiWhiteSpaceSingleLine(ch)));\n}\nexport function trim(str) {\n let start = 0;\n let end = str.length - 1;\n if (!isWhiteSpace(str.charCodeAt(start)) && !isWhiteSpace(str.charCodeAt(end))) {\n return str;\n }\n while (isWhiteSpace(str.charCodeAt(start))) {\n start++;\n }\n while (isWhiteSpace(str.charCodeAt(end))) {\n end--;\n }\n return str.substring(start, end + 1);\n}\nexport function isDigit(ch) {\n return ch >= 48 /* CharCode._0 */ && ch <= 57 /* CharCode._9 */;\n}\nexport function isHexDigit(ch) {\n return (isDigit(ch) || (ch >= 65 /* CharCode.A */ && ch <= 70 /* CharCode.F */) || (ch >= 97 /* CharCode.a */ && ch <= 102 /* CharCode.f */));\n}\nexport function isBinaryDigit(ch) {\n return ch === 48 /* CharCode._0 */ || ch === 49 /* CharCode._1 */;\n}\nexport function isLowercaseAsciiLetter(ch) {\n return ch >= 97 /* CharCode.a */ && ch <= 122 /* CharCode.z */;\n}\nexport function isAsciiIdentifierStart(ch) {\n return ((ch >= 65 /* CharCode.A */ && ch <= 90 /* CharCode.Z */) ||\n (ch >= 97 /* CharCode.a */ && ch <= 122 /* CharCode.z */) ||\n ch === 36 /* CharCode.$ */ ||\n ch === 95 /* CharCode._ */);\n}\nexport function isAsciiIdentifierContinue(ch) {\n return ((ch >= 65 /* CharCode.A */ && ch <= 90 /* CharCode.Z */) ||\n (ch >= 97 /* CharCode.a */ && ch <= 122 /* CharCode.z */) ||\n (ch >= 48 /* CharCode._0 */ && ch <= 57 /* CharCode._9 */) ||\n ch === 36 /* CharCode.$ */ ||\n ch === 95 /* CharCode._ */);\n}\nexport function isIdentifierStart(codePoint) {\n return (isAsciiIdentifierStart(codePoint) ||\n (codePoint > 127 /* CharCode.MaxAscii */ && isNonAsciiIdentifierCharacter(codePoint)));\n}\nexport function isIdentifierContinue(codePoint) {\n return (isAsciiIdentifierContinue(codePoint) ||\n (codePoint > 127 /* CharCode.MaxAscii */ && isNonAsciiIdentifierCharacter(codePoint)));\n}\nexport function isNonAsciiIdentifierCharacter(codePoint) {\n return lookupInNonAsciiMap(codePoint, nonAsciiIdentifierMap);\n}\nexport function codePointBefore(text, pos) {\n if (pos <= 0 || pos >= text.length) {\n return undefined;\n }\n const ch = text.charCodeAt(pos - 1);\n if (!isLowSurrogate(ch) || !isHighSurrogate(text.charCodeAt(pos - 2))) {\n return ch;\n }\n return text.codePointAt(pos - 2);\n}\nfunction lookupInNonAsciiMap(codePoint, map) {\n // Perform binary search in one of the Unicode range maps\n let lo = 0;\n let hi = map.length;\n let mid;\n while (lo + 1 < hi) {\n mid = lo + (hi - lo) / 2;\n // mid has to be even to catch a range's beginning\n mid -= mid % 2;\n if (map[mid] <= codePoint && codePoint <= map[mid + 1]) {\n return true;\n }\n if (codePoint < map[mid]) {\n hi = mid;\n }\n else {\n lo = mid + 2;\n }\n }\n return false;\n}\n//# sourceMappingURL=charcode.js.map","import { isAsciiIdentifierContinue, isAsciiIdentifierStart, isBinaryDigit, isDigit, isHexDigit, isIdentifierContinue, isIdentifierStart, isLineBreak, isLowercaseAsciiLetter, isNonAsciiIdentifierCharacter, isNonAsciiWhiteSpaceSingleLine, isWhiteSpace, isWhiteSpaceSingleLine, utf16CodeUnits, } from \"./charcode.js\";\nimport { compilerAssert, createSourceFile } from \"./diagnostics.js\";\nimport { createDiagnostic } from \"./messages.js\";\n// All conflict markers consist of the same character repeated seven times. If it is\n// a <<<<<<< or >>>>>>> marker then it is also followed by a space.\nconst mergeConflictMarkerLength = 7;\nexport var Token;\n(function (Token) {\n Token[Token[\"None\"] = 0] = \"None\";\n Token[Token[\"Invalid\"] = 1] = \"Invalid\";\n Token[Token[\"EndOfFile\"] = 2] = \"EndOfFile\";\n Token[Token[\"Identifier\"] = 3] = \"Identifier\";\n Token[Token[\"NumericLiteral\"] = 4] = \"NumericLiteral\";\n Token[Token[\"StringLiteral\"] = 5] = \"StringLiteral\";\n // Add new tokens above if they don't fit any of the categories below\n ///////////////////////////////////////////////////////////////\n // Trivia\n /**@internal */ Token[Token[\"__StartTrivia\"] = 6] = \"__StartTrivia\";\n Token[Token[\"SingleLineComment\"] = 6] = \"SingleLineComment\";\n Token[Token[\"MultiLineComment\"] = 7] = \"MultiLineComment\";\n Token[Token[\"NewLine\"] = 8] = \"NewLine\";\n Token[Token[\"Whitespace\"] = 9] = \"Whitespace\";\n Token[Token[\"ConflictMarker\"] = 10] = \"ConflictMarker\";\n // Add new trivia above\n /** @internal */ Token[Token[\"__EndTrivia\"] = 11] = \"__EndTrivia\";\n ///////////////////////////////////////////////////////////////\n ///////////////////////////////////////////////////////////////\n // Doc comment content\n /** @internal */ Token[Token[\"__StartDocComment\"] = 11] = \"__StartDocComment\";\n Token[Token[\"DocText\"] = 11] = \"DocText\";\n Token[Token[\"DocCodeSpan\"] = 12] = \"DocCodeSpan\";\n Token[Token[\"DocCodeFenceDelimiter\"] = 13] = \"DocCodeFenceDelimiter\";\n /** @internal */ Token[Token[\"__EndDocComment\"] = 14] = \"__EndDocComment\";\n ///////////////////////////////////////////////////////////////\n ///////////////////////////////////////////////////////////////\n // Punctuation\n /** @internal */ Token[Token[\"__StartPunctuation\"] = 14] = \"__StartPunctuation\";\n Token[Token[\"OpenBrace\"] = 14] = \"OpenBrace\";\n Token[Token[\"CloseBrace\"] = 15] = \"CloseBrace\";\n Token[Token[\"OpenParen\"] = 16] = \"OpenParen\";\n Token[Token[\"CloseParen\"] = 17] = \"CloseParen\";\n Token[Token[\"OpenBracket\"] = 18] = \"OpenBracket\";\n Token[Token[\"CloseBracket\"] = 19] = \"CloseBracket\";\n Token[Token[\"Dot\"] = 20] = \"Dot\";\n Token[Token[\"Ellipsis\"] = 21] = \"Ellipsis\";\n Token[Token[\"Semicolon\"] = 22] = \"Semicolon\";\n Token[Token[\"Comma\"] = 23] = \"Comma\";\n Token[Token[\"LessThan\"] = 24] = \"LessThan\";\n Token[Token[\"GreaterThan\"] = 25] = \"GreaterThan\";\n Token[Token[\"Equals\"] = 26] = \"Equals\";\n Token[Token[\"Ampersand\"] = 27] = \"Ampersand\";\n Token[Token[\"Bar\"] = 28] = \"Bar\";\n Token[Token[\"Question\"] = 29] = \"Question\";\n Token[Token[\"Colon\"] = 30] = \"Colon\";\n Token[Token[\"ColonColon\"] = 31] = \"ColonColon\";\n Token[Token[\"At\"] = 32] = \"At\";\n Token[Token[\"AtAt\"] = 33] = \"AtAt\";\n Token[Token[\"Hash\"] = 34] = \"Hash\";\n Token[Token[\"Star\"] = 35] = \"Star\";\n Token[Token[\"ForwardSlash\"] = 36] = \"ForwardSlash\";\n Token[Token[\"Plus\"] = 37] = \"Plus\";\n Token[Token[\"Hyphen\"] = 38] = \"Hyphen\";\n Token[Token[\"Exclamation\"] = 39] = \"Exclamation\";\n Token[Token[\"LessThanEquals\"] = 40] = \"LessThanEquals\";\n Token[Token[\"GreaterThanEquals\"] = 41] = \"GreaterThanEquals\";\n Token[Token[\"AmpsersandAmpersand\"] = 42] = \"AmpsersandAmpersand\";\n Token[Token[\"BarBar\"] = 43] = \"BarBar\";\n Token[Token[\"EqualsEquals\"] = 44] = \"EqualsEquals\";\n Token[Token[\"ExclamationEquals\"] = 45] = \"ExclamationEquals\";\n Token[Token[\"EqualsGreaterThan\"] = 46] = \"EqualsGreaterThan\";\n // Add new punctuation above\n /** @internal */ Token[Token[\"__EndPunctuation\"] = 47] = \"__EndPunctuation\";\n ///////////////////////////////////////////////////////////////\n ///////////////////////////////////////////////////////////////\n // Statement keywords\n /** @internal */ Token[Token[\"__StartKeyword\"] = 47] = \"__StartKeyword\";\n /** @internal */ Token[Token[\"__StartStatementKeyword\"] = 47] = \"__StartStatementKeyword\";\n Token[Token[\"ImportKeyword\"] = 47] = \"ImportKeyword\";\n Token[Token[\"ModelKeyword\"] = 48] = \"ModelKeyword\";\n Token[Token[\"ScalarKeyword\"] = 49] = \"ScalarKeyword\";\n Token[Token[\"NamespaceKeyword\"] = 50] = \"NamespaceKeyword\";\n Token[Token[\"UsingKeyword\"] = 51] = \"UsingKeyword\";\n Token[Token[\"OpKeyword\"] = 52] = \"OpKeyword\";\n Token[Token[\"EnumKeyword\"] = 53] = \"EnumKeyword\";\n Token[Token[\"AliasKeyword\"] = 54] = \"AliasKeyword\";\n Token[Token[\"IsKeyword\"] = 55] = \"IsKeyword\";\n Token[Token[\"InterfaceKeyword\"] = 56] = \"InterfaceKeyword\";\n Token[Token[\"UnionKeyword\"] = 57] = \"UnionKeyword\";\n Token[Token[\"ProjectionKeyword\"] = 58] = \"ProjectionKeyword\";\n Token[Token[\"ElseKeyword\"] = 59] = \"ElseKeyword\";\n Token[Token[\"IfKeyword\"] = 60] = \"IfKeyword\";\n Token[Token[\"DecKeyword\"] = 61] = \"DecKeyword\";\n Token[Token[\"FnKeyword\"] = 62] = \"FnKeyword\";\n Token[Token[\"ValueOfKeyword\"] = 63] = \"ValueOfKeyword\";\n // Add new statement keyword above\n /** @internal */ Token[Token[\"__EndStatementKeyword\"] = 64] = \"__EndStatementKeyword\";\n ///////////////////////////////////////////////////////////////\n ///////////////////////////////////////////////////////////////\n /** @internal */ Token[Token[\"__StartModifierKeyword\"] = 64] = \"__StartModifierKeyword\";\n Token[Token[\"ExternKeyword\"] = 64] = \"ExternKeyword\";\n /** @internal */ Token[Token[\"__EndModifierKeyword\"] = 65] = \"__EndModifierKeyword\";\n ///////////////////////////////////////////////////////////////\n ///////////////////////////////////////////////////////////////\n // Other keywords\n Token[Token[\"ExtendsKeyword\"] = 65] = \"ExtendsKeyword\";\n Token[Token[\"TrueKeyword\"] = 66] = \"TrueKeyword\";\n Token[Token[\"FalseKeyword\"] = 67] = \"FalseKeyword\";\n Token[Token[\"ReturnKeyword\"] = 68] = \"ReturnKeyword\";\n Token[Token[\"VoidKeyword\"] = 69] = \"VoidKeyword\";\n Token[Token[\"NeverKeyword\"] = 70] = \"NeverKeyword\";\n Token[Token[\"UnknownKeyword\"] = 71] = \"UnknownKeyword\";\n // Add new non-statement keyword above\n /** @internal */ Token[Token[\"__EndKeyword\"] = 72] = \"__EndKeyword\";\n ///////////////////////////////////////////////////////////////\n /** @internal */ Token[Token[\"__Count\"] = 72] = \"__Count\";\n})(Token || (Token = {}));\n/** @internal */\nexport const TokenDisplay = getTokenDisplayTable([\n [Token.None, \"none\"],\n [Token.Invalid, \"invalid\"],\n [Token.EndOfFile, \"end of file\"],\n [Token.SingleLineComment, \"single-line comment\"],\n [Token.MultiLineComment, \"multi-line comment\"],\n [Token.ConflictMarker, \"conflict marker\"],\n [Token.NumericLiteral, \"numeric literal\"],\n [Token.StringLiteral, \"string literal\"],\n [Token.NewLine, \"newline\"],\n [Token.Whitespace, \"whitespace\"],\n [Token.DocCodeFenceDelimiter, \"doc code fence delimiter\"],\n [Token.DocCodeSpan, \"doc code span\"],\n [Token.DocText, \"doc text\"],\n [Token.OpenBrace, \"'{'\"],\n [Token.CloseBrace, \"'}'\"],\n [Token.OpenParen, \"'('\"],\n [Token.CloseParen, \"')'\"],\n [Token.OpenBracket, \"'['\"],\n [Token.CloseBracket, \"']'\"],\n [Token.Dot, \"'.'\"],\n [Token.Ellipsis, \"'...'\"],\n [Token.Semicolon, \"';'\"],\n [Token.Comma, \"','\"],\n [Token.LessThan, \"'<'\"],\n [Token.GreaterThan, \"'>'\"],\n [Token.Equals, \"'='\"],\n [Token.Ampersand, \"'&'\"],\n [Token.Bar, \"'|'\"],\n [Token.Question, \"'?'\"],\n [Token.Colon, \"':'\"],\n [Token.ColonColon, \"'::'\"],\n [Token.At, \"'@'\"],\n [Token.AtAt, \"'@@'\"],\n [Token.Hash, \"'#'\"],\n [Token.Star, \"'*'\"],\n [Token.ForwardSlash, \"'/'\"],\n [Token.Plus, \"'+'\"],\n [Token.Hyphen, \"'-'\"],\n [Token.Exclamation, \"'!'\"],\n [Token.LessThanEquals, \"'<='\"],\n [Token.GreaterThanEquals, \"'>='\"],\n [Token.AmpsersandAmpersand, \"'&&'\"],\n [Token.BarBar, \"'||'\"],\n [Token.EqualsEquals, \"'=='\"],\n [Token.ExclamationEquals, \"'!='\"],\n [Token.EqualsGreaterThan, \"'=>'\"],\n [Token.Identifier, \"identifier\"],\n [Token.ImportKeyword, \"'import'\"],\n [Token.ModelKeyword, \"'model'\"],\n [Token.ScalarKeyword, \"'scalar'\"],\n [Token.NamespaceKeyword, \"'namespace'\"],\n [Token.UsingKeyword, \"'using'\"],\n [Token.OpKeyword, \"'op'\"],\n [Token.EnumKeyword, \"'enum'\"],\n [Token.AliasKeyword, \"'alias'\"],\n [Token.IsKeyword, \"'is'\"],\n [Token.InterfaceKeyword, \"'interface'\"],\n [Token.UnionKeyword, \"'union'\"],\n [Token.ProjectionKeyword, \"'projection'\"],\n [Token.ElseKeyword, \"'else'\"],\n [Token.IfKeyword, \"'if'\"],\n [Token.DecKeyword, \"'dec'\"],\n [Token.FnKeyword, \"'fn'\"],\n [Token.ValueOfKeyword, \"'valueof'\"],\n [Token.ExtendsKeyword, \"'extends'\"],\n [Token.TrueKeyword, \"'true'\"],\n [Token.FalseKeyword, \"'false'\"],\n [Token.ReturnKeyword, \"'return'\"],\n [Token.VoidKeyword, \"'void'\"],\n [Token.NeverKeyword, \"'never'\"],\n [Token.UnknownKeyword, \"'unknown'\"],\n [Token.ExternKeyword, \"'extern'\"],\n]);\n/** @internal */\nexport const Keywords = new Map([\n [\"import\", Token.ImportKeyword],\n [\"model\", Token.ModelKeyword],\n [\"scalar\", Token.ScalarKeyword],\n [\"namespace\", Token.NamespaceKeyword],\n [\"interface\", Token.InterfaceKeyword],\n [\"union\", Token.UnionKeyword],\n [\"if\", Token.IfKeyword],\n [\"else\", Token.ElseKeyword],\n [\"projection\", Token.ProjectionKeyword],\n [\"using\", Token.UsingKeyword],\n [\"op\", Token.OpKeyword],\n [\"extends\", Token.ExtendsKeyword],\n [\"is\", Token.IsKeyword],\n [\"enum\", Token.EnumKeyword],\n [\"alias\", Token.AliasKeyword],\n [\"dec\", Token.DecKeyword],\n [\"fn\", Token.FnKeyword],\n [\"valueof\", Token.ValueOfKeyword],\n [\"true\", Token.TrueKeyword],\n [\"false\", Token.FalseKeyword],\n [\"return\", Token.ReturnKeyword],\n [\"void\", Token.VoidKeyword],\n [\"never\", Token.NeverKeyword],\n [\"unknown\", Token.UnknownKeyword],\n [\"extern\", Token.ExternKeyword],\n]);\nexport var TokenFlags;\n(function (TokenFlags) {\n TokenFlags[TokenFlags[\"None\"] = 0] = \"None\";\n TokenFlags[TokenFlags[\"Escaped\"] = 1] = \"Escaped\";\n TokenFlags[TokenFlags[\"TripleQuoted\"] = 2] = \"TripleQuoted\";\n TokenFlags[TokenFlags[\"Unterminated\"] = 4] = \"Unterminated\";\n TokenFlags[TokenFlags[\"NonAscii\"] = 8] = \"NonAscii\";\n TokenFlags[TokenFlags[\"DocComment\"] = 16] = \"DocComment\";\n TokenFlags[TokenFlags[\"Backticked\"] = 32] = \"Backticked\";\n})(TokenFlags || (TokenFlags = {}));\nexport function isTrivia(token) {\n return token >= Token.__StartTrivia && token < Token.__EndTrivia;\n}\nexport function isComment(token) {\n return token === Token.SingleLineComment || token === Token.MultiLineComment;\n}\nexport function isKeyword(token) {\n return token >= Token.__StartKeyword && token < Token.__EndKeyword;\n}\nexport function isPunctuation(token) {\n return token >= Token.__StartPunctuation && token < Token.__EndPunctuation;\n}\nexport function isModifier(token) {\n return token >= Token.__StartModifierKeyword && token < Token.__EndModifierKeyword;\n}\nexport function isStatementKeyword(token) {\n return token >= Token.__StartStatementKeyword && token < Token.__EndStatementKeyword;\n}\nexport function createScanner(source, diagnosticHandler) {\n const file = typeof source === \"string\" ? createSourceFile(source, \"<anonymous file>\") : source;\n const input = file.text;\n let position = 0;\n let endPosition = input.length;\n let token = Token.None;\n let tokenPosition = -1;\n let tokenFlags = TokenFlags.None;\n // Skip BOM\n if (position < endPosition && input.charCodeAt(position) === 65279 /* CharCode.ByteOrderMark */) {\n position++;\n }\n return {\n get position() {\n return position;\n },\n get token() {\n return token;\n },\n get tokenPosition() {\n return tokenPosition;\n },\n get tokenFlags() {\n return tokenFlags;\n },\n file,\n scan,\n scanRange,\n scanDoc,\n eof,\n getTokenText,\n getTokenValue,\n };\n function eof() {\n return position >= endPosition;\n }\n function getTokenText() {\n return input.substring(tokenPosition, position);\n }\n function getTokenValue() {\n switch (token) {\n case Token.StringLiteral:\n return getStringTokenValue();\n case Token.Identifier:\n return getIdentifierTokenValue();\n default:\n return getTokenText();\n }\n }\n function lookAhead(offset) {\n const p = position + offset;\n if (p >= endPosition) {\n return Number.NaN;\n }\n return input.charCodeAt(p);\n }\n function scan() {\n tokenPosition = position;\n tokenFlags = TokenFlags.None;\n if (!eof()) {\n const ch = input.charCodeAt(position);\n switch (ch) {\n case 13 /* CharCode.CarriageReturn */:\n if (lookAhead(1) === 10 /* CharCode.LineFeed */) {\n position++;\n }\n // fallthrough\n case 10 /* CharCode.LineFeed */:\n return next(Token.NewLine);\n case 32 /* CharCode.Space */:\n case 9 /* CharCode.Tab */:\n case 11 /* CharCode.VerticalTab */:\n case 12 /* CharCode.FormFeed */:\n return scanWhitespace();\n case 40 /* CharCode.OpenParen */:\n return next(Token.OpenParen);\n case 41 /* CharCode.CloseParen */:\n return next(Token.CloseParen);\n case 44 /* CharCode.Comma */:\n return next(Token.Comma);\n case 58 /* CharCode.Colon */:\n return lookAhead(1) === 58 /* CharCode.Colon */ ? next(Token.ColonColon, 2) : next(Token.Colon);\n case 59 /* CharCode.Semicolon */:\n return next(Token.Semicolon);\n case 91 /* CharCode.OpenBracket */:\n return next(Token.OpenBracket);\n case 93 /* CharCode.CloseBracket */:\n return next(Token.CloseBracket);\n case 123 /* CharCode.OpenBrace */:\n return next(Token.OpenBrace);\n case 125 /* CharCode.CloseBrace */:\n return next(Token.CloseBrace);\n case 64 /* CharCode.At */:\n return lookAhead(1) === 64 /* CharCode.At */ ? next(Token.AtAt, 2) : next(Token.At);\n case 35 /* CharCode.Hash */:\n return next(Token.Hash);\n case 43 /* CharCode.Plus */:\n return isDigit(lookAhead(1)) ? scanSignedNumber() : next(Token.Plus);\n case 45 /* CharCode.Minus */:\n return isDigit(lookAhead(1)) ? scanSignedNumber() : next(Token.Hyphen);\n case 42 /* CharCode.Asterisk */:\n return next(Token.Star);\n case 63 /* CharCode.Question */:\n return next(Token.Question);\n case 38 /* CharCode.Ampersand */:\n return lookAhead(1) === 38 /* CharCode.Ampersand */\n ? next(Token.AmpsersandAmpersand, 2)\n : next(Token.Ampersand);\n case 46 /* CharCode.Dot */:\n return lookAhead(1) === 46 /* CharCode.Dot */ && lookAhead(2) === 46 /* CharCode.Dot */\n ? next(Token.Ellipsis, 3)\n : next(Token.Dot);\n case 47 /* CharCode.Slash */:\n switch (lookAhead(1)) {\n case 47 /* CharCode.Slash */:\n return scanSingleLineComment();\n case 42 /* CharCode.Asterisk */:\n return scanMultiLineComment();\n }\n return next(Token.ForwardSlash);\n case 48 /* CharCode._0 */:\n switch (lookAhead(1)) {\n case 120 /* CharCode.x */:\n return scanHexNumber();\n case 98 /* CharCode.b */:\n return scanBinaryNumber();\n }\n // fallthrough\n case 49 /* CharCode._1 */:\n case 50 /* CharCode._2 */:\n case 51 /* CharCode._3 */:\n case 52 /* CharCode._4 */:\n case 53 /* CharCode._5 */:\n case 54 /* CharCode._6 */:\n case 55 /* CharCode._7 */:\n case 56 /* CharCode._8 */:\n case 57 /* CharCode._9 */:\n return scanNumber();\n case 60 /* CharCode.LessThan */:\n if (atConflictMarker())\n return scanConflictMarker();\n return lookAhead(1) === 61 /* CharCode.Equals */\n ? next(Token.LessThanEquals, 2)\n : next(Token.LessThan);\n case 62 /* CharCode.GreaterThan */:\n if (atConflictMarker())\n return scanConflictMarker();\n return lookAhead(1) === 61 /* CharCode.Equals */\n ? next(Token.GreaterThanEquals, 2)\n : next(Token.GreaterThan);\n case 61 /* CharCode.Equals */:\n if (atConflictMarker())\n return scanConflictMarker();\n switch (lookAhead(1)) {\n case 61 /* CharCode.Equals */:\n return next(Token.EqualsEquals, 2);\n case 62 /* CharCode.GreaterThan */:\n return next(Token.EqualsGreaterThan, 2);\n }\n return next(Token.Equals);\n case 124 /* CharCode.Bar */:\n if (atConflictMarker())\n return scanConflictMarker();\n return lookAhead(1) === 124 /* CharCode.Bar */ ? next(Token.BarBar, 2) : next(Token.Bar);\n case 34 /* CharCode.DoubleQuote */:\n return lookAhead(1) === 34 /* CharCode.DoubleQuote */ && lookAhead(2) === 34 /* CharCode.DoubleQuote */\n ? scanTripleQuotedString()\n : scanString();\n case 33 /* CharCode.Exclamation */:\n return lookAhead(1) === 61 /* CharCode.Equals */\n ? next(Token.ExclamationEquals, 2)\n : next(Token.Exclamation);\n case 96 /* CharCode.Backtick */:\n return scanBacktickedIdentifier();\n default:\n if (isLowercaseAsciiLetter(ch)) {\n return scanIdentifierOrKeyword();\n }\n if (isAsciiIdentifierStart(ch)) {\n return scanIdentifier();\n }\n if (ch <= 127 /* CharCode.MaxAscii */) {\n return scanInvalidCharacter();\n }\n return scanNonAsciiToken();\n }\n }\n return (token = Token.EndOfFile);\n }\n function scanDoc() {\n tokenPosition = position;\n tokenFlags = TokenFlags.None;\n if (!eof()) {\n const ch = input.charCodeAt(position);\n switch (ch) {\n case 13 /* CharCode.CarriageReturn */:\n if (lookAhead(1) === 10 /* CharCode.LineFeed */) {\n position++;\n }\n // fallthrough\n case 10 /* CharCode.LineFeed */:\n return next(Token.NewLine);\n case 32 /* CharCode.Space */:\n case 9 /* CharCode.Tab */:\n case 11 /* CharCode.VerticalTab */:\n case 12 /* CharCode.FormFeed */:\n return scanWhitespace();\n case 125 /* CharCode.CloseBrace */:\n return next(Token.CloseBrace);\n case 64 /* CharCode.At */:\n return next(Token.At);\n case 42 /* CharCode.Asterisk */:\n return next(Token.Star);\n case 96 /* CharCode.Backtick */:\n return lookAhead(1) === 96 /* CharCode.Backtick */ && lookAhead(2) === 96 /* CharCode.Backtick */\n ? next(Token.DocCodeFenceDelimiter, 3)\n : scanDocCodeSpan();\n case 60 /* CharCode.LessThan */:\n case 62 /* CharCode.GreaterThan */:\n case 61 /* CharCode.Equals */:\n case 124 /* CharCode.Bar */:\n if (atConflictMarker())\n return scanConflictMarker();\n return next(Token.DocText);\n }\n if (isAsciiIdentifierStart(ch)) {\n return scanIdentifier();\n }\n if (ch <= 127 /* CharCode.MaxAscii */) {\n return next(Token.DocText);\n }\n const cp = input.codePointAt(position);\n if (isIdentifierStart(cp)) {\n return scanNonAsciiIdentifier(cp);\n }\n return scanUnknown(Token.DocText);\n }\n return (token = Token.EndOfFile);\n }\n function scanRange(range, callback) {\n const savedPosition = position;\n const savedEndPosition = endPosition;\n const savedToken = token;\n const savedTokenPosition = tokenPosition;\n const savedTokenFlags = tokenFlags;\n position = range.pos;\n endPosition = range.end;\n token = Token.None;\n tokenPosition = -1;\n tokenFlags = TokenFlags.None;\n const result = callback();\n position = savedPosition;\n endPosition = savedEndPosition;\n token = savedToken;\n tokenPosition = savedTokenPosition;\n tokenFlags = savedTokenFlags;\n return result;\n }\n function next(t, count = 1) {\n position += count;\n return (token = t);\n }\n function unterminated(t) {\n tokenFlags |= TokenFlags.Unterminated;\n error({ code: \"unterminated\", format: { token: TokenDisplay[t] } });\n return (token = t);\n }\n function scanNonAsciiToken() {\n tokenFlags |= TokenFlags.NonAscii;\n const ch = input.charCodeAt(position);\n if (isNonAsciiWhiteSpaceSingleLine(ch)) {\n return scanWhitespace();\n }\n const cp = input.codePointAt(position);\n if (isNonAsciiIdentifierCharacter(cp)) {\n return scanNonAsciiIdentifier(cp);\n }\n return scanInvalidCharacter();\n }\n function scanInvalidCharacter() {\n token = scanUnknown(Token.Invalid);\n error({ code: \"invalid-character\" });\n return token;\n }\n function scanUnknown(t) {\n const codePoint = input.codePointAt(position);\n return (token = next(t, utf16CodeUnits(codePoint)));\n }\n function error(report) {\n const diagnostic = createDiagnostic({\n ...report,\n target: { file, pos: tokenPosition, end: position },\n });\n diagnosticHandler(diagnostic);\n }\n function scanWhitespace() {\n do {\n position++;\n } while (!eof() && isWhiteSpaceSingleLine(input.charCodeAt(position)));\n return (token = Token.Whitespace);\n }\n function scanSignedNumber() {\n position++; // consume '+/-'\n return scanNumber();\n }\n function scanNumber() {\n scanKnownDigits();\n if (!eof() && input.charCodeAt(position) === 46 /* CharCode.Dot */) {\n position++;\n scanRequiredDigits();\n }\n if (!eof() && input.charCodeAt(position) === 101 /* CharCode.e */) {\n position++;\n const ch = input.charCodeAt(position);\n if (ch === 43 /* CharCode.Plus */ || ch === 45 /* CharCode.Minus */) {\n position++;\n }\n scanRequiredDigits();\n }\n return (token = Token.NumericLiteral);\n }\n function scanKnownDigits() {\n do {\n position++;\n } while (!eof() && isDigit(input.charCodeAt(position)));\n }\n function scanRequiredDigits() {\n if (eof() || !isDigit(input.charCodeAt(position))) {\n error({ code: \"digit-expected\" });\n return;\n }\n scanKnownDigits();\n }\n function scanHexNumber() {\n position += 2; // consume '0x'\n if (eof() || !isHexDigit(input.charCodeAt(position))) {\n error({ code: \"hex-digit-expected\" });\n return (token = Token.NumericLiteral);\n }\n do {\n position++;\n } while (!eof() && isHexDigit(input.charCodeAt(position)));\n return (token = Token.NumericLiteral);\n }\n function scanBinaryNumber() {\n position += 2; // consume '0b'\n if (eof() || !isBinaryDigit(input.charCodeAt(position))) {\n error({ code: \"binary-digit-expected\" });\n return (token = Token.NumericLiteral);\n }\n do {\n position++;\n } while (!eof() && isBinaryDigit(input.charCodeAt(position)));\n return (token = Token.NumericLiteral);\n }\n function scanSingleLineComment() {\n position = skipSingleLineComment(input, position, endPosition);\n return (token = Token.SingleLineComment);\n }\n function scanMultiLineComment() {\n token = Token.MultiLineComment;\n if (lookAhead(2) === 42 /* CharCode.Asterisk */) {\n tokenFlags |= TokenFlags.DocComment;\n }\n const [newPosition, terminated] = skipMultiLineComment(input, position);\n position = newPosition;\n return terminated ? token : unterminated(token);\n }\n function scanDocCodeSpan() {\n position++; // consume '`'\n loop: for (; !eof(); position++) {\n const ch = input.charCodeAt(position);\n switch (ch) {\n case 96 /* CharCode.Backtick */:\n position++;\n return (token = Token.DocCodeSpan);\n case 13 /* CharCode.CarriageReturn */:\n case 10 /* CharCode.LineFeed */:\n break loop;\n }\n }\n return unterminated(Token.DocCodeSpan);\n }\n function scanString() {\n position++; // consume '\"'\n loop: for (; !eof(); position++) {\n const ch = input.charCodeAt(position);\n switch (ch) {\n case 92 /* CharCode.Backslash */:\n tokenFlags |= TokenFlags.Escaped;\n position++;\n if (eof()) {\n break loop;\n }\n continue;\n case 34 /* CharCode.DoubleQuote */:\n position++;\n return (token = Token.StringLiteral);\n case 13 /* CharCode.CarriageReturn */:\n case 10 /* CharCode.LineFeed */:\n break loop;\n }\n }\n return unterminated(Token.StringLiteral);\n }\n function scanTripleQuotedString() {\n tokenFlags |= TokenFlags.TripleQuoted;\n position += 3; // consume '\"\"\"'\n for (; !eof(); position++) {\n if (input.charCodeAt(position) === 34 /* CharCode.DoubleQuote */ &&\n lookAhead(1) === 34 /* CharCode.DoubleQuote */ &&\n lookAhead(2) === 34 /* CharCode.DoubleQuote */) {\n position += 3;\n return (token = Token.StringLiteral);\n }\n }\n return unterminated(Token.StringLiteral);\n }\n function getStringTokenValue() {\n const quoteLength = tokenFlags & TokenFlags.TripleQuoted ? 3 : 1;\n const start = tokenPosition + quoteLength;\n const end = tokenFlags & TokenFlags.Unterminated ? position : position - quoteLength;\n if (tokenFlags & TokenFlags.TripleQuoted) {\n return unindentAndUnescapeTripleQuotedString(start, end);\n }\n if (tokenFlags & TokenFlags.Escaped) {\n return unescapeString(start, end);\n }\n return input.substring(start, end);\n }\n function getIdentifierTokenValue() {\n const start = tokenFlags & TokenFlags.Backticked ? tokenPosition + 1 : tokenPosition;\n const end = tokenFlags & TokenFlags.Backticked && !(tokenFlags & TokenFlags.Unterminated)\n ? position - 1\n : position;\n const text = tokenFlags & TokenFlags.Escaped ? unescapeString(start, end) : input.substring(start, end);\n if (tokenFlags & TokenFlags.NonAscii) {\n return text.normalize(\"NFC\");\n }\n return text;\n }\n function unindentAndUnescapeTripleQuotedString(start, end) {\n // ignore leading whitespace before required initial line break\n while (start < end && isWhiteSpaceSingleLine(input.charCodeAt(start))) {\n start++;\n }\n // remove required initial line break\n if (isLineBreak(input.charCodeAt(start))) {\n if (isCrlf(start, start, end)) {\n start++;\n }\n start++;\n }\n else {\n error({ code: \"no-new-line-start-triple-quote\" });\n }\n // remove whitespace before closing delimiter and record it as required\n // indentation for all lines\n const indentationEnd = end;\n while (end > start && isWhiteSpaceSingleLine(input.charCodeAt(end - 1))) {\n end--;\n }\n const indentationStart = end;\n // remove required final line break\n if (isLineBreak(input.charCodeAt(end - 1))) {\n if (isCrlf(end - 2, start, end)) {\n end--;\n }\n end--;\n }\n else {\n error({ code: \"no-new-line-end-triple-quote\" });\n }\n // remove required matching indentation from each line and unescape in the\n // process of doing so\n let result = \"\";\n let pos = start;\n while (pos < end) {\n // skip indentation at start of line\n start = skipMatchingIndentation(pos, end, indentationStart, indentationEnd);\n let ch;\n while (pos < end && !isLineBreak((ch = input.charCodeAt(pos)))) {\n if (ch !== 92 /* CharCode.Backslash */) {\n pos++;\n continue;\n }\n result += input.substring(start, pos);\n if (pos === end - 1) {\n error({ code: \"invalid-escape-sequence\" });\n pos++;\n }\n else {\n result += unescapeOne(pos);\n pos += 2;\n }\n start = pos;\n }\n if (pos < end) {\n if (isCrlf(pos, start, end)) {\n // CRLF in multi-line string is normalized to LF in string value.\n // This keeps program behavior unchanged by line-ending conversion.\n result += input.substring(start, pos);\n result += \"\\n\";\n pos += 2;\n }\n else {\n pos++; // include non-CRLF newline\n result += input.substring(start, pos);\n }\n start = pos;\n }\n }\n result += input.substring(start, pos);\n return result;\n }\n function isCrlf(pos, start, end) {\n return (pos >= start &&\n pos < end - 1 &&\n input.charCodeAt(pos) === 13 /* CharCode.CarriageReturn */ &&\n input.charCodeAt(pos + 1) === 10 /* CharCode.LineFeed */);\n }\n function skipMatchingIndentation(pos, end, indentationStart, indentationEnd) {\n let indentationPos = indentationStart;\n end = Math.min(end, pos + (indentationEnd - indentationStart));\n while (pos < end) {\n const ch = input.charCodeAt(pos);\n if (isLineBreak(ch)) {\n // allow subset of indentation if line has only whitespace\n break;\n }\n if (ch !== input.charCodeAt(indentationPos)) {\n error({ code: \"triple-quote-indent\" });\n break;\n }\n indentationPos++;\n pos++;\n }\n return pos;\n }\n function unescapeString(start, end) {\n let result = \"\";\n let pos = start;\n while (pos < end) {\n const ch = input.charCodeAt(pos);\n if (ch !== 92 /* CharCode.Backslash */) {\n pos++;\n continue;\n }\n if (pos === end - 1) {\n error({ code: \"invalid-escape-sequence\" });\n break;\n }\n result += input.substring(start, pos);\n result += unescapeOne(pos);\n pos += 2;\n start = pos;\n }\n result += input.substring(start, pos);\n return result;\n }\n function unescapeOne(pos) {\n const ch = input.charCodeAt(pos + 1);\n switch (ch) {\n case 114 /* CharCode.r */:\n return \"\\r\";\n case 110 /* CharCode.n */:\n return \"\\n\";\n case 116 /* CharCode.t */:\n return \"\\t\";\n case 34 /* CharCode.DoubleQuote */:\n return '\"';\n case 92 /* CharCode.Backslash */:\n return \"\\\\\";\n case 96 /* CharCode.Backtick */:\n return \"`\";\n default:\n error({ code: \"invalid-escape-sequence\" });\n return String.fromCharCode(ch);\n }\n }\n function scanIdentifierOrKeyword() {\n let count = 0;\n let ch = input.charCodeAt(position);\n while (true) {\n position++;\n count++;\n if (eof()) {\n break;\n }\n ch = input.charCodeAt(position);\n if (count < 10 /* KeywordLimit.MaxLength */ && isLowercaseAsciiLetter(ch)) {\n continue;\n }\n if (isAsciiIdentifierContinue(ch)) {\n return scanIdentifier();\n }\n if (ch > 127 /* CharCode.MaxAscii */) {\n const cp = input.codePointAt(position);\n if (isNonAsciiIdentifierCharacter(cp)) {\n return scanNonAsciiIdentifier(cp);\n }\n }\n break;\n }\n if (count >= 2 /* KeywordLimit.MinLength */ && count <= 10 /* KeywordLimit.MaxLength */) {\n const keyword = Keywords.get(getTokenText());\n if (keyword) {\n return (token = keyword);\n }\n }\n return (token = Token.Identifier);\n }\n function scanIdentifier() {\n let ch;\n do {\n position++;\n if (eof()) {\n return (token = Token.Identifier);\n }\n } while (isAsciiIdentifierContinue((ch = input.charCodeAt(position))));\n if (ch > 127 /* CharCode.MaxAscii */) {\n const cp = input.codePointAt(position);\n if (isNonAsciiIdentifierCharacter(cp)) {\n return scanNonAsciiIdentifier(cp);\n }\n }\n return (token = Token.Identifier);\n }\n function scanBacktickedIdentifier() {\n position++; // consume '`'\n tokenFlags |= TokenFlags.Backticked;\n loop: for (; !eof(); position++) {\n const ch = input.charCodeAt(position);\n switch (ch) {\n case 92 /* CharCode.Backslash */:\n position++;\n tokenFlags |= TokenFlags.Escaped;\n continue;\n case 96 /* CharCode.Backtick */:\n position++;\n return (token = Token.Identifier);\n case 13 /* CharCode.CarriageReturn */:\n case 10 /* CharCode.LineFeed */:\n break loop;\n default:\n if (ch > 127 /* CharCode.MaxAscii */) {\n tokenFlags |= TokenFlags.NonAscii;\n }\n }\n }\n return unterminated(Token.Identifier);\n }\n function scanNonAsciiIdentifier(startCodePoint) {\n tokenFlags |= TokenFlags.NonAscii;\n let cp = startCodePoint;\n do {\n position += utf16CodeUnits(cp);\n } while (!eof() && isIdentifierContinue((cp = input.codePointAt(position))));\n return (token = Token.Identifier);\n }\n function atConflictMarker() {\n return isConflictMarker(input, position, endPosition);\n }\n function scanConflictMarker() {\n const marker = input.charCodeAt(position);\n position += mergeConflictMarkerLength;\n error({ code: \"conflict-marker\" });\n if (marker === 60 /* CharCode.LessThan */ || marker === 62 /* CharCode.GreaterThan */) {\n // Consume everything from >>>>>>> or <<<<<<< to the end of the line.\n while (position < endPosition && !isLineBreak(input.charCodeAt(position))) {\n position++;\n }\n }\n else {\n // Consume everything from the start of a ||||||| or =======\n // marker to the start of the next ======= or >>>>>>> marker.\n while (position < endPosition) {\n const ch = input.charCodeAt(position);\n if ((ch === 61 /* CharCode.Equals */ || ch === 62 /* CharCode.GreaterThan */) &&\n ch !== marker &&\n isConflictMarker(input, position, endPosition)) {\n break;\n }\n position++;\n }\n }\n return (token = Token.ConflictMarker);\n }\n}\nexport function skipTrivia(input, position, endPosition = input.length) {\n while (position < endPosition) {\n const ch = input.charCodeAt(position);\n if (isWhiteSpace(ch)) {\n position++;\n continue;\n }\n if (ch === 47 /* CharCode.Slash */) {\n switch (input.charCodeAt(position + 1)) {\n case 47 /* CharCode.Slash */:\n position = skipSingleLineComment(input, position, endPosition);\n continue;\n case 42 /* CharCode.Asterisk */:\n position = skipMultiLineComment(input, position, endPosition)[0];\n continue;\n }\n }\n break;\n }\n return position;\n}\nexport function skipWhiteSpace(input, position, endPosition = input.length) {\n while (position < endPosition) {\n const ch = input.charCodeAt(position);\n if (!isWhiteSpace(ch)) {\n break;\n }\n position++;\n }\n return position;\n}\nfunction skipSingleLineComment(input, position, endPosition = input.length) {\n position += 2; // consume '//'\n for (; position < endPosition; position++) {\n if (isLineBreak(input.charCodeAt(position))) {\n break;\n }\n }\n return position;\n}\nfunction skipMultiLineComment(input, position, endPosition = input.length) {\n position += 2; // consume '/*'\n for (; position < endPosition; position++) {\n if (input.charCodeAt(position) === 42 /* CharCode.Asterisk */ &&\n input.charCodeAt(position + 1) === 47 /* CharCode.Slash */) {\n return [position + 2, true];\n }\n }\n return [position, false];\n}\nfunction isConflictMarker(input, position, endPosition = input.length) {\n // Conflict markers must be at the start of a line.\n const ch = input.charCodeAt(position);\n if (position === 0 || isLineBreak(input.charCodeAt(position - 1))) {\n if (position + mergeConflictMarkerLength < endPosition) {\n for (let i = 0; i < mergeConflictMarkerLength; i++) {\n if (input.charCodeAt(position + i) !== ch) {\n return false;\n }\n }\n return (ch === 61 /* CharCode.Equals */ ||\n input.charCodeAt(position + mergeConflictMarkerLength) === 32 /* CharCode.Space */);\n }\n }\n return false;\n}\nfunction getTokenDisplayTable(entries) {\n const table = new Array(entries.length);\n for (const [token, display] of entries) {\n compilerAssert(token >= 0 && token < Token.__Count, `Invalid entry in token display table, ${token}, ${Token[token]}, ${display}`);\n compilerAssert(!table[token], `Duplicate entry in token display table for: ${token}, ${Token[token]}, ${display}`);\n table[token] = display;\n }\n for (let token = 0; token < Token.__Count; token++) {\n compilerAssert(table[token], `Missing entry in token display table: ${token}, ${Token[token]}`);\n }\n return table;\n}\n//# sourceMappingURL=scanner.js.map","var uu=Object.create;var Ue=Object.defineProperty;var ou=Object.getOwnPropertyDescriptor;var iu=Object.getOwnPropertyNames;var su=Object.getPrototypeOf,au=Object.prototype.hasOwnProperty;var rr=(t,e)=>()=>(t&&(e=t(t=0)),e);var Ct=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),Me=(t,e)=>{for(var r in e)Ue(t,r,{get:e[r],enumerable:!0})},nr=(t,e,r,n)=>{if(e&&typeof e==\"object\"||typeof e==\"function\")for(let o of iu(e))!au.call(t,o)&&o!==r&&Ue(t,o,{get:()=>e[o],enumerable:!(n=ou(e,o))||n.enumerable});return t};var ur=(t,e,r)=>(r=t!=null?uu(su(t)):{},nr(e||!t||!t.__esModule?Ue(r,\"default\",{value:t,enumerable:!0}):r,t)),Du=t=>nr(Ue({},\"__esModule\",{value:!0}),t);var cu=(t,e,r)=>{if(!e.has(t))throw TypeError(\"Cannot \"+r)};var gt=(t,e,r)=>{if(e.has(t))throw TypeError(\"Cannot add the same private member more than once\");e instanceof WeakSet?e.add(t):e.set(t,r)};var le=(t,e,r)=>(cu(t,e,\"access private method\"),r);var ir=Ct(yt=>{\"use strict\";Object.defineProperty(yt,\"__esModule\",{value:!0});yt.default=or;function or(){}or.prototype={diff:function(e,r){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},o=n.callback;typeof n==\"function\"&&(o=n,n={}),this.options=n;var u=this;function i(p){return o?(setTimeout(function(){o(void 0,p)},0),!0):p}e=this.castInput(e),r=this.castInput(r),e=this.removeEmpty(this.tokenize(e)),r=this.removeEmpty(this.tokenize(r));var s=r.length,a=e.length,D=1,c=s+a;n.maxEditLength&&(c=Math.min(c,n.maxEditLength));var F=[{newPos:-1,components:[]}],f=this.extractCommon(F[0],r,e,0);if(F[0].newPos+1>=s&&f+1>=a)return i([{value:this.join(r),count:r.length}]);function d(){for(var p=-1*D;p<=D;p+=2){var m=void 0,E=F[p-1],h=F[p+1],g=(h?h.newPos:0)-p;E&&(F[p-1]=void 0);var C=E&&E.newPos+1<s,_=h&&0<=g&&g<a;if(!C&&!_){F[p]=void 0;continue}if(!C||_&&E.newPos<h.newPos?(m=pu(h),u.pushComponent(m.components,void 0,!0)):(m=E,m.newPos++,u.pushComponent(m.components,!0,void 0)),g=u.extractCommon(m,r,e,p),m.newPos+1>=s&&g+1>=a)return i(fu(u,m.components,r,e,u.useLongestToken));F[p]=m}D++}if(o)(function p(){setTimeout(function(){if(D>c)return o();d()||p()},0)})();else for(;D<=c;){var l=d();if(l)return l}},pushComponent:function(e,r,n){var o=e[e.length-1];o&&o.added===r&&o.removed===n?e[e.length-1]={count:o.count+1,added:r,removed:n}:e.push({count:1,added:r,removed:n})},extractCommon:function(e,r,n,o){for(var u=r.length,i=n.length,s=e.newPos,a=s-o,D=0;s+1<u&&a+1<i&&this.equals(r[s+1],n[a+1]);)s++,a++,D++;return D&&e.components.push({count:D}),e.newPos=s,a},equals:function(e,r){return this.options.comparator?this.options.comparator(e,r):e===r||this.options.ignoreCase&&e.toLowerCase()===r.toLowerCase()},removeEmpty:function(e){for(var r=[],n=0;n<e.length;n++)e[n]&&r.push(e[n]);return r},castInput:function(e){return e},tokenize:function(e){return e.split(\"\")},join:function(e){return e.join(\"\")}};function fu(t,e,r,n,o){for(var u=0,i=e.length,s=0,a=0;u<i;u++){var D=e[u];if(D.removed){if(D.value=t.join(n.slice(a,a+D.count)),a+=D.count,u&&e[u-1].added){var F=e[u-1];e[u-1]=e[u],e[u]=F}}else{if(!D.added&&o){var c=r.slice(s,s+D.count);c=c.map(function(d,l){var p=n[a+l];return p.length>d.length?p:d}),D.value=t.join(c)}else D.value=t.join(r.slice(s,s+D.count));s+=D.count,D.added||(a+=D.count)}}var f=e[i-1];return i>1&&typeof f.value==\"string\"&&(f.added||f.removed)&&t.equals(\"\",f.value)&&(e[i-2].value+=f.value,e.pop()),e}function pu(t){return{newPos:t.newPos,components:t.components.slice(0)}}});var sr=Ct(ye=>{\"use strict\";Object.defineProperty(ye,\"__esModule\",{value:!0});ye.diffArrays=mu;ye.arrayDiff=void 0;var du=Fu(ir());function Fu(t){return t&&t.__esModule?t:{default:t}}var ge=new du.default;ye.arrayDiff=ge;ge.tokenize=function(t){return t.slice()};ge.join=ge.removeEmpty=function(t){return t};function mu(t,e,r){return ge.diff(t,e,r)}});var j,N,Pe=rr(()=>{j=t=>t;j.grey=j;j.red=j;j.bold=j;j.yellow=j;j.blue=j;j.default=j;N=j});var cn={};Me(cn,{getChalk:()=>Ju,shouldHighlight:()=>qu});var qu,Ju,ln=rr(()=>{Pe();qu=()=>!1,Ju=()=>N});var Fn=Ct(pt=>{\"use strict\";Object.defineProperty(pt,\"__esModule\",{value:!0});pt.codeFrameColumns=dn;pt.default=Qu;var Yt=(ln(),Du(cn)),fn=!1;function Xu(t){return{gutter:t.grey,marker:t.red.bold,message:t.red.bold}}var pn=/\\r\\n|[\\n\\r\\u2028\\u2029]/;function Zu(t,e,r){let n=Object.assign({column:0,line:-1},t.start),o=Object.assign({},n,t.end),{linesAbove:u=2,linesBelow:i=3}=r||{},s=n.line,a=n.column,D=o.line,c=o.column,F=Math.max(s-(u+1),0),f=Math.min(e.length,D+i);s===-1&&(F=0),D===-1&&(f=e.length);let d=D-s,l={};if(d)for(let p=0;p<=d;p++){let m=p+s;if(!a)l[m]=!0;else if(p===0){let E=e[m-1].length;l[m]=[a,E-a+1]}else if(p===d)l[m]=[0,c];else{let E=e[m-p].length;l[m]=[0,E]}}else a===c?a?l[s]=[a,0]:l[s]=!0:l[s]=[a,c-a];return{start:F,end:f,markerLines:l}}function dn(t,e,r={}){let n=(r.highlightCode||r.forceColor)&&(0,Yt.shouldHighlight)(r),o=(0,Yt.getChalk)(r),u=Xu(o),i=(p,m)=>n?p(m):m,s=t.split(pn),{start:a,end:D,markerLines:c}=Zu(e,s,r),F=e.start&&typeof e.start.column==\"number\",f=String(D).length,l=(n?(0,Yt.default)(t,r):t).split(pn,D).slice(a,D).map((p,m)=>{let E=a+1+m,g=` ${` ${E}`.slice(-f)} |`,C=c[E],_=!c[E+1];if(C){let ee=\"\";if(Array.isArray(C)){let M=p.slice(0,Math.max(C[0]-1,0)).replace(/[^\\t]/g,\" \"),te=C[1]||1;ee=[`\n `,i(u.gutter,g.replace(/\\d/g,\" \")),\" \",M,i(u.marker,\"^\").repeat(te)].join(\"\"),_&&r.message&&(ee+=\" \"+i(u.message,r.message))}return[i(u.marker,\">\"),i(u.gutter,g),p.length>0?` ${p}`:\"\",ee].join(\"\")}else return` ${i(u.gutter,g)}${p.length>0?` ${p}`:\"\"}`}).join(`\n`);return r.message&&!F&&(l=`${\" \".repeat(f+1)}${r.message}\n${l}`),n?o.reset(l):l}function Qu(t,e,r,n={}){if(!fn){fn=!0;let u=\"Passing lineNumber and colNumber is deprecated to @babel/code-frame. Please use `codeFrameColumns`.\";{let i=new Error(u);i.name=\"DeprecationWarning\",console.warn(new Error(u))}}return r=Math.max(r,0),dn(t,{start:{column:r,line:e}},n)}});var er={};Me(er,{__debug:()=>Go,check:()=>Wo,doc:()=>Qt,format:()=>nu,formatWithCursor:()=>ru,getSupportInfo:()=>zo,util:()=>Zt,version:()=>tu});var lu=(t,e,r,n)=>{if(!(t&&e==null))return e.replaceAll?e.replaceAll(r,n):r.global?e.replace(r,n):e.split(r).join(n)},re=lu;var Vn=ur(sr(),1);var W=\"string\",$=\"array\",z=\"cursor\",S=\"indent\",v=\"align\",P=\"trim\",A=\"group\",k=\"fill\",B=\"if-break\",L=\"indent-if-break\",I=\"line-suffix\",R=\"line-suffix-boundary\",x=\"line\",O=\"label\",b=\"break-parent\",We=new Set([z,S,v,P,A,k,B,L,I,R,x,O,b]);function Eu(t){if(typeof t==\"string\")return W;if(Array.isArray(t))return $;if(!t)return;let{type:e}=t;if(We.has(e))return e}var G=Eu;var hu=t=>new Intl.ListFormat(\"en-US\",{type:\"disjunction\"}).format(t);function Cu(t){let e=t===null?\"null\":typeof t;if(e!==\"string\"&&e!==\"object\")return`Unexpected doc '${e}', \nExpected it to be 'string' or 'object'.`;if(G(t))throw new Error(\"doc is valid.\");let r=Object.prototype.toString.call(t);if(r!==\"[object Object]\")return`Unexpected doc '${r}'.`;let n=hu([...We].map(o=>`'${o}'`));return`Unexpected doc.type '${t.type}'.\nExpected it to be ${n}.`}var xt=class extends Error{name=\"InvalidDocError\";constructor(e){super(Cu(e)),this.doc=e}},X=xt;var ar={};function gu(t,e,r,n){let o=[t];for(;o.length>0;){let u=o.pop();if(u===ar){r(o.pop());continue}r&&o.push(u,ar);let i=G(u);if(!i)throw new X(u);if((e==null?void 0:e(u))!==!1)switch(i){case $:case k:{let s=i===$?u:u.parts;for(let a=s.length,D=a-1;D>=0;--D)o.push(s[D]);break}case B:o.push(u.flatContents,u.breakContents);break;case A:if(n&&u.expandedStates)for(let s=u.expandedStates.length,a=s-1;a>=0;--a)o.push(u.expandedStates[a]);else o.push(u.contents);break;case v:case S:case L:case O:case I:o.push(u.contents);break;case W:case z:case P:case R:case x:case b:break;default:throw new X(u)}}}var xe=gu;var Dr=()=>{},K=Dr,ze=Dr;function ae(t){return K(t),{type:S,contents:t}}function se(t,e){return K(e),{type:v,contents:e,n:t}}function _t(t,e={}){return K(t),ze(e.expandedStates,!0),{type:A,id:e.id,contents:t,break:!!e.shouldBreak,expandedStates:e.expandedStates}}function cr(t){return se(Number.NEGATIVE_INFINITY,t)}function lr(t){return se({type:\"root\"},t)}function fr(t){return se(-1,t)}function pr(t,e){return _t(t[0],{...e,expandedStates:t})}function Ge(t){return ze(t),{type:k,parts:t}}function dr(t,e=\"\",r={}){return K(t),e!==\"\"&&K(e),{type:B,breakContents:t,flatContents:e,groupId:r.groupId}}function Fr(t,e){return K(t),{type:L,contents:t,groupId:e.groupId,negate:e.negate}}function _e(t){return K(t),{type:I,contents:t}}var mr={type:R},fe={type:b},Er={type:P},Ae={type:x,hard:!0},At={type:x,hard:!0,literal:!0},Ke={type:x},hr={type:x,soft:!0},H=[Ae,fe],He=[At,fe],Be={type:z};function ke(t,e){K(t),ze(e);let r=[];for(let n=0;n<e.length;n++)n!==0&&r.push(t),r.push(e[n]);return r}function qe(t,e,r){K(t);let n=t;if(e>0){for(let o=0;o<Math.floor(e/r);++o)n=ae(n);n=se(e%r,n),n=se(Number.NEGATIVE_INFINITY,n)}return n}function Cr(t,e){return K(e),t?{type:O,label:t,contents:e}:e}var yu=(t,e,r)=>{if(!(t&&e==null))return Array.isArray(e)||typeof e==\"string\"?e[r<0?e.length+r:r]:e.at(r)},y=yu;function gr(t){let e=t.indexOf(\"\\r\");return e>=0?t.charAt(e+1)===`\n`?\"crlf\":\"cr\":\"lf\"}function be(t){switch(t){case\"cr\":return\"\\r\";case\"crlf\":return`\\r\n`;default:return`\n`}}function Bt(t,e){let r;switch(e){case`\n`:r=/\\n/g;break;case\"\\r\":r=/\\r/g;break;case`\\r\n`:r=/\\r\\n/g;break;default:throw new Error(`Unexpected \"eol\" ${JSON.stringify(e)}.`)}let n=t.match(r);return n?n.length:0}function yr(t){return re(!1,t,/\\r\\n?/g,`\n`)}var xr=()=>/[#*0-9]\\uFE0F?\\u20E3|[\\xA9\\xAE\\u203C\\u2049\\u2122\\u2139\\u2194-\\u2199\\u21A9\\u21AA\\u231A\\u231B\\u2328\\u23CF\\u23ED-\\u23EF\\u23F1\\u23F2\\u23F8-\\u23FA\\u24C2\\u25AA\\u25AB\\u25B6\\u25C0\\u25FB\\u25FC\\u25FE\\u2600-\\u2604\\u260E\\u2611\\u2614\\u2615\\u2618\\u2620\\u2622\\u2623\\u2626\\u262A\\u262E\\u262F\\u2638-\\u263A\\u2640\\u2642\\u2648-\\u2653\\u265F\\u2660\\u2663\\u2665\\u2666\\u2668\\u267B\\u267E\\u267F\\u2692\\u2694-\\u2697\\u2699\\u269B\\u269C\\u26A0\\u26A7\\u26AA\\u26B0\\u26B1\\u26BD\\u26BE\\u26C4\\u26C8\\u26CF\\u26D1\\u26D3\\u26E9\\u26F0-\\u26F5\\u26F7\\u26F8\\u26FA\\u2702\\u2708\\u2709\\u270F\\u2712\\u2714\\u2716\\u271D\\u2721\\u2733\\u2734\\u2744\\u2747\\u2757\\u2763\\u27A1\\u2934\\u2935\\u2B05-\\u2B07\\u2B1B\\u2B1C\\u2B55\\u3030\\u303D\\u3297\\u3299]\\uFE0F?|[\\u261D\\u270C\\u270D](?:\\uFE0F|\\uD83C[\\uDFFB-\\uDFFF])?|[\\u270A\\u270B](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\u23E9-\\u23EC\\u23F0\\u23F3\\u25FD\\u2693\\u26A1\\u26AB\\u26C5\\u26CE\\u26D4\\u26EA\\u26FD\\u2705\\u2728\\u274C\\u274E\\u2753-\\u2755\\u2795-\\u2797\\u27B0\\u27BF\\u2B50]|\\u26F9(?:\\uFE0F|\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|\\u2764\\uFE0F?(?:\\u200D(?:\\uD83D\\uDD25|\\uD83E\\uDE79))?|\\uD83C(?:[\\uDC04\\uDD70\\uDD71\\uDD7E\\uDD7F\\uDE02\\uDE37\\uDF21\\uDF24-\\uDF2C\\uDF36\\uDF7D\\uDF96\\uDF97\\uDF99-\\uDF9B\\uDF9E\\uDF9F\\uDFCD\\uDFCE\\uDFD4-\\uDFDF\\uDFF5\\uDFF7]\\uFE0F?|[\\uDF85\\uDFC2\\uDFC7](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDFC3\\uDFC4\\uDFCA](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDFCB\\uDFCC](?:\\uFE0F|\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\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]|\\uDDE6\\uD83C[\\uDDE8-\\uDDEC\\uDDEE\\uDDF1\\uDDF2\\uDDF4\\uDDF6-\\uDDFA\\uDDFC\\uDDFD\\uDDFF]|\\uDDE7\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEF\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9\\uDDFB\\uDDFC\\uDDFE\\uDDFF]|\\uDDE8\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDEE\\uDDF0-\\uDDF5\\uDDF7\\uDDFA-\\uDDFF]|\\uDDE9\\uD83C[\\uDDEA\\uDDEC\\uDDEF\\uDDF0\\uDDF2\\uDDF4\\uDDFF]|\\uDDEA\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDED\\uDDF7-\\uDDFA]|\\uDDEB\\uD83C[\\uDDEE-\\uDDF0\\uDDF2\\uDDF4\\uDDF7]|\\uDDEC\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEE\\uDDF1-\\uDDF3\\uDDF5-\\uDDFA\\uDDFC\\uDDFE]|\\uDDED\\uD83C[\\uDDF0\\uDDF2\\uDDF3\\uDDF7\\uDDF9\\uDDFA]|\\uDDEE\\uD83C[\\uDDE8-\\uDDEA\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9]|\\uDDEF\\uD83C[\\uDDEA\\uDDF2\\uDDF4\\uDDF5]|\\uDDF0\\uD83C[\\uDDEA\\uDDEC-\\uDDEE\\uDDF2\\uDDF3\\uDDF5\\uDDF7\\uDDFC\\uDDFE\\uDDFF]|\\uDDF1\\uD83C[\\uDDE6-\\uDDE8\\uDDEE\\uDDF0\\uDDF7-\\uDDFB\\uDDFE]|\\uDDF2\\uD83C[\\uDDE6\\uDDE8-\\uDDED\\uDDF0-\\uDDFF]|\\uDDF3\\uD83C[\\uDDE6\\uDDE8\\uDDEA-\\uDDEC\\uDDEE\\uDDF1\\uDDF4\\uDDF5\\uDDF7\\uDDFA\\uDDFF]|\\uDDF4\\uD83C\\uDDF2|\\uDDF5\\uD83C[\\uDDE6\\uDDEA-\\uDDED\\uDDF0-\\uDDF3\\uDDF7-\\uDDF9\\uDDFC\\uDDFE]|\\uDDF6\\uD83C\\uDDE6|\\uDDF7\\uD83C[\\uDDEA\\uDDF4\\uDDF8\\uDDFA\\uDDFC]|\\uDDF8\\uD83C[\\uDDE6-\\uDDEA\\uDDEC-\\uDDF4\\uDDF7-\\uDDF9\\uDDFB\\uDDFD-\\uDDFF]|\\uDDF9\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDED\\uDDEF-\\uDDF4\\uDDF7\\uDDF9\\uDDFB\\uDDFC\\uDDFF]|\\uDDFA\\uD83C[\\uDDE6\\uDDEC\\uDDF2\\uDDF3\\uDDF8\\uDDFE\\uDDFF]|\\uDDFB\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDEE\\uDDF3\\uDDFA]|\\uDDFC\\uD83C[\\uDDEB\\uDDF8]|\\uDDFD\\uD83C\\uDDF0|\\uDDFE\\uD83C[\\uDDEA\\uDDF9]|\\uDDFF\\uD83C[\\uDDE6\\uDDF2\\uDDFC]|\\uDFF3\\uFE0F?(?:\\u200D(?:\\u26A7\\uFE0F?|\\uD83C\\uDF08))?|\\uDFF4(?:\\u200D\\u2620\\uFE0F?|\\uDB40\\uDC67\\uDB40\\uDC62\\uDB40(?:\\uDC65\\uDB40\\uDC6E\\uDB40\\uDC67|\\uDC73\\uDB40\\uDC63\\uDB40\\uDC74|\\uDC77\\uDB40\\uDC6C\\uDB40\\uDC73)\\uDB40\\uDC7F)?)|\\uD83D(?:[\\uDC08\\uDC26](?:\\u200D\\u2B1B)?|[\\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?|[\\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](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDC6E\\uDC70\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4-\\uDEB6](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDD74\\uDD90](?:\\uFE0F|\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDC00-\\uDC07\\uDC09-\\uDC14\\uDC16-\\uDC25\\uDC27-\\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\\uDEDC-\\uDEDF\\uDEEB\\uDEEC\\uDEF4-\\uDEFC\\uDFE0-\\uDFEB\\uDFF0]|\\uDC15(?:\\u200D\\uD83E\\uDDBA)?|\\uDC3B(?:\\u200D\\u2744\\uFE0F?)?|\\uDC41\\uFE0F?(?:\\u200D\\uD83D\\uDDE8\\uFE0F?)?|\\uDC68(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDC68\\uDC69]\\u200D\\uD83D(?:\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?)|[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?)|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFC-\\uDFFF])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB-\\uDFFE])))?))?|\\uDC69(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?[\\uDC68\\uDC69]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?|\\uDC69\\u200D\\uD83D(?:\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?))|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFC-\\uDFFF])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB-\\uDFFE])))?))?|\\uDC6F(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|\\uDD75(?:\\uFE0F|\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|\\uDE2E(?:\\u200D\\uD83D\\uDCA8)?|\\uDE35(?:\\u200D\\uD83D\\uDCAB)?|\\uDE36(?:\\u200D\\uD83C\\uDF2B\\uFE0F?)?)|\\uD83E(?:[\\uDD0C\\uDD0F\\uDD18-\\uDD1F\\uDD30-\\uDD34\\uDD36\\uDD77\\uDDB5\\uDDB6\\uDDBB\\uDDD2\\uDDD3\\uDDD5\\uDEC3-\\uDEC5\\uDEF0\\uDEF2-\\uDEF8](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDD26\\uDD35\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD-\\uDDCF\\uDDD4\\uDDD6-\\uDDDD](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDDDE\\uDDDF](?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDD0D\\uDD0E\\uDD10-\\uDD17\\uDD20-\\uDD25\\uDD27-\\uDD2F\\uDD3A\\uDD3F-\\uDD45\\uDD47-\\uDD76\\uDD78-\\uDDB4\\uDDB7\\uDDBA\\uDDBC-\\uDDCC\\uDDD0\\uDDE0-\\uDDFF\\uDE70-\\uDE7C\\uDE80-\\uDE88\\uDE90-\\uDEBD\\uDEBF-\\uDEC2\\uDECE-\\uDEDB\\uDEE0-\\uDEE8]|\\uDD3C(?:\\u200D[\\u2640\\u2642]\\uFE0F?|\\uD83C[\\uDFFB-\\uDFFF])?|\\uDDD1(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]|\\uDD1D\\u200D\\uD83E\\uDDD1))|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFC-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFD-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFD\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFE]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?))?|\\uDEF1(?:\\uD83C(?:\\uDFFB(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFC-\\uDFFF])?|\\uDFFC(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])?|\\uDFFD(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])?|\\uDFFE(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])?|\\uDFFF(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB-\\uDFFE])?))?)/g;var _r={eastAsianWidth(t){var e=t.charCodeAt(0),r=t.length==2?t.charCodeAt(1):0,n=e;return 55296<=e&&e<=56319&&56320<=r&&r<=57343&&(e&=1023,r&=1023,n=e<<10|r,n+=65536),n==12288||65281<=n&&n<=65376||65504<=n&&n<=65510?\"F\":4352<=n&&n<=4447||4515<=n&&n<=4519||4602<=n&&n<=4607||9001<=n&&n<=9002||11904<=n&&n<=11929||11931<=n&&n<=12019||12032<=n&&n<=12245||12272<=n&&n<=12283||12289<=n&&n<=12350||12353<=n&&n<=12438||12441<=n&&n<=12543||12549<=n&&n<=12589||12593<=n&&n<=12686||12688<=n&&n<=12730||12736<=n&&n<=12771||12784<=n&&n<=12830||12832<=n&&n<=12871||12880<=n&&n<=13054||13056<=n&&n<=19903||19968<=n&&n<=42124||42128<=n&&n<=42182||43360<=n&&n<=43388||44032<=n&&n<=55203||55216<=n&&n<=55238||55243<=n&&n<=55291||63744<=n&&n<=64255||65040<=n&&n<=65049||65072<=n&&n<=65106||65108<=n&&n<=65126||65128<=n&&n<=65131||110592<=n&&n<=110593||127488<=n&&n<=127490||127504<=n&&n<=127546||127552<=n&&n<=127560||127568<=n&&n<=127569||131072<=n&&n<=194367||177984<=n&&n<=196605||196608<=n&&n<=262141?\"W\":\"N\"}};var xu=/[^\\x20-\\x7F]/;function _u(t){if(!t)return 0;if(!xu.test(t))return t.length;t=t.replace(xr(),\" \");let e=0;for(let r of t){let n=r.codePointAt(0);if(n<=31||n>=127&&n<=159||n>=768&&n<=879)continue;let o=_r.eastAsianWidth(r);e+=o===\"F\"||o===\"W\"?2:1}return e}var we=_u;var kr=t=>{if(Array.isArray(t))return t;if(t.type!==k)throw new Error(`Expect doc to be 'array' or '${k}'.`);return t.parts};function Ne(t,e){if(typeof t==\"string\")return e(t);let r=new Map;return n(t);function n(u){if(r.has(u))return r.get(u);let i=o(u);return r.set(u,i),i}function o(u){switch(G(u)){case $:return e(u.map(n));case k:return e({...u,parts:u.parts.map(n)});case B:return e({...u,breakContents:n(u.breakContents),flatContents:n(u.flatContents)});case A:{let{expandedStates:i,contents:s}=u;return i?(i=i.map(n),s=i[0]):s=n(s),e({...u,contents:s,expandedStates:i})}case v:case S:case L:case O:case I:return e({...u,contents:n(u.contents)});case W:case z:case P:case R:case x:case b:return e(u);default:throw new X(u)}}}function Je(t,e,r){let n=r,o=!1;function u(i){if(o)return!1;let s=e(i);s!==void 0&&(o=!0,n=s)}return xe(t,u),n}function Au(t){if(t.type===A&&t.break||t.type===x&&t.hard||t.type===b)return!0}function br(t){return Je(t,Au,!1)}function Ar(t){if(t.length>0){let e=y(!1,t,-1);!e.expandedStates&&!e.break&&(e.break=\"propagated\")}return null}function wr(t){let e=new Set,r=[];function n(u){if(u.type===b&&Ar(r),u.type===A){if(r.push(u),e.has(u))return!1;e.add(u)}}function o(u){u.type===A&&r.pop().break&&Ar(r)}xe(t,n,o,!0)}function Bu(t){return t.type===x&&!t.hard?t.soft?\"\":\" \":t.type===B?t.flatContents:t}function Or(t){return Ne(t,Bu)}function Br(t){for(t=[...t];t.length>=2&&y(!1,t,-2).type===x&&y(!1,t,-1).type===b;)t.length-=2;if(t.length>0){let e=Oe(y(!1,t,-1));t[t.length-1]=e}return t}function Oe(t){switch(G(t)){case v:case S:case L:case A:case I:case O:{let e=Oe(t.contents);return{...t,contents:e}}case B:return{...t,breakContents:Oe(t.breakContents),flatContents:Oe(t.flatContents)};case k:return{...t,parts:Br(t.parts)};case $:return Br(t);case W:return t.replace(/[\\n\\r]*$/,\"\");case z:case P:case R:case x:case b:break;default:throw new X(t)}return t}function Xe(t){return Oe(bu(t))}function ku(t){switch(G(t)){case k:if(t.parts.every(e=>e===\"\"))return\"\";break;case A:if(!t.contents&&!t.id&&!t.break&&!t.expandedStates)return\"\";if(t.contents.type===A&&t.contents.id===t.id&&t.contents.break===t.break&&t.contents.expandedStates===t.expandedStates)return t.contents;break;case v:case S:case L:case I:if(!t.contents)return\"\";break;case B:if(!t.flatContents&&!t.breakContents)return\"\";break;case $:{let e=[];for(let r of t){if(!r)continue;let[n,...o]=Array.isArray(r)?r:[r];typeof n==\"string\"&&typeof y(!1,e,-1)==\"string\"?e[e.length-1]+=n:e.push(n),e.push(...o)}return e.length===0?\"\":e.length===1?e[0]:e}case W:case z:case P:case R:case x:case O:case b:break;default:throw new X(t)}return t}function bu(t){return Ne(t,e=>ku(e))}function Nr(t,e=He){return Ne(t,r=>typeof r==\"string\"?ke(e,r.split(`\n`)):r)}function wu(t){if(t.type===x)return!0}function Tr(t){return Je(t,wu,!1)}function Ze(t,e){return t.type===O?{...t,contents:e(t.contents)}:e(t)}var Y=Symbol(\"MODE_BREAK\"),q=Symbol(\"MODE_FLAT\"),Te=Symbol(\"cursor\");function Sr(){return{value:\"\",length:0,queue:[]}}function Ou(t,e){return kt(t,{type:\"indent\"},e)}function Nu(t,e,r){return e===Number.NEGATIVE_INFINITY?t.root||Sr():e<0?kt(t,{type:\"dedent\"},r):e?e.type===\"root\"?{...t,root:t}:kt(t,{type:typeof e==\"string\"?\"stringAlign\":\"numberAlign\",n:e},r):t}function kt(t,e,r){let n=e.type===\"dedent\"?t.queue.slice(0,-1):[...t.queue,e],o=\"\",u=0,i=0,s=0;for(let l of n)switch(l.type){case\"indent\":c(),r.useTabs?a(1):D(r.tabWidth);break;case\"stringAlign\":c(),o+=l.n,u+=l.n.length;break;case\"numberAlign\":i+=1,s+=l.n;break;default:throw new Error(`Unexpected type '${l.type}'`)}return f(),{...t,value:o,length:u,queue:n};function a(l){o+=\"\t\".repeat(l),u+=r.tabWidth*l}function D(l){o+=\" \".repeat(l),u+=l}function c(){r.useTabs?F():f()}function F(){i>0&&a(i),d()}function f(){s>0&&D(s),d()}function d(){i=0,s=0}}function bt(t){let e=0,r=0,n=t.length;e:for(;n--;){let o=t[n];if(o===Te){r++;continue}for(let u=o.length-1;u>=0;u--){let i=o[u];if(i===\" \"||i===\"\t\")e++;else{t[n]=o.slice(0,u+1);break e}}}if(e>0||r>0)for(t.length=n+1;r-- >0;)t.push(Te);return e}function Qe(t,e,r,n,o,u){if(r===Number.POSITIVE_INFINITY)return!0;let i=e.length,s=[t],a=[];for(;r>=0;){if(s.length===0){if(i===0)return!0;s.push(e[--i]);continue}let{mode:D,doc:c}=s.pop();switch(G(c)){case W:a.push(c),r-=we(c);break;case $:case k:{let F=kr(c);for(let f=F.length-1;f>=0;f--)s.push({mode:D,doc:F[f]});break}case S:case v:case L:case O:s.push({mode:D,doc:c.contents});break;case P:r+=bt(a);break;case A:{if(u&&c.break)return!1;let F=c.break?Y:D,f=c.expandedStates&&F===Y?y(!1,c.expandedStates,-1):c.contents;s.push({mode:F,doc:f});break}case B:{let f=(c.groupId?o[c.groupId]||q:D)===Y?c.breakContents:c.flatContents;f&&s.push({mode:D,doc:f});break}case x:if(D===Y||c.hard)return!0;c.soft||(a.push(\" \"),r--);break;case I:n=!0;break;case R:if(n)return!1;break}}return!1}function pe(t,e){let r={},n=e.printWidth,o=be(e.endOfLine),u=0,i=[{ind:Sr(),mode:Y,doc:t}],s=[],a=!1,D=[],c=0;for(wr(t);i.length>0;){let{ind:f,mode:d,doc:l}=i.pop();switch(G(l)){case W:{let p=o!==`\n`?re(!1,l,`\n`,o):l;s.push(p),i.length>0&&(u+=we(p));break}case $:for(let p=l.length-1;p>=0;p--)i.push({ind:f,mode:d,doc:l[p]});break;case z:if(c>=2)throw new Error(\"There are too many 'cursor' in doc.\");s.push(Te),c++;break;case S:i.push({ind:Ou(f,e),mode:d,doc:l.contents});break;case v:i.push({ind:Nu(f,l.n,e),mode:d,doc:l.contents});break;case P:u-=bt(s);break;case A:switch(d){case q:if(!a){i.push({ind:f,mode:l.break?Y:q,doc:l.contents});break}case Y:{a=!1;let p={ind:f,mode:q,doc:l.contents},m=n-u,E=D.length>0;if(!l.break&&Qe(p,i,m,E,r))i.push(p);else if(l.expandedStates){let h=y(!1,l.expandedStates,-1);if(l.break){i.push({ind:f,mode:Y,doc:h});break}else for(let g=1;g<l.expandedStates.length+1;g++)if(g>=l.expandedStates.length){i.push({ind:f,mode:Y,doc:h});break}else{let C=l.expandedStates[g],_={ind:f,mode:q,doc:C};if(Qe(_,i,m,E,r)){i.push(_);break}}}else i.push({ind:f,mode:Y,doc:l.contents});break}}l.id&&(r[l.id]=y(!1,i,-1).mode);break;case k:{let p=n-u,{parts:m}=l;if(m.length===0)break;let[E,h]=m,g={ind:f,mode:q,doc:E},C={ind:f,mode:Y,doc:E},_=Qe(g,[],p,D.length>0,r,!0);if(m.length===1){_?i.push(g):i.push(C);break}let ee={ind:f,mode:q,doc:h},M={ind:f,mode:Y,doc:h};if(m.length===2){_?i.push(ee,g):i.push(M,C);break}m.splice(0,2);let te={ind:f,mode:d,doc:Ge(m)},tr=m[0];Qe({ind:f,mode:q,doc:[E,h,tr]},[],p,D.length>0,r,!0)?i.push(te,ee,g):_?i.push(te,M,g):i.push(te,M,C);break}case B:case L:{let p=l.groupId?r[l.groupId]:d;if(p===Y){let m=l.type===B?l.breakContents:l.negate?l.contents:ae(l.contents);m&&i.push({ind:f,mode:d,doc:m})}if(p===q){let m=l.type===B?l.flatContents:l.negate?ae(l.contents):l.contents;m&&i.push({ind:f,mode:d,doc:m})}break}case I:D.push({ind:f,mode:d,doc:l.contents});break;case R:D.length>0&&i.push({ind:f,mode:d,doc:Ae});break;case x:switch(d){case q:if(l.hard)a=!0;else{l.soft||(s.push(\" \"),u+=1);break}case Y:if(D.length>0){i.push({ind:f,mode:d,doc:l},...D.reverse()),D.length=0;break}l.literal?f.root?(s.push(o,f.root.value),u=f.root.length):(s.push(o),u=0):(u-=bt(s),s.push(o+f.value),u=f.length);break}break;case O:i.push({ind:f,mode:d,doc:l.contents});break;case b:break;default:throw new X(l)}i.length===0&&D.length>0&&(i.push(...D.reverse()),D.length=0)}let F=s.indexOf(Te);if(F!==-1){let f=s.indexOf(Te,F+1),d=s.slice(0,F).join(\"\"),l=s.slice(F+1,f).join(\"\"),p=s.slice(f+1).join(\"\");return{formatted:d+l+p,cursorNodeStart:d.length,cursorNodeText:l}}return{formatted:s.join(\"\")}}function Z(t){var e;if(!t)return\"\";if(Array.isArray(t)){let r=[];for(let n of t)if(Array.isArray(n))r.push(...Z(n));else{let o=Z(n);o!==\"\"&&r.push(o)}return r}return t.type===B?{...t,breakContents:Z(t.breakContents),flatContents:Z(t.flatContents)}:t.type===A?{...t,contents:Z(t.contents),expandedStates:(e=t.expandedStates)==null?void 0:e.map(Z)}:t.type===k?{type:\"fill\",parts:t.parts.map(Z)}:t.contents?{...t,contents:Z(t.contents)}:t}function vr(t){let e=Object.create(null),r=new Set;return n(Z(t));function n(u,i,s){var a,D;if(typeof u==\"string\")return JSON.stringify(u);if(Array.isArray(u)){let c=u.map(n).filter(Boolean);return c.length===1?c[0]:`[${c.join(\", \")}]`}if(u.type===x){let c=((a=s==null?void 0:s[i+1])==null?void 0:a.type)===b;return u.literal?c?\"literalline\":\"literallineWithoutBreakParent\":u.hard?c?\"hardline\":\"hardlineWithoutBreakParent\":u.soft?\"softline\":\"line\"}if(u.type===b)return((D=s==null?void 0:s[i-1])==null?void 0:D.type)===x&&s[i-1].hard?void 0:\"breakParent\";if(u.type===P)return\"trim\";if(u.type===S)return\"indent(\"+n(u.contents)+\")\";if(u.type===v)return u.n===Number.NEGATIVE_INFINITY?\"dedentToRoot(\"+n(u.contents)+\")\":u.n<0?\"dedent(\"+n(u.contents)+\")\":u.n.type===\"root\"?\"markAsRoot(\"+n(u.contents)+\")\":\"align(\"+JSON.stringify(u.n)+\", \"+n(u.contents)+\")\";if(u.type===B)return\"ifBreak(\"+n(u.breakContents)+(u.flatContents?\", \"+n(u.flatContents):\"\")+(u.groupId?(u.flatContents?\"\":', \"\"')+`, { groupId: ${o(u.groupId)} }`:\"\")+\")\";if(u.type===L){let c=[];u.negate&&c.push(\"negate: true\"),u.groupId&&c.push(`groupId: ${o(u.groupId)}`);let F=c.length>0?`, { ${c.join(\", \")} }`:\"\";return`indentIfBreak(${n(u.contents)}${F})`}if(u.type===A){let c=[];u.break&&u.break!==\"propagated\"&&c.push(\"shouldBreak: true\"),u.id&&c.push(`id: ${o(u.id)}`);let F=c.length>0?`, { ${c.join(\", \")} }`:\"\";return u.expandedStates?`conditionalGroup([${u.expandedStates.map(f=>n(f)).join(\",\")}]${F})`:`group(${n(u.contents)}${F})`}if(u.type===k)return`fill([${u.parts.map(c=>n(c)).join(\", \")}])`;if(u.type===I)return\"lineSuffix(\"+n(u.contents)+\")\";if(u.type===R)return\"lineSuffixBoundary\";if(u.type===O)return`label(${JSON.stringify(u.label)}, ${n(u.contents)})`;throw new Error(\"Unknown doc type \"+u.type)}function o(u){if(typeof u!=\"symbol\")return JSON.stringify(String(u));if(u in e)return e[u];let i=u.description||\"symbol\";for(let s=0;;s++){let a=i+(s>0?` #${s}`:\"\");if(!r.has(a))return r.add(a),e[u]=`Symbol.for(${JSON.stringify(a)})`}}}function Tu(t,e,r=0){let n=0;for(let o=r;o<t.length;++o)t[o]===\"\t\"?n=n+e-n%e:n++;return n}var de=Tu;var Se=class extends Error{name=\"ConfigError\"},ve=class extends Error{name=\"UndefinedParserError\"};var Pr={cursorOffset:{category:\"Special\",type:\"int\",default:-1,range:{start:-1,end:1/0,step:1},description:`Print (to stderr) where a cursor at the given position would move to after formatting.\nThis option cannot be used with --range-start and --range-end.`,cliCategory:\"Editor\"},endOfLine:{category:\"Global\",type:\"choice\",default:\"lf\",description:\"Which end of line characters to apply.\",choices:[{value:\"lf\",description:\"Line Feed only (\\\\n), common on Linux and macOS as well as inside git repos\"},{value:\"crlf\",description:\"Carriage Return + Line Feed characters (\\\\r\\\\n), common on Windows\"},{value:\"cr\",description:\"Carriage Return character only (\\\\r), used very rarely\"},{value:\"auto\",description:`Maintain existing\n(mixed values within one file are normalised by looking at what's used after the first line)`}]},filepath:{category:\"Special\",type:\"path\",description:\"Specify the input filepath. This will be used to do parser inference.\",cliName:\"stdin-filepath\",cliCategory:\"Other\",cliDescription:\"Path to the file to pretend that stdin comes from.\"},insertPragma:{category:\"Special\",type:\"boolean\",default:!1,description:\"Insert @format pragma into file's first docblock comment.\",cliCategory:\"Other\"},parser:{category:\"Global\",type:\"choice\",default:void 0,description:\"Which parser to use.\",exception:t=>typeof t==\"string\"||typeof t==\"function\",choices:[{value:\"flow\",description:\"Flow\"},{value:\"babel\",description:\"JavaScript\"},{value:\"babel-flow\",description:\"Flow\"},{value:\"babel-ts\",description:\"TypeScript\"},{value:\"typescript\",description:\"TypeScript\"},{value:\"acorn\",description:\"JavaScript\"},{value:\"espree\",description:\"JavaScript\"},{value:\"meriyah\",description:\"JavaScript\"},{value:\"css\",description:\"CSS\"},{value:\"less\",description:\"Less\"},{value:\"scss\",description:\"SCSS\"},{value:\"json\",description:\"JSON\"},{value:\"json5\",description:\"JSON5\"},{value:\"json-stringify\",description:\"JSON.stringify\"},{value:\"graphql\",description:\"GraphQL\"},{value:\"markdown\",description:\"Markdown\"},{value:\"mdx\",description:\"MDX\"},{value:\"vue\",description:\"Vue\"},{value:\"yaml\",description:\"YAML\"},{value:\"glimmer\",description:\"Ember / Handlebars\"},{value:\"html\",description:\"HTML\"},{value:\"angular\",description:\"Angular\"},{value:\"lwc\",description:\"Lightning Web Components\"}]},plugins:{type:\"path\",array:!0,default:[{value:[]}],category:\"Global\",description:\"Add a plugin. Multiple plugins can be passed as separate `--plugin`s.\",exception:t=>typeof t==\"string\"||typeof t==\"object\",cliName:\"plugin\",cliCategory:\"Config\"},printWidth:{category:\"Global\",type:\"int\",default:80,description:\"The line length where Prettier will try wrap.\",range:{start:0,end:1/0,step:1}},rangeEnd:{category:\"Special\",type:\"int\",default:1/0,range:{start:0,end:1/0,step:1},description:`Format code ending at a given character offset (exclusive).\nThe range will extend forwards to the end of the selected statement.\nThis option cannot be used with --cursor-offset.`,cliCategory:\"Editor\"},rangeStart:{category:\"Special\",type:\"int\",default:0,range:{start:0,end:1/0,step:1},description:`Format code starting at a given character offset.\nThe range will extend backwards to the start of the first line containing the selected statement.\nThis option cannot be used with --cursor-offset.`,cliCategory:\"Editor\"},requirePragma:{category:\"Special\",type:\"boolean\",default:!1,description:`Require either '@prettier' or '@format' to be present in the file's first docblock comment\nin order for it to be formatted.`,cliCategory:\"Other\"},tabWidth:{type:\"int\",category:\"Global\",default:2,description:\"Number of spaces per indentation level.\",range:{start:0,end:1/0,step:1}},useTabs:{category:\"Global\",type:\"boolean\",default:!1,description:\"Indent with tabs instead of spaces.\"},embeddedLanguageFormatting:{category:\"Global\",type:\"choice\",default:\"auto\",description:\"Control how Prettier formats quoted code embedded in the file.\",choices:[{value:\"auto\",description:\"Format embedded code if Prettier can automatically identify it.\"},{value:\"off\",description:\"Never automatically format embedded code.\"}]}};function et({plugins:t=[],showDeprecated:e=!1}={}){let r=t.flatMap(o=>o.languages??[]),n=[];for(let o of vu(Object.assign({},...t.map(({options:u})=>u),Pr)))!e&&o.deprecated||(Array.isArray(o.choices)&&(e||(o.choices=o.choices.filter(u=>!u.deprecated)),o.name===\"parser\"&&(o.choices=[...o.choices,...Su(o.choices,r,t)])),o.pluginDefaults=Object.fromEntries(t.filter(u=>{var i;return((i=u.defaultOptions)==null?void 0:i[o.name])!==void 0}).map(u=>[u.name,u.defaultOptions[o.name]])),n.push(o));return{languages:r,options:n}}function*Su(t,e,r){let n=new Set(t.map(o=>o.value));for(let o of e)if(o.parsers){for(let u of o.parsers)if(!n.has(u)){n.add(u);let i=r.find(a=>a.parsers&&Object.prototype.hasOwnProperty.call(a.parsers,u)),s=o.name;i!=null&&i.name&&(s+=` (plugin: ${i.name})`),yield{value:u,description:s}}}}function vu(t){let e=[];for(let[r,n]of Object.entries(t)){let o={name:r,...n};Array.isArray(o.default)&&(o.default=y(!1,o.default,-1).value),e.push(o)}return e}var Pu=t=>t.split(/[/\\\\]/).pop();function Lr(t,e){if(!e)return;let r=Pu(e).toLowerCase();return t.find(n=>{var o,u;return((o=n.extensions)==null?void 0:o.some(i=>r.endsWith(i)))||((u=n.filenames)==null?void 0:u.some(i=>i.toLowerCase()===r))})}function Lu(t,e){if(e)return t.find(({name:r})=>r.toLowerCase()===e)??t.find(({aliases:r})=>r==null?void 0:r.includes(e))??t.find(({extensions:r})=>r==null?void 0:r.includes(`.${e}`))}function Iu(t,e){let r=t.plugins.flatMap(o=>o.languages??[]),n=Lu(r,e.language)??Lr(r,e.physicalFile)??Lr(r,e.file)??(e.physicalFile,void 0);return n==null?void 0:n.parsers[0]}var Ir=Iu;var ne={key:t=>/^[$_a-zA-Z][$_a-zA-Z0-9]*$/.test(t)?t:JSON.stringify(t),value(t){if(t===null||typeof t!=\"object\")return JSON.stringify(t);if(Array.isArray(t))return`[${t.map(r=>ne.value(r)).join(\", \")}]`;let e=Object.keys(t);return e.length===0?\"{}\":`{ ${e.map(r=>`${ne.key(r)}: ${ne.value(t[r])}`).join(\", \")} }`},pair:({key:t,value:e})=>ne.value({[t]:e})};Pe();var Rr=(t,e,{descriptor:r})=>{let n=[`${N.yellow(typeof t==\"string\"?r.key(t):r.pair(t))} is deprecated`];return e&&n.push(`we now treat it as ${N.blue(typeof e==\"string\"?r.key(e):r.pair(e))}`),n.join(\"; \")+\".\"};Pe();var tt=Symbol.for(\"vnopts.VALUE_NOT_EXIST\"),Fe=Symbol.for(\"vnopts.VALUE_UNCHANGED\");var Yr=\" \".repeat(2),Vr=(t,e,r)=>{let{text:n,list:o}=r.normalizeExpectedResult(r.schemas[t].expected(r)),u=[];return n&&u.push(jr(t,e,n,r.descriptor)),o&&u.push([jr(t,e,o.title,r.descriptor)].concat(o.values.map(i=>$r(i,r.loggerPrintWidth))).join(`\n`)),Ur(u,r.loggerPrintWidth)};function jr(t,e,r,n){return[`Invalid ${N.red(n.key(t))} value.`,`Expected ${N.blue(r)},`,`but received ${e===tt?N.gray(\"nothing\"):N.red(n.value(e))}.`].join(\" \")}function $r({text:t,list:e},r){let n=[];return t&&n.push(`- ${N.blue(t)}`),e&&n.push([`- ${N.blue(e.title)}:`].concat(e.values.map(o=>$r(o,r-Yr.length).replace(/^|\\n/g,`$&${Yr}`))).join(`\n`)),Ur(n,r)}function Ur(t,e){if(t.length===1)return t[0];let[r,n]=t,[o,u]=t.map(i=>i.split(`\n`,1)[0].length);return o>e&&o>u?n:r}Pe();var wt=[],Mr=[];function Ot(t,e){if(t===e)return 0;let r=t;t.length>e.length&&(t=e,e=r);let n=t.length,o=e.length;for(;n>0&&t.charCodeAt(~-n)===e.charCodeAt(~-o);)n--,o--;let u=0;for(;u<n&&t.charCodeAt(u)===e.charCodeAt(u);)u++;if(n-=u,o-=u,n===0)return o;let i,s,a,D,c=0,F=0;for(;c<n;)Mr[c]=t.charCodeAt(u+c),wt[c]=++c;for(;F<o;)for(i=e.charCodeAt(u+F),a=F++,s=F,c=0;c<n;c++)D=i===Mr[c]?a:a+1,a=wt[c],s=wt[c]=a>s?D>s?s+1:D:D>a?a+1:D;return s}var rt=(t,e,{descriptor:r,logger:n,schemas:o})=>{let u=[`Ignored unknown option ${N.yellow(r.pair({key:t,value:e}))}.`],i=Object.keys(o).sort().find(s=>Ot(t,s)<3);i&&u.push(`Did you mean ${N.blue(r.key(i))}?`),n.warn(u.join(\" \"))};var Ru=[\"default\",\"expected\",\"validate\",\"deprecated\",\"forward\",\"redirect\",\"overlap\",\"preprocess\",\"postprocess\"];function Yu(t,e){let r=new t(e),n=Object.create(r);for(let o of Ru)o in e&&(n[o]=ju(e[o],r,w.prototype[o].length));return n}var w=class{static create(e){return Yu(this,e)}constructor(e){this.name=e.name}default(e){}expected(e){return\"nothing\"}validate(e,r){return!1}deprecated(e,r){return!1}forward(e,r){}redirect(e,r){}overlap(e,r,n){return e}preprocess(e,r){return e}postprocess(e,r){return Fe}};function ju(t,e,r){return typeof t==\"function\"?(...n)=>t(...n.slice(0,r-1),e,...n.slice(r-1)):()=>t}var nt=class extends w{constructor(e){super(e),this._sourceName=e.sourceName}expected(e){return e.schemas[this._sourceName].expected(e)}validate(e,r){return r.schemas[this._sourceName].validate(e,r)}redirect(e,r){return this._sourceName}};var ut=class extends w{expected(){return\"anything\"}validate(){return!0}};var ot=class extends w{constructor({valueSchema:e,name:r=e.name,...n}){super({...n,name:r}),this._valueSchema=e}expected(e){let{text:r,list:n}=e.normalizeExpectedResult(this._valueSchema.expected(e));return{text:r&&`an array of ${r}`,list:n&&{title:\"an array of the following values\",values:[{list:n}]}}}validate(e,r){if(!Array.isArray(e))return!1;let n=[];for(let o of e){let u=r.normalizeValidateResult(this._valueSchema.validate(o,r),o);u!==!0&&n.push(u.value)}return n.length===0?!0:{value:n}}deprecated(e,r){let n=[];for(let o of e){let u=r.normalizeDeprecatedResult(this._valueSchema.deprecated(o,r),o);u!==!1&&n.push(...u.map(({value:i})=>({value:[i]})))}return n}forward(e,r){let n=[];for(let o of e){let u=r.normalizeForwardResult(this._valueSchema.forward(o,r),o);n.push(...u.map(Wr))}return n}redirect(e,r){let n=[],o=[];for(let u of e){let i=r.normalizeRedirectResult(this._valueSchema.redirect(u,r),u);\"remain\"in i&&n.push(i.remain),o.push(...i.redirect.map(Wr))}return n.length===0?{redirect:o}:{redirect:o,remain:n}}overlap(e,r){return e.concat(r)}};function Wr({from:t,to:e}){return{from:[t],to:e}}var it=class extends w{expected(){return\"true or false\"}validate(e){return typeof e==\"boolean\"}};function Gr(t,e){let r=Object.create(null);for(let n of t){let o=n[e];if(r[o])throw new Error(`Duplicate ${e} ${JSON.stringify(o)}`);r[o]=n}return r}function Kr(t,e){let r=new Map;for(let n of t){let o=n[e];if(r.has(o))throw new Error(`Duplicate ${e} ${JSON.stringify(o)}`);r.set(o,n)}return r}function Hr(){let t=Object.create(null);return e=>{let r=JSON.stringify(e);return t[r]?!0:(t[r]=!0,!1)}}function qr(t,e){let r=[],n=[];for(let o of t)e(o)?r.push(o):n.push(o);return[r,n]}function Jr(t){return t===Math.floor(t)}function Xr(t,e){if(t===e)return 0;let r=typeof t,n=typeof e,o=[\"undefined\",\"object\",\"boolean\",\"number\",\"string\"];return r!==n?o.indexOf(r)-o.indexOf(n):r!==\"string\"?Number(t)-Number(e):t.localeCompare(e)}function Zr(t){return(...e)=>{let r=t(...e);return typeof r==\"string\"?new Error(r):r}}function Nt(t){return t===void 0?{}:t}function Tt(t){if(typeof t==\"string\")return{text:t};let{text:e,list:r}=t;return Vu((e||r)!==void 0,\"Unexpected `expected` result, there should be at least one field.\"),r?{text:e,list:{title:r.title,values:r.values.map(Tt)}}:{text:e}}function St(t,e){return t===!0?!0:t===!1?{value:e}:t}function vt(t,e,r=!1){return t===!1?!1:t===!0?r?!0:[{value:e}]:\"value\"in t?[t]:t.length===0?!1:t}function zr(t,e){return typeof t==\"string\"||\"key\"in t?{from:e,to:t}:\"from\"in t?{from:t.from,to:t.to}:{from:e,to:t.to}}function st(t,e){return t===void 0?[]:Array.isArray(t)?t.map(r=>zr(r,e)):[zr(t,e)]}function Pt(t,e){let r=st(typeof t==\"object\"&&\"redirect\"in t?t.redirect:t,e);return r.length===0?{remain:e,redirect:r}:typeof t==\"object\"&&\"remain\"in t?{remain:t.remain,redirect:r}:{redirect:r}}function Vu(t,e){if(!t)throw new Error(e)}var at=class extends w{constructor(e){super(e),this._choices=Kr(e.choices.map(r=>r&&typeof r==\"object\"?r:{value:r}),\"value\")}expected({descriptor:e}){let r=Array.from(this._choices.keys()).map(i=>this._choices.get(i)).filter(({hidden:i})=>!i).map(i=>i.value).sort(Xr).map(e.value),n=r.slice(0,-2),o=r.slice(-2);return{text:n.concat(o.join(\" or \")).join(\", \"),list:{title:\"one of the following values\",values:r}}}validate(e){return this._choices.has(e)}deprecated(e){let r=this._choices.get(e);return r&&r.deprecated?{value:e}:!1}forward(e){let r=this._choices.get(e);return r?r.forward:void 0}redirect(e){let r=this._choices.get(e);return r?r.redirect:void 0}};var Dt=class extends w{expected(){return\"a number\"}validate(e,r){return typeof e==\"number\"}};var ct=class extends Dt{expected(){return\"an integer\"}validate(e,r){return r.normalizeValidateResult(super.validate(e,r),e)===!0&&Jr(e)}};var Le=class extends w{expected(){return\"a string\"}validate(e){return typeof e==\"string\"}};var Qr=ne,en=rt,tn=Vr,rn=Rr;var lt=class{constructor(e,r){let{logger:n=console,loggerPrintWidth:o=80,descriptor:u=Qr,unknown:i=en,invalid:s=tn,deprecated:a=rn,missing:D=()=>!1,required:c=()=>!1,preprocess:F=d=>d,postprocess:f=()=>Fe}=r||{};this._utils={descriptor:u,logger:n||{warn:()=>{}},loggerPrintWidth:o,schemas:Gr(e,\"name\"),normalizeDefaultResult:Nt,normalizeExpectedResult:Tt,normalizeDeprecatedResult:vt,normalizeForwardResult:st,normalizeRedirectResult:Pt,normalizeValidateResult:St},this._unknownHandler=i,this._invalidHandler=Zr(s),this._deprecatedHandler=a,this._identifyMissing=(d,l)=>!(d in l)||D(d,l),this._identifyRequired=c,this._preprocess=F,this._postprocess=f,this.cleanHistory()}cleanHistory(){this._hasDeprecationWarned=Hr()}normalize(e){let r={},o=[this._preprocess(e,this._utils)],u=()=>{for(;o.length!==0;){let i=o.shift(),s=this._applyNormalization(i,r);o.push(...s)}};u();for(let i of Object.keys(this._utils.schemas)){let s=this._utils.schemas[i];if(!(i in r)){let a=Nt(s.default(this._utils));\"value\"in a&&o.push({[i]:a.value})}}u();for(let i of Object.keys(this._utils.schemas)){if(!(i in r))continue;let s=this._utils.schemas[i],a=r[i],D=s.postprocess(a,this._utils);D!==Fe&&(this._applyValidation(D,i,s),r[i]=D)}return this._applyPostprocess(r),this._applyRequiredCheck(r),r}_applyNormalization(e,r){let n=[],{knownKeys:o,unknownKeys:u}=this._partitionOptionKeys(e);for(let i of o){let s=this._utils.schemas[i],a=s.preprocess(e[i],this._utils);this._applyValidation(a,i,s);let D=({from:d,to:l})=>{n.push(typeof l==\"string\"?{[l]:d}:{[l.key]:l.value})},c=({value:d,redirectTo:l})=>{let p=vt(s.deprecated(d,this._utils),a,!0);if(p!==!1)if(p===!0)this._hasDeprecationWarned(i)||this._utils.logger.warn(this._deprecatedHandler(i,l,this._utils));else for(let{value:m}of p){let E={key:i,value:m};if(!this._hasDeprecationWarned(E)){let h=typeof l==\"string\"?{key:l,value:m}:l;this._utils.logger.warn(this._deprecatedHandler(E,h,this._utils))}}};st(s.forward(a,this._utils),a).forEach(D);let f=Pt(s.redirect(a,this._utils),a);if(f.redirect.forEach(D),\"remain\"in f){let d=f.remain;r[i]=i in r?s.overlap(r[i],d,this._utils):d,c({value:d})}for(let{from:d,to:l}of f.redirect)c({value:d,redirectTo:l})}for(let i of u){let s=e[i];this._applyUnknownHandler(i,s,r,(a,D)=>{n.push({[a]:D})})}return n}_applyRequiredCheck(e){for(let r of Object.keys(this._utils.schemas))if(this._identifyMissing(r,e)&&this._identifyRequired(r))throw this._invalidHandler(r,tt,this._utils)}_partitionOptionKeys(e){let[r,n]=qr(Object.keys(e).filter(o=>!this._identifyMissing(o,e)),o=>o in this._utils.schemas);return{knownKeys:r,unknownKeys:n}}_applyValidation(e,r,n){let o=St(n.validate(e,this._utils),e);if(o!==!0)throw this._invalidHandler(r,o.value,this._utils)}_applyUnknownHandler(e,r,n,o){let u=this._unknownHandler(e,r,this._utils);if(u)for(let i of Object.keys(u)){if(this._identifyMissing(i,u))continue;let s=u[i];i in this._utils.schemas?o(i,s):n[i]=s}}_applyPostprocess(e){let r=this._postprocess(e,this._utils);if(r!==Fe){if(r.delete)for(let n of r.delete)delete e[n];if(r.override){let{knownKeys:n,unknownKeys:o}=this._partitionOptionKeys(r.override);for(let u of n){let i=r.override[u];this._applyValidation(i,u,this._utils.schemas[u]),e[u]=i}for(let u of o){let i=r.override[u];this._applyUnknownHandler(u,i,e,(s,a)=>{let D=this._utils.schemas[s];this._applyValidation(a,s,D),e[s]=a})}}}}};var Lt;function Uu(t,e,{logger:r=!1,isCLI:n=!1,passThrough:o=!1,FlagSchema:u,descriptor:i}={}){if(n){if(!u)throw new Error(\"'FlagSchema' option is required.\");if(!i)throw new Error(\"'descriptor' option is required.\")}else i=ne;let s=o?Array.isArray(o)?(f,d)=>o.includes(f)?{[f]:d}:void 0:(f,d)=>({[f]:d}):(f,d,l)=>{let{_:p,...m}=l.schemas;return rt(f,d,{...l,schemas:m})},a=Mu(e,{isCLI:n,FlagSchema:u}),D=new lt(a,{logger:r,unknown:s,descriptor:i}),c=r!==!1;c&&Lt&&(D._hasDeprecationWarned=Lt);let F=D.normalize(t);return c&&(Lt=D._hasDeprecationWarned),F}function Mu(t,{isCLI:e,FlagSchema:r}){let n=[];e&&n.push(ut.create({name:\"_\"}));for(let o of t)n.push(Wu(o,{isCLI:e,optionInfos:t,FlagSchema:r})),o.alias&&e&&n.push(nt.create({name:o.alias,sourceName:o.name}));return n}function Wu(t,{isCLI:e,optionInfos:r,FlagSchema:n}){let{name:o}=t,u={name:o},i,s={};switch(t.type){case\"int\":i=ct,e&&(u.preprocess=Number);break;case\"string\":i=Le;break;case\"choice\":i=at,u.choices=t.choices.map(a=>a!=null&&a.redirect?{...a,redirect:{to:{key:t.name,value:a.redirect}}}:a);break;case\"boolean\":i=it;break;case\"flag\":i=n,u.flags=r.flatMap(a=>[a.alias,a.description&&a.name,a.oppositeDescription&&`no-${a.name}`].filter(Boolean));break;case\"path\":i=Le;break;default:throw new Error(`Unexpected type ${t.type}`)}if(t.exception?u.validate=(a,D,c)=>t.exception(a)||D.validate(a,c):u.validate=(a,D,c)=>a===void 0||D.validate(a,c),t.redirect&&(s.redirect=a=>a?{to:{key:t.redirect.option,value:t.redirect.value}}:void 0),t.deprecated&&(s.deprecated=!0),e&&!t.array){let a=u.preprocess||(D=>D);u.preprocess=(D,c,F)=>c.preprocess(a(Array.isArray(D)?y(!1,D,-1):D),F)}return t.array?ot.create({...e?{preprocess:a=>Array.isArray(a)?a:[a]}:{},...s,valueSchema:i.create(u)}):i.create({...u,...s})}var nn=Uu;function It(t,e){if(!e)throw new Error(\"parserName is required.\");for(let n=t.length-1;n>=0;n--){let o=t[n];if(o.parsers&&Object.prototype.hasOwnProperty.call(o.parsers,e))return o}let r=`Couldn't resolve parser \"${e}\".`;throw r+=\" Plugins must be explicitly added to the standalone bundle.\",new Se(r)}function un(t,e){if(!e)throw new Error(\"astFormat is required.\");for(let n=t.length-1;n>=0;n--){let o=t[n];if(o.printers&&Object.prototype.hasOwnProperty.call(o.printers,e))return o}let r=`Couldn't find plugin for AST format \"${e}\".`;throw r+=\" Plugins must be explicitly added to the standalone bundle.\",new Se(r)}function ft({plugins:t,parser:e}){let r=It(t,e);return Rt(r,e)}function Rt(t,e){let r=t.parsers[e];return typeof r==\"function\"?r():r}function on(t,e){let r=t.printers[e];return typeof r==\"function\"?r():r}var sn={astFormat:\"estree\",printer:{},originalText:void 0,locStart:null,locEnd:null};async function zu(t,e={}){var F;let r={...t};if(!r.parser)if(r.filepath){if(r.parser=Ir(r,{physicalFile:r.filepath}),!r.parser)throw new ve(`No parser could be inferred for file \"${r.filepath}\".`)}else throw new ve(\"No parser and no file path given, couldn't infer a parser.\");let n=et({plugins:t.plugins,showDeprecated:!0}).options,o={...sn,...Object.fromEntries(n.filter(f=>f.default!==void 0).map(f=>[f.name,f.default]))},u=It(r.plugins,r.parser),i=await Rt(u,r.parser);r.astFormat=i.astFormat,r.locEnd=i.locEnd,r.locStart=i.locStart;let s=(F=u.printers)!=null&&F[i.astFormat]?u:un(r.plugins,i.astFormat),a=await on(s,i.astFormat);r.printer=a;let D=s.defaultOptions?Object.fromEntries(Object.entries(s.defaultOptions).filter(([,f])=>f!==void 0)):{},c={...o,...D};for(let[f,d]of Object.entries(c))(r[f]===null||r[f]===void 0)&&(r[f]=d);return r.parser===\"json\"&&(r.trailingComma=\"none\"),nn(r,n,{passThrough:Object.keys(sn),...e})}var ue=zu;var an=new Set([\"tokens\",\"comments\",\"parent\",\"enclosingNode\",\"precedingNode\",\"followingNode\"]),Gu=t=>Object.keys(t).filter(e=>!an.has(e));function Ku(t){return t?e=>t(e,an):Gu}var J=Ku;function Hu(t,e){let{printer:{massageAstNode:r,getVisitorKeys:n}}=e;if(!r)return t;let o=J(n),u=r.ignoredProperties??new Set;return i(t);function i(s,a){if(!(s!==null&&typeof s==\"object\"))return s;if(Array.isArray(s))return s.map(f=>i(f,a)).filter(Boolean);let D={},c=new Set(o(s));for(let f in s)!Object.prototype.hasOwnProperty.call(s,f)||u.has(f)||(c.has(f)?D[f]=i(s[f],s):D[f]=s[f]);let F=r(s,D,a);if(F!==null)return F??D}}var Dn=Hu;var mn=ur(Fn(),1);async function eo(t,e){let r=await ft(e),n=r.preprocess?r.preprocess(t,e):t;e.originalText=n;let o;try{o=await r.parse(n,e,e)}catch(u){to(u,t)}return{text:n,ast:o}}function to(t,e){let{loc:r}=t;if(r){let n=(0,mn.codeFrameColumns)(e,r,{highlightCode:!0});throw t.message+=`\n`+n,t.codeFrame=n,t}throw t}var De=eo;var Ie,Vt,me,dt,jt=class{constructor(e){gt(this,Ie);gt(this,me);this.stack=[e]}get key(){let{stack:e,siblings:r}=this;return y(!1,e,r===null?-2:-4)??null}get index(){return this.siblings===null?null:y(!1,this.stack,-2)}get node(){return y(!1,this.stack,-1)}get parent(){return this.getNode(1)}get grandparent(){return this.getNode(2)}get isInArray(){return this.siblings!==null}get siblings(){let{stack:e}=this,r=y(!1,e,-3);return Array.isArray(r)?r:null}get next(){let{siblings:e}=this;return e===null?null:e[this.index+1]}get previous(){let{siblings:e}=this;return e===null?null:e[this.index-1]}get isFirst(){return this.index===0}get isLast(){let{siblings:e,index:r}=this;return e!==null&&r===e.length-1}get isRoot(){return this.stack.length===1}get root(){return this.stack[0]}get ancestors(){return[...le(this,me,dt).call(this)]}getName(){let{stack:e}=this,{length:r}=e;return r>1?y(!1,e,-2):null}getValue(){return y(!1,this.stack,-1)}getNode(e=0){let r=le(this,Ie,Vt).call(this,e);return r===-1?null:this.stack[r]}getParentNode(e=0){return this.getNode(e+1)}call(e,...r){let{stack:n}=this,{length:o}=n,u=y(!1,n,-1);for(let i of r)u=u[i],n.push(i,u);try{return e(this)}finally{n.length=o}}callParent(e,r=0){let n=le(this,Ie,Vt).call(this,r+1),o=this.stack.splice(n+1);try{return e(this)}finally{this.stack.push(...o)}}each(e,...r){let{stack:n}=this,{length:o}=n,u=y(!1,n,-1);for(let i of r)u=u[i],n.push(i,u);try{for(let i=0;i<u.length;++i)n.push(i,u[i]),e(this,i,u),n.length-=2}finally{n.length=o}}map(e,...r){let n=[];return this.each((o,u,i)=>{n[u]=e(o,u,i)},...r),n}match(...e){let r=this.stack.length-1,n=null,o=this.stack[r--];for(let u of e){if(o===void 0)return!1;let i=null;if(typeof n==\"number\"&&(i=n,n=this.stack[r--],o=this.stack[r--]),u&&!u(o,n,i))return!1;n=this.stack[r--],o=this.stack[r--]}return!0}findAncestor(e){for(let r of le(this,me,dt).call(this))if(e(r))return r}hasAncestor(e){for(let r of le(this,me,dt).call(this))if(e(r))return!0;return!1}};Ie=new WeakSet,Vt=function(e){let{stack:r}=this;for(let n=r.length-1;n>=0;n-=2)if(!Array.isArray(r[n])&&--e<0)return n;return-1},me=new WeakSet,dt=function*(){let{stack:e}=this;for(let r=e.length-3;r>=0;r-=2){let n=e[r];Array.isArray(n)||(yield n)}};var En=jt;var Re=()=>{};Re.ok=Re;Re.strictEqual=Re;var Ye=Re;function Ee(t){return(e,r,n)=>{let o=!!(n!=null&&n.backwards);if(r===!1)return!1;let{length:u}=e,i=r;for(;i>=0&&i<u;){let s=e.charAt(i);if(t instanceof RegExp){if(!t.test(s))return i}else if(!t.includes(s))return i;o?i--:i++}return i===-1||i===u?i:!1}}var hn=Ee(/\\s/),T=Ee(\" \t\"),Ft=Ee(\",; \t\"),mt=Ee(/[^\\n\\r]/);function ro(t,e,r){let n=!!(r!=null&&r.backwards);if(e===!1)return!1;let o=t.charAt(e);if(n){if(t.charAt(e-1)===\"\\r\"&&o===`\n`)return e-2;if(o===`\n`||o===\"\\r\"||o===\"\\u2028\"||o===\"\\u2029\")return e-1}else{if(o===\"\\r\"&&t.charAt(e+1)===`\n`)return e+2;if(o===`\n`||o===\"\\r\"||o===\"\\u2028\"||o===\"\\u2029\")return e+1}return e}var V=ro;function no(t,e,r={}){let n=T(t,r.backwards?e-1:e,r),o=V(t,n,r);return n!==o}var U=no;function uo(t){return Array.isArray(t)&&t.length>0}var $t=uo;function oo(t){return t!==null&&typeof t==\"object\"}var Cn=oo;function*Ut(t,e){let{getVisitorKeys:r,filter:n=()=>!0}=e,o=u=>Cn(u)&&n(u);for(let u of r(t)){let i=t[u];if(Array.isArray(i))for(let s of i)o(s)&&(yield s);else o(i)&&(yield i)}}function*gn(t,e){let r=[t];for(let n=0;n<r.length;n++){let o=r[n];for(let u of Ut(o,e))yield u,r.push(u)}}function io(t){let e=t.type||t.kind||\"(unknown type)\",r=String(t.name||t.id&&(typeof t.id==\"object\"?t.id.name:t.id)||t.key&&(typeof t.key==\"object\"?t.key.name:t.key)||t.value&&(typeof t.value==\"object\"?\"\":String(t.value))||t.operator||\"\");return r.length>20&&(r=r.slice(0,19)+\"\\u2026\"),e+(r?\" \"+r:\"\")}function Mt(t,e){(t.comments??(t.comments=[])).push(e),e.printed=!1,e.nodeDescription=io(t)}function oe(t,e){e.leading=!0,e.trailing=!1,Mt(t,e)}function Q(t,e,r){e.leading=!1,e.trailing=!1,r&&(e.marker=r),Mt(t,e)}function ie(t,e){e.leading=!1,e.trailing=!0,Mt(t,e)}var Wt=new WeakMap;function Et(t,e){if(Wt.has(t))return Wt.get(t);let{printer:{getCommentChildNodes:r,canAttachComment:n,getVisitorKeys:o},locStart:u,locEnd:i}=e;if(!n)return[];let s=((r==null?void 0:r(t,e))??[...Ut(t,{getVisitorKeys:J(o)})]).flatMap(a=>n(a)?[a]:Et(a,e));return s.sort((a,D)=>u(a)-u(D)||i(a)-i(D)),Wt.set(t,s),s}function xn(t,e,r,n){let{locStart:o,locEnd:u}=r,i=o(e),s=u(e),a=Et(t,r),D,c,F=0,f=a.length;for(;F<f;){let d=F+f>>1,l=a[d],p=o(l),m=u(l);if(p<=i&&s<=m)return xn(l,e,r,l);if(m<=i){D=l,F=d+1;continue}if(s<=p){c=l,f=d;continue}throw new Error(\"Comment location overlaps with node location\")}if((n==null?void 0:n.type)===\"TemplateLiteral\"){let{quasis:d}=n,l=Gt(d,e,r);D&&Gt(d,D,r)!==l&&(D=null),c&&Gt(d,c,r)!==l&&(c=null)}return{enclosingNode:n,precedingNode:D,followingNode:c}}var zt=()=>!1;function _n(t,e){let{comments:r}=t;if(delete t.comments,!$t(r)||!e.printer.canAttachComment)return;let n=[],{locStart:o,locEnd:u,printer:{experimentalFeatures:{avoidAstMutation:i=!1}={},handleComments:s={}},originalText:a}=e,{ownLine:D=zt,endOfLine:c=zt,remaining:F=zt}=s,f=r.map((d,l)=>({...xn(t,d,e),comment:d,text:a,options:e,ast:t,isLastComment:r.length-1===l}));for(let[d,l]of f.entries()){let{comment:p,precedingNode:m,enclosingNode:E,followingNode:h,text:g,options:C,ast:_,isLastComment:ee}=l;if(C.parser===\"json\"||C.parser===\"json5\"||C.parser===\"__js_expression\"||C.parser===\"__ts_expression\"||C.parser===\"__vue_expression\"||C.parser===\"__vue_ts_expression\"){if(o(p)-o(_)<=0){oe(_,p);continue}if(u(p)-u(_)>=0){ie(_,p);continue}}let M;if(i?M=[l]:(p.enclosingNode=E,p.precedingNode=m,p.followingNode=h,M=[p,g,C,_,ee]),so(g,C,f,d))p.placement=\"ownLine\",D(...M)||(h?oe(h,p):m?ie(m,p):E?Q(E,p):Q(_,p));else if(ao(g,C,f,d))p.placement=\"endOfLine\",c(...M)||(m?ie(m,p):h?oe(h,p):E?Q(E,p):Q(_,p));else if(p.placement=\"remaining\",!F(...M))if(m&&h){let te=n.length;te>0&&n[te-1].followingNode!==h&&yn(n,C),n.push(l)}else m?ie(m,p):h?oe(h,p):E?Q(E,p):Q(_,p)}if(yn(n,e),!i)for(let d of r)delete d.precedingNode,delete d.enclosingNode,delete d.followingNode}var An=t=>!/[\\S\\n\\u2028\\u2029]/.test(t);function so(t,e,r,n){let{comment:o,precedingNode:u}=r[n],{locStart:i,locEnd:s}=e,a=i(o);if(u)for(let D=n-1;D>=0;D--){let{comment:c,precedingNode:F}=r[D];if(F!==u||!An(t.slice(s(c),a)))break;a=i(c)}return U(t,a,{backwards:!0})}function ao(t,e,r,n){let{comment:o,followingNode:u}=r[n],{locStart:i,locEnd:s}=e,a=s(o);if(u)for(let D=n+1;D<r.length;D++){let{comment:c,followingNode:F}=r[D];if(F!==u||!An(t.slice(a,i(c))))break;a=s(c)}return U(t,a)}function yn(t,e){var s,a;let r=t.length;if(r===0)return;let{precedingNode:n,followingNode:o}=t[0],u=e.locStart(o),i;for(i=r;i>0;--i){let{comment:D,precedingNode:c,followingNode:F}=t[i-1];Ye.strictEqual(c,n),Ye.strictEqual(F,o);let f=e.originalText.slice(e.locEnd(D),u);if(((a=(s=e.printer).isGap)==null?void 0:a.call(s,f,e))??/^[\\s(]*$/.test(f))u=e.locStart(D);else break}for(let[D,{comment:c}]of t.entries())D<i?ie(n,c):oe(o,c);for(let D of[n,o])D.comments&&D.comments.length>1&&D.comments.sort((c,F)=>e.locStart(c)-e.locStart(F));t.length=0}function Gt(t,e,r){let n=r.locStart(e)-1;for(let o=1;o<t.length;++o)if(n<r.locStart(t[o]))return o-1;return 0}function Do(t,e){let r=e-1;r=T(t,r,{backwards:!0}),r=V(t,r,{backwards:!0}),r=T(t,r,{backwards:!0});let n=V(t,r,{backwards:!0});return r!==n}var je=Do;function Bn(t,e){let r=t.node;return r.printed=!0,e.printer.printComment(t,e)}function co(t,e){var c;let r=t.node,n=[Bn(t,e)],{printer:o,originalText:u,locStart:i,locEnd:s}=e;if((c=o.isBlockComment)==null?void 0:c.call(o,r)){let F=U(u,s(r))?U(u,i(r),{backwards:!0})?H:Ke:\" \";n.push(F)}else n.push(H);let D=V(u,T(u,s(r)));return D!==!1&&U(u,D)&&n.push(H),n}function lo(t,e,r){var D;let n=t.node,o=Bn(t,e),{printer:u,originalText:i,locStart:s}=e,a=(D=u.isBlockComment)==null?void 0:D.call(u,n);if(r!=null&&r.hasLineSuffix&&!(r!=null&&r.isBlock)||U(i,s(n),{backwards:!0})){let c=je(i,s(n));return{doc:_e([H,c?H:\"\",o]),isBlock:a,hasLineSuffix:!0}}return!a||r!=null&&r.hasLineSuffix?{doc:[_e([\" \",o]),fe],isBlock:a,hasLineSuffix:!0}:{doc:[\" \",o],isBlock:a,hasLineSuffix:!1}}function fo(t,e){let r=t.node;if(!r)return{};let n=e[Symbol.for(\"printedComments\")];if((r.comments||[]).filter(a=>!n.has(a)).length===0)return{leading:\"\",trailing:\"\"};let u=[],i=[],s;return t.each(()=>{let a=t.node;if(n!=null&&n.has(a))return;let{leading:D,trailing:c}=a;D?u.push(co(t,e)):c&&(s=lo(t,e,s),i.push(s.doc))},\"comments\"),{leading:u,trailing:i}}function kn(t,e,r){let{leading:n,trailing:o}=fo(t,r);return!n&&!o?e:Ze(e,u=>[n,u,o])}function bn(t){let{[Symbol.for(\"comments\")]:e,[Symbol.for(\"printedComments\")]:r}=t;for(let n of e){if(!n.printed&&!r.has(n))throw new Error('Comment \"'+n.value.trim()+'\" was not printed. Please report this error!');delete n.printed}}async function wn(t,e,r,n,o){let{embeddedLanguageFormatting:u,printer:{embed:i,hasPrettierIgnore:s=()=>!1,getVisitorKeys:a}}=r;if(!i||u!==\"auto\")return;if(i.length>2)throw new Error(\"printer.embed has too many parameters. The API changed in Prettier v3. Please update your plugin. See https://prettier.io/docs/en/plugins.html#optional-embed\");let D=J(i.getVisitorKeys??a),c=[];d();let F=t.stack;for(let{print:l,node:p,pathStack:m}of c)try{t.stack=m;let E=await l(f,e,t,r);E&&o.set(p,E)}catch(E){if(globalThis.PRETTIER_DEBUG)throw E}t.stack=F;function f(l,p){return po(l,p,r,n)}function d(){let{node:l}=t;if(l===null||typeof l!=\"object\"||s(t))return;for(let m of D(l))Array.isArray(l[m])?t.each(d,m):t.call(d,m);let p=i(t,r);if(p){if(typeof p==\"function\"){c.push({print:p,node:l,pathStack:[...t.stack]});return}o.set(l,p)}}}async function po(t,e,r,n){let o=await ue({...r,...e,parentParser:r.parser,originalText:t},{passThrough:!0}),{ast:u}=await De(t,o),i=await n(u,o);return Xe(i)}function Fo(t){return()=>{}}var On=Fo;function mo(t,e){let{originalText:r,[Symbol.for(\"comments\")]:n,locStart:o,locEnd:u,[Symbol.for(\"printedComments\")]:i}=e,{node:s}=t,a=o(s),D=u(s);for(let c of n)o(c)>=a&&u(c)<=D&&i.add(c);return r.slice(a,D)}var Nn=mo;async function Ve(t,e){({ast:t}=await Kt(t,e));let r=new Map,n=new En(t),o=On(e),u=new Map;await wn(n,s,e,Ve,u);let i=await Tn(n,e,s,void 0,u);return bn(e),i;function s(D,c){return D===void 0||D===n?a(c):Array.isArray(D)?n.call(()=>a(c),...D):n.call(()=>a(c),D)}function a(D){o(n);let c=n.node;if(c==null)return\"\";let F=c&&typeof c==\"object\"&&D===void 0;if(F&&r.has(c))return r.get(c);let f=Tn(n,e,s,D,u);return F&&r.set(c,f),f}}function Tn(t,e,r,n,o){var a;let{node:u}=t,{printer:i}=e,s;return(a=i.hasPrettierIgnore)!=null&&a.call(i,t)?s=Nn(t,e):o.has(u)?s=o.get(u):s=i.print(t,e,r,n),u===e.cursorNode&&(s=Ze(s,D=>[Be,D,Be])),i.printComment&&(!i.willPrintOwnComments||!i.willPrintOwnComments(t,e))&&(s=kn(t,s,e)),s}async function Kt(t,e){let r=t.comments??[];e[Symbol.for(\"comments\")]=r,e[Symbol.for(\"tokens\")]=t.tokens??[],e[Symbol.for(\"printedComments\")]=new Set,_n(t,e);let{printer:{preprocess:n}}=e;return t=n?await n(t,e):t,{ast:t,comments:r}}var Eo=({parser:t})=>t===\"json\"||t===\"json5\"||t===\"json-stringify\";function ho(t,e){let r=[t.node,...t.parentNodes],n=new Set([e.node,...e.parentNodes]);return r.find(o=>Pn.has(o.type)&&n.has(o))}function Sn(t){let e=t.length-1;for(;;){let r=t[e];if((r==null?void 0:r.type)===\"Program\"||(r==null?void 0:r.type)===\"File\")e--;else break}return t.slice(0,e+1)}function Co(t,e,{locStart:r,locEnd:n}){let o=t.node,u=e.node;if(o===u)return{startNode:o,endNode:u};let i=r(t.node);for(let a of Sn(e.parentNodes))if(r(a)>=i)u=a;else break;let s=n(e.node);for(let a of Sn(t.parentNodes)){if(n(a)<=s)o=a;else break;if(o===u)break}return{startNode:o,endNode:u}}function Ht(t,e,r,n,o=[],u){let{locStart:i,locEnd:s}=r,a=i(t),D=s(t);if(!(e>D||e<a||u===\"rangeEnd\"&&e===a||u===\"rangeStart\"&&e===D)){for(let c of Et(t,r)){let F=Ht(c,e,r,n,[t,...o],u);if(F)return F}if(!n||n(t,o[0]))return{node:t,parentNodes:o}}}function go(t,e){return e!==\"DeclareExportDeclaration\"&&t!==\"TypeParameterDeclaration\"&&(t===\"Directive\"||t===\"TypeAlias\"||t===\"TSExportAssignment\"||t.startsWith(\"Declare\")||t.startsWith(\"TSDeclare\")||t.endsWith(\"Statement\")||t.endsWith(\"Declaration\"))}var Pn=new Set([\"JsonRoot\",\"ObjectExpression\",\"ArrayExpression\",\"StringLiteral\",\"NumericLiteral\",\"BooleanLiteral\",\"NullLiteral\",\"UnaryExpression\",\"TemplateLiteral\"]),yo=new Set([\"OperationDefinition\",\"FragmentDefinition\",\"VariableDefinition\",\"TypeExtensionDefinition\",\"ObjectTypeDefinition\",\"FieldDefinition\",\"DirectiveDefinition\",\"EnumTypeDefinition\",\"EnumValueDefinition\",\"InputValueDefinition\",\"InputObjectTypeDefinition\",\"SchemaDefinition\",\"OperationTypeDefinition\",\"InterfaceTypeDefinition\",\"UnionTypeDefinition\",\"ScalarTypeDefinition\"]);function vn(t,e,r){if(!e)return!1;switch(t.parser){case\"flow\":case\"babel\":case\"babel-flow\":case\"babel-ts\":case\"typescript\":case\"acorn\":case\"espree\":case\"meriyah\":case\"__babel_estree\":return go(e.type,r==null?void 0:r.type);case\"json\":case\"json5\":case\"json-stringify\":return Pn.has(e.type);case\"graphql\":return yo.has(e.kind);case\"vue\":return e.tag!==\"root\"}return!1}function Ln(t,e,r){let{rangeStart:n,rangeEnd:o,locStart:u,locEnd:i}=e;Ye.ok(o>n);let s=t.slice(n,o).search(/\\S/),a=s===-1;if(!a)for(n+=s;o>n&&!/\\S/.test(t[o-1]);--o);let D=Ht(r,n,e,(d,l)=>vn(e,d,l),[],\"rangeStart\"),c=a?D:Ht(r,o,e,d=>vn(e,d),[],\"rangeEnd\");if(!D||!c)return{rangeStart:0,rangeEnd:0};let F,f;if(Eo(e)){let d=ho(D,c);F=d,f=d}else({startNode:F,endNode:f}=Co(D,c,e));return{rangeStart:Math.min(u(F),u(f)),rangeEnd:Math.max(i(F),i(f))}}function xo(t,e){let{cursorOffset:r,locStart:n,locEnd:o}=e,u=J(e.printer.getVisitorKeys),i=a=>n(a)<=r&&o(a)>=r,s=t;for(let a of gn(t,{getVisitorKeys:u,filter:i}))s=a;return s}var In=xo;var $n=\"\\uFEFF\",Rn=Symbol(\"cursor\");async function Un(t,e,r=0){if(!t||t.trim().length===0)return{formatted:\"\",cursorOffset:-1,comments:[]};let{ast:n,text:o}=await De(t,e);e.cursorOffset>=0&&(e.cursorNode=In(n,e));let u=await Ve(n,e,r);r>0&&(u=qe([H,u],r,e.tabWidth));let i=pe(u,e);if(r>0){let a=i.formatted.trim();i.cursorNodeStart!==void 0&&(i.cursorNodeStart-=i.formatted.indexOf(a)),i.formatted=a+be(e.endOfLine)}let s=e[Symbol.for(\"comments\")];if(e.cursorOffset>=0){let a,D,c,F,f;if(e.cursorNode&&i.cursorNodeText?(a=e.locStart(e.cursorNode),D=o.slice(a,e.locEnd(e.cursorNode)),c=e.cursorOffset-a,F=i.cursorNodeStart,f=i.cursorNodeText):(a=0,D=o,c=e.cursorOffset,F=0,f=i.formatted),D===f)return{formatted:i.formatted,cursorOffset:F+c,comments:s};let d=D.split(\"\");d.splice(c,0,Rn);let l=f.split(\"\"),p=(0,Vn.diffArrays)(d,l),m=F;for(let E of p)if(E.removed){if(E.value.includes(Rn))break}else m+=E.count;return{formatted:i.formatted,cursorOffset:m,comments:s}}return{formatted:i.formatted,cursorOffset:-1,comments:s}}async function _o(t,e){let{ast:r,text:n}=await De(t,e),{rangeStart:o,rangeEnd:u}=Ln(n,e,r),i=n.slice(o,u),s=Math.min(o,n.lastIndexOf(`\n`,o)+1),a=n.slice(s,o).match(/^\\s*/)[0],D=de(a,e.tabWidth),c=await Un(i,{...e,rangeStart:0,rangeEnd:Number.POSITIVE_INFINITY,cursorOffset:e.cursorOffset>o&&e.cursorOffset<=u?e.cursorOffset-o:-1,endOfLine:\"lf\"},D),F=c.formatted.trimEnd(),{cursorOffset:f}=e;f>u?f+=F.length-i.length:c.cursorOffset>=0&&(f=c.cursorOffset+o);let d=n.slice(0,o)+F+n.slice(u);if(e.endOfLine!==\"lf\"){let l=be(e.endOfLine);f>=0&&l===`\\r\n`&&(f+=Bt(d.slice(0,f),`\n`)),d=re(!1,d,`\n`,l)}return{formatted:d,cursorOffset:f,comments:c.comments}}function qt(t,e,r){return typeof e!=\"number\"||Number.isNaN(e)||e<0||e>t.length?r:e}function Yn(t,e){let{cursorOffset:r,rangeStart:n,rangeEnd:o}=e;return r=qt(t,r,-1),n=qt(t,n,0),o=qt(t,o,t.length),{...e,cursorOffset:r,rangeStart:n,rangeEnd:o}}function Mn(t,e){let{cursorOffset:r,rangeStart:n,rangeEnd:o,endOfLine:u}=Yn(t,e),i=t.charAt(0)===$n;if(i&&(t=t.slice(1),r--,n--,o--),u===\"auto\"&&(u=gr(t)),t.includes(\"\\r\")){let s=a=>Bt(t.slice(0,Math.max(a,0)),`\\r\n`);r-=s(r),n-=s(n),o-=s(o),t=yr(t)}return{hasBOM:i,text:t,options:Yn(t,{...e,cursorOffset:r,rangeStart:n,rangeEnd:o,endOfLine:u})}}async function jn(t,e){let r=await ft(e);return!r.hasPragma||r.hasPragma(t)}async function Jt(t,e){let{hasBOM:r,text:n,options:o}=Mn(t,await ue(e));if(o.rangeStart>=o.rangeEnd&&n!==\"\"||o.requirePragma&&!await jn(n,o))return{formatted:t,cursorOffset:e.cursorOffset,comments:[]};let u;return o.rangeStart>0||o.rangeEnd<n.length?u=await _o(n,o):(!o.requirePragma&&o.insertPragma&&o.printer.insertPragma&&!await jn(n,o)&&(n=o.printer.insertPragma(n)),u=await Un(n,o)),r&&(u.formatted=$n+u.formatted,u.cursorOffset>=0&&u.cursorOffset++),u}async function Wn(t,e,r){let{text:n,options:o}=Mn(t,await ue(e)),u=await De(n,o);return r&&(r.preprocessForPrint&&(u.ast=await Kt(u.ast,o)),r.massage&&(u.ast=Dn(u.ast,o))),u}async function zn(t,e){e=await ue(e);let r=await Ve(t,e);return pe(r,e)}async function Gn(t,e){let r=vr(t),{formatted:n}=await Jt(r,{...e,parser:\"__js_expression\"});return n}async function Kn(t,e){e=await ue(e);let{ast:r}=await De(t,e);return Ve(r,e)}async function Hn(t,e){return pe(t,await ue(e))}var Zt={};Me(Zt,{addDanglingComment:()=>Q,addLeadingComment:()=>oe,addTrailingComment:()=>ie,getAlignmentSize:()=>de,getIndentSize:()=>Jn,getMaxContinuousCount:()=>qn,getNextNonSpaceNonCommentCharacter:()=>Qn,getNextNonSpaceNonCommentCharacterIndex:()=>Io,getStringWidth:()=>we,hasNewline:()=>U,hasNewlineInRange:()=>Xn,hasSpaces:()=>Zn,isNextLineEmpty:()=>Vo,isNextLineEmptyAfterIndex:()=>ht,isPreviousLineEmpty:()=>Yo,makeString:()=>eu,skip:()=>Ee,skipEverythingButNewLine:()=>mt,skipInlineComment:()=>he,skipNewline:()=>V,skipSpaces:()=>T,skipToLineEnd:()=>Ft,skipTrailingComment:()=>Ce,skipWhitespace:()=>hn});function Bo(t,e){if(e===!1)return!1;if(t.charAt(e)===\"/\"&&t.charAt(e+1)===\"*\"){for(let r=e+2;r<t.length;++r)if(t.charAt(r)===\"*\"&&t.charAt(r+1)===\"/\")return r+2}return e}var he=Bo;function ko(t,e){return e===!1?!1:t.charAt(e)===\"/\"&&t.charAt(e+1)===\"/\"?mt(t,e):e}var Ce=ko;function bo(t,e){let r=null,n=e;for(;n!==r;)r=n,n=T(t,n),n=he(t,n),n=Ce(t,n),n=V(t,n);return n}var $e=bo;function wo(t,e){let r=null,n=e;for(;n!==r;)r=n,n=Ft(t,n),n=he(t,n),n=T(t,n);return n=Ce(t,n),n=V(t,n),n!==!1&&U(t,n)}var ht=wo;function Xt(t){if(typeof t!=\"string\")throw new TypeError(\"Expected a string\");return t.replace(/[|\\\\{}()[\\]^$+*?.]/g,\"\\\\$&\").replace(/-/g,\"\\\\x2d\")}function Oo(t,e){let r=t.match(new RegExp(`(${Xt(e)})+`,\"g\"));return r===null?0:r.reduce((n,o)=>Math.max(n,o.length/e.length),0)}var qn=Oo;function No(t,e){let r=t.lastIndexOf(`\n`);return r===-1?0:de(t.slice(r+1).match(/^[\\t ]*/)[0],e)}var Jn=No;function To(t,e,r){for(let n=e;n<r;++n)if(t.charAt(n)===`\n`)return!0;return!1}var Xn=To;function So(t,e,r={}){return T(t,r.backwards?e-1:e,r)!==e}var Zn=So;function vo(t,e){let r=$e(t,e);return r===!1?\"\":t.charAt(r)}var Qn=vo;function Po(t,e,r){let n=e==='\"'?\"'\":'\"',u=re(!1,t,/\\\\(.)|([\"'])/gs,(i,s,a)=>s===n?s:a===e?\"\\\\\"+a:a||(r&&/^[^\\n\\r\"'0-7\\\\bfnrt-vx\\u2028\\u2029]$/.test(s)?s:\"\\\\\"+s));return e+u+e}var eu=Po;function Lo(t,e,r){return $e(t,r(e))}function Io(t,e){return arguments.length===2||typeof e==\"number\"?$e(t,e):Lo(...arguments)}function Ro(t,e,r){return je(t,r(e))}function Yo(t,e){return arguments.length===2||typeof e==\"number\"?je(t,e):Ro(...arguments)}function jo(t,e,r){return ht(t,r(e))}function Vo(t,e){return arguments.length===2||typeof e==\"number\"?ht(t,e):jo(...arguments)}var Qt={};Me(Qt,{builders:()=>$o,printer:()=>Uo,utils:()=>Mo});var $o={join:ke,line:Ke,softline:hr,hardline:H,literalline:He,group:_t,conditionalGroup:pr,fill:Ge,lineSuffix:_e,lineSuffixBoundary:mr,cursor:Be,breakParent:fe,ifBreak:dr,trim:Er,indent:ae,indentIfBreak:Fr,align:se,addAlignmentToDoc:qe,markAsRoot:lr,dedentToRoot:cr,dedent:fr,hardlineWithoutBreakParent:Ae,literallineWithoutBreakParent:At,label:Cr,concat:t=>t},Uo={printDocToString:pe},Mo={willBreak:br,traverseDoc:xe,findInDoc:Je,mapDoc:Ne,removeLines:Or,stripTrailingHardline:Xe,replaceEndOfLine:Nr,canBreak:Tr};var tu=\"3.0.1\";function ce(t,e=1){return async(...r)=>{let n=r[e]??{},o=n.plugins??[];return r[e]={...n,plugins:Array.isArray(o)?o:Object.values(o)},t(...r)}}var ru=ce(Jt);async function nu(t,e){let{formatted:r}=await ru(t,{...e,cursorOffset:-1});return r}async function Wo(t,e){return await nu(t,e)===t}var zo=ce(et,0),Go={parse:ce(Wn),formatAST:ce(zn),formatDoc:ce(Gn),printToDoc:ce(Kn),printDocToString:ce(Hn)};var jc=er;export{Go as __debug,Wo as check,jc as default,Qt as doc,nu as format,ru as formatWithCursor,zo as getSupportInfo,Zt as util,tu as version};\n","import * as prettier from \"prettier/standalone\";\nexport const util = prettier.util;\n//# sourceMappingURL=util.js.map","import { SyntaxKind } from \"../../core/types.js\";\nimport { util } from \"./util.js\";\n/**\n * Override the default behavior to attach comments to syntax node.\n */\nexport const commentHandler = {\n ownLine: (comment, text, options, ast, isLastComment) => [\n addEmptyInterfaceComment,\n addEmptyModelComment,\n addStatementDecoratorComment,\n handleOnlyComments,\n ].some((x) => x({ comment, text, options, ast: ast, isLastComment })),\n};\n/**\n * When a comment is on an empty interface make sure it gets added as a dangling comment on it and not on the identifier.\n *\n * @example\n *\n * interface Foo {\n * // My comment\n * }\n */\nfunction addEmptyInterfaceComment({ comment }) {\n const { precedingNode, enclosingNode } = comment;\n if (enclosingNode &&\n enclosingNode.kind === SyntaxKind.InterfaceStatement &&\n enclosingNode.operations.length === 0 &&\n precedingNode &&\n precedingNode.kind === SyntaxKind.Identifier) {\n util.addDanglingComment(enclosingNode, comment, undefined);\n return true;\n }\n return false;\n}\n/**\n * When a comment is in between decorators.\n *\n * @example\n *\n * @foo\n * // My comment\n * @bar\n * model Foo {\n * }\n */\nfunction addStatementDecoratorComment({ comment }) {\n const { enclosingNode, precedingNode } = comment;\n if (precedingNode &&\n precedingNode.kind === SyntaxKind.DecoratorExpression &&\n enclosingNode &&\n (enclosingNode.kind === SyntaxKind.NamespaceStatement ||\n enclosingNode.kind === SyntaxKind.ModelStatement ||\n enclosingNode.kind === SyntaxKind.EnumStatement ||\n enclosingNode.kind === SyntaxKind.OperationStatement ||\n enclosingNode.kind === SyntaxKind.ScalarStatement ||\n enclosingNode.kind === SyntaxKind.InterfaceStatement ||\n enclosingNode.kind === SyntaxKind.ModelProperty ||\n enclosingNode.kind === SyntaxKind.EnumMember ||\n enclosingNode.kind === SyntaxKind.UnionStatement)) {\n util.addTrailingComment(precedingNode, comment);\n return true;\n }\n return false;\n}\n/**\n * When a comment is on an empty model make sure it gets added as a dangling comment on it and not on the identifier.\n *\n * @example\n *\n * model Foo {\n * // My comment\n * }\n */\nfunction addEmptyModelComment({ comment }) {\n const { precedingNode, enclosingNode } = comment;\n if (enclosingNode &&\n enclosingNode.kind === SyntaxKind.ModelStatement &&\n enclosingNode.properties.length === 0 &&\n precedingNode &&\n (precedingNode === enclosingNode.is ||\n precedingNode === enclosingNode.id ||\n precedingNode === enclosingNode.extends)) {\n util.addDanglingComment(enclosingNode, comment, undefined);\n return true;\n }\n return false;\n}\nfunction handleOnlyComments({ comment, ast, isLastComment }) {\n var _a, _b;\n const { enclosingNode } = comment;\n if (((_a = ast === null || ast === void 0 ? void 0 : ast.statements) === null || _a === void 0 ? void 0 : _a.length) === 0) {\n if (isLastComment) {\n util.addDanglingComment(ast, comment, undefined);\n }\n else {\n util.addLeadingComment(ast, comment);\n }\n return true;\n }\n if ((enclosingNode === null || enclosingNode === void 0 ? void 0 : enclosingNode.kind) === SyntaxKind.TypeSpecScript &&\n enclosingNode.statements.length === 0 &&\n ((_b = enclosingNode.directives) === null || _b === void 0 ? void 0 : _b.length) === 0) {\n if (isLastComment) {\n util.addDanglingComment(enclosingNode, comment, undefined);\n }\n else {\n util.addLeadingComment(enclosingNode, comment);\n }\n return true;\n }\n return false;\n}\n//# sourceMappingURL=comment-handler.js.map","import { SyntaxKind } from \"../../core/types.js\";\n/**\n * Check if the current path should be wrapped in parentheses\n * @param path Prettier print path.\n * @param options Prettier options\n */\nexport function needsParens(path, options) {\n const parent = path.getParentNode();\n if (!parent) {\n return false;\n }\n // eslint-disable-next-line deprecation/deprecation\n const node = path.getValue();\n switch (node.kind) {\n case SyntaxKind.IntersectionExpression:\n return (parent.kind === SyntaxKind.UnionExpression || parent.kind === SyntaxKind.ArrayExpression);\n case SyntaxKind.UnionExpression:\n return (parent.kind === SyntaxKind.IntersectionExpression ||\n parent.kind === SyntaxKind.ArrayExpression);\n case SyntaxKind.ProjectionLogicalExpression:\n return parent.kind === SyntaxKind.ProjectionLogicalExpression;\n case SyntaxKind.ProjectionArithmeticExpression:\n return parent.kind === SyntaxKind.ProjectionArithmeticExpression;\n default:\n return false;\n }\n}\n//# sourceMappingURL=needs-parens.js.map","import { builders } from \"prettier/doc\";\nimport { isIdentifierContinue, isIdentifierStart, utf16CodeUnits } from \"../../core/charcode.js\";\nimport { compilerAssert } from \"../../core/diagnostics.js\";\nimport { Keywords } from \"../../core/scanner.js\";\nimport { SyntaxKind, } from \"../../core/types.js\";\nimport { commentHandler } from \"./comment-handler.js\";\nimport { needsParens } from \"./needs-parens.js\";\nimport { util } from \"./util.js\";\nconst { align, breakParent, group, hardline, ifBreak, indent, join, line, softline } = builders;\nconst { isNextLineEmpty } = util;\n/**\n * If the decorators for that node should try to be kept inline.\n */\nconst DecoratorsTryInline = {\n modelProperty: true,\n enumMember: true,\n unionVariant: true,\n};\nexport const typespecPrinter = {\n print: printTypeSpec,\n isBlockComment: (node) => isBlockComment(node),\n canAttachComment: canAttachComment,\n printComment: printComment,\n handleComments: commentHandler,\n};\nexport function printTypeSpec(\n// Path to the AST node to print\npath, options, print) {\n const node = path.getValue();\n const docs = printDocComments(path, options, print);\n const directives = shouldPrintDirective(node) ? printDirectives(path, options, print) : \"\";\n const printedNode = printNode(path, options, print);\n const value = needsParens(path, options) ? [\"(\", printedNode, \")\"] : printedNode;\n const parts = [docs, directives, value];\n if (node.kind === SyntaxKind.TypeSpecScript) {\n // For TypeSpecScript(root of typespec document) we had a new line at the end.\n // This must be done here so the hardline entry can be the last item of the doc array returned by the printer\n // so the markdown(and other embedded formatter) can omit that extra line.\n parts.push(hardline);\n }\n return parts;\n}\nfunction shouldPrintDirective(node) {\n // Model property handle printing directive itself.\n return node.kind !== SyntaxKind.ModelProperty;\n}\nexport function printNode(\n// Path to the AST node to print\npath, options, print) {\n const node = path.getValue();\n switch (node.kind) {\n // Root\n case SyntaxKind.TypeSpecScript:\n return printTypeSpecScript(path, options, print);\n // Statements\n case SyntaxKind.ImportStatement:\n return [`import \"${node.path.value}\";`];\n case SyntaxKind.UsingStatement:\n return [`using `, path.call(print, \"name\"), `;`];\n case SyntaxKind.OperationStatement:\n return printOperationStatement(path, options, print);\n case SyntaxKind.OperationSignatureDeclaration:\n return printOperationSignatureDeclaration(path, options, print);\n case SyntaxKind.OperationSignatureReference:\n return printOperationSignatureReference(path, options, print);\n case SyntaxKind.NamespaceStatement:\n return printNamespaceStatement(path, options, print);\n case SyntaxKind.ModelStatement:\n return printModelStatement(path, options, print);\n case SyntaxKind.ScalarStatement:\n return printScalarStatement(path, options, print);\n case SyntaxKind.AliasStatement:\n return printAliasStatement(path, options, print);\n case SyntaxKind.EnumStatement:\n return printEnumStatement(path, options, print);\n case SyntaxKind.UnionStatement:\n return printUnionStatement(path, options, print);\n case SyntaxKind.InterfaceStatement:\n return printInterfaceStatement(path, options, print);\n // Others.\n case SyntaxKind.Identifier:\n return printIdentifier(node, options);\n case SyntaxKind.StringLiteral:\n return printStringLiteral(path, options);\n case SyntaxKind.NumericLiteral:\n return printNumberLiteral(path, options);\n case SyntaxKind.BooleanLiteral:\n return printBooleanLiteral(path, options);\n case SyntaxKind.ModelExpression:\n return printModelExpression(path, options, print);\n case SyntaxKind.ModelProperty:\n return printModelProperty(path, options, print);\n case SyntaxKind.DecoratorExpression:\n return printDecorator(path, options, print);\n case SyntaxKind.AugmentDecoratorStatement:\n return printAugmentDecorator(path, options, print);\n case SyntaxKind.DirectiveExpression:\n return printDirective(path, options, print);\n case SyntaxKind.UnionExpression:\n return printUnion(path, options, print);\n case SyntaxKind.IntersectionExpression:\n return printIntersection(path, options, print);\n case SyntaxKind.ArrayExpression:\n return printArray(path, options, print);\n case SyntaxKind.TupleExpression:\n return printTuple(path, options, print);\n case SyntaxKind.MemberExpression:\n return printMemberExpression(path, options, print);\n case SyntaxKind.EnumMember:\n return printEnumMember(path, options, print);\n case SyntaxKind.EnumSpreadMember:\n return printEnumSpreadMember(path, options, print);\n case SyntaxKind.UnionVariant:\n return printUnionVariant(path, options, print);\n case SyntaxKind.TypeReference:\n return printTypeReference(path, options, print);\n case SyntaxKind.ValueOfExpression:\n return printValueOfExpression(path, options, print);\n case SyntaxKind.TemplateParameterDeclaration:\n return printTemplateParameterDeclaration(path, options, print);\n case SyntaxKind.ModelSpreadProperty:\n return printModelSpread(path, options, print);\n case SyntaxKind.DecoratorDeclarationStatement:\n return printDecoratorDeclarationStatement(path, options, print);\n case SyntaxKind.FunctionDeclarationStatement:\n return printFunctionDeclarationStatement(path, options, print);\n case SyntaxKind.FunctionParameter:\n return printFunctionParameterDeclaration(path, options, print);\n case SyntaxKind.ExternKeyword:\n return \"extern\";\n case SyntaxKind.VoidKeyword:\n return \"void\";\n case SyntaxKind.NeverKeyword:\n return \"never\";\n case SyntaxKind.UnknownKeyword:\n return \"unknown\";\n case SyntaxKind.ProjectionStatement:\n return printProjectionStatement(path, options, print);\n case SyntaxKind.ProjectionModelSelector:\n return \"model\";\n case SyntaxKind.ProjectionModelPropertySelector:\n return \"modelproperty\";\n case SyntaxKind.ProjectionOperationSelector:\n return \"op\";\n case SyntaxKind.ProjectionUnionSelector:\n return \"union\";\n case SyntaxKind.ProjectionUnionVariantSelector:\n return \"unionvariant\";\n case SyntaxKind.ProjectionInterfaceSelector:\n return \"interface\";\n case SyntaxKind.ProjectionEnumSelector:\n return \"enum\";\n case SyntaxKind.ProjectionEnumMemberSelector:\n return \"enummember\";\n case SyntaxKind.Projection:\n return printProjection(path, options, print);\n case SyntaxKind.ProjectionParameterDeclaration:\n return printProjectionParameterDeclaration(path, options, print);\n case SyntaxKind.ProjectionExpressionStatement:\n return printProjectionExpressionStatement(path, options, print);\n case SyntaxKind.ProjectionIfExpression:\n return printProjectionIfExpressionNode(path, options, print);\n case SyntaxKind.ProjectionBlockExpression:\n return printProjectionBlockExpressionNode(path, options, print);\n case SyntaxKind.ProjectionMemberExpression:\n return printProjectionMemberExpression(path, options, print);\n case SyntaxKind.ProjectionLogicalExpression:\n case SyntaxKind.ProjectionEqualityExpression:\n case SyntaxKind.ProjectionRelationalExpression:\n case SyntaxKind.ProjectionArithmeticExpression:\n return printProjectionLeftRightExpression(path, options, print);\n case SyntaxKind.ProjectionUnaryExpression:\n return printProjectionUnaryExpression(path, options, print);\n case SyntaxKind.ProjectionCallExpression:\n return printProjectionCallExpression(path, options, print);\n case SyntaxKind.ProjectionLambdaExpression:\n return printProjectionLambdaExpression(path, options, print);\n case SyntaxKind.ProjectionLambdaParameterDeclaration:\n return printProjectionLambdaParameterDeclaration(path, options, print);\n case SyntaxKind.ProjectionModelExpression:\n return printModelExpression(path, options, print);\n case SyntaxKind.ProjectionModelProperty:\n return printModelProperty(path, options, print);\n case SyntaxKind.ProjectionModelSpreadProperty:\n return printModelSpread(path, options, print);\n case SyntaxKind.ProjectionTupleExpression:\n return printTuple(path, options, print);\n case SyntaxKind.ProjectionDecoratorReferenceExpression:\n return path.call(print, \"target\");\n case SyntaxKind.Return:\n return printReturnExpression(path, options, print);\n case SyntaxKind.Doc:\n return printDoc(path, options, print);\n case SyntaxKind.DocText:\n case SyntaxKind.DocParamTag:\n case SyntaxKind.DocTemplateTag:\n case SyntaxKind.DocReturnsTag:\n case SyntaxKind.DocUnknownTag:\n // https://github.com/microsoft/typespec/issues/1319 Tracks pretty-printing doc comments.\n compilerAssert(false, \"Currently, doc comments are only handled as regular comments and we do not opt in to parsing them so we shouldn't reach here.\");\n return \"\";\n case SyntaxKind.EmptyStatement:\n return \"\";\n case SyntaxKind.JsSourceFile:\n case SyntaxKind.InvalidStatement:\n return getRawText(node, options);\n default:\n // Dummy const to ensure we handle all node types.\n // If you get an error here, add a case for the new node type\n // you added..\n const _assertNever = node;\n return getRawText(node, options);\n }\n}\nexport function printTypeSpecScript(path, options, print) {\n const node = path.getValue();\n const nodeHasComments = hasComments(node, CommentCheckFlags.Dangling);\n const body = [];\n if (nodeHasComments) {\n body.push(printDanglingComments(path, options, { sameIndent: true }));\n }\n body.push(printStatementSequence(path, options, print, \"statements\"));\n return body;\n}\nexport function printAliasStatement(path, options, print) {\n const id = path.call(print, \"id\");\n const template = printTemplateParameters(path, options, print, \"templateParameters\");\n return [\"alias \", id, template, \" = \", path.call(print, \"value\"), \";\"];\n}\nfunction printTemplateParameters(path, options, print, propertyName) {\n const node = path.getValue();\n const args = node[propertyName];\n if (args.length === 0) {\n return \"\";\n }\n const shouldHug = args.length === 1;\n if (shouldHug) {\n return [\"<\", join(\", \", path.map(print, propertyName)), \">\"];\n }\n else {\n const body = indent([softline, join([\", \", softline], path.map(print, propertyName))]);\n return group([\"<\", body, softline, \">\"]);\n }\n}\nexport function canAttachComment(node) {\n const kind = node.kind;\n return Boolean(kind &&\n kind !== SyntaxKind.LineComment &&\n kind !== SyntaxKind.BlockComment &&\n kind !== SyntaxKind.EmptyStatement &&\n kind !== SyntaxKind.Doc &&\n kind !== SyntaxKind.DocParamTag &&\n kind !== SyntaxKind.DocReturnsTag &&\n kind !== SyntaxKind.DocTemplateTag &&\n kind !== SyntaxKind.DocText &&\n kind !== SyntaxKind.DocUnknownTag &&\n !(node.flags & 8 /* NodeFlags.Synthetic */));\n}\nexport function printComment(commentPath, options) {\n const comment = commentPath.getValue();\n comment.printed = true;\n switch (comment.kind) {\n case SyntaxKind.BlockComment:\n return printBlockComment(commentPath, options);\n case SyntaxKind.LineComment:\n return `${options.originalText.slice(comment.pos, comment.end).trimEnd()}`;\n default:\n throw new Error(`Not a comment: ${JSON.stringify(comment)}`);\n }\n}\nfunction printBlockComment(commentPath, options) {\n const comment = commentPath.getValue();\n const rawComment = options.originalText.slice(comment.pos + 2, comment.end - 2);\n const printed = isIndentableBlockComment(rawComment)\n ? printIndentableBlockCommentContent(rawComment)\n : rawComment;\n return [\"/*\", printed, \"*/\"];\n}\nfunction isIndentableBlockComment(rawComment) {\n // If the comment has multiple lines and every line starts with a star\n // we can fix the indentation of each line. The stars in the `/*` and\n // `*/` delimiters are not included in the comment value, so add them\n // back first.\n const lines = `*${rawComment}*`.split(\"\\n\");\n return lines.length > 1 && lines.every((line) => line.trim()[0] === \"*\");\n}\nfunction printIndentableBlockCommentContent(rawComment) {\n const lines = rawComment.split(\"\\n\");\n return [\n join(hardline, lines.map((line, index) => index === 0\n ? line.trimEnd()\n : \" \" + (index < lines.length - 1 ? line.trim() : line.trimStart()))),\n ];\n}\n/** Print a doc comment. */\nfunction printDoc(path, options, print) {\n const node = path.getValue();\n const rawComment = options.originalText.slice(node.pos + 3, node.end - 2);\n const printed = isIndentableBlockComment(rawComment)\n ? printIndentableBlockCommentContent(rawComment)\n : rawComment.includes(\"\\n\")\n ? rawComment\n : ` ${rawComment.trim()} `;\n return [\"/**\", printed, \"*/\"];\n}\nexport function printDecorators(path, options, print, { tryInline }) {\n const node = path.getValue();\n if (node.decorators.length === 0) {\n return { decorators: \"\", multiline: false };\n }\n const shouldBreak = shouldDecoratorBreakLine(path, options, { tryInline });\n const decorators = path.map((x) => [print(x), ifBreak(line, \" \")], \"decorators\");\n return {\n decorators: group([shouldBreak ? breakParent : \"\", decorators]),\n multiline: shouldBreak,\n };\n}\n/** Check if the decorators of the given node should be broken in sparate line */\nfunction shouldDecoratorBreakLine(path, options, { tryInline }) {\n const node = path.getValue();\n return (!tryInline || node.decorators.length >= 3 || hasNewlineBetweenOrAfterDecorators(node, options));\n}\n/**\n * Check if there is already new lines in between the decorators of the node.\n */\nfunction hasNewlineBetweenOrAfterDecorators(node, options) {\n return node.decorators.some((decorator) => util.hasNewline(options.originalText, decorator.end));\n}\nexport function printDecorator(path, options, print) {\n const args = printDecoratorArgs(path, options, print);\n return [\"@\", path.call(print, \"target\"), args];\n}\nexport function printAugmentDecorator(path, options, print) {\n const args = printAugmentDecoratorArgs(path, options, print);\n return [\"@@\", path.call(print, \"target\"), args, \";\"];\n}\nfunction printAugmentDecoratorArgs(path, options, print) {\n return [\n \"(\",\n group([\n indent(join(\", \", [\n path.call(print, \"targetType\"),\n ...path.map((arg) => [softline, print(arg)], \"arguments\"),\n ])),\n softline,\n ]),\n \")\",\n ];\n}\nexport function printDocComments(path, options, print) {\n const node = path.getValue();\n if (node.docs === undefined || node.docs.length === 0) {\n return \"\";\n }\n const docs = path.map((x) => [print(x), line], \"docs\");\n return group([...docs, breakParent]);\n}\nexport function printDirectives(path, options, print) {\n const node = path.getValue();\n if (node.directives === undefined || node.directives.length === 0) {\n return \"\";\n }\n const directives = path.map((x) => [print(x), line], \"directives\");\n return group([...directives, breakParent]);\n}\nexport function printDirective(path, options, print) {\n const args = printDirectiveArgs(path, options, print);\n return [\"#\", path.call(print, \"target\"), \" \", args];\n}\nfunction printDecoratorArgs(path, options, print) {\n const node = path.getValue();\n if (node.arguments.length === 0) {\n return \"\";\n }\n // So that decorator with single object arguments have ( and { hugging.\n // @deco({\n // value: \"foo\"\n // })\n const shouldHug = node.arguments.length === 1 &&\n (node.arguments[0].kind === SyntaxKind.ModelExpression ||\n node.arguments[0].kind === SyntaxKind.StringLiteral);\n if (shouldHug) {\n return [\n \"(\",\n join(\", \", path.map((arg) => [print(arg)], \"arguments\")),\n \")\",\n ];\n }\n return [\n \"(\",\n group([\n indent(join(\", \", path.map((arg) => [softline, print(arg)], \"arguments\"))),\n softline,\n ]),\n \")\",\n ];\n}\nexport function printDirectiveArgs(path, options, print) {\n const node = path.getValue();\n if (node.arguments.length === 0) {\n return \"\";\n }\n return join(\" \", path.map((arg) => [print(arg)], \"arguments\"));\n}\nexport function printEnumStatement(path, options, print) {\n const { decorators } = printDecorators(path, options, print, { tryInline: false });\n const id = path.call(print, \"id\");\n return [decorators, \"enum \", id, \" \", printEnumBlock(path, options, print)];\n}\nfunction printEnumBlock(path, options, print) {\n const node = path.getValue();\n if (node.members.length === 0) {\n return \"{}\";\n }\n return group([\n \"{\",\n indent([\n hardline,\n join(hardline, path.map((x) => [print(x), \",\"], \"members\")),\n ]),\n hardline,\n \"}\",\n ]);\n}\nexport function printEnumMember(path, options, print) {\n const node = path.getValue();\n const id = path.call(print, \"id\");\n const value = node.value ? [\": \", path.call(print, \"value\")] : \"\";\n const { decorators, multiline } = printDecorators(path, options, print, {\n tryInline: DecoratorsTryInline.enumMember,\n });\n const propertyIndex = path.stack[path.stack.length - 2];\n const isNotFirst = typeof propertyIndex === \"number\" && propertyIndex > 0;\n return [multiline && isNotFirst ? hardline : \"\", decorators, id, value];\n}\nfunction printEnumSpreadMember(path, options, print) {\n return [\"...\", path.call(print, \"target\")];\n}\nexport function printUnionStatement(path, options, print) {\n const id = path.call(print, \"id\");\n const { decorators } = printDecorators(path, options, print, { tryInline: false });\n const generic = printTemplateParameters(path, options, print, \"templateParameters\");\n return [decorators, \"union \", id, generic, \" \", printUnionVariantsBlock(path, options, print)];\n}\nexport function printUnionVariantsBlock(path, options, print) {\n const node = path.getValue();\n if (node.options.length === 0) {\n return \"{}\";\n }\n return group([\n \"{\",\n indent([\n hardline,\n join(hardline, path.map((x) => [print(x), \",\"], \"options\")),\n ]),\n hardline,\n \"}\",\n ]);\n}\nexport function printUnionVariant(path, options, print) {\n const id = path.call(print, \"id\");\n const value = [\": \", path.call(print, \"value\")];\n const { decorators } = printDecorators(path, options, print, {\n tryInline: DecoratorsTryInline.unionVariant,\n });\n return [decorators, id, value];\n}\nexport function printInterfaceStatement(path, options, print) {\n const id = path.call(print, \"id\");\n const { decorators } = printDecorators(path, options, print, { tryInline: false });\n const generic = printTemplateParameters(path, options, print, \"templateParameters\");\n const extendList = printInterfaceExtends(path, options, print);\n return [\n decorators,\n \"interface \",\n id,\n generic,\n extendList,\n \" \",\n printInterfaceMembers(path, options, print),\n ];\n}\nfunction printInterfaceExtends(path, options, print) {\n const node = path.getValue();\n if (node.extends.length === 0) {\n return \"\";\n }\n const keyword = \"extends \";\n return [group(indent([line, keyword, indent(join([\",\", line], path.map(print, \"extends\")))]))];\n}\nexport function printInterfaceMembers(path, options, print) {\n const node = path.getValue();\n const hasOperations = node.operations.length > 0;\n const nodeHasComments = hasComments(node, CommentCheckFlags.Dangling);\n if (!hasOperations && !nodeHasComments) {\n return \"{}\";\n }\n const lastOperation = node.operations[node.operations.length - 1];\n const parts = [];\n path.each((operationPath) => {\n const node = operationPath.getValue();\n const printed = print(operationPath);\n parts.push(printed);\n if (node !== lastOperation) {\n parts.push(hardline);\n if (isNextLineEmpty(options.originalText, node, options.locEnd)) {\n parts.push(hardline);\n }\n }\n }, \"operations\");\n const body = [hardline, parts];\n if (nodeHasComments) {\n body.push(printDanglingComments(path, options, { sameIndent: true }));\n }\n return group([\"{\", indent(body), hardline, \"}\"]);\n}\nfunction printDanglingComments(path, options, { sameIndent }) {\n const node = path.getValue();\n const parts = [];\n if (!node || !node.comments) {\n return \"\";\n }\n path.each((commentPath) => {\n const comment = commentPath.getValue();\n if (!comment.leading && !comment.trailing) {\n parts.push(printComment(path, options));\n }\n }, \"comments\");\n if (parts.length === 0) {\n return \"\";\n }\n if (sameIndent) {\n return join(hardline, parts);\n }\n return indent([hardline, join(hardline, parts)]);\n}\n/**\n * Handle printing an intersection node.\n * @example `Foo & Bar` or `{foo: string} & {bar: string}`\n *\n * @param path Prettier AST Path.\n * @param options Prettier options\n * @param print Prettier child print callback.\n * @returns Prettier document.\n */\nexport function printIntersection(path, options, print) {\n const node = path.getValue();\n const types = path.map(print, \"options\");\n const result = [];\n let wasIndented = false;\n for (let i = 0; i < types.length; ++i) {\n if (i === 0) {\n result.push(types[i]);\n }\n else if (isModelNode(node.options[i - 1]) && isModelNode(node.options[i])) {\n // If both are objects, don't indent\n result.push([\" & \", wasIndented ? indent(types[i]) : types[i]]);\n }\n else if (!isModelNode(node.options[i - 1]) && !isModelNode(node.options[i])) {\n // If no object is involved, go to the next line if it breaks\n result.push(indent([\" &\", line, types[i]]));\n }\n else {\n // If you go from object to non-object or vis-versa, then inline it\n if (i > 1) {\n wasIndented = true;\n }\n result.push(\" & \", i > 1 ? indent(types[i]) : types[i]);\n }\n }\n return group(result);\n}\nfunction isModelNode(node) {\n return node.kind === SyntaxKind.ModelExpression;\n}\nexport function printArray(path, options, print) {\n return [path.call(print, \"elementType\"), \"[]\"];\n}\nexport function printTuple(path, options, print) {\n return group([\n \"[\",\n indent(join(\", \", path.map((arg) => [softline, print(arg)], \"values\"))),\n softline,\n \"]\",\n ]);\n}\nexport function printMemberExpression(path, options, print) {\n const node = path.getValue();\n return [node.base ? [path.call(print, \"base\"), node.selector] : \"\", path.call(print, \"id\")];\n}\nexport function printModelExpression(path, options, print) {\n const inBlock = isModelExpressionInBlock(path);\n const node = path.getValue();\n if (inBlock) {\n return group(printModelPropertiesBlock(path, options, print));\n }\n else {\n const properties = node.properties.length === 0\n ? \"\"\n : indent(joinPropertiesInBlock(path, options, print, ifBreak(\",\", \", \"), softline));\n return group([properties, softline]);\n }\n}\nexport function printModelStatement(path, options, print) {\n const node = path.getValue();\n const id = path.call(print, \"id\");\n const heritage = node.extends\n ? [ifBreak(line, \" \"), \"extends \", path.call(print, \"extends\")]\n : \"\";\n const isBase = node.is ? [ifBreak(line, \" \"), \"is \", path.call(print, \"is\")] : \"\";\n const generic = printTemplateParameters(path, options, print, \"templateParameters\");\n const nodeHasComments = hasComments(node, CommentCheckFlags.Dangling);\n const shouldPrintBody = nodeHasComments || !(node.properties.length === 0 && node.is);\n const body = shouldPrintBody ? [\" \", printModelPropertiesBlock(path, options, print)] : \";\";\n return [\n printDecorators(path, options, print, { tryInline: false }).decorators,\n \"model \",\n id,\n generic,\n group(indent([\"\", heritage, isBase])),\n body,\n ];\n}\nfunction printModelPropertiesBlock(path, options, print) {\n var _a;\n const node = path.getValue();\n const hasProperties = node.properties && node.properties.length > 0;\n const nodeHasComments = hasComments(node, CommentCheckFlags.Dangling);\n if (!hasProperties && !nodeHasComments) {\n return \"{}\";\n }\n const tryInline = ((_a = path.getParentNode()) === null || _a === void 0 ? void 0 : _a.kind) === SyntaxKind.TemplateParameterDeclaration;\n const lineDoc = tryInline ? softline : hardline;\n const seperator = isModelAValue(path) ? \",\" : \";\";\n const body = [joinPropertiesInBlock(path, options, print, seperator, lineDoc)];\n if (nodeHasComments) {\n body.push(printDanglingComments(path, options, { sameIndent: true }));\n }\n return group([\"{\", indent(body), lineDoc, \"}\"]);\n}\nfunction joinPropertiesInBlock(path, options, print, separator, regularLine) {\n const doc = [regularLine];\n const propertyContainerNode = path.getValue();\n let newLineBeforeNextProp = false;\n path.each((item, propertyIndex) => {\n const isFirst = propertyIndex === 0;\n const isLast = propertyIndex === propertyContainerNode.properties.length - 1;\n const shouldWrapInNewLines = shouldWrapPropertyInNewLines(item, options);\n if ((newLineBeforeNextProp || shouldWrapInNewLines) && !isFirst) {\n doc.push(hardline);\n newLineBeforeNextProp = false;\n }\n doc.push(print(item));\n if (isLast) {\n doc.push(ifBreak(separator));\n }\n else {\n doc.push(separator);\n doc.push(regularLine);\n if (shouldWrapInNewLines) {\n newLineBeforeNextProp = true;\n }\n }\n }, \"properties\");\n return doc;\n}\n/**\n * Check if property item (PropertyNode, SpreadProperty) should be wrapped in new lines.\n * It can be wrapped for the following reasons:\n * - has decorators on lines above\n * - has leading comments\n */\nfunction shouldWrapPropertyInNewLines(path, options) {\n var _a;\n const node = path.getValue();\n return (((node.kind === SyntaxKind.ModelProperty || node.kind === SyntaxKind.ProjectionModelProperty) &&\n shouldDecoratorBreakLine(path, options, {\n tryInline: DecoratorsTryInline.modelProperty,\n })) ||\n hasComments(node, CommentCheckFlags.Leading) ||\n (node.docs && ((_a = node.docs) === null || _a === void 0 ? void 0 : _a.length) > 0));\n}\n/**\n * Figure out if this model is being used as a definition or value.\n * @returns true if the model is used as a value(e.g. decorator value), false if it is used as a model definition.\n */\nfunction isModelAValue(path) {\n let count = 0;\n let node = path.getValue();\n do {\n switch (node.kind) {\n case SyntaxKind.ModelStatement:\n case SyntaxKind.AliasStatement:\n case SyntaxKind.OperationStatement:\n return false;\n case SyntaxKind.DecoratorExpression:\n return true;\n }\n } while ((node = path.getParentNode(count++)));\n return true;\n}\nexport function printModelProperty(path, options, print) {\n const node = path.getValue();\n const { decorators } = printDecorators(path, options, print, {\n tryInline: DecoratorsTryInline.modelProperty,\n });\n const id = printIdentifier(node.id, options);\n return [\n printDirectives(path, options, print),\n decorators,\n id,\n node.optional ? \"?: \" : \": \",\n path.call(print, \"value\"),\n node.default ? [\" = \", path.call(print, \"default\")] : \"\",\n ];\n}\nfunction printIdentifier(id, options) {\n return printId(id.sv);\n}\nexport function printId(sv) {\n if (needBacktick(sv)) {\n const escapedString = sv\n .replace(/\\\\/g, \"\\\\\\\\\")\n .replace(/\\n/g, \"\\\\n\")\n .replace(/\\r/g, \"\\\\r\")\n .replace(/\\t/g, \"\\\\t\")\n .replace(/`/g, \"\\\\`\");\n return `\\`${escapedString}\\``;\n }\n else {\n return sv;\n }\n}\nfunction needBacktick(sv) {\n if (sv.length === 0) {\n return false;\n }\n if (Keywords.has(sv)) {\n return true;\n }\n let cp = sv.codePointAt(0);\n if (!isIdentifierStart(cp)) {\n return true;\n }\n let pos = 0;\n do {\n pos += utf16CodeUnits(cp);\n } while (pos < sv.length && isIdentifierContinue((cp = sv.codePointAt(pos))));\n return pos < sv.length;\n}\nfunction isModelExpressionInBlock(path) {\n const parent = path.getParentNode();\n switch (parent === null || parent === void 0 ? void 0 : parent.kind) {\n case SyntaxKind.OperationSignatureDeclaration:\n return parent.parameters !== path.getNode();\n default:\n return true;\n }\n}\nexport function printScalarStatement(path, options, print) {\n const node = path.getValue();\n const id = path.call(print, \"id\");\n const template = printTemplateParameters(path, options, print, \"templateParameters\");\n const heritage = node.extends\n ? [ifBreak(line, \" \"), \"extends \", path.call(print, \"extends\")]\n : \"\";\n return [\n printDecorators(path, options, print, { tryInline: false }).decorators,\n \"scalar \",\n id,\n template,\n group(indent([\"\", heritage])),\n \";\",\n ];\n}\nexport function printNamespaceStatement(path, options, print) {\n const names = path.map(print, \"ids\");\n const currentNode = path.getNode();\n const suffix = (currentNode === null || currentNode === void 0 ? void 0 : currentNode.statements) === undefined\n ? \";\"\n : [\n \" {\",\n indent([hardline, printStatementSequence(path, options, print, \"statements\")]),\n hardline,\n \"}\",\n ];\n const { decorators } = printDecorators(path, options, print, { tryInline: false });\n return [decorators, `namespace `, join(\".\", names), suffix];\n}\nexport function printOperationSignatureDeclaration(path, options, print) {\n return [\"(\", path.call(print, \"parameters\"), \"): \", path.call(print, \"returnType\")];\n}\nexport function printOperationSignatureReference(path, options, print) {\n return [\" is \", path.call(print, \"baseOperation\")];\n}\nexport function printOperationStatement(path, options, print) {\n var _a;\n const inInterface = ((_a = path.getParentNode()) === null || _a === void 0 ? void 0 : _a.kind) === SyntaxKind.InterfaceStatement;\n const templateParams = printTemplateParameters(path, options, print, \"templateParameters\");\n const { decorators } = printDecorators(path, options, print, {\n tryInline: true,\n });\n return [\n decorators,\n inInterface ? \"\" : \"op \",\n path.call(print, \"id\"),\n templateParams,\n path.call(print, \"signature\"),\n `;`,\n ];\n}\nexport function printStatementSequence(path, options, print, property) {\n const node = path.getValue();\n const parts = [];\n const lastStatement = getLastStatement(node[property]);\n path.each((statementPath) => {\n const node = path.getValue();\n if (node.kind === SyntaxKind.EmptyStatement) {\n return;\n }\n const printed = print(statementPath);\n parts.push(printed);\n if (node !== lastStatement) {\n parts.push(hardline);\n if (isNextLineEmpty(options.originalText, node, options.locEnd)) {\n parts.push(hardline);\n }\n }\n }, property);\n return parts;\n}\nfunction getLastStatement(statements) {\n for (let i = statements.length - 1; i >= 0; i--) {\n const statement = statements[i];\n if (statement.kind !== SyntaxKind.EmptyStatement) {\n return statement;\n }\n }\n return undefined;\n}\nexport function printUnion(path, options, print) {\n const node = path.getValue();\n const shouldHug = shouldHugType(node);\n const types = path.map((typePath) => {\n let printedType = print(typePath);\n if (!shouldHug) {\n printedType = align(2, printedType);\n }\n return printedType;\n }, \"options\");\n if (shouldHug) {\n return join(\" | \", types);\n }\n const shouldAddStartLine = true;\n const code = [ifBreak([shouldAddStartLine ? line : \"\", \"| \"], \"\"), join([line, \"| \"], types)];\n return group(indent(code));\n}\nfunction shouldHugType(node) {\n if (node.kind === SyntaxKind.UnionExpression || node.kind === SyntaxKind.IntersectionExpression) {\n return node.options.length < 4;\n }\n return false;\n}\nexport function printTypeReference(path, options, print) {\n const type = path.call(print, \"target\");\n const template = printTemplateParameters(path, options, print, \"arguments\");\n return [type, template];\n}\nexport function printValueOfExpression(path, options, print) {\n const type = path.call(print, \"target\");\n return [\"valueof \", type];\n}\nfunction printTemplateParameterDeclaration(path, options, print) {\n const node = path.getValue();\n return [\n path.call(print, \"id\"),\n node.constraint ? [\" extends \", path.call(print, \"constraint\")] : \"\",\n node.default ? [\" = \", path.call(print, \"default\")] : \"\",\n ];\n}\nfunction printModelSpread(path, options, print) {\n return [\"...\", path.call(print, \"target\")];\n}\nfunction printDecoratorDeclarationStatement(path, options, print) {\n const id = path.call(print, \"id\");\n const parameters = [\n group([\n indent(join(\", \", [\n [softline, path.call(print, \"target\")],\n ...path.map((arg) => [softline, print(arg)], \"parameters\"),\n ])),\n softline,\n ]),\n ];\n return [printModifiers(path, options, print), \"dec \", id, \"(\", parameters, \")\", \";\"];\n}\nfunction printFunctionDeclarationStatement(path, options, print) {\n const node = path.getValue();\n const id = path.call(print, \"id\");\n const parameters = [\n group([\n indent(join(\", \", path.map((arg) => [softline, print(arg)], \"parameters\"))),\n softline,\n ]),\n ];\n const returnType = node.returnType ? [\": \", path.call(print, \"returnType\")] : \"\";\n return [printModifiers(path, options, print), \"fn \", id, \"(\", parameters, \")\", returnType, \";\"];\n}\nfunction printFunctionParameterDeclaration(path, options, print) {\n const node = path.getValue();\n const id = path.call(print, \"id\");\n const type = node.type ? [\": \", path.call(print, \"type\")] : \"\";\n return [\n node.rest ? \"...\" : \"\",\n printDirectives(path, options, print),\n id,\n node.optional ? \"?\" : \"\",\n type,\n ];\n}\nexport function printModifiers(path, options, print) {\n const node = path.getValue();\n if (node.modifiers.length === 0) {\n return \"\";\n }\n return path.map((x) => [print(x), \" \"], \"modifiers\");\n}\nfunction printStringLiteral(path, options) {\n const node = path.getValue();\n return getRawText(node, options);\n}\nfunction printNumberLiteral(path, options) {\n const node = path.getValue();\n return getRawText(node, options);\n}\nfunction printBooleanLiteral(path, options) {\n const node = path.getValue();\n return node.value ? \"true\" : \"false\";\n}\nfunction printProjectionStatement(path, options, print) {\n const selector = path.call(print, \"selector\");\n const id = path.call(print, \"id\");\n const projections = path.map(print, \"projections\").flatMap((x) => [hardline, x]);\n return [\n \"projection \",\n selector,\n \"#\",\n id,\n \" {\",\n indent(projections),\n projections.length > 0 ? hardline : \"\",\n \"}\",\n ];\n}\nfunction printProjection(path, options, print) {\n const node = path.getValue();\n const params = printProjectionParameters(path, options, print);\n const body = printProjectionExpressionStatements(path, options, print, \"body\");\n return [\n ...node.modifierIds.flatMap((i) => [i.sv, \" \"]),\n node.directionId.sv,\n params,\n \" {\",\n indent(body),\n hardline,\n \"}\",\n ];\n}\nfunction printProjectionParameters(path, options, print) {\n const node = path.getValue();\n const params = node.parameters;\n if (params.length === 0) {\n return \"\";\n }\n const shouldHug = params.length === 1;\n if (shouldHug) {\n return [\"(\", printItemList(path, options, print, \"parameters\"), \")\"];\n }\n else {\n const body = indent([softline, join([\", \", softline], path.map(print, \"parameters\"))]);\n return group([\"(\", body, softline, \")\"]);\n }\n}\nfunction printProjectionExpressionStatements(path, options, print, key) {\n const parts = [hardline];\n const lastIndex = path.getValue()[key].length - 1;\n path.each((statementPath, index) => {\n const node = path.getValue();\n if (node.kind === SyntaxKind.EmptyStatement) {\n return;\n }\n const printed = print(statementPath);\n parts.push(printed);\n parts.push(\";\");\n if (index < lastIndex) {\n parts.push(hardline);\n if (isNextLineEmpty(options.originalText, node, options.locEnd)) {\n parts.push(hardline);\n }\n }\n }, key);\n return parts;\n}\nfunction printProjectionParameterDeclaration(path, options, print) {\n return path.call(print, \"id\");\n}\nfunction printProjectionExpressionStatement(path, options, print) {\n return path.call(print, \"expr\");\n}\nfunction printProjectionIfExpressionNode(path, options, print) {\n const node = path.getValue();\n const test = path.call(print, \"test\");\n const consequent = path.call(print, \"consequent\");\n const alternate = node.alternate ? [\" else \", path.call(print, \"alternate\")] : \"\";\n return [\"if \", test, \" \", consequent, alternate];\n}\nexport function printProjectionBlockExpressionNode(path, options, print) {\n const node = path.getValue();\n if (node.statements.length === 0) {\n return \"{}\";\n }\n return [\n \"{\",\n indent(printProjectionExpressionStatements(path, options, print, \"statements\")),\n hardline,\n \"}\",\n ];\n}\nexport function printProjectionMemberExpression(path, options, print) {\n const node = path.getValue();\n return [path.call(print, \"base\"), node.selector, path.call(print, \"id\")];\n}\nexport function printProjectionLeftRightExpression(path, options, print) {\n const node = path.getValue();\n return [path.call(print, \"left\"), \" \", node.op, \" \", path.call(print, \"right\")];\n}\nexport function printProjectionUnaryExpression(path, options, print) {\n return [\"!\", path.call(print, \"target\")];\n}\nexport function printProjectionCallExpression(path, options, print) {\n const node = path.getValue();\n const target = path.call(print, \"target\");\n const params = printItemList(path, options, print, \"arguments\");\n if (node.callKind === \"method\") {\n return [target, \"(\", params, \")\"];\n }\n else {\n return [target, \"<\", params, \">\"];\n }\n}\nexport function printProjectionLambdaExpression(path, options, print) {\n return [\n \"(\",\n printItemList(path, options, print, \"parameters\"),\n \")\",\n \" => \",\n path.call(print, \"body\"),\n ];\n}\nexport function printProjectionLambdaParameterDeclaration(path, options, print) {\n return path.call(print, \"id\");\n}\nexport function printReturnExpression(path, options, print) {\n return [\"return \", path.call(print, \"value\")];\n}\nfunction printItemList(path, options, print, key) {\n return join(\", \", path.map(print, key));\n}\n/**\n * @param node Node that has postition information.\n * @param options Prettier options\n * @returns Raw text in the file for the given node.\n */\nfunction getRawText(node, options) {\n return options.originalText.slice(node.pos, node.end);\n}\nfunction hasComments(node, flags) {\n if (!node.comments || node.comments.length === 0) {\n return false;\n }\n const test = getCommentTestFunction(flags);\n return test ? node.comments.some(test) : true;\n}\nvar CommentCheckFlags;\n(function (CommentCheckFlags) {\n /** Check comment is a leading comment */\n CommentCheckFlags[CommentCheckFlags[\"Leading\"] = 2] = \"Leading\";\n /** Check comment is a trailing comment */\n CommentCheckFlags[CommentCheckFlags[\"Trailing\"] = 4] = \"Trailing\";\n /** Check comment is a dangling comment */\n CommentCheckFlags[CommentCheckFlags[\"Dangling\"] = 8] = \"Dangling\";\n /** Check comment is a block comment */\n CommentCheckFlags[CommentCheckFlags[\"Block\"] = 16] = \"Block\";\n /** Check comment is a line comment */\n CommentCheckFlags[CommentCheckFlags[\"Line\"] = 32] = \"Line\";\n /** Check comment is a `prettier-ignore` comment */\n CommentCheckFlags[CommentCheckFlags[\"PrettierIgnore\"] = 64] = \"PrettierIgnore\";\n /** Check comment is the first attached comment */\n CommentCheckFlags[CommentCheckFlags[\"First\"] = 128] = \"First\";\n /** Check comment is the last attached comment */\n CommentCheckFlags[CommentCheckFlags[\"Last\"] = 256] = \"Last\";\n})(CommentCheckFlags || (CommentCheckFlags = {}));\nfunction getCommentTestFunction(flags) {\n if (flags) {\n return (comment, index, comments) => !((flags & CommentCheckFlags.Leading && !comment.leading) ||\n (flags & CommentCheckFlags.Trailing && !comment.trailing) ||\n (flags & CommentCheckFlags.Dangling && (comment.leading || comment.trailing)) ||\n (flags & CommentCheckFlags.Block && !isBlockComment(comment)) ||\n (flags & CommentCheckFlags.Line && !isLineComment(comment)) ||\n (flags & CommentCheckFlags.First && index !== 0) ||\n (flags & CommentCheckFlags.Last && index !== comments.length - 1));\n }\n return undefined;\n}\nfunction isBlockComment(comment) {\n return comment.kind === SyntaxKind.BlockComment;\n}\nfunction isLineComment(comment) {\n return comment.kind === SyntaxKind.BlockComment;\n}\n//# sourceMappingURL=printer.js.map","import { trim } from \"./charcode.js\";\nimport { compilerAssert } from \"./diagnostics.js\";\nimport { createDiagnostic } from \"./messages.js\";\nimport { Token, TokenDisplay, TokenFlags, createScanner, isComment, isKeyword, isPunctuation, isStatementKeyword, isTrivia, } from \"./scanner.js\";\nimport { IdentifierKind, SyntaxKind, } from \"./types.js\";\nimport { isArray, mutate } from \"./util.js\";\n/**\n * The fixed set of options for each of the kinds of delimited lists in TypeSpec.\n */\n// eslint-disable-next-line @typescript-eslint/no-namespace\nvar ListKind;\n(function (ListKind) {\n const PropertiesBase = {\n allowEmpty: true,\n toleratedDelimiterIsValid: true,\n trailingDelimiterIsValid: true,\n allowedStatementKeyword: Token.None,\n };\n ListKind.OperationParameters = {\n ...PropertiesBase,\n open: Token.OpenParen,\n close: Token.CloseParen,\n delimiter: Token.Comma,\n toleratedDelimiter: Token.Semicolon,\n };\n ListKind.DecoratorArguments = {\n ...ListKind.OperationParameters,\n invalidAnnotationTarget: \"expression\",\n };\n ListKind.ModelProperties = {\n ...PropertiesBase,\n open: Token.OpenBrace,\n close: Token.CloseBrace,\n delimiter: Token.Semicolon,\n toleratedDelimiter: Token.Comma,\n };\n ListKind.InterfaceMembers = {\n ...PropertiesBase,\n open: Token.OpenBrace,\n close: Token.CloseBrace,\n delimiter: Token.Semicolon,\n toleratedDelimiter: Token.Comma,\n toleratedDelimiterIsValid: false,\n allowedStatementKeyword: Token.OpKeyword,\n };\n ListKind.UnionVariants = {\n ...PropertiesBase,\n open: Token.OpenBrace,\n close: Token.CloseBrace,\n delimiter: Token.Semicolon,\n toleratedDelimiter: Token.Comma,\n toleratedDelimiterIsValid: true,\n };\n ListKind.EnumMembers = {\n ...ListKind.ModelProperties,\n };\n const ExpresionsBase = {\n allowEmpty: true,\n delimiter: Token.Comma,\n toleratedDelimiter: Token.Semicolon,\n toleratedDelimiterIsValid: false,\n trailingDelimiterIsValid: false,\n invalidAnnotationTarget: \"expression\",\n allowedStatementKeyword: Token.None,\n };\n ListKind.TemplateParameters = {\n ...ExpresionsBase,\n allowEmpty: false,\n open: Token.LessThan,\n close: Token.GreaterThan,\n invalidAnnotationTarget: \"template parameter\",\n };\n ListKind.TemplateArguments = {\n ...ListKind.TemplateParameters,\n };\n ListKind.CallArguments = {\n ...ExpresionsBase,\n allowEmpty: true,\n open: Token.OpenParen,\n close: Token.CloseParen,\n };\n ListKind.Heritage = {\n ...ExpresionsBase,\n allowEmpty: false,\n open: Token.None,\n close: Token.None,\n };\n ListKind.Tuple = {\n ...ExpresionsBase,\n allowEmpty: true,\n open: Token.OpenBracket,\n close: Token.CloseBracket,\n };\n ListKind.FunctionParameters = {\n ...ExpresionsBase,\n allowEmpty: true,\n open: Token.OpenParen,\n close: Token.CloseParen,\n invalidAnnotationTarget: \"expression\",\n };\n ListKind.ProjectionExpression = {\n ...ExpresionsBase,\n allowEmpty: true,\n open: Token.OpenParen,\n close: Token.CloseParen,\n };\n ListKind.ProjectionParameter = {\n ...ExpresionsBase,\n allowEmpty: true,\n open: Token.OpenParen,\n close: Token.CloseParen,\n };\n})(ListKind || (ListKind = {}));\nexport function parse(code, options = {}) {\n const parser = createParser(code, options);\n return parser.parseTypeSpecScript();\n}\nexport function parseStandaloneTypeReference(code) {\n const parser = createParser(code);\n const node = parser.parseStandaloneReferenceExpression();\n return [node, parser.parseDiagnostics];\n}\nfunction createParser(code, options = {}) {\n let parseErrorInNextFinishedNode = false;\n let previousTokenEnd = -1;\n let realPositionOfLastError = -1;\n let missingIdentifierCounter = 0;\n let treePrintable = true;\n let newLineIsTrivia = true;\n let currentMode = 0 /* ParseMode.Syntax */;\n const parseDiagnostics = [];\n const scanner = createScanner(code, reportDiagnostic);\n const comments = [];\n let docRanges = [];\n nextToken();\n return {\n parseDiagnostics,\n parseTypeSpecScript,\n parseStandaloneReferenceExpression,\n };\n function parseTypeSpecScript() {\n const statements = parseTypeSpecScriptItemList();\n return {\n kind: SyntaxKind.TypeSpecScript,\n statements,\n file: scanner.file,\n id: {\n kind: SyntaxKind.Identifier,\n sv: scanner.file.path,\n pos: 0,\n end: 0,\n flags: 8 /* NodeFlags.Synthetic */,\n },\n namespaces: [],\n usings: [],\n locals: undefined,\n inScopeNamespaces: [],\n parseDiagnostics,\n comments,\n printable: treePrintable,\n parseOptions: options,\n ...finishNode(0),\n };\n }\n /** Try to parse doc comments, directives and decorators in any order. */\n function parseAnnotations({ skipParsingDocNodes } = {}) {\n const directives = [];\n const decorators = [];\n const docs = [];\n let pos = tokenPos();\n if (!skipParsingDocNodes) {\n const [firstPos, addedDocs] = parseDocList();\n pos = firstPos;\n for (const doc of addedDocs) {\n docs.push(doc);\n }\n }\n while (token() === Token.Hash || token() === Token.At) {\n if (token() === Token.Hash) {\n directives.push(parseDirectiveExpression());\n }\n else if (token() === Token.At) {\n decorators.push(parseDecoratorExpression());\n }\n if (!skipParsingDocNodes) {\n const [_, addedDocs] = parseDocList();\n for (const doc of addedDocs) {\n docs.push(doc);\n }\n }\n }\n return { pos, docs, directives, decorators };\n }\n function parseTypeSpecScriptItemList() {\n const stmts = [];\n let seenBlocklessNs = false;\n let seenDecl = false;\n let seenUsing = false;\n while (token() !== Token.EndOfFile) {\n const { pos, docs, directives, decorators } = parseAnnotations();\n const tok = token();\n let item;\n switch (tok) {\n case Token.AtAt:\n reportInvalidDecorators(decorators, \"augment decorator statement\");\n item = parseAugmentDecorator();\n break;\n case Token.ImportKeyword:\n reportInvalidDecorators(decorators, \"import statement\");\n item = parseImportStatement();\n break;\n case Token.ModelKeyword:\n item = parseModelStatement(pos, decorators);\n break;\n case Token.ScalarKeyword:\n item = parseScalarStatement(pos, decorators);\n break;\n case Token.NamespaceKeyword:\n item = parseNamespaceStatement(pos, decorators);\n break;\n case Token.InterfaceKeyword:\n item = parseInterfaceStatement(pos, decorators);\n break;\n case Token.UnionKeyword:\n item = parseUnionStatement(pos, decorators);\n break;\n case Token.OpKeyword:\n item = parseOperationStatement(pos, decorators);\n break;\n case Token.EnumKeyword:\n item = parseEnumStatement(pos, decorators);\n break;\n case Token.AliasKeyword:\n reportInvalidDecorators(decorators, \"alias statement\");\n item = parseAliasStatement(pos);\n break;\n case Token.UsingKeyword:\n reportInvalidDecorators(decorators, \"using statement\");\n item = parseUsingStatement(pos);\n break;\n case Token.ProjectionKeyword:\n reportInvalidDecorators(decorators, \"projection statement\");\n item = parseProjectionStatement(pos);\n break;\n case Token.Semicolon:\n reportInvalidDecorators(decorators, \"empty statement\");\n item = parseEmptyStatement(pos);\n break;\n // Start of declaration with modifiers\n case Token.ExternKeyword:\n case Token.FnKeyword:\n case Token.DecKeyword:\n item = parseDeclaration(pos);\n break;\n default:\n item = parseInvalidStatement(pos, decorators);\n break;\n }\n mutate(item).directives = directives;\n mutate(item).docs = docs;\n if (isBlocklessNamespace(item)) {\n if (seenBlocklessNs) {\n error({ code: \"multiple-blockless-namespace\", target: item });\n }\n if (seenDecl) {\n error({ code: \"blockless-namespace-first\", target: item });\n }\n seenBlocklessNs = true;\n }\n else if (item.kind === SyntaxKind.ImportStatement) {\n if (seenDecl || seenBlocklessNs || seenUsing) {\n error({ code: \"import-first\", target: item });\n }\n }\n else if (item.kind === SyntaxKind.UsingStatement) {\n seenUsing = true;\n }\n else {\n seenDecl = true;\n }\n stmts.push(item);\n }\n return stmts;\n }\n function parseStatementList() {\n const stmts = [];\n while (token() !== Token.CloseBrace) {\n const { pos, docs, directives, decorators } = parseAnnotations();\n const tok = token();\n let item;\n switch (tok) {\n case Token.AtAt:\n reportInvalidDecorators(decorators, \"augment decorator statement\");\n item = parseAugmentDecorator();\n break;\n case Token.ImportKeyword:\n reportInvalidDecorators(decorators, \"import statement\");\n item = parseImportStatement();\n error({ code: \"import-first\", messageId: \"topLevel\", target: item });\n break;\n case Token.ModelKeyword:\n item = parseModelStatement(pos, decorators);\n break;\n case Token.ScalarKeyword:\n item = parseScalarStatement(pos, decorators);\n break;\n case Token.NamespaceKeyword:\n const ns = parseNamespaceStatement(pos, decorators);\n if (!Array.isArray(ns.statements)) {\n error({ code: \"blockless-namespace-first\", messageId: \"topLevel\", target: ns });\n }\n item = ns;\n break;\n case Token.InterfaceKeyword:\n item = parseInterfaceStatement(pos, decorators);\n break;\n case Token.UnionKeyword:\n item = parseUnionStatement(pos, decorators);\n break;\n case Token.OpKeyword:\n item = parseOperationStatement(pos, decorators);\n break;\n case Token.EnumKeyword:\n item = parseEnumStatement(pos, decorators);\n break;\n case Token.AliasKeyword:\n reportInvalidDecorators(decorators, \"alias statement\");\n item = parseAliasStatement(pos);\n break;\n case Token.UsingKeyword:\n reportInvalidDecorators(decorators, \"using statement\");\n item = parseUsingStatement(pos);\n break;\n case Token.ExternKeyword:\n case Token.FnKeyword:\n case Token.DecKeyword:\n item = parseDeclaration(pos);\n break;\n case Token.ProjectionKeyword:\n reportInvalidDecorators(decorators, \"project statement\");\n item = parseProjectionStatement(pos);\n break;\n case Token.EndOfFile:\n parseExpected(Token.CloseBrace);\n return stmts;\n case Token.Semicolon:\n reportInvalidDecorators(decorators, \"empty statement\");\n item = parseEmptyStatement(pos);\n break;\n default:\n item = parseInvalidStatement(pos, decorators);\n break;\n }\n mutate(item).directives = directives;\n mutate(item).docs = docs;\n stmts.push(item);\n }\n return stmts;\n }\n function parseDecoratorList() {\n const decorators = [];\n while (token() === Token.At) {\n decorators.push(parseDecoratorExpression());\n }\n return decorators;\n }\n function parseDirectiveList() {\n const directives = [];\n while (token() === Token.Hash) {\n directives.push(parseDirectiveExpression());\n }\n return directives;\n }\n function parseNamespaceStatement(pos, decorators) {\n parseExpected(Token.NamespaceKeyword);\n let currentName = parseIdentifierOrMemberExpression();\n const nsSegments = [];\n while (currentName.kind !== SyntaxKind.Identifier) {\n nsSegments.push(currentName.id);\n currentName = currentName.base;\n }\n nsSegments.push(currentName);\n const nextTok = parseExpectedOneOf(Token.Semicolon, Token.OpenBrace);\n let statements;\n if (nextTok === Token.OpenBrace) {\n statements = parseStatementList();\n parseExpected(Token.CloseBrace);\n }\n let outerNs = {\n kind: SyntaxKind.NamespaceStatement,\n decorators,\n id: nsSegments[0],\n locals: undefined,\n statements,\n ...finishNode(pos),\n };\n for (let i = 1; i < nsSegments.length; i++) {\n outerNs = {\n kind: SyntaxKind.NamespaceStatement,\n decorators: [],\n id: nsSegments[i],\n statements: outerNs,\n locals: undefined,\n ...finishNode(pos),\n };\n }\n return outerNs;\n }\n function parseInterfaceStatement(pos, decorators) {\n parseExpected(Token.InterfaceKeyword);\n const id = parseIdentifier();\n const templateParameters = parseTemplateParameterList();\n let extendList = [];\n if (token() === Token.ExtendsKeyword) {\n nextToken();\n extendList = parseList(ListKind.Heritage, parseReferenceExpression);\n }\n else if (token() === Token.Identifier) {\n error({ code: \"token-expected\", format: { token: \"'extends' or '{'\" } });\n nextToken();\n }\n const operations = parseList(ListKind.InterfaceMembers, (pos, decorators) => parseOperationStatement(pos, decorators, true));\n return {\n kind: SyntaxKind.InterfaceStatement,\n id,\n templateParameters,\n operations,\n extends: extendList,\n decorators,\n ...finishNode(pos),\n };\n }\n function parseTemplateParameterList() {\n const list = parseOptionalList(ListKind.TemplateParameters, parseTemplateParameter);\n let setDefault = false;\n for (const item of list) {\n if (!item.default && setDefault) {\n error({ code: \"default-required\", target: item });\n continue;\n }\n if (item.default) {\n setDefault = true;\n }\n }\n return list;\n }\n function parseUnionStatement(pos, decorators) {\n parseExpected(Token.UnionKeyword);\n const id = parseIdentifier();\n const templateParameters = parseTemplateParameterList();\n const options = parseList(ListKind.UnionVariants, parseUnionVariant);\n return {\n kind: SyntaxKind.UnionStatement,\n id,\n templateParameters,\n decorators,\n options,\n ...finishNode(pos),\n };\n }\n function parseUnionVariant(pos, decorators) {\n const idOrExpr = parseExpression();\n if (parseOptional(Token.Colon)) {\n let id = undefined;\n if (idOrExpr.kind !== SyntaxKind.TypeReference &&\n idOrExpr.kind !== SyntaxKind.StringLiteral) {\n error({ code: \"token-expected\", messageId: \"identifier\" });\n }\n else if (idOrExpr.kind === SyntaxKind.StringLiteral) {\n // convert string literal node to identifier node (back compat for string literal quoted properties)\n id = {\n kind: SyntaxKind.Identifier,\n sv: idOrExpr.value,\n ...finishNode(idOrExpr.pos),\n };\n }\n else {\n const target = idOrExpr.target;\n if (target.kind === SyntaxKind.Identifier) {\n id = target;\n }\n else {\n error({ code: \"token-expected\", messageId: \"identifier\" });\n }\n }\n const value = parseExpression();\n return {\n kind: SyntaxKind.UnionVariant,\n id,\n value,\n decorators,\n ...finishNode(pos),\n };\n }\n return {\n kind: SyntaxKind.UnionVariant,\n id: undefined,\n value: idOrExpr,\n decorators,\n ...finishNode(pos),\n };\n }\n function parseUsingStatement(pos) {\n parseExpected(Token.UsingKeyword);\n const name = parseIdentifierOrMemberExpression(undefined, true);\n parseExpected(Token.Semicolon);\n return {\n kind: SyntaxKind.UsingStatement,\n name,\n ...finishNode(pos),\n };\n }\n function parseOperationStatement(pos, decorators, inInterface) {\n if (inInterface) {\n parseOptional(Token.OpKeyword);\n }\n else {\n parseExpected(Token.OpKeyword);\n }\n const id = parseIdentifier();\n const templateParameters = parseTemplateParameterList();\n // Make sure the next token is one that is expected\n const token = expectTokenIsOneOf(Token.OpenParen, Token.IsKeyword);\n // Check if we're parsing a declaration or reuse of another operation\n let signature;\n const signaturePos = tokenPos();\n if (token === Token.OpenParen) {\n const parameters = parseOperationParameters();\n parseExpected(Token.Colon);\n const returnType = parseExpression();\n signature = {\n kind: SyntaxKind.OperationSignatureDeclaration,\n parameters,\n returnType,\n ...finishNode(signaturePos),\n };\n }\n else {\n parseExpected(Token.IsKeyword);\n const opReference = parseReferenceExpression();\n signature = {\n kind: SyntaxKind.OperationSignatureReference,\n baseOperation: opReference,\n ...finishNode(signaturePos),\n };\n }\n // The interface parser handles semicolon parsing between statements\n if (!inInterface) {\n parseExpected(Token.Semicolon);\n }\n return {\n kind: SyntaxKind.OperationStatement,\n id,\n templateParameters,\n signature,\n decorators,\n ...finishNode(pos),\n };\n }\n function parseOperationParameters() {\n const pos = tokenPos();\n const properties = parseList(ListKind.OperationParameters, parseModelPropertyOrSpread);\n const parameters = {\n kind: SyntaxKind.ModelExpression,\n properties,\n ...finishNode(pos),\n };\n return parameters;\n }\n function parseModelStatement(pos, decorators) {\n parseExpected(Token.ModelKeyword);\n const id = parseIdentifier();\n const templateParameters = parseTemplateParameterList();\n expectTokenIsOneOf(Token.OpenBrace, Token.Equals, Token.ExtendsKeyword, Token.IsKeyword);\n const optionalExtends = parseOptionalModelExtends();\n const optionalIs = optionalExtends ? undefined : parseOptionalModelIs();\n let properties = [];\n if (optionalIs) {\n const tok = expectTokenIsOneOf(Token.Semicolon, Token.OpenBrace);\n if (tok === Token.Semicolon) {\n nextToken();\n }\n else {\n properties = parseList(ListKind.ModelProperties, parseModelPropertyOrSpread);\n }\n }\n else {\n properties = parseList(ListKind.ModelProperties, parseModelPropertyOrSpread);\n }\n return {\n kind: SyntaxKind.ModelStatement,\n id,\n extends: optionalExtends,\n is: optionalIs,\n templateParameters,\n decorators,\n properties,\n ...finishNode(pos),\n };\n }\n function parseOptionalModelExtends() {\n if (parseOptional(Token.ExtendsKeyword)) {\n return parseExpression();\n }\n return undefined;\n }\n function parseOptionalModelIs() {\n if (parseOptional(Token.IsKeyword)) {\n return parseExpression();\n }\n return;\n }\n function parseTemplateParameter() {\n const pos = tokenPos();\n const id = parseIdentifier();\n let constraint;\n if (parseOptional(Token.ExtendsKeyword)) {\n constraint = parseExpression();\n }\n let def;\n if (parseOptional(Token.Equals)) {\n def = parseExpression();\n }\n return {\n kind: SyntaxKind.TemplateParameterDeclaration,\n id,\n constraint,\n default: def,\n ...finishNode(pos),\n };\n }\n function parseModelPropertyOrSpread(pos, decorators) {\n return token() === Token.Ellipsis\n ? parseModelSpreadProperty(pos, decorators)\n : parseModelProperty(pos, decorators);\n }\n function parseModelSpreadProperty(pos, decorators) {\n parseExpected(Token.Ellipsis);\n reportInvalidDecorators(decorators, \"spread property\");\n // This could be broadened to allow any type expression\n const target = parseReferenceExpression();\n return {\n kind: SyntaxKind.ModelSpreadProperty,\n target,\n ...finishNode(pos),\n };\n }\n function parseModelProperty(pos, decorators) {\n const id = parseIdentifier({\n message: \"property\",\n allowStringLiteral: true,\n });\n const optional = parseOptional(Token.Question);\n parseExpected(Token.Colon);\n const value = parseExpression();\n const hasDefault = parseOptional(Token.Equals);\n const defaultValue = hasDefault ? parseExpression() : undefined;\n return {\n kind: SyntaxKind.ModelProperty,\n id,\n decorators,\n value,\n optional,\n default: defaultValue,\n ...finishNode(pos),\n };\n }\n function parseScalarStatement(pos, decorators) {\n parseExpected(Token.ScalarKeyword);\n const id = parseIdentifier();\n const templateParameters = parseTemplateParameterList();\n const optionalExtends = parseOptionalScalarExtends();\n return {\n kind: SyntaxKind.ScalarStatement,\n id,\n templateParameters,\n extends: optionalExtends,\n decorators,\n ...finishNode(pos),\n };\n }\n function parseOptionalScalarExtends() {\n if (parseOptional(Token.ExtendsKeyword)) {\n return parseReferenceExpression();\n }\n return undefined;\n }\n function parseEnumStatement(pos, decorators) {\n parseExpected(Token.EnumKeyword);\n const id = parseIdentifier();\n const members = parseList(ListKind.EnumMembers, parseEnumMemberOrSpread);\n return {\n kind: SyntaxKind.EnumStatement,\n id,\n decorators,\n members,\n ...finishNode(pos),\n };\n }\n function parseEnumMemberOrSpread(pos, decorators) {\n return token() === Token.Ellipsis\n ? parseEnumSpreadMember(pos, decorators)\n : parseEnumMember(pos, decorators);\n }\n function parseEnumSpreadMember(pos, decorators) {\n parseExpected(Token.Ellipsis);\n reportInvalidDecorators(decorators, \"spread enum\");\n const target = parseReferenceExpression();\n return {\n kind: SyntaxKind.EnumSpreadMember,\n target,\n ...finishNode(pos),\n };\n }\n function parseEnumMember(pos, decorators) {\n const id = parseIdentifier({\n message: \"enumMember\",\n allowStringLiteral: true,\n });\n let value;\n if (parseOptional(Token.Colon)) {\n const expr = parseExpression();\n if (expr.kind === SyntaxKind.StringLiteral || expr.kind === SyntaxKind.NumericLiteral) {\n value = expr;\n }\n else if (expr.kind === SyntaxKind.TypeReference &&\n expr.target.flags & 2 /* NodeFlags.ThisNodeHasError */) {\n parseErrorInNextFinishedNode = true;\n }\n else {\n error({ code: \"token-expected\", messageId: \"numericOrStringLiteral\", target: expr });\n }\n }\n return {\n kind: SyntaxKind.EnumMember,\n id,\n value,\n decorators,\n ...finishNode(pos),\n };\n }\n function parseAliasStatement(pos) {\n parseExpected(Token.AliasKeyword);\n const id = parseIdentifier();\n const templateParameters = parseTemplateParameterList();\n parseExpected(Token.Equals);\n const value = parseExpression();\n parseExpected(Token.Semicolon);\n return {\n kind: SyntaxKind.AliasStatement,\n id,\n templateParameters,\n value,\n ...finishNode(pos),\n };\n }\n function parseExpression() {\n return parseUnionExpressionOrHigher();\n }\n function parseUnionExpressionOrHigher() {\n const pos = tokenPos();\n parseOptional(Token.Bar);\n const node = parseIntersectionExpressionOrHigher();\n if (token() !== Token.Bar) {\n return node;\n }\n const options = [node];\n while (parseOptional(Token.Bar)) {\n const expr = parseIntersectionExpressionOrHigher();\n options.push(expr);\n }\n return {\n kind: SyntaxKind.UnionExpression,\n options,\n ...finishNode(pos),\n };\n }\n function parseIntersectionExpressionOrHigher() {\n const pos = tokenPos();\n parseOptional(Token.Ampersand);\n const node = parseArrayExpressionOrHigher();\n if (token() !== Token.Ampersand) {\n return node;\n }\n const options = [node];\n while (parseOptional(Token.Ampersand)) {\n const expr = parseArrayExpressionOrHigher();\n options.push(expr);\n }\n return {\n kind: SyntaxKind.IntersectionExpression,\n options,\n ...finishNode(pos),\n };\n }\n function parseArrayExpressionOrHigher() {\n const pos = tokenPos();\n let expr = parsePrimaryExpression();\n while (parseOptional(Token.OpenBracket)) {\n parseExpected(Token.CloseBracket);\n expr = {\n kind: SyntaxKind.ArrayExpression,\n elementType: expr,\n ...finishNode(pos),\n };\n }\n return expr;\n }\n function parseStandaloneReferenceExpression() {\n const expr = parseReferenceExpression();\n if (parseDiagnostics.length === 0 && token() !== Token.EndOfFile) {\n error({ code: \"token-expected\", messageId: \"unexpected\", format: { token: Token[token()] } });\n }\n return expr;\n }\n function parseValueOfExpression() {\n const pos = tokenPos();\n parseExpected(Token.ValueOfKeyword);\n const target = parseExpression();\n return {\n kind: SyntaxKind.ValueOfExpression,\n target,\n ...finishNode(pos),\n };\n }\n function parseReferenceExpression(message) {\n const pos = tokenPos();\n const target = parseIdentifierOrMemberExpression(message);\n const args = parseOptionalList(ListKind.TemplateArguments, parseExpression);\n return {\n kind: SyntaxKind.TypeReference,\n target,\n arguments: args,\n ...finishNode(pos),\n };\n }\n function parseAugmentDecorator() {\n const pos = tokenPos();\n parseExpected(Token.AtAt);\n // Error recovery: false arg here means don't treat a keyword as an\n // identifier. We want to parse `@ model Foo` as invalid decorator\n // `@<missing identifier>` applied to `model Foo`, and not as `@model`\n // applied to invalid statement `Foo`.\n const target = parseIdentifierOrMemberExpression(undefined, false);\n const args = parseOptionalList(ListKind.DecoratorArguments, parseExpression);\n if (args.length === 0) {\n error({ code: \"augment-decorator-target\" });\n return {\n kind: SyntaxKind.AugmentDecoratorStatement,\n target,\n targetType: {\n kind: SyntaxKind.TypeReference,\n target: createMissingIdentifier(),\n arguments: [],\n ...finishNode(pos),\n },\n arguments: [],\n ...finishNode(pos),\n };\n }\n let [targetEntity, ...decoratorArgs] = args;\n if (targetEntity.kind !== SyntaxKind.TypeReference) {\n error({ code: \"augment-decorator-target\", target: targetEntity });\n targetEntity = {\n kind: SyntaxKind.TypeReference,\n target: createMissingIdentifier(),\n arguments: [],\n ...finishNode(pos),\n };\n }\n return {\n kind: SyntaxKind.AugmentDecoratorStatement,\n target,\n targetType: targetEntity,\n arguments: decoratorArgs,\n ...finishNode(pos),\n };\n }\n function parseImportStatement() {\n const pos = tokenPos();\n parseExpected(Token.ImportKeyword);\n const path = parseStringLiteral();\n parseExpected(Token.Semicolon);\n return {\n kind: SyntaxKind.ImportStatement,\n path,\n ...finishNode(pos),\n };\n }\n function parseDecoratorExpression() {\n const pos = tokenPos();\n parseExpected(Token.At);\n // Error recovery: false arg here means don't treat a keyword as an\n // identifier. We want to parse `@ model Foo` as invalid decorator\n // `@<missing identifier>` applied to `model Foo`, and not as `@model`\n // applied to invalid statement `Foo`.\n const target = parseIdentifierOrMemberExpression(undefined, false);\n const args = parseOptionalList(ListKind.DecoratorArguments, parseExpression);\n return {\n kind: SyntaxKind.DecoratorExpression,\n arguments: args,\n target,\n ...finishNode(pos),\n };\n }\n function parseDirectiveExpression() {\n const pos = tokenPos();\n parseExpected(Token.Hash);\n const target = parseIdentifier();\n if (target.sv !== \"suppress\" && target.sv !== \"deprecated\") {\n error({\n code: \"unknown-directive\",\n format: { id: target.sv },\n target: { pos, end: pos + target.sv.length },\n printable: true,\n });\n }\n // The newline will mark the end of the directive.\n newLineIsTrivia = false;\n const args = [];\n while (token() !== Token.NewLine && token() !== Token.EndOfFile) {\n const param = parseDirectiveParameter();\n if (param) {\n args.push(param);\n }\n }\n newLineIsTrivia = true;\n nextToken();\n return {\n kind: SyntaxKind.DirectiveExpression,\n arguments: args,\n target,\n ...finishNode(pos),\n };\n }\n function parseDirectiveParameter() {\n switch (token()) {\n case Token.Identifier:\n return parseIdentifier();\n case Token.StringLiteral:\n return parseStringLiteral();\n default:\n error({\n code: \"token-expected\",\n messageId: \"unexpected\",\n format: { token: Token[token()] },\n });\n do {\n nextToken();\n } while (!isStatementKeyword(token()) &&\n token() !== Token.NewLine &&\n token() !== Token.At &&\n token() !== Token.Semicolon &&\n token() !== Token.EndOfFile);\n return undefined;\n }\n }\n function parseIdentifierOrMemberExpression(message, recoverFromKeyword = true) {\n const pos = tokenPos();\n let base = parseIdentifier({\n message,\n recoverFromKeyword,\n });\n while (token() !== Token.EndOfFile) {\n if (parseOptional(Token.Dot)) {\n base = {\n kind: SyntaxKind.MemberExpression,\n base,\n // Error recovery: false arg here means don't treat a keyword as an\n // identifier after `.` in member expression. Otherwise we will\n // parse `@Outer.<missing identifier> model M{}` as having decorator\n // `@Outer.model` applied to invalid statement `M {}` instead of\n // having incomplete decorator `@Outer.` applied to `model M {}`.\n id: parseIdentifier({\n recoverFromKeyword: false,\n }),\n selector: \".\",\n ...finishNode(pos),\n };\n }\n else if (parseOptional(Token.ColonColon)) {\n base = {\n kind: SyntaxKind.MemberExpression,\n base,\n id: parseIdentifier(),\n selector: \"::\",\n ...finishNode(pos),\n };\n }\n else {\n break;\n }\n }\n return base;\n }\n function parsePrimaryExpression() {\n while (true) {\n switch (token()) {\n case Token.ValueOfKeyword:\n return parseValueOfExpression();\n case Token.Identifier:\n return parseReferenceExpression();\n case Token.StringLiteral:\n return parseStringLiteral();\n case Token.TrueKeyword:\n case Token.FalseKeyword:\n return parseBooleanLiteral();\n case Token.NumericLiteral:\n return parseNumericLiteral();\n case Token.OpenBrace:\n return parseModelExpression();\n case Token.OpenBracket:\n return parseTupleExpression();\n case Token.OpenParen:\n return parseParenthesizedExpression();\n case Token.At:\n const decorators = parseDecoratorList();\n reportInvalidDecorators(decorators, \"expression\");\n continue;\n case Token.Hash:\n const directives = parseDirectiveList();\n reportInvalidDirective(directives, \"expression\");\n continue;\n case Token.VoidKeyword:\n return parseVoidKeyword();\n case Token.NeverKeyword:\n return parseNeverKeyword();\n case Token.UnknownKeyword:\n return parseUnknownKeyword();\n default:\n return parseReferenceExpression(\"expression\");\n }\n }\n }\n function parseExternKeyword() {\n const pos = tokenPos();\n parseExpected(Token.ExternKeyword);\n return {\n kind: SyntaxKind.ExternKeyword,\n ...finishNode(pos),\n };\n }\n function parseVoidKeyword() {\n const pos = tokenPos();\n parseExpected(Token.VoidKeyword);\n return {\n kind: SyntaxKind.VoidKeyword,\n ...finishNode(pos),\n };\n }\n function parseNeverKeyword() {\n const pos = tokenPos();\n parseExpected(Token.NeverKeyword);\n return {\n kind: SyntaxKind.NeverKeyword,\n ...finishNode(pos),\n };\n }\n function parseUnknownKeyword() {\n const pos = tokenPos();\n parseExpected(Token.UnknownKeyword);\n return {\n kind: SyntaxKind.UnknownKeyword,\n ...finishNode(pos),\n };\n }\n function parseParenthesizedExpression() {\n const pos = tokenPos();\n parseExpected(Token.OpenParen);\n const expr = parseExpression();\n parseExpected(Token.CloseParen);\n return { ...expr, ...finishNode(pos) };\n }\n function parseTupleExpression() {\n const pos = tokenPos();\n const values = parseList(ListKind.Tuple, parseExpression);\n return {\n kind: SyntaxKind.TupleExpression,\n values,\n ...finishNode(pos),\n };\n }\n function parseModelExpression() {\n const pos = tokenPos();\n const properties = parseList(ListKind.ModelProperties, parseModelPropertyOrSpread);\n return {\n kind: SyntaxKind.ModelExpression,\n properties,\n ...finishNode(pos),\n };\n }\n function parseStringLiteral() {\n const pos = tokenPos();\n const value = tokenValue();\n parseExpected(Token.StringLiteral);\n return {\n kind: SyntaxKind.StringLiteral,\n value,\n ...finishNode(pos),\n };\n }\n function parseNumericLiteral() {\n const pos = tokenPos();\n const valueAsString = tokenValue();\n const value = Number(valueAsString);\n parseExpected(Token.NumericLiteral);\n return {\n kind: SyntaxKind.NumericLiteral,\n value,\n valueAsString,\n ...finishNode(pos),\n };\n }\n function parseBooleanLiteral() {\n const pos = tokenPos();\n const token = parseExpectedOneOf(Token.TrueKeyword, Token.FalseKeyword);\n const value = token === Token.TrueKeyword;\n return {\n kind: SyntaxKind.BooleanLiteral,\n value,\n ...finishNode(pos),\n };\n }\n function parseIdentifier(options) {\n var _a;\n if ((options === null || options === void 0 ? void 0 : options.recoverFromKeyword) !== false && isKeyword(token())) {\n error({ code: \"reserved-identifier\" });\n }\n else if (token() !== Token.Identifier &&\n (!(options === null || options === void 0 ? void 0 : options.allowStringLiteral) || token() !== Token.StringLiteral)) {\n // Error recovery: when we fail to parse an identifier or expression,\n // we insert a synthesized identifier with a unique name.\n error({ code: \"token-expected\", messageId: (_a = options === null || options === void 0 ? void 0 : options.message) !== null && _a !== void 0 ? _a : \"identifier\" });\n return createMissingIdentifier();\n }\n const pos = tokenPos();\n const sv = tokenValue();\n nextToken();\n return {\n kind: SyntaxKind.Identifier,\n sv,\n ...finishNode(pos),\n };\n }\n function parseDeclaration(pos) {\n const modifiers = parseModifiers();\n switch (token()) {\n case Token.DecKeyword:\n return parseDecoratorDeclarationStatement(pos, modifiers);\n case Token.FnKeyword:\n return parseFunctionDeclarationStatement(pos, modifiers);\n }\n return parseInvalidStatement(pos, []);\n }\n function parseModifiers() {\n const modifiers = [];\n let modifier;\n while ((modifier = parseModifier())) {\n modifiers.push(modifier);\n }\n return modifiers;\n }\n function parseModifier() {\n switch (token()) {\n case Token.ExternKeyword:\n return parseExternKeyword();\n default:\n return undefined;\n }\n }\n function parseDecoratorDeclarationStatement(pos, modifiers) {\n const modifierFlags = modifiersToFlags(modifiers);\n parseExpected(Token.DecKeyword);\n const id = parseIdentifier();\n let [target, ...parameters] = parseFunctionParameters();\n if (target === undefined) {\n error({ code: \"decorator-decl-target\", target: { pos, end: previousTokenEnd } });\n target = {\n kind: SyntaxKind.FunctionParameter,\n id: createMissingIdentifier(),\n type: createMissingIdentifier(),\n optional: false,\n rest: false,\n ...finishNode(pos),\n };\n }\n if (target.optional) {\n error({ code: \"decorator-decl-target\", messageId: \"required\" });\n }\n parseExpected(Token.Semicolon);\n return {\n kind: SyntaxKind.DecoratorDeclarationStatement,\n modifiers,\n modifierFlags,\n id,\n target,\n parameters,\n ...finishNode(pos),\n };\n }\n function parseFunctionDeclarationStatement(pos, modifiers) {\n const modifierFlags = modifiersToFlags(modifiers);\n parseExpected(Token.FnKeyword);\n const id = parseIdentifier();\n const parameters = parseFunctionParameters();\n let returnType;\n if (parseOptional(Token.Colon)) {\n returnType = parseExpression();\n }\n parseExpected(Token.Semicolon);\n return {\n kind: SyntaxKind.FunctionDeclarationStatement,\n modifiers,\n modifierFlags,\n id,\n parameters,\n returnType,\n ...finishNode(pos),\n };\n }\n function parseFunctionParameters() {\n const parameters = parseList(ListKind.FunctionParameters, parseFunctionParameter);\n let foundOptional = false;\n for (const [index, item] of parameters.entries()) {\n if (!item.optional && foundOptional) {\n error({ code: \"required-parameter-first\", target: item });\n continue;\n }\n if (item.optional) {\n foundOptional = true;\n }\n if (item.rest && item.optional) {\n error({ code: \"rest-parameter-required\", target: item });\n }\n if (item.rest && index !== parameters.length - 1) {\n error({ code: \"rest-parameter-last\", target: item });\n }\n }\n return parameters;\n }\n function parseFunctionParameter() {\n const pos = tokenPos();\n const rest = parseOptional(Token.Ellipsis);\n const id = parseIdentifier({ message: \"property\" });\n const optional = parseOptional(Token.Question);\n let type;\n if (parseOptional(Token.Colon)) {\n type = parseExpression();\n }\n return {\n kind: SyntaxKind.FunctionParameter,\n id,\n type,\n optional,\n rest,\n ...finishNode(pos),\n };\n }\n function modifiersToFlags(modifiers) {\n let flags = 0 /* ModifierFlags.None */;\n for (const modifier of modifiers) {\n switch (modifier.kind) {\n case SyntaxKind.ExternKeyword:\n flags |= 2 /* ModifierFlags.Extern */;\n break;\n }\n }\n return flags;\n }\n function parseProjectionStatement(pos) {\n parseExpected(Token.ProjectionKeyword);\n const selector = parseProjectionSelector();\n parseExpected(Token.Hash);\n const id = parseIdentifier();\n parseExpected(Token.OpenBrace);\n const projectionMap = new Map();\n const projections = [];\n while (token() === Token.Identifier) {\n const projection = parseProjection();\n if (projection.direction !== \"<error>\") {\n if (projectionMap.has(projection.direction)) {\n error({ code: \"duplicate-symbol\", target: projection, format: { name: \"projection\" } });\n }\n else {\n projectionMap.set(projection.direction, projection);\n }\n }\n // NOTE: Don't drop projections with error in direction definition from the AST.\n projections.push(projection);\n }\n parseExpected(Token.CloseBrace);\n return {\n kind: SyntaxKind.ProjectionStatement,\n selector,\n projections,\n preTo: projectionMap.get(\"pre_to\"),\n preFrom: projectionMap.get(\"pre_from\"),\n from: projectionMap.get(\"from\"),\n to: projectionMap.get(\"to\"),\n id,\n ...finishNode(pos),\n };\n }\n function parseProjection() {\n const pos = tokenPos();\n let directionId = parseIdentifier({ message: \"projectionDirection\" });\n let direction;\n const modifierIds = [];\n let isPre = false;\n if (directionId.sv === \"pre\") {\n isPre = true;\n modifierIds.push(directionId);\n directionId = parseIdentifier({ message: \"projectionDirection\" });\n }\n if (directionId.sv !== \"to\" && directionId.sv !== \"from\") {\n error({ code: \"token-expected\", messageId: \"projectionDirection\" });\n direction = \"<error>\";\n }\n else if (isPre) {\n direction = directionId.sv === \"to\" ? \"pre_to\" : \"pre_from\";\n }\n else {\n direction = directionId.sv;\n }\n let parameters;\n if (token() === Token.OpenParen) {\n parameters = parseList(ListKind.ProjectionParameter, parseProjectionParameter);\n }\n else {\n parameters = [];\n }\n parseExpected(Token.OpenBrace);\n const body = parseProjectionStatementList();\n parseExpected(Token.CloseBrace);\n return {\n kind: SyntaxKind.Projection,\n body,\n direction,\n directionId,\n modifierIds,\n parameters,\n ...finishNode(pos),\n };\n }\n function parseProjectionParameter() {\n const pos = tokenPos();\n const id = parseIdentifier();\n return {\n kind: SyntaxKind.ProjectionParameterDeclaration,\n id,\n ...finishNode(pos),\n };\n }\n function parseProjectionStatementList() {\n const stmts = [];\n while (token() !== Token.CloseBrace) {\n const startPos = tokenPos();\n if (token() === Token.EndOfFile) {\n error({ code: \"token-expected\", messageId: \"default\", format: { token: \"}\" } });\n break;\n }\n const expr = parseProjectionExpressionStatement();\n stmts.push(expr);\n if (tokenPos() === startPos) {\n // we didn't manage to parse anything, so break out\n // and we'll report errors elsewhere.\n break;\n }\n }\n return stmts;\n }\n function parseProjectionExpressionStatement() {\n const pos = tokenPos();\n const expr = parseProjectionExpression();\n parseExpected(Token.Semicolon);\n return {\n kind: SyntaxKind.ProjectionExpressionStatement,\n expr,\n ...finishNode(pos),\n };\n }\n function parseProjectionExpression() {\n return parseProjectionReturnExpressionOrHigher();\n }\n function parseProjectionReturnExpressionOrHigher() {\n if (token() === Token.ReturnKeyword) {\n const pos = tokenPos();\n parseExpected(Token.ReturnKeyword);\n return {\n kind: SyntaxKind.Return,\n value: parseProjectionExpression(),\n ...finishNode(pos),\n };\n }\n return parseProjectionLogicalOrExpressionOrHigher();\n }\n function parseProjectionLogicalOrExpressionOrHigher() {\n let expr = parseProjectionLogicalAndExpressionOrHigher();\n while (token() !== Token.EndOfFile) {\n const pos = expr.pos;\n if (parseOptional(Token.BarBar)) {\n expr = {\n kind: SyntaxKind.ProjectionLogicalExpression,\n op: \"||\",\n left: expr,\n right: parseProjectionLogicalAndExpressionOrHigher(),\n ...finishNode(pos),\n };\n }\n else {\n break;\n }\n }\n return expr;\n }\n function parseProjectionLogicalAndExpressionOrHigher() {\n let expr = parseProjectionEqualityExpressionOrHigher();\n while (token() !== Token.EndOfFile) {\n const pos = expr.pos;\n if (parseOptional(Token.AmpsersandAmpersand)) {\n expr = {\n kind: SyntaxKind.ProjectionLogicalExpression,\n op: \"&&\",\n left: expr,\n right: parseProjectionEqualityExpressionOrHigher(),\n ...finishNode(pos),\n };\n }\n else {\n break;\n }\n }\n return expr;\n }\n function parseProjectionEqualityExpressionOrHigher() {\n let expr = parseProjectionRelationalExpressionOrHigher();\n while (token() !== Token.EndOfFile) {\n const pos = expr.pos;\n const tok = token();\n if (tok === Token.EqualsEquals || tok === Token.ExclamationEquals) {\n const op = tokenValue();\n nextToken();\n expr = {\n kind: SyntaxKind.ProjectionEqualityExpression,\n op,\n left: expr,\n right: parseProjectionRelationalExpressionOrHigher(),\n ...finishNode(pos),\n };\n }\n else {\n break;\n }\n }\n return expr;\n }\n function parseProjectionRelationalExpressionOrHigher() {\n let expr = parseProjectionAdditiveExpressionOrHigher();\n while (token() !== Token.EndOfFile) {\n const pos = expr.pos;\n const tok = token();\n if (tok === Token.LessThan ||\n tok === Token.LessThanEquals ||\n tok === Token.GreaterThan ||\n tok === Token.GreaterThanEquals) {\n const op = tokenValue();\n nextToken();\n expr = {\n kind: SyntaxKind.ProjectionRelationalExpression,\n op,\n left: expr,\n right: parseProjectionAdditiveExpressionOrHigher(),\n ...finishNode(pos),\n };\n }\n else {\n break;\n }\n }\n return expr;\n }\n function parseProjectionAdditiveExpressionOrHigher() {\n let expr = parseProjectionMultiplicativeExpressionOrHigher();\n while (token() !== Token.EndOfFile) {\n const pos = expr.pos;\n const tok = token();\n if (tok === Token.Plus || tok === Token.Hyphen) {\n const op = tokenValue();\n nextToken();\n expr = {\n kind: SyntaxKind.ProjectionArithmeticExpression,\n op,\n left: expr,\n right: parseProjectionMultiplicativeExpressionOrHigher(),\n ...finishNode(pos),\n };\n }\n else {\n break;\n }\n }\n return expr;\n }\n function parseProjectionMultiplicativeExpressionOrHigher() {\n let expr = parseProjectionUnaryExpressionOrHigher();\n while (token() !== Token.EndOfFile) {\n const pos = expr.pos;\n const tok = token();\n if (tok === Token.ForwardSlash || tok === Token.Star) {\n const op = tokenValue();\n nextToken();\n expr = {\n kind: SyntaxKind.ProjectionArithmeticExpression,\n op,\n left: expr,\n right: parseProjectionUnaryExpressionOrHigher(),\n ...finishNode(pos),\n };\n }\n else {\n break;\n }\n }\n return expr;\n }\n function parseProjectionUnaryExpressionOrHigher() {\n if (token() === Token.Exclamation) {\n const pos = tokenPos();\n nextToken();\n return {\n kind: SyntaxKind.ProjectionUnaryExpression,\n op: \"!\",\n target: parseProjectionUnaryExpressionOrHigher(),\n ...finishNode(pos),\n };\n }\n return parseProjectionCallExpressionOrHigher();\n }\n function parseProjectionCallExpressionOrHigher() {\n let expr = parseProjectionDecoratorReferenceExpressionOrHigher();\n while (token() !== Token.EndOfFile) {\n const pos = expr.pos;\n expr = parseProjectionMemberExpressionRest(expr, pos);\n if (token() === Token.OpenParen) {\n expr = {\n kind: SyntaxKind.ProjectionCallExpression,\n callKind: \"method\",\n target: expr,\n arguments: parseList(ListKind.CallArguments, parseProjectionExpression),\n ...finishNode(pos),\n };\n }\n else {\n break;\n }\n }\n return expr;\n }\n function parseProjectionDecoratorReferenceExpressionOrHigher() {\n if (token() === Token.At) {\n const pos = tokenPos();\n nextToken();\n return {\n kind: SyntaxKind.ProjectionDecoratorReferenceExpression,\n target: parseIdentifierOrMemberExpression(undefined, true),\n ...finishNode(pos),\n };\n }\n return parseProjectionMemberExpressionOrHigher();\n }\n function parseProjectionMemberExpressionOrHigher() {\n const pos = tokenPos();\n let expr = parseProjectionPrimaryExpression();\n expr = parseProjectionMemberExpressionRest(expr, pos);\n return expr;\n }\n function parseProjectionMemberExpressionRest(expr, pos) {\n while (token() !== Token.EndOfFile) {\n if (parseOptional(Token.Dot)) {\n expr = {\n kind: SyntaxKind.ProjectionMemberExpression,\n base: expr,\n id: parseIdentifier(),\n selector: \".\",\n ...finishNode(pos),\n };\n }\n else if (parseOptional(Token.ColonColon)) {\n expr = {\n kind: SyntaxKind.ProjectionMemberExpression,\n base: expr,\n id: parseIdentifier(),\n selector: \"::\",\n ...finishNode(pos),\n };\n }\n else {\n break;\n }\n }\n return expr;\n }\n function parseProjectionPrimaryExpression() {\n switch (token()) {\n case Token.IfKeyword:\n return parseProjectionIfExpression();\n case Token.NumericLiteral:\n return parseNumericLiteral();\n case Token.StringLiteral:\n return parseStringLiteral();\n case Token.TrueKeyword:\n case Token.FalseKeyword:\n return parseBooleanLiteral();\n case Token.OpenBracket:\n return parseProjectionTupleExpression();\n case Token.OpenBrace:\n return parseProjectionModelExpression();\n case Token.OpenParen:\n return parseProjectionLambdaOrParenthesizedExpression();\n case Token.VoidKeyword:\n return parseVoidKeyword();\n case Token.NeverKeyword:\n return parseNeverKeyword();\n case Token.UnknownKeyword:\n return parseUnknownKeyword();\n default:\n return parseIdentifier({ message: \"expression\" });\n }\n }\n function parseProjectionLambdaOrParenthesizedExpression() {\n const pos = tokenPos();\n const exprs = parseList(ListKind.ProjectionExpression, parseProjectionExpression);\n if (token() === Token.EqualsGreaterThan) {\n // unpack the exprs (which should be just identifiers) into a param list\n const params = [];\n for (const expr of exprs) {\n if (expr.kind === SyntaxKind.Identifier) {\n params.push(withSymbol({\n kind: SyntaxKind.ProjectionLambdaParameterDeclaration,\n id: expr,\n pos: expr.pos,\n end: expr.end,\n flags: 0 /* NodeFlags.None */,\n }));\n }\n else {\n error({ code: \"token-expected\", messageId: \"identifier\", target: expr });\n }\n }\n return parseProjectionLambdaExpressionRest(pos, params);\n }\n else {\n if (exprs.length === 0) {\n error({\n code: \"token-expected\",\n messageId: \"expression\",\n });\n }\n // verify we only have one entry\n for (let i = 1; i < exprs.length; i++) {\n error({\n code: \"token-expected\",\n messageId: \"unexpected\",\n format: { token: \"expression\" },\n target: exprs[i],\n });\n }\n return exprs[0];\n }\n }\n function parseProjectionLambdaExpressionRest(pos, parameters) {\n parseExpected(Token.EqualsGreaterThan);\n const body = parseProjectionBlockExpression();\n return {\n kind: SyntaxKind.ProjectionLambdaExpression,\n parameters,\n body,\n ...finishNode(pos),\n };\n }\n function parseProjectionModelExpression() {\n const pos = tokenPos();\n const properties = parseList(ListKind.ModelProperties, parseProjectionModelPropertyOrSpread);\n return {\n kind: SyntaxKind.ProjectionModelExpression,\n properties,\n ...finishNode(pos),\n };\n }\n function parseProjectionModelPropertyOrSpread(pos, decorators) {\n return token() === Token.Ellipsis\n ? parseProjectionModelSpreadProperty(pos, decorators)\n : parseProjectionModelProperty(pos, decorators);\n }\n function parseProjectionModelSpreadProperty(pos, decorators) {\n parseExpected(Token.Ellipsis);\n reportInvalidDecorators(decorators, \"spread property\");\n const target = parseProjectionExpression();\n return {\n kind: SyntaxKind.ProjectionModelSpreadProperty,\n target,\n ...finishNode(pos),\n };\n }\n function parseProjectionModelProperty(pos, decorators) {\n const id = parseIdentifier({ message: \"property\", allowStringLiteral: true });\n const optional = parseOptional(Token.Question);\n parseExpected(Token.Colon);\n const value = parseProjectionExpression();\n const hasDefault = parseOptional(Token.Equals);\n const defaultValue = hasDefault ? parseProjectionExpression() : undefined;\n return {\n kind: SyntaxKind.ProjectionModelProperty,\n id,\n decorators,\n value,\n optional,\n default: defaultValue,\n ...finishNode(pos),\n };\n }\n function parseProjectionIfExpression() {\n const pos = tokenPos();\n parseExpected(Token.IfKeyword);\n const test = parseProjectionExpression();\n const consequent = parseProjectionBlockExpression();\n let alternate = undefined;\n if (parseOptional(Token.ElseKeyword)) {\n if (token() === Token.IfKeyword) {\n alternate = parseProjectionIfExpression();\n }\n else {\n alternate = parseProjectionBlockExpression();\n }\n }\n return {\n kind: SyntaxKind.ProjectionIfExpression,\n test,\n consequent,\n alternate,\n ...finishNode(pos),\n };\n }\n function parseProjectionBlockExpression() {\n const pos = tokenPos();\n parseExpected(Token.OpenBrace);\n const statements = parseProjectionStatementList();\n parseExpected(Token.CloseBrace);\n return {\n kind: SyntaxKind.ProjectionBlockExpression,\n statements,\n ...finishNode(pos),\n };\n }\n function parseProjectionTupleExpression() {\n const pos = tokenPos();\n const values = parseList(ListKind.Tuple, parseProjectionExpression);\n return {\n kind: SyntaxKind.ProjectionTupleExpression,\n values,\n ...finishNode(pos),\n };\n }\n function parseProjectionSelector() {\n const pos = tokenPos();\n const selectorTok = expectTokenIsOneOf(Token.Identifier, Token.ModelKeyword, Token.OpKeyword, Token.InterfaceKeyword, Token.UnionKeyword, Token.EnumKeyword);\n switch (selectorTok) {\n case Token.Identifier:\n const id = parseIdentifierOrMemberExpression(undefined, true);\n if (id.kind === SyntaxKind.Identifier) {\n switch (id.sv) {\n case \"modelproperty\":\n return {\n kind: SyntaxKind.ProjectionModelPropertySelector,\n ...finishNode(pos),\n };\n case \"unionvariant\":\n return {\n kind: SyntaxKind.ProjectionUnionVariantSelector,\n ...finishNode(pos),\n };\n case \"enummember\":\n return {\n kind: SyntaxKind.ProjectionEnumMemberSelector,\n ...finishNode(pos),\n };\n }\n }\n return id;\n case Token.ModelKeyword:\n nextToken();\n return {\n kind: SyntaxKind.ProjectionModelSelector,\n ...finishNode(pos),\n };\n case Token.OpKeyword:\n nextToken();\n return {\n kind: SyntaxKind.ProjectionOperationSelector,\n ...finishNode(pos),\n };\n case Token.InterfaceKeyword:\n nextToken();\n return {\n kind: SyntaxKind.ProjectionInterfaceSelector,\n ...finishNode(pos),\n };\n case Token.UnionKeyword:\n nextToken();\n return {\n kind: SyntaxKind.ProjectionUnionSelector,\n ...finishNode(pos),\n };\n case Token.EnumKeyword:\n nextToken();\n return {\n kind: SyntaxKind.ProjectionEnumSelector,\n ...finishNode(pos),\n };\n default:\n // recovery: return a missing identifier to use as the selector\n // we don't need to emit a diagnostic here as the `expectTokenOneOf` above\n // will have done so.\n return createMissingIdentifier();\n }\n }\n function parseRange(mode, range, callback) {\n const savedMode = currentMode;\n const result = scanner.scanRange(range, () => {\n currentMode = mode;\n nextToken();\n return callback();\n });\n currentMode = savedMode;\n return result;\n }\n /** Remove leading slash-star-star and trailing star-slash (if terminated) from doc comment range. */\n function innerDocRange(range) {\n return {\n pos: range.pos + 3,\n end: tokenFlags() & TokenFlags.Unterminated ? range.end : range.end - 2,\n };\n }\n function parseDocList() {\n if (docRanges.length === 0 || options.docs === false) {\n return [tokenPos(), []];\n }\n const docs = [];\n for (const range of docRanges) {\n const doc = parseRange(1 /* ParseMode.Doc */, innerDocRange(range), () => parseDoc(range));\n docs.push(doc);\n if (range.comment) {\n mutate(range.comment).parsedAsDocs = true;\n }\n }\n return [docRanges[0].pos, docs];\n }\n function parseDoc(range) {\n const content = [];\n const tags = [];\n loop: while (true) {\n switch (token()) {\n case Token.EndOfFile:\n break loop;\n case Token.At:\n const tag = parseDocTag();\n tags.push(tag);\n break;\n default:\n content.push(...parseDocContent());\n break;\n }\n }\n return {\n kind: SyntaxKind.Doc,\n content,\n tags,\n ...finishNode(range.pos),\n end: range.end,\n };\n }\n function parseDocContent() {\n const parts = [];\n const source = scanner.file.text;\n const pos = tokenPos();\n let start = pos;\n let inCodeFence = false;\n loop: while (true) {\n switch (token()) {\n case Token.DocCodeFenceDelimiter:\n inCodeFence = !inCodeFence;\n nextToken();\n break;\n case Token.NewLine:\n parts.push(source.substring(start, tokenPos()));\n parts.push(\"\\n\"); // normalize line endings\n nextToken();\n start = tokenPos();\n while (parseOptional(Token.Whitespace))\n ;\n if (parseOptional(Token.Star)) {\n parseOptional(Token.Whitespace);\n start = tokenPos();\n break;\n }\n break;\n case Token.EndOfFile:\n break loop;\n case Token.At:\n if (!inCodeFence) {\n break loop;\n }\n nextToken();\n break;\n default:\n nextToken();\n break;\n }\n }\n parts.push(source.substring(start, tokenPos()));\n const text = trim(parts.join(\"\"));\n return [\n {\n kind: SyntaxKind.DocText,\n text,\n ...finishNode(pos),\n },\n ];\n }\n function parseDocTag() {\n const pos = tokenPos();\n parseExpected(Token.At);\n const tagName = parseDocIdentifier(\"tag\");\n switch (tagName.sv) {\n case \"param\":\n return parseDocParamLikeTag(pos, tagName, SyntaxKind.DocParamTag, \"param\");\n case \"template\":\n return parseDocParamLikeTag(pos, tagName, SyntaxKind.DocTemplateTag, \"templateParam\");\n case \"return\":\n case \"returns\":\n return parseDocSimpleTag(pos, tagName, SyntaxKind.DocReturnsTag);\n default:\n return parseDocSimpleTag(pos, tagName, SyntaxKind.DocUnknownTag);\n }\n }\n function parseDocParamLikeTag(pos, tagName, kind, messageId) {\n const name = parseDocIdentifier(messageId);\n const content = parseDocContent();\n return {\n kind,\n tagName,\n paramName: name,\n content,\n ...finishNode(pos),\n };\n }\n function parseDocSimpleTag(pos, tagName, kind) {\n const content = parseDocContent();\n return {\n kind,\n tagName,\n content,\n ...finishNode(pos),\n };\n }\n function parseDocIdentifier(messageId) {\n // We don't allow whitespace between @ and tag name, but allow\n // whitespace before all other identifiers.\n if (messageId !== \"tag\") {\n while (parseOptional(Token.Whitespace))\n ;\n }\n const pos = tokenPos();\n let sv;\n if (token() === Token.Identifier) {\n sv = tokenValue();\n nextToken();\n }\n else {\n sv = \"\";\n warning({ code: \"doc-invalid-identifier\", messageId });\n }\n return {\n kind: SyntaxKind.Identifier,\n sv,\n ...finishNode(pos),\n };\n }\n // utility functions\n function token() {\n return scanner.token;\n }\n function tokenFlags() {\n return scanner.tokenFlags;\n }\n function tokenValue() {\n return scanner.getTokenValue();\n }\n function tokenPos() {\n return scanner.tokenPosition;\n }\n function tokenEnd() {\n return scanner.position;\n }\n function nextToken() {\n // keep track of the previous token end separately from the current scanner\n // position as these will differ when the previous token had trailing\n // trivia, and we don't want to squiggle the trivia.\n previousTokenEnd = scanner.position;\n return currentMode === 0 /* ParseMode.Syntax */ ? nextSyntaxToken() : nextDocToken();\n }\n function nextSyntaxToken() {\n docRanges = [];\n for (;;) {\n scanner.scan();\n if (isTrivia(token())) {\n if (!newLineIsTrivia && token() === Token.NewLine) {\n break;\n }\n let comment = undefined;\n if (options.comments && isComment(token())) {\n comment = {\n kind: token() === Token.SingleLineComment\n ? SyntaxKind.LineComment\n : SyntaxKind.BlockComment,\n pos: tokenPos(),\n end: tokenEnd(),\n };\n comments.push(comment);\n }\n if (tokenFlags() & TokenFlags.DocComment) {\n docRanges.push({\n pos: tokenPos(),\n end: tokenEnd(),\n comment: comment,\n });\n }\n }\n else {\n break;\n }\n }\n }\n function nextDocToken() {\n // NOTE: trivia tokens are always significant in doc comments.\n scanner.scanDoc();\n }\n function createMissingIdentifier() {\n const pos = tokenPos();\n previousTokenEnd = pos;\n missingIdentifierCounter++;\n return {\n kind: SyntaxKind.Identifier,\n sv: \"<missing identifier>\" + missingIdentifierCounter,\n ...finishNode(pos),\n };\n }\n function finishNode(pos) {\n const flags = parseErrorInNextFinishedNode ? 2 /* NodeFlags.ThisNodeHasError */ : 0 /* NodeFlags.None */;\n parseErrorInNextFinishedNode = false;\n return withSymbol({ pos, end: previousTokenEnd, flags });\n }\n // pretend to add as symbol property, likely to a node that is being created.\n function withSymbol(obj) {\n return obj;\n }\n /**\n * Parse a delimited list of elements, including the surrounding open and\n * close punctuation\n *\n * This shared driver function is used to share sensitive error recovery code.\n * In particular, error recovery by inserting tokens deemed missing is\n * susceptible to getting stalled in a loop iteration without making any\n * progress, and we guard against this in a shared place here.\n *\n * Note that statement and decorator lists do not have this issue. We always\n * consume at least a real '@' for a decorator and if the leading token of a\n * statement is not one of our statement keywords, ';', or '@', it is consumed\n * as part of a bad statement. As such, parsing of decorators and statements\n * do not go through here.\n */\n function parseList(kind, parseItem) {\n if (kind.open !== Token.None) {\n parseExpected(kind.open);\n }\n if (kind.allowEmpty && parseOptional(kind.close)) {\n return [];\n }\n const items = [];\n while (true) {\n const { pos, docs, directives, decorators } = parseAnnotations({\n skipParsingDocNodes: Boolean(kind.invalidAnnotationTarget),\n });\n if (kind.invalidAnnotationTarget) {\n reportInvalidDecorators(decorators, kind.invalidAnnotationTarget);\n reportInvalidDirective(directives, kind.invalidAnnotationTarget);\n }\n if (directives.length === 0 && decorators.length === 0 && atEndOfListWithError(kind)) {\n // Error recovery: end surrounded list at statement keyword or end\n // of file. Note, however, that we must parse a missing element if\n // there were directives or decorators as we cannot drop those from\n // the tree.\n parseExpected(kind.close);\n break;\n }\n let item;\n if (kind.invalidAnnotationTarget) {\n item = parseItem();\n }\n else {\n item = parseItem(pos, decorators);\n mutate(item).docs = docs;\n mutate(item).directives = directives;\n }\n items.push(item);\n const delimiter = token();\n const delimiterPos = tokenPos();\n if (parseOptionalDelimiter(kind)) {\n // Delimiter found: check if it's trailing.\n if (parseOptional(kind.close)) {\n if (!kind.trailingDelimiterIsValid) {\n error({\n code: \"trailing-token\",\n format: { token: TokenDisplay[delimiter] },\n target: {\n pos: delimiterPos,\n end: delimiterPos + 1,\n },\n });\n }\n // It was trailing and we've consumed the close token.\n break;\n }\n // Not trailing. We can safely skip the progress check below here\n // because we know that we consumed a real delimiter.\n continue;\n }\n else if (kind.close === Token.None) {\n // If a list is *not* surrounded by punctuation, then the list ends when\n // there's no delimiter after an item.\n break;\n }\n else if (parseOptional(kind.close)) {\n // If a list *is* surrounded by punctuation, then the list ends when we\n // reach the close token.\n break;\n }\n else if (atEndOfListWithError(kind)) {\n // Error recovery: If a list *is* surrounded by punctuation, then\n // the list ends at statement keyword or end-of-file under the\n // assumption that the closing delimiter is missing. This check is\n // duplicated from above to preempt the parseExpected(delimeter)\n // below.\n parseExpected(kind.close);\n break;\n }\n else {\n // Error recovery: if a list kind *is* surrounded by punctuation and we\n // find neither a delimiter nor a close token after an item, then we\n // assume there is a missing delimiter between items.\n //\n // Example: `model M { a: B <missing semicolon> c: D }\n parseExpected(kind.delimiter);\n }\n if (pos === tokenPos()) {\n // Error recovery: we've inserted everything during this loop iteration\n // and haven't made any progress. Assume that the current token is a bad\n // representation of the end of the the list that we're trying to get\n // through.\n //\n // Simple repro: `model M { ]` would loop forever without this check.\n //\n parseExpected(kind.close);\n nextToken();\n // remove the item that was entirely inserted by error recovery.\n items.pop();\n break;\n }\n }\n return items;\n }\n /**\n * Parse a delimited list with surrounding open and close punctuation if the\n * open token is present. Otherwise, return an empty list.\n */\n function parseOptionalList(kind, parseItem) {\n return token() === kind.open ? parseList(kind, parseItem) : [];\n }\n function parseOptionalDelimiter(kind) {\n if (parseOptional(kind.delimiter)) {\n return true;\n }\n if (token() === kind.toleratedDelimiter) {\n if (!kind.toleratedDelimiterIsValid) {\n parseExpected(kind.delimiter);\n }\n nextToken();\n return true;\n }\n return false;\n }\n function atEndOfListWithError(kind) {\n return (kind.close !== Token.None &&\n (isStatementKeyword(token()) || token() === Token.EndOfFile) &&\n token() !== kind.allowedStatementKeyword);\n }\n function parseEmptyStatement(pos) {\n parseExpected(Token.Semicolon);\n return { kind: SyntaxKind.EmptyStatement, ...finishNode(pos) };\n }\n function parseInvalidStatement(pos, decorators) {\n // Error recovery: avoid an avalanche of errors when we get cornered into\n // parsing statements where none exist. Skip until we find a statement\n // keyword or decorator and only report one error for a contiguous range of\n // neither.\n do {\n nextToken();\n } while (!isStatementKeyword(token()) &&\n token() !== Token.At &&\n token() !== Token.Semicolon &&\n token() !== Token.EndOfFile);\n error({\n code: \"token-expected\",\n messageId: \"statement\",\n target: { pos, end: previousTokenEnd },\n });\n return { kind: SyntaxKind.InvalidStatement, decorators, ...finishNode(pos) };\n }\n function error(report) {\n var _a, _b, _c, _d, _e, _f;\n parseErrorInNextFinishedNode = true;\n const location = {\n file: scanner.file,\n pos: (_b = (_a = report.target) === null || _a === void 0 ? void 0 : _a.pos) !== null && _b !== void 0 ? _b : tokenPos(),\n end: (_d = (_c = report.target) === null || _c === void 0 ? void 0 : _c.end) !== null && _d !== void 0 ? _d : tokenEnd(),\n };\n if (!report.printable) {\n treePrintable = false;\n }\n // Error recovery: don't report more than 1 consecutive error at the same\n // position. The code path taken by error recovery after logging an error\n // can otherwise produce redundant and less decipherable errors, which this\n // suppresses.\n const realPos = (_f = (_e = report.target) === null || _e === void 0 ? void 0 : _e.realPos) !== null && _f !== void 0 ? _f : location.pos;\n if (realPositionOfLastError === realPos) {\n return;\n }\n realPositionOfLastError = realPos;\n const diagnostic = createDiagnostic({\n ...report,\n target: location,\n });\n assert(diagnostic.severity === \"error\", \"This function is for reporting errors. Use warning() for warnings.\");\n parseDiagnostics.push(diagnostic);\n }\n function warning(report) {\n var _a, _b, _c, _d;\n const location = {\n file: scanner.file,\n pos: (_b = (_a = report.target) === null || _a === void 0 ? void 0 : _a.pos) !== null && _b !== void 0 ? _b : tokenPos(),\n end: (_d = (_c = report.target) === null || _c === void 0 ? void 0 : _c.end) !== null && _d !== void 0 ? _d : tokenEnd(),\n };\n const diagnostic = createDiagnostic({\n ...report,\n target: location,\n });\n assert(diagnostic.severity === \"warning\", \"This function is for reporting warnings only. Use error() for errors.\");\n parseDiagnostics.push(diagnostic);\n }\n function reportDiagnostic(diagnostic) {\n if (diagnostic.severity === \"error\") {\n parseErrorInNextFinishedNode = true;\n treePrintable = false;\n }\n parseDiagnostics.push(diagnostic);\n }\n function assert(condition, message) {\n const location = {\n file: scanner.file,\n pos: tokenPos(),\n end: tokenEnd(),\n };\n compilerAssert(condition, message, location);\n }\n function reportInvalidDecorators(decorators, nodeName) {\n for (const decorator of decorators) {\n error({ code: \"invalid-decorator-location\", format: { nodeName }, target: decorator });\n }\n }\n function reportInvalidDirective(directives, nodeName) {\n for (const directive of directives) {\n error({ code: \"invalid-directive-location\", format: { nodeName }, target: directive });\n }\n }\n function parseExpected(expectedToken) {\n if (token() === expectedToken) {\n nextToken();\n return true;\n }\n const location = getAdjustedDefaultLocation(expectedToken);\n error({\n code: \"token-expected\",\n format: { token: TokenDisplay[expectedToken] },\n target: location,\n printable: isPunctuation(expectedToken),\n });\n return false;\n }\n function expectTokenIsOneOf(...args) {\n const tok = token();\n for (const expected of args) {\n if (expected === Token.None) {\n continue;\n }\n if (tok === expected) {\n return tok;\n }\n }\n errorTokenIsNotOneOf(...args);\n return Token.None;\n }\n function parseExpectedOneOf(...args) {\n const tok = expectTokenIsOneOf(...args);\n if (tok !== Token.None) {\n nextToken();\n }\n return tok;\n }\n function errorTokenIsNotOneOf(...args) {\n const location = getAdjustedDefaultLocation(args[0]);\n const displayList = args.map((t, i) => {\n if (i === args.length - 1) {\n return `or ${TokenDisplay[t]}`;\n }\n return TokenDisplay[t];\n });\n error({ code: \"token-expected\", format: { token: displayList.join(\", \") }, target: location });\n }\n function parseOptional(optionalToken) {\n if (token() === optionalToken) {\n nextToken();\n return true;\n }\n return false;\n }\n function getAdjustedDefaultLocation(token) {\n // Put the squiggly immediately after prior token when missing punctuation.\n // Avoids saying ';' is expected far away after a long comment, for example.\n // It's also confusing to squiggle the current token even if its nearby\n // in this case.\n return isPunctuation(token)\n ? { pos: previousTokenEnd, end: previousTokenEnd + 1, realPos: tokenPos() }\n : undefined;\n }\n}\nexport function visitChildren(node, cb) {\n if (node.directives) {\n const result = visitEach(cb, node.directives);\n if (result)\n return result;\n }\n if (node.docs) {\n const result = visitEach(cb, node.docs);\n if (result)\n return result;\n }\n switch (node.kind) {\n case SyntaxKind.TypeSpecScript:\n return visitNode(cb, node.id) || visitEach(cb, node.statements);\n case SyntaxKind.ArrayExpression:\n return visitNode(cb, node.elementType);\n case SyntaxKind.AugmentDecoratorStatement:\n return (visitNode(cb, node.target) ||\n visitNode(cb, node.targetType) ||\n visitEach(cb, node.arguments));\n case SyntaxKind.DecoratorExpression:\n return visitNode(cb, node.target) || visitEach(cb, node.arguments);\n case SyntaxKind.DirectiveExpression:\n return visitNode(cb, node.target) || visitEach(cb, node.arguments);\n case SyntaxKind.ImportStatement:\n return visitNode(cb, node.path);\n case SyntaxKind.OperationStatement:\n return (visitEach(cb, node.decorators) ||\n visitNode(cb, node.id) ||\n visitEach(cb, node.templateParameters) ||\n visitNode(cb, node.signature));\n case SyntaxKind.OperationSignatureDeclaration:\n return visitNode(cb, node.parameters) || visitNode(cb, node.returnType);\n case SyntaxKind.OperationSignatureReference:\n return visitNode(cb, node.baseOperation);\n case SyntaxKind.NamespaceStatement:\n return (visitEach(cb, node.decorators) ||\n visitNode(cb, node.id) ||\n (isArray(node.statements) ? visitEach(cb, node.statements) : visitNode(cb, node.statements)));\n case SyntaxKind.InterfaceStatement:\n return (visitEach(cb, node.decorators) ||\n visitNode(cb, node.id) ||\n visitEach(cb, node.templateParameters) ||\n visitEach(cb, node.extends) ||\n visitEach(cb, node.operations));\n case SyntaxKind.UsingStatement:\n return visitNode(cb, node.name);\n case SyntaxKind.IntersectionExpression:\n return visitEach(cb, node.options);\n case SyntaxKind.MemberExpression:\n return visitNode(cb, node.base) || visitNode(cb, node.id);\n case SyntaxKind.ModelExpression:\n return visitEach(cb, node.properties);\n case SyntaxKind.ModelProperty:\n return (visitEach(cb, node.decorators) ||\n visitNode(cb, node.id) ||\n visitNode(cb, node.value) ||\n visitNode(cb, node.default));\n case SyntaxKind.ModelSpreadProperty:\n return visitNode(cb, node.target);\n case SyntaxKind.ModelStatement:\n return (visitEach(cb, node.decorators) ||\n visitNode(cb, node.id) ||\n visitEach(cb, node.templateParameters) ||\n visitNode(cb, node.extends) ||\n visitNode(cb, node.is) ||\n visitEach(cb, node.properties));\n case SyntaxKind.ScalarStatement:\n return (visitEach(cb, node.decorators) ||\n visitNode(cb, node.id) ||\n visitEach(cb, node.templateParameters) ||\n visitNode(cb, node.extends));\n case SyntaxKind.UnionStatement:\n return (visitEach(cb, node.decorators) ||\n visitNode(cb, node.id) ||\n visitEach(cb, node.templateParameters) ||\n visitEach(cb, node.options));\n case SyntaxKind.UnionVariant:\n return visitEach(cb, node.decorators) || visitNode(cb, node.id) || visitNode(cb, node.value);\n case SyntaxKind.EnumStatement:\n return (visitEach(cb, node.decorators) || visitNode(cb, node.id) || visitEach(cb, node.members));\n case SyntaxKind.EnumMember:\n return visitEach(cb, node.decorators) || visitNode(cb, node.id) || visitNode(cb, node.value);\n case SyntaxKind.EnumSpreadMember:\n return visitNode(cb, node.target);\n case SyntaxKind.AliasStatement:\n return (visitNode(cb, node.id) ||\n visitEach(cb, node.templateParameters) ||\n visitNode(cb, node.value));\n case SyntaxKind.DecoratorDeclarationStatement:\n return (visitEach(cb, node.modifiers) ||\n visitNode(cb, node.id) ||\n visitNode(cb, node.target) ||\n visitEach(cb, node.parameters));\n case SyntaxKind.FunctionDeclarationStatement:\n return (visitEach(cb, node.modifiers) ||\n visitNode(cb, node.id) ||\n visitEach(cb, node.parameters) ||\n visitNode(cb, node.returnType));\n case SyntaxKind.FunctionParameter:\n return visitNode(cb, node.id) || visitNode(cb, node.type);\n case SyntaxKind.TypeReference:\n return visitNode(cb, node.target) || visitEach(cb, node.arguments);\n case SyntaxKind.ValueOfExpression:\n return visitNode(cb, node.target);\n case SyntaxKind.TupleExpression:\n return visitEach(cb, node.values);\n case SyntaxKind.UnionExpression:\n return visitEach(cb, node.options);\n case SyntaxKind.Projection:\n return (visitNode(cb, node.directionId) ||\n visitEach(cb, node.modifierIds) ||\n visitEach(cb, node.parameters) ||\n visitEach(cb, node.body));\n case SyntaxKind.ProjectionExpressionStatement:\n return visitNode(cb, node.expr);\n case SyntaxKind.ProjectionCallExpression:\n return visitNode(cb, node.target) || visitEach(cb, node.arguments);\n case SyntaxKind.ProjectionMemberExpression:\n return visitNode(cb, node.base) || visitNode(cb, node.id);\n // binops\n case SyntaxKind.ProjectionLogicalExpression:\n case SyntaxKind.ProjectionRelationalExpression:\n case SyntaxKind.ProjectionArithmeticExpression:\n case SyntaxKind.ProjectionEqualityExpression:\n return visitNode(cb, node.left) || visitNode(cb, node.right);\n case SyntaxKind.ProjectionUnaryExpression:\n return visitNode(cb, node.target);\n case SyntaxKind.ProjectionModelExpression:\n return visitEach(cb, node.properties);\n case SyntaxKind.ProjectionModelProperty:\n return (visitEach(cb, node.decorators) ||\n visitNode(cb, node.id) ||\n visitNode(cb, node.value) ||\n visitNode(cb, node.default));\n case SyntaxKind.ProjectionModelSpreadProperty:\n return visitNode(cb, node.target);\n case SyntaxKind.ProjectionTupleExpression:\n return visitEach(cb, node.values);\n case SyntaxKind.ProjectionBlockExpression:\n return visitEach(cb, node.statements);\n case SyntaxKind.ProjectionIfExpression:\n return (visitNode(cb, node.test) || visitNode(cb, node.consequent) || visitNode(cb, node.alternate));\n case SyntaxKind.ProjectionLambdaExpression:\n return visitEach(cb, node.parameters) || visitNode(cb, node.body);\n case SyntaxKind.ProjectionStatement:\n return (visitNode(cb, node.id) || visitNode(cb, node.selector) || visitEach(cb, node.projections));\n case SyntaxKind.ProjectionDecoratorReferenceExpression:\n return visitNode(cb, node.target);\n case SyntaxKind.Return:\n return visitNode(cb, node.value);\n case SyntaxKind.InvalidStatement:\n return visitEach(cb, node.decorators);\n case SyntaxKind.TemplateParameterDeclaration:\n return (visitNode(cb, node.id) || visitNode(cb, node.constraint) || visitNode(cb, node.default));\n case SyntaxKind.ProjectionLambdaParameterDeclaration:\n return visitNode(cb, node.id);\n case SyntaxKind.ProjectionParameterDeclaration:\n return visitNode(cb, node.id);\n case SyntaxKind.Doc:\n return visitEach(cb, node.content) || visitEach(cb, node.tags);\n case SyntaxKind.DocParamTag:\n case SyntaxKind.DocTemplateTag:\n return (visitNode(cb, node.tagName) || visitNode(cb, node.paramName) || visitEach(cb, node.content));\n case SyntaxKind.DocReturnsTag:\n case SyntaxKind.DocUnknownTag:\n return visitNode(cb, node.tagName) || visitEach(cb, node.content);\n // no children for the rest of these.\n case SyntaxKind.StringLiteral:\n case SyntaxKind.NumericLiteral:\n case SyntaxKind.BooleanLiteral:\n case SyntaxKind.Identifier:\n case SyntaxKind.EmptyStatement:\n case SyntaxKind.ProjectionModelSelector:\n case SyntaxKind.ProjectionModelPropertySelector:\n case SyntaxKind.ProjectionUnionSelector:\n case SyntaxKind.ProjectionUnionVariantSelector:\n case SyntaxKind.ProjectionInterfaceSelector:\n case SyntaxKind.ProjectionOperationSelector:\n case SyntaxKind.ProjectionEnumSelector:\n case SyntaxKind.ProjectionEnumMemberSelector:\n case SyntaxKind.VoidKeyword:\n case SyntaxKind.NeverKeyword:\n case SyntaxKind.ExternKeyword:\n case SyntaxKind.UnknownKeyword:\n case SyntaxKind.JsSourceFile:\n case SyntaxKind.DocText:\n return;\n default:\n // Dummy const to ensure we handle all node types.\n // If you get an error here, add a case for the new node type\n // you added..\n const _assertNever = node;\n return;\n }\n}\nfunction visitNode(cb, node) {\n return node && cb(node);\n}\nfunction visitEach(cb, nodes) {\n if (!nodes) {\n return;\n }\n for (const node of nodes) {\n const result = cb(node);\n if (result) {\n return result;\n }\n }\n return;\n}\nexport function getNodeAtPosition(script, position, filter = (node) => true) {\n return visit(script);\n function visit(node) {\n // We deliberately include the end position here because we need to hit\n // nodes when the cursor is positioned immediately after an identifier.\n // This is especially vital for completion. It's also generally OK\n // because the language doesn't (and should never) have syntax where you\n // could place the cursor ambiguously between two adjacent,\n // non-punctuation, non-trivia tokens that have no punctuation or trivia\n // separating them.\n if (node.pos <= position && position <= node.end) {\n // We only need to recursively visit children of nodes that satisfied\n // the condition above and therefore contain the given position. If a\n // node does not contain a position, then neither do its children.\n const child = visitChildren(node, visit);\n // A child match here is better than a self-match below as we want the\n // deepest (most specific) node. In other words, the search is depth\n // first. For example, consider `A<B<C>>`: If the cursor is on `B`,\n // then prefer B<C> over A<B<C>>.\n if (child) {\n return child;\n }\n if (filter(node)) {\n return node;\n }\n }\n return undefined;\n }\n}\nexport function hasParseError(node) {\n if (node.flags & 2 /* NodeFlags.ThisNodeHasError */) {\n return true;\n }\n checkForDescendantErrors(node);\n return node.flags & 4 /* NodeFlags.DescendantHasError */;\n}\nfunction checkForDescendantErrors(node) {\n if (node.flags & 1 /* NodeFlags.DescendantErrorsExamined */) {\n return;\n }\n mutate(node).flags |= 1 /* NodeFlags.DescendantErrorsExamined */;\n visitChildren(node, (child) => {\n if (child.flags & 2 /* NodeFlags.ThisNodeHasError */) {\n mutate(node).flags |= 4 /* NodeFlags.DescendantHasError */ | 1 /* NodeFlags.DescendantErrorsExamined */;\n return true;\n }\n checkForDescendantErrors(child);\n if (child.flags & 4 /* NodeFlags.DescendantHasError */) {\n mutate(node).flags |= 4 /* NodeFlags.DescendantHasError */ | 1 /* NodeFlags.DescendantErrorsExamined */;\n return true;\n }\n mutate(child).flags |= 1 /* NodeFlags.DescendantErrorsExamined */;\n return false;\n });\n}\nexport function isImportStatement(node) {\n return node.kind === SyntaxKind.ImportStatement;\n}\nfunction isBlocklessNamespace(node) {\n if (node.kind !== SyntaxKind.NamespaceStatement) {\n return false;\n }\n while (!isArray(node.statements) && node.statements) {\n node = node.statements;\n }\n return node.statements === undefined;\n}\nexport function getFirstAncestor(node, test) {\n for (let n = node.parent; n; n = n.parent) {\n if (test(n)) {\n return n;\n }\n }\n return undefined;\n}\nexport function getIdentifierContext(id) {\n const node = getFirstAncestor(id, (n) => n.kind !== SyntaxKind.MemberExpression);\n compilerAssert(node, \"Identifier with no non-member-expression ancestor.\");\n let kind;\n switch (node.kind) {\n case SyntaxKind.TypeReference:\n kind = IdentifierKind.TypeReference;\n break;\n case SyntaxKind.AugmentDecoratorStatement:\n case SyntaxKind.DecoratorExpression:\n kind = IdentifierKind.Decorator;\n break;\n case SyntaxKind.ProjectionCallExpression:\n kind = IdentifierKind.Function;\n break;\n case SyntaxKind.UsingStatement:\n kind = IdentifierKind.Using;\n break;\n default:\n kind =\n id.parent.id === id\n ? IdentifierKind.Declaration\n : IdentifierKind.Other;\n break;\n }\n return { node, kind };\n}\n//# sourceMappingURL=parser.js.map","import { getSourceLocation } from \"../core/diagnostics.js\";\nimport { parse as typespecParse, visitChildren } from \"../core/parser.js\";\nimport { SyntaxKind } from \"../core/types.js\";\nimport { mutate } from \"../core/util.js\";\nexport function parse(text, options) {\n const result = typespecParse(text, { comments: true, docs: true });\n flattenNamespaces(result);\n const errors = result.parseDiagnostics.filter((x) => x.severity === \"error\");\n if (errors.length > 0 && !result.printable) {\n throw new PrettierParserError(errors[0]);\n }\n // Remove doc comments as those are handled directly.\n mutate(result).comments = result.comments.filter((x) => !(x.kind === SyntaxKind.BlockComment && x.parsedAsDocs));\n return result;\n}\n/**\n * We are patching the syntax tree to flatten the namespace nodes that are created from namespace Foo.Bar; which have the same pos, end\n * This causes prettier to not know where comments belong.\n * https://github.com/microsoft/typespec/pull/2061\n */\nfunction flattenNamespaces(base) {\n visitChildren(base, (node) => {\n if (node.kind === SyntaxKind.NamespaceStatement) {\n let current = node;\n const ids = [node.id];\n while (current.statements && \"kind\" in current.statements) {\n current = current.statements;\n ids.push(current.id);\n }\n Object.assign(node, current, {\n ids,\n });\n flattenNamespaces(current);\n }\n });\n}\nexport class PrettierParserError extends Error {\n constructor(error) {\n var _a, _b;\n super(error.message);\n this.error = error;\n const location = getSourceLocation(error.target);\n this.loc = {\n start: (_a = location === null || location === void 0 ? void 0 : location.pos) !== null && _a !== void 0 ? _a : 0,\n end: (_b = location === null || location === void 0 ? void 0 : location.end) !== null && _b !== void 0 ? _b : 0,\n };\n }\n}\n//# sourceMappingURL=parser.js.map","import { parse } from \"./parser.js\";\nimport { typespecPrinter } from \"./print/index.js\";\nexport const defaultOptions = {};\nexport const languages = [\n {\n name: \"TypeSpec\",\n parsers: [\"typespec\"],\n extensions: [\".tsp\", \".cadl\"],\n vscodeLanguageIds: [\"typespec\"],\n },\n];\nconst TypeSpecParser = {\n parse,\n astFormat: \"typespec-format\",\n locStart(node) {\n return node.pos;\n },\n locEnd(node) {\n return node.end;\n },\n};\nexport const parsers = {\n typespec: TypeSpecParser,\n};\nexport const printers = {\n \"typespec-format\": typespecPrinter,\n};\n//# sourceMappingURL=index.js.map","export { resolveCompilerOptions } from \"./config/index.js\";\nexport * from \"./core/index.js\";\nexport * from \"./lib/decorators.js\";\nexport * as decorators from \"./lib/decorators.js\";\nexport * from \"./server/index.js\";\nimport * as formatter from \"./formatter/index.js\";\nexport const TypeSpecPrettierPlugin = formatter;\n/** @deprecated Use TypeSpecPrettierPlugin */\nexport const CadlPrettierPlugin = TypeSpecPrettierPlugin;\n//# sourceMappingURL=index.js.map","/**\n * Reexport the bare minimum for rollup to do the tree shaking.\n */\nimport { TypeSpecPrettierPlugin } from \"@typespec/compiler\";\nexport default TypeSpecPrettierPlugin;\n"],"names":["this","indent","align","group","ifBreak","breakParent","trim","line","softline","hardline","join","at","prettier.util","parse","typespecParse"],"mappings":"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I,KAAK,IAAI,KAAK,IAAI,SAAS,IAAI,SAAS,IAAI,KAAK,IAAI,KAAK,IAAI,SAAS,IAAI,SAAS,IAAI,KAAK,IAAI,KAAK,IAAI,SAAS,IAAI,SAAS,IAAI,KAAK,IAAI,KAAK,IAAI,SAAS,IAAI,SAAS,IAAI,KAAK,IAAI,KAAK,IAAI,SAAS,IAAI,SAAS,IAAI,KAAK,IAAI,KAAK,IAAI,SAAS,IAAI,SAAS,IAAI,KAAK,IAAI,KAAK,IAAI,SAAS,IAAI,SAAS,IAAI,KAAK,IAAI,KAAK,IAAI,SAAS,IAAI,SAAS,IAAI,KAAK,IAAI,KAAK,IAAI,SAAS,IAAI,SAAS,IAAI,KAAK,IAAI,KAAK,IAAI,SAAS,IAAI,SAAS,IAAI,KAAK,IAAI,KAAK,IAAI,SAAS,IAAI,SAAS,IAAI,KAAK,IAAI,KAAK,IAAI,SAAS,IAAI,SAAS,IAAI,KAAK,IAAI,KAAK,IAAI,SAAS,IAAI,SAAS,IAAI,KAAK,IAAI,KAAK,IAAI,SAAS,IAAI,SAAS,IAAI,KAAK,IAAI,KAAK,IAAI,SAAS,IAAI,SAAS,IAAI,KAAK,IAAI,KAAK,IAAI,SAAS,IAAI,SAAS,IAAI,KAAK,IAAI,KAAK,IAAI,SAAS,IAAI,SAAS,IAAI,KAAK,IAAI,KAAK,IAAI,SAAS,IAAI,SAAS,IAAI,KAAK,IAAI,KAAK,IAAI,SAAS,IAAI,SAAS,IAAI,KAAK,IAAI,KAAK,IAAI,SAAS,IAAI,SAAS,IAAI,KAAK,IAAI,KAAK,IAAI,SAAS,IAAI,SAAS,IAAI,KAAK,IAAI,KAAK,IAAI,SAAS,IAAI,SAAS,IAAI,KAAK,IAAI,KAAK,IAAI,SAAS,IAAI,SAAS,IAAI,KAAK,IAAI,MAAM,IAAI,SAAS,IAAI,SAAS,IAAI,MAAM,IAAI,MAAM,IAAI,SAAS,IAAI,SAAS,IAAI,MAAM,IAAI,MAAM,IAAI,SAAS,IAAI,SAAS,IAAI,MAAM,IAAI,MAAM,IAAI,SAAS,IAAI,SAAS,IAAI,MAAM,IAAI,MAAM,IAAI,SAAS,IAAI,SAAS,IAAI,MAAM,IAAI,MAAM,IAAI,SAAS,IAAI,SAAS,IAAI,MAAM,IAAI,MAAM,IAAI,SAAS,IAAI,SAAS,IAA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ChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,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AS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CA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AC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EA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C,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAI,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,QAAQ,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAA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AAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,EAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,C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M,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAA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","x_google_ignoreList":[5,9]}
|