@bgx4k3p/huly-mcp-server 2.2.3 → 2.2.5

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 (696) hide show
  1. package/README.md +186 -56
  2. package/node_modules/@hcengineering/account-client/lib/__tests__/utils.test.js +249 -0
  3. package/node_modules/@hcengineering/account-client/lib/__tests__/utils.test.js.map +7 -0
  4. package/node_modules/@hcengineering/account-client/lib/client.js +88 -3
  5. package/node_modules/@hcengineering/account-client/lib/client.js.map +2 -2
  6. package/node_modules/@hcengineering/account-client/lib/types.js.map +2 -2
  7. package/node_modules/@hcengineering/account-client/lib/utils.js +50 -0
  8. package/node_modules/@hcengineering/account-client/lib/utils.js.map +2 -2
  9. package/node_modules/@hcengineering/account-client/package.json +22 -19
  10. package/node_modules/@hcengineering/account-client/src/__tests__/utils.test.ts +304 -0
  11. package/node_modules/@hcengineering/account-client/src/client.ts +127 -6
  12. package/node_modules/@hcengineering/account-client/src/types.ts +7 -0
  13. package/node_modules/@hcengineering/account-client/src/utils.ts +65 -1
  14. package/node_modules/@hcengineering/analytics/lib/index.js +1 -1
  15. package/node_modules/@hcengineering/analytics/lib/index.js.map +2 -2
  16. package/node_modules/@hcengineering/analytics/package.json +19 -16
  17. package/node_modules/@hcengineering/analytics/src/index.ts +2 -1
  18. package/node_modules/@hcengineering/api-client/lib/client.js +9 -4
  19. package/node_modules/@hcengineering/api-client/lib/client.js.map +2 -2
  20. package/node_modules/@hcengineering/api-client/lib/rest/adapter.js +64 -0
  21. package/node_modules/@hcengineering/api-client/lib/rest/adapter.js.map +7 -0
  22. package/node_modules/@hcengineering/api-client/lib/rest/index.js +2 -0
  23. package/node_modules/@hcengineering/api-client/lib/rest/index.js.map +2 -2
  24. package/node_modules/@hcengineering/api-client/lib/socket/node.js +5 -1
  25. package/node_modules/@hcengineering/api-client/lib/socket/node.js.map +2 -2
  26. package/node_modules/@hcengineering/api-client/package.json +28 -25
  27. package/node_modules/@hcengineering/api-client/src/client.ts +10 -1
  28. package/node_modules/@hcengineering/api-client/src/rest/adapter.ts +96 -0
  29. package/node_modules/@hcengineering/api-client/src/rest/index.ts +1 -0
  30. package/node_modules/@hcengineering/api-client/src/socket/node.ts +6 -1
  31. package/node_modules/@hcengineering/chunter/lib/index.js.map +2 -2
  32. package/node_modules/@hcengineering/chunter/package.json +13 -10
  33. package/node_modules/@hcengineering/client/package.json +21 -18
  34. package/node_modules/@hcengineering/client-resources/package.json +24 -21
  35. package/node_modules/@hcengineering/collaborator-client/package.json +21 -18
  36. package/node_modules/@hcengineering/contact/lib/__tests__/workspaceMemberStatusUtils.test.js +38 -0
  37. package/node_modules/@hcengineering/contact/lib/__tests__/workspaceMemberStatusUtils.test.js.map +7 -0
  38. package/node_modules/@hcengineering/contact/lib/index.js +13 -4
  39. package/node_modules/@hcengineering/contact/lib/index.js.map +2 -2
  40. package/node_modules/@hcengineering/contact/lib/types.js.map +1 -1
  41. package/node_modules/@hcengineering/contact/lib/utils.js +132 -108
  42. package/node_modules/@hcengineering/contact/lib/utils.js.map +3 -3
  43. package/node_modules/@hcengineering/contact/lib/workspaceMemberStatusUtils.js +79 -0
  44. package/node_modules/@hcengineering/contact/lib/workspaceMemberStatusUtils.js.map +7 -0
  45. package/node_modules/@hcengineering/contact/package.json +12 -9
  46. package/node_modules/@hcengineering/core/CHANGELOG.md +9 -1
  47. package/node_modules/@hcengineering/core/lang/cs.json +6 -1
  48. package/node_modules/@hcengineering/core/lang/de.json +6 -1
  49. package/node_modules/@hcengineering/core/lang/en.json +6 -1
  50. package/node_modules/@hcengineering/core/lang/es.json +6 -1
  51. package/node_modules/@hcengineering/core/lang/fr.json +6 -1
  52. package/node_modules/@hcengineering/core/lang/it.json +6 -1
  53. package/node_modules/@hcengineering/core/lang/ja.json +6 -1
  54. package/node_modules/@hcengineering/core/lang/pt-br.json +70 -0
  55. package/node_modules/@hcengineering/core/lang/pt.json +6 -1
  56. package/node_modules/@hcengineering/core/lang/ru.json +6 -1
  57. package/node_modules/@hcengineering/core/lang/tr.json +6 -1
  58. package/node_modules/@hcengineering/core/lang/zh.json +6 -1
  59. package/node_modules/@hcengineering/core/lib/__tests__/autoJoinRoles.test.js +13 -0
  60. package/node_modules/@hcengineering/core/lib/__tests__/autoJoinRoles.test.js.map +7 -0
  61. package/node_modules/@hcengineering/core/lib/__tests__/memdb.test.js +133 -0
  62. package/node_modules/@hcengineering/core/lib/__tests__/memdb.test.js.map +2 -2
  63. package/node_modules/@hcengineering/core/lib/__tests__/minmodel.js +25 -0
  64. package/node_modules/@hcengineering/core/lib/__tests__/minmodel.js.map +2 -2
  65. package/node_modules/@hcengineering/core/lib/__tests__/query.test.js +43 -0
  66. package/node_modules/@hcengineering/core/lib/__tests__/query.test.js.map +7 -0
  67. package/node_modules/@hcengineering/core/lib/autoJoinRoles.js +36 -0
  68. package/node_modules/@hcengineering/core/lib/autoJoinRoles.js.map +7 -0
  69. package/node_modules/@hcengineering/core/lib/classes.js +5 -0
  70. package/node_modules/@hcengineering/core/lib/classes.js.map +3 -3
  71. package/node_modules/@hcengineering/core/lib/clone.js +13 -2
  72. package/node_modules/@hcengineering/core/lib/clone.js.map +2 -2
  73. package/node_modules/@hcengineering/core/lib/component.js +14 -3
  74. package/node_modules/@hcengineering/core/lib/component.js.map +2 -2
  75. package/node_modules/@hcengineering/core/lib/index.js +2 -0
  76. package/node_modules/@hcengineering/core/lib/index.js.map +2 -2
  77. package/node_modules/@hcengineering/core/lib/memdb.js +6 -2
  78. package/node_modules/@hcengineering/core/lib/memdb.js.map +2 -2
  79. package/node_modules/@hcengineering/core/lib/operations.js +11 -0
  80. package/node_modules/@hcengineering/core/lib/operations.js.map +2 -2
  81. package/node_modules/@hcengineering/core/lib/predicate.js +3 -0
  82. package/node_modules/@hcengineering/core/lib/predicate.js.map +2 -2
  83. package/node_modules/@hcengineering/core/lib/storage.js.map +2 -2
  84. package/node_modules/@hcengineering/core/lib/tx.js +3 -1
  85. package/node_modules/@hcengineering/core/lib/tx.js.map +2 -2
  86. package/node_modules/@hcengineering/core/lib/utils.js +1 -1
  87. package/node_modules/@hcengineering/core/lib/utils.js.map +2 -2
  88. package/node_modules/@hcengineering/core/lib/versioning.js +17 -0
  89. package/node_modules/@hcengineering/core/lib/versioning.js.map +7 -0
  90. package/node_modules/@hcengineering/core/package.json +22 -19
  91. package/node_modules/@hcengineering/core/src/__tests__/autoJoinRoles.test.ts +27 -0
  92. package/node_modules/@hcengineering/core/src/__tests__/memdb.test.ts +150 -1
  93. package/node_modules/@hcengineering/core/src/__tests__/minmodel.ts +29 -1
  94. package/node_modules/@hcengineering/core/src/__tests__/query.test.ts +66 -0
  95. package/node_modules/@hcengineering/core/src/autoJoinRoles.ts +33 -0
  96. package/node_modules/@hcengineering/core/src/classes.ts +61 -1
  97. package/node_modules/@hcengineering/core/src/clone.ts +13 -2
  98. package/node_modules/@hcengineering/core/src/component.ts +25 -9
  99. package/node_modules/@hcengineering/core/src/index.ts +2 -0
  100. package/node_modules/@hcengineering/core/src/memdb.ts +7 -3
  101. package/node_modules/@hcengineering/core/src/operations.ts +11 -0
  102. package/node_modules/@hcengineering/core/src/predicate.ts +3 -0
  103. package/node_modules/@hcengineering/core/src/storage.ts +6 -3
  104. package/node_modules/@hcengineering/core/src/tx.ts +4 -1
  105. package/node_modules/@hcengineering/core/src/utils.ts +1 -1
  106. package/node_modules/@hcengineering/core/src/versioning.ts +13 -0
  107. package/node_modules/@hcengineering/measurements/lib/__tests__/performance.test.js +3 -3
  108. package/node_modules/@hcengineering/measurements/lib/__tests__/performance.test.js.map +2 -2
  109. package/node_modules/@hcengineering/measurements/package.json +17 -14
  110. package/node_modules/@hcengineering/measurements/src/__tests__/performance.test.ts +3 -3
  111. package/node_modules/@hcengineering/platform/lang/pt-br.json +31 -0
  112. package/node_modules/@hcengineering/platform/lib/__tests__/i18n.test.js +100 -0
  113. package/node_modules/@hcengineering/platform/lib/__tests__/i18n.test.js.map +2 -2
  114. package/node_modules/@hcengineering/platform/lib/__tests__/status.test.js +78 -0
  115. package/node_modules/@hcengineering/platform/lib/__tests__/status.test.js.map +7 -0
  116. package/node_modules/@hcengineering/platform/lib/i18n.js +78 -69
  117. package/node_modules/@hcengineering/platform/lib/i18n.js.map +3 -3
  118. package/node_modules/@hcengineering/platform/lib/status.js +25 -0
  119. package/node_modules/@hcengineering/platform/lib/status.js.map +2 -2
  120. package/node_modules/@hcengineering/platform/package.json +18 -15
  121. package/node_modules/@hcengineering/platform/src/__tests__/i18n.test.ts +114 -2
  122. package/node_modules/@hcengineering/platform/src/__tests__/status.test.ts +77 -0
  123. package/node_modules/@hcengineering/platform/src/i18n.ts +99 -71
  124. package/node_modules/@hcengineering/platform/src/status.ts +30 -0
  125. package/node_modules/@hcengineering/rank/package.json +19 -16
  126. package/node_modules/@hcengineering/rpc/package.json +21 -18
  127. package/node_modules/@hcengineering/tags/package.json +12 -9
  128. package/node_modules/@hcengineering/task/package.json +14 -11
  129. package/node_modules/@hcengineering/text/lib/markup/__tests__/utils.test.js +25 -0
  130. package/node_modules/@hcengineering/text/lib/markup/__tests__/utils.test.js.map +2 -2
  131. package/node_modules/@hcengineering/text/lib/tiptapExtensions.js +6 -0
  132. package/node_modules/@hcengineering/text/lib/tiptapExtensions.js.map +2 -2
  133. package/node_modules/@hcengineering/text/package.json +23 -18
  134. package/node_modules/@hcengineering/text/src/markup/__tests__/utils.test.ts +27 -0
  135. package/node_modules/@hcengineering/text/src/tiptapExtensions.ts +3 -0
  136. package/node_modules/@hcengineering/text-core/lib/markup/model.js +1 -0
  137. package/node_modules/@hcengineering/text-core/lib/markup/model.js.map +2 -2
  138. package/node_modules/@hcengineering/text-core/package.json +20 -17
  139. package/node_modules/@hcengineering/text-core/src/markup/model.ts +2 -1
  140. package/node_modules/@hcengineering/text-html/package.json +19 -16
  141. package/node_modules/@hcengineering/text-markdown/lib/serializer.js +14 -0
  142. package/node_modules/@hcengineering/text-markdown/lib/serializer.js.map +2 -2
  143. package/node_modules/@hcengineering/text-markdown/package.json +20 -17
  144. package/node_modules/@hcengineering/text-markdown/src/serializer.ts +14 -0
  145. package/node_modules/@hcengineering/tracker/lib/index.js +1 -0
  146. package/node_modules/@hcengineering/tracker/lib/index.js.map +2 -2
  147. package/node_modules/@hcengineering/tracker/package.json +16 -13
  148. package/node_modules/@tiptap/core/dist/commands/focus.d.ts.map +1 -1
  149. package/node_modules/@tiptap/core/dist/index.cjs +19 -2
  150. package/node_modules/@tiptap/core/dist/index.cjs.map +1 -1
  151. package/node_modules/@tiptap/core/dist/index.js +19 -3
  152. package/node_modules/@tiptap/core/dist/index.js.map +1 -1
  153. package/node_modules/@tiptap/core/dist/index.umd.js +19 -2
  154. package/node_modules/@tiptap/core/dist/index.umd.js.map +1 -1
  155. package/node_modules/@tiptap/core/dist/utilities/index.d.ts +1 -0
  156. package/node_modules/@tiptap/core/dist/utilities/index.d.ts.map +1 -1
  157. package/node_modules/@tiptap/core/dist/utilities/isSafari.d.ts +10 -0
  158. package/node_modules/@tiptap/core/dist/utilities/isSafari.d.ts.map +1 -0
  159. package/node_modules/@tiptap/core/package.json +2 -2
  160. package/node_modules/@tiptap/core/src/commands/focus.ts +7 -2
  161. package/node_modules/@tiptap/core/src/utilities/index.ts +1 -0
  162. package/node_modules/@tiptap/core/src/utilities/isSafari.ts +11 -0
  163. package/node_modules/@tiptap/extension-blockquote/package.json +2 -2
  164. package/node_modules/@tiptap/extension-bold/package.json +2 -2
  165. package/node_modules/@tiptap/extension-bullet-list/package.json +2 -2
  166. package/node_modules/@tiptap/extension-code/package.json +2 -2
  167. package/node_modules/@tiptap/extension-code-block/package.json +3 -3
  168. package/node_modules/@tiptap/extension-document/package.json +2 -2
  169. package/node_modules/@tiptap/extension-dropcursor/package.json +3 -3
  170. package/node_modules/@tiptap/extension-gapcursor/package.json +3 -3
  171. package/node_modules/@tiptap/extension-hard-break/package.json +2 -2
  172. package/node_modules/@tiptap/extension-heading/package.json +2 -2
  173. package/node_modules/@tiptap/extension-highlight/package.json +2 -2
  174. package/node_modules/@tiptap/extension-history/package.json +3 -3
  175. package/node_modules/@tiptap/extension-horizontal-rule/package.json +3 -3
  176. package/node_modules/@tiptap/extension-italic/package.json +2 -2
  177. package/node_modules/@tiptap/extension-link/package.json +3 -3
  178. package/node_modules/@tiptap/extension-list-item/package.json +2 -2
  179. package/node_modules/@tiptap/extension-mention/package.json +4 -4
  180. package/node_modules/@tiptap/extension-ordered-list/package.json +2 -2
  181. package/node_modules/@tiptap/extension-paragraph/package.json +2 -2
  182. package/node_modules/@tiptap/extension-strike/package.json +2 -2
  183. package/node_modules/@tiptap/extension-subscript/README.md +14 -0
  184. package/node_modules/@tiptap/extension-subscript/dist/index.cjs +61 -0
  185. package/node_modules/@tiptap/extension-subscript/dist/index.cjs.map +1 -0
  186. package/node_modules/@tiptap/extension-subscript/dist/index.d.ts +4 -0
  187. package/node_modules/@tiptap/extension-subscript/dist/index.d.ts.map +1 -0
  188. package/node_modules/@tiptap/extension-subscript/dist/index.js +56 -0
  189. package/node_modules/@tiptap/extension-subscript/dist/index.js.map +1 -0
  190. package/node_modules/@tiptap/extension-subscript/dist/index.umd.js +65 -0
  191. package/node_modules/@tiptap/extension-subscript/dist/index.umd.js.map +1 -0
  192. package/node_modules/@tiptap/extension-subscript/dist/subscript.d.ts +36 -0
  193. package/node_modules/@tiptap/extension-subscript/dist/subscript.d.ts.map +1 -0
  194. package/node_modules/@tiptap/extension-subscript/package.json +49 -0
  195. package/node_modules/@tiptap/extension-subscript/src/index.ts +5 -0
  196. package/node_modules/@tiptap/extension-subscript/src/subscript.ts +91 -0
  197. package/node_modules/@tiptap/extension-superscript/README.md +14 -0
  198. package/node_modules/@tiptap/extension-superscript/dist/index.cjs +61 -0
  199. package/node_modules/@tiptap/extension-superscript/dist/index.cjs.map +1 -0
  200. package/node_modules/@tiptap/extension-superscript/dist/index.d.ts +4 -0
  201. package/node_modules/@tiptap/extension-superscript/dist/index.d.ts.map +1 -0
  202. package/node_modules/@tiptap/extension-superscript/dist/index.js +56 -0
  203. package/node_modules/@tiptap/extension-superscript/dist/index.js.map +1 -0
  204. package/node_modules/@tiptap/extension-superscript/dist/index.umd.js +65 -0
  205. package/node_modules/@tiptap/extension-superscript/dist/index.umd.js.map +1 -0
  206. package/node_modules/@tiptap/extension-superscript/dist/superscript.d.ts +36 -0
  207. package/node_modules/@tiptap/extension-superscript/dist/superscript.d.ts.map +1 -0
  208. package/node_modules/@tiptap/extension-superscript/package.json +49 -0
  209. package/node_modules/@tiptap/extension-superscript/src/index.ts +5 -0
  210. package/node_modules/@tiptap/extension-superscript/src/superscript.ts +91 -0
  211. package/node_modules/@tiptap/extension-table/package.json +3 -3
  212. package/node_modules/@tiptap/extension-table-cell/package.json +2 -2
  213. package/node_modules/@tiptap/extension-table-header/package.json +2 -2
  214. package/node_modules/@tiptap/extension-table-row/package.json +2 -2
  215. package/node_modules/@tiptap/extension-task-item/package.json +3 -3
  216. package/node_modules/@tiptap/extension-task-list/package.json +2 -2
  217. package/node_modules/@tiptap/extension-text/package.json +2 -2
  218. package/node_modules/@tiptap/extension-typography/package.json +2 -2
  219. package/node_modules/@tiptap/extension-underline/package.json +2 -2
  220. package/node_modules/@tiptap/html/package.json +3 -3
  221. package/node_modules/@tiptap/pm/package.json +1 -1
  222. package/node_modules/@tiptap/starter-kit/node_modules/@tiptap/extension-text-style/package.json +2 -2
  223. package/node_modules/@tiptap/starter-kit/package.json +22 -22
  224. package/node_modules/@tiptap/suggestion/package.json +3 -3
  225. package/node_modules/linkify-it/build/index.cjs.js +99 -94
  226. package/node_modules/linkify-it/index.mjs +99 -94
  227. package/node_modules/linkify-it/package.json +11 -1
  228. package/node_modules/linkifyjs/README.md +4 -2
  229. package/node_modules/linkifyjs/dist/linkify.cjs +8 -11
  230. package/node_modules/linkifyjs/dist/linkify.d.cts +14 -14
  231. package/node_modules/linkifyjs/dist/linkify.d.mts +14 -14
  232. package/node_modules/linkifyjs/dist/linkify.js +8 -11
  233. package/node_modules/linkifyjs/dist/linkify.min.js +1 -1
  234. package/node_modules/linkifyjs/dist/linkify.mjs +8 -11
  235. package/node_modules/linkifyjs/package.json +1 -1
  236. package/node_modules/markdown-it/README.md +13 -17
  237. package/node_modules/markdown-it/dist/index.cjs.js +111 -31
  238. package/node_modules/markdown-it/dist/markdown-it.js +117 -31
  239. package/node_modules/markdown-it/dist/markdown-it.min.js +2 -2
  240. package/node_modules/markdown-it/lib/common/utils.mjs +30 -1
  241. package/node_modules/markdown-it/lib/index.mjs +1 -1
  242. package/node_modules/markdown-it/lib/rules_block/heading.mjs +2 -2
  243. package/node_modules/markdown-it/lib/rules_block/html_block.mjs +12 -1
  244. package/node_modules/markdown-it/lib/rules_block/lheading.mjs +4 -1
  245. package/node_modules/markdown-it/lib/rules_block/paragraph.mjs +3 -1
  246. package/node_modules/markdown-it/lib/rules_core/smartquotes.mjs +37 -21
  247. package/node_modules/markdown-it/lib/rules_inline/entity.mjs +2 -2
  248. package/node_modules/markdown-it/lib/rules_inline/state_inline.mjs +37 -6
  249. package/node_modules/markdown-it/package.json +14 -3
  250. package/node_modules/msgpackr/README.md +1 -3
  251. package/node_modules/msgpackr/benchmark.md +26 -16
  252. package/node_modules/msgpackr/dist/index-no-eval.cjs +35 -16
  253. package/node_modules/msgpackr/dist/index-no-eval.cjs.map +1 -1
  254. package/node_modules/msgpackr/dist/index-no-eval.min.js +1 -1
  255. package/node_modules/msgpackr/dist/index-no-eval.min.js.map +1 -1
  256. package/node_modules/msgpackr/dist/index.js +35 -16
  257. package/node_modules/msgpackr/dist/index.js.map +1 -1
  258. package/node_modules/msgpackr/dist/index.min.js +1 -1
  259. package/node_modules/msgpackr/dist/index.min.js.map +1 -1
  260. package/node_modules/msgpackr/dist/node.cjs +50 -26
  261. package/node_modules/msgpackr/dist/node.cjs.map +1 -1
  262. package/node_modules/msgpackr/dist/test.js +44 -16
  263. package/node_modules/msgpackr/dist/test.js.map +1 -1
  264. package/node_modules/msgpackr/dist/unpack-no-eval.cjs +35 -16
  265. package/node_modules/msgpackr/dist/unpack-no-eval.cjs.map +1 -1
  266. package/node_modules/msgpackr/index.d.cts +2 -0
  267. package/node_modules/msgpackr/index.d.ts +2 -0
  268. package/node_modules/msgpackr/package.json +1 -1
  269. package/node_modules/msgpackr/stream.js +15 -10
  270. package/node_modules/msgpackr/unpack.js +35 -16
  271. package/node_modules/prosemirror-changeset/CHANGELOG.md +12 -0
  272. package/node_modules/prosemirror-changeset/README.md +31 -2
  273. package/node_modules/prosemirror-changeset/dist/index.cjs +17 -2
  274. package/node_modules/prosemirror-changeset/dist/index.d.cts +32 -2
  275. package/node_modules/prosemirror-changeset/dist/index.d.ts +32 -2
  276. package/node_modules/prosemirror-changeset/dist/index.js +18 -3
  277. package/node_modules/prosemirror-changeset/package.json +2 -2
  278. package/node_modules/prosemirror-changeset/src/README.md +4 -2
  279. package/node_modules/prosemirror-changeset/src/change.ts +18 -0
  280. package/node_modules/prosemirror-changeset/src/changeset.ts +10 -4
  281. package/node_modules/prosemirror-changeset/src/simplify.ts +1 -1
  282. package/node_modules/prosemirror-changeset/test/test-simplify.ts +3 -0
  283. package/node_modules/prosemirror-gapcursor/CHANGELOG.md +6 -0
  284. package/node_modules/prosemirror-gapcursor/dist/index.cjs +1 -1
  285. package/node_modules/prosemirror-gapcursor/dist/index.js +1 -1
  286. package/node_modules/prosemirror-gapcursor/package.json +3 -2
  287. package/node_modules/prosemirror-gapcursor/src/gapcursor.ts +1 -1
  288. package/node_modules/prosemirror-markdown/CHANGELOG.md +12 -0
  289. package/node_modules/prosemirror-markdown/dist/index.cjs +11 -1
  290. package/node_modules/prosemirror-markdown/dist/index.js +14 -2
  291. package/node_modules/prosemirror-markdown/package.json +1 -1
  292. package/node_modules/prosemirror-markdown/src/to_markdown.ts +12 -3
  293. package/node_modules/prosemirror-menu/CHANGELOG.md +18 -0
  294. package/node_modules/prosemirror-menu/CONTRIBUTING.md +22 -18
  295. package/node_modules/prosemirror-menu/README.md +69 -29
  296. package/node_modules/prosemirror-menu/dist/index.cjs +232 -48
  297. package/node_modules/prosemirror-menu/dist/index.d.cts +29 -14
  298. package/node_modules/prosemirror-menu/dist/index.d.ts +29 -14
  299. package/node_modules/prosemirror-menu/dist/index.js +229 -36
  300. package/node_modules/prosemirror-menu/package.json +2 -2
  301. package/node_modules/prosemirror-menu/src/README.md +30 -1
  302. package/node_modules/prosemirror-menu/src/icons.ts +3 -2
  303. package/node_modules/prosemirror-menu/src/menu.ts +193 -40
  304. package/node_modules/prosemirror-menu/src/menubar.ts +50 -5
  305. package/node_modules/prosemirror-menu/style/menu.css +28 -7
  306. package/node_modules/prosemirror-model/CHANGELOG.md +20 -0
  307. package/node_modules/prosemirror-model/CONTRIBUTING.md +19 -19
  308. package/node_modules/prosemirror-model/README.md +3 -3
  309. package/node_modules/prosemirror-model/dist/index.cjs +13 -10
  310. package/node_modules/prosemirror-model/dist/index.d.cts +25 -21
  311. package/node_modules/prosemirror-model/dist/index.d.ts +25 -21
  312. package/node_modules/prosemirror-model/dist/index.js +19 -23
  313. package/node_modules/prosemirror-model/package.json +2 -2
  314. package/node_modules/prosemirror-model/src/fragment.ts +1 -1
  315. package/node_modules/prosemirror-model/src/from_dom.ts +4 -1
  316. package/node_modules/prosemirror-model/src/node.ts +5 -4
  317. package/node_modules/prosemirror-model/src/replace.ts +6 -15
  318. package/node_modules/prosemirror-model/src/schema.ts +1 -1
  319. package/node_modules/prosemirror-model/src/to_dom.ts +24 -20
  320. package/node_modules/prosemirror-transform/CHANGELOG.md +16 -0
  321. package/node_modules/prosemirror-transform/dist/index.cjs +38 -4
  322. package/node_modules/prosemirror-transform/dist/index.d.cts +19 -0
  323. package/node_modules/prosemirror-transform/dist/index.d.ts +19 -0
  324. package/node_modules/prosemirror-transform/dist/index.js +52 -1
  325. package/node_modules/prosemirror-transform/package.json +1 -1
  326. package/node_modules/prosemirror-transform/src/replace.ts +16 -0
  327. package/node_modules/prosemirror-transform/src/replace_step.ts +10 -1
  328. package/node_modules/prosemirror-transform/src/transform.ts +21 -2
  329. package/node_modules/prosemirror-view/CHANGELOG.md +34 -2
  330. package/node_modules/prosemirror-view/CONTRIBUTING.md +19 -19
  331. package/node_modules/prosemirror-view/README.md +3 -3
  332. package/node_modules/prosemirror-view/dist/index.cjs +96 -40
  333. package/node_modules/prosemirror-view/dist/index.d.cts +2 -2
  334. package/node_modules/prosemirror-view/dist/index.d.ts +2 -2
  335. package/node_modules/prosemirror-view/dist/index.js +90 -39
  336. package/node_modules/prosemirror-view/package.json +2 -2
  337. package/node_modules/prosemirror-view/src/domchange.ts +1 -1
  338. package/node_modules/prosemirror-view/src/domobserver.ts +59 -16
  339. package/node_modules/prosemirror-view/src/index.ts +4 -4
  340. package/node_modules/prosemirror-view/src/input.ts +9 -6
  341. package/node_modules/prosemirror-view/src/viewdesc.ts +26 -22
  342. package/node_modules/prosemirror-view/style/prosemirror.css +1 -1
  343. package/package.json +5 -4
  344. package/src/client.mjs +2 -2
  345. package/src/config.mjs +1 -0
  346. package/src/helpers.mjs +2 -2
  347. package/src/index.mjs +31 -1
  348. package/src/initCodex.mjs +281 -0
  349. package/src/mcp.mjs +11 -1
  350. package/src/mcpShared.mjs +95 -5
  351. package/node_modules/@hcengineering/account-client/types/client.d.ts +0 -140
  352. package/node_modules/@hcengineering/account-client/types/client.d.ts.map +0 -1
  353. package/node_modules/@hcengineering/account-client/types/index.d.ts +0 -4
  354. package/node_modules/@hcengineering/account-client/types/index.d.ts.map +0 -1
  355. package/node_modules/@hcengineering/account-client/types/types.d.ts +0 -177
  356. package/node_modules/@hcengineering/account-client/types/types.d.ts.map +0 -1
  357. package/node_modules/@hcengineering/account-client/types/utils.d.ts +0 -5
  358. package/node_modules/@hcengineering/account-client/types/utils.d.ts.map +0 -1
  359. package/node_modules/@hcengineering/analytics/types/index.d.ts +0 -25
  360. package/node_modules/@hcengineering/analytics/types/index.d.ts.map +0 -1
  361. package/node_modules/@hcengineering/api-client/types/__tests__/config.test.d.ts +0 -2
  362. package/node_modules/@hcengineering/api-client/types/__tests__/config.test.d.ts.map +0 -1
  363. package/node_modules/@hcengineering/api-client/types/__tests__/markup-client.test.d.ts +0 -2
  364. package/node_modules/@hcengineering/api-client/types/__tests__/markup-client.test.d.ts.map +0 -1
  365. package/node_modules/@hcengineering/api-client/types/__tests__/markup-types.test.d.ts +0 -2
  366. package/node_modules/@hcengineering/api-client/types/__tests__/markup-types.test.d.ts.map +0 -1
  367. package/node_modules/@hcengineering/api-client/types/__tests__/rest-utils.test.d.ts +0 -2
  368. package/node_modules/@hcengineering/api-client/types/__tests__/rest-utils.test.d.ts.map +0 -1
  369. package/node_modules/@hcengineering/api-client/types/__tests__/utils.test.d.ts +0 -2
  370. package/node_modules/@hcengineering/api-client/types/__tests__/utils.test.d.ts.map +0 -1
  371. package/node_modules/@hcengineering/api-client/types/client.d.ts +0 -6
  372. package/node_modules/@hcengineering/api-client/types/client.d.ts.map +0 -1
  373. package/node_modules/@hcengineering/api-client/types/config.d.ts +0 -8
  374. package/node_modules/@hcengineering/api-client/types/config.d.ts.map +0 -1
  375. package/node_modules/@hcengineering/api-client/types/index.d.ts +0 -9
  376. package/node_modules/@hcengineering/api-client/types/index.d.ts.map +0 -1
  377. package/node_modules/@hcengineering/api-client/types/markup/client.d.ts +0 -5
  378. package/node_modules/@hcengineering/api-client/types/markup/client.d.ts.map +0 -1
  379. package/node_modules/@hcengineering/api-client/types/markup/index.d.ts +0 -3
  380. package/node_modules/@hcengineering/api-client/types/markup/index.d.ts.map +0 -1
  381. package/node_modules/@hcengineering/api-client/types/markup/types.d.ts +0 -41
  382. package/node_modules/@hcengineering/api-client/types/markup/types.d.ts.map +0 -1
  383. package/node_modules/@hcengineering/api-client/types/rest/index.d.ts +0 -4
  384. package/node_modules/@hcengineering/api-client/types/rest/index.d.ts.map +0 -1
  385. package/node_modules/@hcengineering/api-client/types/rest/rest.d.ts +0 -39
  386. package/node_modules/@hcengineering/api-client/types/rest/rest.d.ts.map +0 -1
  387. package/node_modules/@hcengineering/api-client/types/rest/tx.d.ts +0 -3
  388. package/node_modules/@hcengineering/api-client/types/rest/tx.d.ts.map +0 -1
  389. package/node_modules/@hcengineering/api-client/types/rest/types.d.ts +0 -16
  390. package/node_modules/@hcengineering/api-client/types/rest/types.d.ts.map +0 -1
  391. package/node_modules/@hcengineering/api-client/types/rest/utils.d.ts +0 -3
  392. package/node_modules/@hcengineering/api-client/types/rest/utils.d.ts.map +0 -1
  393. package/node_modules/@hcengineering/api-client/types/socket/browser.d.ts +0 -4
  394. package/node_modules/@hcengineering/api-client/types/socket/browser.d.ts.map +0 -1
  395. package/node_modules/@hcengineering/api-client/types/socket/index.d.ts +0 -3
  396. package/node_modules/@hcengineering/api-client/types/socket/index.d.ts.map +0 -1
  397. package/node_modules/@hcengineering/api-client/types/socket/node.d.ts +0 -4
  398. package/node_modules/@hcengineering/api-client/types/socket/node.d.ts.map +0 -1
  399. package/node_modules/@hcengineering/api-client/types/storage/client.d.ts +0 -21
  400. package/node_modules/@hcengineering/api-client/types/storage/client.d.ts.map +0 -1
  401. package/node_modules/@hcengineering/api-client/types/storage/error.d.ts +0 -10
  402. package/node_modules/@hcengineering/api-client/types/storage/error.d.ts.map +0 -1
  403. package/node_modules/@hcengineering/api-client/types/storage/index.d.ts +0 -4
  404. package/node_modules/@hcengineering/api-client/types/storage/index.d.ts.map +0 -1
  405. package/node_modules/@hcengineering/api-client/types/storage/types.d.ts +0 -10
  406. package/node_modules/@hcengineering/api-client/types/storage/types.d.ts.map +0 -1
  407. package/node_modules/@hcengineering/api-client/types/types.d.ts +0 -101
  408. package/node_modules/@hcengineering/api-client/types/types.d.ts.map +0 -1
  409. package/node_modules/@hcengineering/api-client/types/utils.d.ts +0 -12
  410. package/node_modules/@hcengineering/api-client/types/utils.d.ts.map +0 -1
  411. package/node_modules/@hcengineering/chunter/types/analytics.d.ts +0 -5
  412. package/node_modules/@hcengineering/chunter/types/analytics.d.ts.map +0 -1
  413. package/node_modules/@hcengineering/chunter/types/index.d.ts +0 -211
  414. package/node_modules/@hcengineering/chunter/types/index.d.ts.map +0 -1
  415. package/node_modules/@hcengineering/chunter/types/utils.d.ts +0 -7
  416. package/node_modules/@hcengineering/chunter/types/utils.d.ts.map +0 -1
  417. package/node_modules/@hcengineering/client/types/__tests__/client.test.d.ts +0 -2
  418. package/node_modules/@hcengineering/client/types/__tests__/client.test.d.ts.map +0 -1
  419. package/node_modules/@hcengineering/client/types/index.d.ts +0 -69
  420. package/node_modules/@hcengineering/client/types/index.d.ts.map +0 -1
  421. package/node_modules/@hcengineering/client-resources/types/__tests__/connection.test.d.ts +0 -2
  422. package/node_modules/@hcengineering/client-resources/types/__tests__/connection.test.d.ts.map +0 -1
  423. package/node_modules/@hcengineering/client-resources/types/__tests__/integration.test.d.ts +0 -45
  424. package/node_modules/@hcengineering/client-resources/types/__tests__/integration.test.d.ts.map +0 -1
  425. package/node_modules/@hcengineering/client-resources/types/connection.d.ts +0 -7
  426. package/node_modules/@hcengineering/client-resources/types/connection.d.ts.map +0 -1
  427. package/node_modules/@hcengineering/client-resources/types/index.d.ts +0 -11
  428. package/node_modules/@hcengineering/client-resources/types/index.d.ts.map +0 -1
  429. package/node_modules/@hcengineering/collaborator-client/types/__tests__/utils.test.d.ts +0 -2
  430. package/node_modules/@hcengineering/collaborator-client/types/__tests__/utils.test.d.ts.map +0 -1
  431. package/node_modules/@hcengineering/collaborator-client/types/client.d.ts +0 -34
  432. package/node_modules/@hcengineering/collaborator-client/types/client.d.ts.map +0 -1
  433. package/node_modules/@hcengineering/collaborator-client/types/index.d.ts +0 -3
  434. package/node_modules/@hcengineering/collaborator-client/types/index.d.ts.map +0 -1
  435. package/node_modules/@hcengineering/collaborator-client/types/utils.d.ts +0 -9
  436. package/node_modules/@hcengineering/collaborator-client/types/utils.d.ts.map +0 -1
  437. package/node_modules/@hcengineering/contact/types/__tests__/cache.test.d.ts +0 -2
  438. package/node_modules/@hcengineering/contact/types/__tests__/cache.test.d.ts.map +0 -1
  439. package/node_modules/@hcengineering/contact/types/analytics.d.ts +0 -6
  440. package/node_modules/@hcengineering/contact/types/analytics.d.ts.map +0 -1
  441. package/node_modules/@hcengineering/contact/types/avatar.d.ts +0 -12
  442. package/node_modules/@hcengineering/contact/types/avatar.d.ts.map +0 -1
  443. package/node_modules/@hcengineering/contact/types/cache.d.ts +0 -49
  444. package/node_modules/@hcengineering/contact/types/cache.d.ts.map +0 -1
  445. package/node_modules/@hcengineering/contact/types/index.d.ts +0 -367
  446. package/node_modules/@hcengineering/contact/types/index.d.ts.map +0 -1
  447. package/node_modules/@hcengineering/contact/types/types.d.ts +0 -25
  448. package/node_modules/@hcengineering/contact/types/types.d.ts.map +0 -1
  449. package/node_modules/@hcengineering/contact/types/utils.d.ts +0 -110
  450. package/node_modules/@hcengineering/contact/types/utils.d.ts.map +0 -1
  451. package/node_modules/@hcengineering/core/types/__tests__/client.test.d.ts +0 -2
  452. package/node_modules/@hcengineering/core/types/__tests__/client.test.d.ts.map +0 -1
  453. package/node_modules/@hcengineering/core/types/__tests__/clone.test.d.ts +0 -2
  454. package/node_modules/@hcengineering/core/types/__tests__/clone.test.d.ts.map +0 -1
  455. package/node_modules/@hcengineering/core/types/__tests__/collaboration.test.d.ts +0 -2
  456. package/node_modules/@hcengineering/core/types/__tests__/collaboration.test.d.ts.map +0 -1
  457. package/node_modules/@hcengineering/core/types/__tests__/collaborators.test.d.ts +0 -2
  458. package/node_modules/@hcengineering/core/types/__tests__/collaborators.test.d.ts.map +0 -1
  459. package/node_modules/@hcengineering/core/types/__tests__/common.test.d.ts +0 -2
  460. package/node_modules/@hcengineering/core/types/__tests__/common.test.d.ts.map +0 -1
  461. package/node_modules/@hcengineering/core/types/__tests__/connection.d.ts +0 -4
  462. package/node_modules/@hcengineering/core/types/__tests__/connection.d.ts.map +0 -1
  463. package/node_modules/@hcengineering/core/types/__tests__/contexts.test.d.ts +0 -2
  464. package/node_modules/@hcengineering/core/types/__tests__/contexts.test.d.ts.map +0 -1
  465. package/node_modules/@hcengineering/core/types/__tests__/hierarchy.test.d.ts +0 -2
  466. package/node_modules/@hcengineering/core/types/__tests__/hierarchy.test.d.ts.map +0 -1
  467. package/node_modules/@hcengineering/core/types/__tests__/lang.test.d.ts +0 -2
  468. package/node_modules/@hcengineering/core/types/__tests__/lang.test.d.ts.map +0 -1
  469. package/node_modules/@hcengineering/core/types/__tests__/limiter-edge-cases.test.d.ts +0 -2
  470. package/node_modules/@hcengineering/core/types/__tests__/limiter-edge-cases.test.d.ts.map +0 -1
  471. package/node_modules/@hcengineering/core/types/__tests__/limits.test.d.ts +0 -2
  472. package/node_modules/@hcengineering/core/types/__tests__/limits.test.d.ts.map +0 -1
  473. package/node_modules/@hcengineering/core/types/__tests__/memdb.test.d.ts +0 -2
  474. package/node_modules/@hcengineering/core/types/__tests__/memdb.test.d.ts.map +0 -1
  475. package/node_modules/@hcengineering/core/types/__tests__/minmodel.d.ts +0 -50
  476. package/node_modules/@hcengineering/core/types/__tests__/minmodel.d.ts.map +0 -1
  477. package/node_modules/@hcengineering/core/types/__tests__/objvalue.test.d.ts +0 -2
  478. package/node_modules/@hcengineering/core/types/__tests__/objvalue.test.d.ts.map +0 -1
  479. package/node_modules/@hcengineering/core/types/__tests__/operator-bugs.test.d.ts +0 -2
  480. package/node_modules/@hcengineering/core/types/__tests__/operator-bugs.test.d.ts.map +0 -1
  481. package/node_modules/@hcengineering/core/types/__tests__/operator.test.d.ts +0 -2
  482. package/node_modules/@hcengineering/core/types/__tests__/operator.test.d.ts.map +0 -1
  483. package/node_modules/@hcengineering/core/types/__tests__/rate-limiter.test.d.ts +0 -2
  484. package/node_modules/@hcengineering/core/types/__tests__/rate-limiter.test.d.ts.map +0 -1
  485. package/node_modules/@hcengineering/core/types/__tests__/time.test.d.ts +0 -2
  486. package/node_modules/@hcengineering/core/types/__tests__/time.test.d.ts.map +0 -1
  487. package/node_modules/@hcengineering/core/types/__tests__/utils.test.d.ts +0 -2
  488. package/node_modules/@hcengineering/core/types/__tests__/utils.test.d.ts.map +0 -1
  489. package/node_modules/@hcengineering/core/types/backup.d.ts +0 -26
  490. package/node_modules/@hcengineering/core/types/backup.d.ts.map +0 -1
  491. package/node_modules/@hcengineering/core/types/benchmark.d.ts +0 -19
  492. package/node_modules/@hcengineering/core/types/benchmark.d.ts.map +0 -1
  493. package/node_modules/@hcengineering/core/types/classes.d.ts +0 -716
  494. package/node_modules/@hcengineering/core/types/classes.d.ts.map +0 -1
  495. package/node_modules/@hcengineering/core/types/client.d.ts +0 -69
  496. package/node_modules/@hcengineering/core/types/client.d.ts.map +0 -1
  497. package/node_modules/@hcengineering/core/types/clone.d.ts +0 -3
  498. package/node_modules/@hcengineering/core/types/clone.d.ts.map +0 -1
  499. package/node_modules/@hcengineering/core/types/collaboration.d.ts +0 -16
  500. package/node_modules/@hcengineering/core/types/collaboration.d.ts.map +0 -1
  501. package/node_modules/@hcengineering/core/types/collaborators.d.ts +0 -3
  502. package/node_modules/@hcengineering/core/types/collaborators.d.ts.map +0 -1
  503. package/node_modules/@hcengineering/core/types/common.d.ts +0 -4
  504. package/node_modules/@hcengineering/core/types/common.d.ts.map +0 -1
  505. package/node_modules/@hcengineering/core/types/component.d.ts +0 -229
  506. package/node_modules/@hcengineering/core/types/component.d.ts.map +0 -1
  507. package/node_modules/@hcengineering/core/types/hierarchy.d.ts +0 -84
  508. package/node_modules/@hcengineering/core/types/hierarchy.d.ts.map +0 -1
  509. package/node_modules/@hcengineering/core/types/index.d.ts +0 -25
  510. package/node_modules/@hcengineering/core/types/index.d.ts.map +0 -1
  511. package/node_modules/@hcengineering/core/types/memdb.d.ts +0 -60
  512. package/node_modules/@hcengineering/core/types/memdb.d.ts.map +0 -1
  513. package/node_modules/@hcengineering/core/types/objvalue.d.ts +0 -10
  514. package/node_modules/@hcengineering/core/types/objvalue.d.ts.map +0 -1
  515. package/node_modules/@hcengineering/core/types/operations.d.ts +0 -87
  516. package/node_modules/@hcengineering/core/types/operations.d.ts.map +0 -1
  517. package/node_modules/@hcengineering/core/types/operator.d.ts +0 -16
  518. package/node_modules/@hcengineering/core/types/operator.d.ts.map +0 -1
  519. package/node_modules/@hcengineering/core/types/predicate.d.ts +0 -6
  520. package/node_modules/@hcengineering/core/types/predicate.d.ts.map +0 -1
  521. package/node_modules/@hcengineering/core/types/proxy.d.ts +0 -21
  522. package/node_modules/@hcengineering/core/types/proxy.d.ts.map +0 -1
  523. package/node_modules/@hcengineering/core/types/query.d.ts +0 -21
  524. package/node_modules/@hcengineering/core/types/query.d.ts.map +0 -1
  525. package/node_modules/@hcengineering/core/types/server.d.ts +0 -82
  526. package/node_modules/@hcengineering/core/types/server.d.ts.map +0 -1
  527. package/node_modules/@hcengineering/core/types/status.d.ts +0 -30
  528. package/node_modules/@hcengineering/core/types/status.d.ts.map +0 -1
  529. package/node_modules/@hcengineering/core/types/storage.d.ts +0 -233
  530. package/node_modules/@hcengineering/core/types/storage.d.ts.map +0 -1
  531. package/node_modules/@hcengineering/core/types/time.d.ts +0 -8
  532. package/node_modules/@hcengineering/core/types/time.d.ts.map +0 -1
  533. package/node_modules/@hcengineering/core/types/tx.d.ts +0 -261
  534. package/node_modules/@hcengineering/core/types/tx.d.ts.map +0 -1
  535. package/node_modules/@hcengineering/core/types/utils.d.ts +0 -207
  536. package/node_modules/@hcengineering/core/types/utils.d.ts.map +0 -1
  537. package/node_modules/@hcengineering/measurements/types/__tests__/context.test.d.ts +0 -2
  538. package/node_modules/@hcengineering/measurements/types/__tests__/context.test.d.ts.map +0 -1
  539. package/node_modules/@hcengineering/measurements/types/__tests__/index.test.d.ts +0 -2
  540. package/node_modules/@hcengineering/measurements/types/__tests__/index.test.d.ts.map +0 -1
  541. package/node_modules/@hcengineering/measurements/types/__tests__/metrics.test.d.ts +0 -2
  542. package/node_modules/@hcengineering/measurements/types/__tests__/metrics.test.d.ts.map +0 -1
  543. package/node_modules/@hcengineering/measurements/types/__tests__/performance.test.d.ts +0 -2
  544. package/node_modules/@hcengineering/measurements/types/__tests__/performance.test.d.ts.map +0 -1
  545. package/node_modules/@hcengineering/measurements/types/context.d.ts +0 -64
  546. package/node_modules/@hcengineering/measurements/types/context.d.ts.map +0 -1
  547. package/node_modules/@hcengineering/measurements/types/index.d.ts +0 -12
  548. package/node_modules/@hcengineering/measurements/types/index.d.ts.map +0 -1
  549. package/node_modules/@hcengineering/measurements/types/metrics.d.ts +0 -34
  550. package/node_modules/@hcengineering/measurements/types/metrics.d.ts.map +0 -1
  551. package/node_modules/@hcengineering/measurements/types/types.d.ts +0 -88
  552. package/node_modules/@hcengineering/measurements/types/types.d.ts.map +0 -1
  553. package/node_modules/@hcengineering/platform/types/__tests__/i18n.test.d.ts +0 -2
  554. package/node_modules/@hcengineering/platform/types/__tests__/i18n.test.d.ts.map +0 -1
  555. package/node_modules/@hcengineering/platform/types/__tests__/ident.test.d.ts +0 -2
  556. package/node_modules/@hcengineering/platform/types/__tests__/ident.test.d.ts.map +0 -1
  557. package/node_modules/@hcengineering/platform/types/__tests__/plugin.d.ts +0 -7
  558. package/node_modules/@hcengineering/platform/types/__tests__/plugin.d.ts.map +0 -1
  559. package/node_modules/@hcengineering/platform/types/__tests__/resource.test.d.ts +0 -2
  560. package/node_modules/@hcengineering/platform/types/__tests__/resource.test.d.ts.map +0 -1
  561. package/node_modules/@hcengineering/platform/types/event.d.ts +0 -39
  562. package/node_modules/@hcengineering/platform/types/event.d.ts.map +0 -1
  563. package/node_modules/@hcengineering/platform/types/i18n.d.ts +0 -28
  564. package/node_modules/@hcengineering/platform/types/i18n.d.ts.map +0 -1
  565. package/node_modules/@hcengineering/platform/types/ident.d.ts +0 -14
  566. package/node_modules/@hcengineering/platform/types/ident.d.ts.map +0 -1
  567. package/node_modules/@hcengineering/platform/types/index.d.ts +0 -19
  568. package/node_modules/@hcengineering/platform/types/index.d.ts.map +0 -1
  569. package/node_modules/@hcengineering/platform/types/metadata.d.ts +0 -38
  570. package/node_modules/@hcengineering/platform/types/metadata.d.ts.map +0 -1
  571. package/node_modules/@hcengineering/platform/types/platform.d.ts +0 -218
  572. package/node_modules/@hcengineering/platform/types/platform.d.ts.map +0 -1
  573. package/node_modules/@hcengineering/platform/types/resource.d.ts +0 -49
  574. package/node_modules/@hcengineering/platform/types/resource.d.ts.map +0 -1
  575. package/node_modules/@hcengineering/platform/types/status.d.ts +0 -60
  576. package/node_modules/@hcengineering/platform/types/status.d.ts.map +0 -1
  577. package/node_modules/@hcengineering/platform/types/testUtils.d.ts +0 -8
  578. package/node_modules/@hcengineering/platform/types/testUtils.d.ts.map +0 -1
  579. package/node_modules/@hcengineering/rank/types/__tests__/utils.test.d.ts +0 -2
  580. package/node_modules/@hcengineering/rank/types/__tests__/utils.test.d.ts.map +0 -1
  581. package/node_modules/@hcengineering/rank/types/index.d.ts +0 -3
  582. package/node_modules/@hcengineering/rank/types/index.d.ts.map +0 -1
  583. package/node_modules/@hcengineering/rank/types/types.d.ts +0 -2
  584. package/node_modules/@hcengineering/rank/types/types.d.ts.map +0 -1
  585. package/node_modules/@hcengineering/rank/types/utils.d.ts +0 -6
  586. package/node_modules/@hcengineering/rank/types/utils.d.ts.map +0 -1
  587. package/node_modules/@hcengineering/rpc/types/index.d.ts +0 -3
  588. package/node_modules/@hcengineering/rpc/types/index.d.ts.map +0 -1
  589. package/node_modules/@hcengineering/rpc/types/rpc.d.ts +0 -96
  590. package/node_modules/@hcengineering/rpc/types/rpc.d.ts.map +0 -1
  591. package/node_modules/@hcengineering/rpc/types/sliding.d.ts +0 -11
  592. package/node_modules/@hcengineering/rpc/types/sliding.d.ts.map +0 -1
  593. package/node_modules/@hcengineering/rpc/types/test/rateLimit.spec.d.ts +0 -2
  594. package/node_modules/@hcengineering/rpc/types/test/rateLimit.spec.d.ts.map +0 -1
  595. package/node_modules/@hcengineering/tags/types/analytics.d.ts +0 -5
  596. package/node_modules/@hcengineering/tags/types/analytics.d.ts.map +0 -1
  597. package/node_modules/@hcengineering/tags/types/index.d.ts +0 -105
  598. package/node_modules/@hcengineering/tags/types/index.d.ts.map +0 -1
  599. package/node_modules/@hcengineering/task/types/index.d.ts +0 -227
  600. package/node_modules/@hcengineering/task/types/index.d.ts.map +0 -1
  601. package/node_modules/@hcengineering/task/types/utils.d.ts +0 -61
  602. package/node_modules/@hcengineering/task/types/utils.d.ts.map +0 -1
  603. package/node_modules/@hcengineering/text/types/extensions.d.ts +0 -53
  604. package/node_modules/@hcengineering/text/types/extensions.d.ts.map +0 -1
  605. package/node_modules/@hcengineering/text/types/index.d.ts +0 -13
  606. package/node_modules/@hcengineering/text/types/index.d.ts.map +0 -1
  607. package/node_modules/@hcengineering/text/types/kit.d.ts +0 -12
  608. package/node_modules/@hcengineering/text/types/kit.d.ts.map +0 -1
  609. package/node_modules/@hcengineering/text/types/kits/common-kit.d.ts +0 -72
  610. package/node_modules/@hcengineering/text/types/kits/common-kit.d.ts.map +0 -1
  611. package/node_modules/@hcengineering/text/types/kits/server-kit.d.ts +0 -106
  612. package/node_modules/@hcengineering/text/types/kits/server-kit.d.ts.map +0 -1
  613. package/node_modules/@hcengineering/text/types/marks/code.d.ts +0 -8
  614. package/node_modules/@hcengineering/text/types/marks/code.d.ts.map +0 -1
  615. package/node_modules/@hcengineering/text/types/marks/colors.d.ts +0 -21
  616. package/node_modules/@hcengineering/text/types/marks/colors.d.ts.map +0 -1
  617. package/node_modules/@hcengineering/text/types/marks/inlineComment.d.ts +0 -5
  618. package/node_modules/@hcengineering/text/types/marks/inlineComment.d.ts.map +0 -1
  619. package/node_modules/@hcengineering/text/types/marks/noteBase.d.ts +0 -23
  620. package/node_modules/@hcengineering/text/types/marks/noteBase.d.ts.map +0 -1
  621. package/node_modules/@hcengineering/text/types/marks/qmsInlineCommentMark.d.ts +0 -6
  622. package/node_modules/@hcengineering/text/types/marks/qmsInlineCommentMark.d.ts.map +0 -1
  623. package/node_modules/@hcengineering/text/types/markup/__tests__/dsl.test.d.ts +0 -2
  624. package/node_modules/@hcengineering/text/types/markup/__tests__/dsl.test.d.ts.map +0 -1
  625. package/node_modules/@hcengineering/text/types/markup/__tests__/utils.test.d.ts +0 -5
  626. package/node_modules/@hcengineering/text/types/markup/__tests__/utils.test.d.ts.map +0 -1
  627. package/node_modules/@hcengineering/text/types/markup/utils.d.ts +0 -19
  628. package/node_modules/@hcengineering/text/types/markup/utils.d.ts.map +0 -1
  629. package/node_modules/@hcengineering/text/types/nodes/codeblock.d.ts +0 -12
  630. package/node_modules/@hcengineering/text/types/nodes/codeblock.d.ts.map +0 -1
  631. package/node_modules/@hcengineering/text/types/nodes/comment.d.ts +0 -6
  632. package/node_modules/@hcengineering/text/types/nodes/comment.d.ts.map +0 -1
  633. package/node_modules/@hcengineering/text/types/nodes/embed.d.ts +0 -3
  634. package/node_modules/@hcengineering/text/types/nodes/embed.d.ts.map +0 -1
  635. package/node_modules/@hcengineering/text/types/nodes/emoji.d.ts +0 -17
  636. package/node_modules/@hcengineering/text/types/nodes/emoji.d.ts.map +0 -1
  637. package/node_modules/@hcengineering/text/types/nodes/file.d.ts +0 -13
  638. package/node_modules/@hcengineering/text/types/nodes/file.d.ts.map +0 -1
  639. package/node_modules/@hcengineering/text/types/nodes/image.d.ts +0 -52
  640. package/node_modules/@hcengineering/text/types/nodes/image.d.ts.map +0 -1
  641. package/node_modules/@hcengineering/text/types/nodes/index.d.ts +0 -11
  642. package/node_modules/@hcengineering/text/types/nodes/index.d.ts.map +0 -1
  643. package/node_modules/@hcengineering/text/types/nodes/markdown.d.ts +0 -3
  644. package/node_modules/@hcengineering/text/types/nodes/markdown.d.ts.map +0 -1
  645. package/node_modules/@hcengineering/text/types/nodes/mermaid.d.ts +0 -4
  646. package/node_modules/@hcengineering/text/types/nodes/mermaid.d.ts.map +0 -1
  647. package/node_modules/@hcengineering/text/types/nodes/reference.d.ts +0 -18
  648. package/node_modules/@hcengineering/text/types/nodes/reference.d.ts.map +0 -1
  649. package/node_modules/@hcengineering/text/types/nodes/todo.d.ts +0 -3
  650. package/node_modules/@hcengineering/text/types/nodes/todo.d.ts.map +0 -1
  651. package/node_modules/@hcengineering/text/types/nodes/utils.d.ts +0 -6
  652. package/node_modules/@hcengineering/text/types/nodes/utils.d.ts.map +0 -1
  653. package/node_modules/@hcengineering/text/types/tiptapExtensions.d.ts +0 -28
  654. package/node_modules/@hcengineering/text/types/tiptapExtensions.d.ts.map +0 -1
  655. package/node_modules/@hcengineering/text-core/types/index.d.ts +0 -6
  656. package/node_modules/@hcengineering/text-core/types/index.d.ts.map +0 -1
  657. package/node_modules/@hcengineering/text-core/types/markup/__tests__/traverse.test.d.ts +0 -2
  658. package/node_modules/@hcengineering/text-core/types/markup/__tests__/traverse.test.d.ts.map +0 -1
  659. package/node_modules/@hcengineering/text-core/types/markup/__tests__/utils.test.d.ts +0 -2
  660. package/node_modules/@hcengineering/text-core/types/markup/__tests__/utils.test.d.ts.map +0 -1
  661. package/node_modules/@hcengineering/text-core/types/markup/dsl.d.ts +0 -25
  662. package/node_modules/@hcengineering/text-core/types/markup/dsl.d.ts.map +0 -1
  663. package/node_modules/@hcengineering/text-core/types/markup/model.d.ts +0 -74
  664. package/node_modules/@hcengineering/text-core/types/markup/model.d.ts.map +0 -1
  665. package/node_modules/@hcengineering/text-core/types/markup/reference.d.ts +0 -15
  666. package/node_modules/@hcengineering/text-core/types/markup/reference.d.ts.map +0 -1
  667. package/node_modules/@hcengineering/text-core/types/markup/traverse.d.ts +0 -6
  668. package/node_modules/@hcengineering/text-core/types/markup/traverse.d.ts.map +0 -1
  669. package/node_modules/@hcengineering/text-core/types/markup/utils.d.ts +0 -25
  670. package/node_modules/@hcengineering/text-core/types/markup/utils.d.ts.map +0 -1
  671. package/node_modules/@hcengineering/text-html/types/__tests__/html.test.d.ts +0 -2
  672. package/node_modules/@hcengineering/text-html/types/__tests__/html.test.d.ts.map +0 -1
  673. package/node_modules/@hcengineering/text-html/types/index.d.ts +0 -6
  674. package/node_modules/@hcengineering/text-html/types/index.d.ts.map +0 -1
  675. package/node_modules/@hcengineering/text-html/types/parser.d.ts +0 -10
  676. package/node_modules/@hcengineering/text-html/types/parser.d.ts.map +0 -1
  677. package/node_modules/@hcengineering/text-html/types/serializer.d.ts +0 -9
  678. package/node_modules/@hcengineering/text-html/types/serializer.d.ts.map +0 -1
  679. package/node_modules/@hcengineering/text-markdown/types/__tests__/markdown.test.d.ts +0 -9
  680. package/node_modules/@hcengineering/text-markdown/types/__tests__/markdown.test.d.ts.map +0 -1
  681. package/node_modules/@hcengineering/text-markdown/types/compare.d.ts +0 -10
  682. package/node_modules/@hcengineering/text-markdown/types/compare.d.ts.map +0 -1
  683. package/node_modules/@hcengineering/text-markdown/types/index.d.ts +0 -14
  684. package/node_modules/@hcengineering/text-markdown/types/index.d.ts.map +0 -1
  685. package/node_modules/@hcengineering/text-markdown/types/marks.d.ts +0 -8
  686. package/node_modules/@hcengineering/text-markdown/types/marks.d.ts.map +0 -1
  687. package/node_modules/@hcengineering/text-markdown/types/node.d.ts +0 -4
  688. package/node_modules/@hcengineering/text-markdown/types/node.d.ts.map +0 -1
  689. package/node_modules/@hcengineering/text-markdown/types/parser.d.ts +0 -50
  690. package/node_modules/@hcengineering/text-markdown/types/parser.d.ts.map +0 -1
  691. package/node_modules/@hcengineering/text-markdown/types/serializer.d.ts +0 -102
  692. package/node_modules/@hcengineering/text-markdown/types/serializer.d.ts.map +0 -1
  693. package/node_modules/@hcengineering/tracker/types/analytics.d.ts +0 -24
  694. package/node_modules/@hcengineering/tracker/types/analytics.d.ts.map +0 -1
  695. package/node_modules/@hcengineering/tracker/types/index.d.ts +0 -431
  696. package/node_modules/@hcengineering/tracker/types/index.d.ts.map +0 -1
