@mrclrchtr/supi-lsp 1.11.2 → 1.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (132) hide show
  1. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/package.json +1 -1
  2. package/node_modules/@mrclrchtr/supi-code-runtime/package.json +2 -2
  3. package/node_modules/@mrclrchtr/supi-core/package.json +1 -1
  4. package/node_modules/vscode-languageserver-protocol/README.md +3 -3
  5. package/node_modules/vscode-languageserver-protocol/eslint.config.js +13 -0
  6. package/node_modules/vscode-languageserver-protocol/lib/browser/main.js +1 -2
  7. package/node_modules/vscode-languageserver-protocol/lib/common/api.d.ts +1 -1
  8. package/node_modules/vscode-languageserver-protocol/lib/common/api.js +1 -1
  9. package/node_modules/vscode-languageserver-protocol/lib/common/connection.d.ts +13 -13
  10. package/node_modules/vscode-languageserver-protocol/lib/common/connection.js +1 -2
  11. package/node_modules/vscode-languageserver-protocol/lib/common/messages.d.ts +7 -0
  12. package/node_modules/vscode-languageserver-protocol/lib/common/messages.js +38 -1
  13. package/node_modules/vscode-languageserver-protocol/lib/common/protocol.callHierarchy.d.ts +5 -2
  14. package/node_modules/vscode-languageserver-protocol/lib/common/protocol.callHierarchy.js +3 -0
  15. package/node_modules/vscode-languageserver-protocol/lib/common/protocol.colorProvider.d.ts +5 -3
  16. package/node_modules/vscode-languageserver-protocol/lib/common/protocol.colorProvider.js +3 -1
  17. package/node_modules/vscode-languageserver-protocol/lib/common/protocol.configuration.d.ts +2 -1
  18. package/node_modules/vscode-languageserver-protocol/lib/common/protocol.configuration.js +1 -0
  19. package/node_modules/vscode-languageserver-protocol/lib/common/protocol.d.ts +735 -361
  20. package/node_modules/vscode-languageserver-protocol/lib/common/protocol.declaration.d.ts +3 -2
  21. package/node_modules/vscode-languageserver-protocol/lib/common/protocol.declaration.js +1 -0
  22. package/node_modules/vscode-languageserver-protocol/lib/common/protocol.diagnostic.d.ts +12 -3
  23. package/node_modules/vscode-languageserver-protocol/lib/common/protocol.diagnostic.js +37 -1
  24. package/node_modules/vscode-languageserver-protocol/lib/common/protocol.fileOperations.d.ts +8 -2
  25. package/node_modules/vscode-languageserver-protocol/lib/common/protocol.fileOperations.js +6 -0
  26. package/node_modules/vscode-languageserver-protocol/lib/common/protocol.foldingRange.d.ts +34 -25
  27. package/node_modules/vscode-languageserver-protocol/lib/common/protocol.foldingRange.js +4 -1
  28. package/node_modules/vscode-languageserver-protocol/lib/common/protocol.implementation.d.ts +3 -2
  29. package/node_modules/vscode-languageserver-protocol/lib/common/protocol.implementation.js +1 -0
  30. package/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlayHint.d.ts +15 -8
  31. package/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlayHint.js +3 -0
  32. package/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlineCompletion.d.ts +3 -7
  33. package/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlineCompletion.js +1 -1
  34. package/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlineValue.d.ts +7 -6
  35. package/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlineValue.js +2 -0
  36. package/node_modules/vscode-languageserver-protocol/lib/common/protocol.js +97 -9
  37. package/node_modules/vscode-languageserver-protocol/lib/common/protocol.linkedEditingRange.d.ts +3 -2
  38. package/node_modules/vscode-languageserver-protocol/lib/common/protocol.linkedEditingRange.js +1 -0
  39. package/node_modules/vscode-languageserver-protocol/lib/common/protocol.moniker.d.ts +3 -2
  40. package/node_modules/vscode-languageserver-protocol/lib/common/protocol.moniker.js +1 -0
  41. package/node_modules/vscode-languageserver-protocol/lib/common/protocol.notebook.d.ts +91 -63
  42. package/node_modules/vscode-languageserver-protocol/lib/common/protocol.notebook.js +34 -1
  43. package/node_modules/vscode-languageserver-protocol/lib/common/protocol.progress.d.ts +2 -1
  44. package/node_modules/vscode-languageserver-protocol/lib/common/protocol.progress.js +1 -0
  45. package/node_modules/vscode-languageserver-protocol/lib/common/protocol.selectionRange.d.ts +3 -2
  46. package/node_modules/vscode-languageserver-protocol/lib/common/protocol.selectionRange.js +1 -0
  47. package/node_modules/vscode-languageserver-protocol/lib/common/protocol.semanticTokens.d.ts +44 -26
  48. package/node_modules/vscode-languageserver-protocol/lib/common/protocol.semanticTokens.js +4 -0
  49. package/node_modules/vscode-languageserver-protocol/lib/common/protocol.showDocument.d.ts +4 -3
  50. package/node_modules/vscode-languageserver-protocol/lib/common/protocol.showDocument.js +1 -0
  51. package/node_modules/vscode-languageserver-protocol/lib/common/protocol.textDocumentContent.d.ts +93 -0
  52. package/node_modules/vscode-languageserver-protocol/lib/common/protocol.textDocumentContent.js +33 -0
  53. package/node_modules/vscode-languageserver-protocol/lib/common/protocol.typeDefinition.d.ts +3 -2
  54. package/node_modules/vscode-languageserver-protocol/lib/common/protocol.typeDefinition.js +2 -1
  55. package/node_modules/vscode-languageserver-protocol/lib/common/protocol.typeHierarchy.d.ts +3 -2
  56. package/node_modules/vscode-languageserver-protocol/lib/common/protocol.typeHierarchy.js +1 -0
  57. package/node_modules/vscode-languageserver-protocol/lib/common/protocol.workspaceFolder.d.ts +3 -1
  58. package/node_modules/vscode-languageserver-protocol/lib/common/protocol.workspaceFolder.js +2 -0
  59. package/node_modules/vscode-languageserver-protocol/lib/common/utils/is.js +9 -10
  60. package/node_modules/vscode-languageserver-protocol/lib/node/main.d.ts +0 -1
  61. package/node_modules/vscode-languageserver-protocol/lib/node/main.js +1 -2
  62. package/node_modules/vscode-languageserver-protocol/metaModel.schema.json +84 -3
  63. package/node_modules/vscode-languageserver-protocol/package.json +21 -12
  64. package/node_modules/vscode-languageserver-types/README.md +1 -1
  65. package/node_modules/vscode-languageserver-types/eslint.config.js +13 -0
  66. package/node_modules/vscode-languageserver-types/lib/esm/main.d.ts +483 -107
  67. package/node_modules/vscode-languageserver-types/lib/esm/main.js +255 -62
  68. package/node_modules/vscode-languageserver-types/lib/umd/main.d.ts +483 -107
  69. package/node_modules/vscode-languageserver-types/lib/umd/main.js +201 -8
  70. package/node_modules/vscode-languageserver-types/package.json +9 -8
  71. package/package.json +3 -3
  72. package/src/config/types.ts +3 -0
  73. package/src/diagnostics/diagnostic-context.ts +2 -1
  74. package/src/diagnostics/diagnostic-display.ts +2 -1
  75. package/src/diagnostics/diagnostics.ts +2 -1
  76. package/src/diagnostics/stale-diagnostics.ts +3 -1
  77. package/src/diagnostics/suppression-diagnostics.ts +3 -1
  78. package/src/format.ts +30 -3
  79. package/src/ui/ui.ts +3 -1
  80. package/node_modules/vscode-languageserver-protocol/browser.d.ts +0 -6
  81. package/node_modules/vscode-languageserver-protocol/browser.js +0 -7
  82. package/node_modules/vscode-languageserver-protocol/node.cmd +0 -5
  83. package/node_modules/vscode-languageserver-protocol/node.d.ts +0 -6
  84. package/node_modules/vscode-languageserver-protocol/node.js +0 -7
  85. package/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/License.txt +0 -11
  86. package/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/README.md +0 -69
  87. package/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/browser.d.ts +0 -6
  88. package/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/browser.js +0 -7
  89. package/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/browser/main.d.ts +0 -17
  90. package/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/browser/main.js +0 -76
  91. package/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/browser/ril.d.ts +0 -12
  92. package/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/browser/ril.js +0 -156
  93. package/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/api.d.ts +0 -14
  94. package/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/api.js +0 -81
  95. package/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/cancellation.d.ts +0 -32
  96. package/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/cancellation.js +0 -96
  97. package/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/connection.d.ts +0 -358
  98. package/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/connection.js +0 -1212
  99. package/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/disposable.d.ts +0 -9
  100. package/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/disposable.js +0 -16
  101. package/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/encoding.d.ts +0 -52
  102. package/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/encoding.js +0 -70
  103. package/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/events.d.ts +0 -39
  104. package/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/events.js +0 -128
  105. package/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/is.d.ts +0 -7
  106. package/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/is.js +0 -35
  107. package/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/linkedMap.d.ts +0 -53
  108. package/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/linkedMap.js +0 -398
  109. package/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/messageBuffer.d.ts +0 -18
  110. package/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/messageBuffer.js +0 -152
  111. package/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/messageReader.d.ts +0 -77
  112. package/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/messageReader.js +0 -197
  113. package/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/messageWriter.d.ts +0 -60
  114. package/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/messageWriter.js +0 -115
  115. package/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/messages.d.ts +0 -369
  116. package/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/messages.js +0 -306
  117. package/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/ral.d.ts +0 -74
  118. package/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/ral.js +0 -23
  119. package/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/semaphore.d.ts +0 -10
  120. package/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/semaphore.js +0 -68
  121. package/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/sharedArrayCancellation.d.ts +0 -15
  122. package/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/sharedArrayCancellation.js +0 -76
  123. package/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/node/main.d.ts +0 -63
  124. package/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/node/main.js +0 -257
  125. package/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/node/ril.d.ts +0 -13
  126. package/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/node/ril.js +0 -161
  127. package/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/node.cmd +0 -5
  128. package/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/node.d.ts +0 -6
  129. package/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/node.js +0 -7
  130. package/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/package.json +0 -45
  131. package/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/thirdpartynotices.txt +0 -16
  132. package/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/typings/thenable.d.ts +0 -5
