@opensumi/ide-core-common 2.12.1-next-079c1930

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 (450) hide show
  1. package/lib/application-error.d.ts +36 -0
  2. package/lib/application-error.d.ts.map +1 -0
  3. package/lib/application-error.js +64 -0
  4. package/lib/application-error.js.map +1 -0
  5. package/lib/application-props.d.ts +26 -0
  6. package/lib/application-props.d.ts.map +1 -0
  7. package/lib/application-props.js +3 -0
  8. package/lib/application-props.js.map +1 -0
  9. package/lib/arrays.d.ts +131 -0
  10. package/lib/arrays.d.ts.map +1 -0
  11. package/lib/arrays.js +533 -0
  12. package/lib/arrays.js.map +1 -0
  13. package/lib/async.d.ts +165 -0
  14. package/lib/async.d.ts.map +1 -0
  15. package/lib/async.js +417 -0
  16. package/lib/async.js.map +1 -0
  17. package/lib/browser-fs/ensure-dir.d.ts +7 -0
  18. package/lib/browser-fs/ensure-dir.d.ts.map +1 -0
  19. package/lib/browser-fs/ensure-dir.js +40 -0
  20. package/lib/browser-fs/ensure-dir.js.map +1 -0
  21. package/lib/browser-fs/util.d.ts +18 -0
  22. package/lib/browser-fs/util.d.ts.map +1 -0
  23. package/lib/browser-fs/util.js +21 -0
  24. package/lib/browser-fs/util.js.map +1 -0
  25. package/lib/cache.d.ts +12 -0
  26. package/lib/cache.d.ts.map +1 -0
  27. package/lib/cache.js +36 -0
  28. package/lib/cache.js.map +1 -0
  29. package/lib/cancellation.d.ts +23 -0
  30. package/lib/cancellation.d.ts.map +1 -0
  31. package/lib/cancellation.js +116 -0
  32. package/lib/cancellation.js.map +1 -0
  33. package/lib/charCode.d.ts +406 -0
  34. package/lib/charCode.d.ts.map +1 -0
  35. package/lib/charCode.js +8 -0
  36. package/lib/charCode.js.map +1 -0
  37. package/lib/character-classifier.d.ts +25 -0
  38. package/lib/character-classifier.d.ts.map +1 -0
  39. package/lib/character-classifier.js +58 -0
  40. package/lib/character-classifier.js.map +1 -0
  41. package/lib/command.d.ts +350 -0
  42. package/lib/command.d.ts.map +1 -0
  43. package/lib/command.js +408 -0
  44. package/lib/command.js.map +1 -0
  45. package/lib/connection.d.ts +8 -0
  46. package/lib/connection.d.ts.map +1 -0
  47. package/lib/connection.js +17 -0
  48. package/lib/connection.js.map +1 -0
  49. package/lib/const/application.d.ts +3 -0
  50. package/lib/const/application.d.ts.map +1 -0
  51. package/lib/const/application.js +6 -0
  52. package/lib/const/application.js.map +1 -0
  53. package/lib/const/encodings.d.ts +10 -0
  54. package/lib/const/encodings.d.ts.map +1 -0
  55. package/lib/const/encodings.js +244 -0
  56. package/lib/const/encodings.js.map +1 -0
  57. package/lib/const/index.d.ts +2 -0
  58. package/lib/const/index.d.ts.map +1 -0
  59. package/lib/const/index.js +5 -0
  60. package/lib/const/index.js.map +1 -0
  61. package/lib/contribution-provider.d.ts +38 -0
  62. package/lib/contribution-provider.d.ts.map +1 -0
  63. package/lib/contribution-provider.js +60 -0
  64. package/lib/contribution-provider.js.map +1 -0
  65. package/lib/credential.d.ts +21 -0
  66. package/lib/credential.d.ts.map +1 -0
  67. package/lib/credential.js +6 -0
  68. package/lib/credential.js.map +1 -0
  69. package/lib/cryptr.d.ts +7 -0
  70. package/lib/cryptr.d.ts.map +1 -0
  71. package/lib/cryptr.js +6 -0
  72. package/lib/cryptr.js.map +1 -0
  73. package/lib/date.d.ts +2 -0
  74. package/lib/date.d.ts.map +1 -0
  75. package/lib/date.js +16 -0
  76. package/lib/date.js.map +1 -0
  77. package/lib/declare.d.ts +3 -0
  78. package/lib/declare.d.ts.map +1 -0
  79. package/lib/declare.js +3 -0
  80. package/lib/declare.js.map +1 -0
  81. package/lib/di-helper/domain-helper.d.ts +14 -0
  82. package/lib/di-helper/domain-helper.d.ts.map +1 -0
  83. package/lib/di-helper/domain-helper.js +48 -0
  84. package/lib/di-helper/domain-helper.js.map +1 -0
  85. package/lib/di-helper/index.d.ts +2 -0
  86. package/lib/di-helper/index.d.ts.map +1 -0
  87. package/lib/di-helper/index.js +5 -0
  88. package/lib/di-helper/index.js.map +1 -0
  89. package/lib/disposable.d.ts +88 -0
  90. package/lib/disposable.d.ts.map +1 -0
  91. package/lib/disposable.js +309 -0
  92. package/lib/disposable.js.map +1 -0
  93. package/lib/electron.d.ts +118 -0
  94. package/lib/electron.d.ts.map +1 -0
  95. package/lib/electron.js +7 -0
  96. package/lib/electron.js.map +1 -0
  97. package/lib/encoding/index.d.ts +34 -0
  98. package/lib/encoding/index.d.ts.map +1 -0
  99. package/lib/encoding/index.js +219 -0
  100. package/lib/encoding/index.js.map +1 -0
  101. package/lib/env.d.ts +2 -0
  102. package/lib/env.d.ts.map +1 -0
  103. package/lib/env.js +5 -0
  104. package/lib/env.js.map +1 -0
  105. package/lib/errors.d.ts +60 -0
  106. package/lib/errors.d.ts.map +1 -0
  107. package/lib/errors.js +148 -0
  108. package/lib/errors.js.map +1 -0
  109. package/lib/event-bus/basic-event.d.ts +5 -0
  110. package/lib/event-bus/basic-event.d.ts.map +1 -0
  111. package/lib/event-bus/basic-event.js +10 -0
  112. package/lib/event-bus/basic-event.js.map +1 -0
  113. package/lib/event-bus/event-bus-types.d.ts +66 -0
  114. package/lib/event-bus/event-bus-types.d.ts.map +1 -0
  115. package/lib/event-bus/event-bus-types.js +5 -0
  116. package/lib/event-bus/event-bus-types.js.map +1 -0
  117. package/lib/event-bus/event-bus.d.ts +13 -0
  118. package/lib/event-bus/event-bus.d.ts.map +1 -0
  119. package/lib/event-bus/event-bus.js +55 -0
  120. package/lib/event-bus/event-bus.js.map +1 -0
  121. package/lib/event-bus/event-decorator.d.ts +10 -0
  122. package/lib/event-bus/event-decorator.d.ts.map +1 -0
  123. package/lib/event-bus/event-decorator.js +34 -0
  124. package/lib/event-bus/event-decorator.js.map +1 -0
  125. package/lib/event-bus/index.d.ts +5 -0
  126. package/lib/event-bus/index.d.ts.map +1 -0
  127. package/lib/event-bus/index.js +8 -0
  128. package/lib/event-bus/index.js.map +1 -0
  129. package/lib/event.d.ts +270 -0
  130. package/lib/event.d.ts.map +1 -0
  131. package/lib/event.js +810 -0
  132. package/lib/event.js.map +1 -0
  133. package/lib/filters.d.ts +51 -0
  134. package/lib/filters.d.ts.map +1 -0
  135. package/lib/filters.js +688 -0
  136. package/lib/filters.js.map +1 -0
  137. package/lib/functional.d.ts +4 -0
  138. package/lib/functional.d.ts.map +1 -0
  139. package/lib/functional.js +45 -0
  140. package/lib/functional.js.map +1 -0
  141. package/lib/hash-calculate/WASMInterface.d.ts +61 -0
  142. package/lib/hash-calculate/WASMInterface.d.ts.map +1 -0
  143. package/lib/hash-calculate/WASMInterface.js +180 -0
  144. package/lib/hash-calculate/WASMInterface.js.map +1 -0
  145. package/lib/hash-calculate/hash-calculate.d.ts +13 -0
  146. package/lib/hash-calculate/hash-calculate.d.ts.map +1 -0
  147. package/lib/hash-calculate/hash-calculate.js +41 -0
  148. package/lib/hash-calculate/hash-calculate.js.map +1 -0
  149. package/lib/hash-calculate/lockedCreate.d.ts +4 -0
  150. package/lib/hash-calculate/lockedCreate.d.ts.map +1 -0
  151. package/lib/hash-calculate/lockedCreate.js +17 -0
  152. package/lib/hash-calculate/lockedCreate.js.map +1 -0
  153. package/lib/hash-calculate/md5.wasm.json +1 -0
  154. package/lib/hash-calculate/mutex.d.ts +6 -0
  155. package/lib/hash-calculate/mutex.d.ts.map +1 -0
  156. package/lib/hash-calculate/mutex.js +32 -0
  157. package/lib/hash-calculate/mutex.js.map +1 -0
  158. package/lib/hash-calculate/util.d.ts +12 -0
  159. package/lib/hash-calculate/util.d.ts.map +1 -0
  160. package/lib/hash-calculate/util.js +166 -0
  161. package/lib/hash-calculate/util.js.map +1 -0
  162. package/lib/id-generator.d.ts +8 -0
  163. package/lib/id-generator.d.ts.map +1 -0
  164. package/lib/id-generator.js +15 -0
  165. package/lib/id-generator.js.map +1 -0
  166. package/lib/index.d.ts +47 -0
  167. package/lib/index.d.ts.map +1 -0
  168. package/lib/index.js +50 -0
  169. package/lib/index.js.map +1 -0
  170. package/lib/iterator.d.ts +14 -0
  171. package/lib/iterator.d.ts.map +1 -0
  172. package/lib/iterator.js +9 -0
  173. package/lib/iterator.js.map +1 -0
  174. package/lib/json-schema.d.ts +65 -0
  175. package/lib/json-schema.d.ts.map +1 -0
  176. package/lib/json-schema.js +3 -0
  177. package/lib/json-schema.js.map +1 -0
  178. package/lib/keyboard/index.d.ts +3 -0
  179. package/lib/keyboard/index.d.ts.map +1 -0
  180. package/lib/keyboard/index.js +6 -0
  181. package/lib/keyboard/index.js.map +1 -0
  182. package/lib/keyboard/keyboard-layout-provider.d.ts +38 -0
  183. package/lib/keyboard/keyboard-layout-provider.d.ts.map +1 -0
  184. package/lib/keyboard/keyboard-layout-provider.js +23 -0
  185. package/lib/keyboard/keyboard-layout-provider.js.map +1 -0
  186. package/lib/keyboard/keymap.d.ts +71 -0
  187. package/lib/keyboard/keymap.d.ts.map +1 -0
  188. package/lib/keyboard/keymap.js +128 -0
  189. package/lib/keyboard/keymap.js.map +1 -0
  190. package/lib/lifecycle.d.ts +17 -0
  191. package/lib/lifecycle.d.ts.map +1 -0
  192. package/lib/lifecycle.js +37 -0
  193. package/lib/lifecycle.js.map +1 -0
  194. package/lib/line-text.d.ts +17 -0
  195. package/lib/line-text.d.ts.map +1 -0
  196. package/lib/line-text.js +72 -0
  197. package/lib/line-text.js.map +1 -0
  198. package/lib/linked-list.d.ts +18 -0
  199. package/lib/linked-list.d.ts.map +1 -0
  200. package/lib/linked-list.js +138 -0
  201. package/lib/linked-list.js.map +1 -0
  202. package/lib/linkedText.d.ts +13 -0
  203. package/lib/linkedText.d.ts.map +1 -0
  204. package/lib/linkedText.js +50 -0
  205. package/lib/linkedText.js.map +1 -0
  206. package/lib/localize.d.ts +52 -0
  207. package/lib/localize.d.ts.map +1 -0
  208. package/lib/localize.js +128 -0
  209. package/lib/localize.js.map +1 -0
  210. package/lib/log.d.ts +181 -0
  211. package/lib/log.d.ts.map +1 -0
  212. package/lib/log.js +163 -0
  213. package/lib/log.js.map +1 -0
  214. package/lib/map.d.ts +124 -0
  215. package/lib/map.d.ts.map +1 -0
  216. package/lib/map.js +819 -0
  217. package/lib/map.js.map +1 -0
  218. package/lib/menu.d.ts +27 -0
  219. package/lib/menu.d.ts.map +1 -0
  220. package/lib/menu.js +5 -0
  221. package/lib/menu.js.map +1 -0
  222. package/lib/mocks/electron/browserMock.d.ts +2 -0
  223. package/lib/mocks/electron/browserMock.d.ts.map +1 -0
  224. package/lib/mocks/electron/browserMock.js +15 -0
  225. package/lib/mocks/electron/browserMock.js.map +1 -0
  226. package/lib/mocks/electron/ipcRenderer.d.ts +13 -0
  227. package/lib/mocks/electron/ipcRenderer.d.ts.map +1 -0
  228. package/lib/mocks/electron/ipcRenderer.js +32 -0
  229. package/lib/mocks/electron/ipcRenderer.js.map +1 -0
  230. package/lib/module.d.ts +23 -0
  231. package/lib/module.d.ts.map +1 -0
  232. package/lib/module.js +22 -0
  233. package/lib/module.js.map +1 -0
  234. package/lib/network.d.ts +33 -0
  235. package/lib/network.d.ts.map +1 -0
  236. package/lib/network.js +37 -0
  237. package/lib/network.js.map +1 -0
  238. package/lib/node/port.d.ts +14 -0
  239. package/lib/node/port.d.ts.map +1 -0
  240. package/lib/node/port.js +124 -0
  241. package/lib/node/port.js.map +1 -0
  242. package/lib/path.d.ts +92 -0
  243. package/lib/path.d.ts.map +1 -0
  244. package/lib/path.js +1711 -0
  245. package/lib/path.js.map +1 -0
  246. package/lib/platform.d.ts +48 -0
  247. package/lib/platform.d.ts.map +1 -0
  248. package/lib/platform.js +143 -0
  249. package/lib/platform.js.map +1 -0
  250. package/lib/preferences/index.d.ts +3 -0
  251. package/lib/preferences/index.d.ts.map +1 -0
  252. package/lib/preferences/index.js +6 -0
  253. package/lib/preferences/index.js.map +1 -0
  254. package/lib/preferences/preference-schema.d.ts +76 -0
  255. package/lib/preferences/preference-schema.d.ts.map +1 -0
  256. package/lib/preferences/preference-schema.js +59 -0
  257. package/lib/preferences/preference-schema.js.map +1 -0
  258. package/lib/preferences/preference-scope.d.ts +15 -0
  259. package/lib/preferences/preference-scope.d.ts.map +1 -0
  260. package/lib/preferences/preference-scope.js +54 -0
  261. package/lib/preferences/preference-scope.js.map +1 -0
  262. package/lib/problem-matcher.d.ts +111 -0
  263. package/lib/problem-matcher.d.ts.map +1 -0
  264. package/lib/problem-matcher.js +294 -0
  265. package/lib/problem-matcher.js.map +1 -0
  266. package/lib/problem-pattern.d.ts +193 -0
  267. package/lib/problem-pattern.d.ts.map +1 -0
  268. package/lib/problem-pattern.js +416 -0
  269. package/lib/problem-pattern.js.map +1 -0
  270. package/lib/process.d.ts +5 -0
  271. package/lib/process.d.ts.map +1 -0
  272. package/lib/process.js +15 -0
  273. package/lib/process.js.map +1 -0
  274. package/lib/progress.d.ts +56 -0
  275. package/lib/progress.d.ts.map +1 -0
  276. package/lib/progress.js +25 -0
  277. package/lib/progress.js.map +1 -0
  278. package/lib/range.d.ts +7 -0
  279. package/lib/range.d.ts.map +1 -0
  280. package/lib/range.js +28 -0
  281. package/lib/range.js.map +1 -0
  282. package/lib/reference.d.ts +35 -0
  283. package/lib/reference.d.ts.map +1 -0
  284. package/lib/reference.js +122 -0
  285. package/lib/reference.js.map +1 -0
  286. package/lib/reporter.d.ts +16 -0
  287. package/lib/reporter.d.ts.map +1 -0
  288. package/lib/reporter.js +66 -0
  289. package/lib/reporter.js.map +1 -0
  290. package/lib/sequence.d.ts +20 -0
  291. package/lib/sequence.d.ts.map +1 -0
  292. package/lib/sequence.js +17 -0
  293. package/lib/sequence.js.map +1 -0
  294. package/lib/storage.d.ts +64 -0
  295. package/lib/storage.d.ts.map +1 -0
  296. package/lib/storage.js +70 -0
  297. package/lib/storage.js.map +1 -0
  298. package/lib/task-definition.d.ts +45 -0
  299. package/lib/task-definition.d.ts.map +1 -0
  300. package/lib/task-definition.js +130 -0
  301. package/lib/task-definition.js.map +1 -0
  302. package/lib/theme.d.ts +5 -0
  303. package/lib/theme.d.ts.map +1 -0
  304. package/lib/theme.js +8 -0
  305. package/lib/theme.js.map +1 -0
  306. package/lib/types/accessibility.d.ts +5 -0
  307. package/lib/types/accessibility.d.ts.map +1 -0
  308. package/lib/types/accessibility.js +3 -0
  309. package/lib/types/accessibility.js.map +1 -0
  310. package/lib/types/application.d.ts +13 -0
  311. package/lib/types/application.d.ts.map +1 -0
  312. package/lib/types/application.js +5 -0
  313. package/lib/types/application.js.map +1 -0
  314. package/lib/types/authentication.d.ts +90 -0
  315. package/lib/types/authentication.d.ts.map +1 -0
  316. package/lib/types/authentication.js +8 -0
  317. package/lib/types/authentication.js.map +1 -0
  318. package/lib/types/common.d.ts +10 -0
  319. package/lib/types/common.d.ts.map +1 -0
  320. package/lib/types/common.js +6 -0
  321. package/lib/types/common.js.map +1 -0
  322. package/lib/types/dnd.d.ts +8 -0
  323. package/lib/types/dnd.d.ts.map +1 -0
  324. package/lib/types/dnd.js +9 -0
  325. package/lib/types/dnd.js.map +1 -0
  326. package/lib/types/editor.d.ts +157 -0
  327. package/lib/types/editor.d.ts.map +1 -0
  328. package/lib/types/editor.js +148 -0
  329. package/lib/types/editor.js.map +1 -0
  330. package/lib/types/extension.d.ts +73 -0
  331. package/lib/types/extension.d.ts.map +1 -0
  332. package/lib/types/extension.js +28 -0
  333. package/lib/types/extension.js.map +1 -0
  334. package/lib/types/file-watch.d.ts +70 -0
  335. package/lib/types/file-watch.d.ts.map +1 -0
  336. package/lib/types/file-watch.js +72 -0
  337. package/lib/types/file-watch.js.map +1 -0
  338. package/lib/types/file.d.ts +219 -0
  339. package/lib/types/file.d.ts.map +1 -0
  340. package/lib/types/file.js +51 -0
  341. package/lib/types/file.js.map +1 -0
  342. package/lib/types/index.d.ts +13 -0
  343. package/lib/types/index.d.ts.map +1 -0
  344. package/lib/types/index.js +16 -0
  345. package/lib/types/index.js.map +1 -0
  346. package/lib/types/markers/index.d.ts +3 -0
  347. package/lib/types/markers/index.d.ts.map +1 -0
  348. package/lib/types/markers/index.js +6 -0
  349. package/lib/types/markers/index.js.map +1 -0
  350. package/lib/types/markers/markers-manager.d.ts +120 -0
  351. package/lib/types/markers/markers-manager.d.ts.map +1 -0
  352. package/lib/types/markers/markers-manager.js +307 -0
  353. package/lib/types/markers/markers-manager.js.map +1 -0
  354. package/lib/types/markers/markers.d.ts +76 -0
  355. package/lib/types/markers/markers.d.ts.map +1 -0
  356. package/lib/types/markers/markers.js +76 -0
  357. package/lib/types/markers/markers.js.map +1 -0
  358. package/lib/types/message.d.ts +7 -0
  359. package/lib/types/message.d.ts.map +1 -0
  360. package/lib/types/message.js +11 -0
  361. package/lib/types/message.js.map +1 -0
  362. package/lib/types/reporter.d.ts +83 -0
  363. package/lib/types/reporter.d.ts.map +1 -0
  364. package/lib/types/reporter.js +63 -0
  365. package/lib/types/reporter.js.map +1 -0
  366. package/lib/types/string.d.ts +4 -0
  367. package/lib/types/string.d.ts.map +1 -0
  368. package/lib/types/string.js +3 -0
  369. package/lib/types/string.js.map +1 -0
  370. package/lib/uint.d.ts +32 -0
  371. package/lib/uint.d.ts.map +1 -0
  372. package/lib/uint.js +28 -0
  373. package/lib/uint.js.map +1 -0
  374. package/lib/uri.d.ts +94 -0
  375. package/lib/uri.d.ts.map +1 -0
  376. package/lib/uri.js +226 -0
  377. package/lib/uri.js.map +1 -0
  378. package/lib/utils/ansi.d.ts +5 -0
  379. package/lib/utils/ansi.d.ts.map +1 -0
  380. package/lib/utils/ansi.js +16 -0
  381. package/lib/utils/ansi.js.map +1 -0
  382. package/lib/utils/arrays.d.ts +62 -0
  383. package/lib/utils/arrays.d.ts.map +1 -0
  384. package/lib/utils/arrays.js +254 -0
  385. package/lib/utils/arrays.js.map +1 -0
  386. package/lib/utils/buffer.d.ts +36 -0
  387. package/lib/utils/buffer.d.ts.map +1 -0
  388. package/lib/utils/buffer.js +178 -0
  389. package/lib/utils/buffer.js.map +1 -0
  390. package/lib/utils/comparers.d.ts +7 -0
  391. package/lib/utils/comparers.d.ts.map +1 -0
  392. package/lib/utils/comparers.js +135 -0
  393. package/lib/utils/comparers.js.map +1 -0
  394. package/lib/utils/decorators.d.ts +13 -0
  395. package/lib/utils/decorators.d.ts.map +1 -0
  396. package/lib/utils/decorators.js +150 -0
  397. package/lib/utils/decorators.js.map +1 -0
  398. package/lib/utils/file-uri.d.ts +30 -0
  399. package/lib/utils/file-uri.d.ts.map +1 -0
  400. package/lib/utils/file-uri.js +62 -0
  401. package/lib/utils/file-uri.js.map +1 -0
  402. package/lib/utils/glob.d.ts +46 -0
  403. package/lib/utils/glob.d.ts.map +1 -0
  404. package/lib/utils/glob.js +546 -0
  405. package/lib/utils/glob.js.map +1 -0
  406. package/lib/utils/index.d.ts +14 -0
  407. package/lib/utils/index.d.ts.map +1 -0
  408. package/lib/utils/index.js +17 -0
  409. package/lib/utils/index.js.map +1 -0
  410. package/lib/utils/ipc.d.ts +2 -0
  411. package/lib/utils/ipc.d.ts.map +1 -0
  412. package/lib/utils/ipc.js +21 -0
  413. package/lib/utils/ipc.js.map +1 -0
  414. package/lib/utils/json.d.ts +78 -0
  415. package/lib/utils/json.d.ts.map +1 -0
  416. package/lib/utils/json.js +190 -0
  417. package/lib/utils/json.js.map +1 -0
  418. package/lib/utils/marshalling.d.ts +7 -0
  419. package/lib/utils/marshalling.d.ts.map +1 -0
  420. package/lib/utils/marshalling.js +57 -0
  421. package/lib/utils/marshalling.js.map +1 -0
  422. package/lib/utils/objects.d.ts +6 -0
  423. package/lib/utils/objects.d.ts.map +1 -0
  424. package/lib/utils/objects.js +103 -0
  425. package/lib/utils/objects.js.map +1 -0
  426. package/lib/utils/os.d.ts +42 -0
  427. package/lib/utils/os.d.ts.map +1 -0
  428. package/lib/utils/os.js +94 -0
  429. package/lib/utils/os.js.map +1 -0
  430. package/lib/utils/paths.d.ts +35 -0
  431. package/lib/utils/paths.d.ts.map +1 -0
  432. package/lib/utils/paths.js +318 -0
  433. package/lib/utils/paths.js.map +1 -0
  434. package/lib/utils/promise-util.d.ts +10 -0
  435. package/lib/utils/promise-util.d.ts.map +1 -0
  436. package/lib/utils/promise-util.js +17 -0
  437. package/lib/utils/promise-util.js.map +1 -0
  438. package/lib/utils/strings.d.ts +177 -0
  439. package/lib/utils/strings.d.ts.map +1 -0
  440. package/lib/utils/strings.js +837 -0
  441. package/lib/utils/strings.js.map +1 -0
  442. package/lib/utils/types.d.ts +65 -0
  443. package/lib/utils/types.d.ts.map +1 -0
  444. package/lib/utils/types.js +194 -0
  445. package/lib/utils/types.js.map +1 -0
  446. package/lib/uuid.d.ts +2 -0
  447. package/lib/uuid.d.ts.map +1 -0
  448. package/lib/uuid.js +10 -0
  449. package/lib/uuid.js.map +1 -0
  450. package/package.json +30 -0