@@ -0,0 +1,31 @@
1
+ {
2
+ "status": {
3
+ "LoadingPlugin": "Carregando plugin {plugin}...",
4
+ "UnknownError": "Erro desconhecido: {message}",
5
+ "InvalidId": "Id inválido: {id}",
6
+ "BadRequest": "Pedido inválido",
7
+ "Forbidden": "Proibido",
8
+ "Conflict": "Conflito",
9
+ "ExpiredLink": "Este link de convite expirou",
10
+ "Unauthorized": "Não autorizado",
11
+ "UnknownMethod": "Método desconhecido: {method}",
12
+ "InternalServerError": "Erro interno do servidor",
13
+ "MaintenanceWarning": "Manutenção programada dentro de",
14
+ "MaintenanceWarningTime": "{time, plural, =1 {menos de um minuto} other {# minutos}}",
15
+ "AccountNotFound": "Conta não encontrada",
16
+ "AccountNotConfirmed": "Conta não confirmada",
17
+ "WorkspaceNotFound": "Espaço de trabalho não encontrado",
18
+ "InvalidPassword": "Senha inválida",
19
+ "AccountAlreadyExists": "Conta já existe",
20
+ "WorkspaceRateLimit": "O servidor está ocupado. Por favor, espere um pouco e tente novamente",
21
+ "AccountAlreadyConfirmed": "Conta já confirmada",
22
+ "WorkspaceAlreadyExists": "Espaço de trabalho já existe",
23
+ "InvalidOtp": "Código inválido",
24
+ "PasswordLoginLocked": "O login com senha está bloqueado devido a muitas tentativas incorretas. Use um método de login OTP para desbloquear sua conta.",
25
+ "InviteNotFound": "Convite com e-mail:{email} não encontrado.",
26
+ "WorkspaceLimitReached": "Você atingiu o limite de espaços de trabalho. Entre em contato conosco...",
27
+ "ReadOnlyAccount": "Demonstração anônima de convidado",
28
+ "SystemAccount": "Conta do sistema",
29
+ "SocialIdAlreadyExists": "ID social já existe"
30
+ }
31
+ }
@@ -26,6 +26,12 @@ var import_platform = __toESM(require("../platform"));
26
26
  var import_status = require("../status");
