@harperfast/harper 5.2.0-beta.4 → 5.2.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 (320) hide show
  1. package/bin/backup.ts +169 -0
  2. package/bin/cliOperations.ts +92 -73
  3. package/bin/copyDb.ts +21 -4
  4. package/bin/harper.ts +43 -55
  5. package/bin/help.ts +216 -0
  6. package/components/Application.ts +236 -46
  7. package/components/ApplicationScope.ts +26 -0
  8. package/components/EntryHandler.ts +410 -105
  9. package/components/RuntimeModuleTracker.ts +189 -0
  10. package/components/Scope.ts +120 -30
  11. package/components/componentLoader.ts +177 -25
  12. package/components/deployLifecycle.ts +119 -33
  13. package/components/mcp/toolRegistry.ts +10 -0
  14. package/components/mcp/tools/application.ts +12 -5
  15. package/components/mcp/tools/operations.ts +9 -0
  16. package/components/mcp/tools/schemas/operationDescriptions.ts +3 -0
  17. package/components/mcp/tools/schemas/operations.ts +9 -0
  18. package/components/operations.js +5 -6
  19. package/components/operationsValidation.js +32 -2
  20. package/components/scopeMount.ts +150 -0
  21. package/config/configUtils.ts +12 -9
  22. package/config-root.schema.json +14 -0
  23. package/dataLayer/backupManifest.ts +102 -0
  24. package/dataLayer/blobBackup.ts +286 -0
  25. package/dataLayer/harperBridge/ResourceBridge.ts +69 -5
  26. package/dataLayer/hdbInfoController.ts +8 -0
  27. package/dataLayer/restoreMarker.ts +276 -0
  28. package/dataLayer/rocksdbBackup.ts +1100 -0
  29. package/dataLayer/schemaDescribe.ts +2 -1
  30. package/dist/bin/backup.d.ts +9 -0
  31. package/dist/bin/backup.js +192 -0
  32. package/dist/bin/backup.js.map +1 -0
  33. package/dist/bin/cliOperations.d.ts +13 -0
  34. package/dist/bin/cliOperations.js +89 -70
  35. package/dist/bin/cliOperations.js.map +1 -1
  36. package/dist/bin/copyDb.js +13 -2
  37. package/dist/bin/copyDb.js.map +1 -1
  38. package/dist/bin/harper.d.ts +13 -0
  39. package/dist/bin/harper.js +45 -56
  40. package/dist/bin/harper.js.map +1 -1
  41. package/dist/bin/help.d.ts +8 -0
  42. package/dist/bin/help.js +192 -0
  43. package/dist/bin/help.js.map +1 -0
  44. package/dist/components/Application.d.ts +16 -1
  45. package/dist/components/Application.js +210 -38
  46. package/dist/components/Application.js.map +1 -1
  47. package/dist/components/ApplicationScope.d.ts +7 -0
  48. package/dist/components/ApplicationScope.js +22 -0
  49. package/dist/components/ApplicationScope.js.map +1 -1
  50. package/dist/components/EntryHandler.d.ts +4 -4
  51. package/dist/components/EntryHandler.js +386 -95
  52. package/dist/components/EntryHandler.js.map +1 -1
  53. package/dist/components/RuntimeModuleTracker.d.ts +11 -0
  54. package/dist/components/RuntimeModuleTracker.js +189 -0
  55. package/dist/components/RuntimeModuleTracker.js.map +1 -0
  56. package/dist/components/Scope.d.ts +38 -1
  57. package/dist/components/Scope.js +117 -28
  58. package/dist/components/Scope.js.map +1 -1
  59. package/dist/components/componentLoader.d.ts +2 -6
  60. package/dist/components/componentLoader.js +160 -18
  61. package/dist/components/componentLoader.js.map +1 -1
  62. package/dist/components/deployLifecycle.d.ts +6 -2
  63. package/dist/components/deployLifecycle.js +109 -31
  64. package/dist/components/deployLifecycle.js.map +1 -1
  65. package/dist/components/mcp/toolRegistry.d.ts +7 -0
  66. package/dist/components/mcp/toolRegistry.js +10 -0
  67. package/dist/components/mcp/toolRegistry.js.map +1 -1
  68. package/dist/components/mcp/tools/application.js +11 -5
  69. package/dist/components/mcp/tools/application.js.map +1 -1
  70. package/dist/components/mcp/tools/operations.js +9 -0
  71. package/dist/components/mcp/tools/operations.js.map +1 -1
  72. package/dist/components/mcp/tools/schemas/operationDescriptions.js +2 -0
  73. package/dist/components/mcp/tools/schemas/operationDescriptions.js.map +1 -1
  74. package/dist/components/mcp/tools/schemas/operations.js +9 -0
  75. package/dist/components/mcp/tools/schemas/operations.js.map +1 -1
  76. package/dist/components/operations.js +6 -6
  77. package/dist/components/operations.js.map +1 -1
  78. package/dist/components/operationsValidation.js +34 -2
  79. package/dist/components/operationsValidation.js.map +1 -1
  80. package/dist/components/scopeMount.d.ts +86 -0
  81. package/dist/components/scopeMount.js +131 -0
  82. package/dist/components/scopeMount.js.map +1 -0
  83. package/dist/config/configUtils.js +13 -9
  84. package/dist/config/configUtils.js.map +1 -1
  85. package/dist/dataLayer/backupManifest.d.ts +26 -0
  86. package/dist/dataLayer/backupManifest.js +97 -0
  87. package/dist/dataLayer/backupManifest.js.map +1 -0
  88. package/dist/dataLayer/blobBackup.d.ts +87 -0
  89. package/dist/dataLayer/blobBackup.js +282 -0
  90. package/dist/dataLayer/blobBackup.js.map +1 -0
  91. package/dist/dataLayer/harperBridge/ResourceBridge.d.ts +3 -0
  92. package/dist/dataLayer/harperBridge/ResourceBridge.js +45 -5
  93. package/dist/dataLayer/harperBridge/ResourceBridge.js.map +1 -1
  94. package/dist/dataLayer/hdbInfoController.js +4 -0
  95. package/dist/dataLayer/hdbInfoController.js.map +1 -1
  96. package/dist/dataLayer/restoreMarker.d.ts +122 -0
  97. package/dist/dataLayer/restoreMarker.js +261 -0
  98. package/dist/dataLayer/restoreMarker.js.map +1 -0
  99. package/dist/dataLayer/rocksdbBackup.d.ts +127 -0
  100. package/dist/dataLayer/rocksdbBackup.js +1039 -0
  101. package/dist/dataLayer/rocksdbBackup.js.map +1 -0
  102. package/dist/dataLayer/schemaDescribe.js +2 -1
  103. package/dist/dataLayer/schemaDescribe.js.map +1 -1
  104. package/dist/resources/DatabaseTransaction.d.ts +55 -0
  105. package/dist/resources/DatabaseTransaction.js +282 -109
  106. package/dist/resources/DatabaseTransaction.js.map +1 -1
  107. package/dist/resources/ResourceInterface.d.ts +8 -5
  108. package/dist/resources/ResourceInterface.js.map +1 -1
  109. package/dist/resources/Resources.js +22 -4
  110. package/dist/resources/Resources.js.map +1 -1
  111. package/dist/resources/Table.d.ts +6 -5
  112. package/dist/resources/Table.js +114 -37
  113. package/dist/resources/Table.js.map +1 -1
  114. package/dist/resources/analytics/write.js +6 -6
  115. package/dist/resources/analytics/write.js.map +1 -1
  116. package/dist/resources/blob.d.ts +8 -1
  117. package/dist/resources/blob.js +31 -14
  118. package/dist/resources/blob.js.map +1 -1
  119. package/dist/resources/databases.d.ts +59 -1
  120. package/dist/resources/databases.js +386 -41
  121. package/dist/resources/databases.js.map +1 -1
  122. package/dist/resources/jsResource.d.ts +4 -26
  123. package/dist/resources/jsResource.js +5 -59
  124. package/dist/resources/jsResource.js.map +1 -1
  125. package/dist/resources/models/Models.d.ts +11 -1
  126. package/dist/resources/models/Models.js +10 -1
  127. package/dist/resources/models/Models.js.map +1 -1
  128. package/dist/resources/models/backendRegistry.d.ts +9 -0
  129. package/dist/resources/models/backendRegistry.js +10 -0
  130. package/dist/resources/models/backendRegistry.js.map +1 -1
  131. package/dist/resources/models/openaiStream.d.ts +16 -1
  132. package/dist/resources/models/openaiStream.js +113 -21
  133. package/dist/resources/models/openaiStream.js.map +1 -1
  134. package/dist/resources/models/v1/chatCompletions.d.ts +54 -0
  135. package/dist/resources/models/v1/chatCompletions.js +115 -0
  136. package/dist/resources/models/v1/chatCompletions.js.map +1 -0
  137. package/dist/resources/models/v1/embeddings.d.ts +11 -0
  138. package/dist/resources/models/v1/embeddings.js +71 -0
  139. package/dist/resources/models/v1/embeddings.js.map +1 -0
  140. package/dist/resources/models/v1/errors.d.ts +54 -0
  141. package/dist/resources/models/v1/errors.js +130 -0
  142. package/dist/resources/models/v1/errors.js.map +1 -0
  143. package/dist/resources/models/v1/index.d.ts +36 -0
  144. package/dist/resources/models/v1/index.js +75 -0
  145. package/dist/resources/models/v1/index.js.map +1 -0
  146. package/dist/resources/models/v1/models.d.ts +26 -0
  147. package/dist/resources/models/v1/models.js +44 -0
  148. package/dist/resources/models/v1/models.js.map +1 -0
  149. package/dist/resources/models/v1/translation.d.ts +133 -0
  150. package/dist/resources/models/v1/translation.js +298 -0
  151. package/dist/resources/models/v1/translation.js.map +1 -0
  152. package/dist/resources/roles.d.ts +1 -1
  153. package/dist/resources/roles.js +54 -7
  154. package/dist/resources/roles.js.map +1 -1
  155. package/dist/resources/transaction.js +0 -3
  156. package/dist/resources/transaction.js.map +1 -1
  157. package/dist/security/jsLoader.js +84 -33
  158. package/dist/security/jsLoader.js.map +1 -1
  159. package/dist/security/role.js +4 -0
  160. package/dist/security/role.js.map +1 -1
  161. package/dist/security/superUserGuard.d.ts +7 -0
  162. package/dist/security/superUserGuard.js +23 -0
  163. package/dist/security/superUserGuard.js.map +1 -0
  164. package/dist/security/tokenAuthentication.d.ts +0 -1
  165. package/dist/security/tokenAuthentication.js +6 -2
  166. package/dist/security/tokenAuthentication.js.map +1 -1
  167. package/dist/security/user.d.ts +6 -1
  168. package/dist/security/user.js +23 -1
  169. package/dist/security/user.js.map +1 -1
  170. package/dist/server/REST.js +25 -9
  171. package/dist/server/REST.js.map +1 -1
  172. package/dist/server/fastifyRoutes.js +15 -1
  173. package/dist/server/fastifyRoutes.js.map +1 -1
  174. package/dist/server/http.d.ts +23 -2
  175. package/dist/server/http.js +99 -12
  176. package/dist/server/http.js.map +1 -1
  177. package/dist/server/itc/serverHandlers.js +7 -1
  178. package/dist/server/itc/serverHandlers.js.map +1 -1
  179. package/dist/server/jobs/jobProcess.js +20 -1
  180. package/dist/server/jobs/jobProcess.js.map +1 -1
  181. package/dist/server/jobs/jobRunner.js +10 -0
  182. package/dist/server/jobs/jobRunner.js.map +1 -1
  183. package/dist/server/jobs/jobs.js +11 -0
  184. package/dist/server/jobs/jobs.js.map +1 -1
  185. package/dist/server/middlewareChain.d.ts +10 -1
  186. package/dist/server/middlewareChain.js +81 -21
  187. package/dist/server/middlewareChain.js.map +1 -1
  188. package/dist/server/operationsServer.d.ts +0 -2
  189. package/dist/server/operationsServer.js.map +1 -1
  190. package/dist/server/serverHelpers/multipartParser.js +9 -0
  191. package/dist/server/serverHelpers/multipartParser.js.map +1 -1
  192. package/dist/server/serverHelpers/operationAuthorizationState.d.ts +2 -0
  193. package/dist/server/serverHelpers/operationAuthorizationState.js +13 -0
  194. package/dist/server/serverHelpers/operationAuthorizationState.js.map +1 -0
  195. package/dist/server/serverHelpers/registeredOperations.d.ts +3 -2
  196. package/dist/server/serverHelpers/registeredOperations.js +14 -13
  197. package/dist/server/serverHelpers/registeredOperations.js.map +1 -1
  198. package/dist/server/serverHelpers/serverHandlers.js +27 -7
  199. package/dist/server/serverHelpers/serverHandlers.js.map +1 -1
  200. package/dist/server/serverHelpers/serverUtilities.d.ts +1 -1
  201. package/dist/server/serverHelpers/serverUtilities.js +21 -7
  202. package/dist/server/serverHelpers/serverUtilities.js.map +1 -1
  203. package/dist/server/static.js +68 -21
  204. package/dist/server/static.js.map +1 -1
  205. package/dist/server/storageReclamation.d.ts +17 -0
  206. package/dist/server/storageReclamation.js +90 -6
  207. package/dist/server/storageReclamation.js.map +1 -1
  208. package/dist/server/threads/socketRouter.js +20 -0
  209. package/dist/server/threads/socketRouter.js.map +1 -1
  210. package/dist/server/threads/threadServer.js +12 -0
  211. package/dist/server/threads/threadServer.js.map +1 -1
  212. package/dist/sqlEngine/diff/differential.js +7 -3
  213. package/dist/sqlEngine/diff/differential.js.map +1 -1
  214. package/dist/sqlTranslator/index.js +6 -1
  215. package/dist/sqlTranslator/index.js.map +1 -1
  216. package/dist/upgrade/upgradePrompt.d.ts +2 -2
  217. package/dist/upgrade/upgradePrompt.js +22 -3
  218. package/dist/upgrade/upgradePrompt.js.map +1 -1
  219. package/dist/utility/OperationFunctionCaller.js +25 -6
  220. package/dist/utility/OperationFunctionCaller.js.map +1 -1
  221. package/dist/utility/errors/commonErrors.d.ts +1 -0
  222. package/dist/utility/errors/commonErrors.js +1 -0
  223. package/dist/utility/errors/commonErrors.js.map +1 -1
  224. package/dist/utility/hdbTerms.d.ts +13 -1
  225. package/dist/utility/hdbTerms.js +13 -1
  226. package/dist/utility/hdbTerms.js.map +1 -1
  227. package/dist/utility/install/installer.js +32 -0
  228. package/dist/utility/install/installer.js.map +1 -1
  229. package/dist/utility/logging/harper_logger.d.ts +47 -0
  230. package/dist/utility/logging/harper_logger.js +803 -38
  231. package/dist/utility/logging/harper_logger.js.map +1 -1
  232. package/dist/utility/operation_authorization.js +13 -3
  233. package/dist/utility/operation_authorization.js.map +1 -1
  234. package/npm-shrinkwrap.json +198 -193
  235. package/package.json +12 -7
  236. package/resources/DESIGN.md +2 -0
  237. package/resources/DatabaseTransaction.ts +310 -104
  238. package/resources/ResourceInterface.ts +8 -5
  239. package/resources/Resources.ts +22 -4
  240. package/resources/Table.ts +341 -263
  241. package/resources/analytics/write.ts +22 -20
  242. package/resources/blob.ts +31 -14
  243. package/resources/databases.ts +387 -46
  244. package/resources/jsResource.ts +5 -62
  245. package/resources/models/Models.ts +14 -1
  246. package/resources/models/backendRegistry.ts +10 -0
  247. package/resources/models/openaiStream.ts +131 -19
  248. package/resources/models/v1/chatCompletions.ts +128 -0
  249. package/resources/models/v1/embeddings.ts +70 -0
  250. package/resources/models/v1/errors.ts +141 -0
  251. package/resources/models/v1/index.ts +72 -0
  252. package/resources/models/v1/models.ts +53 -0
  253. package/resources/models/v1/translation.ts +362 -0
  254. package/resources/roles.ts +67 -7
  255. package/resources/transaction.ts +0 -3
  256. package/security/jsLoader.ts +84 -30
  257. package/security/role.ts +7 -0
  258. package/security/superUserGuard.ts +20 -0
  259. package/security/tokenAuthentication.ts +6 -3
  260. package/security/user.ts +26 -1
  261. package/server/DESIGN.md +61 -34
  262. package/server/REST.ts +25 -9
  263. package/server/fastifyRoutes.ts +20 -1
  264. package/server/http.ts +100 -13
  265. package/server/itc/serverHandlers.js +7 -1
  266. package/server/jobs/jobProcess.ts +18 -1
  267. package/server/jobs/jobRunner.ts +10 -0
  268. package/server/jobs/jobs.ts +11 -0
  269. package/server/middlewareChain.ts +79 -20
  270. package/server/operationsServer.ts +0 -2
  271. package/server/serverHelpers/multipartParser.ts +9 -0
  272. package/server/serverHelpers/operationAuthorizationState.ts +11 -0
  273. package/server/serverHelpers/registeredOperations.ts +19 -15
  274. package/server/serverHelpers/serverHandlers.js +28 -7
  275. package/server/serverHelpers/serverUtilities.ts +29 -7
  276. package/server/static.ts +87 -23
  277. package/server/storageReclamation.ts +104 -8
  278. package/server/threads/socketRouter.ts +20 -0
  279. package/server/threads/threadServer.js +11 -0
  280. package/sqlTranslator/index.ts +6 -1
  281. package/static/defaultConfig.yaml +3 -0
  282. package/studio/web/assets/{Chat-DK3GlWEb.js → Chat-aApwhRmz.js} +2 -2
  283. package/studio/web/assets/{Chat-DK3GlWEb.js.map → Chat-aApwhRmz.js.map} +1 -1
  284. package/studio/web/assets/{FloatingChat-fBcC1Ew_.js → FloatingChat-sC0H91n9.js} +4 -4
  285. package/studio/web/assets/{FloatingChat-fBcC1Ew_.js.map → FloatingChat-sC0H91n9.js.map} +1 -1
  286. package/studio/web/assets/{apiToken-DJo1nakA.js → apiToken-DZ8JhHOI.js} +2 -2
  287. package/studio/web/assets/{apiToken-DJo1nakA.js.map → apiToken-DZ8JhHOI.js.map} +1 -1
  288. package/studio/web/assets/{applications-BDfH8urd.js → applications-9SEVLIO5.js} +2 -2
  289. package/studio/web/assets/{applications-BDfH8urd.js.map → applications-9SEVLIO5.js.map} +1 -1
  290. package/studio/web/assets/{index-BHo3c2Gk.js → index-Dy3uDGXb.js} +6 -6
  291. package/studio/web/assets/index-Dy3uDGXb.js.map +1 -0
  292. package/studio/web/assets/{index.lazy-BTo0y6UM.js → index.lazy-CN1zq4I4.js} +4 -4
  293. package/studio/web/assets/{index.lazy-BTo0y6UM.js.map → index.lazy-CN1zq4I4.js.map} +1 -1
  294. package/studio/web/assets/{notifications-CMxvWNnz.js → notifications-BFAF07xr.js} +2 -2
  295. package/studio/web/assets/{notifications-CMxvWNnz.js.map → notifications-BFAF07xr.js.map} +1 -1
  296. package/studio/web/assets/{notifications-D3GoB26g.js → notifications-CKlYVvVN.js} +2 -2
  297. package/studio/web/assets/{notifications-D3GoB26g.js.map → notifications-CKlYVvVN.js.map} +1 -1
  298. package/studio/web/assets/{profile-Doj5FVDE.js → profile-A1zhEdFG.js} +2 -2
  299. package/studio/web/assets/{profile-Doj5FVDE.js.map → profile-A1zhEdFG.js.map} +1 -1
  300. package/studio/web/assets/{setComponentFile-yinsqJy0.js → setComponentFile-SEtBt_GV.js} +2 -2
  301. package/studio/web/assets/{setComponentFile-yinsqJy0.js.map → setComponentFile-SEtBt_GV.js.map} +1 -1
  302. package/studio/web/assets/{setup-DJwR0BHd.js → setup-BisINqdH.js} +2 -2
  303. package/studio/web/assets/{setup-DJwR0BHd.js.map → setup-BisINqdH.js.map} +1 -1
  304. package/studio/web/assets/{status-Br_AbsJs.js → status-BuQoCc7l.js} +2 -2
  305. package/studio/web/assets/{status-Br_AbsJs.js.map → status-BuQoCc7l.js.map} +1 -1
  306. package/studio/web/assets/{swagger-ui-react-02XH5sVf.js → swagger-ui-react-CAi_s1PC.js} +2 -2
  307. package/studio/web/assets/{swagger-ui-react-02XH5sVf.js.map → swagger-ui-react-CAi_s1PC.js.map} +1 -1
  308. package/studio/web/assets/{tsMode-D1DMKY7h.js → tsMode-DT74tlkM.js} +2 -2
  309. package/studio/web/assets/{tsMode-D1DMKY7h.js.map → tsMode-DT74tlkM.js.map} +1 -1
  310. package/studio/web/assets/{useEntityRestURL-DtRblRgw.js → useEntityRestURL-CGRGc1n7.js} +2 -2
  311. package/studio/web/assets/{useEntityRestURL-DtRblRgw.js.map → useEntityRestURL-CGRGc1n7.js.map} +1 -1
  312. package/studio/web/index.html +1 -1
  313. package/upgrade/upgradePrompt.ts +22 -3
  314. package/utility/OperationFunctionCaller.ts +24 -3
  315. package/utility/errors/commonErrors.ts +2 -0
  316. package/utility/hdbTerms.ts +13 -1
  317. package/utility/install/installer.ts +37 -0
  318. package/utility/logging/harper_logger.ts +786 -41
  319. package/utility/operation_authorization.ts +31 -3
  320. package/studio/web/assets/index-BHo3c2Gk.js.map +0 -1
