@typescript/native-preview 7.0.0-dev.20260422.1 → 7.0.0-dev.20260423.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (327) hide show
  1. package/dist/api/async/api.d.ts +241 -0
  2. package/dist/api/async/api.d.ts.map +1 -0
  3. package/dist/api/async/api.js +810 -0
  4. package/dist/api/async/api.js.map +1 -0
  5. package/dist/api/async/client.d.ts +22 -0
  6. package/dist/api/async/client.d.ts.map +1 -0
  7. package/dist/api/async/client.js +140 -0
  8. package/dist/api/async/client.js.map +1 -0
  9. package/dist/api/async/types.d.ts +179 -0
  10. package/dist/api/async/types.d.ts.map +1 -0
  11. package/dist/api/async/types.js +2 -0
  12. package/dist/api/async/types.js.map +1 -0
  13. package/dist/api/fs.d.ts +23 -0
  14. package/dist/api/fs.d.ts.map +1 -0
  15. package/dist/api/fs.js +109 -0
  16. package/dist/api/fs.js.map +1 -0
  17. package/dist/api/node/encoder.d.ts +15 -0
  18. package/dist/api/node/encoder.d.ts.map +1 -0
  19. package/dist/api/node/encoder.generated.d.ts +5 -0
  20. package/dist/api/node/encoder.generated.d.ts.map +1 -0
  21. package/dist/api/node/encoder.generated.js +74 -0
  22. package/dist/api/node/encoder.generated.js.map +1 -0
  23. package/dist/api/node/encoder.js +304 -0
  24. package/dist/api/node/encoder.js.map +1 -0
  25. package/dist/api/node/msgpack.d.ts +32 -0
  26. package/dist/api/node/msgpack.d.ts.map +1 -0
  27. package/dist/api/node/msgpack.js +212 -0
  28. package/dist/api/node/msgpack.js.map +1 -0
  29. package/dist/api/node/node.d.ts +63 -0
  30. package/dist/api/node/node.d.ts.map +1 -0
  31. package/dist/api/node/node.generated.d.ts +172 -0
  32. package/dist/api/node/node.generated.d.ts.map +1 -0
  33. package/dist/api/node/node.generated.js +817 -0
  34. package/dist/api/node/node.generated.js.map +1 -0
  35. package/dist/api/node/node.infrastructure.d.ts +51 -0
  36. package/dist/api/node/node.infrastructure.d.ts.map +1 -0
  37. package/dist/api/node/node.infrastructure.js +122 -0
  38. package/dist/api/node/node.infrastructure.js.map +1 -0
  39. package/dist/api/node/node.js +201 -0
  40. package/dist/api/node/node.js.map +1 -0
  41. package/dist/api/node/protocol.d.ts +29 -0
  42. package/dist/api/node/protocol.d.ts.map +1 -0
  43. package/dist/api/node/protocol.generated.d.ts +4 -0
  44. package/dist/api/node/protocol.generated.d.ts.map +1 -0
  45. package/dist/api/node/protocol.generated.js +241 -0
  46. package/dist/api/node/protocol.generated.js.map +1 -0
  47. package/dist/api/node/protocol.js +30 -0
  48. package/dist/api/node/protocol.js.map +1 -0
  49. package/dist/api/objectRegistry.d.ts +38 -0
  50. package/dist/api/objectRegistry.d.ts.map +1 -0
  51. package/dist/api/objectRegistry.js +55 -0
  52. package/dist/api/objectRegistry.js.map +1 -0
  53. package/dist/api/options.d.ts +24 -0
  54. package/dist/api/options.d.ts.map +1 -0
  55. package/dist/api/options.js +11 -0
  56. package/dist/api/options.js.map +1 -0
  57. package/dist/api/path.d.ts +110 -0
  58. package/dist/api/path.d.ts.map +1 -0
  59. package/dist/api/path.js +508 -0
  60. package/dist/api/path.js.map +1 -0
  61. package/dist/api/proto.d.ts +152 -0
  62. package/dist/api/proto.d.ts.map +1 -0
  63. package/dist/api/proto.js +22 -0
  64. package/dist/api/proto.js.map +1 -0
  65. package/dist/api/sourceFileCache.d.ts +79 -0
  66. package/dist/api/sourceFileCache.d.ts.map +1 -0
  67. package/dist/api/sourceFileCache.js +169 -0
  68. package/dist/api/sourceFileCache.js.map +1 -0
  69. package/dist/api/sync/api.d.ts +241 -0
  70. package/dist/api/sync/api.d.ts.map +1 -0
  71. package/dist/api/sync/api.js +818 -0
  72. package/dist/api/sync/api.js.map +1 -0
  73. package/dist/api/sync/client.d.ts +13 -0
  74. package/dist/api/sync/client.d.ts.map +1 -0
  75. package/dist/api/sync/client.js +72 -0
  76. package/dist/api/sync/client.js.map +1 -0
  77. package/dist/api/sync/types.d.ts +179 -0
  78. package/dist/api/sync/types.d.ts.map +1 -0
  79. package/dist/api/sync/types.js +2 -0
  80. package/dist/api/sync/types.js.map +1 -0
  81. package/dist/api/syncChannel.d.ts +111 -0
  82. package/dist/api/syncChannel.d.ts.map +1 -0
  83. package/dist/api/syncChannel.js +488 -0
  84. package/dist/api/syncChannel.js.map +1 -0
  85. package/dist/ast/ast.d.ts +66 -0
  86. package/dist/ast/ast.d.ts.map +1 -0
  87. package/dist/ast/ast.generated.d.ts +1160 -0
  88. package/dist/ast/ast.generated.d.ts.map +1 -0
  89. package/dist/ast/ast.generated.js +4 -0
  90. package/dist/ast/ast.generated.js.map +1 -0
  91. package/dist/ast/ast.js +7 -0
  92. package/dist/ast/ast.js.map +1 -0
  93. package/dist/ast/astnav.d.ts +19 -0
  94. package/dist/ast/astnav.d.ts.map +1 -0
  95. package/dist/ast/astnav.js +596 -0
  96. package/dist/ast/astnav.js.map +1 -0
  97. package/dist/ast/clone.d.ts +16 -0
  98. package/dist/ast/clone.d.ts.map +1 -0
  99. package/dist/ast/clone.js +104 -0
  100. package/dist/ast/clone.js.map +1 -0
  101. package/dist/ast/factory.generated.d.ts +513 -0
  102. package/dist/ast/factory.generated.d.ts.map +1 -0
  103. package/dist/ast/factory.generated.js +3026 -0
  104. package/dist/ast/factory.generated.js.map +1 -0
  105. package/dist/ast/index.d.ts +18 -0
  106. package/dist/ast/index.d.ts.map +1 -0
  107. package/dist/ast/index.js +18 -0
  108. package/dist/ast/index.js.map +1 -0
  109. package/dist/ast/is.d.ts +34 -0
  110. package/dist/ast/is.d.ts.map +1 -0
  111. package/dist/ast/is.generated.d.ts +328 -0
  112. package/dist/ast/is.generated.d.ts.map +1 -0
  113. package/dist/ast/is.generated.js +1101 -0
  114. package/dist/ast/is.generated.js.map +1 -0
  115. package/dist/ast/is.js +226 -0
  116. package/dist/ast/is.js.map +1 -0
  117. package/dist/ast/scanner.d.ts +97 -0
  118. package/dist/ast/scanner.d.ts.map +1 -0
  119. package/dist/ast/scanner.js +2230 -0
  120. package/dist/ast/scanner.js.map +1 -0
  121. package/dist/ast/utils.d.ts +5 -0
  122. package/dist/ast/utils.d.ts.map +1 -0
  123. package/dist/ast/utils.js +27 -0
  124. package/dist/ast/utils.js.map +1 -0
  125. package/dist/ast/visitor.d.ts +14 -0
  126. package/dist/ast/visitor.d.ts.map +1 -0
  127. package/dist/ast/visitor.generated.d.ts +50 -0
  128. package/dist/ast/visitor.generated.d.ts.map +1 -0
  129. package/dist/ast/visitor.generated.js +978 -0
  130. package/dist/ast/visitor.generated.js.map +1 -0
  131. package/dist/ast/visitor.js +47 -0
  132. package/dist/ast/visitor.js.map +1 -0
  133. package/dist/enums/characterCodes.d.ts +2 -0
  134. package/dist/enums/characterCodes.d.ts.map +1 -0
  135. package/dist/enums/characterCodes.enum.d.ts +129 -0
  136. package/dist/enums/characterCodes.enum.d.ts.map +1 -0
  137. package/dist/enums/characterCodes.enum.js +132 -0
  138. package/dist/enums/characterCodes.enum.js.map +1 -0
  139. package/dist/enums/characterCodes.js +130 -0
  140. package/dist/enums/characterCodes.js.map +1 -0
  141. package/dist/enums/commentDirectiveType.d.ts +2 -0
  142. package/dist/enums/commentDirectiveType.d.ts.map +1 -0
  143. package/dist/enums/commentDirectiveType.enum.d.ts +5 -0
  144. package/dist/enums/commentDirectiveType.enum.d.ts.map +1 -0
  145. package/dist/enums/commentDirectiveType.enum.js +6 -0
  146. package/dist/enums/commentDirectiveType.enum.js.map +1 -0
  147. package/dist/enums/commentDirectiveType.js +6 -0
  148. package/dist/enums/commentDirectiveType.js.map +1 -0
  149. package/dist/enums/diagnosticCategory.d.ts +2 -0
  150. package/dist/enums/diagnosticCategory.d.ts.map +1 -0
  151. package/dist/enums/diagnosticCategory.enum.d.ts +7 -0
  152. package/dist/enums/diagnosticCategory.enum.d.ts.map +1 -0
  153. package/dist/enums/diagnosticCategory.enum.js +9 -0
  154. package/dist/enums/diagnosticCategory.enum.js.map +1 -0
  155. package/dist/enums/diagnosticCategory.js +9 -0
  156. package/dist/enums/diagnosticCategory.js.map +1 -0
  157. package/dist/enums/elementFlags.d.ts +2 -0
  158. package/dist/enums/elementFlags.d.ts.map +1 -0
  159. package/dist/enums/elementFlags.enum.d.ts +12 -0
  160. package/dist/enums/elementFlags.enum.d.ts.map +1 -0
  161. package/dist/enums/elementFlags.enum.js +14 -0
  162. package/dist/enums/elementFlags.enum.js.map +1 -0
  163. package/dist/enums/elementFlags.js +14 -0
  164. package/dist/enums/elementFlags.js.map +1 -0
  165. package/dist/enums/languageVariant.d.ts +2 -0
  166. package/dist/enums/languageVariant.d.ts.map +1 -0
  167. package/dist/enums/languageVariant.enum.d.ts +5 -0
  168. package/dist/enums/languageVariant.enum.d.ts.map +1 -0
  169. package/dist/enums/languageVariant.enum.js +6 -0
  170. package/dist/enums/languageVariant.enum.js.map +1 -0
  171. package/dist/enums/languageVariant.js +6 -0
  172. package/dist/enums/languageVariant.js.map +1 -0
  173. package/dist/enums/modifierFlags.d.ts +2 -0
  174. package/dist/enums/modifierFlags.d.ts.map +1 -0
  175. package/dist/enums/modifierFlags.enum.d.ts +42 -0
  176. package/dist/enums/modifierFlags.enum.d.ts.map +1 -0
  177. package/dist/enums/modifierFlags.enum.js +44 -0
  178. package/dist/enums/modifierFlags.enum.js.map +1 -0
  179. package/dist/enums/modifierFlags.js +44 -0
  180. package/dist/enums/modifierFlags.js.map +1 -0
  181. package/dist/enums/nodeFlags.d.ts +2 -0
  182. package/dist/enums/nodeFlags.d.ts.map +1 -0
  183. package/dist/enums/nodeFlags.enum.d.ts +41 -0
  184. package/dist/enums/nodeFlags.enum.d.ts.map +1 -0
  185. package/dist/enums/nodeFlags.enum.js +43 -0
  186. package/dist/enums/nodeFlags.enum.js.map +1 -0
  187. package/dist/enums/nodeFlags.js +43 -0
  188. package/dist/enums/nodeFlags.js.map +1 -0
  189. package/dist/enums/objectFlags.d.ts +2 -0
  190. package/dist/enums/objectFlags.d.ts.map +1 -0
  191. package/dist/enums/objectFlags.enum.d.ts +50 -0
  192. package/dist/enums/objectFlags.enum.d.ts.map +1 -0
  193. package/dist/enums/objectFlags.enum.js +52 -0
  194. package/dist/enums/objectFlags.enum.js.map +1 -0
  195. package/dist/enums/objectFlags.js +52 -0
  196. package/dist/enums/objectFlags.js.map +1 -0
  197. package/dist/enums/outerExpressionKinds.d.ts +2 -0
  198. package/dist/enums/outerExpressionKinds.d.ts.map +1 -0
  199. package/dist/enums/outerExpressionKinds.enum.d.ts +12 -0
  200. package/dist/enums/outerExpressionKinds.enum.d.ts.map +1 -0
  201. package/dist/enums/outerExpressionKinds.enum.js +14 -0
  202. package/dist/enums/outerExpressionKinds.enum.js.map +1 -0
  203. package/dist/enums/outerExpressionKinds.js +14 -0
  204. package/dist/enums/outerExpressionKinds.js.map +1 -0
  205. package/dist/enums/regularExpressionFlags.d.ts +2 -0
  206. package/dist/enums/regularExpressionFlags.d.ts.map +1 -0
  207. package/dist/enums/regularExpressionFlags.enum.d.ts +13 -0
  208. package/dist/enums/regularExpressionFlags.enum.d.ts.map +1 -0
  209. package/dist/enums/regularExpressionFlags.enum.js +14 -0
  210. package/dist/enums/regularExpressionFlags.enum.js.map +1 -0
  211. package/dist/enums/regularExpressionFlags.js +14 -0
  212. package/dist/enums/regularExpressionFlags.js.map +1 -0
  213. package/dist/enums/scriptKind.d.ts +2 -0
  214. package/dist/enums/scriptKind.d.ts.map +1 -0
  215. package/dist/enums/scriptKind.enum.d.ts +11 -0
  216. package/dist/enums/scriptKind.enum.d.ts.map +1 -0
  217. package/dist/enums/scriptKind.enum.js +12 -0
  218. package/dist/enums/scriptKind.enum.js.map +1 -0
  219. package/dist/enums/scriptKind.js +12 -0
  220. package/dist/enums/scriptKind.js.map +1 -0
  221. package/dist/enums/scriptTarget.d.ts +2 -0
  222. package/dist/enums/scriptTarget.d.ts.map +1 -0
  223. package/dist/enums/scriptTarget.enum.d.ts +17 -0
  224. package/dist/enums/scriptTarget.enum.d.ts.map +1 -0
  225. package/dist/enums/scriptTarget.enum.js +18 -0
  226. package/dist/enums/scriptTarget.enum.js.map +1 -0
  227. package/dist/enums/scriptTarget.js +18 -0
  228. package/dist/enums/scriptTarget.js.map +1 -0
  229. package/dist/enums/signatureFlags.d.ts +2 -0
  230. package/dist/enums/signatureFlags.d.ts.map +1 -0
  231. package/dist/enums/signatureFlags.enum.d.ts +15 -0
  232. package/dist/enums/signatureFlags.enum.d.ts.map +1 -0
  233. package/dist/enums/signatureFlags.enum.js +17 -0
  234. package/dist/enums/signatureFlags.enum.js.map +1 -0
  235. package/dist/enums/signatureFlags.js +17 -0
  236. package/dist/enums/signatureFlags.js.map +1 -0
  237. package/dist/enums/signatureKind.d.ts +2 -0
  238. package/dist/enums/signatureKind.d.ts.map +1 -0
  239. package/dist/enums/signatureKind.enum.d.ts +5 -0
  240. package/dist/enums/signatureKind.enum.d.ts.map +1 -0
  241. package/dist/enums/signatureKind.enum.js +7 -0
  242. package/dist/enums/signatureKind.enum.js.map +1 -0
  243. package/dist/enums/signatureKind.js +7 -0
  244. package/dist/enums/signatureKind.js.map +1 -0
  245. package/dist/enums/symbolFlags.d.ts +2 -0
  246. package/dist/enums/symbolFlags.d.ts.map +1 -0
  247. package/dist/enums/symbolFlags.enum.d.ts +71 -0
  248. package/dist/enums/symbolFlags.enum.d.ts.map +1 -0
  249. package/dist/enums/symbolFlags.enum.js +73 -0
  250. package/dist/enums/symbolFlags.enum.js.map +1 -0
  251. package/dist/enums/symbolFlags.js +73 -0
  252. package/dist/enums/symbolFlags.js.map +1 -0
  253. package/dist/enums/syntaxKind.d.ts +2 -0
  254. package/dist/enums/syntaxKind.d.ts.map +1 -0
  255. package/dist/enums/syntaxKind.enum.d.ts +389 -0
  256. package/dist/enums/syntaxKind.enum.d.ts.map +1 -0
  257. package/dist/enums/syntaxKind.enum.js +391 -0
  258. package/dist/enums/syntaxKind.enum.js.map +1 -0
  259. package/dist/enums/syntaxKind.js +391 -0
  260. package/dist/enums/syntaxKind.js.map +1 -0
  261. package/dist/enums/tokenFlags.d.ts +2 -0
  262. package/dist/enums/tokenFlags.d.ts.map +1 -0
  263. package/dist/enums/tokenFlags.enum.d.ts +30 -0
  264. package/dist/enums/tokenFlags.enum.d.ts.map +1 -0
  265. package/dist/enums/tokenFlags.enum.js +32 -0
  266. package/dist/enums/tokenFlags.enum.js.map +1 -0
  267. package/dist/enums/tokenFlags.js +32 -0
  268. package/dist/enums/tokenFlags.js.map +1 -0
  269. package/dist/enums/typeFlags.d.ts +2 -0
  270. package/dist/enums/typeFlags.d.ts.map +1 -0
  271. package/dist/enums/typeFlags.enum.d.ts +76 -0
  272. package/dist/enums/typeFlags.enum.d.ts.map +1 -0
  273. package/dist/enums/typeFlags.enum.js +78 -0
  274. package/dist/enums/typeFlags.enum.js.map +1 -0
  275. package/dist/enums/typeFlags.js +78 -0
  276. package/dist/enums/typeFlags.js.map +1 -0
  277. package/dist/enums/typePredicateKind.d.ts +2 -0
  278. package/dist/enums/typePredicateKind.d.ts.map +1 -0
  279. package/dist/enums/typePredicateKind.enum.d.ts +7 -0
  280. package/dist/enums/typePredicateKind.enum.d.ts.map +1 -0
  281. package/dist/enums/typePredicateKind.enum.js +9 -0
  282. package/dist/enums/typePredicateKind.enum.js.map +1 -0
  283. package/dist/enums/typePredicateKind.js +9 -0
  284. package/dist/enums/typePredicateKind.js.map +1 -0
  285. package/lib/getExePath.d.ts +2 -0
  286. package/package.json +57 -12
  287. package/vendor/vscode-jsonrpc/README.md +69 -0
  288. package/vendor/vscode-jsonrpc/lib/browser/main.d.ts +17 -0
  289. package/vendor/vscode-jsonrpc/lib/browser/main.js +83 -0
  290. package/vendor/vscode-jsonrpc/lib/browser/ril.d.ts +22 -0
  291. package/vendor/vscode-jsonrpc/lib/browser/ril.js +203 -0
  292. package/vendor/vscode-jsonrpc/lib/common/api.d.ts +14 -0
  293. package/vendor/vscode-jsonrpc/lib/common/api.js +87 -0
  294. package/vendor/vscode-jsonrpc/lib/common/cancellation.d.ts +32 -0
  295. package/vendor/vscode-jsonrpc/lib/common/cancellation.js +132 -0
  296. package/vendor/vscode-jsonrpc/lib/common/connection.d.ts +367 -0
  297. package/vendor/vscode-jsonrpc/lib/common/connection.js +1272 -0
  298. package/vendor/vscode-jsonrpc/lib/common/disposable.d.ts +9 -0
  299. package/vendor/vscode-jsonrpc/lib/common/disposable.js +16 -0
  300. package/vendor/vscode-jsonrpc/lib/common/encoding.d.ts +52 -0
  301. package/vendor/vscode-jsonrpc/lib/common/encoding.js +70 -0
  302. package/vendor/vscode-jsonrpc/lib/common/events.d.ts +39 -0
  303. package/vendor/vscode-jsonrpc/lib/common/events.js +136 -0
  304. package/vendor/vscode-jsonrpc/lib/common/is.d.ts +7 -0
  305. package/vendor/vscode-jsonrpc/lib/common/is.js +34 -0
  306. package/vendor/vscode-jsonrpc/lib/common/linkedMap.d.ts +55 -0
  307. package/vendor/vscode-jsonrpc/lib/common/linkedMap.js +412 -0
  308. package/vendor/vscode-jsonrpc/lib/common/messageBuffer.d.ts +18 -0
  309. package/vendor/vscode-jsonrpc/lib/common/messageBuffer.js +155 -0
  310. package/vendor/vscode-jsonrpc/lib/common/messageReader.d.ts +77 -0
  311. package/vendor/vscode-jsonrpc/lib/common/messageReader.js +246 -0
  312. package/vendor/vscode-jsonrpc/lib/common/messageWriter.d.ts +60 -0
  313. package/vendor/vscode-jsonrpc/lib/common/messageWriter.js +157 -0
  314. package/vendor/vscode-jsonrpc/lib/common/messages.d.ts +369 -0
  315. package/vendor/vscode-jsonrpc/lib/common/messages.js +436 -0
  316. package/vendor/vscode-jsonrpc/lib/common/ral.d.ts +74 -0
  317. package/vendor/vscode-jsonrpc/lib/common/ral.js +23 -0
  318. package/vendor/vscode-jsonrpc/lib/common/semaphore.d.ts +10 -0
  319. package/vendor/vscode-jsonrpc/lib/common/semaphore.js +74 -0
  320. package/vendor/vscode-jsonrpc/lib/common/sharedArrayCancellation.d.ts +15 -0
  321. package/vendor/vscode-jsonrpc/lib/common/sharedArrayCancellation.js +77 -0
  322. package/vendor/vscode-jsonrpc/lib/node/main.d.ts +58 -0
  323. package/vendor/vscode-jsonrpc/lib/node/main.js +289 -0
  324. package/vendor/vscode-jsonrpc/lib/node/ril.d.ts +12 -0
  325. package/vendor/vscode-jsonrpc/lib/node/ril.js +163 -0
  326. package/vendor/vscode-jsonrpc/package.json +54 -0
  327. package/vendor/vscode-jsonrpc/typings/thenable.d.ts +5 -0
