@theia/core 1.42.1 → 1.43.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (318) hide show
  1. package/README.md +6 -6
  2. package/i18n/nls.cs.json +29 -0
  3. package/i18n/nls.de.json +29 -0
  4. package/i18n/nls.es.json +29 -0
  5. package/i18n/nls.fr.json +29 -0
  6. package/i18n/nls.hu.json +29 -0
  7. package/i18n/nls.it.json +29 -0
  8. package/i18n/nls.ja.json +29 -0
  9. package/i18n/nls.json +29 -0
  10. package/i18n/nls.pl.json +29 -0
  11. package/i18n/nls.pt-br.json +29 -0
  12. package/i18n/nls.pt-pt.json +29 -0
  13. package/i18n/nls.ru.json +29 -0
  14. package/i18n/nls.zh-cn.json +29 -0
  15. package/lib/browser/color-application-contribution.d.ts +1 -1
  16. package/lib/browser/color-application-contribution.d.ts.map +1 -1
  17. package/lib/browser/common-frontend-contribution.d.ts +6 -3
  18. package/lib/browser/common-frontend-contribution.d.ts.map +1 -1
  19. package/lib/browser/common-frontend-contribution.js +35 -14
  20. package/lib/browser/common-frontend-contribution.js.map +1 -1
  21. package/lib/browser/connection-status-service.d.ts +1 -1
  22. package/lib/browser/connection-status-service.d.ts.map +1 -1
  23. package/lib/browser/connection-status-service.js +2 -2
  24. package/lib/browser/connection-status-service.js.map +1 -1
  25. package/lib/browser/core-preferences.js +16 -16
  26. package/lib/browser/core-preferences.js.map +1 -1
  27. package/lib/browser/credentials-service.d.ts +2 -2
  28. package/lib/browser/credentials-service.d.ts.map +1 -1
  29. package/lib/browser/credentials-service.js +2 -2
  30. package/lib/browser/credentials-service.js.map +1 -1
  31. package/lib/browser/dialogs.d.ts +1 -1
  32. package/lib/browser/dialogs.d.ts.map +1 -1
  33. package/lib/browser/frontend-application-contribution.d.ts +76 -0
  34. package/lib/browser/frontend-application-contribution.d.ts.map +1 -0
  35. package/lib/browser/frontend-application-contribution.js +51 -0
  36. package/lib/browser/frontend-application-contribution.js.map +1 -0
  37. package/lib/browser/frontend-application-module.d.ts.map +1 -1
  38. package/lib/browser/frontend-application-module.js +24 -23
  39. package/lib/browser/frontend-application-module.js.map +1 -1
  40. package/lib/browser/frontend-application.d.ts +1 -73
  41. package/lib/browser/frontend-application.d.ts.map +1 -1
  42. package/lib/browser/frontend-application.js +3 -26
  43. package/lib/browser/frontend-application.js.map +1 -1
  44. package/lib/browser/i18n/language-quick-pick-service.d.ts.map +1 -1
  45. package/lib/browser/i18n/language-quick-pick-service.js +1 -0
  46. package/lib/browser/i18n/language-quick-pick-service.js.map +1 -1
  47. package/lib/browser/icon-registry.d.ts +63 -0
  48. package/lib/browser/icon-registry.d.ts.map +1 -0
  49. package/lib/browser/icon-registry.js +25 -0
  50. package/lib/browser/icon-registry.js.map +1 -0
  51. package/lib/browser/icon-theme-contribution.d.ts +1 -1
  52. package/lib/browser/icon-theme-contribution.d.ts.map +1 -1
  53. package/lib/browser/index.d.ts +1 -0
  54. package/lib/browser/index.d.ts.map +1 -1
  55. package/lib/browser/index.js +1 -0
  56. package/lib/browser/index.js.map +1 -1
  57. package/lib/browser/json-schema-store.d.ts +1 -1
  58. package/lib/browser/json-schema-store.d.ts.map +1 -1
  59. package/lib/browser/label-provider.d.ts +1 -1
  60. package/lib/browser/label-provider.d.ts.map +1 -1
  61. package/lib/browser/logger-frontend-module.js +2 -2
  62. package/lib/browser/logger-frontend-module.js.map +1 -1
  63. package/lib/browser/menu/browser-menu-module.js +2 -2
  64. package/lib/browser/menu/browser-menu-module.js.map +1 -1
  65. package/lib/browser/menu/browser-menu-plugin.d.ts +2 -1
  66. package/lib/browser/menu/browser-menu-plugin.d.ts.map +1 -1
  67. package/lib/browser/menu/browser-menu-plugin.js.map +1 -1
  68. package/lib/browser/messaging/messaging-frontend-module.d.ts.map +1 -1
  69. package/lib/browser/messaging/messaging-frontend-module.js +1 -0
  70. package/lib/browser/messaging/messaging-frontend-module.js.map +1 -1
  71. package/lib/browser/messaging/ws-connection-provider.d.ts +5 -0
  72. package/lib/browser/messaging/ws-connection-provider.d.ts.map +1 -1
  73. package/lib/browser/messaging/ws-connection-provider.js +18 -3
  74. package/lib/browser/messaging/ws-connection-provider.js.map +1 -1
  75. package/lib/browser/quick-input/quick-command-frontend-contribution.d.ts.map +1 -1
  76. package/lib/browser/quick-input/quick-command-frontend-contribution.js +5 -0
  77. package/lib/browser/quick-input/quick-command-frontend-contribution.js.map +1 -1
  78. package/lib/browser/quick-input/quick-input-frontend-contribution.d.ts +1 -1
  79. package/lib/browser/quick-input/quick-input-frontend-contribution.d.ts.map +1 -1
  80. package/lib/browser/saveable.d.ts +3 -3
  81. package/lib/browser/saveable.d.ts.map +1 -1
  82. package/lib/browser/saveable.js +13 -8
  83. package/lib/browser/saveable.js.map +1 -1
  84. package/lib/browser/shell/application-shell-mouse-tracker.d.ts +1 -1
  85. package/lib/browser/shell/application-shell-mouse-tracker.d.ts.map +1 -1
  86. package/lib/browser/shell/application-shell.d.ts.map +1 -1
  87. package/lib/browser/shell/application-shell.js +15 -16
  88. package/lib/browser/shell/application-shell.js.map +1 -1
  89. package/lib/browser/shell/tab-bar-decorator.d.ts +1 -1
  90. package/lib/browser/shell/tab-bar-decorator.d.ts.map +1 -1
  91. package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-registry.d.ts +1 -1
  92. package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-registry.d.ts.map +1 -1
  93. package/lib/browser/status-bar/status-bar.d.ts.map +1 -1
  94. package/lib/browser/status-bar/status-bar.js +4 -2
  95. package/lib/browser/status-bar/status-bar.js.map +1 -1
  96. package/lib/browser/styling-service.d.ts +1 -1
  97. package/lib/browser/styling-service.d.ts.map +1 -1
  98. package/lib/browser/window/browser-window-module.js +2 -2
  99. package/lib/browser/window/browser-window-module.js.map +1 -1
  100. package/lib/browser/window/default-window-service.d.ts +2 -1
  101. package/lib/browser/window/default-window-service.d.ts.map +1 -1
  102. package/lib/browser/window/default-window-service.js +3 -3
  103. package/lib/browser/window/default-window-service.js.map +1 -1
  104. package/lib/browser/window/default-window-service.spec.js +2 -2
  105. package/lib/browser/window/default-window-service.spec.js.map +1 -1
  106. package/lib/browser/window/window-service.d.ts +3 -3
  107. package/lib/browser/window/window-service.d.ts.map +1 -1
  108. package/lib/browser/window/window-title-updater.d.ts +2 -1
  109. package/lib/browser/window/window-title-updater.d.ts.map +1 -1
  110. package/lib/browser/window/window-title-updater.js.map +1 -1
  111. package/lib/common/cancellation.d.ts +2 -0
  112. package/lib/common/cancellation.d.ts.map +1 -1
  113. package/lib/common/cancellation.js +20 -0
  114. package/lib/common/cancellation.js.map +1 -1
  115. package/lib/common/collections.d.ts +30 -0
  116. package/lib/common/collections.d.ts.map +1 -0
  117. package/lib/common/collections.js +122 -0
  118. package/lib/common/collections.js.map +1 -0
  119. package/lib/common/event.d.ts +5 -0
  120. package/lib/common/event.d.ts.map +1 -1
  121. package/lib/common/event.js +31 -0
  122. package/lib/common/event.js.map +1 -1
  123. package/lib/common/hash.d.ts +8 -0
  124. package/lib/common/hash.d.ts.map +1 -0
  125. package/lib/common/hash.js +85 -0
  126. package/lib/common/hash.js.map +1 -0
  127. package/lib/common/index.d.ts +1 -0
  128. package/lib/common/index.d.ts.map +1 -1
  129. package/lib/common/index.js +1 -0
  130. package/lib/common/index.js.map +1 -1
  131. package/lib/common/{keytar-protocol.d.ts → key-store.d.ts} +4 -4
  132. package/lib/common/key-store.d.ts.map +1 -0
  133. package/lib/common/{keytar-protocol.js → key-store.js} +4 -4
  134. package/lib/common/key-store.js.map +1 -0
  135. package/lib/common/keybinding.d.ts +2 -0
  136. package/lib/common/keybinding.d.ts.map +1 -1
  137. package/lib/common/keybinding.js +28 -0
  138. package/lib/common/keybinding.js.map +1 -1
  139. package/lib/common/markdown-rendering/markdown-string.d.ts +4 -0
  140. package/lib/common/markdown-rendering/markdown-string.d.ts.map +1 -1
  141. package/lib/common/markdown-rendering/markdown-string.js +24 -1
  142. package/lib/common/markdown-rendering/markdown-string.js.map +1 -1
  143. package/lib/common/menu/menu-types.d.ts +1 -1
  144. package/lib/common/menu/menu-types.d.ts.map +1 -1
  145. package/lib/common/menu/menu-types.js +2 -2
  146. package/lib/common/menu/menu-types.js.map +1 -1
  147. package/lib/common/message-rpc/rpc-protocol.d.ts.map +1 -1
  148. package/lib/common/message-rpc/rpc-protocol.js +6 -11
  149. package/lib/common/message-rpc/rpc-protocol.js.map +1 -1
  150. package/lib/common/objects.d.ts +1 -1
  151. package/lib/common/objects.d.ts.map +1 -1
  152. package/lib/common/objects.js +12 -10
  153. package/lib/common/objects.js.map +1 -1
  154. package/lib/common/quick-pick-service.d.ts +1 -0
  155. package/lib/common/quick-pick-service.d.ts.map +1 -1
  156. package/lib/common/quick-pick-service.js +2 -1
  157. package/lib/common/quick-pick-service.js.map +1 -1
  158. package/lib/common/strings.d.ts +1 -0
  159. package/lib/common/strings.d.ts.map +1 -1
  160. package/lib/common/strings.js +10 -1
  161. package/lib/common/strings.js.map +1 -1
  162. package/lib/common/types.d.ts +8 -0
  163. package/lib/common/types.d.ts.map +1 -1
  164. package/lib/common/types.js +21 -1
  165. package/lib/common/types.js.map +1 -1
  166. package/lib/common/uri.d.ts +0 -1
  167. package/lib/common/uri.d.ts.map +1 -1
  168. package/lib/common/uri.js +0 -3
  169. package/lib/common/uri.js.map +1 -1
  170. package/lib/common/uuid.d.ts +3 -0
  171. package/lib/common/uuid.d.ts.map +1 -0
  172. package/lib/common/uuid.js +86 -0
  173. package/lib/common/uuid.js.map +1 -0
  174. package/lib/common/version.d.ts +2 -0
  175. package/lib/common/version.d.ts.map +1 -0
  176. package/lib/common/version.js +20 -0
  177. package/lib/common/version.js.map +1 -0
  178. package/lib/common/window.d.ts +3 -0
  179. package/lib/common/window.d.ts.map +1 -1
  180. package/lib/electron-browser/keyboard/electron-keyboard-module.js +1 -1
  181. package/lib/electron-browser/keyboard/electron-keyboard-module.js.map +1 -1
  182. package/lib/electron-browser/messaging/electron-local-ws-connection-provider.d.ts +7 -0
  183. package/lib/electron-browser/messaging/electron-local-ws-connection-provider.d.ts.map +1 -0
  184. package/lib/electron-browser/messaging/electron-local-ws-connection-provider.js +55 -0
  185. package/lib/electron-browser/messaging/electron-local-ws-connection-provider.js.map +1 -0
  186. package/lib/electron-browser/messaging/electron-messaging-frontend-module.d.ts.map +1 -1
  187. package/lib/electron-browser/messaging/electron-messaging-frontend-module.js +16 -2
  188. package/lib/electron-browser/messaging/electron-messaging-frontend-module.js.map +1 -1
  189. package/lib/electron-browser/messaging/electron-ws-connection-provider.d.ts +1 -1
  190. package/lib/electron-browser/messaging/electron-ws-connection-provider.d.ts.map +1 -1
  191. package/lib/electron-browser/window/electron-window-module.js +2 -2
  192. package/lib/electron-browser/window/electron-window-module.js.map +1 -1
  193. package/lib/electron-browser/window/electron-window-service.d.ts +3 -3
  194. package/lib/electron-browser/window/electron-window-service.d.ts.map +1 -1
  195. package/lib/electron-browser/window/electron-window-service.js +10 -4
  196. package/lib/electron-browser/window/electron-window-service.js.map +1 -1
  197. package/lib/electron-common/electron-main-window-service.d.ts +2 -2
  198. package/lib/electron-common/electron-main-window-service.d.ts.map +1 -1
  199. package/lib/electron-main/electron-main-application.d.ts +3 -2
  200. package/lib/electron-main/electron-main-application.d.ts.map +1 -1
  201. package/lib/electron-main/electron-main-application.js +8 -4
  202. package/lib/electron-main/electron-main-application.js.map +1 -1
  203. package/lib/electron-main/electron-main-window-service-impl.d.ts +2 -2
  204. package/lib/electron-main/electron-main-window-service-impl.d.ts.map +1 -1
  205. package/lib/electron-main/electron-main-window-service-impl.js +2 -2
  206. package/lib/electron-main/electron-main-window-service-impl.js.map +1 -1
  207. package/lib/electron-node/hosting/electron-ws-origin-validator.d.ts +2 -0
  208. package/lib/electron-node/hosting/electron-ws-origin-validator.d.ts.map +1 -1
  209. package/lib/electron-node/hosting/electron-ws-origin-validator.js +12 -0
  210. package/lib/electron-node/hosting/electron-ws-origin-validator.js.map +1 -1
  211. package/lib/electron-node/token/electron-token-validator.d.ts +2 -2
  212. package/lib/electron-node/token/electron-token-validator.d.ts.map +1 -1
  213. package/lib/electron-node/token/electron-token-validator.js +12 -1
  214. package/lib/electron-node/token/electron-token-validator.js.map +1 -1
  215. package/lib/node/backend-application-module.d.ts.map +1 -1
  216. package/lib/node/backend-application-module.js +7 -4
  217. package/lib/node/backend-application-module.js.map +1 -1
  218. package/lib/node/backend-application.d.ts.map +1 -1
  219. package/lib/node/backend-application.js +4 -0
  220. package/lib/node/backend-application.js.map +1 -1
  221. package/lib/node/backend-remote-service.d.ts +4 -0
  222. package/lib/node/backend-remote-service.d.ts.map +1 -0
  223. package/lib/node/backend-remote-service.js +35 -0
  224. package/lib/node/backend-remote-service.js.map +1 -0
  225. package/lib/node/i18n/localization-contribution.d.ts +4 -4
  226. package/lib/node/i18n/localization-contribution.d.ts.map +1 -1
  227. package/lib/node/i18n/localization-contribution.js +11 -7
  228. package/lib/node/i18n/localization-contribution.js.map +1 -1
  229. package/lib/node/i18n/localization-provider.d.ts +16 -4
  230. package/lib/node/i18n/localization-provider.d.ts.map +1 -1
  231. package/lib/node/i18n/localization-provider.js +42 -10
  232. package/lib/node/i18n/localization-provider.js.map +1 -1
  233. package/lib/node/key-store-server.d.ts +28 -0
  234. package/lib/node/key-store-server.d.ts.map +1 -0
  235. package/lib/node/{keytar-server.js → key-store-server.js} +76 -17
  236. package/lib/node/key-store-server.js.map +1 -0
  237. package/lib/node/messaging/messaging-contribution.d.ts +1 -1
  238. package/lib/node/messaging/messaging-contribution.d.ts.map +1 -1
  239. package/lib/node/messaging/messaging-contribution.js +5 -4
  240. package/lib/node/messaging/messaging-contribution.js.map +1 -1
  241. package/package.json +6 -6
  242. package/src/browser/color-application-contribution.ts +1 -1
  243. package/src/browser/common-frontend-contribution.ts +41 -16
  244. package/src/browser/connection-status-service.ts +1 -1
  245. package/src/browser/core-preferences.ts +16 -16
  246. package/src/browser/credentials-service.ts +3 -3
  247. package/src/browser/dialogs.ts +1 -1
  248. package/src/browser/frontend-application-contribution.ts +110 -0
  249. package/src/browser/frontend-application-module.ts +8 -7
  250. package/src/browser/frontend-application.ts +2 -92
  251. package/src/browser/i18n/language-quick-pick-service.ts +1 -0
  252. package/src/browser/icon-registry.ts +96 -0
  253. package/src/browser/icon-theme-contribution.ts +1 -1
  254. package/src/browser/index.ts +1 -0
  255. package/src/browser/json-schema-store.ts +1 -1
  256. package/src/browser/label-provider.ts +1 -1
  257. package/src/browser/logger-frontend-module.ts +1 -1
  258. package/src/browser/menu/browser-menu-module.ts +1 -1
  259. package/src/browser/menu/browser-menu-plugin.ts +2 -1
  260. package/src/browser/messaging/messaging-frontend-module.ts +2 -1
  261. package/src/browser/messaging/ws-connection-provider.ts +21 -2
  262. package/src/browser/quick-input/quick-command-frontend-contribution.ts +5 -0
  263. package/src/browser/quick-input/quick-input-frontend-contribution.ts +1 -1
  264. package/src/browser/saveable.ts +11 -7
  265. package/src/browser/shell/application-shell-mouse-tracker.ts +1 -1
  266. package/src/browser/shell/application-shell.ts +16 -15
  267. package/src/browser/shell/tab-bar-decorator.ts +1 -1
  268. package/src/browser/shell/tab-bar-toolbar/tab-bar-toolbar-registry.ts +1 -1
  269. package/src/browser/status-bar/status-bar.tsx +6 -2
  270. package/src/browser/style/status-bar.css +12 -4
  271. package/src/browser/styling-service.ts +1 -1
  272. package/src/browser/window/browser-window-module.ts +1 -1
  273. package/src/browser/window/default-window-service.spec.ts +1 -1
  274. package/src/browser/window/default-window-service.ts +2 -1
  275. package/src/browser/window/window-service.ts +3 -3
  276. package/src/browser/window/window-title-updater.ts +2 -1
  277. package/src/common/cancellation.ts +22 -0
  278. package/src/common/collections.ts +125 -0
  279. package/src/common/event.ts +32 -0
  280. package/src/common/hash.ts +85 -0
  281. package/src/common/i18n/nls.metadata.json +4947 -4690
  282. package/src/common/index.ts +1 -0
  283. package/src/common/{keytar-protocol.ts → key-store.ts} +3 -3
  284. package/src/common/keybinding.ts +26 -0
  285. package/src/common/markdown-rendering/markdown-string.ts +24 -0
  286. package/src/common/menu/menu-types.ts +1 -1
  287. package/src/common/message-rpc/rpc-protocol.ts +6 -10
  288. package/src/common/objects.ts +14 -10
  289. package/src/common/quick-pick-service.ts +1 -0
  290. package/src/common/strings.ts +11 -0
  291. package/src/common/types.ts +22 -0
  292. package/src/common/uri.ts +0 -4
  293. package/src/common/uuid.ts +99 -0
  294. package/src/common/version.ts +17 -0
  295. package/src/common/window.ts +4 -0
  296. package/src/electron-browser/keyboard/electron-keyboard-module.ts +1 -1
  297. package/src/electron-browser/messaging/electron-local-ws-connection-provider.ts +45 -0
  298. package/src/electron-browser/messaging/electron-messaging-frontend-module.ts +15 -2
  299. package/src/electron-browser/messaging/electron-ws-connection-provider.ts +1 -1
  300. package/src/electron-browser/window/electron-window-module.ts +1 -1
  301. package/src/electron-browser/window/electron-window-service.ts +10 -5
  302. package/src/electron-common/electron-main-window-service.ts +2 -2
  303. package/src/electron-main/electron-main-application.ts +9 -5
  304. package/src/electron-main/electron-main-window-service-impl.ts +3 -3
  305. package/src/electron-node/hosting/electron-ws-origin-validator.ts +9 -1
  306. package/src/electron-node/token/electron-token-validator.ts +13 -3
  307. package/src/node/backend-application-module.ts +8 -5
  308. package/src/node/backend-application.ts +4 -0
  309. package/src/node/backend-remote-service.ts +25 -0
  310. package/src/node/i18n/localization-contribution.ts +15 -11
  311. package/src/node/i18n/localization-provider.ts +59 -12
  312. package/src/node/{keytar-server.ts → key-store-server.ts} +75 -11
  313. package/src/node/messaging/messaging-contribution.ts +5 -4
  314. package/lib/common/keytar-protocol.d.ts.map +0 -1
  315. package/lib/common/keytar-protocol.js.map +0 -1
  316. package/lib/node/keytar-server.d.ts +0 -14
  317. package/lib/node/keytar-server.d.ts.map +0 -1
  318. package/lib/node/keytar-server.js.map +0 -1