@@ -1,4 +1,4 @@
1
- import{a as e,c as t,f as n,m as r,o as i,p as a}from"./editor.api-OBQnf1nL.js";import{ct as o}from"./index-BHo3c2Gk.js";import{t as s}from"./workers-Bhsi-paP.js";var c=class{constructor(e,t){this._modeId=e,this._defaults=t,this._worker=null,this._client=null,this._configChangeListener=this._defaults.onDidChange(()=>this._stopWorker()),this._updateExtraLibsToken=0,this._extraLibsChangeListener=this._defaults.onDidExtraLibsChange(()=>this._updateExtraLibs())}dispose(){this._configChangeListener.dispose(),this._extraLibsChangeListener.dispose(),this._stopWorker()}_stopWorker(){this._worker&&=(this._worker.dispose(),null),this._client=null}async _updateExtraLibs(){if(!this._worker)return;let e=++this._updateExtraLibsToken,t=await this._worker.getProxy();this._updateExtraLibsToken===e&&t.updateExtraLibs(this._defaults.getExtraLibs())}_getClient(){return this._client||=(async()=>(this._worker=s({moduleId:`vs/language/typescript/tsWorker`,createWorker:()=>new Worker(new URL(`/assets/ts.worker-CLx2uvU0.js`,``+import.meta.url),{type:`module`}),label:this._modeId,keepIdleModels:!0,createData:{compilerOptions:this._defaults.getCompilerOptions(),extraLibs:this._defaults.getExtraLibs(),customWorkerPath:this._defaults.workerOptions.customWorkerPath,inlayHintsOptions:this._defaults.inlayHintsOptions}}),this._defaults.getEagerModelSync()?await this._worker.withSyncedResources(a.getModels().filter(e=>e.getLanguageId()===this._modeId).map(e=>e.uri)):await this._worker.getProxy()))(),this._client}async getLanguageServiceWorker(...e){let t=await this._getClient();return this._worker&&await this._worker.withSyncedResources(e),t}},l={};l[`lib.d.ts`]=!0,l[`lib.decorators.d.ts`]=!0,l[`lib.decorators.legacy.d.ts`]=!0,l[`lib.dom.asynciterable.d.ts`]=!0,l[`lib.dom.d.ts`]=!0,l[`lib.dom.iterable.d.ts`]=!0,l[`lib.es2015.collection.d.ts`]=!0,l[`lib.es2015.core.d.ts`]=!0,l[`lib.es2015.d.ts`]=!0,l[`lib.es2015.generator.d.ts`]=!0,l[`lib.es2015.iterable.d.ts`]=!0,l[`lib.es2015.promise.d.ts`]=!0,l[`lib.es2015.proxy.d.ts`]=!0,l[`lib.es2015.reflect.d.ts`]=!0,l[`lib.es2015.symbol.d.ts`]=!0,l[`lib.es2015.symbol.wellknown.d.ts`]=!0,l[`lib.es2016.array.include.d.ts`]=!0,l[`lib.es2016.d.ts`]=!0,l[`lib.es2016.full.d.ts`]=!0,l[`lib.es2016.intl.d.ts`]=!0,l[`lib.es2017.arraybuffer.d.ts`]=!0,l[`lib.es2017.d.ts`]=!0,l[`lib.es2017.date.d.ts`]=!0,l[`lib.es2017.full.d.ts`]=!0,l[`lib.es2017.intl.d.ts`]=!0,l[`lib.es2017.object.d.ts`]=!0,l[`lib.es2017.sharedmemory.d.ts`]=!0,l[`lib.es2017.string.d.ts`]=!0,l[`lib.es2017.typedarrays.d.ts`]=!0,l[`lib.es2018.asyncgenerator.d.ts`]=!0,l[`lib.es2018.asynciterable.d.ts`]=!0,l[`lib.es2018.d.ts`]=!0,l[`lib.es2018.full.d.ts`]=!0,l[`lib.es2018.intl.d.ts`]=!0,l[`lib.es2018.promise.d.ts`]=!0,l[`lib.es2018.regexp.d.ts`]=!0,l[`lib.es2019.array.d.ts`]=!0,l[`lib.es2019.d.ts`]=!0,l[`lib.es2019.full.d.ts`]=!0,l[`lib.es2019.intl.d.ts`]=!0,l[`lib.es2019.object.d.ts`]=!0,l[`lib.es2019.string.d.ts`]=!0,l[`lib.es2019.symbol.d.ts`]=!0,l[`lib.es2020.bigint.d.ts`]=!0,l[`lib.es2020.d.ts`]=!0,l[`lib.es2020.date.d.ts`]=!0,l[`lib.es2020.full.d.ts`]=!0,l[`lib.es2020.intl.d.ts`]=!0,l[`lib.es2020.number.d.ts`]=!0,l[`lib.es2020.promise.d.ts`]=!0,l[`lib.es2020.sharedmemory.d.ts`]=!0,l[`lib.es2020.string.d.ts`]=!0,l[`lib.es2020.symbol.wellknown.d.ts`]=!0,l[`lib.es2021.d.ts`]=!0,l[`lib.es2021.full.d.ts`]=!0,l[`lib.es2021.intl.d.ts`]=!0,l[`lib.es2021.promise.d.ts`]=!0,l[`lib.es2021.string.d.ts`]=!0,l[`lib.es2021.weakref.d.ts`]=!0,l[`lib.es2022.array.d.ts`]=!0,l[`lib.es2022.d.ts`]=!0,l[`lib.es2022.error.d.ts`]=!0,l[`lib.es2022.full.d.ts`]=!0,l[`lib.es2022.intl.d.ts`]=!0,l[`lib.es2022.object.d.ts`]=!0,l[`lib.es2022.regexp.d.ts`]=!0,l[`lib.es2022.string.d.ts`]=!0,l[`lib.es2023.array.d.ts`]=!0,l[`lib.es2023.collection.d.ts`]=!0,l[`lib.es2023.d.ts`]=!0,l[`lib.es2023.full.d.ts`]=!0,l[`lib.es2023.intl.d.ts`]=!0,l[`lib.es2024.arraybuffer.d.ts`]=!0,l[`lib.es2024.collection.d.ts`]=!0,l[`lib.es2024.d.ts`]=!0,l[`lib.es2024.full.d.ts`]=!0,l[`lib.es2024.object.d.ts`]=!0,l[`lib.es2024.promise.d.ts`]=!0,l[`lib.es2024.regexp.d.ts`]=!0,l[`lib.es2024.sharedmemory.d.ts`]=!0,l[`lib.es2024.string.d.ts`]=!0,l[`lib.es5.d.ts`]=!0,l[`lib.es6.d.ts`]=!0,l[`lib.esnext.array.d.ts`]=!0,l[`lib.esnext.collection.d.ts`]=!0,l[`lib.esnext.d.ts`]=!0,l[`lib.esnext.decorators.d.ts`]=!0,l[`lib.esnext.disposable.d.ts`]=!0,l[`lib.esnext.error.d.ts`]=!0,l[`lib.esnext.float16.d.ts`]=!0,l[`lib.esnext.full.d.ts`]=!0,l[`lib.esnext.intl.d.ts`]=!0,l[`lib.esnext.iterator.d.ts`]=!0,l[`lib.esnext.promise.d.ts`]=!0,l[`lib.esnext.sharedmemory.d.ts`]=!0,l[`lib.scripthost.d.ts`]=!0,l[`lib.webworker.asynciterable.d.ts`]=!0,l[`lib.webworker.d.ts`]=!0,l[`lib.webworker.importscripts.d.ts`]=!0,l[`lib.webworker.iterable.d.ts`]=!0;function u(e,t,n=0){if(typeof e==`string`)return e;if(e===void 0)return``;let r=``;if(n){r+=t;for(let e=0;e<n;e++)r+=` `}if(r+=e.messageText,n++,e.next)for(let i of e.next)r+=u(i,t,n);return r}function d(e){return e?e.map(e=>e.text).join(``):``}var f=class{constructor(e){this._worker=e}_textSpanToRange(e,t){let n=e.getPositionAt(t.start),r=e.getPositionAt(t.start+t.length),{lineNumber:i,column:a}=n,{lineNumber:o,column:s}=r;return{startLineNumber:i,startColumn:a,endLineNumber:o,endColumn:s}}},p=class{constructor(e){this._worker=e,this._libFiles={},this._hasFetchedLibFiles=!1,this._fetchLibFilesPromise=null}isLibFile(e){return e?e.path.indexOf(`/lib.`)===0&&!!l[e.path.slice(1)]:!1}getOrCreateModel(e){let t=n.parse(e),r=a.getModel(t);if(r)return r;if(this.isLibFile(t)&&this._hasFetchedLibFiles)return a.createModel(this._libFiles[t.path.slice(1)],`typescript`,t);let i=o.getExtraLibs()[e];return i?a.createModel(i.content,`typescript`,t):null}_containsLibFile(e){for(let t of e)if(this.isLibFile(t))return!0;return!1}async fetchLibFilesIfNecessary(e){this._containsLibFile(e)&&await this._fetchLibFiles()}_fetchLibFiles(){return this._fetchLibFilesPromise||=this._worker().then(e=>e.getLibFiles()).then(e=>{this._hasFetchedLibFiles=!0,this._libFiles=e}),this._fetchLibFilesPromise}},m=class extends f{constructor(e,t,n,r){super(r),this._libFiles=e,this._defaults=t,this._selector=n,this._disposables=[],this._listener=Object.create(null);let i=e=>{if(e.getLanguageId()!==n)return;let t=()=>{let{onlyVisible:t}=this._defaults.getDiagnosticsOptions();t?e.isAttachedToEditor()&&this._doValidate(e):this._doValidate(e)},r,i=e.onDidChangeContent(()=>{clearTimeout(r),r=window.setTimeout(t,500)}),o=e.onDidChangeAttached(()=>{let{onlyVisible:n}=this._defaults.getDiagnosticsOptions();n&&(e.isAttachedToEditor()?t():a.setModelMarkers(e,this._selector,[]))});this._listener[e.uri.toString()]={dispose(){i.dispose(),o.dispose(),clearTimeout(r)}},t()},o=e=>{a.setModelMarkers(e,this._selector,[]);let t=e.uri.toString();this._listener[t]&&(this._listener[t].dispose(),delete this._listener[t])};this._disposables.push(a.onDidCreateModel(e=>i(e))),this._disposables.push(a.onWillDisposeModel(o)),this._disposables.push(a.onDidChangeModelLanguage(e=>{o(e.model),i(e.model)})),this._disposables.push({dispose(){for(let e of a.getModels())o(e)}});let s=()=>{for(let e of a.getModels())o(e),i(e)};this._disposables.push(this._defaults.onDidChange(s)),this._disposables.push(this._defaults.onDidExtraLibsChange(s)),a.getModels().forEach(e=>i(e))}dispose(){this._disposables.forEach(e=>e&&e.dispose()),this._disposables=[]}async _doValidate(e){let t=await this._worker(e.uri);if(e.isDisposed())return;let r=[],{noSyntaxValidation:i,noSemanticValidation:o,noSuggestionDiagnostics:s}=this._defaults.getDiagnosticsOptions();i||r.push(t.getSyntacticDiagnostics(e.uri.toString())),o||r.push(t.getSemanticDiagnostics(e.uri.toString())),s||r.push(t.getSuggestionDiagnostics(e.uri.toString()));let c=await Promise.all(r);if(!c||e.isDisposed())return;let l=c.reduce((e,t)=>t.concat(e),[]).filter(e=>(this._defaults.getDiagnosticsOptions().diagnosticCodesToIgnore||[]).indexOf(e.code)===-1),u=l.map(e=>e.relatedInformation||[]).reduce((e,t)=>t.concat(e),[]).map(e=>e.file?n.parse(e.file.fileName):null);await this._libFiles.fetchLibFilesIfNecessary(u),!e.isDisposed()&&a.setModelMarkers(e,this._selector,l.map(t=>this._convertDiagnostics(e,t)))}_convertDiagnostics(e,t){let n=t.start||0,r=t.length||1,{lineNumber:a,column:o}=e.getPositionAt(n),{lineNumber:s,column:c}=e.getPositionAt(n+r),l=[];return t.reportsUnnecessary&&l.push(i.Unnecessary),t.reportsDeprecated&&l.push(i.Deprecated),{severity:this._tsDiagnosticCategoryToMarkerSeverity(t.category),startLineNumber:a,startColumn:o,endLineNumber:s,endColumn:c,message:u(t.messageText,`
1
+ import{a as e,c as t,f as n,m as r,o as i,p as a}from"./editor.api-OBQnf1nL.js";import{ct as o}from"./index-Dy3uDGXb.js";import{t as s}from"./workers-Bhsi-paP.js";var c=class{constructor(e,t){this._modeId=e,this._defaults=t,this._worker=null,this._client=null,this._configChangeListener=this._defaults.onDidChange(()=>this._stopWorker()),this._updateExtraLibsToken=0,this._extraLibsChangeListener=this._defaults.onDidExtraLibsChange(()=>this._updateExtraLibs())}dispose(){this._configChangeListener.dispose(),this._extraLibsChangeListener.dispose(),this._stopWorker()}_stopWorker(){this._worker&&=(this._worker.dispose(),null),this._client=null}async _updateExtraLibs(){if(!this._worker)return;let e=++this._updateExtraLibsToken,t=await this._worker.getProxy();this._updateExtraLibsToken===e&&t.updateExtraLibs(this._defaults.getExtraLibs())}_getClient(){return this._client||=(async()=>(this._worker=s({moduleId:`vs/language/typescript/tsWorker`,createWorker:()=>new Worker(new URL(`/assets/ts.worker-CLx2uvU0.js`,``+import.meta.url),{type:`module`}),label:this._modeId,keepIdleModels:!0,createData:{compilerOptions:this._defaults.getCompilerOptions(),extraLibs:this._defaults.getExtraLibs(),customWorkerPath:this._defaults.workerOptions.customWorkerPath,inlayHintsOptions:this._defaults.inlayHintsOptions}}),this._defaults.getEagerModelSync()?await this._worker.withSyncedResources(a.getModels().filter(e=>e.getLanguageId()===this._modeId).map(e=>e.uri)):await this._worker.getProxy()))(),this._client}async getLanguageServiceWorker(...e){let t=await this._getClient();return this._worker&&await this._worker.withSyncedResources(e),t}},l={};l[`lib.d.ts`]=!0,l[`lib.decorators.d.ts`]=!0,l[`lib.decorators.legacy.d.ts`]=!0,l[`lib.dom.asynciterable.d.ts`]=!0,l[`lib.dom.d.ts`]=!0,l[`lib.dom.iterable.d.ts`]=!0,l[`lib.es2015.collection.d.ts`]=!0,l[`lib.es2015.core.d.ts`]=!0,l[`lib.es2015.d.ts`]=!0,l[`lib.es2015.generator.d.ts`]=!0,l[`lib.es2015.iterable.d.ts`]=!0,l[`lib.es2015.promise.d.ts`]=!0,l[`lib.es2015.proxy.d.ts`]=!0,l[`lib.es2015.reflect.d.ts`]=!0,l[`lib.es2015.symbol.d.ts`]=!0,l[`lib.es2015.symbol.wellknown.d.ts`]=!0,l[`lib.es2016.array.include.d.ts`]=!0,l[`lib.es2016.d.ts`]=!0,l[`lib.es2016.full.d.ts`]=!0,l[`lib.es2016.intl.d.ts`]=!0,l[`lib.es2017.arraybuffer.d.ts`]=!0,l[`lib.es2017.d.ts`]=!0,l[`lib.es2017.date.d.ts`]=!0,l[`lib.es2017.full.d.ts`]=!0,l[`lib.es2017.intl.d.ts`]=!0,l[`lib.es2017.object.d.ts`]=!0,l[`lib.es2017.sharedmemory.d.ts`]=!0,l[`lib.es2017.string.d.ts`]=!0,l[`lib.es2017.typedarrays.d.ts`]=!0,l[`lib.es2018.asyncgenerator.d.ts`]=!0,l[`lib.es2018.asynciterable.d.ts`]=!0,l[`lib.es2018.d.ts`]=!0,l[`lib.es2018.full.d.ts`]=!0,l[`lib.es2018.intl.d.ts`]=!0,l[`lib.es2018.promise.d.ts`]=!0,l[`lib.es2018.regexp.d.ts`]=!0,l[`lib.es2019.array.d.ts`]=!0,l[`lib.es2019.d.ts`]=!0,l[`lib.es2019.full.d.ts`]=!0,l[`lib.es2019.intl.d.ts`]=!0,l[`lib.es2019.object.d.ts`]=!0,l[`lib.es2019.string.d.ts`]=!0,l[`lib.es2019.symbol.d.ts`]=!0,l[`lib.es2020.bigint.d.ts`]=!0,l[`lib.es2020.d.ts`]=!0,l[`lib.es2020.date.d.ts`]=!0,l[`lib.es2020.full.d.ts`]=!0,l[`lib.es2020.intl.d.ts`]=!0,l[`lib.es2020.number.d.ts`]=!0,l[`lib.es2020.promise.d.ts`]=!0,l[`lib.es2020.sharedmemory.d.ts`]=!0,l[`lib.es2020.string.d.ts`]=!0,l[`lib.es2020.symbol.wellknown.d.ts`]=!0,l[`lib.es2021.d.ts`]=!0,l[`lib.es2021.full.d.ts`]=!0,l[`lib.es2021.intl.d.ts`]=!0,l[`lib.es2021.promise.d.ts`]=!0,l[`lib.es2021.string.d.ts`]=!0,l[`lib.es2021.weakref.d.ts`]=!0,l[`lib.es2022.array.d.ts`]=!0,l[`lib.es2022.d.ts`]=!0,l[`lib.es2022.error.d.ts`]=!0,l[`lib.es2022.full.d.ts`]=!0,l[`lib.es2022.intl.d.ts`]=!0,l[`lib.es2022.object.d.ts`]=!0,l[`lib.es2022.regexp.d.ts`]=!0,l[`lib.es2022.string.d.ts`]=!0,l[`lib.es2023.array.d.ts`]=!0,l[`lib.es2023.collection.d.ts`]=!0,l[`lib.es2023.d.ts`]=!0,l[`lib.es2023.full.d.ts`]=!0,l[`lib.es2023.intl.d.ts`]=!0,l[`lib.es2024.arraybuffer.d.ts`]=!0,l[`lib.es2024.collection.d.ts`]=!0,l[`lib.es2024.d.ts`]=!0,l[`lib.es2024.full.d.ts`]=!0,l[`lib.es2024.object.d.ts`]=!0,l[`lib.es2024.promise.d.ts`]=!0,l[`lib.es2024.regexp.d.ts`]=!0,l[`lib.es2024.sharedmemory.d.ts`]=!0,l[`lib.es2024.string.d.ts`]=!0,l[`lib.es5.d.ts`]=!0,l[`lib.es6.d.ts`]=!0,l[`lib.esnext.array.d.ts`]=!0,l[`lib.esnext.collection.d.ts`]=!0,l[`lib.esnext.d.ts`]=!0,l[`lib.esnext.decorators.d.ts`]=!0,l[`lib.esnext.disposable.d.ts`]=!0,l[`lib.esnext.error.d.ts`]=!0,l[`lib.esnext.float16.d.ts`]=!0,l[`lib.esnext.full.d.ts`]=!0,l[`lib.esnext.intl.d.ts`]=!0,l[`lib.esnext.iterator.d.ts`]=!0,l[`lib.esnext.promise.d.ts`]=!0,l[`lib.esnext.sharedmemory.d.ts`]=!0,l[`lib.scripthost.d.ts`]=!0,l[`lib.webworker.asynciterable.d.ts`]=!0,l[`lib.webworker.d.ts`]=!0,l[`lib.webworker.importscripts.d.ts`]=!0,l[`lib.webworker.iterable.d.ts`]=!0;function u(e,t,n=0){if(typeof e==`string`)return e;if(e===void 0)return``;let r=``;if(n){r+=t;for(let e=0;e<n;e++)r+=` `}if(r+=e.messageText,n++,e.next)for(let i of e.next)r+=u(i,t,n);return r}function d(e){return e?e.map(e=>e.text).join(``):``}var f=class{constructor(e){this._worker=e}_textSpanToRange(e,t){let n=e.getPositionAt(t.start),r=e.getPositionAt(t.start+t.length),{lineNumber:i,column:a}=n,{lineNumber:o,column:s}=r;return{startLineNumber:i,startColumn:a,endLineNumber:o,endColumn:s}}},p=class{constructor(e){this._worker=e,this._libFiles={},this._hasFetchedLibFiles=!1,this._fetchLibFilesPromise=null}isLibFile(e){return e?e.path.indexOf(`/lib.`)===0&&!!l[e.path.slice(1)]:!1}getOrCreateModel(e){let t=n.parse(e),r=a.getModel(t);if(r)return r;if(this.isLibFile(t)&&this._hasFetchedLibFiles)return a.createModel(this._libFiles[t.path.slice(1)],`typescript`,t);let i=o.getExtraLibs()[e];return i?a.createModel(i.content,`typescript`,t):null}_containsLibFile(e){for(let t of e)if(this.isLibFile(t))return!0;return!1}async fetchLibFilesIfNecessary(e){this._containsLibFile(e)&&await this._fetchLibFiles()}_fetchLibFiles(){return this._fetchLibFilesPromise||=this._worker().then(e=>e.getLibFiles()).then(e=>{this._hasFetchedLibFiles=!0,this._libFiles=e}),this._fetchLibFilesPromise}},m=class extends f{constructor(e,t,n,r){super(r),this._libFiles=e,this._defaults=t,this._selector=n,this._disposables=[],this._listener=Object.create(null);let i=e=>{if(e.getLanguageId()!==n)return;let t=()=>{let{onlyVisible:t}=this._defaults.getDiagnosticsOptions();t?e.isAttachedToEditor()&&this._doValidate(e):this._doValidate(e)},r,i=e.onDidChangeContent(()=>{clearTimeout(r),r=window.setTimeout(t,500)}),o=e.onDidChangeAttached(()=>{let{onlyVisible:n}=this._defaults.getDiagnosticsOptions();n&&(e.isAttachedToEditor()?t():a.setModelMarkers(e,this._selector,[]))});this._listener[e.uri.toString()]={dispose(){i.dispose(),o.dispose(),clearTimeout(r)}},t()},o=e=>{a.setModelMarkers(e,this._selector,[]);let t=e.uri.toString();this._listener[t]&&(this._listener[t].dispose(),delete this._listener[t])};this._disposables.push(a.onDidCreateModel(e=>i(e))),this._disposables.push(a.onWillDisposeModel(o)),this._disposables.push(a.onDidChangeModelLanguage(e=>{o(e.model),i(e.model)})),this._disposables.push({dispose(){for(let e of a.getModels())o(e)}});let s=()=>{for(let e of a.getModels())o(e),i(e)};this._disposables.push(this._defaults.onDidChange(s)),this._disposables.push(this._defaults.onDidExtraLibsChange(s)),a.getModels().forEach(e=>i(e))}dispose(){this._disposables.forEach(e=>e&&e.dispose()),this._disposables=[]}async _doValidate(e){let t=await this._worker(e.uri);if(e.isDisposed())return;let r=[],{noSyntaxValidation:i,noSemanticValidation:o,noSuggestionDiagnostics:s}=this._defaults.getDiagnosticsOptions();i||r.push(t.getSyntacticDiagnostics(e.uri.toString())),o||r.push(t.getSemanticDiagnostics(e.uri.toString())),s||r.push(t.getSuggestionDiagnostics(e.uri.toString()));let c=await Promise.all(r);if(!c||e.isDisposed())return;let l=c.reduce((e,t)=>t.concat(e),[]).filter(e=>(this._defaults.getDiagnosticsOptions().diagnosticCodesToIgnore||[]).indexOf(e.code)===-1),u=l.map(e=>e.relatedInformation||[]).reduce((e,t)=>t.concat(e),[]).map(e=>e.file?n.parse(e.file.fileName):null);await this._libFiles.fetchLibFilesIfNecessary(u),!e.isDisposed()&&a.setModelMarkers(e,this._selector,l.map(t=>this._convertDiagnostics(e,t)))}_convertDiagnostics(e,t){let n=t.start||0,r=t.length||1,{lineNumber:a,column:o}=e.getPositionAt(n),{lineNumber:s,column:c}=e.getPositionAt(n+r),l=[];return t.reportsUnnecessary&&l.push(i.Unnecessary),t.reportsDeprecated&&l.push(i.Deprecated),{severity:this._tsDiagnosticCategoryToMarkerSeverity(t.category),startLineNumber:a,startColumn:o,endLineNumber:s,endColumn:c,message:u(t.messageText,`
2
2
  `),code:t.code.toString(),tags:l,relatedInformation:this._convertRelatedInformation(e,t.relatedInformation)}}_convertRelatedInformation(e,t){if(!t)return[];let n=[];return t.forEach(t=>{let r=e;if(t.file&&(r=this._libFiles.getOrCreateModel(t.file.fileName)),!r)return;let i=t.start||0,a=t.length||1,{lineNumber:o,column:s}=r.getPositionAt(i),{lineNumber:c,column:l}=r.getPositionAt(i+a);n.push({resource:r.uri,startLineNumber:o,startColumn:s,endLineNumber:c,endColumn:l,message:u(t.messageText,`
3
3
  `)})}),n}_tsDiagnosticCategoryToMarkerSeverity(t){switch(t){case 1:return e.Error;case 3:return e.Info;case 0:return e.Warning;case 2:return e.Hint}return e.Info}},h=class e extends f{get triggerCharacters(){return[`.`]}async provideCompletionItems(n,i,a,o){let s=n.getWordUntilPosition(i),c=new t(i.lineNumber,s.startColumn,i.lineNumber,s.endColumn),l=n.uri,u=n.getOffsetAt(i),d=await this._worker(l);if(n.isDisposed())return;let f=await d.getCompletionsAtPosition(l.toString(),u);if(!(!f||n.isDisposed()))return{suggestions:f.entries.map(a=>{let o=c;if(a.replacementSpan){let e=n.getPositionAt(a.replacementSpan.start),r=n.getPositionAt(a.replacementSpan.start+a.replacementSpan.length);o=new t(e.lineNumber,e.column,r.lineNumber,r.column)}let s=[];return a.kindModifiers!==void 0&&a.kindModifiers.indexOf(`deprecated`)!==-1&&s.push(r.CompletionItemTag.Deprecated),{uri:l,position:i,offset:u,range:o,label:a.name,insertText:a.name,sortText:a.sortText,kind:e.convertKind(a.kind),tags:s}})}}async resolveCompletionItem(t,n){let r=t,i=r.uri,a=r.position,o=r.offset,s=await(await this._worker(i)).getCompletionEntryDetails(i.toString(),o,r.label);return s?{uri:i,position:a,label:s.name,kind:e.convertKind(s.kind),detail:d(s.displayParts),documentation:{value:e.createDocumentationString(s)}}:r}static convertKind(e){switch(e){case C.primitiveType:case C.keyword:return r.CompletionItemKind.Keyword;case C.variable:case C.localVariable:return r.CompletionItemKind.Variable;case C.memberVariable:case C.memberGetAccessor:case C.memberSetAccessor:return r.CompletionItemKind.Field;case C.function:case C.memberFunction:case C.constructSignature:case C.callSignature:case C.indexSignature:return r.CompletionItemKind.Function;case C.enum:return r.CompletionItemKind.Enum;case C.module:return r.CompletionItemKind.Module;case C.class:return r.CompletionItemKind.Class;case C.interface:return r.CompletionItemKind.Interface;case C.warning:return r.CompletionItemKind.File}return r.CompletionItemKind.Property}static createDocumentationString(e){let t=d(e.documentation);if(e.tags)for(let n of e.tags)t+=`
4
4
 
@@ -9,4 +9,4 @@ ${g(n)}`;return t}};function g(e){let t=`*@${e.name}*`;if(e.name===`param`&&e.te
9
9
  `+c:``)}]}}},y=class extends f{async provideDocumentHighlights(e,t,n){let i=e.uri,a=e.getOffsetAt(t),o=await this._worker(i);if(e.isDisposed())return;let s=await o.getDocumentHighlights(i.toString(),a,[i.toString()]);if(!(!s||e.isDisposed()))return s.flatMap(t=>t.highlightSpans.map(t=>({range:this._textSpanToRange(e,t.textSpan),kind:t.kind===`writtenReference`?r.DocumentHighlightKind.Write:r.DocumentHighlightKind.Text})))}},b=class extends f{constructor(e,t){super(t),this._libFiles=e}async provideDefinition(e,t,r){let i=e.uri,a=e.getOffsetAt(t),o=await this._worker(i);if(e.isDisposed())return;let s=await o.getDefinitionAtPosition(i.toString(),a);if(!s||e.isDisposed()||(await this._libFiles.fetchLibFilesIfNecessary(s.map(e=>n.parse(e.fileName))),e.isDisposed()))return;let c=[];for(let e of s){let t=this._libFiles.getOrCreateModel(e.fileName);t&&c.push({uri:t.uri,range:this._textSpanToRange(t,e.textSpan)})}return c}},x=class extends f{constructor(e,t){super(t),this._libFiles=e}async provideReferences(e,t,r,i){let a=e.uri,o=e.getOffsetAt(t),s=await this._worker(a);if(e.isDisposed())return;let c=await s.getReferencesAtPosition(a.toString(),o);if(!c||e.isDisposed()||(await this._libFiles.fetchLibFilesIfNecessary(c.map(e=>n.parse(e.fileName))),e.isDisposed()))return;let l=[];for(let e of c){let t=this._libFiles.getOrCreateModel(e.fileName);t&&l.push({uri:t.uri,range:this._textSpanToRange(t,e.textSpan)})}return l}},S=class extends f{async provideDocumentSymbols(e,t){let n=e.uri,i=await this._worker(n);if(e.isDisposed())return;let a=await i.getNavigationTree(n.toString());if(!a||e.isDisposed())return;let o=(t,n)=>({name:t.text,detail:``,kind:w[t.kind]||r.SymbolKind.Variable,range:this._textSpanToRange(e,t.spans[0]),selectionRange:this._textSpanToRange(e,t.spans[0]),tags:[],children:t.childItems?.map(e=>o(e,t.text)),containerName:n});return a.childItems?a.childItems.map(e=>o(e)):[]}},C=class{};C.unknown=``,C.keyword=`keyword`,C.script=`script`,C.module=`module`,C.class=`class`,C.interface=`interface`,C.type=`type`,C.enum=`enum`,C.variable=`var`,C.localVariable=`local var`,C.function=`function`,C.localFunction=`local function`,C.memberFunction=`method`,C.memberGetAccessor=`getter`,C.memberSetAccessor=`setter`,C.memberVariable=`property`,C.constructorImplementation=`constructor`,C.callSignature=`call`,C.indexSignature=`index`,C.constructSignature=`construct`,C.parameter=`parameter`,C.typeParameter=`type parameter`,C.primitiveType=`primitive type`,C.label=`label`,C.alias=`alias`,C.const=`const`,C.let=`let`,C.warning=`warning`;var w=Object.create(null);w[C.module]=r.SymbolKind.Module,w[C.class]=r.SymbolKind.Class,w[C.enum]=r.SymbolKind.Enum,w[C.interface]=r.SymbolKind.Interface,w[C.memberFunction]=r.SymbolKind.Method,w[C.memberVariable]=r.SymbolKind.Property,w[C.memberGetAccessor]=r.SymbolKind.Property,w[C.memberSetAccessor]=r.SymbolKind.Property,w[C.variable]=r.SymbolKind.Variable,w[C.const]=r.SymbolKind.Variable,w[C.localVariable]=r.SymbolKind.Variable,w[C.variable]=r.SymbolKind.Variable,w[C.function]=r.SymbolKind.Function,w[C.localFunction]=r.SymbolKind.Function;var T=class extends f{static _convertOptions(e){return{ConvertTabsToSpaces:e.insertSpaces,TabSize:e.tabSize,IndentSize:e.tabSize,IndentStyle:2,NewLineCharacter:`
10
10
  `,InsertSpaceAfterCommaDelimiter:!0,InsertSpaceAfterSemicolonInForStatements:!0,InsertSpaceBeforeAndAfterBinaryOperators:!0,InsertSpaceAfterKeywordsInControlFlowStatements:!0,InsertSpaceAfterFunctionKeywordForAnonymousFunctions:!0,InsertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis:!1,InsertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets:!1,InsertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces:!1,PlaceOpenBraceOnNewLineForControlBlocks:!1,PlaceOpenBraceOnNewLineForFunctions:!1}}_convertTextChanges(e,t){return{text:t.newText,range:this._textSpanToRange(e,t.span)}}},E=class extends T{constructor(){super(...arguments),this.canFormatMultipleRanges=!1}async provideDocumentRangeFormattingEdits(e,t,n,r){let i=e.uri,a=e.getOffsetAt({lineNumber:t.startLineNumber,column:t.startColumn}),o=e.getOffsetAt({lineNumber:t.endLineNumber,column:t.endColumn}),s=await this._worker(i);if(e.isDisposed())return;let c=await s.getFormattingEditsForRange(i.toString(),a,o,T._convertOptions(n));if(!(!c||e.isDisposed()))return c.map(t=>this._convertTextChanges(e,t))}},D=class extends T{get autoFormatTriggerCharacters(){return[`;`,`}`,`
11
11
  `]}async provideOnTypeFormattingEdits(e,t,n,r,i){let a=e.uri,o=e.getOffsetAt(t),s=await this._worker(a);if(e.isDisposed())return;let c=await s.getFormattingEditsAfterKeystroke(a.toString(),o,n,T._convertOptions(r));if(!(!c||e.isDisposed()))return c.map(t=>this._convertTextChanges(e,t))}},O=class extends T{async provideCodeActions(e,t,n,r){let i=e.uri,a=e.getOffsetAt({lineNumber:t.startLineNumber,column:t.startColumn}),o=e.getOffsetAt({lineNumber:t.endLineNumber,column:t.endColumn}),s=T._convertOptions(e.getOptions()),c=n.markers.filter(e=>e.code).map(e=>e.code).map(Number),l=await this._worker(i);if(e.isDisposed())return;let u=await l.getCodeFixesAtPosition(i.toString(),a,o,c,s);return!u||e.isDisposed()?{actions:[],dispose:()=>{}}:{actions:u.filter(e=>e.changes.filter(e=>e.isNewFile).length===0).map(t=>this._tsCodeFixActionToMonacoCodeAction(e,n,t)),dispose:()=>{}}}_tsCodeFixActionToMonacoCodeAction(e,t,n){let r=[];for(let t of n.changes)for(let n of t.textChanges)r.push({resource:e.uri,versionId:void 0,textEdit:{range:this._textSpanToRange(e,n.span),text:n.newText}});return{title:n.description,edit:{edits:r},diagnostics:t.markers,kind:`quickfix`}}},k=class extends f{constructor(e,t){super(t),this._libFiles=e}async provideRenameEdits(e,t,n,r){let i=e.uri,a=i.toString(),o=e.getOffsetAt(t),s=await this._worker(i);if(e.isDisposed())return;let c=await s.getRenameInfo(a,o,{allowRenameOfImportPath:!1});if(c.canRename===!1)return{edits:[],rejectReason:c.localizedErrorMessage};if(c.fileToRename!==void 0)throw Error(`Renaming files is not supported.`);let l=await s.findRenameLocations(a,o,!1,!1,!1);if(!l||e.isDisposed())return;let u=[];for(let e of l){let t=this._libFiles.getOrCreateModel(e.fileName);if(t)u.push({resource:t.uri,versionId:void 0,textEdit:{range:this._textSpanToRange(t,e.textSpan),text:n}});else throw Error(`Unknown file ${e.fileName}.`)}return{edits:u}}},A=class extends f{async provideInlayHints(e,t,n){let r=e.uri,i=r.toString(),a=e.getOffsetAt({lineNumber:t.startLineNumber,column:t.startColumn}),o=e.getOffsetAt({lineNumber:t.endLineNumber,column:t.endColumn}),s=await this._worker(r);return e.isDisposed()?null:{hints:(await s.provideInlayHints(i,a,o)).map(t=>({...t,label:t.text,position:e.getPositionAt(t.position),kind:this._convertHintKind(t.kind)})),dispose:()=>{}}}_convertHintKind(e){switch(e){case`Parameter`:return r.InlayHintKind.Parameter;case`Type`:return r.InlayHintKind.Type;default:return r.InlayHintKind.Type}}},j,M;function N(e){M=L(e,`typescript`)}function P(e){j=L(e,`javascript`)}function F(){return new Promise((e,t)=>{if(!j)return t(`JavaScript not registered!`);e(j)})}function I(){return new Promise((e,t)=>{if(!M)return t(`TypeScript not registered!`);e(M)})}function L(e,t){let n=[],i=new c(t,e),a=(...e)=>i.getLanguageServiceWorker(...e),o=new p(a);function s(){let{modeConfiguration:i}=e;R(n),i.completionItems&&n.push(r.registerCompletionItemProvider(t,new h(a))),i.signatureHelp&&n.push(r.registerSignatureHelpProvider(t,new _(a))),i.hovers&&n.push(r.registerHoverProvider(t,new v(a))),i.documentHighlights&&n.push(r.registerDocumentHighlightProvider(t,new y(a))),i.definitions&&n.push(r.registerDefinitionProvider(t,new b(o,a))),i.references&&n.push(r.registerReferenceProvider(t,new x(o,a))),i.documentSymbols&&n.push(r.registerDocumentSymbolProvider(t,new S(a))),i.rename&&n.push(r.registerRenameProvider(t,new k(o,a))),i.documentRangeFormattingEdits&&n.push(r.registerDocumentRangeFormattingEditProvider(t,new E(a))),i.onTypeFormattingEdits&&n.push(r.registerOnTypeFormattingEditProvider(t,new D(a))),i.codeActions&&n.push(r.registerCodeActionProvider(t,new O(a))),i.inlayHints&&n.push(r.registerInlayHintsProvider(t,new A(a))),i.diagnostics&&n.push(new m(o,e,t,a))}return s(),a}function R(e){for(;e.length;)e.pop().dispose()}export{f as Adapter,O as CodeActionAdaptor,b as DefinitionAdapter,m as DiagnosticsAdapter,y as DocumentHighlightAdapter,E as FormatAdapter,T as FormatHelper,D as FormatOnTypeAdapter,A as InlayHintsAdapter,C as Kind,p as LibFiles,S as OutlineAdapter,v as QuickInfoAdapter,x as ReferenceAdapter,k as RenameAdapter,_ as SignatureHelpAdapter,h as SuggestAdapter,c as WorkerManager,u as flattenDiagnosticMessageText,F as getJavaScriptWorker,I as getTypeScriptWorker,P as setupJavaScript,N as setupTypeScript};
