@harperfast/harper 5.2.0 → 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.
- package/bin/copyDb.ts +21 -4
- package/bin/harper.ts +20 -51
- package/bin/help.ts +216 -0
- package/components/Application.ts +236 -46
- package/components/ApplicationScope.ts +26 -0
- package/components/EntryHandler.ts +410 -105
- package/components/RuntimeModuleTracker.ts +189 -0
- package/components/Scope.ts +68 -24
- package/components/componentLoader.ts +70 -16
- package/components/deployLifecycle.ts +119 -33
- package/components/mcp/tools/operations.ts +6 -0
- package/components/operations.js +4 -6
- package/config/configUtils.ts +12 -9
- package/config-root.schema.json +10 -0
- package/dataLayer/harperBridge/ResourceBridge.ts +26 -5
- package/dataLayer/hdbInfoController.ts +8 -0
- package/dataLayer/schemaDescribe.ts +2 -1
- package/dist/bin/copyDb.js +13 -2
- package/dist/bin/copyDb.js.map +1 -1
- package/dist/bin/harper.d.ts +6 -0
- package/dist/bin/harper.js +18 -50
- package/dist/bin/harper.js.map +1 -1
- package/dist/bin/help.d.ts +8 -0
- package/dist/bin/help.js +192 -0
- package/dist/bin/help.js.map +1 -0
- package/dist/components/Application.d.ts +16 -1
- package/dist/components/Application.js +210 -38
- package/dist/components/Application.js.map +1 -1
- package/dist/components/ApplicationScope.d.ts +7 -0
- package/dist/components/ApplicationScope.js +22 -0
- package/dist/components/ApplicationScope.js.map +1 -1
- package/dist/components/EntryHandler.d.ts +4 -4
- package/dist/components/EntryHandler.js +386 -95
- package/dist/components/EntryHandler.js.map +1 -1
- package/dist/components/RuntimeModuleTracker.d.ts +11 -0
- package/dist/components/RuntimeModuleTracker.js +189 -0
- package/dist/components/RuntimeModuleTracker.js.map +1 -0
- package/dist/components/Scope.d.ts +1 -0
- package/dist/components/Scope.js +69 -22
- package/dist/components/Scope.js.map +1 -1
- package/dist/components/componentLoader.js +69 -10
- package/dist/components/componentLoader.js.map +1 -1
- package/dist/components/deployLifecycle.d.ts +6 -2
- package/dist/components/deployLifecycle.js +109 -31
- package/dist/components/deployLifecycle.js.map +1 -1
- package/dist/components/mcp/tools/operations.js +6 -0
- package/dist/components/mcp/tools/operations.js.map +1 -1
- package/dist/components/operations.js +4 -6
- package/dist/components/operations.js.map +1 -1
- package/dist/config/configUtils.js +13 -9
- package/dist/config/configUtils.js.map +1 -1
- package/dist/dataLayer/harperBridge/ResourceBridge.js +12 -5
- package/dist/dataLayer/harperBridge/ResourceBridge.js.map +1 -1
- package/dist/dataLayer/hdbInfoController.js +4 -0
- package/dist/dataLayer/hdbInfoController.js.map +1 -1
- package/dist/dataLayer/schemaDescribe.js +2 -1
- package/dist/dataLayer/schemaDescribe.js.map +1 -1
- package/dist/resources/DatabaseTransaction.d.ts +55 -0
- package/dist/resources/DatabaseTransaction.js +282 -103
- package/dist/resources/DatabaseTransaction.js.map +1 -1
- package/dist/resources/ResourceInterface.d.ts +8 -2
- package/dist/resources/ResourceInterface.js.map +1 -1
- package/dist/resources/Resources.js +22 -4
- package/dist/resources/Resources.js.map +1 -1
- package/dist/resources/Table.d.ts +6 -5
- package/dist/resources/Table.js +92 -15
- package/dist/resources/Table.js.map +1 -1
- package/dist/resources/analytics/write.js +6 -6
- package/dist/resources/analytics/write.js.map +1 -1
- package/dist/resources/blob.d.ts +0 -1
- package/dist/resources/blob.js +15 -7
- package/dist/resources/blob.js.map +1 -1
- package/dist/resources/databases.d.ts +22 -5
- package/dist/resources/databases.js +118 -9
- package/dist/resources/databases.js.map +1 -1
- package/dist/resources/jsResource.d.ts +4 -26
- package/dist/resources/jsResource.js +5 -59
- package/dist/resources/jsResource.js.map +1 -1
- package/dist/resources/models/Models.d.ts +11 -1
- package/dist/resources/models/Models.js +10 -1
- package/dist/resources/models/Models.js.map +1 -1
- package/dist/resources/models/backendRegistry.d.ts +9 -0
- package/dist/resources/models/backendRegistry.js +10 -0
- package/dist/resources/models/backendRegistry.js.map +1 -1
- package/dist/resources/models/openaiStream.d.ts +16 -1
- package/dist/resources/models/openaiStream.js +113 -21
- package/dist/resources/models/openaiStream.js.map +1 -1
- package/dist/resources/models/v1/chatCompletions.d.ts +54 -0
- package/dist/resources/models/v1/chatCompletions.js +115 -0
- package/dist/resources/models/v1/chatCompletions.js.map +1 -0
- package/dist/resources/models/v1/embeddings.d.ts +11 -0
- package/dist/resources/models/v1/embeddings.js +71 -0
- package/dist/resources/models/v1/embeddings.js.map +1 -0
- package/dist/resources/models/v1/errors.d.ts +54 -0
- package/dist/resources/models/v1/errors.js +130 -0
- package/dist/resources/models/v1/errors.js.map +1 -0
- package/dist/resources/models/v1/index.d.ts +36 -0
- package/dist/resources/models/v1/index.js +75 -0
- package/dist/resources/models/v1/index.js.map +1 -0
- package/dist/resources/models/v1/models.d.ts +26 -0
- package/dist/resources/models/v1/models.js +44 -0
- package/dist/resources/models/v1/models.js.map +1 -0
- package/dist/resources/models/v1/translation.d.ts +133 -0
- package/dist/resources/models/v1/translation.js +298 -0
- package/dist/resources/models/v1/translation.js.map +1 -0
- package/dist/resources/roles.d.ts +1 -1
- package/dist/resources/roles.js +54 -7
- package/dist/resources/roles.js.map +1 -1
- package/dist/security/jsLoader.js +84 -33
- package/dist/security/jsLoader.js.map +1 -1
- package/dist/security/role.js +4 -0
- package/dist/security/role.js.map +1 -1
- package/dist/security/superUserGuard.d.ts +7 -0
- package/dist/security/superUserGuard.js +23 -0
- package/dist/security/superUserGuard.js.map +1 -0
- package/dist/security/tokenAuthentication.d.ts +0 -1
- package/dist/security/tokenAuthentication.js +6 -2
- package/dist/security/tokenAuthentication.js.map +1 -1
- package/dist/security/user.d.ts +6 -1
- package/dist/security/user.js +23 -1
- package/dist/security/user.js.map +1 -1
- package/dist/server/http.d.ts +23 -2
- package/dist/server/http.js +99 -12
- package/dist/server/http.js.map +1 -1
- package/dist/server/operationsServer.d.ts +0 -2
- package/dist/server/operationsServer.js.map +1 -1
- package/dist/server/serverHelpers/multipartParser.js +9 -0
- package/dist/server/serverHelpers/multipartParser.js.map +1 -1
- package/dist/server/serverHelpers/operationAuthorizationState.d.ts +2 -0
- package/dist/server/serverHelpers/operationAuthorizationState.js +13 -0
- package/dist/server/serverHelpers/operationAuthorizationState.js.map +1 -0
- package/dist/server/serverHelpers/registeredOperations.d.ts +3 -2
- package/dist/server/serverHelpers/registeredOperations.js +14 -13
- package/dist/server/serverHelpers/registeredOperations.js.map +1 -1
- package/dist/server/serverHelpers/serverHandlers.js +19 -3
- package/dist/server/serverHelpers/serverHandlers.js.map +1 -1
- package/dist/server/serverHelpers/serverUtilities.d.ts +1 -1
- package/dist/server/serverHelpers/serverUtilities.js +10 -7
- package/dist/server/serverHelpers/serverUtilities.js.map +1 -1
- package/dist/server/static.js +57 -18
- package/dist/server/static.js.map +1 -1
- package/dist/server/storageReclamation.d.ts +17 -0
- package/dist/server/storageReclamation.js +90 -6
- package/dist/server/storageReclamation.js.map +1 -1
- package/dist/server/threads/socketRouter.js +20 -0
- package/dist/server/threads/socketRouter.js.map +1 -1
- package/dist/server/threads/threadServer.js +12 -0
- package/dist/server/threads/threadServer.js.map +1 -1
- package/dist/sqlEngine/diff/differential.js +7 -3
- package/dist/sqlEngine/diff/differential.js.map +1 -1
- package/dist/sqlTranslator/index.js +6 -1
- package/dist/sqlTranslator/index.js.map +1 -1
- package/dist/upgrade/upgradePrompt.d.ts +2 -2
- package/dist/upgrade/upgradePrompt.js +22 -3
- package/dist/upgrade/upgradePrompt.js.map +1 -1
- package/dist/utility/errors/commonErrors.d.ts +1 -0
- package/dist/utility/errors/commonErrors.js +1 -0
- package/dist/utility/errors/commonErrors.js.map +1 -1
- package/dist/utility/hdbTerms.d.ts +2 -0
- package/dist/utility/hdbTerms.js +2 -0
- package/dist/utility/hdbTerms.js.map +1 -1
- package/dist/utility/install/installer.js +32 -0
- package/dist/utility/install/installer.js.map +1 -1
- package/dist/utility/logging/harper_logger.d.ts +7 -0
- package/dist/utility/logging/harper_logger.js +57 -24
- package/dist/utility/logging/harper_logger.js.map +1 -1
- package/npm-shrinkwrap.json +197 -193
- package/package.json +9 -7
- package/resources/DatabaseTransaction.ts +310 -101
- package/resources/ResourceInterface.ts +8 -2
- package/resources/Resources.ts +22 -4
- package/resources/Table.ts +321 -243
- package/resources/analytics/write.ts +22 -20
- package/resources/blob.ts +15 -8
- package/resources/databases.ts +123 -12
- package/resources/jsResource.ts +5 -62
- package/resources/models/Models.ts +14 -1
- package/resources/models/backendRegistry.ts +10 -0
- package/resources/models/openaiStream.ts +131 -19
- package/resources/models/v1/chatCompletions.ts +128 -0
- package/resources/models/v1/embeddings.ts +70 -0
- package/resources/models/v1/errors.ts +141 -0
- package/resources/models/v1/index.ts +72 -0
- package/resources/models/v1/models.ts +53 -0
- package/resources/models/v1/translation.ts +362 -0
- package/resources/roles.ts +67 -7
- package/security/jsLoader.ts +84 -30
- package/security/role.ts +7 -0
- package/security/superUserGuard.ts +20 -0
- package/security/tokenAuthentication.ts +6 -3
- package/security/user.ts +26 -1
- package/server/DESIGN.md +45 -34
- package/server/http.ts +100 -13
- package/server/operationsServer.ts +0 -2
- package/server/serverHelpers/multipartParser.ts +9 -0
- package/server/serverHelpers/operationAuthorizationState.ts +11 -0
- package/server/serverHelpers/registeredOperations.ts +19 -15
- package/server/serverHelpers/serverHandlers.js +20 -3
- package/server/serverHelpers/serverUtilities.ts +10 -7
- package/server/static.ts +75 -20
- package/server/storageReclamation.ts +104 -8
- package/server/threads/socketRouter.ts +20 -0
- package/server/threads/threadServer.js +11 -0
- package/sqlTranslator/index.ts +6 -1
- package/static/defaultConfig.yaml +2 -0
- package/studio/web/assets/{Chat-DoVWScmq.js → Chat-aApwhRmz.js} +2 -2
- package/studio/web/assets/{Chat-DoVWScmq.js.map → Chat-aApwhRmz.js.map} +1 -1
- package/studio/web/assets/{FloatingChat-UZ2NsUOZ.js → FloatingChat-sC0H91n9.js} +4 -4
- package/studio/web/assets/{FloatingChat-UZ2NsUOZ.js.map → FloatingChat-sC0H91n9.js.map} +1 -1
- package/studio/web/assets/{apiToken-BUI_04o7.js → apiToken-DZ8JhHOI.js} +2 -2
- package/studio/web/assets/{apiToken-BUI_04o7.js.map → apiToken-DZ8JhHOI.js.map} +1 -1
- package/studio/web/assets/{applications-D03NA7wW.js → applications-9SEVLIO5.js} +2 -2
- package/studio/web/assets/{applications-D03NA7wW.js.map → applications-9SEVLIO5.js.map} +1 -1
- package/studio/web/assets/{index-Bh_CNAHr.js → index-Dy3uDGXb.js} +6 -6
- package/studio/web/assets/{index-Bh_CNAHr.js.map → index-Dy3uDGXb.js.map} +1 -1
- package/studio/web/assets/{index.lazy-Dx3MpyDC.js → index.lazy-CN1zq4I4.js} +4 -4
- package/studio/web/assets/{index.lazy-Dx3MpyDC.js.map → index.lazy-CN1zq4I4.js.map} +1 -1
- package/studio/web/assets/{notifications-0edoFTsb.js → notifications-BFAF07xr.js} +2 -2
- package/studio/web/assets/{notifications-0edoFTsb.js.map → notifications-BFAF07xr.js.map} +1 -1
- package/studio/web/assets/{notifications-CwKhipK7.js → notifications-CKlYVvVN.js} +2 -2
- package/studio/web/assets/{notifications-CwKhipK7.js.map → notifications-CKlYVvVN.js.map} +1 -1
- package/studio/web/assets/{profile-DUfEPQtx.js → profile-A1zhEdFG.js} +2 -2
- package/studio/web/assets/{profile-DUfEPQtx.js.map → profile-A1zhEdFG.js.map} +1 -1
- package/studio/web/assets/{setComponentFile-DMPo4UjC.js → setComponentFile-SEtBt_GV.js} +2 -2
- package/studio/web/assets/{setComponentFile-DMPo4UjC.js.map → setComponentFile-SEtBt_GV.js.map} +1 -1
- package/studio/web/assets/{setup-B56Oz1_u.js → setup-BisINqdH.js} +2 -2
- package/studio/web/assets/{setup-B56Oz1_u.js.map → setup-BisINqdH.js.map} +1 -1
- package/studio/web/assets/{status-BAod7p3o.js → status-BuQoCc7l.js} +2 -2
- package/studio/web/assets/{status-BAod7p3o.js.map → status-BuQoCc7l.js.map} +1 -1
- package/studio/web/assets/{swagger-ui-react-lQrBxfwM.js → swagger-ui-react-CAi_s1PC.js} +2 -2
- package/studio/web/assets/{swagger-ui-react-lQrBxfwM.js.map → swagger-ui-react-CAi_s1PC.js.map} +1 -1
- package/studio/web/assets/{tsMode-CrHCRjTK.js → tsMode-DT74tlkM.js} +2 -2
- package/studio/web/assets/{tsMode-CrHCRjTK.js.map → tsMode-DT74tlkM.js.map} +1 -1
- package/studio/web/assets/{useEntityRestURL-DoaBMEvU.js → useEntityRestURL-CGRGc1n7.js} +2 -2
- package/studio/web/assets/{useEntityRestURL-DoaBMEvU.js.map → useEntityRestURL-CGRGc1n7.js.map} +1 -1
- package/studio/web/index.html +1 -1
- package/upgrade/upgradePrompt.ts +22 -3
- package/utility/errors/commonErrors.ts +2 -0
- package/utility/hdbTerms.ts +2 -0
- package/utility/install/installer.ts +37 -0
- package/utility/logging/harper_logger.ts +57 -26
|
@@ -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-
|
|
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-
|
|
12
|
+
//# sourceMappingURL=tsMode-DT74tlkM.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tsMode-CrHCRjTK.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-
|
|
2
|
-
//# sourceMappingURL=useEntityRestURL-
|
|
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
|
package/studio/web/assets/{useEntityRestURL-DoaBMEvU.js.map → useEntityRestURL-CGRGc1n7.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useEntityRestURL-
|
|
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"}
|
package/studio/web/index.html
CHANGED
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
} catch (e) {}
|
|
22
22
|
})();
|
|
23
23
|
</script>
|
|
24
|
-
<script type="module" crossorigin src="/assets/index-
|
|
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">
|
package/upgrade/upgradePrompt.ts
CHANGED
|
@@ -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
|
|
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(
|
|
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 =
|
|
44
|
+
prompt.override = override;
|
|
26
45
|
prompt.start();
|
|
27
46
|
prompt.message = downgradeMessage;
|
|
28
47
|
let downgradeConfirmation = {
|
|
@@ -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`,
|
package/utility/hdbTerms.ts
CHANGED
|
@@ -553,6 +553,7 @@ export const CONFIG_PARAMS = {
|
|
|
553
553
|
LICENSE_MODE: 'license_mode',
|
|
554
554
|
LICENSE_REGION: 'license_region',
|
|
555
555
|
LOCALSTUDIO_ENABLED: 'localStudio_enabled',
|
|
556
|
+
MODELSGATEWAY_ENABLED: 'modelsGateway_enabled',
|
|
556
557
|
LOGGING_COLORS: 'logging_colors',
|
|
557
558
|
LOGGING_CONSOLE: 'logging_console',
|
|
558
559
|
LOGGING_FILE: 'logging_file',
|
|
@@ -693,6 +694,7 @@ export const CONFIG_PARAMS = {
|
|
|
693
694
|
STORAGE_TRANSACTIONLOG_COOLINGINTERVAL: 'storage_transactionLog_coolingInterval',
|
|
694
695
|
STORAGE_ENGINE: 'storage_engine',
|
|
695
696
|
STORAGE_READONLY: 'storage_readOnly',
|
|
697
|
+
STORAGE_ROCKS_COMPRESSION: 'storage_rocks_compression',
|
|
696
698
|
STORAGE_ROCKS_BLOCKCACHESIZE: 'storage_rocks_blockCacheSize',
|
|
697
699
|
STORAGE_ROCKS_WRITEBUFFERMANAGERSIZE: 'storage_rocks_writeBufferManagerSize',
|
|
698
700
|
STORAGE_ROCKS_WRITEBUFFERMANAGERCOSTTOCACHE: 'storage_rocks_writeBufferManagerCostToCache',
|
|
@@ -19,6 +19,7 @@ import * as hdbTerms from '../hdbTerms.ts';
|
|
|
19
19
|
const { CONFIG_PARAMS } = hdbTerms;
|
|
20
20
|
import installValidator from '../../validation/installValidator.ts';
|
|
21
21
|
import mountHdb from '../mount_hdb.ts';
|
|
22
|
+
import { composeConfigFromEnv } from '../../config/harperConfigEnvVars.ts';
|
|
22
23
|
import * as configUtils from '../../config/configUtils.ts';
|
|
23
24
|
import * as userOps from '../../security/user.ts';
|
|
24
25
|
import * as roleOps from '../../security/role.ts';
|
|
@@ -197,6 +198,7 @@ async function install() {
|
|
|
197
198
|
}
|
|
198
199
|
envManager.setHdbBasePath(hdbRoot);
|
|
199
200
|
envManager.setProperty(hdbTerms.CONFIG_PARAMS.STORAGE_ENGINE, installParams.STORAGE_ENGINE);
|
|
201
|
+
stageRocksCompression();
|
|
200
202
|
|
|
201
203
|
// Creates the Harper project folder structure and the LMDB environments/dbis.
|
|
202
204
|
await mountHdb(hdbRoot);
|
|
@@ -575,6 +577,41 @@ export function applyInstallModeDefaults(args, defaultsMode) {
|
|
|
575
577
|
* @param installParams
|
|
576
578
|
* @returns {Promise<void>}
|
|
577
579
|
*/
|
|
580
|
+
/**
|
|
581
|
+
* Make the deployment codec readable before `mountHdb()` creates the system column families.
|
|
582
|
+
*
|
|
583
|
+
* The config file is not written until `createConfigFile()`, several steps after `mountHdb()`, but
|
|
584
|
+
* RocksDB fixes a column family's codec when the family is created and refuses a later reopen that
|
|
585
|
+
* asks for a different one — and worker threads share one process-wide family registry. Left
|
|
586
|
+
* unstaged, the main thread creates `__dbis__` at the build default while every worker resolves the
|
|
587
|
+
* configured codec, and Harper dies with "The system database failed to load". Staging it in the
|
|
588
|
+
* in-memory config here is the same trick the STORAGE_ENGINE line above uses.
|
|
589
|
+
*
|
|
590
|
+
* Checked in the same precedence `createConfigFile()` itself later resolves the value with, so
|
|
591
|
+
* `storage.compression` also participates when no explicit RocksDB codec is set: its default is
|
|
592
|
+
* true, which resolves to lz4. Stage both values from every source `createConfigFile()` honors so
|
|
593
|
+
* the first open cannot create `__dbis__` with `none` and later workers reopen it with lz4.
|
|
594
|
+
*/
|
|
595
|
+
function stageRocksCompression() {
|
|
596
|
+
const rocksCompression = hdbTerms.CONFIG_PARAMS.STORAGE_ROCKS_COMPRESSION;
|
|
597
|
+
const compression = hdbTerms.CONFIG_PARAMS.STORAGE_COMPRESSION;
|
|
598
|
+
const envConfig = composeConfigFromEnv();
|
|
599
|
+
const commandLineConfig = assignCMDENVVariables([rocksCompression, compression], true);
|
|
600
|
+
const fileConfig = cfgEnv[hdbTerms.INSTALL_PROMPTS.HDB_CONFIG] ? getConfigFromFile() : {};
|
|
601
|
+
const configuredRocksCompression =
|
|
602
|
+
envConfig?.storage?.rocks?.compression ?? commandLineConfig[rocksCompression] ?? fileConfig[rocksCompression];
|
|
603
|
+
const configuredCompression =
|
|
604
|
+
envConfig?.storage?.compression ?? commandLineConfig[compression] ?? fileConfig[compression] ?? true;
|
|
605
|
+
if (
|
|
606
|
+
configuredRocksCompression !== undefined &&
|
|
607
|
+
configuredRocksCompression !== null &&
|
|
608
|
+
configuredRocksCompression !== ''
|
|
609
|
+
) {
|
|
610
|
+
envManager.setProperty(rocksCompression, configuredRocksCompression);
|
|
611
|
+
}
|
|
612
|
+
envManager.setProperty(compression, configuredCompression);
|
|
613
|
+
}
|
|
614
|
+
|
|
578
615
|
async function createConfigFile(installParams) {
|
|
579
616
|
hdbLogger.trace('Creating Harper config file');
|
|
580
617
|
const args = assignCMDENVVariables(Object.keys(hdbTerms.CONFIG_PARAM_MAP), true);
|