package/lib/async.d.ts ADDED
@@ -0,0 +1,165 @@
1
+ /// <reference types="vscode" />
2
+ import { CancellationToken } from './cancellation';
3
+ import { IDisposable } from './disposable';
4
+ export declare type MaybePromise<T> = T | Promise<T> | PromiseLike<T>;
5
+ export interface CancelablePromise<T> extends Promise<T> {
6
+ cancel(): void;
7
+ }
8
+ export declare function createCancelablePromise<T>(callback: (token: CancellationToken) => Promise<T>): CancelablePromise<T>;
9
+ export declare function hookCancellationToken<T>(token: CancellationToken, promise: Promise<T>): PromiseLike<T>;
10
+ export interface ITask<T> {
11
+ (): T;
12
+ }
13
+ /**
14
+ * A helper to prevent accumulation of sequential async tasks.
15
+ *
16
+ * Imagine a mail man with the sole task of delivering letters. As soon as
17
+ * a letter submitted for delivery, he drives to the destination, delivers it
18
+ * and returns to his base. Imagine that during the trip, N more letters were submitted.
19
+ * When the mail man returns, he picks those N letters and delivers them all in a
20
+ * single trip. Even though N+1 submissions occurred, only 2 deliveries were made.
21
+ *
22
+ * The throttler implements this via the queue() method, by providing it a task
23
+ * factory. Following the example:
24
+ *
25
+ * const throttler = new Throttler();
26
+ * const letters = [];
27
+ *
28
+ * function deliver() {
29
+ * const lettersToDeliver = letters;
30
+ * letters = [];
31
+ * return makeTheTrip(lettersToDeliver);
32
+ * }
33
+ *
34
+ * function onLetterReceived(l) {
35
+ * letters.push(l);
36
+ * throttler.queue(deliver);
37
+ * }
38
+ */
39
+ export declare class Throttler {
40
+ private activePromise;
41
+ private queuedPromise;
42
+ private queuedPromiseFactory;
43
+ constructor();
44
+ queue<T>(promiseFactory: ITask<Promise<T>>): Promise<T>;
45
+ }
46
+ export declare class Sequencer {
47
+ private current;
48
+ queue<T>(promiseTask: ITask<Promise<T>>): Promise<T>;
49
+ }
50
+ /**
51
+ * A helper to delay execution of a task that is being requested often.
52
+ *
53
+ * Following the throttler, now imagine the mail man wants to optimize the number of
54
+ * trips proactively. The trip itself can be long, so he decides not to make the trip
55
+ * as soon as a letter is submitted. Instead he waits a while, in case more
56
+ * letters are submitted. After said waiting period, if no letters were submitted, he
57
+ * decides to make the trip. Imagine that N more letters were submitted after the first
58
+ * one, all within a short period of time between each other. Even though N+1
59
+ * submissions occurred, only 1 delivery was made.
60
+ *
61
+ * The delayer offers this behavior via the trigger() method, into which both the task
62
+ * to be executed and the waiting period (delay) must be passed in as arguments. Following
63
+ * the example:
64
+ *
65
+ * const delayer = new Delayer(WAITING_PERIOD);
66
+ * const letters = [];
67
+ *
68
+ * function letterReceived(l) {
69
+ * letters.push(l);
70
+ * delayer.trigger(() => { return makeTheTrip(); });
71
+ * }
72
+ */
73
+ export declare class Delayer<T> implements IDisposable {
74
+ defaultDelay: number;
75
+ private timeout;
76
+ private completionPromise;
77
+ private doResolve;
78
+ private doReject?;
79
+ private task;
80
+ constructor(defaultDelay: number);
81
+ trigger(task: ITask<T | Promise<T>>, delay?: number): Promise<T>;
82
+ isTriggered(): boolean;
83
+ cancel(): void;
84
+ private cancelTimeout;
85
+ dispose(): void;
86
+ }
87
+ /**
88
+ * A helper to delay execution of a task that is being requested often, while
89
+ * preventing accumulation of consecutive executions, while the task runs.
90
+ *
91
+ * The mail man is clever and waits for a certain amount of time, before going
92
+ * out to deliver letters. While the mail man is going out, more letters arrive
93
+ * and can only be delivered once he is back. Once he is back the mail man will
94
+ * do one more trip to deliver the letters that have accumulated while he was out.
95
+ */
96
+ export declare class ThrottledDelayer<T> {
97
+ private delayer;
98
+ private throttler;
99
+ constructor(defaultDelay: number);
100
+ trigger(promiseFactory: ITask<Promise<T>>, delay?: number): Promise<T>;
101
+ isTriggered(): boolean;
102
+ cancel(): void;
103
+ dispose(): void;
104
+ }
105
+ export declare function isThenable<T>(obj: any): obj is Promise<T>;
106
+ export declare function raceTimeout<T>(promise: Promise<T>, timeout: number, onTimeout?: () => void): Promise<T | undefined>;
107
+ export declare function asPromise<T>(callback: () => T | Thenable<T>): Promise<T>;
108
+ export interface IdleDeadline {
109
+ readonly didTimeout: boolean;
110
+ timeRemaining(): DOMHighResTimeStamp;
111
+ }
112
+ /**
113
+ * Execute the callback the next time the browser is idle
114
+ */
115
+ export declare let runWhenIdle: (callback: (idle: IdleDeadline) => void, timeout?: number) => IDisposable;
116
+ /**
117
+ * An implementation of the "idle-until-urgent"-strategy as introduced
118
+ * here: https://philipwalton.com/articles/idle-until-urgent/
119
+ */
120
+ export declare class IdleValue<T> {
121
+ private readonly _executor;
122
+ private readonly _handle;
123
+ private _didRun;
124
+ private _value?;
125
+ private _error;
126
+ constructor(executor: () => T);
127
+ dispose(): void;
128
+ getValue(): T;
129
+ }
130
+ export declare type Mutable<T> = {
131
+ -readonly [P in keyof T]: T[P];
132
+ };
133
+ export declare function first<T>(promiseFactories: ITask<Promise<T>>[], shouldStop?: (t: T) => boolean, defaultValue?: T | null): Promise<T | null>;
134
+ export declare function timeout(millis: number): CancelablePromise<void>;
135
+ export declare function timeout(millis: number, token: CancellationToken): Promise<void>;
136
+ export declare function raceCancellation<T>(promise: Promise<T>, token: CancellationToken): Promise<T | undefined>;
137
+ export declare function raceCancellation<T>(promise: Promise<T>, token: CancellationToken, defaultValue: T): Promise<T>;
138
+ export declare class RunOnceScheduler {
139
+ protected runner: ((...args: unknown[]) => void) | null;
140
+ private timeoutToken;
141
+ private timeout;
142
+ private timeoutHandler;
143
+ constructor(runner: (...args: any[]) => void, delay: number);
144
+ /**
145
+ * Dispose RunOnceScheduler
146
+ */
147
+ dispose(): void;
148
+ /**
149
+ * Cancel current scheduled runner (if any).
150
+ */
151
+ cancel(): void;
152
+ /**
153
+ * Cancel previous runner (if any) & schedule a new runner.
154
+ */
155
+ schedule(delay?: number): void;
156
+ get delay(): number;
157
+ set delay(value: number);
158
+ /**
159
+ * Returns true if scheduled.
160
+ */
161
+ isScheduled(): boolean;
162
+ private onTimeout;
163
+ protected doRun(): void;
164
+ }
165
+ //# sourceMappingURL=async.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"async.d.ts","sourceRoot":"","sources":["../src/async.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,iBAAiB,EAA2B,MAAM,gBAAgB,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAI3C,oBAAY,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;AAE9D,MAAM,WAAW,iBAAiB,CAAC,CAAC,CAAE,SAAQ,OAAO,CAAC,CAAC,CAAC;IACtD,MAAM,IAAI,IAAI,CAAC;CAChB;AAGD,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,CA+BnH;AAED,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAWtG;AAED,MAAM,WAAW,KAAK,CAAC,CAAC;IACtB,IAAI,CAAC,CAAC;CACP;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,qBAAa,SAAS;IAEpB,OAAO,CAAC,aAAa,CAAsB;IAC3C,OAAO,CAAC,aAAa,CAAsB;IAC3C,OAAO,CAAC,oBAAoB,CAA6B;;IAQzD,KAAK,CAAC,CAAC,EAAE,cAAc,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;CAoCxD;AAED,qBAAa,SAAS;IAEpB,OAAO,CAAC,OAAO,CAAuC;IAEtD,KAAK,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;CAGrD;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,OAAO,CAAC,CAAC,CAAE,YAAW,WAAW;IAQzB,YAAY,EAAE,MAAM;IANvC,OAAO,CAAC,OAAO,CAAM;IACrB,OAAO,CAAC,iBAAiB,CAAsB;IAC/C,OAAO,CAAC,SAAS,CAAgD;IACjE,OAAO,CAAC,QAAQ,CAAC,CAAqB;IACtC,OAAO,CAAC,IAAI,CAA+B;gBAExB,YAAY,EAAE,MAAM;IAOvC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,GAAE,MAA0B,GAAG,OAAO,CAAC,CAAC,CAAC;IA6BnF,WAAW,IAAI,OAAO;IAItB,MAAM,IAAI,IAAI;IASd,OAAO,CAAC,aAAa;IAOrB,OAAO,IAAI,IAAI;CAGhB;AAED;;;;;;;;GAQG;AACH,qBAAa,gBAAgB,CAAC,CAAC;IAE7B,OAAO,CAAC,OAAO,CAAsB;IACrC,OAAO,CAAC,SAAS,CAAY;gBAEjB,YAAY,EAAE,MAAM;IAKhC,OAAO,CAAC,cAAc,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IAItE,WAAW,IAAI,OAAO;IAItB,MAAM,IAAI,IAAI;IAId,OAAO,IAAI,IAAI;CAGhB;AAED,wBAAgB,UAAU,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,IAAI,OAAO,CAAC,CAAC,CAAC,CAEzD;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAYnH;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CASxE;AAID,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,aAAa,IAAI,mBAAmB,CAAC;CACtC;AACD;;GAEG;AACH,eAAO,IAAI,WAAW,EAAE,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,IAAI,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,WAAW,CAAC;AAyClG;;;GAGG;AACH,qBAAa,SAAS,CAAC,CAAC;IAEtB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAa;IACvC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAc;IAEtC,OAAO,CAAC,OAAO,CAAkB;IACjC,OAAO,CAAC,MAAM,CAAC,CAAI;IACnB,OAAO,CAAC,MAAM,CAAM;gBAER,QAAQ,EAAE,MAAM,CAAC;IAa7B,OAAO,IAAI,IAAI;IAIf,QAAQ,IAAI,CAAC;CAUd;AAED,oBAAY,OAAO,CAAC,CAAC,IAAI;IAAE,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAE,CAAC;AAE5D,wBAAgB,KAAK,CAAC,CAAC,EAAE,gBAAgB,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,UAAU,GAAE,CAAC,CAAC,EAAE,CAAC,KAAK,OAAkB,EAAE,YAAY,GAAE,CAAC,GAAG,IAAW,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAsB1J;AAED,wBAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;AACjE,wBAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAejF,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;AAC3G,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAKhH,qBAAa,gBAAgB;IAE3B,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC;IAExD,OAAO,CAAC,YAAY,CAAM;IAC1B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,cAAc,CAAa;gBAEvB,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,EAAE,KAAK,EAAE,MAAM;IAO3D;;OAEG;IACH,OAAO,IAAI,IAAI;IAKf;;OAEG;IACH,MAAM,IAAI,IAAI;IAOd;;OAEG;IACH,QAAQ,CAAC,KAAK,SAAe,GAAG,IAAI;IAKpC,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,IAAI,KAAK,CAAC,KAAK,EAAE,MAAM,EAEtB;IAED;;OAEG;IACH,WAAW,IAAI,OAAO;IAItB,OAAO,CAAC,SAAS;IAOjB,SAAS,CAAC,KAAK,IAAI,IAAI;CAKxB"}
package/lib/async.js ADDED
@@ -0,0 +1,417 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RunOnceScheduler = exports.raceCancellation = exports.timeout = exports.first = exports.IdleValue = exports.runWhenIdle = exports.asPromise = exports.raceTimeout = exports.isThenable = exports.ThrottledDelayer = exports.Delayer = exports.Sequencer = exports.Throttler = exports.hookCancellationToken = exports.createCancelablePromise = void 0;
4
+ const cancellation_1 = require("./cancellation");
5
+ const errors_1 = require("./errors");
6
+ const log_1 = require("./log");
7
+ function createCancelablePromise(callback) {
8
+ const source = new cancellation_1.CancellationTokenSource();
9
+ const thenable = callback(source.token);
10
+ const promise = new Promise((resolve, reject) => {
11
+ source.token.onCancellationRequested(() => {
12
+ reject((0, errors_1.canceled)());
13
+ });
14
+ Promise.resolve(thenable).then(value => {
15
+ source.dispose();
16
+ resolve(value);
17
+ }, err => {
18
+ source.dispose();
19
+ reject(err);
20
+ });
21
+ });
22
+ return new class {
23
+ cancel() {
24
+ source.cancel();
25
+ }
26
+ then(resolve, reject) {
27
+ return promise.then(resolve, reject);
28
+ }
29
+ catch(reject) {
30
+ return this.then(undefined, reject);
31
+ }
32
+ finally(onfinally) {
33
+ return promise.finally(onfinally);
34
+ }
35
+ };
36
+ }
37
+ exports.createCancelablePromise = createCancelablePromise;
38
+ function hookCancellationToken(token, promise) {
39
+ return new Promise((resolve, reject) => {
40
+ const sub = token.onCancellationRequested(() => reject(new Error('This promise is cancelled')));
41
+ promise.then(value => {
42
+ sub.dispose();
43
+ resolve(value);
44
+ }).catch(err => {
45
+ sub.dispose();
46
+ reject(err);
47
+ });
48
+ });
49
+ }
50
+ exports.hookCancellationToken = hookCancellationToken;
51
+ /**
52
+ * A helper to prevent accumulation of sequential async tasks.
53
+ *
54
+ * Imagine a mail man with the sole task of delivering letters. As soon as
55
+ * a letter submitted for delivery, he drives to the destination, delivers it
56
+ * and returns to his base. Imagine that during the trip, N more letters were submitted.
57
+ * When the mail man returns, he picks those N letters and delivers them all in a
58
+ * single trip. Even though N+1 submissions occurred, only 2 deliveries were made.
59
+ *
60
+ * The throttler implements this via the queue() method, by providing it a task
61
+ * factory. Following the example:
62
+ *
63
+ * const throttler = new Throttler();
64
+ * const letters = [];
65
+ *
66
+ * function deliver() {
67
+ * const lettersToDeliver = letters;
68
+ * letters = [];
69
+ * return makeTheTrip(lettersToDeliver);
70
+ * }
71
+ *
72
+ * function onLetterReceived(l) {
73
+ * letters.push(l);
74
+ * throttler.queue(deliver);
75
+ * }
76
+ */
77
+ class Throttler {
78
+ constructor() {
79
+ this.activePromise = null;
80
+ this.queuedPromise = null;
81
+ this.queuedPromiseFactory = null;
82
+ }
83
+ queue(promiseFactory) {
84
+ if (this.activePromise) {
85
+ this.queuedPromiseFactory = promiseFactory;
86
+ if (!this.queuedPromise) {
87
+ const onComplete = () => {
88
+ this.queuedPromise = null;
89
+ const result = this.queue(this.queuedPromiseFactory);
90
+ this.queuedPromiseFactory = null;
91
+ return result;
92
+ };
93
+ this.queuedPromise = new Promise(c => {
94
+ this.activePromise.then(onComplete, onComplete).then(c);
95
+ });
96
+ }
97
+ return new Promise((c, e) => {
98
+ this.queuedPromise.then(c, e);
99
+ });
100
+ }
101
+ this.activePromise = promiseFactory();
102
+ return new Promise((c, e) => {
103
+ this.activePromise.then((result) => {
104
+ this.activePromise = null;
105
+ c(result);
106
+ }, (err) => {
107
+ this.activePromise = null;
108
+ e(err);
109
+ });
110
+ });
111
+ }
112
+ }
113
+ exports.Throttler = Throttler;
114
+ class Sequencer {
115
+ constructor() {
116
+ this.current = Promise.resolve(null);
117
+ }
118
+ queue(promiseTask) {
119
+ return this.current = this.current.then(() => promiseTask());
120
+ }
121
+ }
122
+ exports.Sequencer = Sequencer;
123
+ /**
124
+ * A helper to delay execution of a task that is being requested often.
125
+ *
126
+ * Following the throttler, now imagine the mail man wants to optimize the number of
127
+ * trips proactively. The trip itself can be long, so he decides not to make the trip
128
+ * as soon as a letter is submitted. Instead he waits a while, in case more
129
+ * letters are submitted. After said waiting period, if no letters were submitted, he
130
+ * decides to make the trip. Imagine that N more letters were submitted after the first
131
+ * one, all within a short period of time between each other. Even though N+1
132
+ * submissions occurred, only 1 delivery was made.
133
+ *
134
+ * The delayer offers this behavior via the trigger() method, into which both the task
135
+ * to be executed and the waiting period (delay) must be passed in as arguments. Following
136
+ * the example:
137
+ *
138
+ * const delayer = new Delayer(WAITING_PERIOD);
139
+ * const letters = [];
140
+ *
141
+ * function letterReceived(l) {
142
+ * letters.push(l);
143
+ * delayer.trigger(() => { return makeTheTrip(); });
144
+ * }
145
+ */
146
+ class Delayer {
147
+ constructor(defaultDelay) {
148
+ this.defaultDelay = defaultDelay;
149
+ this.timeout = null;
150
+ this.completionPromise = null;
151
+ this.doResolve = null;
152
+ this.task = null;
153
+ }
154
+ trigger(task, delay = this.defaultDelay) {
155
+ this.task = task;
156
+ this.cancelTimeout();
157
+ if (!this.completionPromise) {
158
+ this.completionPromise = new Promise((c, e) => {
159
+ this.doResolve = c;
160
+ this.doReject = e;
161
+ }).then(() => {
162
+ this.completionPromise = null;
163
+ this.doResolve = null;
164
+ const task = this.task;
165
+ this.task = null;
166
+ return task();
167
+ }).catch(err => {
168
+ // 捕获 delayer cancel reject 掉的 promise
169
+ (0, log_1.getDebugLogger)().verbose('delayer cancelled:', err);
170
+ });
171
+ }
172
+ this.timeout = setTimeout(() => {
173
+ this.timeout = null;
174
+ this.doResolve(null);
175
+ }, delay);
176
+ return this.completionPromise;
177
+ }
178
+ isTriggered() {
179
+ return this.timeout !== null;
180
+ }
181
+ cancel() {
182
+ this.cancelTimeout();
183
+ if (this.completionPromise) {
184
+ this.doReject((0, errors_1.canceled)());
185
+ this.completionPromise = null;
186
+ }
187
+ }
188
+ cancelTimeout() {
189
+ if (this.timeout !== null) {
190
+ clearTimeout(this.timeout);
191
+ this.timeout = null;
192
+ }
193
+ }
194
+ dispose() {
195
+ this.cancelTimeout();
196
+ }
197
+ }
198
+ exports.Delayer = Delayer;
199
+ /**
200
+ * A helper to delay execution of a task that is being requested often, while
201
+ * preventing accumulation of consecutive executions, while the task runs.
202
+ *
203
+ * The mail man is clever and waits for a certain amount of time, before going
204
+ * out to deliver letters. While the mail man is going out, more letters arrive
205
+ * and can only be delivered once he is back. Once he is back the mail man will
206
+ * do one more trip to deliver the letters that have accumulated while he was out.
207
+ */
208
+ class ThrottledDelayer {
209
+ constructor(defaultDelay) {
210
+ this.delayer = new Delayer(defaultDelay);
211
+ this.throttler = new Throttler();
212
+ }
213
+ trigger(promiseFactory, delay) {
214
+ return this.delayer.trigger(() => this.throttler.queue(promiseFactory), delay);
215
+ }
216
+ isTriggered() {
217
+ return this.delayer.isTriggered();
218
+ }
219
+ cancel() {
220
+ this.delayer.cancel();
221
+ }
222
+ dispose() {
223
+ this.delayer.dispose();
224
+ }
225
+ }
226
+ exports.ThrottledDelayer = ThrottledDelayer;
227
+ function isThenable(obj) {
228
+ return obj && typeof obj.then === 'function';
229
+ }
230
+ exports.isThenable = isThenable;
231
+ function raceTimeout(promise, timeout, onTimeout) {
232
+ let promiseResolve = undefined;
233
+ const timer = setTimeout(() => {
234
+ promiseResolve === null || promiseResolve === void 0 ? void 0 : promiseResolve(undefined);
235
+ onTimeout === null || onTimeout === void 0 ? void 0 : onTimeout();
236
+ }, timeout);
237
+ return Promise.race([
238
+ promise.finally(() => clearTimeout(timer)),
239
+ new Promise(resolve => promiseResolve = resolve)
240
+ ]);
241
+ }
242
+ exports.raceTimeout = raceTimeout;
243
+ function asPromise(callback) {
244
+ return new Promise((resolve, reject) => {
245
+ const item = callback();
246
+ if (isThenable(item)) {
247
+ item.then(resolve, reject);
248
+ }
249
+ else {
250
+ resolve(item);
251
+ }
252
+ });
253
+ }
254
+ exports.asPromise = asPromise;
255
+ (function () {
256
+ if (typeof requestIdleCallback !== 'function' || typeof cancelIdleCallback !== 'function') {
257
+ const dummyIdle = Object.freeze({
258
+ didTimeout: true,
259
+ timeRemaining() { return 15; }
260
+ });
261
+ exports.runWhenIdle = (runner) => {
262
+ const handle = setTimeout(() => runner(dummyIdle));
263
+ let disposed = false;
264
+ return {
265
+ dispose() {
266
+ if (disposed) {
267
+ return;
268
+ }
269
+ disposed = true;
270
+ clearTimeout(handle);
271
+ }
272
+ };
273
+ };
274
+ }
275
+ else {
276
+ exports.runWhenIdle = (runner, timeout) => {
277
+ const handle = requestIdleCallback(runner, typeof timeout === 'number' ? { timeout } : undefined);
278
+ let disposed = false;
279
+ return {
280
+ dispose() {
281
+ if (disposed) {
282
+ return;
283
+ }
284
+ disposed = true;
285
+ cancelIdleCallback(handle);
286
+ }
287
+ };
288
+ };
289
+ }
290
+ })();
291
+ /**
292
+ * An implementation of the "idle-until-urgent"-strategy as introduced
293
+ * here: https://philipwalton.com/articles/idle-until-urgent/
294
+ */
295
+ class IdleValue {
296
+ constructor(executor) {
297
+ this._didRun = false;
298
+ this._executor = () => {
299
+ try {
300
+ this._value = executor();
301
+ }
302
+ catch (err) {
303
+ this._error = err;
304
+ }
305
+ finally {
306
+ this._didRun = true;
307
+ }
308
+ };
309
+ this._handle = (0, exports.runWhenIdle)(() => this._executor());
310
+ }
311
+ dispose() {
312
+ this._handle.dispose();
313
+ }
314
+ getValue() {
315
+ if (!this._didRun) {
316
+ this._handle.dispose();
317
+ this._executor();
318
+ }
319
+ if (this._error) {
320
+ throw this._error;
321
+ }
322
+ return this._value;
323
+ }
324
+ }
325
+ exports.IdleValue = IdleValue;
326
+ function first(promiseFactories, shouldStop = t => !!t, defaultValue = null) {
327
+ let index = 0;
328
+ const len = promiseFactories.length;
329
+ const loop = () => {
330
+ if (index >= len) {
331
+ return Promise.resolve(defaultValue);
332
+ }
333
+ const factory = promiseFactories[index++];
334
+ const promise = Promise.resolve(factory());
335
+ return promise.then(result => {
336
+ if (shouldStop(result)) {
337
+ return Promise.resolve(result);
338
+ }
339
+ return loop();
340
+ });
341
+ };
342
+ return loop();
343
+ }
344
+ exports.first = first;
345
+ function timeout(millis, token) {
346
+ if (!token) {
347
+ return createCancelablePromise(token => timeout(millis, token));
348
+ }
349
+ return new Promise((resolve, reject) => {
350
+ const handle = setTimeout(resolve, millis);
351
+ token.onCancellationRequested(() => {
352
+ clearTimeout(handle);
353
+ reject((0, errors_1.canceled)());
354
+ });
355
+ });
356
+ }
357
+ exports.timeout = timeout;
358
+ function raceCancellation(promise, token, defaultValue) {
359
+ return Promise.race([promise, new Promise(resolve => token.onCancellationRequested(() => resolve(defaultValue)))]);
360
+ }
361
+ exports.raceCancellation = raceCancellation;
362
+ class RunOnceScheduler {
363
+ constructor(runner, delay) {
364
+ this.timeoutToken = -1;
365
+ this.runner = runner;
366
+ this.timeout = delay;
367
+ this.timeoutHandler = this.onTimeout.bind(this);
368
+ }
369
+ /**
370
+ * Dispose RunOnceScheduler
371
+ */
372
+ dispose() {
373
+ this.cancel();
374
+ this.runner = null;
375
+ }
376
+ /**
377
+ * Cancel current scheduled runner (if any).
378
+ */
379
+ cancel() {
380
+ if (this.isScheduled()) {
381
+ clearTimeout(this.timeoutToken);
382
+ this.timeoutToken = -1;
383
+ }
384
+ }
385
+ /**
386
+ * Cancel previous runner (if any) & schedule a new runner.
387
+ */
388
+ schedule(delay = this.timeout) {
389
+ this.cancel();
390
+ this.timeoutToken = setTimeout(this.timeoutHandler, delay);
391
+ }
392
+ get delay() {
393
+ return this.timeout;
394
+ }
395
+ set delay(value) {
396
+ this.timeout = value;
397
+ }
398
+ /**
399
+ * Returns true if scheduled.
400
+ */
401
+ isScheduled() {
402
+ return this.timeoutToken !== -1;
403
+ }
404
+ onTimeout() {
405
+ this.timeoutToken = -1;
406
+ if (this.runner) {
407
+ this.doRun();
408
+ }
409
+ }
410
+ doRun() {
411
+ if (this.runner) {
412
+ this.runner();
413
+ }
414
+ }
415
+ }
416
+ exports.RunOnceScheduler = RunOnceScheduler;
417
+ //# sourceMappingURL=async.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"async.js","sourceRoot":"","sources":["../src/async.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ interface FsLike {
2
+ access: (path: string) => Promise<boolean>;
3
+ mkdir: (path: string) => Promise<void>;
4
+ }
5
+ export declare function ensureDir(path: string, fsLikeImpl?: FsLike): Promise<void>;
6
+ export {};
7
+ //# sourceMappingURL=ensure-dir.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ensure-dir.d.ts","sourceRoot":"","sources":["../../src/browser-fs/ensure-dir.ts"],"names":[],"mappings":"AAaA,UAAU,MAAM;IACd,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3C,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACxC;AAkBD,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,GAAE,MAAsB,iBAU/E"}
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ensureDir = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const fs_1 = (0, tslib_1.__importDefault)(require("fs"));
6
+ const util_1 = require("./util");
7
+ const PATH_SEPARATOR = '/';
8
+ function fsExistsAsync(path) {
9
+ return new Promise((resolve) => {
10
+ fs_1.default.exists(path, (exists) => {
11
+ resolve(exists);
12
+ });
13
+ });
14
+ }
15
+ class DefaultFsImpl {
16
+ access(path) {
17
+ return new Promise((resolve) => {
18
+ fs_1.default.exists(path, (exists) => {
19
+ resolve(exists);
20
+ });
21
+ });
22
+ }
23
+ mkdir(path) {
24
+ return (0, util_1.promisify)(fs_1.default.mkdir)(path);
25
+ }
26
+ }
27
+ const defaultFsImpl = new DefaultFsImpl();
28
+ async function ensureDir(path, fsLikeImpl = defaultFsImpl) {
29
+ const pathList = (path.startsWith(PATH_SEPARATOR) ? path.slice(0) : path).split(PATH_SEPARATOR);
30
+ let i = 0;
31
+ while (i < pathList.length) {
32
+ const targetPath = PATH_SEPARATOR + pathList.slice(0, i + 1).join(PATH_SEPARATOR);
33
+ if (!await fsLikeImpl.access(targetPath)) {
34
+ await fsLikeImpl.mkdir((PATH_SEPARATOR + targetPath));
35
+ }
36
+ i = i + 1;
37
+ }
38
+ }
39
+ exports.ensureDir = ensureDir;
40
+ //# sourceMappingURL=ensure-dir.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ensure-dir.js","sourceRoot":"","sources":["../../src/browser-fs/ensure-dir.ts"],"names":[],"mappings":";;;;AAAA,yDAAoB;AACpB,iCAAmC;AAEnC,MAAM,cAAc,GAAG,GAAG,CAAC;AAE3B,SAAS,aAAa,CAAC,IAAY;IACjC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,YAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,MAAe,EAAE,EAAE;YAClC,OAAO,CAAC,MAAM,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAOD,MAAM,aAAa;IACjB,MAAM,CAAC,IAAY;QACjB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,YAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,MAAe,EAAE,EAAE;gBAClC,OAAO,CAAC,MAAM,CAAC,CAAC;YAClB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,IAAY;QAChB,OAAO,IAAA,gBAAS,EAAC,YAAE,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;CACF;AAED,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;AAEnC,KAAK,UAAU,SAAS,CAAC,IAAY,EAAE,aAAqB,aAAa;IAC9E,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAChG,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,OAAO,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE;QAC1B,MAAM,UAAU,GAAG,cAAc,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAClF,IAAI,CAAC,MAAM,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE;YACxC,MAAM,UAAU,CAAC,KAAK,CAAC,CAAC,cAAc,GAAG,UAAU,CAAC,CAAC,CAAC;SACvD;QACD,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;KACX;AACH,CAAC;AAVD,8BAUC"}