12
- //# sourceMappingURL=tsMode-D1DMKY7h.js.map
12
+ //# sourceMappingURL=tsMode-DT74tlkM.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tsMode-D1DMKY7h.js","names":[],"sources":["../../node_modules/.pnpm/monaco-editor@0.56.0/node_modules/monaco-editor/esm/vs/languages/features/typescript/workerManager.js","../../node_modules/.pnpm/monaco-editor@0.56.0/node_modules/monaco-editor/esm/vs/languages/features/typescript/lib/lib.index.js","../../node_modules/.pnpm/monaco-editor@0.56.0/node_modules/monaco-editor/esm/vs/languages/features/typescript/languageFeatures.js","../../node_modules/.pnpm/monaco-editor@0.56.0/node_modules/monaco-editor/esm/vs/languages/features/typescript/tsMode.js"],"sourcesContent":["import { editor } from '../../../editor/editor.api.js';\nimport { createWebWorker } from '../../../internal/common/workers.js';\n\nclass WorkerManager {\n constructor(_modeId, _defaults) {\n this._modeId = _modeId;\n this._defaults = _defaults;\n this._worker = null;\n this._client = null;\n this._configChangeListener = this._defaults.onDidChange(() => this._stopWorker());\n this._updateExtraLibsToken = 0;\n this._extraLibsChangeListener = this._defaults.onDidExtraLibsChange(\n () => this._updateExtraLibs()\n );\n }\n dispose() {\n this._configChangeListener.dispose();\n this._extraLibsChangeListener.dispose();\n this._stopWorker();\n }\n _stopWorker() {\n if (this._worker) {\n this._worker.dispose();\n this._worker = null;\n }\n this._client = null;\n }\n async _updateExtraLibs() {\n if (!this._worker) {\n return;\n }\n const myToken = ++this._updateExtraLibsToken;\n const proxy = await this._worker.getProxy();\n if (this._updateExtraLibsToken !== myToken) {\n return;\n }\n proxy.updateExtraLibs(this._defaults.getExtraLibs());\n }\n _getClient() {\n if (!this._client) {\n this._client = (async () => {\n this._worker = createWebWorker({\n // module that exports the create() method and returns a `TypeScriptWorker` instance\n moduleId: \"vs/language/typescript/tsWorker\",\n createWorker: () => new Worker(new URL('ts.worker.js', import.meta.url), { type: \"module\" }),\n label: this._modeId,\n keepIdleModels: true,\n // passed in to the create() method\n createData: {\n compilerOptions: this._defaults.getCompilerOptions(),\n extraLibs: this._defaults.getExtraLibs(),\n customWorkerPath: this._defaults.workerOptions.customWorkerPath,\n inlayHintsOptions: this._defaults.inlayHintsOptions\n }\n });\n if (this._defaults.getEagerModelSync()) {\n return await this._worker.withSyncedResources(\n editor.getModels().filter((model) => model.getLanguageId() === this._modeId).map((model) => model.uri)\n );\n }\n return await this._worker.getProxy();\n })();\n }\n return this._client;\n }\n async getLanguageServiceWorker(...resources) {\n const client = await this._getClient();\n if (this._worker) {\n await this._worker.withSyncedResources(resources);\n }\n return client;\n }\n}\n\nexport { WorkerManager };\n","const libFileSet = {};\nlibFileSet[\"lib.d.ts\"] = true;\nlibFileSet[\"lib.decorators.d.ts\"] = true;\nlibFileSet[\"lib.decorators.legacy.d.ts\"] = true;\nlibFileSet[\"lib.dom.asynciterable.d.ts\"] = true;\nlibFileSet[\"lib.dom.d.ts\"] = true;\nlibFileSet[\"lib.dom.iterable.d.ts\"] = true;\nlibFileSet[\"lib.es2015.collection.d.ts\"] = true;\nlibFileSet[\"lib.es2015.core.d.ts\"] = true;\nlibFileSet[\"lib.es2015.d.ts\"] = true;\nlibFileSet[\"lib.es2015.generator.d.ts\"] = true;\nlibFileSet[\"lib.es2015.iterable.d.ts\"] = true;\nlibFileSet[\"lib.es2015.promise.d.ts\"] = true;\nlibFileSet[\"lib.es2015.proxy.d.ts\"] = true;\nlibFileSet[\"lib.es2015.reflect.d.ts\"] = true;\nlibFileSet[\"lib.es2015.symbol.d.ts\"] = true;\nlibFileSet[\"lib.es2015.symbol.wellknown.d.ts\"] = true;\nlibFileSet[\"lib.es2016.array.include.d.ts\"] = true;\nlibFileSet[\"lib.es2016.d.ts\"] = true;\nlibFileSet[\"lib.es2016.full.d.ts\"] = true;\nlibFileSet[\"lib.es2016.intl.d.ts\"] = true;\nlibFileSet[\"lib.es2017.arraybuffer.d.ts\"] = true;\nlibFileSet[\"lib.es2017.d.ts\"] = true;\nlibFileSet[\"lib.es2017.date.d.ts\"] = true;\nlibFileSet[\"lib.es2017.full.d.ts\"] = true;\nlibFileSet[\"lib.es2017.intl.d.ts\"] = true;\nlibFileSet[\"lib.es2017.object.d.ts\"] = true;\nlibFileSet[\"lib.es2017.sharedmemory.d.ts\"] = true;\nlibFileSet[\"lib.es2017.string.d.ts\"] = true;\nlibFileSet[\"lib.es2017.typedarrays.d.ts\"] = true;\nlibFileSet[\"lib.es2018.asyncgenerator.d.ts\"] = true;\nlibFileSet[\"lib.es2018.asynciterable.d.ts\"] = true;\nlibFileSet[\"lib.es2018.d.ts\"] = true;\nlibFileSet[\"lib.es2018.full.d.ts\"] = true;\nlibFileSet[\"lib.es2018.intl.d.ts\"] = true;\nlibFileSet[\"lib.es2018.promise.d.ts\"] = true;\nlibFileSet[\"lib.es2018.regexp.d.ts\"] = true;\nlibFileSet[\"lib.es2019.array.d.ts\"] = true;\nlibFileSet[\"lib.es2019.d.ts\"] = true;\nlibFileSet[\"lib.es2019.full.d.ts\"] = true;\nlibFileSet[\"lib.es2019.intl.d.ts\"] = true;\nlibFileSet[\"lib.es2019.object.d.ts\"] = true;\nlibFileSet[\"lib.es2019.string.d.ts\"] = true;\nlibFileSet[\"lib.es2019.symbol.d.ts\"] = true;\nlibFileSet[\"lib.es2020.bigint.d.ts\"] = true;\nlibFileSet[\"lib.es2020.d.ts\"] = true;\nlibFileSet[\"lib.es2020.date.d.ts\"] = true;\nlibFileSet[\"lib.es2020.full.d.ts\"] = true;\nlibFileSet[\"lib.es2020.intl.d.ts\"] = true;\nlibFileSet[\"lib.es2020.number.d.ts\"] = true;\nlibFileSet[\"lib.es2020.promise.d.ts\"] = true;\nlibFileSet[\"lib.es2020.sharedmemory.d.ts\"] = true;\nlibFileSet[\"lib.es2020.string.d.ts\"] = true;\nlibFileSet[\"lib.es2020.symbol.wellknown.d.ts\"] = true;\nlibFileSet[\"lib.es2021.d.ts\"] = true;\nlibFileSet[\"lib.es2021.full.d.ts\"] = true;\nlibFileSet[\"lib.es2021.intl.d.ts\"] = true;\nlibFileSet[\"lib.es2021.promise.d.ts\"] = true;\nlibFileSet[\"lib.es2021.string.d.ts\"] = true;\nlibFileSet[\"lib.es2021.weakref.d.ts\"] = true;\nlibFileSet[\"lib.es2022.array.d.ts\"] = true;\nlibFileSet[\"lib.es2022.d.ts\"] = true;\nlibFileSet[\"lib.es2022.error.d.ts\"] = true;\nlibFileSet[\"lib.es2022.full.d.ts\"] = true;\nlibFileSet[\"lib.es2022.intl.d.ts\"] = true;\nlibFileSet[\"lib.es2022.object.d.ts\"] = true;\nlibFileSet[\"lib.es2022.regexp.d.ts\"] = true;\nlibFileSet[\"lib.es2022.string.d.ts\"] = true;\nlibFileSet[\"lib.es2023.array.d.ts\"] = true;\nlibFileSet[\"lib.es2023.collection.d.ts\"] = true;\nlibFileSet[\"lib.es2023.d.ts\"] = true;\nlibFileSet[\"lib.es2023.full.d.ts\"] = true;\nlibFileSet[\"lib.es2023.intl.d.ts\"] = true;\nlibFileSet[\"lib.es2024.arraybuffer.d.ts\"] = true;\nlibFileSet[\"lib.es2024.collection.d.ts\"] = true;\nlibFileSet[\"lib.es2024.d.ts\"] = true;\nlibFileSet[\"lib.es2024.full.d.ts\"] = true;\nlibFileSet[\"lib.es2024.object.d.ts\"] = true;\nlibFileSet[\"lib.es2024.promise.d.ts\"] = true;\nlibFileSet[\"lib.es2024.regexp.d.ts\"] = true;\nlibFileSet[\"lib.es2024.sharedmemory.d.ts\"] = true;\nlibFileSet[\"lib.es2024.string.d.ts\"] = true;\nlibFileSet[\"lib.es5.d.ts\"] = true;\nlibFileSet[\"lib.es6.d.ts\"] = true;\nlibFileSet[\"lib.esnext.array.d.ts\"] = true;\nlibFileSet[\"lib.esnext.collection.d.ts\"] = true;\nlibFileSet[\"lib.esnext.d.ts\"] = true;\nlibFileSet[\"lib.esnext.decorators.d.ts\"] = true;\nlibFileSet[\"lib.esnext.disposable.d.ts\"] = true;\nlibFileSet[\"lib.esnext.error.d.ts\"] = true;\nlibFileSet[\"lib.esnext.float16.d.ts\"] = true;\nlibFileSet[\"lib.esnext.full.d.ts\"] = true;\nlibFileSet[\"lib.esnext.intl.d.ts\"] = true;\nlibFileSet[\"lib.esnext.iterator.d.ts\"] = true;\nlibFileSet[\"lib.esnext.promise.d.ts\"] = true;\nlibFileSet[\"lib.esnext.sharedmemory.d.ts\"] = true;\nlibFileSet[\"lib.scripthost.d.ts\"] = true;\nlibFileSet[\"lib.webworker.asynciterable.d.ts\"] = true;\nlibFileSet[\"lib.webworker.d.ts\"] = true;\nlibFileSet[\"lib.webworker.importscripts.d.ts\"] = true;\nlibFileSet[\"lib.webworker.iterable.d.ts\"] = true;\n\nexport { libFileSet };\n","import { typescriptDefaults } from './register.js';\nimport { libFileSet } from './lib/lib.index.js';\nimport { Uri, editor, MarkerTag, MarkerSeverity, Range, languages } from '../../../editor/editor.api.js';\n\nfunction flattenDiagnosticMessageText(diag, newLine, indent = 0) {\n if (typeof diag === \"string\") {\n return diag;\n } else if (diag === void 0) {\n return \"\";\n }\n let result = \"\";\n if (indent) {\n result += newLine;\n for (let i = 0; i < indent; i++) {\n result += \" \";\n }\n }\n result += diag.messageText;\n indent++;\n if (diag.next) {\n for (const kid of diag.next) {\n result += flattenDiagnosticMessageText(kid, newLine, indent);\n }\n }\n return result;\n}\nfunction displayPartsToString(displayParts) {\n if (displayParts) {\n return displayParts.map((displayPart) => displayPart.text).join(\"\");\n }\n return \"\";\n}\nclass Adapter {\n constructor(_worker) {\n this._worker = _worker;\n }\n // protected _positionToOffset(model: editor.ITextModel, position: monaco.IPosition): number {\n // \treturn model.getOffsetAt(position);\n // }\n // protected _offsetToPosition(model: editor.ITextModel, offset: number): monaco.IPosition {\n // \treturn model.getPositionAt(offset);\n // }\n _textSpanToRange(model, span) {\n let p1 = model.getPositionAt(span.start);\n let p2 = model.getPositionAt(span.start + span.length);\n let { lineNumber: startLineNumber, column: startColumn } = p1;\n let { lineNumber: endLineNumber, column: endColumn } = p2;\n return { startLineNumber, startColumn, endLineNumber, endColumn };\n }\n}\nclass LibFiles {\n constructor(_worker) {\n this._worker = _worker;\n this._libFiles = {};\n this._hasFetchedLibFiles = false;\n this._fetchLibFilesPromise = null;\n }\n isLibFile(uri) {\n if (!uri) {\n return false;\n }\n if (uri.path.indexOf(\"/lib.\") === 0) {\n return !!libFileSet[uri.path.slice(1)];\n }\n return false;\n }\n getOrCreateModel(fileName) {\n const uri = Uri.parse(fileName);\n const model = editor.getModel(uri);\n if (model) {\n return model;\n }\n if (this.isLibFile(uri) && this._hasFetchedLibFiles) {\n return editor.createModel(this._libFiles[uri.path.slice(1)], \"typescript\", uri);\n }\n const matchedLibFile = typescriptDefaults.getExtraLibs()[fileName];\n if (matchedLibFile) {\n return editor.createModel(matchedLibFile.content, \"typescript\", uri);\n }\n return null;\n }\n _containsLibFile(uris) {\n for (let uri of uris) {\n if (this.isLibFile(uri)) {\n return true;\n }\n }\n return false;\n }\n async fetchLibFilesIfNecessary(uris) {\n if (!this._containsLibFile(uris)) {\n return;\n }\n await this._fetchLibFiles();\n }\n _fetchLibFiles() {\n if (!this._fetchLibFilesPromise) {\n this._fetchLibFilesPromise = this._worker().then((w) => w.getLibFiles()).then((libFiles) => {\n this._hasFetchedLibFiles = true;\n this._libFiles = libFiles;\n });\n }\n return this._fetchLibFilesPromise;\n }\n}\nclass DiagnosticsAdapter extends Adapter {\n constructor(_libFiles, _defaults, _selector, worker) {\n super(worker);\n this._libFiles = _libFiles;\n this._defaults = _defaults;\n this._selector = _selector;\n this._disposables = [];\n this._listener = /* @__PURE__ */ Object.create(null);\n const onModelAdd = (model) => {\n if (model.getLanguageId() !== _selector) {\n return;\n }\n const maybeValidate = () => {\n const { onlyVisible } = this._defaults.getDiagnosticsOptions();\n if (onlyVisible) {\n if (model.isAttachedToEditor()) {\n this._doValidate(model);\n }\n } else {\n this._doValidate(model);\n }\n };\n let handle;\n const changeSubscription = model.onDidChangeContent(() => {\n clearTimeout(handle);\n handle = window.setTimeout(maybeValidate, 500);\n });\n const visibleSubscription = model.onDidChangeAttached(() => {\n const { onlyVisible } = this._defaults.getDiagnosticsOptions();\n if (onlyVisible) {\n if (model.isAttachedToEditor()) {\n maybeValidate();\n } else {\n editor.setModelMarkers(model, this._selector, []);\n }\n }\n });\n this._listener[model.uri.toString()] = {\n dispose() {\n changeSubscription.dispose();\n visibleSubscription.dispose();\n clearTimeout(handle);\n }\n };\n maybeValidate();\n };\n const onModelRemoved = (model) => {\n editor.setModelMarkers(model, this._selector, []);\n const key = model.uri.toString();\n if (this._listener[key]) {\n this._listener[key].dispose();\n delete this._listener[key];\n }\n };\n this._disposables.push(\n editor.onDidCreateModel((model) => onModelAdd(model))\n );\n this._disposables.push(editor.onWillDisposeModel(onModelRemoved));\n this._disposables.push(\n editor.onDidChangeModelLanguage((event) => {\n onModelRemoved(event.model);\n onModelAdd(event.model);\n })\n );\n this._disposables.push({\n dispose() {\n for (const model of editor.getModels()) {\n onModelRemoved(model);\n }\n }\n });\n const recomputeDiagostics = () => {\n for (const model of editor.getModels()) {\n onModelRemoved(model);\n onModelAdd(model);\n }\n };\n this._disposables.push(this._defaults.onDidChange(recomputeDiagostics));\n this._disposables.push(this._defaults.onDidExtraLibsChange(recomputeDiagostics));\n editor.getModels().forEach((model) => onModelAdd(model));\n }\n dispose() {\n this._disposables.forEach((d) => d && d.dispose());\n this._disposables = [];\n }\n async _doValidate(model) {\n const worker = await this._worker(model.uri);\n if (model.isDisposed()) {\n return;\n }\n const promises = [];\n const { noSyntaxValidation, noSemanticValidation, noSuggestionDiagnostics } = this._defaults.getDiagnosticsOptions();\n if (!noSyntaxValidation) {\n promises.push(worker.getSyntacticDiagnostics(model.uri.toString()));\n }\n if (!noSemanticValidation) {\n promises.push(worker.getSemanticDiagnostics(model.uri.toString()));\n }\n if (!noSuggestionDiagnostics) {\n promises.push(worker.getSuggestionDiagnostics(model.uri.toString()));\n }\n const allDiagnostics = await Promise.all(promises);\n if (!allDiagnostics || model.isDisposed()) {\n return;\n }\n const diagnostics = allDiagnostics.reduce((p, c) => c.concat(p), []).filter(\n (d) => (this._defaults.getDiagnosticsOptions().diagnosticCodesToIgnore || []).indexOf(d.code) === -1\n );\n const relatedUris = diagnostics.map((d) => d.relatedInformation || []).reduce((p, c) => c.concat(p), []).map(\n (relatedInformation) => relatedInformation.file ? Uri.parse(relatedInformation.file.fileName) : null\n );\n await this._libFiles.fetchLibFilesIfNecessary(relatedUris);\n if (model.isDisposed()) {\n return;\n }\n editor.setModelMarkers(\n model,\n this._selector,\n diagnostics.map((d) => this._convertDiagnostics(model, d))\n );\n }\n _convertDiagnostics(model, diag) {\n const diagStart = diag.start || 0;\n const diagLength = diag.length || 1;\n const { lineNumber: startLineNumber, column: startColumn } = model.getPositionAt(diagStart);\n const { lineNumber: endLineNumber, column: endColumn } = model.getPositionAt(\n diagStart + diagLength\n );\n const tags = [];\n if (diag.reportsUnnecessary) {\n tags.push(MarkerTag.Unnecessary);\n }\n if (diag.reportsDeprecated) {\n tags.push(MarkerTag.Deprecated);\n }\n return {\n severity: this._tsDiagnosticCategoryToMarkerSeverity(diag.category),\n startLineNumber,\n startColumn,\n endLineNumber,\n endColumn,\n message: flattenDiagnosticMessageText(diag.messageText, \"\\n\"),\n code: diag.code.toString(),\n tags,\n relatedInformation: this._convertRelatedInformation(model, diag.relatedInformation)\n };\n }\n _convertRelatedInformation(model, relatedInformation) {\n if (!relatedInformation) {\n return [];\n }\n const result = [];\n relatedInformation.forEach((info) => {\n let relatedResource = model;\n if (info.file) {\n relatedResource = this._libFiles.getOrCreateModel(info.file.fileName);\n }\n if (!relatedResource) {\n return;\n }\n const infoStart = info.start || 0;\n const infoLength = info.length || 1;\n const { lineNumber: startLineNumber, column: startColumn } = relatedResource.getPositionAt(infoStart);\n const { lineNumber: endLineNumber, column: endColumn } = relatedResource.getPositionAt(\n infoStart + infoLength\n );\n result.push({\n resource: relatedResource.uri,\n startLineNumber,\n startColumn,\n endLineNumber,\n endColumn,\n message: flattenDiagnosticMessageText(info.messageText, \"\\n\")\n });\n });\n return result;\n }\n _tsDiagnosticCategoryToMarkerSeverity(category) {\n switch (category) {\n case 1 /* Error */:\n return MarkerSeverity.Error;\n case 3 /* Message */:\n return MarkerSeverity.Info;\n case 0 /* Warning */:\n return MarkerSeverity.Warning;\n case 2 /* Suggestion */:\n return MarkerSeverity.Hint;\n }\n return MarkerSeverity.Info;\n }\n}\nclass SuggestAdapter extends Adapter {\n get triggerCharacters() {\n return [\".\"];\n }\n async provideCompletionItems(model, position, _context, token) {\n const wordInfo = model.getWordUntilPosition(position);\n const wordRange = new Range(\n position.lineNumber,\n wordInfo.startColumn,\n position.lineNumber,\n wordInfo.endColumn\n );\n const resource = model.uri;\n const offset = model.getOffsetAt(position);\n const worker = await this._worker(resource);\n if (model.isDisposed()) {\n return;\n }\n const info = await worker.getCompletionsAtPosition(resource.toString(), offset);\n if (!info || model.isDisposed()) {\n return;\n }\n const suggestions = info.entries.map((entry) => {\n let range = wordRange;\n if (entry.replacementSpan) {\n const p1 = model.getPositionAt(entry.replacementSpan.start);\n const p2 = model.getPositionAt(entry.replacementSpan.start + entry.replacementSpan.length);\n range = new Range(p1.lineNumber, p1.column, p2.lineNumber, p2.column);\n }\n const tags = [];\n if (entry.kindModifiers !== void 0 && entry.kindModifiers.indexOf(\"deprecated\") !== -1) {\n tags.push(languages.CompletionItemTag.Deprecated);\n }\n return {\n uri: resource,\n position,\n offset,\n range,\n label: entry.name,\n insertText: entry.name,\n sortText: entry.sortText,\n kind: SuggestAdapter.convertKind(entry.kind),\n tags\n };\n });\n return {\n suggestions\n };\n }\n async resolveCompletionItem(item, token) {\n const myItem = item;\n const resource = myItem.uri;\n const position = myItem.position;\n const offset = myItem.offset;\n const worker = await this._worker(resource);\n const details = await worker.getCompletionEntryDetails(\n resource.toString(),\n offset,\n myItem.label\n );\n if (!details) {\n return myItem;\n }\n return {\n uri: resource,\n position,\n label: details.name,\n kind: SuggestAdapter.convertKind(details.kind),\n detail: displayPartsToString(details.displayParts),\n documentation: {\n value: SuggestAdapter.createDocumentationString(details)\n }\n };\n }\n static convertKind(kind) {\n switch (kind) {\n case Kind.primitiveType:\n case Kind.keyword:\n return languages.CompletionItemKind.Keyword;\n case Kind.variable:\n case Kind.localVariable:\n return languages.CompletionItemKind.Variable;\n case Kind.memberVariable:\n case Kind.memberGetAccessor:\n case Kind.memberSetAccessor:\n return languages.CompletionItemKind.Field;\n case Kind.function:\n case Kind.memberFunction:\n case Kind.constructSignature:\n case Kind.callSignature:\n case Kind.indexSignature:\n return languages.CompletionItemKind.Function;\n case Kind.enum:\n return languages.CompletionItemKind.Enum;\n case Kind.module:\n return languages.CompletionItemKind.Module;\n case Kind.class:\n return languages.CompletionItemKind.Class;\n case Kind.interface:\n return languages.CompletionItemKind.Interface;\n case Kind.warning:\n return languages.CompletionItemKind.File;\n }\n return languages.CompletionItemKind.Property;\n }\n static createDocumentationString(details) {\n let documentationString = displayPartsToString(details.documentation);\n if (details.tags) {\n for (const tag of details.tags) {\n documentationString += `\n\n${tagToString(tag)}`;\n }\n }\n return documentationString;\n }\n}\nfunction tagToString(tag) {\n let tagLabel = `*@${tag.name}*`;\n if (tag.name === \"param\" && tag.text) {\n const [paramName, ...rest] = tag.text;\n tagLabel += `\\`${paramName.text}\\``;\n if (rest.length > 0) tagLabel += ` \\u2014 ${rest.map((r) => r.text).join(\" \")}`;\n } else if (Array.isArray(tag.text)) {\n tagLabel += ` \\u2014 ${tag.text.map((r) => r.text).join(\" \")}`;\n } else if (tag.text) {\n tagLabel += ` \\u2014 ${tag.text}`;\n }\n return tagLabel;\n}\nclass SignatureHelpAdapter extends Adapter {\n constructor() {\n super(...arguments);\n this.signatureHelpTriggerCharacters = [\"(\", \",\"];\n }\n static _toSignatureHelpTriggerReason(context) {\n switch (context.triggerKind) {\n case languages.SignatureHelpTriggerKind.TriggerCharacter:\n if (context.triggerCharacter) {\n if (context.isRetrigger) {\n return { kind: \"retrigger\", triggerCharacter: context.triggerCharacter };\n } else {\n return { kind: \"characterTyped\", triggerCharacter: context.triggerCharacter };\n }\n } else {\n return { kind: \"invoked\" };\n }\n case languages.SignatureHelpTriggerKind.ContentChange:\n return context.isRetrigger ? { kind: \"retrigger\" } : { kind: \"invoked\" };\n case languages.SignatureHelpTriggerKind.Invoke:\n default:\n return { kind: \"invoked\" };\n }\n }\n async provideSignatureHelp(model, position, token, context) {\n const resource = model.uri;\n const offset = model.getOffsetAt(position);\n const worker = await this._worker(resource);\n if (model.isDisposed()) {\n return;\n }\n const info = await worker.getSignatureHelpItems(resource.toString(), offset, {\n triggerReason: SignatureHelpAdapter._toSignatureHelpTriggerReason(context)\n });\n if (!info || model.isDisposed()) {\n return;\n }\n const ret = {\n activeSignature: info.selectedItemIndex,\n activeParameter: info.argumentIndex,\n signatures: []\n };\n info.items.forEach((item) => {\n const signature = {\n label: \"\",\n parameters: []\n };\n signature.documentation = {\n value: displayPartsToString(item.documentation)\n };\n signature.label += displayPartsToString(item.prefixDisplayParts);\n item.parameters.forEach((p, i, a) => {\n const label = displayPartsToString(p.displayParts);\n const parameter = {\n label,\n documentation: {\n value: displayPartsToString(p.documentation)\n }\n };\n signature.label += label;\n signature.parameters.push(parameter);\n if (i < a.length - 1) {\n signature.label += displayPartsToString(item.separatorDisplayParts);\n }\n });\n signature.label += displayPartsToString(item.suffixDisplayParts);\n ret.signatures.push(signature);\n });\n return {\n value: ret,\n dispose() {\n }\n };\n }\n}\nclass QuickInfoAdapter extends Adapter {\n async provideHover(model, position, token) {\n const resource = model.uri;\n const offset = model.getOffsetAt(position);\n const worker = await this._worker(resource);\n if (model.isDisposed()) {\n return;\n }\n const info = await worker.getQuickInfoAtPosition(resource.toString(), offset);\n if (!info || model.isDisposed()) {\n return;\n }\n const documentation = displayPartsToString(info.documentation);\n const tags = info.tags ? info.tags.map((tag) => tagToString(tag)).join(\" \\n\\n\") : \"\";\n const contents = displayPartsToString(info.displayParts);\n return {\n range: this._textSpanToRange(model, info.textSpan),\n contents: [\n {\n value: \"```typescript\\n\" + contents + \"\\n```\\n\"\n },\n {\n value: documentation + (tags ? \"\\n\\n\" + tags : \"\")\n }\n ]\n };\n }\n}\nclass DocumentHighlightAdapter extends Adapter {\n async provideDocumentHighlights(model, position, token) {\n const resource = model.uri;\n const offset = model.getOffsetAt(position);\n const worker = await this._worker(resource);\n if (model.isDisposed()) {\n return;\n }\n const entries = await worker.getDocumentHighlights(resource.toString(), offset, [\n resource.toString()\n ]);\n if (!entries || model.isDisposed()) {\n return;\n }\n return entries.flatMap((entry) => {\n return entry.highlightSpans.map((highlightSpans) => {\n return {\n range: this._textSpanToRange(model, highlightSpans.textSpan),\n kind: highlightSpans.kind === \"writtenReference\" ? languages.DocumentHighlightKind.Write : languages.DocumentHighlightKind.Text\n };\n });\n });\n }\n}\nclass DefinitionAdapter extends Adapter {\n constructor(_libFiles, worker) {\n super(worker);\n this._libFiles = _libFiles;\n }\n async provideDefinition(model, position, token) {\n const resource = model.uri;\n const offset = model.getOffsetAt(position);\n const worker = await this._worker(resource);\n if (model.isDisposed()) {\n return;\n }\n const entries = await worker.getDefinitionAtPosition(resource.toString(), offset);\n if (!entries || model.isDisposed()) {\n return;\n }\n await this._libFiles.fetchLibFilesIfNecessary(\n entries.map((entry) => Uri.parse(entry.fileName))\n );\n if (model.isDisposed()) {\n return;\n }\n const result = [];\n for (let entry of entries) {\n const refModel = this._libFiles.getOrCreateModel(entry.fileName);\n if (refModel) {\n result.push({\n uri: refModel.uri,\n range: this._textSpanToRange(refModel, entry.textSpan)\n });\n }\n }\n return result;\n }\n}\nclass ReferenceAdapter extends Adapter {\n constructor(_libFiles, worker) {\n super(worker);\n this._libFiles = _libFiles;\n }\n async provideReferences(model, position, context, token) {\n const resource = model.uri;\n const offset = model.getOffsetAt(position);\n const worker = await this._worker(resource);\n if (model.isDisposed()) {\n return;\n }\n const entries = await worker.getReferencesAtPosition(resource.toString(), offset);\n if (!entries || model.isDisposed()) {\n return;\n }\n await this._libFiles.fetchLibFilesIfNecessary(\n entries.map((entry) => Uri.parse(entry.fileName))\n );\n if (model.isDisposed()) {\n return;\n }\n const result = [];\n for (let entry of entries) {\n const refModel = this._libFiles.getOrCreateModel(entry.fileName);\n if (refModel) {\n result.push({\n uri: refModel.uri,\n range: this._textSpanToRange(refModel, entry.textSpan)\n });\n }\n }\n return result;\n }\n}\nclass OutlineAdapter extends Adapter {\n async provideDocumentSymbols(model, token) {\n const resource = model.uri;\n const worker = await this._worker(resource);\n if (model.isDisposed()) {\n return;\n }\n const root = await worker.getNavigationTree(resource.toString());\n if (!root || model.isDisposed()) {\n return;\n }\n const convert = (item, containerLabel) => {\n const result2 = {\n name: item.text,\n detail: \"\",\n kind: outlineTypeTable[item.kind] || languages.SymbolKind.Variable,\n range: this._textSpanToRange(model, item.spans[0]),\n selectionRange: this._textSpanToRange(model, item.spans[0]),\n tags: [],\n children: item.childItems?.map((child) => convert(child, item.text)),\n containerName: containerLabel\n };\n return result2;\n };\n const result = root.childItems ? root.childItems.map((item) => convert(item)) : [];\n return result;\n }\n}\nclass Kind {\n}\nKind.unknown = \"\";\nKind.keyword = \"keyword\";\nKind.script = \"script\";\nKind.module = \"module\";\nKind.class = \"class\";\nKind.interface = \"interface\";\nKind.type = \"type\";\nKind.enum = \"enum\";\nKind.variable = \"var\";\nKind.localVariable = \"local var\";\nKind.function = \"function\";\nKind.localFunction = \"local function\";\nKind.memberFunction = \"method\";\nKind.memberGetAccessor = \"getter\";\nKind.memberSetAccessor = \"setter\";\nKind.memberVariable = \"property\";\nKind.constructorImplementation = \"constructor\";\nKind.callSignature = \"call\";\nKind.indexSignature = \"index\";\nKind.constructSignature = \"construct\";\nKind.parameter = \"parameter\";\nKind.typeParameter = \"type parameter\";\nKind.primitiveType = \"primitive type\";\nKind.label = \"label\";\nKind.alias = \"alias\";\nKind.const = \"const\";\nKind.let = \"let\";\nKind.warning = \"warning\";\nlet outlineTypeTable = /* @__PURE__ */ Object.create(null);\noutlineTypeTable[Kind.module] = languages.SymbolKind.Module;\noutlineTypeTable[Kind.class] = languages.SymbolKind.Class;\noutlineTypeTable[Kind.enum] = languages.SymbolKind.Enum;\noutlineTypeTable[Kind.interface] = languages.SymbolKind.Interface;\noutlineTypeTable[Kind.memberFunction] = languages.SymbolKind.Method;\noutlineTypeTable[Kind.memberVariable] = languages.SymbolKind.Property;\noutlineTypeTable[Kind.memberGetAccessor] = languages.SymbolKind.Property;\noutlineTypeTable[Kind.memberSetAccessor] = languages.SymbolKind.Property;\noutlineTypeTable[Kind.variable] = languages.SymbolKind.Variable;\noutlineTypeTable[Kind.const] = languages.SymbolKind.Variable;\noutlineTypeTable[Kind.localVariable] = languages.SymbolKind.Variable;\noutlineTypeTable[Kind.variable] = languages.SymbolKind.Variable;\noutlineTypeTable[Kind.function] = languages.SymbolKind.Function;\noutlineTypeTable[Kind.localFunction] = languages.SymbolKind.Function;\nclass FormatHelper extends Adapter {\n static _convertOptions(options) {\n return {\n ConvertTabsToSpaces: options.insertSpaces,\n TabSize: options.tabSize,\n IndentSize: options.tabSize,\n IndentStyle: 2 /* Smart */,\n NewLineCharacter: \"\\n\",\n InsertSpaceAfterCommaDelimiter: true,\n InsertSpaceAfterSemicolonInForStatements: true,\n InsertSpaceBeforeAndAfterBinaryOperators: true,\n InsertSpaceAfterKeywordsInControlFlowStatements: true,\n InsertSpaceAfterFunctionKeywordForAnonymousFunctions: true,\n InsertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis: false,\n InsertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets: false,\n InsertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces: false,\n PlaceOpenBraceOnNewLineForControlBlocks: false,\n PlaceOpenBraceOnNewLineForFunctions: false\n };\n }\n _convertTextChanges(model, change) {\n return {\n text: change.newText,\n range: this._textSpanToRange(model, change.span)\n };\n }\n}\nclass FormatAdapter extends FormatHelper {\n constructor() {\n super(...arguments);\n this.canFormatMultipleRanges = false;\n }\n async provideDocumentRangeFormattingEdits(model, range, options, token) {\n const resource = model.uri;\n const startOffset = model.getOffsetAt({\n lineNumber: range.startLineNumber,\n column: range.startColumn\n });\n const endOffset = model.getOffsetAt({\n lineNumber: range.endLineNumber,\n column: range.endColumn\n });\n const worker = await this._worker(resource);\n if (model.isDisposed()) {\n return;\n }\n const edits = await worker.getFormattingEditsForRange(\n resource.toString(),\n startOffset,\n endOffset,\n FormatHelper._convertOptions(options)\n );\n if (!edits || model.isDisposed()) {\n return;\n }\n return edits.map((edit) => this._convertTextChanges(model, edit));\n }\n}\nclass FormatOnTypeAdapter extends FormatHelper {\n get autoFormatTriggerCharacters() {\n return [\";\", \"}\", \"\\n\"];\n }\n async provideOnTypeFormattingEdits(model, position, ch, options, token) {\n const resource = model.uri;\n const offset = model.getOffsetAt(position);\n const worker = await this._worker(resource);\n if (model.isDisposed()) {\n return;\n }\n const edits = await worker.getFormattingEditsAfterKeystroke(\n resource.toString(),\n offset,\n ch,\n FormatHelper._convertOptions(options)\n );\n if (!edits || model.isDisposed()) {\n return;\n }\n return edits.map((edit) => this._convertTextChanges(model, edit));\n }\n}\nclass CodeActionAdaptor extends FormatHelper {\n async provideCodeActions(model, range, context, token) {\n const resource = model.uri;\n const start = model.getOffsetAt({\n lineNumber: range.startLineNumber,\n column: range.startColumn\n });\n const end = model.getOffsetAt({\n lineNumber: range.endLineNumber,\n column: range.endColumn\n });\n const formatOptions = FormatHelper._convertOptions(model.getOptions());\n const errorCodes = context.markers.filter((m) => m.code).map((m) => m.code).map(Number);\n const worker = await this._worker(resource);\n if (model.isDisposed()) {\n return;\n }\n const codeFixes = await worker.getCodeFixesAtPosition(\n resource.toString(),\n start,\n end,\n errorCodes,\n formatOptions\n );\n if (!codeFixes || model.isDisposed()) {\n return { actions: [], dispose: () => {\n } };\n }\n const actions = codeFixes.filter((fix) => {\n return fix.changes.filter((change) => change.isNewFile).length === 0;\n }).map((fix) => {\n return this._tsCodeFixActionToMonacoCodeAction(model, context, fix);\n });\n return {\n actions,\n dispose: () => {\n }\n };\n }\n _tsCodeFixActionToMonacoCodeAction(model, context, codeFix) {\n const edits = [];\n for (const change of codeFix.changes) {\n for (const textChange of change.textChanges) {\n edits.push({\n resource: model.uri,\n versionId: void 0,\n textEdit: {\n range: this._textSpanToRange(model, textChange.span),\n text: textChange.newText\n }\n });\n }\n }\n const action = {\n title: codeFix.description,\n edit: { edits },\n diagnostics: context.markers,\n kind: \"quickfix\"\n };\n return action;\n }\n}\nclass RenameAdapter extends Adapter {\n constructor(_libFiles, worker) {\n super(worker);\n this._libFiles = _libFiles;\n }\n async provideRenameEdits(model, position, newName, token) {\n const resource = model.uri;\n const fileName = resource.toString();\n const offset = model.getOffsetAt(position);\n const worker = await this._worker(resource);\n if (model.isDisposed()) {\n return;\n }\n const renameInfo = await worker.getRenameInfo(fileName, offset, {\n allowRenameOfImportPath: false\n });\n if (renameInfo.canRename === false) {\n return {\n edits: [],\n rejectReason: renameInfo.localizedErrorMessage\n };\n }\n if (renameInfo.fileToRename !== void 0) {\n throw new Error(\"Renaming files is not supported.\");\n }\n const renameLocations = await worker.findRenameLocations(\n fileName,\n offset,\n /*strings*/\n false,\n /*comments*/\n false,\n /*prefixAndSuffix*/\n false\n );\n if (!renameLocations || model.isDisposed()) {\n return;\n }\n const edits = [];\n for (const renameLocation of renameLocations) {\n const model2 = this._libFiles.getOrCreateModel(renameLocation.fileName);\n if (model2) {\n edits.push({\n resource: model2.uri,\n versionId: void 0,\n textEdit: {\n range: this._textSpanToRange(model2, renameLocation.textSpan),\n text: newName\n }\n });\n } else {\n throw new Error(`Unknown file ${renameLocation.fileName}.`);\n }\n }\n return { edits };\n }\n}\nclass InlayHintsAdapter extends Adapter {\n async provideInlayHints(model, range, token) {\n const resource = model.uri;\n const fileName = resource.toString();\n const start = model.getOffsetAt({\n lineNumber: range.startLineNumber,\n column: range.startColumn\n });\n const end = model.getOffsetAt({\n lineNumber: range.endLineNumber,\n column: range.endColumn\n });\n const worker = await this._worker(resource);\n if (model.isDisposed()) {\n return null;\n }\n const tsHints = await worker.provideInlayHints(fileName, start, end);\n const hints = tsHints.map((hint) => {\n return {\n ...hint,\n label: hint.text,\n position: model.getPositionAt(hint.position),\n kind: this._convertHintKind(hint.kind)\n };\n });\n return { hints, dispose: () => {\n } };\n }\n _convertHintKind(kind) {\n switch (kind) {\n case \"Parameter\":\n return languages.InlayHintKind.Parameter;\n case \"Type\":\n return languages.InlayHintKind.Type;\n default:\n return languages.InlayHintKind.Type;\n }\n }\n}\n\nexport { Adapter, CodeActionAdaptor, DefinitionAdapter, DiagnosticsAdapter, DocumentHighlightAdapter, FormatAdapter, FormatHelper, FormatOnTypeAdapter, InlayHintsAdapter, Kind, LibFiles, OutlineAdapter, QuickInfoAdapter, ReferenceAdapter, RenameAdapter, SignatureHelpAdapter, SuggestAdapter, flattenDiagnosticMessageText };\n","import { WorkerManager } from './workerManager.js';\nimport { SuggestAdapter, SignatureHelpAdapter, QuickInfoAdapter, DocumentHighlightAdapter, DefinitionAdapter, LibFiles, ReferenceAdapter, OutlineAdapter, RenameAdapter, FormatAdapter, FormatOnTypeAdapter, CodeActionAdaptor, InlayHintsAdapter, DiagnosticsAdapter } from './languageFeatures.js';\nexport { Adapter, FormatHelper, Kind, flattenDiagnosticMessageText } from './languageFeatures.js';\nimport { languages } from '../../../editor/editor.api.js';\n\nlet javaScriptWorker;\nlet typeScriptWorker;\nfunction setupTypeScript(defaults) {\n typeScriptWorker = setupMode(defaults, \"typescript\");\n}\nfunction setupJavaScript(defaults) {\n javaScriptWorker = setupMode(defaults, \"javascript\");\n}\nfunction getJavaScriptWorker() {\n return new Promise((resolve, reject) => {\n if (!javaScriptWorker) {\n return reject(\"JavaScript not registered!\");\n }\n resolve(javaScriptWorker);\n });\n}\nfunction getTypeScriptWorker() {\n return new Promise((resolve, reject) => {\n if (!typeScriptWorker) {\n return reject(\"TypeScript not registered!\");\n }\n resolve(typeScriptWorker);\n });\n}\nfunction setupMode(defaults, modeId) {\n const providers = [];\n const client = new WorkerManager(modeId, defaults);\n const worker = (...uris) => {\n return client.getLanguageServiceWorker(...uris);\n };\n const libFiles = new LibFiles(worker);\n function registerProviders() {\n const { modeConfiguration } = defaults;\n disposeAll(providers);\n if (modeConfiguration.completionItems) {\n providers.push(\n languages.registerCompletionItemProvider(\n modeId,\n new SuggestAdapter(worker)\n )\n );\n }\n if (modeConfiguration.signatureHelp) {\n providers.push(\n languages.registerSignatureHelpProvider(\n modeId,\n new SignatureHelpAdapter(worker)\n )\n );\n }\n if (modeConfiguration.hovers) {\n providers.push(\n languages.registerHoverProvider(modeId, new QuickInfoAdapter(worker))\n );\n }\n if (modeConfiguration.documentHighlights) {\n providers.push(\n languages.registerDocumentHighlightProvider(\n modeId,\n new DocumentHighlightAdapter(worker)\n )\n );\n }\n if (modeConfiguration.definitions) {\n providers.push(\n languages.registerDefinitionProvider(\n modeId,\n new DefinitionAdapter(libFiles, worker)\n )\n );\n }\n if (modeConfiguration.references) {\n providers.push(\n languages.registerReferenceProvider(\n modeId,\n new ReferenceAdapter(libFiles, worker)\n )\n );\n }\n if (modeConfiguration.documentSymbols) {\n providers.push(\n languages.registerDocumentSymbolProvider(\n modeId,\n new OutlineAdapter(worker)\n )\n );\n }\n if (modeConfiguration.rename) {\n providers.push(\n languages.registerRenameProvider(\n modeId,\n new RenameAdapter(libFiles, worker)\n )\n );\n }\n if (modeConfiguration.documentRangeFormattingEdits) {\n providers.push(\n languages.registerDocumentRangeFormattingEditProvider(\n modeId,\n new FormatAdapter(worker)\n )\n );\n }\n if (modeConfiguration.onTypeFormattingEdits) {\n providers.push(\n languages.registerOnTypeFormattingEditProvider(\n modeId,\n new FormatOnTypeAdapter(worker)\n )\n );\n }\n if (modeConfiguration.codeActions) {\n providers.push(\n languages.registerCodeActionProvider(modeId, new CodeActionAdaptor(worker))\n );\n }\n if (modeConfiguration.inlayHints) {\n providers.push(\n languages.registerInlayHintsProvider(modeId, new InlayHintsAdapter(worker))\n );\n }\n if (modeConfiguration.diagnostics) {\n providers.push(new DiagnosticsAdapter(libFiles, defaults, modeId, worker));\n }\n }\n registerProviders();\n return worker;\n}\nfunction disposeAll(disposables) {\n while (disposables.length) {\n disposables.pop().dispose();\n }\n}\n\nexport { CodeActionAdaptor, DefinitionAdapter, DiagnosticsAdapter, DocumentHighlightAdapter, FormatAdapter, FormatOnTypeAdapter, InlayHintsAdapter, LibFiles, OutlineAdapter, QuickInfoAdapter, ReferenceAdapter, RenameAdapter, SignatureHelpAdapter, SuggestAdapter, WorkerManager, getJavaScriptWorker, getTypeScriptWorker, setupJavaScript, setupTypeScript };\n"],"x_google_ignoreList":[0,1,2,3],"mappings":"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"}
1
+ {"version":3,"file":"tsMode-DT74tlkM.js","names":[],"sources":["../../node_modules/.pnpm/monaco-editor@0.56.0/node_modules/monaco-editor/esm/vs/languages/features/typescript/workerManager.js","../../node_modules/.pnpm/monaco-editor@0.56.0/node_modules/monaco-editor/esm/vs/languages/features/typescript/lib/lib.index.js","../../node_modules/.pnpm/monaco-editor@0.56.0/node_modules/monaco-editor/esm/vs/languages/features/typescript/languageFeatures.js","../../node_modules/.pnpm/monaco-editor@0.56.0/node_modules/monaco-editor/esm/vs/languages/features/typescript/tsMode.js"],"sourcesContent":["import { editor } from '../../../editor/editor.api.js';\nimport { createWebWorker } from '../../../internal/common/workers.js';\n\nclass WorkerManager {\n constructor(_modeId, _defaults) {\n this._modeId = _modeId;\n this._defaults = _defaults;\n this._worker = null;\n this._client = null;\n this._configChangeListener = this._defaults.onDidChange(() => this._stopWorker());\n this._updateExtraLibsToken = 0;\n this._extraLibsChangeListener = this._defaults.onDidExtraLibsChange(\n () => this._updateExtraLibs()\n );\n }\n dispose() {\n this._configChangeListener.dispose();\n this._extraLibsChangeListener.dispose();\n this._stopWorker();\n }\n _stopWorker() {\n if (this._worker) {\n this._worker.dispose();\n this._worker = null;\n }\n this._client = null;\n }\n async _updateExtraLibs() {\n if (!this._worker) {\n return;\n }\n const myToken = ++this._updateExtraLibsToken;\n const proxy = await this._worker.getProxy();\n if (this._updateExtraLibsToken !== myToken) {\n return;\n }\n proxy.updateExtraLibs(this._defaults.getExtraLibs());\n }\n _getClient() {\n if (!this._client) {\n this._client = (async () => {\n this._worker = createWebWorker({\n // module that exports the create() method and returns a `TypeScriptWorker` instance\n moduleId: \"vs/language/typescript/tsWorker\",\n createWorker: () => new Worker(new URL('ts.worker.js', import.meta.url), { type: \"module\" }),\n label: this._modeId,\n keepIdleModels: true,\n // passed in to the create() method\n createData: {\n compilerOptions: this._defaults.getCompilerOptions(),\n extraLibs: this._defaults.getExtraLibs(),\n customWorkerPath: this._defaults.workerOptions.customWorkerPath,\n inlayHintsOptions: this._defaults.inlayHintsOptions\n }\n });\n if (this._defaults.getEagerModelSync()) {\n return await this._worker.withSyncedResources(\n editor.getModels().filter((model) => model.getLanguageId() === this._modeId).map((model) => model.uri)\n );\n }\n return await this._worker.getProxy();\n })();\n }\n return this._client;\n }\n async getLanguageServiceWorker(...resources) {\n const client = await this._getClient();\n if (this._worker) {\n await this._worker.withSyncedResources(resources);\n }\n return client;\n }\n}\n\nexport { WorkerManager };\n","const libFileSet = {};\nlibFileSet[\"lib.d.ts\"] = true;\nlibFileSet[\"lib.decorators.d.ts\"] = true;\nlibFileSet[\"lib.decorators.legacy.d.ts\"] = true;\nlibFileSet[\"lib.dom.asynciterable.d.ts\"] = true;\nlibFileSet[\"lib.dom.d.ts\"] = true;\nlibFileSet[\"lib.dom.iterable.d.ts\"] = true;\nlibFileSet[\"lib.es2015.collection.d.ts\"] = true;\nlibFileSet[\"lib.es2015.core.d.ts\"] = true;\nlibFileSet[\"lib.es2015.d.ts\"] = true;\nlibFileSet[\"lib.es2015.generator.d.ts\"] = true;\nlibFileSet[\"lib.es2015.iterable.d.ts\"] = true;\nlibFileSet[\"lib.es2015.promise.d.ts\"] = true;\nlibFileSet[\"lib.es2015.proxy.d.ts\"] = true;\nlibFileSet[\"lib.es2015.reflect.d.ts\"] = true;\nlibFileSet[\"lib.es2015.symbol.d.ts\"] = true;\nlibFileSet[\"lib.es2015.symbol.wellknown.d.ts\"] = true;\nlibFileSet[\"lib.es2016.array.include.d.ts\"] = true;\nlibFileSet[\"lib.es2016.d.ts\"] = true;\nlibFileSet[\"lib.es2016.full.d.ts\"] = true;\nlibFileSet[\"lib.es2016.intl.d.ts\"] = true;\nlibFileSet[\"lib.es2017.arraybuffer.d.ts\"] = true;\nlibFileSet[\"lib.es2017.d.ts\"] = true;\nlibFileSet[\"lib.es2017.date.d.ts\"] = true;\nlibFileSet[\"lib.es2017.full.d.ts\"] = true;\nlibFileSet[\"lib.es2017.intl.d.ts\"] = true;\nlibFileSet[\"lib.es2017.object.d.ts\"] = true;\nlibFileSet[\"lib.es2017.sharedmemory.d.ts\"] = true;\nlibFileSet[\"lib.es2017.string.d.ts\"] = true;\nlibFileSet[\"lib.es2017.typedarrays.d.ts\"] = true;\nlibFileSet[\"lib.es2018.asyncgenerator.d.ts\"] = true;\nlibFileSet[\"lib.es2018.asynciterable.d.ts\"] = true;\nlibFileSet[\"lib.es2018.d.ts\"] = true;\nlibFileSet[\"lib.es2018.full.d.ts\"] = true;\nlibFileSet[\"lib.es2018.intl.d.ts\"] = true;\nlibFileSet[\"lib.es2018.promise.d.ts\"] = true;\nlibFileSet[\"lib.es2018.regexp.d.ts\"] = true;\nlibFileSet[\"lib.es2019.array.d.ts\"] = true;\nlibFileSet[\"lib.es2019.d.ts\"] = true;\nlibFileSet[\"lib.es2019.full.d.ts\"] = true;\nlibFileSet[\"lib.es2019.intl.d.ts\"] = true;\nlibFileSet[\"lib.es2019.object.d.ts\"] = true;\nlibFileSet[\"lib.es2019.string.d.ts\"] = true;\nlibFileSet[\"lib.es2019.symbol.d.ts\"] = true;\nlibFileSet[\"lib.es2020.bigint.d.ts\"] = true;\nlibFileSet[\"lib.es2020.d.ts\"] = true;\nlibFileSet[\"lib.es2020.date.d.ts\"] = true;\nlibFileSet[\"lib.es2020.full.d.ts\"] = true;\nlibFileSet[\"lib.es2020.intl.d.ts\"] = true;\nlibFileSet[\"lib.es2020.number.d.ts\"] = true;\nlibFileSet[\"lib.es2020.promise.d.ts\"] = true;\nlibFileSet[\"lib.es2020.sharedmemory.d.ts\"] = true;\nlibFileSet[\"lib.es2020.string.d.ts\"] = true;\nlibFileSet[\"lib.es2020.symbol.wellknown.d.ts\"] = true;\nlibFileSet[\"lib.es2021.d.ts\"] = true;\nlibFileSet[\"lib.es2021.full.d.ts\"] = true;\nlibFileSet[\"lib.es2021.intl.d.ts\"] = true;\nlibFileSet[\"lib.es2021.promise.d.ts\"] = true;\nlibFileSet[\"lib.es2021.string.d.ts\"] = true;\nlibFileSet[\"lib.es2021.weakref.d.ts\"] = true;\nlibFileSet[\"lib.es2022.array.d.ts\"] = true;\nlibFileSet[\"lib.es2022.d.ts\"] = true;\nlibFileSet[\"lib.es2022.error.d.ts\"] = true;\nlibFileSet[\"lib.es2022.full.d.ts\"] = true;\nlibFileSet[\"lib.es2022.intl.d.ts\"] = true;\nlibFileSet[\"lib.es2022.object.d.ts\"] = true;\nlibFileSet[\"lib.es2022.regexp.d.ts\"] = true;\nlibFileSet[\"lib.es2022.string.d.ts\"] = true;\nlibFileSet[\"lib.es2023.array.d.ts\"] = true;\nlibFileSet[\"lib.es2023.collection.d.ts\"] = true;\nlibFileSet[\"lib.es2023.d.ts\"] = true;\nlibFileSet[\"lib.es2023.full.d.ts\"] = true;\nlibFileSet[\"lib.es2023.intl.d.ts\"] = true;\nlibFileSet[\"lib.es2024.arraybuffer.d.ts\"] = true;\nlibFileSet[\"lib.es2024.collection.d.ts\"] = true;\nlibFileSet[\"lib.es2024.d.ts\"] = true;\nlibFileSet[\"lib.es2024.full.d.ts\"] = true;\nlibFileSet[\"lib.es2024.object.d.ts\"] = true;\nlibFileSet[\"lib.es2024.promise.d.ts\"] = true;\nlibFileSet[\"lib.es2024.regexp.d.ts\"] = true;\nlibFileSet[\"lib.es2024.sharedmemory.d.ts\"] = true;\nlibFileSet[\"lib.es2024.string.d.ts\"] = true;\nlibFileSet[\"lib.es5.d.ts\"] = true;\nlibFileSet[\"lib.es6.d.ts\"] = true;\nlibFileSet[\"lib.esnext.array.d.ts\"] = true;\nlibFileSet[\"lib.esnext.collection.d.ts\"] = true;\nlibFileSet[\"lib.esnext.d.ts\"] = true;\nlibFileSet[\"lib.esnext.decorators.d.ts\"] = true;\nlibFileSet[\"lib.esnext.disposable.d.ts\"] = true;\nlibFileSet[\"lib.esnext.error.d.ts\"] = true;\nlibFileSet[\"lib.esnext.float16.d.ts\"] = true;\nlibFileSet[\"lib.esnext.full.d.ts\"] = true;\nlibFileSet[\"lib.esnext.intl.d.ts\"] = true;\nlibFileSet[\"lib.esnext.iterator.d.ts\"] = true;\nlibFileSet[\"lib.esnext.promise.d.ts\"] = true;\nlibFileSet[\"lib.esnext.sharedmemory.d.ts\"] = true;\nlibFileSet[\"lib.scripthost.d.ts\"] = true;\nlibFileSet[\"lib.webworker.asynciterable.d.ts\"] = true;\nlibFileSet[\"lib.webworker.d.ts\"] = true;\nlibFileSet[\"lib.webworker.importscripts.d.ts\"] = true;\nlibFileSet[\"lib.webworker.iterable.d.ts\"] = true;\n\nexport { libFileSet };\n","import { typescriptDefaults } from './register.js';\nimport { libFileSet } from './lib/lib.index.js';\nimport { Uri, editor, MarkerTag, MarkerSeverity, Range, languages } from '../../../editor/editor.api.js';\n\nfunction flattenDiagnosticMessageText(diag, newLine, indent = 0) {\n if (typeof diag === \"string\") {\n return diag;\n } else if (diag === void 0) {\n return \"\";\n }\n let result = \"\";\n if (indent) {\n result += newLine;\n for (let i = 0; i < indent; i++) {\n result += \" \";\n }\n }\n result += diag.messageText;\n indent++;\n if (diag.next) {\n for (const kid of diag.next) {\n result += flattenDiagnosticMessageText(kid, newLine, indent);\n }\n }\n return result;\n}\nfunction displayPartsToString(displayParts) {\n if (displayParts) {\n return displayParts.map((displayPart) => displayPart.text).join(\"\");\n }\n return \"\";\n}\nclass Adapter {\n constructor(_worker) {\n this._worker = _worker;\n }\n // protected _positionToOffset(model: editor.ITextModel, position: monaco.IPosition): number {\n // \treturn model.getOffsetAt(position);\n // }\n // protected _offsetToPosition(model: editor.ITextModel, offset: number): monaco.IPosition {\n // \treturn model.getPositionAt(offset);\n // }\n _textSpanToRange(model, span) {\n let p1 = model.getPositionAt(span.start);\n let p2 = model.getPositionAt(span.start + span.length);\n let { lineNumber: startLineNumber, column: startColumn } = p1;\n let { lineNumber: endLineNumber, column: endColumn } = p2;\n return { startLineNumber, startColumn, endLineNumber, endColumn };\n }\n}\nclass LibFiles {\n constructor(_worker) {\n this._worker = _worker;\n this._libFiles = {};\n this._hasFetchedLibFiles = false;\n this._fetchLibFilesPromise = null;\n }\n isLibFile(uri) {\n if (!uri) {\n return false;\n }\n if (uri.path.indexOf(\"/lib.\") === 0) {\n return !!libFileSet[uri.path.slice(1)];\n }\n return false;\n }\n getOrCreateModel(fileName) {\n const uri = Uri.parse(fileName);\n const model = editor.getModel(uri);\n if (model) {\n return model;\n }\n if (this.isLibFile(uri) && this._hasFetchedLibFiles) {\n return editor.createModel(this._libFiles[uri.path.slice(1)], \"typescript\", uri);\n }\n const matchedLibFile = typescriptDefaults.getExtraLibs()[fileName];\n if (matchedLibFile) {\n return editor.createModel(matchedLibFile.content, \"typescript\", uri);\n }\n return null;\n }\n _containsLibFile(uris) {\n for (let uri of uris) {\n if (this.isLibFile(uri)) {\n return true;\n }\n }\n return false;\n }\n async fetchLibFilesIfNecessary(uris) {\n if (!this._containsLibFile(uris)) {\n return;\n }\n await this._fetchLibFiles();\n }\n _fetchLibFiles() {\n if (!this._fetchLibFilesPromise) {\n this._fetchLibFilesPromise = this._worker().then((w) => w.getLibFiles()).then((libFiles) => {\n this._hasFetchedLibFiles = true;\n this._libFiles = libFiles;\n });\n }\n return this._fetchLibFilesPromise;\n }\n}\nclass DiagnosticsAdapter extends Adapter {\n constructor(_libFiles, _defaults, _selector, worker) {\n super(worker);\n this._libFiles = _libFiles;\n this._defaults = _defaults;\n this._selector = _selector;\n this._disposables = [];\n this._listener = /* @__PURE__ */ Object.create(null);\n const onModelAdd = (model) => {\n if (model.getLanguageId() !== _selector) {\n return;\n }\n const maybeValidate = () => {\n const { onlyVisible } = this._defaults.getDiagnosticsOptions();\n if (onlyVisible) {\n if (model.isAttachedToEditor()) {\n this._doValidate(model);\n }\n } else {\n this._doValidate(model);\n }\n };\n let handle;\n const changeSubscription = model.onDidChangeContent(() => {\n clearTimeout(handle);\n handle = window.setTimeout(maybeValidate, 500);\n });\n const visibleSubscription = model.onDidChangeAttached(() => {\n const { onlyVisible } = this._defaults.getDiagnosticsOptions();\n if (onlyVisible) {\n if (model.isAttachedToEditor()) {\n maybeValidate();\n } else {\n editor.setModelMarkers(model, this._selector, []);\n }\n }\n });\n this._listener[model.uri.toString()] = {\n dispose() {\n changeSubscription.dispose();\n visibleSubscription.dispose();\n clearTimeout(handle);\n }\n };\n maybeValidate();\n };\n const onModelRemoved = (model) => {\n editor.setModelMarkers(model, this._selector, []);\n const key = model.uri.toString();\n if (this._listener[key]) {\n this._listener[key].dispose();\n delete this._listener[key];\n }\n };\n this._disposables.push(\n editor.onDidCreateModel((model) => onModelAdd(model))\n );\n this._disposables.push(editor.onWillDisposeModel(onModelRemoved));\n this._disposables.push(\n editor.onDidChangeModelLanguage((event) => {\n onModelRemoved(event.model);\n onModelAdd(event.model);\n })\n );\n this._disposables.push({\n dispose() {\n for (const model of editor.getModels()) {\n onModelRemoved(model);\n }\n }\n });\n const recomputeDiagostics = () => {\n for (const model of editor.getModels()) {\n onModelRemoved(model);\n onModelAdd(model);\n }\n };\n this._disposables.push(this._defaults.onDidChange(recomputeDiagostics));\n this._disposables.push(this._defaults.onDidExtraLibsChange(recomputeDiagostics));\n editor.getModels().forEach((model) => onModelAdd(model));\n }\n dispose() {\n this._disposables.forEach((d) => d && d.dispose());\n this._disposables = [];\n }\n async _doValidate(model) {\n const worker = await this._worker(model.uri);\n if (model.isDisposed()) {\n return;\n }\n const promises = [];\n const { noSyntaxValidation, noSemanticValidation, noSuggestionDiagnostics } = this._defaults.getDiagnosticsOptions();\n if (!noSyntaxValidation) {\n promises.push(worker.getSyntacticDiagnostics(model.uri.toString()));\n }\n if (!noSemanticValidation) {\n promises.push(worker.getSemanticDiagnostics(model.uri.toString()));\n }\n if (!noSuggestionDiagnostics) {\n promises.push(worker.getSuggestionDiagnostics(model.uri.toString()));\n }\n const allDiagnostics = await Promise.all(promises);\n if (!allDiagnostics || model.isDisposed()) {\n return;\n }\n const diagnostics = allDiagnostics.reduce((p, c) => c.concat(p), []).filter(\n (d) => (this._defaults.getDiagnosticsOptions().diagnosticCodesToIgnore || []).indexOf(d.code) === -1\n );\n const relatedUris = diagnostics.map((d) => d.relatedInformation || []).reduce((p, c) => c.concat(p), []).map(\n (relatedInformation) => relatedInformation.file ? Uri.parse(relatedInformation.file.fileName) : null\n );\n await this._libFiles.fetchLibFilesIfNecessary(relatedUris);\n if (model.isDisposed()) {\n return;\n }\n editor.setModelMarkers(\n model,\n this._selector,\n diagnostics.map((d) => this._convertDiagnostics(model, d))\n );\n }\n _convertDiagnostics(model, diag) {\n const diagStart = diag.start || 0;\n const diagLength = diag.length || 1;\n const { lineNumber: startLineNumber, column: startColumn } = model.getPositionAt(diagStart);\n const { lineNumber: endLineNumber, column: endColumn } = model.getPositionAt(\n diagStart + diagLength\n );\n const tags = [];\n if (diag.reportsUnnecessary) {\n tags.push(MarkerTag.Unnecessary);\n }\n if (diag.reportsDeprecated) {\n tags.push(MarkerTag.Deprecated);\n }\n return {\n severity: this._tsDiagnosticCategoryToMarkerSeverity(diag.category),\n startLineNumber,\n startColumn,\n endLineNumber,\n endColumn,\n message: flattenDiagnosticMessageText(diag.messageText, \"\\n\"),\n code: diag.code.toString(),\n tags,\n relatedInformation: this._convertRelatedInformation(model, diag.relatedInformation)\n };\n }\n _convertRelatedInformation(model, relatedInformation) {\n if (!relatedInformation) {\n return [];\n }\n const result = [];\n relatedInformation.forEach((info) => {\n let relatedResource = model;\n if (info.file) {\n relatedResource = this._libFiles.getOrCreateModel(info.file.fileName);\n }\n if (!relatedResource) {\n return;\n }\n const infoStart = info.start || 0;\n const infoLength = info.length || 1;\n const { lineNumber: startLineNumber, column: startColumn } = relatedResource.getPositionAt(infoStart);\n const { lineNumber: endLineNumber, column: endColumn } = relatedResource.getPositionAt(\n infoStart + infoLength\n );\n result.push({\n resource: relatedResource.uri,\n startLineNumber,\n startColumn,\n endLineNumber,\n endColumn,\n message: flattenDiagnosticMessageText(info.messageText, \"\\n\")\n });\n });\n return result;\n }\n _tsDiagnosticCategoryToMarkerSeverity(category) {\n switch (category) {\n case 1 /* Error */:\n return MarkerSeverity.Error;\n case 3 /* Message */:\n return MarkerSeverity.Info;\n case 0 /* Warning */:\n return MarkerSeverity.Warning;\n case 2 /* Suggestion */:\n return MarkerSeverity.Hint;\n }\n return MarkerSeverity.Info;\n }\n}\nclass SuggestAdapter extends Adapter {\n get triggerCharacters() {\n return [\".\"];\n }\n async provideCompletionItems(model, position, _context, token) {\n const wordInfo = model.getWordUntilPosition(position);\n const wordRange = new Range(\n position.lineNumber,\n wordInfo.startColumn,\n position.lineNumber,\n wordInfo.endColumn\n );\n const resource = model.uri;\n const offset = model.getOffsetAt(position);\n const worker = await this._worker(resource);\n if (model.isDisposed()) {\n return;\n }\n const info = await worker.getCompletionsAtPosition(resource.toString(), offset);\n if (!info || model.isDisposed()) {\n return;\n }\n const suggestions = info.entries.map((entry) => {\n let range = wordRange;\n if (entry.replacementSpan) {\n const p1 = model.getPositionAt(entry.replacementSpan.start);\n const p2 = model.getPositionAt(entry.replacementSpan.start + entry.replacementSpan.length);\n range = new Range(p1.lineNumber, p1.column, p2.lineNumber, p2.column);\n }\n const tags = [];\n if (entry.kindModifiers !== void 0 && entry.kindModifiers.indexOf(\"deprecated\") !== -1) {\n tags.push(languages.CompletionItemTag.Deprecated);\n }\n return {\n uri: resource,\n position,\n offset,\n range,\n label: entry.name,\n insertText: entry.name,\n sortText: entry.sortText,\n kind: SuggestAdapter.convertKind(entry.kind),\n tags\n };\n });\n return {\n suggestions\n };\n }\n async resolveCompletionItem(item, token) {\n const myItem = item;\n const resource = myItem.uri;\n const position = myItem.position;\n const offset = myItem.offset;\n const worker = await this._worker(resource);\n const details = await worker.getCompletionEntryDetails(\n resource.toString(),\n offset,\n myItem.label\n );\n if (!details) {\n return myItem;\n }\n return {\n uri: resource,\n position,\n label: details.name,\n kind: SuggestAdapter.convertKind(details.kind),\n detail: displayPartsToString(details.displayParts),\n documentation: {\n value: SuggestAdapter.createDocumentationString(details)\n }\n };\n }\n static convertKind(kind) {\n switch (kind) {\n case Kind.primitiveType:\n case Kind.keyword:\n return languages.CompletionItemKind.Keyword;\n case Kind.variable:\n case Kind.localVariable:\n return languages.CompletionItemKind.Variable;\n case Kind.memberVariable:\n case Kind.memberGetAccessor:\n case Kind.memberSetAccessor:\n return languages.CompletionItemKind.Field;\n case Kind.function:\n case Kind.memberFunction:\n case Kind.constructSignature:\n case Kind.callSignature:\n case Kind.indexSignature:\n return languages.CompletionItemKind.Function;\n case Kind.enum:\n return languages.CompletionItemKind.Enum;\n case Kind.module:\n return languages.CompletionItemKind.Module;\n case Kind.class:\n return languages.CompletionItemKind.Class;\n case Kind.interface:\n return languages.CompletionItemKind.Interface;\n case Kind.warning:\n return languages.CompletionItemKind.File;\n }\n return languages.CompletionItemKind.Property;\n }\n static createDocumentationString(details) {\n let documentationString = displayPartsToString(details.documentation);\n if (details.tags) {\n for (const tag of details.tags) {\n documentationString += `\n\n${tagToString(tag)}`;\n }\n }\n return documentationString;\n }\n}\nfunction tagToString(tag) {\n let tagLabel = `*@${tag.name}*`;\n if (tag.name === \"param\" && tag.text) {\n const [paramName, ...rest] = tag.text;\n tagLabel += `\\`${paramName.text}\\``;\n if (rest.length > 0) tagLabel += ` \\u2014 ${rest.map((r) => r.text).join(\" \")}`;\n } else if (Array.isArray(tag.text)) {\n tagLabel += ` \\u2014 ${tag.text.map((r) => r.text).join(\" \")}`;\n } else if (tag.text) {\n tagLabel += ` \\u2014 ${tag.text}`;\n }\n return tagLabel;\n}\nclass SignatureHelpAdapter extends Adapter {\n constructor() {\n super(...arguments);\n this.signatureHelpTriggerCharacters = [\"(\", \",\"];\n }\n static _toSignatureHelpTriggerReason(context) {\n switch (context.triggerKind) {\n case languages.SignatureHelpTriggerKind.TriggerCharacter:\n if (context.triggerCharacter) {\n if (context.isRetrigger) {\n return { kind: \"retrigger\", triggerCharacter: context.triggerCharacter };\n } else {\n return { kind: \"characterTyped\", triggerCharacter: context.triggerCharacter };\n }\n } else {\n return { kind: \"invoked\" };\n }\n case languages.SignatureHelpTriggerKind.ContentChange:\n return context.isRetrigger ? { kind: \"retrigger\" } : { kind: \"invoked\" };\n case languages.SignatureHelpTriggerKind.Invoke:\n default:\n return { kind: \"invoked\" };\n }\n }\n async provideSignatureHelp(model, position, token, context) {\n const resource = model.uri;\n const offset = model.getOffsetAt(position);\n const worker = await this._worker(resource);\n if (model.isDisposed()) {\n return;\n }\n const info = await worker.getSignatureHelpItems(resource.toString(), offset, {\n triggerReason: SignatureHelpAdapter._toSignatureHelpTriggerReason(context)\n });\n if (!info || model.isDisposed()) {\n return;\n }\n const ret = {\n activeSignature: info.selectedItemIndex,\n activeParameter: info.argumentIndex,\n signatures: []\n };\n info.items.forEach((item) => {\n const signature = {\n label: \"\",\n parameters: []\n };\n signature.documentation = {\n value: displayPartsToString(item.documentation)\n };\n signature.label += displayPartsToString(item.prefixDisplayParts);\n item.parameters.forEach((p, i, a) => {\n const label = displayPartsToString(p.displayParts);\n const parameter = {\n label,\n documentation: {\n value: displayPartsToString(p.documentation)\n }\n };\n signature.label += label;\n signature.parameters.push(parameter);\n if (i < a.length - 1) {\n signature.label += displayPartsToString(item.separatorDisplayParts);\n }\n });\n signature.label += displayPartsToString(item.suffixDisplayParts);\n ret.signatures.push(signature);\n });\n return {\n value: ret,\n dispose() {\n }\n };\n }\n}\nclass QuickInfoAdapter extends Adapter {\n async provideHover(model, position, token) {\n const resource = model.uri;\n const offset = model.getOffsetAt(position);\n const worker = await this._worker(resource);\n if (model.isDisposed()) {\n return;\n }\n const info = await worker.getQuickInfoAtPosition(resource.toString(), offset);\n if (!info || model.isDisposed()) {\n return;\n }\n const documentation = displayPartsToString(info.documentation);\n const tags = info.tags ? info.tags.map((tag) => tagToString(tag)).join(\" \\n\\n\") : \"\";\n const contents = displayPartsToString(info.displayParts);\n return {\n range: this._textSpanToRange(model, info.textSpan),\n contents: [\n {\n value: \"```typescript\\n\" + contents + \"\\n```\\n\"\n },\n {\n value: documentation + (tags ? \"\\n\\n\" + tags : \"\")\n }\n ]\n };\n }\n}\nclass DocumentHighlightAdapter extends Adapter {\n async provideDocumentHighlights(model, position, token) {\n const resource = model.uri;\n const offset = model.getOffsetAt(position);\n const worker = await this._worker(resource);\n if (model.isDisposed()) {\n return;\n }\n const entries = await worker.getDocumentHighlights(resource.toString(), offset, [\n resource.toString()\n ]);\n if (!entries || model.isDisposed()) {\n return;\n }\n return entries.flatMap((entry) => {\n return entry.highlightSpans.map((highlightSpans) => {\n return {\n range: this._textSpanToRange(model, highlightSpans.textSpan),\n kind: highlightSpans.kind === \"writtenReference\" ? languages.DocumentHighlightKind.Write : languages.DocumentHighlightKind.Text\n };\n });\n });\n }\n}\nclass DefinitionAdapter extends Adapter {\n constructor(_libFiles, worker) {\n super(worker);\n this._libFiles = _libFiles;\n }\n async provideDefinition(model, position, token) {\n const resource = model.uri;\n const offset = model.getOffsetAt(position);\n const worker = await this._worker(resource);\n if (model.isDisposed()) {\n return;\n }\n const entries = await worker.getDefinitionAtPosition(resource.toString(), offset);\n if (!entries || model.isDisposed()) {\n return;\n }\n await this._libFiles.fetchLibFilesIfNecessary(\n entries.map((entry) => Uri.parse(entry.fileName))\n );\n if (model.isDisposed()) {\n return;\n }\n const result = [];\n for (let entry of entries) {\n const refModel = this._libFiles.getOrCreateModel(entry.fileName);\n if (refModel) {\n result.push({\n uri: refModel.uri,\n range: this._textSpanToRange(refModel, entry.textSpan)\n });\n }\n }\n return result;\n }\n}\nclass ReferenceAdapter extends Adapter {\n constructor(_libFiles, worker) {\n super(worker);\n this._libFiles = _libFiles;\n }\n async provideReferences(model, position, context, token) {\n const resource = model.uri;\n const offset = model.getOffsetAt(position);\n const worker = await this._worker(resource);\n if (model.isDisposed()) {\n return;\n }\n const entries = await worker.getReferencesAtPosition(resource.toString(), offset);\n if (!entries || model.isDisposed()) {\n return;\n }\n await this._libFiles.fetchLibFilesIfNecessary(\n entries.map((entry) => Uri.parse(entry.fileName))\n );\n if (model.isDisposed()) {\n return;\n }\n const result = [];\n for (let entry of entries) {\n const refModel = this._libFiles.getOrCreateModel(entry.fileName);\n if (refModel) {\n result.push({\n uri: refModel.uri,\n range: this._textSpanToRange(refModel, entry.textSpan)\n });\n }\n }\n return result;\n }\n}\nclass OutlineAdapter extends Adapter {\n async provideDocumentSymbols(model, token) {\n const resource = model.uri;\n const worker = await this._worker(resource);\n if (model.isDisposed()) {\n return;\n }\n const root = await worker.getNavigationTree(resource.toString());\n if (!root || model.isDisposed()) {\n return;\n }\n const convert = (item, containerLabel) => {\n const result2 = {\n name: item.text,\n detail: \"\",\n kind: outlineTypeTable[item.kind] || languages.SymbolKind.Variable,\n range: this._textSpanToRange(model, item.spans[0]),\n selectionRange: this._textSpanToRange(model, item.spans[0]),\n tags: [],\n children: item.childItems?.map((child) => convert(child, item.text)),\n containerName: containerLabel\n };\n return result2;\n };\n const result = root.childItems ? root.childItems.map((item) => convert(item)) : [];\n return result;\n }\n}\nclass Kind {\n}\nKind.unknown = \"\";\nKind.keyword = \"keyword\";\nKind.script = \"script\";\nKind.module = \"module\";\nKind.class = \"class\";\nKind.interface = \"interface\";\nKind.type = \"type\";\nKind.enum = \"enum\";\nKind.variable = \"var\";\nKind.localVariable = \"local var\";\nKind.function = \"function\";\nKind.localFunction = \"local function\";\nKind.memberFunction = \"method\";\nKind.memberGetAccessor = \"getter\";\nKind.memberSetAccessor = \"setter\";\nKind.memberVariable = \"property\";\nKind.constructorImplementation = \"constructor\";\nKind.callSignature = \"call\";\nKind.indexSignature = \"index\";\nKind.constructSignature = \"construct\";\nKind.parameter = \"parameter\";\nKind.typeParameter = \"type parameter\";\nKind.primitiveType = \"primitive type\";\nKind.label = \"label\";\nKind.alias = \"alias\";\nKind.const = \"const\";\nKind.let = \"let\";\nKind.warning = \"warning\";\nlet outlineTypeTable = /* @__PURE__ */ Object.create(null);\noutlineTypeTable[Kind.module] = languages.SymbolKind.Module;\noutlineTypeTable[Kind.class] = languages.SymbolKind.Class;\noutlineTypeTable[Kind.enum] = languages.SymbolKind.Enum;\noutlineTypeTable[Kind.interface] = languages.SymbolKind.Interface;\noutlineTypeTable[Kind.memberFunction] = languages.SymbolKind.Method;\noutlineTypeTable[Kind.memberVariable] = languages.SymbolKind.Property;\noutlineTypeTable[Kind.memberGetAccessor] = languages.SymbolKind.Property;\noutlineTypeTable[Kind.memberSetAccessor] = languages.SymbolKind.Property;\noutlineTypeTable[Kind.variable] = languages.SymbolKind.Variable;\noutlineTypeTable[Kind.const] = languages.SymbolKind.Variable;\noutlineTypeTable[Kind.localVariable] = languages.SymbolKind.Variable;\noutlineTypeTable[Kind.variable] = languages.SymbolKind.Variable;\noutlineTypeTable[Kind.function] = languages.SymbolKind.Function;\noutlineTypeTable[Kind.localFunction] = languages.SymbolKind.Function;\nclass FormatHelper extends Adapter {\n static _convertOptions(options) {\n return {\n ConvertTabsToSpaces: options.insertSpaces,\n TabSize: options.tabSize,\n IndentSize: options.tabSize,\n IndentStyle: 2 /* Smart */,\n NewLineCharacter: \"\\n\",\n InsertSpaceAfterCommaDelimiter: true,\n InsertSpaceAfterSemicolonInForStatements: true,\n InsertSpaceBeforeAndAfterBinaryOperators: true,\n InsertSpaceAfterKeywordsInControlFlowStatements: true,\n InsertSpaceAfterFunctionKeywordForAnonymousFunctions: true,\n InsertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis: false,\n InsertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets: false,\n InsertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces: false,\n PlaceOpenBraceOnNewLineForControlBlocks: false,\n PlaceOpenBraceOnNewLineForFunctions: false\n };\n }\n _convertTextChanges(model, change) {\n return {\n text: change.newText,\n range: this._textSpanToRange(model, change.span)\n };\n }\n}\nclass FormatAdapter extends FormatHelper {\n constructor() {\n super(...arguments);\n this.canFormatMultipleRanges = false;\n }\n async provideDocumentRangeFormattingEdits(model, range, options, token) {\n const resource = model.uri;\n const startOffset = model.getOffsetAt({\n lineNumber: range.startLineNumber,\n column: range.startColumn\n });\n const endOffset = model.getOffsetAt({\n lineNumber: range.endLineNumber,\n column: range.endColumn\n });\n const worker = await this._worker(resource);\n if (model.isDisposed()) {\n return;\n }\n const edits = await worker.getFormattingEditsForRange(\n resource.toString(),\n startOffset,\n endOffset,\n FormatHelper._convertOptions(options)\n );\n if (!edits || model.isDisposed()) {\n return;\n }\n return edits.map((edit) => this._convertTextChanges(model, edit));\n }\n}\nclass FormatOnTypeAdapter extends FormatHelper {\n get autoFormatTriggerCharacters() {\n return [\";\", \"}\", \"\\n\"];\n }\n async provideOnTypeFormattingEdits(model, position, ch, options, token) {\n const resource = model.uri;\n const offset = model.getOffsetAt(position);\n const worker = await this._worker(resource);\n if (model.isDisposed()) {\n return;\n }\n const edits = await worker.getFormattingEditsAfterKeystroke(\n resource.toString(),\n offset,\n ch,\n FormatHelper._convertOptions(options)\n );\n if (!edits || model.isDisposed()) {\n return;\n }\n return edits.map((edit) => this._convertTextChanges(model, edit));\n }\n}\nclass CodeActionAdaptor extends FormatHelper {\n async provideCodeActions(model, range, context, token) {\n const resource = model.uri;\n const start = model.getOffsetAt({\n lineNumber: range.startLineNumber,\n column: range.startColumn\n });\n const end = model.getOffsetAt({\n lineNumber: range.endLineNumber,\n column: range.endColumn\n });\n const formatOptions = FormatHelper._convertOptions(model.getOptions());\n const errorCodes = context.markers.filter((m) => m.code).map((m) => m.code).map(Number);\n const worker = await this._worker(resource);\n if (model.isDisposed()) {\n return;\n }\n const codeFixes = await worker.getCodeFixesAtPosition(\n resource.toString(),\n start,\n end,\n errorCodes,\n formatOptions\n );\n if (!codeFixes || model.isDisposed()) {\n return { actions: [], dispose: () => {\n } };\n }\n const actions = codeFixes.filter((fix) => {\n return fix.changes.filter((change) => change.isNewFile).length === 0;\n }).map((fix) => {\n return this._tsCodeFixActionToMonacoCodeAction(model, context, fix);\n });\n return {\n actions,\n dispose: () => {\n }\n };\n }\n _tsCodeFixActionToMonacoCodeAction(model, context, codeFix) {\n const edits = [];\n for (const change of codeFix.changes) {\n for (const textChange of change.textChanges) {\n edits.push({\n resource: model.uri,\n versionId: void 0,\n textEdit: {\n range: this._textSpanToRange(model, textChange.span),\n text: textChange.newText\n }\n });\n }\n }\n const action = {\n title: codeFix.description,\n edit: { edits },\n diagnostics: context.markers,\n kind: \"quickfix\"\n };\n return action;\n }\n}\nclass RenameAdapter extends Adapter {\n constructor(_libFiles, worker) {\n super(worker);\n this._libFiles = _libFiles;\n }\n async provideRenameEdits(model, position, newName, token) {\n const resource = model.uri;\n const fileName = resource.toString();\n const offset = model.getOffsetAt(position);\n const worker = await this._worker(resource);\n if (model.isDisposed()) {\n return;\n }\n const renameInfo = await worker.getRenameInfo(fileName, offset, {\n allowRenameOfImportPath: false\n });\n if (renameInfo.canRename === false) {\n return {\n edits: [],\n rejectReason: renameInfo.localizedErrorMessage\n };\n }\n if (renameInfo.fileToRename !== void 0) {\n throw new Error(\"Renaming files is not supported.\");\n }\n const renameLocations = await worker.findRenameLocations(\n fileName,\n offset,\n /*strings*/\n false,\n /*comments*/\n false,\n /*prefixAndSuffix*/\n false\n );\n if (!renameLocations || model.isDisposed()) {\n return;\n }\n const edits = [];\n for (const renameLocation of renameLocations) {\n const model2 = this._libFiles.getOrCreateModel(renameLocation.fileName);\n if (model2) {\n edits.push({\n resource: model2.uri,\n versionId: void 0,\n textEdit: {\n range: this._textSpanToRange(model2, renameLocation.textSpan),\n text: newName\n }\n });\n } else {\n throw new Error(`Unknown file ${renameLocation.fileName}.`);\n }\n }\n return { edits };\n }\n}\nclass InlayHintsAdapter extends Adapter {\n async provideInlayHints(model, range, token) {\n const resource = model.uri;\n const fileName = resource.toString();\n const start = model.getOffsetAt({\n lineNumber: range.startLineNumber,\n column: range.startColumn\n });\n const end = model.getOffsetAt({\n lineNumber: range.endLineNumber,\n column: range.endColumn\n });\n const worker = await this._worker(resource);\n if (model.isDisposed()) {\n return null;\n }\n const tsHints = await worker.provideInlayHints(fileName, start, end);\n const hints = tsHints.map((hint) => {\n return {\n ...hint,\n label: hint.text,\n position: model.getPositionAt(hint.position),\n kind: this._convertHintKind(hint.kind)\n };\n });\n return { hints, dispose: () => {\n } };\n }\n _convertHintKind(kind) {\n switch (kind) {\n case \"Parameter\":\n return languages.InlayHintKind.Parameter;\n case \"Type\":\n return languages.InlayHintKind.Type;\n default:\n return languages.InlayHintKind.Type;\n }\n }\n}\n\nexport { Adapter, CodeActionAdaptor, DefinitionAdapter, DiagnosticsAdapter, DocumentHighlightAdapter, FormatAdapter, FormatHelper, FormatOnTypeAdapter, InlayHintsAdapter, Kind, LibFiles, OutlineAdapter, QuickInfoAdapter, ReferenceAdapter, RenameAdapter, SignatureHelpAdapter, SuggestAdapter, flattenDiagnosticMessageText };\n","import { WorkerManager } from './workerManager.js';\nimport { SuggestAdapter, SignatureHelpAdapter, QuickInfoAdapter, DocumentHighlightAdapter, DefinitionAdapter, LibFiles, ReferenceAdapter, OutlineAdapter, RenameAdapter, FormatAdapter, FormatOnTypeAdapter, CodeActionAdaptor, InlayHintsAdapter, DiagnosticsAdapter } from './languageFeatures.js';\nexport { Adapter, FormatHelper, Kind, flattenDiagnosticMessageText } from './languageFeatures.js';\nimport { languages } from '../../../editor/editor.api.js';\n\nlet javaScriptWorker;\nlet typeScriptWorker;\nfunction setupTypeScript(defaults) {\n typeScriptWorker = setupMode(defaults, \"typescript\");\n}\nfunction setupJavaScript(defaults) {\n javaScriptWorker = setupMode(defaults, \"javascript\");\n}\nfunction getJavaScriptWorker() {\n return new Promise((resolve, reject) => {\n if (!javaScriptWorker) {\n return reject(\"JavaScript not registered!\");\n }\n resolve(javaScriptWorker);\n });\n}\nfunction getTypeScriptWorker() {\n return new Promise((resolve, reject) => {\n if (!typeScriptWorker) {\n return reject(\"TypeScript not registered!\");\n }\n resolve(typeScriptWorker);\n });\n}\nfunction setupMode(defaults, modeId) {\n const providers = [];\n const client = new WorkerManager(modeId, defaults);\n const worker = (...uris) => {\n return client.getLanguageServiceWorker(...uris);\n };\n const libFiles = new LibFiles(worker);\n function registerProviders() {\n const { modeConfiguration } = defaults;\n disposeAll(providers);\n if (modeConfiguration.completionItems) {\n providers.push(\n languages.registerCompletionItemProvider(\n modeId,\n new SuggestAdapter(worker)\n )\n );\n }\n if (modeConfiguration.signatureHelp) {\n providers.push(\n languages.registerSignatureHelpProvider(\n modeId,\n new SignatureHelpAdapter(worker)\n )\n );\n }\n if (modeConfiguration.hovers) {\n providers.push(\n languages.registerHoverProvider(modeId, new QuickInfoAdapter(worker))\n );\n }\n if (modeConfiguration.documentHighlights) {\n providers.push(\n languages.registerDocumentHighlightProvider(\n modeId,\n new DocumentHighlightAdapter(worker)\n )\n );\n }\n if (modeConfiguration.definitions) {\n providers.push(\n languages.registerDefinitionProvider(\n modeId,\n new DefinitionAdapter(libFiles, worker)\n )\n );\n }\n if (modeConfiguration.references) {\n providers.push(\n languages.registerReferenceProvider(\n modeId,\n new ReferenceAdapter(libFiles, worker)\n )\n );\n }\n if (modeConfiguration.documentSymbols) {\n providers.push(\n languages.registerDocumentSymbolProvider(\n modeId,\n new OutlineAdapter(worker)\n )\n );\n }\n if (modeConfiguration.rename) {\n providers.push(\n languages.registerRenameProvider(\n modeId,\n new RenameAdapter(libFiles, worker)\n )\n );\n }\n if (modeConfiguration.documentRangeFormattingEdits) {\n providers.push(\n languages.registerDocumentRangeFormattingEditProvider(\n modeId,\n new FormatAdapter(worker)\n )\n );\n }\n if (modeConfiguration.onTypeFormattingEdits) {\n providers.push(\n languages.registerOnTypeFormattingEditProvider(\n modeId,\n new FormatOnTypeAdapter(worker)\n )\n );\n }\n if (modeConfiguration.codeActions) {\n providers.push(\n languages.registerCodeActionProvider(modeId, new CodeActionAdaptor(worker))\n );\n }\n if (modeConfiguration.inlayHints) {\n providers.push(\n languages.registerInlayHintsProvider(modeId, new InlayHintsAdapter(worker))\n );\n }\n if (modeConfiguration.diagnostics) {\n providers.push(new DiagnosticsAdapter(libFiles, defaults, modeId, worker));\n }\n }\n registerProviders();\n return worker;\n}\nfunction disposeAll(disposables) {\n while (disposables.length) {\n disposables.pop().dispose();\n }\n}\n\nexport { CodeActionAdaptor, DefinitionAdapter, DiagnosticsAdapter, DocumentHighlightAdapter, FormatAdapter, FormatOnTypeAdapter, InlayHintsAdapter, LibFiles, OutlineAdapter, QuickInfoAdapter, ReferenceAdapter, RenameAdapter, SignatureHelpAdapter, SuggestAdapter, WorkerManager, getJavaScriptWorker, getTypeScriptWorker, setupJavaScript, setupTypeScript };\n"],"x_google_ignoreList":[0,1,2,3],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{n as e}from"./authStore-CNoNfv0F.js";import{C as t,N as n}from"./vendor-tanstack-0SjDjtT0.js";import{a as r}from"./pollUnlessForbidden-HHdQZW1N.js";import{nn as i}from"./index-BHo3c2Gk.js";function a(e){return new URL(e.match(/^https?:\/\//i)?e:`https://${e}`).toString()}function o(e){if(e?.domains){for(let t of e.domains)if(t.domain)return a(t.domain)}return e?.fqdn?a(e.fqdn):null}function s(){let{clusterId:a,instanceId:s}=t({strict:!1}),c=r(),{data:l}=n(i(a));return a&&e.checkForFabricConnect(a)||s&&e.checkForFabricConnect(s)||l&&!s?o(l):c.defaults.baseURL?c.defaults.baseURL.replace(/:9925\/?/,``):null}export{s as t};
2
- //# sourceMappingURL=useEntityRestURL-DtRblRgw.js.map
1
+ import{n as e}from"./authStore-CNoNfv0F.js";import{C as t,N as n}from"./vendor-tanstack-0SjDjtT0.js";import{a as r}from"./pollUnlessForbidden-HHdQZW1N.js";import{nn as i}from"./index-Dy3uDGXb.js";function a(e){return new URL(e.match(/^https?:\/\//i)?e:`https://${e}`).toString()}function o(e){if(e?.domains){for(let t of e.domains)if(t.domain)return a(t.domain)}return e?.fqdn?a(e.fqdn):null}function s(){let{clusterId:a,instanceId:s}=t({strict:!1}),c=r(),{data:l}=n(i(a));return a&&e.checkForFabricConnect(a)||s&&e.checkForFabricConnect(s)||l&&!s?o(l):c.defaults.baseURL?c.defaults.baseURL.replace(/:9925\/?/,``):null}export{s as t};
2
+ //# sourceMappingURL=useEntityRestURL-CGRGc1n7.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useEntityRestURL-DtRblRgw.js","names":[],"sources":["../../src/lib/urls/linkify.ts","../../src/lib/urls/getRestUrlForCluster.ts","../../src/config/useEntityRestURL.ts"],"sourcesContent":["export function linkify(fqdn: string): string {\n\treturn new URL(\n\t\t!fqdn.match(/^https?:\\/\\//i)\n\t\t\t? `https://${fqdn}`\n\t\t\t: fqdn,\n\t).toString();\n}\n","import { Cluster } from '@/integrations/api/api.patch';\nimport { linkify } from '@/lib/urls/linkify';\n\nexport function getRestUrlForCluster(cluster: undefined | Pick<Cluster, 'fqdn' | 'domains'>): string | null {\n\tif (cluster?.domains) {\n\t\tfor (const domain of cluster.domains) {\n\t\t\tif (domain.domain) {\n\t\t\t\treturn linkify(domain.domain);\n\t\t\t}\n\t\t}\n\t}\n\tif (!cluster?.fqdn) {\n\t\treturn null;\n\t}\n\treturn linkify(cluster.fqdn);\n}\n","import { useInstanceClient } from '@/config/useInstanceClient';\nimport { authStore } from '@/features/auth/store/authStore';\nimport { getClusterInfoQueryOptions } from '@/features/cluster/queries/getClusterInfoQuery';\nimport { getRestUrlForCluster } from '@/lib/urls/getRestUrlForCluster';\nimport { useQuery } from '@tanstack/react-query';\nimport { useParams } from '@tanstack/react-router';\n\nexport function useEntityRestURL(): string | null {\n\tconst { clusterId, instanceId }: { clusterId?: string; instanceId?: string } = useParams({ strict: false });\n\tconst instanceClient = useInstanceClient();\n\tconst { data: cluster } = useQuery(\n\t\tgetClusterInfoQueryOptions(clusterId),\n\t);\n\n\tconst isFabricConnect = (!!clusterId && authStore.checkForFabricConnect(clusterId))\n\t\t|| !!instanceId && authStore.checkForFabricConnect(instanceId);\n\tif (isFabricConnect || (cluster && !instanceId)) {\n\t\treturn getRestUrlForCluster(cluster);\n\t} else if (instanceClient.defaults.baseURL) {\n\t\treturn instanceClient.defaults.baseURL.replace(/:9925\\/?/, '');\n\t}\n\treturn null;\n}\n"],"mappings":"oMAAA,SAAgB,EAAQ,EAAsB,CAC7C,OAAO,IAAI,IACT,EAAK,MAAM,eAAe,EAExB,EADA,WAAW,GAEf,CAAC,CAAC,SAAS,CACZ,CCHA,SAAgB,EAAqB,EAAuE,CAC3G,GAAI,GAAS,aACP,IAAM,KAAU,EAAQ,QAC5B,GAAI,EAAO,OACV,OAAO,EAAQ,EAAO,MAAM,CAAA,CAO/B,OAHK,GAAS,KAGP,EAAQ,EAAQ,IAAI,EAFnB,IAGT,CCRA,SAAgB,GAAkC,CACjD,GAAM,CAAE,YAAW,cAA4D,EAAU,CAAE,OAAQ,EAAM,CAAC,EACpG,EAAiB,EAAkB,EACnC,CAAE,KAAM,GAAY,EACzB,EAA2B,CAAS,CACrC,EASA,OAP2B,GAAa,EAAU,sBAAsB,CAAS,GAC3E,GAAc,EAAU,sBAAsB,CAAU,GACtC,GAAW,CAAC,EAC5B,EAAqB,CAAO,EACzB,EAAe,SAAS,QAC3B,EAAe,SAAS,QAAQ,QAAQ,WAAY,EAAE,EAEvD,IACR"}
1
+ {"version":3,"file":"useEntityRestURL-CGRGc1n7.js","names":[],"sources":["../../src/lib/urls/linkify.ts","../../src/lib/urls/getRestUrlForCluster.ts","../../src/config/useEntityRestURL.ts"],"sourcesContent":["export function linkify(fqdn: string): string {\n\treturn new URL(\n\t\t!fqdn.match(/^https?:\\/\\//i)\n\t\t\t? `https://${fqdn}`\n\t\t\t: fqdn,\n\t).toString();\n}\n","import { Cluster } from '@/integrations/api/api.patch';\nimport { linkify } from '@/lib/urls/linkify';\n\nexport function getRestUrlForCluster(cluster: undefined | Pick<Cluster, 'fqdn' | 'domains'>): string | null {\n\tif (cluster?.domains) {\n\t\tfor (const domain of cluster.domains) {\n\t\t\tif (domain.domain) {\n\t\t\t\treturn linkify(domain.domain);\n\t\t\t}\n\t\t}\n\t}\n\tif (!cluster?.fqdn) {\n\t\treturn null;\n\t}\n\treturn linkify(cluster.fqdn);\n}\n","import { useInstanceClient } from '@/config/useInstanceClient';\nimport { authStore } from '@/features/auth/store/authStore';\nimport { getClusterInfoQueryOptions } from '@/features/cluster/queries/getClusterInfoQuery';\nimport { getRestUrlForCluster } from '@/lib/urls/getRestUrlForCluster';\nimport { useQuery } from '@tanstack/react-query';\nimport { useParams } from '@tanstack/react-router';\n\nexport function useEntityRestURL(): string | null {\n\tconst { clusterId, instanceId }: { clusterId?: string; instanceId?: string } = useParams({ strict: false });\n\tconst instanceClient = useInstanceClient();\n\tconst { data: cluster } = useQuery(\n\t\tgetClusterInfoQueryOptions(clusterId),\n\t);\n\n\tconst isFabricConnect = (!!clusterId && authStore.checkForFabricConnect(clusterId))\n\t\t|| !!instanceId && authStore.checkForFabricConnect(instanceId);\n\tif (isFabricConnect || (cluster && !instanceId)) {\n\t\treturn getRestUrlForCluster(cluster);\n\t} else if (instanceClient.defaults.baseURL) {\n\t\treturn instanceClient.defaults.baseURL.replace(/:9925\\/?/, '');\n\t}\n\treturn null;\n}\n"],"mappings":"oMAAA,SAAgB,EAAQ,EAAsB,CAC7C,OAAO,IAAI,IACT,EAAK,MAAM,eAAe,EAExB,EADA,WAAW,GAEf,CAAC,CAAC,SAAS,CACZ,CCHA,SAAgB,EAAqB,EAAuE,CAC3G,GAAI,GAAS,aACP,IAAM,KAAU,EAAQ,QAC5B,GAAI,EAAO,OACV,OAAO,EAAQ,EAAO,MAAM,CAAA,CAO/B,OAHK,GAAS,KAGP,EAAQ,EAAQ,IAAI,EAFnB,IAGT,CCRA,SAAgB,GAAkC,CACjD,GAAM,CAAE,YAAW,cAA4D,EAAU,CAAE,OAAQ,EAAM,CAAC,EACpG,EAAiB,EAAkB,EACnC,CAAE,KAAM,GAAY,EACzB,EAA2B,CAAS,CACrC,EASA,OAP2B,GAAa,EAAU,sBAAsB,CAAS,GAC3E,GAAc,EAAU,sBAAsB,CAAU,GACtC,GAAW,CAAC,EAC5B,EAAqB,CAAO,EACzB,EAAe,SAAS,QAC3B,EAAe,SAAS,QAAQ,QAAQ,WAAY,EAAE,EAEvD,IACR"}
@@ -21,7 +21,7 @@
21
21
  } catch (e) {}
22
22
  })();
23
23
  </script>
24
- <script type="module" crossorigin src="/assets/index-BHo3c2Gk.js"></script>
24
+ <script type="module" crossorigin src="/assets/index-Dy3uDGXb.js"></script>
25
25
  <link rel="modulepreload" crossorigin href="/assets/rolldown-runtime-CNC7AqOf.js">
26
26
  <link rel="modulepreload" crossorigin href="/assets/vendor-core-xUefYpUO.js">
27
27
  <link rel="modulepreload" crossorigin href="/assets/vendor-datadog-DyjkTkvg.js">
@@ -9,10 +9,29 @@ const UPGRADE_PROCEED = ['yes', 'y'];
9
9
 
10
10
  /**
11
11
  * Prompt the user before proceeding with a minor version downgrade
12
- * @param _upgradeObj - {UpgradeObject} Object includes the versions the data and current install are on
12
+ * @param upgradeObj - {UpgradeObject} Object includes the versions the data and current install are on
13
13
  * @returns {Promise<boolean>}
14
14
  */
15
- export async function forceDowngradePrompt(_upgradeObj: any) {
15
+ export async function forceDowngradePrompt(upgradeObj: any) {
16
+ const override = assignCMDENVVariables(['CONFIRM_DOWNGRADE']);
17
+ // Without a terminal, prompt.get() blocks on stdin forever (systemd, containers, CI) — and an
18
+ // override value the prompt library rejects (its pattern is lowercase-only) is deleted and
19
+ // falls through to that same blocking read. So with no TTY, resolve the answer here and never
20
+ // reach the prompt (#2046).
21
+ if (!process.stdin.isTTY) {
22
+ if (override.CONFIRM_DOWNGRADE === undefined) {
23
+ throw new Error(
24
+ `This instance's data was last run on Harper ${upgradeObj.data_version}, which is newer than this installed version ${upgradeObj.upgrade_version}.` +
25
+ ' Running the older version requires confirmation, and there is no interactive terminal to ask on.' +
26
+ ' Set CONFIRM_DOWNGRADE=yes (environment variable or --CONFIRM_DOWNGRADE yes) to proceed with the downgrade,' +
27
+ ` or run Harper ${upgradeObj.data_version} or newer.`
28
+ );
29
+ }
30
+ const answer = override.CONFIRM_DOWNGRADE.toLowerCase();
31
+ if (UPGRADE_PROCEED.includes(answer)) return true;
32
+ if (answer === 'no' || answer === 'n') return false;
33
+ throw new Error(`Unrecognized CONFIRM_DOWNGRADE value '${override.CONFIRM_DOWNGRADE}'; use yes or no.`);
34
+ }
16
35
  let downgradeMessage =
17
36
  `${os.EOL}` +
18
37
  chalk.bold.green(
@@ -22,7 +41,7 @@ export async function forceDowngradePrompt(_upgradeObj: any) {
22
41
  ' backup before proceeding.' +
23
42
  `${os.EOL}`
24
43
  );
25
- prompt.override = assignCMDENVVariables(['CONFIRM_DOWNGRADE']);
44
+ prompt.override = override;
26
45
  prompt.start();
27
46
  prompt.message = downgradeMessage;
28
47
  let downgradeConfirmation = {
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- import log from './logging/harper_logger.ts';
3
+ import log, { isErrorLike, inspectForLog } from './logging/harper_logger.ts';
4
4
  import * as terms from './hdbTerms.ts';
5
5
 
6
6
  /**
@@ -51,9 +51,30 @@ export async function callOperationFunctionAsAwait(
51
51
  throw err;
52
52
  }
53
53
  // This check is here to make sure a new HdbError is logged correctly
54
- if (err.http_resp_msg) {
54
+ // Read exactly once: err.http_resp_msg could be an accessor (component code is not required
55
+ // to use a plain data property), and classifying one read while logging a later, different
56
+ // read would let a value that was never actually checked reach the "safe" raw log.error path.
57
+ const http_resp_msg = err.http_resp_msg;
58
+ if (http_resp_msg) {
55
59
  log.error(`Error calling operation: ${promisifiedFunction.name}`);
56
- log.error(err.http_resp_msg);
60
+ if (typeof http_resp_msg === 'string' || isErrorLike(http_resp_msg)) {
61
+ // A string passes through as-is; an Error (same-realm or a VM-created cross-realm
62
+ // Error - component code runs through node:vm) goes through the normal log.error path
63
+ // so it gets the same secret-safe handling as any other logged Error (#1734), rather
64
+ // than the raw inspect() below.
65
+ log.error(http_resp_msg);
66
+ } else {
67
+ // Otherwise http_resp_msg is a structured diagnostic object (e.g. deployComponent's
68
+ // phase/install_output/deployment_id detail). Console's defaults (depth: 2,
69
+ // maxArrayLength: 100, maxStringLength: 10000) flatten that to `[Object]`, drop array
70
+ // entries past the 100th, and truncate any individual string over 10000 chars - hiding
71
+ // the very data an operator needs to grep (harper#1982), most concretely
72
+ // install_output.lines, which is capped at 200 entries / 16KB total. inspectForLog
73
+ // renders it fully, bounded well above that cap rather than left unbounded, and defers
74
+ // the (potentially expensive) render until the logger's level gate actually writes the
75
+ // entry rather than paying for it on a call that gets discarded.
76
+ log.error(inspectForLog(http_resp_msg, { depth: 8, maxArrayLength: 250, maxStringLength: 20000 }));
77
+ }
57
78
  throw err;
58
79
  }
59
80
  log.error(`Error calling operation: ${promisifiedFunction.name}`);
@@ -200,6 +200,8 @@ const USER_ERROR_MSGS = {
200
200
  ALTER_USER_ROLE_NOT_FOUND: (role) => `Update failed. Requested '${role}' role not found.`,
201
201
  DUP_ROLES_FOUND: (role) =>
202
202
  `Multiple ${role} roles found. Roles must have unique 'role' value. Please update and try again.`,
203
+ LAST_SUPER_USER:
204
+ 'Rejected: this change would leave the instance with no active super_user. Grant super_user to another active user first.',
203
205
  ROLE_NAME_NOT_FOUND: (role) => `${role} role not found`,
204
206
  USER_ALREADY_EXISTS: (user) => `User ${user} already exists`,
205
207
  USER_NOT_EXIST: (user) => `User ${user} does not exist`,
@@ -164,7 +164,7 @@ export const MIGRATING_DIR_SUFFIX = '.migrating';
164
164
  export const LEGACY_DATABASES_DIR_NAME = 'schema';
165
165
  /** Transaction directory */
166
166
  export const TRANSACTIONS_DIR_NAME = 'transactions';
167
- /** Backup directory */
167
+ /** Backup directory (config-file backups and managed RocksDB database backups) */
168
168
  export const BACKUP_DIR_NAME = 'backup';
169
169
 
170
170
  /** Key for specifying process specific environment variables */
@@ -328,6 +328,12 @@ export const OPERATIONS_ENUM = {
328
328
  AUDIT_NODE_MODULES: 'audit_node_modules',
329
329
  PURGE_STREAM: 'purge_stream',
330
330
  GET_BACKUP: 'get_backup',
331
+ CREATE_BACKUP: 'create_backup',
332
+ LIST_BACKUPS: 'list_backups',
333
+ VERIFY_BACKUP: 'verify_backup',
334
+ DELETE_BACKUP: 'delete_backup',
335
+ PURGE_BACKUPS: 'purge_backups',
336
+ RESTORE_BACKUP: 'restore_backup',
331
337
  CLEANUP_ORPHAN_BLOBS: 'cleanup_orphan_blobs',
332
338
  GET_ANALYTICS: 'get_analytics',
333
339
  LIST_METRICS: 'list_metrics',
@@ -547,6 +553,7 @@ export const CONFIG_PARAMS = {
547
553
  LICENSE_MODE: 'license_mode',
548
554
  LICENSE_REGION: 'license_region',
549
555
  LOCALSTUDIO_ENABLED: 'localStudio_enabled',
556
+ MODELSGATEWAY_ENABLED: 'modelsGateway_enabled',
550
557
  LOGGING_COLORS: 'logging_colors',
551
558
  LOGGING_CONSOLE: 'logging_console',
552
559
  LOGGING_FILE: 'logging_file',
@@ -668,6 +675,7 @@ export const CONFIG_PARAMS = {
668
675
  STORAGE_MAX_READ_TRANSACTION_OPEN_TIME: 'storage_maxReadTransactionOpenTime',
669
676
  STORAGE_DEBUGLONGTRANSACTIONS: 'storage_debugLongTransactions',
670
677
  STORAGE_PATH: 'storage_path',
678
+ STORAGE_BACKUPPATH: 'storage_backupPath',
671
679
  STORAGE_BLOBPATHS: 'storage_blobPaths',
672
680
  STORAGE_BLOBCLEANUPSPEED: 'storage_blobCleanupSpeed',
673
681
  STORAGE_BLOBREADTIMEOUT: 'storage_blobReadTimeout',
@@ -686,6 +694,7 @@ export const CONFIG_PARAMS = {
686
694
  STORAGE_TRANSACTIONLOG_COOLINGINTERVAL: 'storage_transactionLog_coolingInterval',
687
695
  STORAGE_ENGINE: 'storage_engine',
688
696
  STORAGE_READONLY: 'storage_readOnly',
697
+ STORAGE_ROCKS_COMPRESSION: 'storage_rocks_compression',
689
698
  STORAGE_ROCKS_BLOCKCACHESIZE: 'storage_rocks_blockCacheSize',
690
699
  STORAGE_ROCKS_WRITEBUFFERMANAGERSIZE: 'storage_rocks_writeBufferManagerSize',
691
700
  STORAGE_ROCKS_WRITEBUFFERMANAGERCOSTTOCACHE: 'storage_rocks_writeBufferManagerCostToCache',
@@ -812,6 +821,9 @@ export const JOB_TYPE_ENUM = {
812
821
  export_to_s3: 'export_to_s3',
813
822
  import_from_s3: 'import_from_s3',
814
823
  restart_service: 'restart_service',
824
+ create_backup: OPERATIONS_ENUM.CREATE_BACKUP,
825
+ verify_backup: OPERATIONS_ENUM.VERIFY_BACKUP,
826
+ restore_backup: OPERATIONS_ENUM.RESTORE_BACKUP,
815
827
  } as const;
816
828
 
817
829
  /** Specifies values for licenses */