@@ -0,0 +1,85 @@
1
+ // *****************************************************************************
2
+ // Copyright (C) 2023 Mathieu Bussieres and others.
3
+ //
4
+ // This program and the accompanying materials are made available under the
5
+ // terms of the Eclipse Public License v. 2.0 which is available at
6
+ // http://www.eclipse.org/legal/epl-2.0.
7
+ //
8
+ // This Source Code may also be made available under the following Secondary
9
+ // Licenses when the conditions for such availability set forth in the Eclipse
10
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
11
+ // with the GNU Classpath Exception which is available at
12
+ // https://www.gnu.org/software/classpath/license.html.
13
+ //
14
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
15
+ // *****************************************************************************
16
+
17
+ /*---------------------------------------------------------------------------------------------
18
+ * Copyright (c) Microsoft Corporation and others. All rights reserved.
19
+ * Licensed under the MIT License. See https://github.com/Microsoft/vscode/blob/master/LICENSE.txt for license information.
20
+ *--------------------------------------------------------------------------------------------*/
21
+
22
+ // based on https://github.com/microsoft/vscode/blob/1.72.2/src/vs/base/common/hash.ts
23
+
24
+ /**
25
+ * Return a hash value for an object.
26
+ */
27
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
28
+ export function hash(obj: any): number {
29
+ return doHash(obj, 0);
30
+ }
31
+
32
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
33
+ export function doHash(obj: any, hashVal: number): number {
34
+ switch (typeof obj) {
35
+ case 'object':
36
+ // eslint-disable-next-line no-null/no-null
37
+ if (obj === null) {
38
+ return numberHash(349, hashVal);
39
+ } else if (Array.isArray(obj)) {
40
+ return arrayHash(obj, hashVal);
41
+ }
42
+ return objectHash(obj, hashVal);
43
+ case 'string':
44
+ return stringHash(obj, hashVal);
45
+ case 'boolean':
46
+ return booleanHash(obj, hashVal);
47
+ case 'number':
48
+ return numberHash(obj, hashVal);
49
+ case 'undefined':
50
+ return numberHash(937, hashVal);
51
+ default:
52
+ return numberHash(617, hashVal);
53
+ }
54
+ }
55
+
56
+ export function numberHash(val: number, initialHashVal: number): number {
57
+ return (((initialHashVal << 5) - initialHashVal) + val) | 0; // hashVal * 31 + ch, keep as int32
58
+ }
59
+
60
+ function booleanHash(b: boolean, initialHashVal: number): number {
61
+ return numberHash(b ? 433 : 863, initialHashVal);
62
+ }
63
+
64
+ export function stringHash(s: string, hashVal: number): number {
65
+ hashVal = numberHash(149417, hashVal);
66
+ for (let i = 0, length = s.length; i < length; i++) {
67
+ hashVal = numberHash(s.charCodeAt(i), hashVal);
68
+ }
69
+ return hashVal;
70
+ }
71
+
72
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
73
+ function arrayHash(arr: any[], initialHashVal: number): number {
74
+ initialHashVal = numberHash(104579, initialHashVal);
75
+ return arr.reduce((hashVal, item) => doHash(item, hashVal), initialHashVal);
76
+ }
77
+
78
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
79
+ function objectHash(obj: any, initialHashVal: number): number {
80
+ initialHashVal = numberHash(181387, initialHashVal);
81
+ return Object.keys(obj).sort().reduce((hashVal, key) => {
82
+ hashVal = stringHash(key, hashVal);
83
+ return doHash(obj[key], hashVal);
84
+ }, initialHashVal);
85
+ }