@@ -0,0 +1,508 @@
1
+ const CharacterCodesSlash = "/".charCodeAt(0);
2
+ const CharacterCodesBackslash = "\\".charCodeAt(0);
3
+ const CharacterCodesColon = ":".charCodeAt(0);
4
+ const CharacterCodesPercent = "%".charCodeAt(0);
5
+ const CharacterCodes3 = "3".charCodeAt(0);
6
+ const CharacterCodesa = "a".charCodeAt(0);
7
+ const CharacterCodesz = "z".charCodeAt(0);
8
+ const CharacterCodesA = "A".charCodeAt(0);
9
+ const CharacterCodesZ = "Z".charCodeAt(0);
10
+ const CharacterCodesDot = ".".charCodeAt(0);
11
+ const directorySeparator = "/";
12
+ const altDirectorySeparator = "\\";
13
+ const urlSchemeSeparator = "://";
14
+ const backslashRegExp = /\\/g;
15
+ // check path for these segments: '', '.'. '..'
16
+ const relativePathSegmentRegExp = /\/\/|(?:^|\/)\.\.?(?:$|\/)/;
17
+ /**
18
+ * Determines whether a charCode corresponds to `/` or `\\`.
19
+ */
20
+ function isAnyDirectorySeparator(charCode) {
21
+ return charCode === CharacterCodesSlash || charCode === CharacterCodesBackslash;
22
+ }
23
+ function isVolumeCharacter(charCode) {
24
+ return (charCode >= CharacterCodesa && charCode <= CharacterCodesz) ||
25
+ (charCode >= CharacterCodesA && charCode <= CharacterCodesZ);
26
+ }
27
+ function getFileUrlVolumeSeparatorEnd(url, start) {
28
+ const ch0 = url.charCodeAt(start);
29
+ if (ch0 === CharacterCodesColon)
30
+ return start + 1;
31
+ if (ch0 === CharacterCodesPercent && url.charCodeAt(start + 1) === CharacterCodes3) {
32
+ const ch2 = url.charCodeAt(start + 2);
33
+ if (ch2 === CharacterCodesa || ch2 === CharacterCodesA)
34
+ return start + 3;
35
+ }
36
+ return -1;
37
+ }
38
+ /**
39
+ * Returns length of the root part of a path or URL (i.e. length of "/", "x:/", "//server/share/, file:///user/files").
40
+ *
41
+ * For example:
42
+ * ```ts
43
+ * getRootLength("a") === 0 // ""
44
+ * getRootLength("/") === 1 // "/"
45
+ * getRootLength("c:") === 2 // "c:"
46
+ * getRootLength("c:d") === 0 // ""
47
+ * getRootLength("c:/") === 3 // "c:/"
48
+ * getRootLength("c:\\") === 3 // "c:\\"
49
+ * getRootLength("//server") === 7 // "//server"
50
+ * getRootLength("//server/share") === 8 // "//server/"
51
+ * getRootLength("\\\\server") === 7 // "\\\\server"
52
+ * getRootLength("\\\\server\\share") === 8 // "\\\\server\\"
53
+ * getRootLength("file:///path") === 8 // "file:///"
54
+ * getRootLength("file:///c:") === 10 // "file:///c:"
55
+ * getRootLength("file:///c:d") === 8 // "file:///"
56
+ * getRootLength("file:///c:/path") === 11 // "file:///c:/"
57
+ * getRootLength("file://server") === 13 // "file://server"
58
+ * getRootLength("file://server/path") === 14 // "file://server/"
59
+ * getRootLength("http://server") === 13 // "http://server"
60
+ * getRootLength("http://server/path") === 14 // "http://server/"
61
+ * ```
62
+ *
63
+ * @internal
64
+ */
65
+ export function getRootLength(path) {
66
+ const rootLength = getEncodedRootLength(path);
67
+ return rootLength < 0 ? ~rootLength : rootLength;
68
+ }
69
+ /**
70
+ * Returns length of the root part of a path or URL (i.e. length of "/", "x:/", "//server/share/, file:///user/files").
71
+ * If the root is part of a URL, the twos-complement of the root length is returned.
72
+ */
73
+ function getEncodedRootLength(path) {
74
+ if (!path)
75
+ return 0;
76
+ const ch0 = path.charCodeAt(0);
77
+ // POSIX or UNC
78
+ if (ch0 === CharacterCodesSlash || ch0 === CharacterCodesBackslash) {
79
+ if (path.charCodeAt(1) !== ch0)
80
+ return 1; // POSIX: "/" (or non-normalized "\")
81
+ const p1 = path.indexOf(ch0 === CharacterCodesSlash ? directorySeparator : altDirectorySeparator, 2);
82
+ if (p1 < 0)
83
+ return path.length; // UNC: "//server" or "\\server"
84
+ return p1 + 1; // UNC: "//server/" or "\\server\"
85
+ }
86
+ // DOS
87
+ if (isVolumeCharacter(ch0) && path.charCodeAt(1) === CharacterCodesColon) {
88
+ const ch2 = path.charCodeAt(2);
89
+ if (ch2 === CharacterCodesSlash || ch2 === CharacterCodesBackslash)
90
+ return 3; // DOS: "c:/" or "c:\"
91
+ if (path.length === 2)
92
+ return 2; // DOS: "c:" (but not "c:d")
93
+ }
94
+ // URL
95
+ const schemeEnd = path.indexOf(urlSchemeSeparator);
96
+ if (schemeEnd !== -1) {
97
+ const authorityStart = schemeEnd + urlSchemeSeparator.length;
98
+ const authorityEnd = path.indexOf(directorySeparator, authorityStart);
99
+ if (authorityEnd !== -1) { // URL: "file:///", "file://server/", "file://server/path"
100
+ // For local "file" URLs, include the leading DOS volume (if present).
101
+ // Per https://www.ietf.org/rfc/rfc1738.txt, a host of "" or "localhost" is a
102
+ // special case interpreted as "the machine from which the URL is being interpreted".
103
+ const scheme = path.slice(0, schemeEnd);
104
+ const authority = path.slice(authorityStart, authorityEnd);
105
+ if (scheme === "file" && (authority === "" || authority === "localhost") &&
106
+ isVolumeCharacter(path.charCodeAt(authorityEnd + 1))) {
107
+ const volumeSeparatorEnd = getFileUrlVolumeSeparatorEnd(path, authorityEnd + 2);
108
+ if (volumeSeparatorEnd !== -1) {
109
+ if (path.charCodeAt(volumeSeparatorEnd) === CharacterCodesSlash) {
110
+ // URL: "file:///c:/", "file://localhost/c:/", "file:///c%3a/", "file://localhost/c%3a/"
111
+ return ~(volumeSeparatorEnd + 1);
112
+ }
113
+ if (volumeSeparatorEnd === path.length) {
114
+ // URL: "file:///c:", "file://localhost/c:", "file:///c$3a", "file://localhost/c%3a"
115
+ // but not "file:///c:d" or "file:///c%3ad"
116
+ return ~volumeSeparatorEnd;
117
+ }
118
+ }
119
+ }
120
+ return ~(authorityEnd + 1); // URL: "file://server/", "http://server/"
121
+ }
122
+ return ~path.length; // URL: "file://server", "http://server"
123
+ }
124
+ // relative
125
+ return 0;
126
+ }
127
+ export function getPathComponents(path) {
128
+ return pathComponents(path, getRootLength(path));
129
+ }
130
+ function pathComponents(path, rootLength) {
131
+ const root = path.substring(0, rootLength);
132
+ const rest = path.substring(rootLength).split("/");
133
+ if (rest.length && !lastOrUndefined(rest))
134
+ rest.pop();
135
+ return [root, ...rest];
136
+ }
137
+ function lastOrUndefined(array) {
138
+ return array.length ? array[array.length - 1] : undefined;
139
+ }
140
+ /**
141
+ * Determines whether a path has a trailing separator (`/` or `\\`).
142
+ */
143
+ export function hasTrailingDirectorySeparator(path) {
144
+ return path.length > 0 && isAnyDirectorySeparator(path.charCodeAt(path.length - 1));
145
+ }
146
+ /**
147
+ * Removes a trailing directory separator from a path, if it does not already have one.
148
+ */
149
+ export function removeTrailingDirectorySeparator(path) {
150
+ if (hasTrailingDirectorySeparator(path)) {
151
+ return path.substr(0, path.length - 1);
152
+ }
153
+ return path;
154
+ }
155
+ /**
156
+ * Adds a trailing directory separator to a path, if it does not already have one.
157
+ */
158
+ export function ensureTrailingDirectorySeparator(path) {
159
+ if (!hasTrailingDirectorySeparator(path)) {
160
+ return path + directorySeparator;
161
+ }
162
+ return path;
163
+ }
164
+ /**
165
+ * Normalize path separators, converting `\\` into `/`.
166
+ */
167
+ export function normalizeSlashes(path) {
168
+ return path.includes("\\")
169
+ ? path.replace(backslashRegExp, directorySeparator)
170
+ : path;
171
+ }
172
+ /**
173
+ * Combines paths. If a path is absolute, it replaces any previous path. Relative paths are not simplified.
174
+ */
175
+ export function combinePaths(path, ...paths) {
176
+ if (path)
177
+ path = normalizeSlashes(path);
178
+ for (let relativePath of paths) {
179
+ if (!relativePath)
180
+ continue;
181
+ relativePath = normalizeSlashes(relativePath);
182
+ if (!path || getRootLength(relativePath) !== 0) {
183
+ path = relativePath;
184
+ }
185
+ else {
186
+ path = ensureTrailingDirectorySeparator(path) + relativePath;
187
+ }
188
+ }
189
+ return path;
190
+ }
191
+ function simpleNormalizePath(path) {
192
+ // Most paths don't require normalization
193
+ if (!relativePathSegmentRegExp.test(path)) {
194
+ return path;
195
+ }
196
+ // Some paths only require cleanup of `/./` or leading `./`
197
+ let simplified = path.replace(/\/\.\//g, "/");
198
+ if (simplified.startsWith("./")) {
199
+ simplified = simplified.slice(2);
200
+ }
201
+ if (simplified !== path) {
202
+ path = simplified;
203
+ if (!relativePathSegmentRegExp.test(path)) {
204
+ return path;
205
+ }
206
+ }
207
+ return undefined;
208
+ }
209
+ /**
210
+ * Returns the normalized absolute path, resolving `.` and `..` segments.
211
+ */
212
+ export function getNormalizedAbsolutePath(path, currentDirectory) {
213
+ let rootLength = getRootLength(path);
214
+ if (rootLength === 0 && currentDirectory) {
215
+ path = combinePaths(currentDirectory, path);
216
+ rootLength = getRootLength(path);
217
+ }
218
+ else {
219
+ // combinePaths normalizes slashes, so not necessary in the other branch
220
+ path = normalizeSlashes(path);
221
+ }
222
+ const simpleNormalized = simpleNormalizePath(path);
223
+ if (simpleNormalized !== undefined) {
224
+ return simpleNormalized.length > rootLength ? removeTrailingDirectorySeparator(simpleNormalized) : simpleNormalized;
225
+ }
226
+ const length = path.length;
227
+ const root = path.substring(0, rootLength);
228
+ // `normalized` is only initialized once `path` is determined to be non-normalized
229
+ let normalized;
230
+ let index = rootLength;
231
+ let segmentStart = index;
232
+ let normalizedUpTo = index;
233
+ let seenNonDotDotSegment = rootLength !== 0;
234
+ while (index < length) {
235
+ // At beginning of segment
236
+ segmentStart = index;
237
+ let ch = path.charCodeAt(index);
238
+ while (ch === CharacterCodesSlash && index + 1 < length) {
239
+ index++;
240
+ ch = path.charCodeAt(index);
241
+ }
242
+ if (index > segmentStart) {
243
+ // Seen superfluous separator
244
+ normalized ??= path.substring(0, segmentStart - 1);
245
+ segmentStart = index;
246
+ }
247
+ // Past any superfluous separators
248
+ let segmentEnd = path.indexOf(directorySeparator, index + 1);
249
+ if (segmentEnd === -1) {
250
+ segmentEnd = length;
251
+ }
252
+ const segmentLength = segmentEnd - segmentStart;
253
+ if (segmentLength === 1 && path.charCodeAt(index) === CharacterCodesDot) {
254
+ // "." segment (skip)
255
+ normalized ??= path.substring(0, normalizedUpTo);
256
+ }
257
+ else if (segmentLength === 2 && path.charCodeAt(index) === CharacterCodesDot && path.charCodeAt(index + 1) === CharacterCodesDot) {
258
+ // ".." segment
259
+ if (!seenNonDotDotSegment) {
260
+ if (normalized !== undefined) {
261
+ normalized += normalized.length === rootLength ? ".." : "/..";
262
+ }
263
+ else {
264
+ normalizedUpTo = index + 2;
265
+ }
266
+ }
267
+ else if (normalized === undefined) {
268
+ if (normalizedUpTo - 2 >= 0) {
269
+ normalized = path.substring(0, Math.max(rootLength, path.lastIndexOf(directorySeparator, normalizedUpTo - 2)));
270
+ }
271
+ else {
272
+ normalized = path.substring(0, normalizedUpTo);
273
+ }
274
+ }
275
+ else {
276
+ const lastSlash = normalized.lastIndexOf(directorySeparator);
277
+ if (lastSlash !== -1) {
278
+ normalized = normalized.substring(0, Math.max(rootLength, lastSlash));
279
+ }
280
+ else {
281
+ normalized = root;
282
+ }
283
+ if (normalized.length === rootLength) {
284
+ seenNonDotDotSegment = rootLength !== 0;
285
+ }
286
+ }
287
+ }
288
+ else if (normalized !== undefined) {
289
+ if (normalized.length !== rootLength) {
290
+ normalized += directorySeparator;
291
+ }
292
+ seenNonDotDotSegment = true;
293
+ normalized += path.substring(segmentStart, segmentEnd);
294
+ }
295
+ else {
296
+ seenNonDotDotSegment = true;
297
+ normalizedUpTo = segmentEnd;
298
+ }
299
+ index = segmentEnd + 1;
300
+ }
301
+ return normalized ?? (length > rootLength ? removeTrailingDirectorySeparator(path) : path);
302
+ }
303
+ /**
304
+ * Normalizes a path, resolving `.` and `..` segments and converting backslashes to forward slashes.
305
+ */
306
+ export function normalizePath(path) {
307
+ path = normalizeSlashes(path);
308
+ let normalized = simpleNormalizePath(path);
309
+ if (normalized !== undefined) {
310
+ return normalized;
311
+ }
312
+ normalized = getNormalizedAbsolutePath(path, "");
313
+ return normalized && hasTrailingDirectorySeparator(path) ? ensureTrailingDirectorySeparator(normalized) : normalized;
314
+ }
315
+ /**
316
+ * Determines whether a path is an absolute disk path (e.g. starts with `/`, or a DOS path
317
+ * like `c:`, `c:\\` or `c:/`).
318
+ */
319
+ export function isRootedDiskPath(path) {
320
+ return getEncodedRootLength(path) > 0;
321
+ }
322
+ /**
323
+ * Converts a file name to a normalized path.
324
+ *
325
+ * @param fileName The file name to convert
326
+ * @param basePath The base path to use for relative file names
327
+ * @param getCanonicalFileName A function to get the canonical file name (e.g., toLowerCase for case-insensitive systems)
328
+ * @returns The normalized path
329
+ */
330
+ export function toPath(fileName, basePath, getCanonicalFileName) {
331
+ const nonCanonicalizedPath = isRootedDiskPath(fileName)
332
+ ? normalizePath(fileName)
333
+ : getNormalizedAbsolutePath(fileName, basePath);
334
+ return getCanonicalFileName(nonCanonicalizedPath);
335
+ }
336
+ /**
337
+ * Creates a getCanonicalFileName function based on case sensitivity.
338
+ */
339
+ export function createGetCanonicalFileName(useCaseSensitiveFileNames) {
340
+ return useCaseSensitiveFileNames ? identity : toLowerCase;
341
+ }
342
+ function identity(x) {
343
+ return x;
344
+ }
345
+ function toLowerCase(s) {
346
+ return s.toLowerCase();
347
+ }
348
+ const bundledScheme = "bundled:///";
349
+ /**
350
+ * Returns true if the path refers to a bundled library file.
351
+ */
352
+ export function isBundled(path) {
353
+ return path.startsWith(bundledScheme);
354
+ }
355
+ /**
356
+ * Returns true if the file name represents a dynamic/virtual file
357
+ * that doesn't exist on disk (e.g., untitled files with paths like "^/untitled/...").
358
+ */
359
+ export function isDynamicFileName(fileName) {
360
+ return fileName.startsWith("^/");
361
+ }
362
+ /**
363
+ * Splits a Windows volume (e.g., "c:") from the rest of the path.
364
+ * Returns [volume, rest, ok] where ok is true if a volume was found.
365
+ */
366
+ export function splitVolumePath(path) {
367
+ if (path.length >= 2 && isVolumeCharacter(path.charCodeAt(0)) && path.charCodeAt(1) === CharacterCodesColon) {
368
+ return [path.substring(0, 2).toLowerCase(), path.substring(2), true];
369
+ }
370
+ return ["", path, false];
371
+ }
372
+ // Characters that need extra escaping in URI path segments
373
+ // https://github.com/microsoft/vscode-uri/blob/edfdccd976efaf4bb8fdeca87e97c47257721729/src/uri.ts#L455
374
+ const extraEscapeChars = {
375
+ ":": "%3A",
376
+ "/": "%2F",
377
+ "?": "%3F",
378
+ "#": "%23",
379
+ "[": "%5B",
380
+ "]": "%5D",
381
+ "@": "%40",
382
+ "!": "%21",
383
+ "$": "%24",
384
+ "&": "%26",
385
+ "'": "%27",
386
+ "(": "%28",
387
+ ")": "%29",
388
+ "*": "%2A",
389
+ "+": "%2B",
390
+ ",": "%2C",
391
+ ";": "%3B",
392
+ "=": "%3D",
393
+ " ": "%20",
394
+ };
395
+ function extraEscape(s) {
396
+ let result = s;
397
+ for (const [char, escape] of Object.entries(extraEscapeChars)) {
398
+ result = result.replaceAll(char, escape);
399
+ }
400
+ return result;
401
+ }
402
+ /**
403
+ * Converts a file name to a document URI.
404
+ *
405
+ * @example
406
+ * fileNameToDocumentURI("/path/to/file.ts") === "file:///path/to/file.ts"
407
+ * fileNameToDocumentURI("c:/path/to/file.ts") === "file:///c%3A/path/to/file.ts"
408
+ * fileNameToDocumentURI("^/untitled/ts-nul-authority/Untitled-1") === "untitled:Untitled-1"
409
+ * fileNameToDocumentURI("^/vscode-vfs/github/microsoft/typescript-go/file.ts") === "vscode-vfs://github/microsoft/typescript-go/file.ts"
410
+ */
411
+ export function fileNameToDocumentURI(fileName) {
412
+ // Bundled files are returned as-is
413
+ if (isBundled(fileName)) {
414
+ return fileName;
415
+ }
416
+ // Dynamic/virtual files (untitled, vscode-vfs, etc.) need special handling
417
+ if (isDynamicFileName(fileName)) {
418
+ // Format: ^/scheme/authority/path
419
+ const withoutPrefix = fileName.substring(2); // Remove "^/"
420
+ const firstSlash = withoutPrefix.indexOf("/");
421
+ if (firstSlash === -1) {
422
+ throw new Error("invalid file name: " + fileName);
423
+ }
424
+ const scheme = withoutPrefix.substring(0, firstSlash);
425
+ const rest = withoutPrefix.substring(firstSlash + 1);
426
+ const secondSlash = rest.indexOf("/");
427
+ if (secondSlash === -1) {
428
+ throw new Error("invalid file name: " + fileName);
429
+ }
430
+ const authority = rest.substring(0, secondSlash);
431
+ const path = rest.substring(secondSlash + 1);
432
+ // ts-nul-authority is a placeholder for URIs without an authority
433
+ if (authority === "ts-nul-authority") {
434
+ return scheme + ":" + path;
435
+ }
436
+ return scheme + "://" + authority + "/" + path;
437
+ }
438
+ // Regular file path - convert to file:// URI
439
+ let [volume, rest] = splitVolumePath(fileName);
440
+ if (volume !== "") {
441
+ volume = "/" + extraEscape(volume);
442
+ }
443
+ // Remove leading // for UNC paths (already handled by file://)
444
+ if (rest.startsWith("//")) {
445
+ rest = rest.substring(2);
446
+ }
447
+ const parts = rest.split("/");
448
+ const encodedParts = parts.map(part => extraEscape(encodeURIComponent(part)));
449
+ return "file://" + volume + encodedParts.join("/");
450
+ }
451
+ /**
452
+ * Converts a document URI to a file name.
453
+ *
454
+ * @example
455
+ * documentURIToFileName("file:///path/to/file.ts") === "/path/to/file.ts"
456
+ * documentURIToFileName("file:///c%3A/path/to/file.ts") === "c:/path/to/file.ts"
457
+ * documentURIToFileName("untitled:Untitled-1") === "^/untitled/ts-nul-authority/Untitled-1"
458
+ * documentURIToFileName("vscode-vfs://github/microsoft/typescript-go/file.ts") === "^/vscode-vfs/github/microsoft/typescript-go/file.ts"
459
+ */
460
+ export function documentURIToFileName(uri) {
461
+ // Bundled files are returned as-is
462
+ if (isBundled(uri)) {
463
+ return uri;
464
+ }
465
+ // Handle file:// URIs
466
+ if (uri.startsWith("file://")) {
467
+ let parsed;
468
+ try {
469
+ parsed = new URL(uri);
470
+ }
471
+ catch {
472
+ throw new Error("invalid file URI: " + uri);
473
+ }
474
+ // UNC path: file://server/share/...
475
+ if (parsed.host !== "") {
476
+ return "//" + parsed.host + parsed.pathname;
477
+ }
478
+ // Local file - fix Windows path by removing leading slash before volume
479
+ const path = decodeURIComponent(parsed.pathname);
480
+ if (path.length >= 3 && path.charCodeAt(0) === CharacterCodesSlash) {
481
+ const [volume, rest, ok] = splitVolumePath(path.substring(1));
482
+ if (ok) {
483
+ return volume + rest;
484
+ }
485
+ }
486
+ return path;
487
+ }
488
+ // Leave all other URIs escaped so we can round-trip them.
489
+ // Convert to dynamic file name format: ^/scheme/authority/path
490
+ const colonIndex = uri.indexOf(":");
491
+ if (colonIndex === -1) {
492
+ throw new Error("invalid URI: " + uri);
493
+ }
494
+ const scheme = uri.substring(0, colonIndex);
495
+ let path = uri.substring(colonIndex + 1);
496
+ let authority = "ts-nul-authority";
497
+ if (path.startsWith("//")) {
498
+ const rest = path.substring(2);
499
+ const slashIndex = rest.indexOf("/");
500
+ if (slashIndex === -1) {
501
+ throw new Error("invalid URI: " + uri);
502
+ }
503
+ authority = rest.substring(0, slashIndex);
504
+ path = rest.substring(slashIndex + 1);
505
+ }
506
+ return "^/" + scheme + "/" + authority + "/" + path;
507
+ }
508
+ //# sourceMappingURL=path.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"path.js","sourceRoot":"","sources":["../../src/api/path.ts"],"names":[],"mappings":"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"}