27
27
  var import_i18n = require("../i18n");
28
28
  var import_event = require("../event");
29
+ function translateCBAsync(message, params, language) {
30
+ return new Promise((resolve) => {
31
+ (0, import_i18n.translateCB)(message, params, language, resolve);
32
+ });
33
+ }
34
+ __name(translateCBAsync, "translateCBAsync");
29
35
  const testId = "test-strings";
30
36
  const test = (0, import_platform.plugin)(testId, {
31
37
  string: {
@@ -105,5 +111,99 @@ describe("i18n", () => {
105
111
  expect(translated).toBe(message);
106
112
  (0, import_event.removeEventListener)(import_event.PlatformEvent, eventListener);
107
113
  });
114
+ it("translateCB should resolve with message when bad id (_parseId throws)", async () => {
115
+ expect.assertions(2);
116
+ const message = "invalidIntlIdCB";
117
+ const checkStatus = new import_status.Status(import_status.Severity.ERROR, import_platform.default.status.InvalidId, { id: message });
118
+ const eventListener = /* @__PURE__ */ __name(async (event, data) => {
119
+ expect(data).toEqual(checkStatus);
120
+ }, "eventListener");
121
+ (0, import_event.addEventListener)(import_event.PlatformEvent, eventListener);
122
+ const out = await translateCBAsync(message, {}, "en");
123
+ expect(out).toBe(message);
124
+ (0, import_event.removeEventListener)(import_event.PlatformEvent, eventListener);
125
+ });
126
+ it("translateCB should match translate for loaded string", async () => {
127
+ const fromTranslate = await (0, import_i18n.translate)(test.string.loadingPlugin, { plugin: "cb" });
128
+ const fromCB = await translateCBAsync(test.string.loadingPlugin, { plugin: "cb" }, "en");
129
+ expect(fromCB).toBe(fromTranslate);
130
+ });
131
+ it("translate and translateCB should return embedded label text", async () => {
132
+ const embedded = (0, import_platform.getEmbeddedLabel)("Embedded copy");
133
+ expect(await (0, import_i18n.translate)(embedded, {})).toBe("Embedded copy");
134
+ expect(await translateCBAsync(embedded, {}, "en")).toBe("Embedded copy");
135
+ });
136
+ it("loadPluginStrings(force) should clear format cache so strings still resolve", async () => {
137
+ await (0, import_i18n.translate)(test.string.loadingPlugin, { plugin: "before" });
138
+ await (0, import_i18n.loadPluginStrings)("en", true);
139
+ const after = await (0, import_i18n.translate)(test.string.loadingPlugin, { plugin: "after" });
140
+ expect(after).toContain("after");
141
+ });
142
+ it("translate with skipError should not broadcast platform status (no loader)", async () => {
143
+ const pluginId = "plugin-skip-error-no-loader";
144
+ const message = `${pluginId}:string:any`;
145
+ let events = 0;
146
+ const listener = /* @__PURE__ */ __name(async () => {
147
+ events++;
148
+ }, "listener");
149
+ (0, import_event.addEventListener)(import_event.PlatformEvent, listener);
150
+ await (0, import_i18n.translate)(message, {}, "en", true);
151
+ (0, import_event.removeEventListener)(import_event.PlatformEvent, listener);
152
+ expect(events).toBe(0);
153
+ });
154
+ it("translate should return message id and emit status when ICU format params are missing", async () => {
155
+ const fmtPlugin = "i18n-icu-format-test";
156
+ (0, import_i18n.addStringsLoader)(fmtPlugin, async () => ({
157
+ string: {
158
+ badPlural: "{dias, plural, =0 {} other {#d}} {horas, plural, =0 {} other {#h}}"
159
+ }
160
+ }));
161
+ const message = `${fmtPlugin}:string:badPlural`;
162
+ expect.assertions(2);
163
+ let gotStatus = false;
164
+ const listener = /* @__PURE__ */ __name(async (_event, data) => {
165
+ if (data instanceof import_status.Status) {
166
+ gotStatus = true;
167
+ }
168
+ }, "listener");
169
+ (0, import_event.addEventListener)(import_event.PlatformEvent, listener);
170
+ const out = await (0, import_i18n.translate)(message, { days: 1, hours: 2 }, "en");
171
+ (0, import_event.removeEventListener)(import_event.PlatformEvent, listener);
172
+ expect(out).toBe(message);
173
+ expect(gotStatus).toBe(true);
174
+ });
175
+ it("translateCB should resolve to message id when ICU format params are missing", async () => {
176
+ const fmtPlugin = "i18n-icu-format-test-cb";
177
+ (0, import_i18n.addStringsLoader)(fmtPlugin, async () => ({
178
+ string: {
179
+ badPlural: "{dias, plural, =0 {} other {#d}}"
180
+ }
181
+ }));
182
+ const message = `${fmtPlugin}:string:badPlural`;
183
+ expect.assertions(2);
184
+ let gotStatus = false;
185
+ const listener = /* @__PURE__ */ __name(async (_event, data) => {
186
+ if (data instanceof import_status.Status) {
187
+ gotStatus = true;
188
+ }
189
+ }, "listener");
190
+ (0, import_event.addEventListener)(import_event.PlatformEvent, listener);
191
+ const out = await translateCBAsync(message, { days: 1 }, "en");
192
+ (0, import_event.removeEventListener)(import_event.PlatformEvent, listener);
193
+ expect(out).toBe(message);
194
+ expect(gotStatus).toBe(true);
195
+ });
196
+ it("translateCB should defer to translate when translation is not yet cached", async () => {
197
+ const deferPlugin = "i18n-defer-translate";
198
+ const deferMsg = `${deferPlugin}:string:only`;
199
+ (0, import_i18n.addStringsLoader)(deferPlugin, async (locale) => {
200
+ if (locale === "en") {
201
+ return { string: { only: "Deferred {v}" } };
202
+ }
203
+ return { string: { only: "Deferred {v}" } };
204
+ });
205
+ const out = await translateCBAsync(deferMsg, { v: "ok" }, "en");
206
+ expect(out).toBe("Deferred ok");
207
+ });
108
208
  });
109
209
  //# sourceMappingURL=i18n.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/__tests__/i18n.test.ts"],
4
- "sourcesContent": ["//\n// Copyright \u00A9 2020, 2021 Anticrm Platform Contributors.\n// Copyright \u00A9 2021 Hardcore Engineering Inc.\n//\n// Licensed under the Eclipse Public License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License. You may\n// obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n//\n// See the License for the specific language governing permissions and\n// limitations under the License.\n//\n\nimport type { Plugin, IntlString } from '../platform'\nimport platform, { plugin } from '../platform'\nimport { Severity, Status } from '../status'\n\nimport { addStringsLoader, translate } from '../i18n'\nimport { addEventListener, PlatformEvent, removeEventListener } from '../event'\n\nconst testId = 'test-strings' as Plugin\n\nconst test = plugin(testId, {\n string: {\n loadingPlugin: '' as IntlString<{ plugin: string }>\n }\n})\n\ndescribe('i18n', () => {\n it('should translate string', async () => {\n addStringsLoader(testId, async (locale: string) => await import(`./lang/${locale}.json`))\n const translated = await translate(test.string.loadingPlugin, { plugin: 'xxx' })\n expect(translated).toBe('Loading plugin <b>xxx</b>...')\n })\n\n it('should return id when no translation found', async () => {\n const id = (testId + '.inexistent') as IntlString\n const inexistent = await translate(id, {})\n expect(inexistent).toBe(id)\n })\n\n it('should cache translated string', async () => {\n const translated = await translate(test.string.loadingPlugin, { plugin: 'xxx' })\n expect(translated).toBe('Loading plugin <b>xxx</b>...')\n })\n\n it('should emit status and return id when no loader', async () => {\n expect.assertions(2)\n const plugin = 'plugin-without-string-loader'\n const message = `${plugin}:string:id`\n\n const checkStatus = new Status(Severity.ERROR, platform.status.NoLoaderForStrings, { plugin })\n const eventListener = async (event: string, data: any): Promise<void> => {\n expect(data).toEqual(checkStatus)\n }\n addEventListener(PlatformEvent, eventListener)\n const translated = await translate(message as IntlString, {})\n expect(translated).toBe(message)\n removeEventListener(PlatformEvent, eventListener)\n })\n\n it('should emit status and return id when bad loader', async () => {\n expect.assertions(2)\n const plugin = 'component-for-bad-loader'\n const message = `${plugin}:string:id`\n const errorMessage = 'bad loader'\n addStringsLoader(plugin as Plugin, (locale: string) => {\n throw new Error(errorMessage)\n })\n\n const checkStatus = new Status(Severity.ERROR, platform.status.UnknownError, { message: errorMessage })\n const eventListener = async (event: string, data: any): Promise<void> => {\n expect(data).toEqual(checkStatus)\n }\n addEventListener(PlatformEvent, eventListener)\n const translated = await translate(message as IntlString, {})\n expect(translated).toBe(message)\n removeEventListener(PlatformEvent, eventListener)\n })\n\n it('should cache error', async () => {\n const plugin = 'component'\n const message = `${plugin}:string:id`\n\n const checkStatus = new Status(Severity.ERROR, platform.status.NoLoaderForStrings, { plugin })\n let calls = 0\n const eventListener = async (event: string, data: any): Promise<void> => {\n ++calls\n expect(data).toEqual(checkStatus)\n }\n\n addEventListener(PlatformEvent, eventListener)\n const t1 = await translate(message as IntlString, {})\n const t2 = await translate(message as IntlString, {})\n expect(t1).toBe(t2)\n removeEventListener(PlatformEvent, eventListener)\n expect(calls).toBe(1)\n })\n\n it('should return message when bad id', async () => {\n expect.assertions(2)\n const message = 'testMessage' as IntlString\n const checkStatus = new Status(Severity.ERROR, platform.status.InvalidId, { id: message })\n const eventListener = async (event: string, data: any): Promise<void> => {\n expect(data).toEqual(checkStatus)\n }\n addEventListener(PlatformEvent, eventListener)\n const translated = await translate(message, {})\n expect(translated).toBe(message)\n removeEventListener(PlatformEvent, eventListener)\n })\n})\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["//\n// Copyright \u00A9 2020, 2021 Anticrm Platform Contributors.\n// Copyright \u00A9 2021 Hardcore Engineering Inc.\n//\n// Licensed under the Eclipse Public License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License. You may\n// obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n//\n// See the License for the specific language governing permissions and\n// limitations under the License.\n//\n\nimport type { Plugin, IntlString } from '../platform'\nimport platform, { getEmbeddedLabel, plugin } from '../platform'\nimport { Severity, Status } from '../status'\n\nimport { addStringsLoader, loadPluginStrings, translate, translateCB } from '../i18n'\nimport { addEventListener, PlatformEvent, removeEventListener } from '../event'\n\nfunction translateCBAsync (\n message: IntlString,\n params: Record<string, any>,\n language: string | undefined\n): Promise<string> {\n return new Promise((resolve) => {\n translateCB(message, params, language, resolve)\n })\n}\n\nconst testId = 'test-strings' as Plugin\n\nconst test = plugin(testId, {\n string: {\n loadingPlugin: '' as IntlString<{ plugin: string }>\n }\n})\n\ndescribe('i18n', () => {\n it('should translate string', async () => {\n addStringsLoader(testId, async (locale: string) => await import(`./lang/${locale}.json`))\n const translated = await translate(test.string.loadingPlugin, { plugin: 'xxx' })\n expect(translated).toBe('Loading plugin <b>xxx</b>...')\n })\n\n it('should return id when no translation found', async () => {\n const id = (testId + '.inexistent') as IntlString\n const inexistent = await translate(id, {})\n expect(inexistent).toBe(id)\n })\n\n it('should cache translated string', async () => {\n const translated = await translate(test.string.loadingPlugin, { plugin: 'xxx' })\n expect(translated).toBe('Loading plugin <b>xxx</b>...')\n })\n\n it('should emit status and return id when no loader', async () => {\n expect.assertions(2)\n const plugin = 'plugin-without-string-loader'\n const message = `${plugin}:string:id`\n\n const checkStatus = new Status(Severity.ERROR, platform.status.NoLoaderForStrings, { plugin })\n const eventListener = async (event: string, data: any): Promise<void> => {\n expect(data).toEqual(checkStatus)\n }\n addEventListener(PlatformEvent, eventListener)\n const translated = await translate(message as IntlString, {})\n expect(translated).toBe(message)\n removeEventListener(PlatformEvent, eventListener)\n })\n\n it('should emit status and return id when bad loader', async () => {\n expect.assertions(2)\n const plugin = 'component-for-bad-loader'\n const message = `${plugin}:string:id`\n const errorMessage = 'bad loader'\n addStringsLoader(plugin as Plugin, (locale: string) => {\n throw new Error(errorMessage)\n })\n\n const checkStatus = new Status(Severity.ERROR, platform.status.UnknownError, { message: errorMessage })\n const eventListener = async (event: string, data: any): Promise<void> => {\n expect(data).toEqual(checkStatus)\n }\n addEventListener(PlatformEvent, eventListener)\n const translated = await translate(message as IntlString, {})\n expect(translated).toBe(message)\n removeEventListener(PlatformEvent, eventListener)\n })\n\n it('should cache error', async () => {\n const plugin = 'component'\n const message = `${plugin}:string:id`\n\n const checkStatus = new Status(Severity.ERROR, platform.status.NoLoaderForStrings, { plugin })\n let calls = 0\n const eventListener = async (event: string, data: any): Promise<void> => {\n ++calls\n expect(data).toEqual(checkStatus)\n }\n\n addEventListener(PlatformEvent, eventListener)\n const t1 = await translate(message as IntlString, {})\n const t2 = await translate(message as IntlString, {})\n expect(t1).toBe(t2)\n removeEventListener(PlatformEvent, eventListener)\n expect(calls).toBe(1)\n })\n\n it('should return message when bad id', async () => {\n expect.assertions(2)\n const message = 'testMessage' as IntlString\n const checkStatus = new Status(Severity.ERROR, platform.status.InvalidId, { id: message })\n const eventListener = async (event: string, data: any): Promise<void> => {\n expect(data).toEqual(checkStatus)\n }\n addEventListener(PlatformEvent, eventListener)\n const translated = await translate(message, {})\n expect(translated).toBe(message)\n removeEventListener(PlatformEvent, eventListener)\n })\n\n it('translateCB should resolve with message when bad id (_parseId throws)', async () => {\n expect.assertions(2)\n const message = 'invalidIntlIdCB' as IntlString\n const checkStatus = new Status(Severity.ERROR, platform.status.InvalidId, { id: message })\n const eventListener = async (event: string, data: any): Promise<void> => {\n expect(data).toEqual(checkStatus)\n }\n addEventListener(PlatformEvent, eventListener)\n const out = await translateCBAsync(message, {}, 'en')\n expect(out).toBe(message)\n removeEventListener(PlatformEvent, eventListener)\n })\n\n it('translateCB should match translate for loaded string', async () => {\n const fromTranslate = await translate(test.string.loadingPlugin, { plugin: 'cb' })\n const fromCB = await translateCBAsync(test.string.loadingPlugin, { plugin: 'cb' }, 'en')\n expect(fromCB).toBe(fromTranslate)\n })\n\n it('translate and translateCB should return embedded label text', async () => {\n const embedded = getEmbeddedLabel('Embedded copy')\n expect(await translate(embedded, {})).toBe('Embedded copy')\n expect(await translateCBAsync(embedded, {}, 'en')).toBe('Embedded copy')\n })\n\n it('loadPluginStrings(force) should clear format cache so strings still resolve', async () => {\n await translate(test.string.loadingPlugin, { plugin: 'before' })\n await loadPluginStrings('en', true)\n const after = await translate(test.string.loadingPlugin, { plugin: 'after' })\n expect(after).toContain('after')\n })\n\n it('translate with skipError should not broadcast platform status (no loader)', async () => {\n const pluginId = 'plugin-skip-error-no-loader'\n const message = `${pluginId}:string:any` as IntlString\n let events = 0\n const listener = async (): Promise<void> => {\n events++\n }\n addEventListener(PlatformEvent, listener)\n await translate(message, {}, 'en', true)\n removeEventListener(PlatformEvent, listener)\n expect(events).toBe(0)\n })\n\n it('translate should return message id and emit status when ICU format params are missing', async () => {\n const fmtPlugin = 'i18n-icu-format-test' as Plugin\n addStringsLoader(fmtPlugin, async () => ({\n string: {\n badPlural: '{dias, plural, =0 {} other {#d}} {horas, plural, =0 {} other {#h}}'\n }\n }))\n const message = `${fmtPlugin}:string:badPlural` as IntlString\n expect.assertions(2)\n let gotStatus = false\n const listener = async (_event: string, data: any): Promise<void> => {\n if (data instanceof Status) {\n gotStatus = true\n }\n }\n addEventListener(PlatformEvent, listener)\n const out = await translate(message, { days: 1, hours: 2 } as any, 'en')\n removeEventListener(PlatformEvent, listener)\n expect(out).toBe(message)\n expect(gotStatus).toBe(true)\n })\n\n it('translateCB should resolve to message id when ICU format params are missing', async () => {\n const fmtPlugin = 'i18n-icu-format-test-cb' as Plugin\n addStringsLoader(fmtPlugin, async () => ({\n string: {\n badPlural: '{dias, plural, =0 {} other {#d}}'\n }\n }))\n const message = `${fmtPlugin}:string:badPlural` as IntlString\n expect.assertions(2)\n let gotStatus = false\n const listener = async (_event: string, data: any): Promise<void> => {\n if (data instanceof Status) {\n gotStatus = true\n }\n }\n addEventListener(PlatformEvent, listener)\n const out = await translateCBAsync(message, { days: 1 }, 'en')\n removeEventListener(PlatformEvent, listener)\n expect(out).toBe(message)\n expect(gotStatus).toBe(true)\n })\n\n it('translateCB should defer to translate when translation is not yet cached', async () => {\n const deferPlugin = 'i18n-defer-translate' as Plugin\n const deferMsg = `${deferPlugin}:string:only` as IntlString\n addStringsLoader(deferPlugin, async (locale: string) => {\n if (locale === 'en') {\n return { string: { only: 'Deferred {v}' } }\n }\n return { string: { only: 'Deferred {v}' } }\n })\n const out = await translateCBAsync(deferMsg, { v: 'ok' }, 'en')\n expect(out).toBe('Deferred ok')\n })\n})\n"],
5
+ "mappings": "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",
6
6
  "names": ["plugin", "platform"]
7
7
  }
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __copyProps = (to, from, except, desc) => {
9
+ if (from && typeof from === "object" || typeof from === "function") {
10
+ for (let key of __getOwnPropNames(from))
11
+ if (!__hasOwnProp.call(to, key) && key !== except)
12
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
13
+ }
14
+ return to;
15
+ };
16
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
17
+ // If the importer is in node compatibility mode or this is not an ESM
18
+ // file that has been converted to a CommonJS file using a Babel-
19
+ // compatible transform (i.e. "__esModule" has not been set), then set
20
+ // "default" to the CommonJS "module.exports" for node compatibility.
21
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
22
+ mod
23
+ ));
24
+ var import_platform = __toESM(require("../platform"));
25
+ var import_status = require("../status");
26
+ describe("errorToStatus", () => {
27
+ it("returns status from PlatformError", () => {
28
+ const err = new import_status.PlatformError(import_status.UNAUTHORIZED);
29
+ expect((0, import_status.errorToStatus)(err)).toBe(import_status.UNAUTHORIZED);
30
+ });
31
+ it("returns same Status instance", () => {
32
+ const st = new import_status.Status(import_status.Severity.WARNING, import_platform.default.status.MaintenanceWarning, { time: 1, message: "" });
33
+ expect((0, import_status.errorToStatus)(st)).toBe(st);
34
+ });
35
+ it("reconstructs from plain status-shaped object (duplicate package / JSON)", () => {
36
+ const plain = {
37
+ severity: import_status.UNAUTHORIZED.severity,
38
+ code: import_status.UNAUTHORIZED.code,
39
+ params: import_status.UNAUTHORIZED.params
40
+ };
41
+ expect((0, import_status.errorToStatus)(plain)).toEqual(import_status.UNAUTHORIZED);
42
+ });
43
+ it("unwraps embedded .status (foreign PlatformError shape)", () => {
44
+ const workspaceUuid = "d388f8f8-915c-4ef8-96f7-018147ce1234";
45
+ const embedded = {
46
+ status: {
47
+ severity: import_status.Severity.ERROR,
48
+ code: import_platform.default.status.WorkspaceNotFound,
49
+ params: { workspaceUuid }
50
+ }
51
+ };
52
+ expect((0, import_status.errorToStatus)(embedded)).toMatchObject({
53
+ severity: import_status.Severity.ERROR,
54
+ code: import_platform.default.status.WorkspaceNotFound,
55
+ params: { workspaceUuid }
56
+ });
57
+ });
58
+ it("delegates Error to unknownError \u2192 unknownStatus", () => {
59
+ expect((0, import_status.errorToStatus)(new Error("boom"))).toEqual((0, import_status.unknownStatus)("boom"));
60
+ });
61
+ it("delegates string to unknownError \u2192 unknownStatus", () => {
62
+ expect((0, import_status.errorToStatus)("nope")).toEqual((0, import_status.unknownStatus)("nope"));
63
+ });
64
+ it("returns ERROR for unrecognized values", () => {
65
+ expect((0, import_status.errorToStatus)(null)).toBe(import_status.ERROR);
66
+ expect((0, import_status.errorToStatus)(void 0)).toBe(import_status.ERROR);
67
+ expect((0, import_status.errorToStatus)(42)).toBe(import_status.ERROR);
68
+ expect((0, import_status.errorToStatus)({})).toBe(import_status.ERROR);
69
+ });
70
+ it("ignores .status that is not status-shaped", () => {
71
+ expect(
72
+ (0, import_status.errorToStatus)({
73
+ status: { code: "only-code" }
74
+ })
75
+ ).toBe(import_status.ERROR);
76
+ });
77
+ });
78
+ //# sourceMappingURL=status.test.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/__tests__/status.test.ts"],
4
+ "sourcesContent": ["//\n// Copyright \u00A9 2026 Hardcore Engineering Inc.\n//\n// Licensed under the Eclipse Public License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR ANY KIND, either express or implied.\n//\n// See the License for the specific language governing permissions and\n// limitations under the License.\n//\n\nimport platform from '../platform'\nimport { ERROR, PlatformError, Severity, Status, UNAUTHORIZED, errorToStatus, unknownStatus } from '../status'\n\ndescribe('errorToStatus', () => {\n it('returns status from PlatformError', () => {\n const err = new PlatformError(UNAUTHORIZED)\n expect(errorToStatus(err)).toBe(UNAUTHORIZED)\n })\n\n it('returns same Status instance', () => {\n const st = new Status(Severity.WARNING, platform.status.MaintenanceWarning, { time: 1, message: '' })\n expect(errorToStatus(st)).toBe(st)\n })\n\n it('reconstructs from plain status-shaped object (duplicate package / JSON)', () => {\n const plain = {\n severity: UNAUTHORIZED.severity,\n code: UNAUTHORIZED.code,\n params: UNAUTHORIZED.params\n }\n expect(errorToStatus(plain)).toEqual(UNAUTHORIZED)\n })\n\n it('unwraps embedded .status (foreign PlatformError shape)', () => {\n const workspaceUuid = 'd388f8f8-915c-4ef8-96f7-018147ce1234'\n const embedded = {\n status: {\n severity: Severity.ERROR,\n code: platform.status.WorkspaceNotFound,\n params: { workspaceUuid }\n }\n }\n expect(errorToStatus(embedded)).toMatchObject({\n severity: Severity.ERROR,\n code: platform.status.WorkspaceNotFound,\n params: { workspaceUuid }\n })\n })\n\n it('delegates Error to unknownError \u2192 unknownStatus', () => {\n expect(errorToStatus(new Error('boom'))).toEqual(unknownStatus('boom'))\n })\n\n it('delegates string to unknownError \u2192 unknownStatus', () => {\n expect(errorToStatus('nope')).toEqual(unknownStatus('nope'))\n })\n\n it('returns ERROR for unrecognized values', () => {\n expect(errorToStatus(null)).toBe(ERROR)\n expect(errorToStatus(undefined)).toBe(ERROR)\n expect(errorToStatus(42)).toBe(ERROR)\n expect(errorToStatus({})).toBe(ERROR)\n })\n\n it('ignores .status that is not status-shaped', () => {\n expect(\n errorToStatus({\n status: { code: 'only-code' }\n })\n ).toBe(ERROR)\n })\n})\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;AAeA,sBAAqB;AACrB,oBAAmG;AAEnG,SAAS,iBAAiB,MAAM;AAC9B,KAAG,qCAAqC,MAAM;AAC5C,UAAM,MAAM,IAAI,4BAAc,0BAAY;AAC1C,eAAO,6BAAc,GAAG,CAAC,EAAE,KAAK,0BAAY;AAAA,EAC9C,CAAC;AAED,KAAG,gCAAgC,MAAM;AACvC,UAAM,KAAK,IAAI,qBAAO,uBAAS,SAAS,gBAAAA,QAAS,OAAO,oBAAoB,EAAE,MAAM,GAAG,SAAS,GAAG,CAAC;AACpG,eAAO,6BAAc,EAAE,CAAC,EAAE,KAAK,EAAE;AAAA,EACnC,CAAC;AAED,KAAG,2EAA2E,MAAM;AAClF,UAAM,QAAQ;AAAA,MACZ,UAAU,2BAAa;AAAA,MACvB,MAAM,2BAAa;AAAA,MACnB,QAAQ,2BAAa;AAAA,IACvB;AACA,eAAO,6BAAc,KAAK,CAAC,EAAE,QAAQ,0BAAY;AAAA,EACnD,CAAC;AAED,KAAG,0DAA0D,MAAM;AACjE,UAAM,gBAAgB;AACtB,UAAM,WAAW;AAAA,MACf,QAAQ;AAAA,QACN,UAAU,uBAAS;AAAA,QACnB,MAAM,gBAAAA,QAAS,OAAO;AAAA,QACtB,QAAQ,EAAE,cAAc;AAAA,MAC1B;AAAA,IACF;AACA,eAAO,6BAAc,QAAQ,CAAC,EAAE,cAAc;AAAA,MAC5C,UAAU,uBAAS;AAAA,MACnB,MAAM,gBAAAA,QAAS,OAAO;AAAA,MACtB,QAAQ,EAAE,cAAc;AAAA,IAC1B,CAAC;AAAA,EACH,CAAC;AAED,KAAG,wDAAmD,MAAM;AAC1D,eAAO,6BAAc,IAAI,MAAM,MAAM,CAAC,CAAC,EAAE,YAAQ,6BAAc,MAAM,CAAC;AAAA,EACxE,CAAC;AAED,KAAG,yDAAoD,MAAM;AAC3D,eAAO,6BAAc,MAAM,CAAC,EAAE,YAAQ,6BAAc,MAAM,CAAC;AAAA,EAC7D,CAAC;AAED,KAAG,yCAAyC,MAAM;AAChD,eAAO,6BAAc,IAAI,CAAC,EAAE,KAAK,mBAAK;AACtC,eAAO,6BAAc,MAAS,CAAC,EAAE,KAAK,mBAAK;AAC3C,eAAO,6BAAc,EAAE,CAAC,EAAE,KAAK,mBAAK;AACpC,eAAO,6BAAc,CAAC,CAAC,CAAC,EAAE,KAAK,mBAAK;AAAA,EACtC,CAAC;AAED,KAAG,6CAA6C,MAAM;AACpD;AAAA,UACE,6BAAc;AAAA,QACZ,QAAQ,EAAE,MAAM,YAAY;AAAA,MAC9B,CAAC;AAAA,IACH,EAAE,KAAK,mBAAK;AAAA,EACd,CAAC;AACH,CAAC;",
6
+ "names": ["platform"]
7
+ }
@@ -66,11 +66,30 @@ async function loadPluginStrings(locale, force = false) {
66
66
  }
