@typescript/native-preview 7.0.0-dev.20260422.1 → 7.0.0-dev.20260424.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 +49 -0
  192. package/dist/enums/objectFlags.enum.d.ts.map +1 -0
  193. package/dist/enums/objectFlags.enum.js +51 -0
  194. package/dist/enums/objectFlags.enum.js.map +1 -0
  195. package/dist/enums/objectFlags.js +51 -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,246 @@
1
+ "use strict";
2
+ /* --------------------------------------------------------------------------------------------
3
+ * Copyright (c) Microsoft Corporation. All rights reserved.
4
+ * Licensed under the MIT License. See License.txt in the project root for license information.
5
+ * ------------------------------------------------------------------------------------------ */
6
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
+ if (k2 === undefined) k2 = k;
8
+ var desc = Object.getOwnPropertyDescriptor(m, k);
9
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
+ desc = { enumerable: true, get: function() { return m[k]; } };
11
+ }
12
+ Object.defineProperty(o, k2, desc);
13
+ }) : (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ o[k2] = m[k];
16
+ }));
17
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
18
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
19
+ }) : function(o, v) {
20
+ o["default"] = v;
21
+ });
22
+ var __importStar = (this && this.__importStar) || (function () {
23
+ var ownKeys = function(o) {
24
+ ownKeys = Object.getOwnPropertyNames || function (o) {
25
+ var ar = [];
26
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
27
+ return ar;
28
+ };
29
+ return ownKeys(o);
30
+ };
31
+ return function (mod) {
32
+ if (mod && mod.__esModule) return mod;
33
+ var result = {};
34
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
35
+ __setModuleDefault(result, mod);
36
+ return result;
37
+ };
38
+ })();
39
+ var __importDefault = (this && this.__importDefault) || function (mod) {
40
+ return (mod && mod.__esModule) ? mod : { "default": mod };
41
+ };
42
+ Object.defineProperty(exports, "__esModule", { value: true });
43
+ exports.ReadableStreamMessageReader = exports.AbstractMessageReader = exports.MessageReader = void 0;
44
+ const ral_1 = __importDefault(require("./ral"));
45
+ const Is = __importStar(require("./is"));
46
+ const events_1 = require("./events");
47
+ const semaphore_1 = require("./semaphore");
48
+ var MessageReader;
49
+ (function (MessageReader) {
50
+ function is(value) {
51
+ const candidate = value;
52
+ return candidate && Is.func(candidate.listen) && Is.func(candidate.dispose) &&
53
+ Is.func(candidate.onError) && Is.func(candidate.onClose) && Is.func(candidate.onPartialMessage);
54
+ }
55
+ MessageReader.is = is;
56
+ })(MessageReader || (exports.MessageReader = MessageReader = {}));
57
+ class AbstractMessageReader {
58
+ errorEmitter;
59
+ closeEmitter;
60
+ partialMessageEmitter;
61
+ constructor() {
62
+ this.errorEmitter = new events_1.Emitter();
63
+ this.closeEmitter = new events_1.Emitter();
64
+ this.partialMessageEmitter = new events_1.Emitter();
65
+ }
66
+ dispose() {
67
+ this.errorEmitter.dispose();
68
+ this.closeEmitter.dispose();
69
+ this.partialMessageEmitter.dispose();
70
+ }
71
+ get onError() {
72
+ return this.errorEmitter.event;
73
+ }
74
+ fireError(error) {
75
+ this.errorEmitter.fire(this.asError(error));
76
+ }
77
+ get onClose() {
78
+ return this.closeEmitter.event;
79
+ }
80
+ fireClose() {
81
+ this.closeEmitter.fire(undefined);
82
+ }
83
+ get onPartialMessage() {
84
+ return this.partialMessageEmitter.event;
85
+ }
86
+ firePartialMessage(info) {
87
+ this.partialMessageEmitter.fire(info);
88
+ }
89
+ asError(error) {
90
+ if (error instanceof Error) {
91
+ return error;
92
+ }
93
+ else {
94
+ return new Error(`Reader received error. Reason: ${Is.string(error.message) ? error.message : 'unknown'}`);
95
+ }
96
+ }
97
+ }
98
+ exports.AbstractMessageReader = AbstractMessageReader;
99
+ var ResolvedMessageReaderOptions;
100
+ (function (ResolvedMessageReaderOptions) {
101
+ function fromOptions(options) {
102
+ let charset;
103
+ let result;
104
+ let contentDecoder;
105
+ const contentDecoders = new Map();
106
+ let contentTypeDecoder;
107
+ const contentTypeDecoders = new Map();
108
+ if (options === undefined || typeof options === 'string') {
109
+ charset = options ?? 'utf-8';
110
+ }
111
+ else {
112
+ charset = options.charset ?? 'utf-8';
113
+ if (options.contentDecoder !== undefined) {
114
+ contentDecoder = options.contentDecoder;
115
+ contentDecoders.set(contentDecoder.name, contentDecoder);
116
+ }
117
+ if (options.contentDecoders !== undefined) {
118
+ for (const decoder of options.contentDecoders) {
119
+ contentDecoders.set(decoder.name, decoder);
120
+ }
121
+ }
122
+ if (options.contentTypeDecoder !== undefined) {
123
+ contentTypeDecoder = options.contentTypeDecoder;
124
+ contentTypeDecoders.set(contentTypeDecoder.name, contentTypeDecoder);
125
+ }
126
+ if (options.contentTypeDecoders !== undefined) {
127
+ for (const decoder of options.contentTypeDecoders) {
128
+ contentTypeDecoders.set(decoder.name, decoder);
129
+ }
130
+ }
131
+ }
132
+ if (contentTypeDecoder === undefined) {
133
+ contentTypeDecoder = (0, ral_1.default)().applicationJson.decoder;
134
+ contentTypeDecoders.set(contentTypeDecoder.name, contentTypeDecoder);
135
+ }
136
+ return { charset, contentDecoder, contentDecoders, contentTypeDecoder, contentTypeDecoders };
137
+ }
138
+ ResolvedMessageReaderOptions.fromOptions = fromOptions;
139
+ })(ResolvedMessageReaderOptions || (ResolvedMessageReaderOptions = {}));
140
+ class ReadableStreamMessageReader extends AbstractMessageReader {
141
+ readable;
142
+ options;
143
+ callback;
144
+ nextMessageLength;
145
+ messageToken;
146
+ buffer;
147
+ partialMessageTimer;
148
+ _partialMessageTimeout;
149
+ readSemaphore;
150
+ constructor(readable, options) {
151
+ super();
152
+ this.readable = readable;
153
+ this.options = ResolvedMessageReaderOptions.fromOptions(options);
154
+ this.buffer = (0, ral_1.default)().messageBuffer.create(this.options.charset);
155
+ this._partialMessageTimeout = 10000;
156
+ this.nextMessageLength = -1;
157
+ this.messageToken = 0;
158
+ this.readSemaphore = new semaphore_1.Semaphore(1);
159
+ }
160
+ set partialMessageTimeout(timeout) {
161
+ this._partialMessageTimeout = timeout;
162
+ }
163
+ get partialMessageTimeout() {
164
+ return this._partialMessageTimeout;
165
+ }
166
+ listen(callback) {
167
+ this.nextMessageLength = -1;
168
+ this.messageToken = 0;
169
+ this.partialMessageTimer = undefined;
170
+ this.callback = callback;
171
+ const result = this.readable.onData((data) => {
172
+ this.onData(data);
173
+ });
174
+ this.readable.onError((error) => this.fireError(error));
175
+ this.readable.onClose(() => this.fireClose());
176
+ return result;
177
+ }
178
+ onData(data) {
179
+ try {
180
+ this.buffer.append(data);
181
+ while (true) {
182
+ if (this.nextMessageLength === -1) {
183
+ const headers = this.buffer.tryReadHeaders(true);
184
+ if (!headers) {
185
+ return;
186
+ }
187
+ const contentLength = headers.get('content-length');
188
+ if (!contentLength) {
189
+ this.fireError(new Error(`Header must provide a Content-Length property.\n${JSON.stringify(Object.fromEntries(headers))}`));
190
+ return;
191
+ }
192
+ const length = parseInt(contentLength);
193
+ if (isNaN(length)) {
194
+ this.fireError(new Error(`Content-Length value must be a number. Got ${contentLength}`));
195
+ return;
196
+ }
197
+ this.nextMessageLength = length;
198
+ }
199
+ const body = this.buffer.tryReadBody(this.nextMessageLength);
200
+ if (body === undefined) {
201
+ /** We haven't received the full message yet. */
202
+ this.setPartialMessageTimer();
203
+ return;
204
+ }
205
+ this.clearPartialMessageTimer();
206
+ this.nextMessageLength = -1;
207
+ // Make sure that we convert one received message after the
208
+ // other. Otherwise it could happen that a decoding of a second
209
+ // smaller message finished before the decoding of a first larger
210
+ // message and then we would deliver the second message first.
211
+ this.readSemaphore.lock(async () => {
212
+ const bytes = this.options.contentDecoder !== undefined
213
+ ? await this.options.contentDecoder.decode(body)
214
+ : body;
215
+ const message = await this.options.contentTypeDecoder.decode(bytes, this.options);
216
+ this.callback(message);
217
+ }).catch((error) => {
218
+ this.fireError(error);
219
+ });
220
+ }
221
+ }
222
+ catch (error) {
223
+ this.fireError(error);
224
+ }
225
+ }
226
+ clearPartialMessageTimer() {
227
+ if (this.partialMessageTimer) {
228
+ this.partialMessageTimer.dispose();
229
+ this.partialMessageTimer = undefined;
230
+ }
231
+ }
232
+ setPartialMessageTimer() {
233
+ this.clearPartialMessageTimer();
234
+ if (this._partialMessageTimeout <= 0) {
235
+ return;
236
+ }
237
+ this.partialMessageTimer = (0, ral_1.default)().timer.setTimeout((token, timeout) => {
238
+ this.partialMessageTimer = undefined;
239
+ if (token === this.messageToken) {
240
+ this.firePartialMessage({ messageToken: token, waitingTime: timeout });
241
+ this.setPartialMessageTimer();
242
+ }
243
+ }, this._partialMessageTimeout, this.messageToken, this._partialMessageTimeout);
244
+ }
245
+ }
246
+ exports.ReadableStreamMessageReader = ReadableStreamMessageReader;
@@ -0,0 +1,60 @@
1
+ import RAL from './ral';
2
+ import { Message } from './messages';
3
+ import { Event } from './events';
4
+ import { ContentEncoder, ContentTypeEncoder } from './encoding';
5
+ /**
6
+ * Writes JSON-RPC messages to an underlying transport.
7
+ */
8
+ export interface MessageWriter {
9
+ /**
10
+ * Raised whenever an error occurs while writing a message.
11
+ */
12
+ readonly onError: Event<[Error, Message | undefined, number | undefined]>;
13
+ /**
14
+ * An event raised when the underlying transport has closed and writing is no longer possible.
15
+ */
16
+ readonly onClose: Event<void>;
17
+ /**
18
+ * Sends a JSON-RPC message.
19
+ * @param msg The JSON-RPC message to be sent.
20
+ * @description Implementations should guarantee messages are transmitted in the same order that they are received by this method.
21
+ */
22
+ write(msg: Message): Promise<void>;
23
+ /**
24
+ * Call when the connection using this message writer ends
25
+ * (e.g. MessageConnection.end() is called)
26
+ */
27
+ end(): void;
28
+ /** Releases resources incurred from writing or raising events. Does NOT close the underlying transport, if any. */
29
+ dispose(): void;
30
+ }
31
+ export declare namespace MessageWriter {
32
+ function is(value: any): value is MessageWriter;
33
+ }
34
+ export declare abstract class AbstractMessageWriter {
35
+ private errorEmitter;
36
+ private closeEmitter;
37
+ constructor();
38
+ dispose(): void;
39
+ get onError(): Event<[Error, Message | undefined, number | undefined]>;
40
+ protected fireError(error: any, message?: Message, count?: number): void;
41
+ get onClose(): Event<void>;
42
+ protected fireClose(): void;
43
+ private asError;
44
+ }
45
+ export interface MessageWriterOptions {
46
+ charset?: RAL.MessageBufferEncoding;
47
+ contentEncoder?: ContentEncoder;
48
+ contentTypeEncoder?: ContentTypeEncoder;
49
+ }
50
+ export declare class WriteableStreamMessageWriter extends AbstractMessageWriter implements MessageWriter {
51
+ private writable;
52
+ private options;
53
+ private errorCount;
54
+ private writeSemaphore;
55
+ constructor(writable: RAL.WritableStream, options?: RAL.MessageBufferEncoding | MessageWriterOptions);
56
+ write(msg: Message): Promise<void>;
57
+ private doWrite;
58
+ private handleError;
59
+ end(): void;
60
+ }
@@ -0,0 +1,157 @@
1
+ "use strict";
2
+ /* --------------------------------------------------------------------------------------------
3
+ * Copyright (c) Microsoft Corporation. All rights reserved.
4
+ * Licensed under the MIT License. See License.txt in the project root for license information.
5
+ * ------------------------------------------------------------------------------------------ */
6
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
+ if (k2 === undefined) k2 = k;
8
+ var desc = Object.getOwnPropertyDescriptor(m, k);
9
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
+ desc = { enumerable: true, get: function() { return m[k]; } };
11
+ }
12
+ Object.defineProperty(o, k2, desc);
13
+ }) : (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ o[k2] = m[k];
16
+ }));
17
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
18
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
19
+ }) : function(o, v) {
20
+ o["default"] = v;
21
+ });
22
+ var __importStar = (this && this.__importStar) || (function () {
23
+ var ownKeys = function(o) {
24
+ ownKeys = Object.getOwnPropertyNames || function (o) {
25
+ var ar = [];
26
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
27
+ return ar;
28
+ };
29
+ return ownKeys(o);
30
+ };
31
+ return function (mod) {
32
+ if (mod && mod.__esModule) return mod;
33
+ var result = {};
34
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
35
+ __setModuleDefault(result, mod);
36
+ return result;
37
+ };
38
+ })();
39
+ var __importDefault = (this && this.__importDefault) || function (mod) {
40
+ return (mod && mod.__esModule) ? mod : { "default": mod };
41
+ };
42
+ Object.defineProperty(exports, "__esModule", { value: true });
43
+ exports.WriteableStreamMessageWriter = exports.AbstractMessageWriter = exports.MessageWriter = void 0;
44
+ const ral_1 = __importDefault(require("./ral"));
45
+ const Is = __importStar(require("./is"));
46
+ const semaphore_1 = require("./semaphore");
47
+ const events_1 = require("./events");
48
+ const ContentLength = 'Content-Length: ';
49
+ const CRLF = '\r\n';
50
+ var MessageWriter;
51
+ (function (MessageWriter) {
52
+ function is(value) {
53
+ const candidate = value;
54
+ return candidate && Is.func(candidate.dispose) && Is.func(candidate.onClose) &&
55
+ Is.func(candidate.onError) && Is.func(candidate.write);
56
+ }
57
+ MessageWriter.is = is;
58
+ })(MessageWriter || (exports.MessageWriter = MessageWriter = {}));
59
+ class AbstractMessageWriter {
60
+ errorEmitter;
61
+ closeEmitter;
62
+ constructor() {
63
+ this.errorEmitter = new events_1.Emitter();
64
+ this.closeEmitter = new events_1.Emitter();
65
+ }
66
+ dispose() {
67
+ this.errorEmitter.dispose();
68
+ this.closeEmitter.dispose();
69
+ }
70
+ get onError() {
71
+ return this.errorEmitter.event;
72
+ }
73
+ fireError(error, message, count) {
74
+ this.errorEmitter.fire([this.asError(error), message, count]);
75
+ }
76
+ get onClose() {
77
+ return this.closeEmitter.event;
78
+ }
79
+ fireClose() {
80
+ this.closeEmitter.fire(undefined);
81
+ }
82
+ asError(error) {
83
+ if (error instanceof Error) {
84
+ return error;
85
+ }
86
+ else {
87
+ return new Error(`Writer received error. Reason: ${Is.string(error.message) ? error.message : 'unknown'}`);
88
+ }
89
+ }
90
+ }
91
+ exports.AbstractMessageWriter = AbstractMessageWriter;
92
+ var ResolvedMessageWriterOptions;
93
+ (function (ResolvedMessageWriterOptions) {
94
+ function fromOptions(options) {
95
+ if (options === undefined || typeof options === 'string') {
96
+ return { charset: options ?? 'utf-8', contentTypeEncoder: (0, ral_1.default)().applicationJson.encoder };
97
+ }
98
+ else {
99
+ return { charset: options.charset ?? 'utf-8', contentEncoder: options.contentEncoder, contentTypeEncoder: options.contentTypeEncoder ?? (0, ral_1.default)().applicationJson.encoder };
100
+ }
101
+ }
102
+ ResolvedMessageWriterOptions.fromOptions = fromOptions;
103
+ })(ResolvedMessageWriterOptions || (ResolvedMessageWriterOptions = {}));
104
+ class WriteableStreamMessageWriter extends AbstractMessageWriter {
105
+ writable;
106
+ options;
107
+ errorCount;
108
+ writeSemaphore;
109
+ constructor(writable, options) {
110
+ super();
111
+ this.writable = writable;
112
+ this.options = ResolvedMessageWriterOptions.fromOptions(options);
113
+ this.errorCount = 0;
114
+ this.writeSemaphore = new semaphore_1.Semaphore(1);
115
+ this.writable.onError((error) => this.fireError(error));
116
+ this.writable.onClose(() => this.fireClose());
117
+ }
118
+ async write(msg) {
119
+ return this.writeSemaphore.lock(async () => {
120
+ const payload = this.options.contentTypeEncoder.encode(msg, this.options).then((buffer) => {
121
+ if (this.options.contentEncoder !== undefined) {
122
+ return this.options.contentEncoder.encode(buffer);
123
+ }
124
+ else {
125
+ return buffer;
126
+ }
127
+ });
128
+ return payload.then((buffer) => {
129
+ const headers = [];
130
+ headers.push(ContentLength, buffer.byteLength.toString(), CRLF);
131
+ headers.push(CRLF);
132
+ return this.doWrite(msg, headers, buffer);
133
+ }, (error) => {
134
+ this.fireError(error);
135
+ throw error;
136
+ });
137
+ });
138
+ }
139
+ async doWrite(msg, headers, data) {
140
+ try {
141
+ await this.writable.write(headers.join(''), 'ascii');
142
+ return this.writable.write(data);
143
+ }
144
+ catch (error) {
145
+ this.handleError(error, msg);
146
+ return Promise.reject(error);
147
+ }
148
+ }
149
+ handleError(error, msg) {
150
+ this.errorCount++;
151
+ this.fireError(error, msg, this.errorCount);
152
+ }
153
+ end() {
154
+ this.writable.end();
155
+ }
156
+ }
157
+ exports.WriteableStreamMessageWriter = WriteableStreamMessageWriter;