@@ -1,161 +0,0 @@
1
- "use strict";
2
- /* --------------------------------------------------------------------------------------------
3
- * Copyright (c) Microsoft Corporation. All rights reserved.
4
- * Licensed under the MIT License. See License.txt in the project root for license information.
5
- * ------------------------------------------------------------------------------------------ */
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- const util_1 = require("util");
8
- const api_1 = require("../common/api");
9
- class MessageBuffer extends api_1.AbstractMessageBuffer {
10
- constructor(encoding = 'utf-8') {
11
- super(encoding);
12
- }
13
- emptyBuffer() {
14
- return MessageBuffer.emptyBuffer;
15
- }
16
- fromString(value, encoding) {
17
- return Buffer.from(value, encoding);
18
- }
19
- toString(value, encoding) {
20
- if (value instanceof Buffer) {
21
- return value.toString(encoding);
22
- }
23
- else {
24
- return new util_1.TextDecoder(encoding).decode(value);
25
- }
26
- }
27
- asNative(buffer, length) {
28
- if (length === undefined) {
29
- return buffer instanceof Buffer ? buffer : Buffer.from(buffer);
30
- }
31
- else {
32
- return buffer instanceof Buffer ? buffer.slice(0, length) : Buffer.from(buffer, 0, length);
33
- }
34
- }
35
- allocNative(length) {
36
- return Buffer.allocUnsafe(length);
37
- }
38
- }
39
- MessageBuffer.emptyBuffer = Buffer.allocUnsafe(0);
40
- class ReadableStreamWrapper {
41
- constructor(stream) {
42
- this.stream = stream;
43
- }
44
- onClose(listener) {
45
- this.stream.on('close', listener);
46
- return api_1.Disposable.create(() => this.stream.off('close', listener));
47
- }
48
- onError(listener) {
49
- this.stream.on('error', listener);
50
- return api_1.Disposable.create(() => this.stream.off('error', listener));
51
- }
52
- onEnd(listener) {
53
- this.stream.on('end', listener);
54
- return api_1.Disposable.create(() => this.stream.off('end', listener));
55
- }
56
- onData(listener) {
57
- this.stream.on('data', listener);
58
- return api_1.Disposable.create(() => this.stream.off('data', listener));
59
- }
60
- }
61
- class WritableStreamWrapper {
62
- constructor(stream) {
63
- this.stream = stream;
64
- }
65
- onClose(listener) {
66
- this.stream.on('close', listener);
67
- return api_1.Disposable.create(() => this.stream.off('close', listener));
68
- }
69
- onError(listener) {
70
- this.stream.on('error', listener);
71
- return api_1.Disposable.create(() => this.stream.off('error', listener));
72
- }
73
- onEnd(listener) {
74
- this.stream.on('end', listener);
75
- return api_1.Disposable.create(() => this.stream.off('end', listener));
76
- }
77
- write(data, encoding) {
78
- return new Promise((resolve, reject) => {
79
- const callback = (error) => {
80
- if (error === undefined || error === null) {
81
- resolve();
82
- }
83
- else {
84
- reject(error);
85
- }
86
- };
87
- if (typeof data === 'string') {
88
- this.stream.write(data, encoding, callback);
89
- }
90
- else {
91
- this.stream.write(data, callback);
92
- }
93
- });
94
- }
95
- end() {
96
- this.stream.end();
97
- }
98
- }
99
- const _ril = Object.freeze({
100
- messageBuffer: Object.freeze({
101
- create: (encoding) => new MessageBuffer(encoding)
102
- }),
103
- applicationJson: Object.freeze({
104
- encoder: Object.freeze({
105
- name: 'application/json',
106
- encode: (msg, options) => {
107
- try {
108
- return Promise.resolve(Buffer.from(JSON.stringify(msg, undefined, 0), options.charset));
109
- }
110
- catch (err) {
111
- return Promise.reject(err);
112
- }
113
- }
114
- }),
115
- decoder: Object.freeze({
116
- name: 'application/json',
117
- decode: (buffer, options) => {
118
- try {
119
- if (buffer instanceof Buffer) {
120
- return Promise.resolve(JSON.parse(buffer.toString(options.charset)));
121
- }
122
- else {
123
- return Promise.resolve(JSON.parse(new util_1.TextDecoder(options.charset).decode(buffer)));
124
- }
125
- }
126
- catch (err) {
127
- return Promise.reject(err);
128
- }
129
- }
130
- })
131
- }),
132
- stream: Object.freeze({
133
- asReadableStream: (stream) => new ReadableStreamWrapper(stream),
134
- asWritableStream: (stream) => new WritableStreamWrapper(stream)
135
- }),
136
- console: console,
137
- timer: Object.freeze({
138
- setTimeout(callback, ms, ...args) {
139
- const handle = setTimeout(callback, ms, ...args);
140
- return { dispose: () => clearTimeout(handle) };
141
- },
142
- setImmediate(callback, ...args) {
143
- const handle = setImmediate(callback, ...args);
144
- return { dispose: () => clearImmediate(handle) };
145
- },
146
- setInterval(callback, ms, ...args) {
147
- const handle = setInterval(callback, ms, ...args);
148
- return { dispose: () => clearInterval(handle) };
149
- }
150
- })
151
- });
152
- function RIL() {
153
- return _ril;
154
- }
155
- (function (RIL) {
156
- function install() {
157
- api_1.RAL.install(_ril);
158
- }
159
- RIL.install = install;
160
- })(RIL || (RIL = {}));
161
- exports.default = RIL;
@@ -1,5 +0,0 @@
1
- @echo off
2
- REM This file is necessary to ensure that under Windows we don't
3
- REM run the node.js file in the Windows Script Host when using
4
- REM node in packakge.json scripts. See also PATHEXT setting
5
- node.exe %*
@@ -1,6 +0,0 @@
1
- /* --------------------------------------------------------------------------------------------
2
- * Copyright (c) Microsoft Corporation. All rights reserved.
3
- * Licensed under the MIT License. See License.txt in the project root for license information.
4
- * ----------------------------------------------------------------------------------------- */
5
-
6
- export * from './lib/node/main';
@@ -1,7 +0,0 @@
1
- /* --------------------------------------------------------------------------------------------
2
- * Copyright (c) Microsoft Corporation. All rights reserved.
3
- * Licensed under the MIT License. See License.txt in the project root for license information.
4
- * ----------------------------------------------------------------------------------------- */
5
- 'use strict';
6
-
7
- module.exports = require('./lib/node/main');
@@ -1,45 +0,0 @@
1
- {
2
- "name": "vscode-jsonrpc",
3
- "description": "A json rpc implementation over streams",
4
- "version": "8.2.0",
5
- "author": "Microsoft Corporation",
6
- "license": "MIT",
7
- "repository": {
8
- "type": "git",
9
- "url": "https://github.com/Microsoft/vscode-languageserver-node.git",
10
- "directory": "jsonrpc"
11
- },
12
- "bugs": {
13
- "url": "https://github.com/Microsoft/vscode-languageserver-node/issues"
14
- },
15
- "engines": {
16
- "node": ">=14.0.0"
17
- },
18
- "main": "./lib/node/main.js",
19
- "browser": {
20
- "./lib/node/main.js": "./lib/browser/main.js"
21
- },
22
- "typings": "./lib/common/api.d.ts",
23
- "devDependencies": {
24
- "@types/msgpack-lite": "^0.1.7",
25
- "msgpack-lite": "^0.1.26"
26
- },
27
- "scripts": {
28
- "prepublishOnly": "echo \"⛔ Can only publish from a secure pipeline ⛔\" && node ../build/npm/fail",
29
- "prepack": "npm run all:publish",
30
- "preversion": "npm test",
31
- "compile": "node ../build/bin/tsc -b ./tsconfig.json",
32
- "watch": "node ../build/bin/tsc -b ./tsconfig.watch.json -w",
33
- "clean": "node ../node_modules/.bin/rimraf lib && node ../node_modules/.bin/rimraf dist",
34
- "lint": "node ../node_modules/eslint/bin/eslint.js --ext ts src",
35
- "test": "npm run test:node && npm run test:browser",
36
- "test:node": "node ../node_modules/mocha/bin/_mocha",
37
- "test:browser": "npm run webpack:test:silent && node ../build/bin/runBrowserTests.js http://127.0.0.1:8080/jsonrpc/src/browser/test/",
38
- "webpack": "node ../build/bin/webpack --mode none --config ./webpack.config.js",
39
- "webpack:test": "node ../build/bin/webpack --mode none --config ./src/browser/test/webpack.config.js",
40
- "webpack:test:silent": "node ../build/bin/webpack --no-stats --mode none --config ./src/browser/test/webpack.config.js",
41
- "all": "npm run clean && npm run compile && npm run lint && npm run test",
42
- "compile:publish": "node ../build/bin/tsc -b ./tsconfig.publish.json",
43
- "all:publish": "git clean -xfd . && npm install && npm run compile:publish && npm run lint && npm run test"
44
- }
45
- }
@@ -1,16 +0,0 @@
1
- NOTICES AND INFORMATION
2
- Do Not Translate or Localize
3
-
4
- This software incorporates material from third parties.
5
- Microsoft makes certain open source code available at https://3rdpartysource.microsoft.com,
6
- or you may send a check or money order for US $5.00, including the product name,
7
- the open source component name, platform, and version number, to:
8
-
9
- Source Code Compliance Team
10
- Microsoft Corporation
11
- One Microsoft Way
12
- Redmond, WA 98052
13
- USA
14
-
15
- Notwithstanding any other terms, you may reverse engineer this software to the extent
16
- required to debug changes to any libraries licensed under the GNU Lesser General Public License.
@@ -1,5 +0,0 @@
1
- /* --------------------------------------------------------------------------------------------
2
- * Copyright (c) Microsoft Corporation. All rights reserved.
3
- * Licensed under the MIT License. See License.txt in the project root for license information.
4
- * ------------------------------------------------------------------------------------------ */
5
- interface Thenable<T> extends PromiseLike<T> { }