67
67
  }
68
68
  __name(loadPluginStrings, "loadPluginStrings");
69
- async function loadTranslationsForComponent(plugin, locale) {
69
+ async function setStatus(status, skipError) {
70
+ if (skipError !== true) {
71
+ await (0, import_event.setPlatformStatus)(status);
72
+ }
73
+ }
74
+ __name(setStatus, "setStatus");
75
+ async function pipelineErrorToStatus(err, skipError) {
76
+ const status = (0, import_status.unknownError)(err);
77
+ await setStatus(status, skipError);
78
+ return status;
79
+ }
80
+ __name(pipelineErrorToStatus, "pipelineErrorToStatus");
81
+ async function handleIntlPipelineFailure(err, message, localeCache, skipError) {
82
+ const status = (0, import_status.unknownError)(err);
83
+ localeCache.set(message, status);
84
+ await setStatus(status, skipError);
85
+ return message;
86
+ }
87
+ __name(handleIntlPipelineFailure, "handleIntlPipelineFailure");
88
+ async function loadTranslationsForComponent(plugin, locale, skipError) {
70
89
  const loader = loaders.get(plugin);
71
90
  if (loader === void 0) {
72
91
  const status = new import_status.Status(import_status.Severity.ERROR, import_platform.default.status.NoLoaderForStrings, { plugin });
73
- await (0, import_event.setPlatformStatus)(status);
92
+ await setStatus(status, skipError);
74
93
  return status;
75
94
  }
76
95
  try {
@@ -80,9 +99,7 @@ async function loadTranslationsForComponent(plugin, locale) {
80
99
  try {
81
100
  return await loader("en");
82
101
  } catch (err2) {
83
- const status = (0, import_status.unknownError)(err2);
84
- await (0, import_event.setPlatformStatus)(status);
85
- return status;
102
+ return await pipelineErrorToStatus(err2, skipError);
86
103
  }
87
104
  }
88
105
  }
@@ -106,7 +123,7 @@ function getCachedTranslation(id, locale) {
106
123
  }
107
124
  }
108
125
  __name(getCachedTranslation, "getCachedTranslation");
109
- async function getTranslation(id, locale) {
126
+ async function getTranslation(id, locale, skipError) {
110
127
  try {
111
128
  const localtTanslations = translations.get(locale) ?? /* @__PURE__ */ new Map();
112
129
  if (!translations.has(locale)) {
@@ -114,7 +131,7 @@ async function getTranslation(id, locale) {
114
131
  }
115
132
  let messages = localtTanslations.get(id.component);
116
133
  if (messages === void 0) {
117
- messages = await loadTranslationsForComponent(id.component, locale);
134
+ messages = await loadTranslationsForComponent(id.component, locale, skipError);
118
135
  localtTanslations.set(id.component, messages);
119
136
  }
120
137
  if (messages instanceof import_status.Status) {
@@ -126,7 +143,7 @@ async function getTranslation(id, locale) {
126
143
  } else {
127
144
  let eng = englishTranslationsForMissing.get(id.component);
128
145
  if (eng === void 0) {
129
- eng = await loadTranslationsForComponent(id.component, "en");
146
+ eng = await loadTranslationsForComponent(id.component, "en", skipError);
130
147
  englishTranslationsForMissing.set(id.component, eng);
131
148
  }
132
149
  if (eng instanceof import_status.Status) {
@@ -138,90 +155,82 @@ async function getTranslation(id, locale) {
138
155
  return messages[id.name];
139
156
  }
140
157
  } catch (err) {
141
- const status = (0, import_status.unknownError)(err);
142
- await (0, import_event.setPlatformStatus)(status);
143
- return status;
158
+ return await pipelineErrorToStatus(err, skipError);
144
159
  }
145
160
  }
146
161
  __name(getTranslation, "getTranslation");
147
- async function translate(message, params, language) {
162
+ async function translate(message, params, language, skipError) {
148
163
  const locale = language ?? (0, import_metadata.getMetadata)(import_platform.default.metadata.locale) ?? "en";
149
164
  const localCache = cache.get(locale) ?? /* @__PURE__ */ new Map();
150
165
  if (!cache.has(locale)) {
151
166
  cache.set(locale, localCache);
152
167
  }
153
- const compiled = localCache.get(message);
154
- if (compiled !== void 0) {
155
- if (compiled instanceof import_status.Status) {
156
- return message;
157
- }
158
- return compiled.format(params);
159
- } else {
160
- try {
161
- const id = (0, import_ident._parseId)(message);
162
- if (id.component === import_platform._EmbeddedId) {
163
- return id.name;
164
- }
165
- const translation = getCachedTranslation(id, locale) ?? await getTranslation(id, locale) ?? message;
166
- if (translation instanceof import_status.Status) {
167
- localCache.set(message, translation);
168
+ try {
169
+ const compiled = localCache.get(message);
170
+ if (compiled !== void 0) {
171
+ if (compiled instanceof import_status.Status) {
168
172
  return message;
169
173
  }
170
- const compiled2 = new import_intl_messageformat.IntlMessageFormat(translation, locale, void 0, { ignoreTag: true });
171
- localCache.set(message, compiled2);
172
- return compiled2.format(params);
173
- } catch (err) {
174
- const status = (0, import_status.unknownError)(err);
175
- void (0, import_event.setPlatformStatus)(status);
176
- localCache.set(message, status);
174
+ return compiled.format(params);
175
+ }
176
+ const id = (0, import_ident._parseId)(message);
177
+ if (id.component === import_platform._EmbeddedId) {
178
+ return id.name;
179
+ }
180
+ const translation = getCachedTranslation(id, locale) ?? await getTranslation(id, locale, skipError) ?? message;
181
+ if (translation instanceof import_status.Status) {
182
+ localCache.set(message, translation);
177
183
  return message;
178
184
  }
185
+ const compiledNew = new import_intl_messageformat.IntlMessageFormat(translation, locale, void 0, { ignoreTag: true });
186
+ localCache.set(message, compiledNew);
187
+ return compiledNew.format(params);
188
+ } catch (err) {
189
+ return await handleIntlPipelineFailure(err, message, localCache, skipError);
179
190
  }
180
191
  }
181
192
  __name(translate, "translate");
182
- function translateCB(message, params, language, resolve) {
193
+ function translateCB(message, params, language, resolve, skipError) {
183
194
  const locale = language ?? (0, import_metadata.getMetadata)(import_platform.default.metadata.locale) ?? "en";
184
195
  const localCache = cache.get(locale) ?? /* @__PURE__ */ new Map();
185
196
  if (!cache.has(locale)) {
186
197
  cache.set(locale, localCache);
187
198
  }
188
- const compiled = localCache.get(message);
189
- if (compiled !== void 0) {
190
- if (compiled instanceof import_status.Status) {
191
- resolve(message);
192
- return;
193
- }
194
- resolve(compiled.format(params));
195
- } else {
196
- let id;
197
- try {
198
- id = (0, import_ident._parseId)(message);
199
- if (id.component === import_platform._EmbeddedId) {
200
- resolve(id.name);
199
+ try {
200
+ const compiled = localCache.get(message);
201
+ if (compiled !== void 0) {
202
+ if (compiled instanceof import_status.Status) {
203
+ resolve(message);
201
204
  return;
202
205
  }
203
- } catch (err) {
204
- const status = (0, import_status.unknownError)(err);
205
- void (0, import_event.setPlatformStatus)(status);
206
- localCache.set(message, status);
207
- resolve(message);
208
- return;
209
- }
210
- const translation = getCachedTranslation(id, locale);
211
- if (translation === void 0 || translation instanceof import_status.Status) {
212
- void translate(message, params, language).then((res) => {
213
- resolve(res);
214
- }).catch((err) => {
215
- const status = (0, import_status.unknownError)(err);
216
- void (0, import_event.setPlatformStatus)(status);
217
- localCache.set(message, status);
218
- resolve(message);
219
- });
220
- return;
206
+ resolve(compiled.format(params));
207
+ } else {
208
+ let id;
209
+ try {
210
+ id = (0, import_ident._parseId)(message);
211
+ if (id.component === import_platform._EmbeddedId) {
212
+ resolve(id.name);
213
+ return;
214
+ }
215
+ } catch (err) {
216
+ void handleIntlPipelineFailure(err, message, localCache, skipError).then(resolve);
217
+ return;
218
+ }
219
+ const translation = getCachedTranslation(id, locale);
220
+ if (translation === void 0 || translation instanceof import_status.Status) {
221
+ void translate(message, params, language, skipError).then((res) => {
222
+ resolve(res);
223
+ }).catch((err) => {
224
+ void handleIntlPipelineFailure(err, message, localCache, skipError).then(resolve);
225
+ });
226
+ return;
227
+ }
228
+ const compiledNew = new import_intl_messageformat.IntlMessageFormat(translation, locale, void 0, { ignoreTag: true });
229
+ localCache.set(message, compiledNew);
230
+ resolve(compiledNew.format(params));
221
231
  }
222
- const compiled2 = new import_intl_messageformat.IntlMessageFormat(translation, locale, void 0, { ignoreTag: true });
223
- localCache.set(message, compiled2);
224
- resolve(compiled2.format(params));
232
+ } catch (err) {
233
+ void handleIntlPipelineFailure(err, message, localCache, skipError).then(resolve);
225
234
  }
226
235
  }
227
236
  __name(translateCB, "translateCB");
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/i18n.ts"],
4
- "sourcesContent": ["//\n// Copyright \u00A9 2020, 2021 Anticrm Platform Contributors.\n// Copyright \u00A9 2021 Hardcore Engineering Inc.\n//\n// Licensed under the Eclipse Public License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License. You may\n// obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n//\n// See the License for the specific language governing permissions and\n// limitations under the License.\n//\n\nimport { IntlMessageFormat } from 'intl-messageformat'\nimport { setPlatformStatus } from './event'\nimport { _IdInfo, _parseId } from './ident'\nimport type { IntlString, Plugin } from './platform'\nimport { Severity, Status, unknownError } from './status'\n\nimport { getMetadata } from './metadata'\nimport platform, { _EmbeddedId } from './platform'\n\n/**\n * @public\n */\nexport type Loader = (locale: string) => Promise<Record<string, string | Record<string, string>>>\n\ntype Messages = Record<string, IntlString | Record<string, IntlString>>\n\nconst loaders = new Map<Plugin, Loader>()\nconst translations = new Map<string, Map<Plugin, Messages | Status>>()\nconst cache = new Map<string, Map<IntlString, IntlMessageFormat | Status>>()\nconst englishTranslationsForMissing = new Map<Plugin, Messages | Status>()\n/**\n * @public\n * @param plugin -\n * @param loader -\n */\nexport function addStringsLoader (plugin: Plugin, loader: Loader): void {\n loaders.set(plugin, loader)\n}\n\n/**\n * Perform load of all internationalization sources for all plugins available.\n * @public\n */\nexport async function loadPluginStrings (locale: string, force: boolean = false): Promise<void> {\n if (force) {\n cache.clear()\n }\n for (const [plugin] of loaders) {\n const localtTanslations = translations.get(locale) ?? new Map<Plugin, Messages | Status<any>>()\n if (!translations.has(locale)) {\n translations.set(locale, localtTanslations)\n }\n let messages = localtTanslations.get(plugin)\n if (messages === undefined || force) {\n messages = await loadTranslationsForComponent(plugin, locale)\n localtTanslations.set(plugin, messages)\n }\n }\n}\n\nasync function loadTranslationsForComponent (plugin: Plugin, locale: string): Promise<Messages | Status> {\n const loader = loaders.get(plugin)\n if (loader === undefined) {\n const status = new Status(Severity.ERROR, platform.status.NoLoaderForStrings, { plugin })\n await setPlatformStatus(status)\n return status\n }\n try {\n return (await loader(locale)) as Record<string, IntlString> | Status\n } catch (err) {\n console.error('No translations found for plugin', plugin, err)\n try {\n return (await loader('en')) as Record<string, IntlString> | Status\n } catch (err: any) {\n const status = unknownError(err)\n await setPlatformStatus(status)\n return status\n }\n }\n}\n\nfunction getCachedTranslation (id: _IdInfo, locale: string): IntlString | Status | undefined {\n const localtTanslations = translations.get(locale)\n if (localtTanslations === undefined) {\n return undefined\n }\n const messages = localtTanslations.get(id.component)\n if (messages === undefined) {\n return undefined\n }\n if (messages instanceof Status) {\n return messages\n }\n if (id.kind !== undefined) {\n if ((messages[id.kind] as Record<string, IntlString>)?.[id.name] !== undefined) {\n return (messages[id.kind] as Record<string, IntlString>)?.[id.name]\n }\n }\n}\n\nasync function getTranslation (id: _IdInfo, locale: string): Promise<IntlString | Status | undefined> {\n try {\n const localtTanslations = translations.get(locale) ?? new Map<Plugin, Messages | Status<any>>()\n if (!translations.has(locale)) {\n translations.set(locale, localtTanslations)\n }\n let messages = localtTanslations.get(id.component)\n if (messages === undefined) {\n messages = await loadTranslationsForComponent(id.component, locale)\n localtTanslations.set(id.component, messages)\n }\n if (messages instanceof Status) {\n return messages\n }\n if (id.kind !== undefined) {\n if ((messages[id.kind] as Record<string, IntlString>)?.[id.name] !== undefined) {\n return (messages[id.kind] as Record<string, IntlString>)?.[id.name]\n } else {\n let eng = englishTranslationsForMissing.get(id.component)\n if (eng === undefined) {\n eng = await loadTranslationsForComponent(id.component, 'en')\n englishTranslationsForMissing.set(id.component, eng)\n }\n if (eng instanceof Status) {\n return eng\n }\n return (eng[id.kind] as Record<string, IntlString>)?.[id.name]\n }\n } else {\n return messages[id.name] as IntlString\n }\n } catch (err) {\n const status = unknownError(err)\n await setPlatformStatus(status)\n return status\n }\n}\n\n/**\n * @public\n * @param message -\n * @param params -\n * @returns\n */\nexport async function translate<P extends Record<string, any>> (\n message: IntlString<P>,\n params: P,\n language?: string\n): Promise<string> {\n const locale = language ?? getMetadata(platform.metadata.locale) ?? 'en'\n const localCache = cache.get(locale) ?? new Map<IntlString, IntlMessageFormat | Status>()\n if (!cache.has(locale)) {\n cache.set(locale, localCache)\n }\n const compiled = localCache.get(message)\n\n if (compiled !== undefined) {\n if (compiled instanceof Status) {\n return message\n }\n return compiled.format(params)\n } else {\n try {\n const id = _parseId(message)\n if (id.component === _EmbeddedId) {\n return id.name\n }\n const translation = getCachedTranslation(id, locale) ?? (await getTranslation(id, locale)) ?? message\n if (translation instanceof Status) {\n localCache.set(message, translation)\n return message\n }\n const compiled = new IntlMessageFormat(translation, locale, undefined, { ignoreTag: true })\n localCache.set(message, compiled)\n return compiled.format(params)\n } catch (err) {\n const status = unknownError(err)\n void setPlatformStatus(status)\n localCache.set(message, status)\n return message\n }\n }\n}\n/**\n * Will do a translation in case language file already in cache, a translate is called and Promise is returned overwise\n */\nexport function translateCB<P extends Record<string, any>> (\n message: IntlString<P>,\n params: P,\n language: string | undefined,\n resolve: (value: string) => void\n): void {\n const locale = language ?? getMetadata(platform.metadata.locale) ?? 'en'\n const localCache = cache.get(locale) ?? new Map<IntlString, IntlMessageFormat | Status>()\n if (!cache.has(locale)) {\n cache.set(locale, localCache)\n }\n const compiled = localCache.get(message)\n\n if (compiled !== undefined) {\n if (compiled instanceof Status) {\n resolve(message)\n return\n }\n resolve(compiled.format(params))\n } else {\n let id: _IdInfo\n try {\n id = _parseId(message)\n if (id.component === _EmbeddedId) {\n resolve(id.name)\n return\n }\n } catch (err) {\n const status = unknownError(err)\n void setPlatformStatus(status)\n localCache.set(message, status)\n resolve(message)\n return\n }\n const translation = getCachedTranslation(id, locale)\n if (translation === undefined || translation instanceof Status) {\n void translate(message, params, language)\n .then((res) => {\n resolve(res)\n })\n .catch((err) => {\n const status = unknownError(err)\n void setPlatformStatus(status)\n localCache.set(message, status)\n resolve(message)\n })\n return\n }\n\n const compiled = new IntlMessageFormat(translation, locale, undefined, { ignoreTag: true })\n localCache.set(message, compiled)\n resolve(compiled.format(params))\n }\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAgBA,gCAAkC;AAClC,mBAAkC;AAClC,mBAAkC;AAElC,oBAA+C;AAE/C,sBAA4B;AAC5B,sBAAsC;AAStC,MAAM,UAAU,oBAAI,IAAoB;AACxC,MAAM,eAAe,oBAAI,IAA4C;AACrE,MAAM,QAAQ,oBAAI,IAAyD;AAC3E,MAAM,gCAAgC,oBAAI,IAA+B;AAMlE,SAAS,iBAAkB,QAAgB,QAAsB;AACtE,UAAQ,IAAI,QAAQ,MAAM;AAC5B;AAFgB;AAQhB,eAAsB,kBAAmB,QAAgB,QAAiB,OAAsB;AAC9F,MAAI,OAAO;AACT,UAAM,MAAM;AAAA,EACd;AACA,aAAW,CAAC,MAAM,KAAK,SAAS;AAC9B,UAAM,oBAAoB,aAAa,IAAI,MAAM,KAAK,oBAAI,IAAoC;AAC9F,QAAI,CAAC,aAAa,IAAI,MAAM,GAAG;AAC7B,mBAAa,IAAI,QAAQ,iBAAiB;AAAA,IAC5C;AACA,QAAI,WAAW,kBAAkB,IAAI,MAAM;AAC3C,QAAI,aAAa,UAAa,OAAO;AACnC,iBAAW,MAAM,6BAA6B,QAAQ,MAAM;AAC5D,wBAAkB,IAAI,QAAQ,QAAQ;AAAA,IACxC;AAAA,EACF;AACF;AAfsB;AAiBtB,eAAe,6BAA8B,QAAgB,QAA4C;AACvG,QAAM,SAAS,QAAQ,IAAI,MAAM;AACjC,MAAI,WAAW,QAAW;AACxB,UAAM,SAAS,IAAI,qBAAO,uBAAS,OAAO,gBAAAA,QAAS,OAAO,oBAAoB,EAAE,OAAO,CAAC;AACxF,cAAM,gCAAkB,MAAM;AAC9B,WAAO;AAAA,EACT;AACA,MAAI;AACF,WAAQ,MAAM,OAAO,MAAM;AAAA,EAC7B,SAAS,KAAK;AACZ,YAAQ,MAAM,oCAAoC,QAAQ,GAAG;AAC7D,QAAI;AACF,aAAQ,MAAM,OAAO,IAAI;AAAA,IAC3B,SAASC,MAAU;AACjB,YAAM,aAAS,4BAAaA,IAAG;AAC/B,gBAAM,gCAAkB,MAAM;AAC9B,aAAO;AAAA,IACT;AAAA,EACF;AACF;AAnBe;AAqBf,SAAS,qBAAsB,IAAa,QAAiD;AAC3F,QAAM,oBAAoB,aAAa,IAAI,MAAM;AACjD,MAAI,sBAAsB,QAAW;AACnC,WAAO;AAAA,EACT;AACA,QAAM,WAAW,kBAAkB,IAAI,GAAG,SAAS;AACnD,MAAI,aAAa,QAAW;AAC1B,WAAO;AAAA,EACT;AACA,MAAI,oBAAoB,sBAAQ;AAC9B,WAAO;AAAA,EACT;AACA,MAAI,GAAG,SAAS,QAAW;AACzB,QAAK,SAAS,GAAG,IAAI,IAAmC,GAAG,IAAI,MAAM,QAAW;AAC9E,aAAQ,SAAS,GAAG,IAAI,IAAmC,GAAG,IAAI;AAAA,IACpE;AAAA,EACF;AACF;AAjBS;AAmBT,eAAe,eAAgB,IAAa,QAA0D;AACpG,MAAI;AACF,UAAM,oBAAoB,aAAa,IAAI,MAAM,KAAK,oBAAI,IAAoC;AAC9F,QAAI,CAAC,aAAa,IAAI,MAAM,GAAG;AAC7B,mBAAa,IAAI,QAAQ,iBAAiB;AAAA,IAC5C;AACA,QAAI,WAAW,kBAAkB,IAAI,GAAG,SAAS;AACjD,QAAI,aAAa,QAAW;AAC1B,iBAAW,MAAM,6BAA6B,GAAG,WAAW,MAAM;AAClE,wBAAkB,IAAI,GAAG,WAAW,QAAQ;AAAA,IAC9C;AACA,QAAI,oBAAoB,sBAAQ;AAC9B,aAAO;AAAA,IACT;AACA,QAAI,GAAG,SAAS,QAAW;AACzB,UAAK,SAAS,GAAG,IAAI,IAAmC,GAAG,IAAI,MAAM,QAAW;AAC9E,eAAQ,SAAS,GAAG,IAAI,IAAmC,GAAG,IAAI;AAAA,MACpE,OAAO;AACL,YAAI,MAAM,8BAA8B,IAAI,GAAG,SAAS;AACxD,YAAI,QAAQ,QAAW;AACrB,gBAAM,MAAM,6BAA6B,GAAG,WAAW,IAAI;AAC3D,wCAA8B,IAAI,GAAG,WAAW,GAAG;AAAA,QACrD;AACA,YAAI,eAAe,sBAAQ;AACzB,iBAAO;AAAA,QACT;AACA,eAAQ,IAAI,GAAG,IAAI,IAAmC,GAAG,IAAI;AAAA,MAC/D;AAAA,IACF,OAAO;AACL,aAAO,SAAS,GAAG,IAAI;AAAA,IACzB;AAAA,EACF,SAAS,KAAK;AACZ,UAAM,aAAS,4BAAa,GAAG;AAC/B,cAAM,gCAAkB,MAAM;AAC9B,WAAO;AAAA,EACT;AACF;AApCe;AA4Cf,eAAsB,UACpB,SACA,QACA,UACiB;AACjB,QAAM,SAAS,gBAAY,6BAAY,gBAAAD,QAAS,SAAS,MAAM,KAAK;AACpE,QAAM,aAAa,MAAM,IAAI,MAAM,KAAK,oBAAI,IAA4C;AACxF,MAAI,CAAC,MAAM,IAAI,MAAM,GAAG;AACtB,UAAM,IAAI,QAAQ,UAAU;AAAA,EAC9B;AACA,QAAM,WAAW,WAAW,IAAI,OAAO;AAEvC,MAAI,aAAa,QAAW;AAC1B,QAAI,oBAAoB,sBAAQ;AAC9B,aAAO;AAAA,IACT;AACA,WAAO,SAAS,OAAO,MAAM;AAAA,EAC/B,OAAO;AACL,QAAI;AACF,YAAM,SAAK,uBAAS,OAAO;AAC3B,UAAI,GAAG,cAAc,6BAAa;AAChC,eAAO,GAAG;AAAA,MACZ;AACA,YAAM,cAAc,qBAAqB,IAAI,MAAM,KAAM,MAAM,eAAe,IAAI,MAAM,KAAM;AAC9F,UAAI,uBAAuB,sBAAQ;AACjC,mBAAW,IAAI,SAAS,WAAW;AACnC,eAAO;AAAA,MACT;AACA,YAAME,YAAW,IAAI,4CAAkB,aAAa,QAAQ,QAAW,EAAE,WAAW,KAAK,CAAC;AAC1F,iBAAW,IAAI,SAASA,SAAQ;AAChC,aAAOA,UAAS,OAAO,MAAM;AAAA,IAC/B,SAAS,KAAK;AACZ,YAAM,aAAS,4BAAa,GAAG;AAC/B,eAAK,gCAAkB,MAAM;AAC7B,iBAAW,IAAI,SAAS,MAAM;AAC9B,aAAO;AAAA,IACT;AAAA,EACF;AACF;AAtCsB;AA0Cf,SAAS,YACd,SACA,QACA,UACA,SACM;AACN,QAAM,SAAS,gBAAY,6BAAY,gBAAAF,QAAS,SAAS,MAAM,KAAK;AACpE,QAAM,aAAa,MAAM,IAAI,MAAM,KAAK,oBAAI,IAA4C;AACxF,MAAI,CAAC,MAAM,IAAI,MAAM,GAAG;AACtB,UAAM,IAAI,QAAQ,UAAU;AAAA,EAC9B;AACA,QAAM,WAAW,WAAW,IAAI,OAAO;AAEvC,MAAI,aAAa,QAAW;AAC1B,QAAI,oBAAoB,sBAAQ;AAC9B,cAAQ,OAAO;AACf;AAAA,IACF;AACA,YAAQ,SAAS,OAAO,MAAM,CAAC;AAAA,EACjC,OAAO;AACL,QAAI;AACJ,QAAI;AACF,eAAK,uBAAS,OAAO;AACrB,UAAI,GAAG,cAAc,6BAAa;AAChC,gBAAQ,GAAG,IAAI;AACf;AAAA,MACF;AAAA,IACF,SAAS,KAAK;AACZ,YAAM,aAAS,4BAAa,GAAG;AAC/B,eAAK,gCAAkB,MAAM;AAC7B,iBAAW,IAAI,SAAS,MAAM;AAC9B,cAAQ,OAAO;AACf;AAAA,IACF;AACA,UAAM,cAAc,qBAAqB,IAAI,MAAM;AACnD,QAAI,gBAAgB,UAAa,uBAAuB,sBAAQ;AAC9D,WAAK,UAAU,SAAS,QAAQ,QAAQ,EACrC,KAAK,CAAC,QAAQ;AACb,gBAAQ,GAAG;AAAA,MACb,CAAC,EACA,MAAM,CAAC,QAAQ;AACd,cAAM,aAAS,4BAAa,GAAG;AAC/B,iBAAK,gCAAkB,MAAM;AAC7B,mBAAW,IAAI,SAAS,MAAM;AAC9B,gBAAQ,OAAO;AAAA,MACjB,CAAC;AACH;AAAA,IACF;AAEA,UAAME,YAAW,IAAI,4CAAkB,aAAa,QAAQ,QAAW,EAAE,WAAW,KAAK,CAAC;AAC1F,eAAW,IAAI,SAASA,SAAQ;AAChC,YAAQA,UAAS,OAAO,MAAM,CAAC;AAAA,EACjC;AACF;AArDgB;",
6
- "names": ["platform", "err", "compiled"]
4
+ "sourcesContent": ["//\n// Copyright \u00A9 2020, 2021 Anticrm Platform Contributors.\n// Copyright \u00A9 2021 Hardcore Engineering Inc.\n//\n// Licensed under the Eclipse Public License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License. You may\n// obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n//\n// See the License for the specific language governing permissions and\n// limitations under the License.\n//\n\nimport { IntlMessageFormat } from 'intl-messageformat'\nimport { setPlatformStatus } from './event'\nimport { _IdInfo, _parseId } from './ident'\nimport type { IntlString, Plugin } from './platform'\nimport { Severity, Status, unknownError } from './status'\n\nimport { getMetadata } from './metadata'\nimport platform, { _EmbeddedId } from './platform'\n\n/**\n * @public\n */\nexport type Loader = (locale: string) => Promise<Record<string, string | Record<string, string>>>\n\ntype Messages = Record<string, IntlString | Record<string, IntlString>>\n\nconst loaders = new Map<Plugin, Loader>()\nconst translations = new Map<string, Map<Plugin, Messages | Status>>()\nconst cache = new Map<string, Map<IntlString, IntlMessageFormat | Status>>()\nconst englishTranslationsForMissing = new Map<Plugin, Messages | Status>()\n/**\n * @public\n * @param plugin -\n * @param loader -\n */\nexport function addStringsLoader (plugin: Plugin, loader: Loader): void {\n loaders.set(plugin, loader)\n}\n\n/**\n * Perform load of all internationalization sources for all plugins available.\n * @public\n */\nexport async function loadPluginStrings (locale: string, force: boolean = false): Promise<void> {\n if (force) {\n cache.clear()\n }\n for (const [plugin] of loaders) {\n const localtTanslations = translations.get(locale) ?? new Map<Plugin, Messages | Status<any>>()\n if (!translations.has(locale)) {\n translations.set(locale, localtTanslations)\n }\n let messages = localtTanslations.get(plugin)\n if (messages === undefined || force) {\n messages = await loadTranslationsForComponent(plugin, locale)\n localtTanslations.set(plugin, messages)\n }\n }\n}\n\nasync function setStatus (status: Status, skipError?: boolean): Promise<void> {\n if (skipError !== true) {\n await setPlatformStatus(status)\n }\n}\n\n/** Notify platform and return a Status for load/resolve paths that do not use the per-message format cache. */\nasync function pipelineErrorToStatus (err: unknown, skipError?: boolean): Promise<Status> {\n const status = unknownError(err)\n await setStatus(status, skipError)\n return status\n}\n\n/**\n * On compile/resolve failure: cache failure for this intl id, notify platform, return `message` as UI fallback.\n */\nasync function handleIntlPipelineFailure (\n err: unknown,\n message: IntlString,\n localeCache: Map<IntlString, IntlMessageFormat | Status>,\n skipError?: boolean\n): Promise<IntlString> {\n const status = unknownError(err)\n localeCache.set(message, status)\n await setStatus(status, skipError)\n return message\n}\n\nasync function loadTranslationsForComponent (\n plugin: Plugin,\n locale: string,\n skipError?: boolean\n): Promise<Messages | Status> {\n const loader = loaders.get(plugin)\n if (loader === undefined) {\n const status = new Status(Severity.ERROR, platform.status.NoLoaderForStrings, { plugin })\n await setStatus(status, skipError)\n return status\n }\n try {\n return (await loader(locale)) as Record<string, IntlString> | Status\n } catch (err) {\n console.error('No translations found for plugin', plugin, err)\n try {\n return (await loader('en')) as Record<string, IntlString> | Status\n } catch (err: any) {\n return await pipelineErrorToStatus(err, skipError)\n }\n }\n}\n\nfunction getCachedTranslation (id: _IdInfo, locale: string): IntlString | Status | undefined {\n const localtTanslations = translations.get(locale)\n if (localtTanslations === undefined) {\n return undefined\n }\n const messages = localtTanslations.get(id.component)\n if (messages === undefined) {\n return undefined\n }\n if (messages instanceof Status) {\n return messages\n }\n if (id.kind !== undefined) {\n if ((messages[id.kind] as Record<string, IntlString>)?.[id.name] !== undefined) {\n return (messages[id.kind] as Record<string, IntlString>)?.[id.name]\n }\n }\n}\n\nasync function getTranslation (\n id: _IdInfo,\n locale: string,\n skipError?: boolean\n): Promise<IntlString | Status | undefined> {\n try {\n const localtTanslations = translations.get(locale) ?? new Map<Plugin, Messages | Status<any>>()\n if (!translations.has(locale)) {\n translations.set(locale, localtTanslations)\n }\n let messages = localtTanslations.get(id.component)\n if (messages === undefined) {\n messages = await loadTranslationsForComponent(id.component, locale, skipError)\n localtTanslations.set(id.component, messages)\n }\n if (messages instanceof Status) {\n return messages\n }\n if (id.kind !== undefined) {\n if ((messages[id.kind] as Record<string, IntlString>)?.[id.name] !== undefined) {\n return (messages[id.kind] as Record<string, IntlString>)?.[id.name]\n } else {\n let eng = englishTranslationsForMissing.get(id.component)\n if (eng === undefined) {\n eng = await loadTranslationsForComponent(id.component, 'en', skipError)\n englishTranslationsForMissing.set(id.component, eng)\n }\n if (eng instanceof Status) {\n return eng\n }\n return (eng[id.kind] as Record<string, IntlString>)?.[id.name]\n }\n } else {\n return messages[id.name] as IntlString\n }\n } catch (err) {\n return await pipelineErrorToStatus(err, skipError)\n }\n}\n\n/**\n * @public\n * @param message -\n * @param params -\n * @returns\n */\nexport async function translate<P extends Record<string, any>> (\n message: IntlString<P>,\n params: P,\n language?: string,\n skipError?: boolean\n): Promise<string> {\n const locale = language ?? getMetadata(platform.metadata.locale) ?? 'en'\n const localCache = cache.get(locale) ?? new Map<IntlString, IntlMessageFormat | Status>()\n if (!cache.has(locale)) {\n cache.set(locale, localCache)\n }\n try {\n const compiled = localCache.get(message)\n\n if (compiled !== undefined) {\n if (compiled instanceof Status) {\n return message\n }\n return compiled.format(params)\n }\n const id = _parseId(message)\n if (id.component === _EmbeddedId) {\n return id.name\n }\n const translation = getCachedTranslation(id, locale) ?? (await getTranslation(id, locale, skipError)) ?? message\n if (translation instanceof Status) {\n localCache.set(message, translation)\n return message\n }\n const compiledNew = new IntlMessageFormat(translation, locale, undefined, { ignoreTag: true })\n localCache.set(message, compiledNew)\n return compiledNew.format(params)\n } catch (err) {\n return await handleIntlPipelineFailure(err, message, localCache, skipError)\n }\n}\n/**\n * Will do a translation in case language file already in cache, a translate is called and Promise is returned overwise\n */\nexport function translateCB<P extends Record<string, any>> (\n message: IntlString<P>,\n params: P,\n language: string | undefined,\n resolve: (value: string) => void,\n skipError?: boolean\n): void {\n const locale = language ?? getMetadata(platform.metadata.locale) ?? 'en'\n const localCache = cache.get(locale) ?? new Map<IntlString, IntlMessageFormat | Status>()\n if (!cache.has(locale)) {\n cache.set(locale, localCache)\n }\n try {\n const compiled = localCache.get(message)\n\n if (compiled !== undefined) {\n if (compiled instanceof Status) {\n resolve(message)\n return\n }\n resolve(compiled.format(params))\n } else {\n let id: _IdInfo\n try {\n id = _parseId(message)\n if (id.component === _EmbeddedId) {\n resolve(id.name)\n return\n }\n } catch (err) {\n void handleIntlPipelineFailure(err, message, localCache, skipError).then(resolve)\n return\n }\n const translation = getCachedTranslation(id, locale)\n if (translation === undefined || translation instanceof Status) {\n void translate(message, params, language, skipError)\n .then((res) => {\n resolve(res)\n })\n .catch((err) => {\n void handleIntlPipelineFailure(err, message, localCache, skipError).then(resolve)\n })\n return\n }\n\n const compiledNew = new IntlMessageFormat(translation, locale, undefined, { ignoreTag: true })\n localCache.set(message, compiledNew)\n resolve(compiledNew.format(params))\n }\n } catch (err) {\n void handleIntlPipelineFailure(err, message, localCache, skipError).then(resolve)\n }\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["platform", "err"]
7
7
  }
@@ -35,6 +35,7 @@ __export(status_exports, {
35
35
  Severity: () => Severity,
36
36
  Status: () => Status,
37
37
  UNAUTHORIZED: () => UNAUTHORIZED,
38
+ errorToStatus: () => errorToStatus,
38
39
  unknownError: () => unknownError,
39
40
  unknownStatus: () => unknownStatus
40
41
  });
@@ -77,6 +78,30 @@ function unknownStatus(message) {
77
78
  return new Status("ERROR" /* ERROR */, import_platform.default.status.UnknownError, { message });
78
79
  }
79
80
  __name(unknownStatus, "unknownStatus");
81
+ function isStatusLike(err) {
82
+ if (typeof err !== "object" || err === null) return false;
83
+ const o = err;
84
+ return typeof o.severity === "string" && typeof o.code === "string" && typeof o.params === "object" && o.params !== null;
85
+ }
86
+ __name(isStatusLike, "isStatusLike");
87
+ function unwrapEmbeddedStatus(err) {
88
+ if (typeof err !== "object" || err === null || !("status" in err)) return void 0;
89
+ const st = err.status;
90
+ if (!isStatusLike(st)) return void 0;
91
+ return new Status(st.severity, st.code, st.params);
92
+ }
93
+ __name(unwrapEmbeddedStatus, "unwrapEmbeddedStatus");
94
+ function errorToStatus(err) {
95
+ if (err instanceof PlatformError) return err.status;
96
+ if (err instanceof Status) return err;
97
+ if (isStatusLike(err)) {
98
+ return new Status(err.severity, err.code, err.params);
99
+ }
100
+ const status = unwrapEmbeddedStatus(err);
101
+ if (status !== void 0) return status;
102
+ return unknownError(err);
103
+ }
104
+ __name(errorToStatus, "errorToStatus");
80
105
  function unknownError(err) {
81
106
  if (err instanceof PlatformError) return err.status;
82
107
  if (err instanceof Error) return unknownStatus(err.message);