@stemy/ngx-utils 13.6.16 → 17.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (268) hide show
  1. package/esm2022/ngx-utils/common-types.mjs +123 -0
  2. package/esm2022/ngx-utils/components/dynamic-table/dynamic-table.component.mjs +210 -0
  3. package/esm2022/ngx-utils/components/pagination-menu/pagination-menu.component.mjs +101 -0
  4. package/esm2022/ngx-utils/components/unordered-list/unordered-list.component.mjs +65 -0
  5. package/esm2022/ngx-utils/directives/async-method.base.mjs +82 -0
  6. package/{esm2020 → esm2022}/ngx-utils/directives/async-method.directive.mjs +21 -21
  7. package/esm2022/ngx-utils/directives/background.directive.mjs +51 -0
  8. package/{esm2020 → esm2022}/ngx-utils/directives/dynamic-table-template.directive.mjs +20 -20
  9. package/{esm2020 → esm2022}/ngx-utils/directives/global-template.directive.mjs +30 -30
  10. package/esm2022/ngx-utils/directives/icon.directive.mjs +67 -0
  11. package/esm2022/ngx-utils/directives/ngx-template-outlet.directive.mjs +90 -0
  12. package/{esm2020 → esm2022}/ngx-utils/directives/pagination-item.directive.mjs +34 -34
  13. package/esm2022/ngx-utils/directives/pagination.directive.mjs +84 -0
  14. package/esm2022/ngx-utils/directives/resource-if.directive.mjs +50 -0
  15. package/esm2022/ngx-utils/directives/sticky-class.directive.mjs +34 -0
  16. package/{esm2020 → esm2022}/ngx-utils/directives/sticky.directive.mjs +55 -55
  17. package/{esm2020 → esm2022}/ngx-utils/directives/unordered-list-item.directive.mjs +79 -79
  18. package/{esm2020 → esm2022}/ngx-utils/directives/unordered-list-template.directive.mjs +20 -20
  19. package/{esm2020 → esm2022}/ngx-utils/ngx-utils.imports.mjs +174 -174
  20. package/esm2022/ngx-utils/ngx-utils.module.mjs +202 -0
  21. package/esm2022/ngx-utils/pipes/chunk.pipe.mjs +25 -0
  22. package/{esm2020 → esm2022}/ngx-utils/pipes/entries.pipe.mjs +28 -28
  23. package/{esm2020 → esm2022}/ngx-utils/pipes/extra-item-properties.pipe.mjs +31 -31
  24. package/esm2022/ngx-utils/pipes/filter.pipe.mjs +37 -0
  25. package/esm2022/ngx-utils/pipes/find.pipe.mjs +29 -0
  26. package/{esm2020 → esm2022}/ngx-utils/pipes/format-number.pipe.mjs +21 -21
  27. package/{esm2020 → esm2022}/ngx-utils/pipes/get-offset.pipe.mjs +17 -17
  28. package/{esm2020 → esm2022}/ngx-utils/pipes/get-type.pipe.mjs +16 -16
  29. package/esm2022/ngx-utils/pipes/global-template.pipe.mjs +41 -0
  30. package/{esm2020 → esm2022}/ngx-utils/pipes/group-by.pipe.mjs +27 -27
  31. package/{esm2020 → esm2022}/ngx-utils/pipes/is-type.pipe.mjs +16 -16
  32. package/{esm2020 → esm2022}/ngx-utils/pipes/join.pipe.mjs +19 -19
  33. package/{esm2020 → esm2022}/ngx-utils/pipes/keys.pipe.mjs +22 -22
  34. package/{esm2020 → esm2022}/ngx-utils/pipes/map.pipe.mjs +29 -29
  35. package/{esm2020 → esm2022}/ngx-utils/pipes/max.pipe.mjs +26 -26
  36. package/{esm2020 → esm2022}/ngx-utils/pipes/min.pipe.mjs +26 -26
  37. package/{esm2020 → esm2022}/ngx-utils/pipes/pop.pipe.mjs +16 -16
  38. package/{esm2020 → esm2022}/ngx-utils/pipes/reduce.pipe.mjs +30 -30
  39. package/esm2022/ngx-utils/pipes/remap.pipe.mjs +32 -0
  40. package/{esm2020 → esm2022}/ngx-utils/pipes/replace.pipe.mjs +17 -17
  41. package/esm2022/ngx-utils/pipes/reverse.pipe.mjs +24 -0
  42. package/{esm2020 → esm2022}/ngx-utils/pipes/round.pipe.mjs +21 -21
  43. package/esm2022/ngx-utils/pipes/safe-html.pipe.mjs +34 -0
  44. package/{esm2020 → esm2022}/ngx-utils/pipes/shift.pipe.mjs +16 -16
  45. package/{esm2020 → esm2022}/ngx-utils/pipes/split.pipe.mjs +16 -16
  46. package/esm2022/ngx-utils/pipes/translate.pipe.mjs +86 -0
  47. package/{esm2020 → esm2022}/ngx-utils/pipes/values.pipe.mjs +22 -22
  48. package/esm2022/ngx-utils/plugins/resize-event.plugin.mjs +78 -0
  49. package/esm2022/ngx-utils/plugins/scroll-event.plugin.mjs +39 -0
  50. package/{esm2020 → esm2022}/ngx-utils/services/acl.service.mjs +84 -83
  51. package/esm2022/ngx-utils/services/api.service.mjs +42 -0
  52. package/{esm2020 → esm2022}/ngx-utils/services/auth.service.mjs +13 -13
  53. package/esm2022/ngx-utils/services/base-http.client.mjs +47 -0
  54. package/esm2022/ngx-utils/services/base-http.service.mjs +305 -0
  55. package/esm2022/ngx-utils/services/config.service.mjs +130 -0
  56. package/esm2022/ngx-utils/services/error-handler.service.mjs +49 -0
  57. package/{esm2020 → esm2022}/ngx-utils/services/events.service.mjs +26 -26
  58. package/{esm2020 → esm2022}/ngx-utils/services/formatter.service.mjs +49 -49
  59. package/esm2022/ngx-utils/services/global-template.service.mjs +37 -0
  60. package/esm2022/ngx-utils/services/icon.service.mjs +26 -0
  61. package/esm2022/ngx-utils/services/language.service.mjs +124 -0
  62. package/{esm2020 → esm2022}/ngx-utils/services/local-http.service.mjs +47 -47
  63. package/{esm2020 → esm2022}/ngx-utils/services/open-api.service.mjs +40 -40
  64. package/{esm2020 → esm2022}/ngx-utils/services/promise.service.mjs +55 -55
  65. package/esm2022/ngx-utils/services/state.service.mjs +177 -0
  66. package/{esm2020 → esm2022}/ngx-utils/services/static-language.service.mjs +166 -166
  67. package/esm2022/ngx-utils/services/storage.service.mjs +49 -0
  68. package/{esm2020 → esm2022}/ngx-utils/services/toaster.service.mjs +32 -32
  69. package/esm2022/ngx-utils/services/translated-url.serializer.mjs +73 -0
  70. package/esm2022/ngx-utils/services/universal.service.mjs +81 -0
  71. package/{esm2020 → esm2022}/ngx-utils/services/wasm.service.mjs +46 -46
  72. package/esm2022/ngx-utils/utils/ajax-request-handler.mjs +40 -0
  73. package/esm2022/ngx-utils/utils/array.utils.mjs +107 -0
  74. package/esm2022/ngx-utils/utils/auth.guard.mjs +181 -0
  75. package/esm2022/ngx-utils/utils/cached-factory.mjs +30 -0
  76. package/esm2022/ngx-utils/utils/canvas.utils.mjs +388 -0
  77. package/esm2022/ngx-utils/utils/date.utils.mjs +29 -0
  78. package/{esm2020 → esm2022}/ngx-utils/utils/file-system.mjs +24 -24
  79. package/esm2022/ngx-utils/utils/file.utils.mjs +90 -0
  80. package/{esm2020 → esm2022}/ngx-utils/utils/generic-value.mjs +20 -20
  81. package/esm2022/ngx-utils/utils/geometry.mjs +132 -0
  82. package/{esm2020 → esm2022}/ngx-utils/utils/initializer.mjs +20 -20
  83. package/esm2022/ngx-utils/utils/jsonfn.mjs +45 -0
  84. package/esm2022/ngx-utils/utils/loader.utils.mjs +55 -0
  85. package/esm2022/ngx-utils/utils/math.utils.mjs +44 -0
  86. package/esm2022/ngx-utils/utils/object.utils.mjs +320 -0
  87. package/{esm2020 → esm2022}/ngx-utils/utils/observable.utils.mjs +63 -63
  88. package/esm2022/ngx-utils/utils/reflect.utils.mjs +33 -0
  89. package/esm2022/ngx-utils/utils/set.utils.mjs +20 -0
  90. package/esm2022/ngx-utils/utils/string.utils.mjs +41 -0
  91. package/{esm2020 → esm2022}/ngx-utils/utils/timer.utils.mjs +51 -51
  92. package/esm2022/ngx-utils/utils/unique.utils.mjs +24 -0
  93. package/esm2022/ngx-utils/utils/vector.mjs +77 -0
  94. package/esm2022/ngx-utils/utils/wasi.mjs +159 -0
  95. package/esm2022/ngx-utils/utils/wasm-worker-proxy.mjs +99 -0
  96. package/{esm2020 → esm2022}/ngx-utils/utils/with-options-provider.mjs +23 -23
  97. package/{esm2020 → esm2022}/public_api.mjs +94 -94
  98. package/{esm2020 → esm2022}/stemy-ngx-utils.mjs +4 -4
  99. package/esm2022/tools/config.mjs +71 -0
  100. package/{esm2020 → esm2022}/tools/public_api.mjs +1 -1
  101. package/{esm2020 → esm2022}/tools/stemy-ngx-utils-tools.mjs +4 -4
  102. package/{fesm2020 → fesm2022}/stemy-ngx-utils-tools.mjs +71 -71
  103. package/{fesm2015 → fesm2022}/stemy-ngx-utils-tools.mjs.map +1 -1
  104. package/{fesm2020 → fesm2022}/stemy-ngx-utils.mjs +5639 -5633
  105. package/fesm2022/stemy-ngx-utils.mjs.map +1 -0
  106. package/{stemy-ngx-utils.d.ts → index.d.ts} +5 -5
  107. package/ng.mjs +5 -0
  108. package/ngx-utils/common-types.d.ts +378 -377
  109. package/ngx-utils/components/dynamic-table/dynamic-table.component.d.ts +56 -55
  110. package/ngx-utils/components/pagination-menu/pagination-menu.component.d.ts +31 -31
  111. package/ngx-utils/components/unordered-list/unordered-list.component.d.ts +25 -25
  112. package/ngx-utils/directives/async-method.base.d.ts +19 -19
  113. package/ngx-utils/directives/async-method.directive.d.ts +9 -9
  114. package/ngx-utils/directives/background.directive.d.ts +17 -17
  115. package/ngx-utils/directives/dynamic-table-template.directive.d.ts +11 -11
  116. package/ngx-utils/directives/global-template.directive.d.ts +13 -13
  117. package/ngx-utils/directives/icon.directive.d.ts +23 -23
  118. package/ngx-utils/directives/ngx-template-outlet.directive.d.ts +17 -17
  119. package/ngx-utils/directives/pagination-item.directive.d.ts +15 -15
  120. package/ngx-utils/directives/pagination.directive.d.ts +25 -25
  121. package/ngx-utils/directives/resource-if.directive.d.ts +19 -19
  122. package/ngx-utils/directives/sticky-class.directive.d.ts +15 -15
  123. package/ngx-utils/directives/sticky.directive.d.ts +19 -19
  124. package/ngx-utils/directives/unordered-list-item.directive.d.ts +28 -28
  125. package/ngx-utils/directives/unordered-list-template.directive.d.ts +11 -11
  126. package/ngx-utils/ngx-utils.imports.d.ts +74 -0
  127. package/ngx-utils/ngx-utils.module.d.ts +58 -58
  128. package/ngx-utils/pipes/chunk.pipe.d.ts +7 -7
  129. package/ngx-utils/pipes/entries.pipe.d.ts +12 -12
  130. package/ngx-utils/pipes/extra-item-properties.pipe.d.ts +8 -8
  131. package/ngx-utils/pipes/filter.pipe.d.ts +8 -8
  132. package/ngx-utils/pipes/find.pipe.d.ts +8 -8
  133. package/ngx-utils/pipes/format-number.pipe.d.ts +10 -10
  134. package/ngx-utils/pipes/get-offset.pipe.d.ts +7 -7
  135. package/ngx-utils/pipes/get-type.pipe.d.ts +7 -7
  136. package/ngx-utils/pipes/global-template.pipe.d.ts +16 -16
  137. package/ngx-utils/pipes/group-by.pipe.d.ts +8 -8
  138. package/ngx-utils/pipes/is-type.pipe.d.ts +7 -7
  139. package/ngx-utils/pipes/join.pipe.d.ts +7 -7
  140. package/ngx-utils/pipes/keys.pipe.d.ts +7 -7
  141. package/ngx-utils/pipes/map.pipe.d.ts +8 -8
  142. package/ngx-utils/pipes/max.pipe.d.ts +7 -7
  143. package/ngx-utils/pipes/min.pipe.d.ts +7 -7
  144. package/ngx-utils/pipes/pop.pipe.d.ts +7 -7
  145. package/ngx-utils/pipes/reduce.pipe.d.ts +8 -8
  146. package/ngx-utils/pipes/remap.pipe.d.ts +7 -7
  147. package/ngx-utils/pipes/replace.pipe.d.ts +7 -7
  148. package/ngx-utils/pipes/reverse.pipe.d.ts +7 -7
  149. package/ngx-utils/pipes/round.pipe.d.ts +10 -10
  150. package/ngx-utils/pipes/safe-html.pipe.d.ts +10 -10
  151. package/ngx-utils/pipes/shift.pipe.d.ts +7 -7
  152. package/ngx-utils/pipes/split.pipe.d.ts +7 -7
  153. package/ngx-utils/pipes/translate.pipe.d.ts +19 -19
  154. package/ngx-utils/pipes/values.pipe.d.ts +7 -7
  155. package/ngx-utils/plugins/resize-event.plugin.d.ts +17 -17
  156. package/ngx-utils/plugins/scroll-event.plugin.d.ts +13 -13
  157. package/ngx-utils/services/acl.service.d.ts +14 -14
  158. package/ngx-utils/services/api.service.d.ts +17 -17
  159. package/ngx-utils/services/auth.service.d.ts +8 -8
  160. package/ngx-utils/services/base-http.client.d.ts +15 -15
  161. package/ngx-utils/services/base-http.service.d.ts +53 -53
  162. package/ngx-utils/services/config.service.d.ts +30 -30
  163. package/ngx-utils/services/error-handler.service.d.ts +13 -13
  164. package/ngx-utils/services/events.service.d.ts +14 -14
  165. package/ngx-utils/services/formatter.service.d.ts +15 -15
  166. package/ngx-utils/services/global-template.service.d.ts +19 -19
  167. package/ngx-utils/services/icon.service.d.ts +13 -13
  168. package/ngx-utils/services/language.service.d.ts +21 -21
  169. package/ngx-utils/services/local-http.service.d.ts +14 -14
  170. package/ngx-utils/services/open-api.service.d.ts +11 -11
  171. package/ngx-utils/services/promise.service.d.ts +19 -19
  172. package/ngx-utils/services/state.service.d.ts +49 -49
  173. package/ngx-utils/services/static-language.service.d.ts +46 -46
  174. package/ngx-utils/services/storage.service.d.ts +15 -15
  175. package/ngx-utils/services/toaster.service.d.ts +13 -13
  176. package/ngx-utils/services/translated-url.serializer.d.ts +19 -19
  177. package/ngx-utils/services/universal.service.d.ts +28 -28
  178. package/ngx-utils/services/wasm.service.d.ts +25 -25
  179. package/ngx-utils/utils/ajax-request-handler.d.ts +11 -11
  180. package/ngx-utils/utils/array.utils.d.ts +11 -11
  181. package/ngx-utils/utils/auth.guard.d.ts +29 -29
  182. package/ngx-utils/utils/cached-factory.d.ts +2 -2
  183. package/ngx-utils/utils/canvas.utils.d.ts +13 -13
  184. package/ngx-utils/utils/date.utils.d.ts +8 -8
  185. package/ngx-utils/utils/file-system.d.ts +16 -16
  186. package/ngx-utils/utils/file.utils.d.ts +14 -14
  187. package/ngx-utils/utils/generic-value.d.ts +8 -8
  188. package/ngx-utils/utils/geometry.d.ts +50 -50
  189. package/ngx-utils/utils/initializer.d.ts +12 -12
  190. package/ngx-utils/utils/jsonfn.d.ts +6 -6
  191. package/ngx-utils/utils/loader.utils.d.ts +7 -7
  192. package/ngx-utils/utils/math.utils.d.ts +8 -8
  193. package/ngx-utils/utils/object.utils.d.ts +35 -35
  194. package/ngx-utils/utils/observable.utils.d.ts +13 -13
  195. package/ngx-utils/utils/reflect.utils.d.ts +9 -9
  196. package/ngx-utils/utils/set.utils.d.ts +4 -4
  197. package/ngx-utils/utils/string.utils.d.ts +9 -9
  198. package/ngx-utils/utils/timer.utils.d.ts +6 -6
  199. package/ngx-utils/utils/unique.utils.d.ts +5 -5
  200. package/ngx-utils/utils/vector.d.ts +23 -23
  201. package/ngx-utils/utils/wasi.d.ts +26 -26
  202. package/ngx-utils/utils/wasm-worker-proxy.d.ts +17 -17
  203. package/ngx-utils/utils/with-options-provider.d.ts +3 -3
  204. package/package.json +21 -29
  205. package/public_api.d.ts +93 -93
  206. package/tools/config.d.ts +7 -7
  207. package/tools/{stemy-ngx-utils-tools.d.ts → index.d.ts} +5 -5
  208. package/tools/public_api.d.ts +1 -1
  209. package/esm2020/ngx-utils/common-types.mjs +0 -123
  210. package/esm2020/ngx-utils/components/dynamic-table/dynamic-table.component.mjs +0 -207
  211. package/esm2020/ngx-utils/components/pagination-menu/pagination-menu.component.mjs +0 -101
  212. package/esm2020/ngx-utils/components/unordered-list/unordered-list.component.mjs +0 -65
  213. package/esm2020/ngx-utils/directives/async-method.base.mjs +0 -82
  214. package/esm2020/ngx-utils/directives/background.directive.mjs +0 -51
  215. package/esm2020/ngx-utils/directives/icon.directive.mjs +0 -67
  216. package/esm2020/ngx-utils/directives/ngx-template-outlet.directive.mjs +0 -90
  217. package/esm2020/ngx-utils/directives/pagination.directive.mjs +0 -84
  218. package/esm2020/ngx-utils/directives/resource-if.directive.mjs +0 -50
  219. package/esm2020/ngx-utils/directives/sticky-class.directive.mjs +0 -34
  220. package/esm2020/ngx-utils/ngx-utils.module.mjs +0 -204
  221. package/esm2020/ngx-utils/pipes/chunk.pipe.mjs +0 -25
  222. package/esm2020/ngx-utils/pipes/filter.pipe.mjs +0 -37
  223. package/esm2020/ngx-utils/pipes/find.pipe.mjs +0 -29
  224. package/esm2020/ngx-utils/pipes/global-template.pipe.mjs +0 -41
  225. package/esm2020/ngx-utils/pipes/remap.pipe.mjs +0 -32
  226. package/esm2020/ngx-utils/pipes/reverse.pipe.mjs +0 -24
  227. package/esm2020/ngx-utils/pipes/safe-html.pipe.mjs +0 -34
  228. package/esm2020/ngx-utils/pipes/translate.pipe.mjs +0 -86
  229. package/esm2020/ngx-utils/plugins/resize-event.plugin.mjs +0 -78
  230. package/esm2020/ngx-utils/plugins/scroll-event.plugin.mjs +0 -39
  231. package/esm2020/ngx-utils/services/api.service.mjs +0 -42
  232. package/esm2020/ngx-utils/services/base-http.client.mjs +0 -47
  233. package/esm2020/ngx-utils/services/base-http.service.mjs +0 -305
  234. package/esm2020/ngx-utils/services/config.service.mjs +0 -130
  235. package/esm2020/ngx-utils/services/error-handler.service.mjs +0 -49
  236. package/esm2020/ngx-utils/services/global-template.service.mjs +0 -37
  237. package/esm2020/ngx-utils/services/icon.service.mjs +0 -26
  238. package/esm2020/ngx-utils/services/language.service.mjs +0 -124
  239. package/esm2020/ngx-utils/services/state.service.mjs +0 -173
  240. package/esm2020/ngx-utils/services/storage.service.mjs +0 -49
  241. package/esm2020/ngx-utils/services/translated-url.serializer.mjs +0 -73
  242. package/esm2020/ngx-utils/services/universal.service.mjs +0 -81
  243. package/esm2020/ngx-utils/utils/ajax-request-handler.mjs +0 -40
  244. package/esm2020/ngx-utils/utils/array.utils.mjs +0 -107
  245. package/esm2020/ngx-utils/utils/auth.guard.mjs +0 -181
  246. package/esm2020/ngx-utils/utils/cached-factory.mjs +0 -30
  247. package/esm2020/ngx-utils/utils/canvas.utils.mjs +0 -388
  248. package/esm2020/ngx-utils/utils/date.utils.mjs +0 -29
  249. package/esm2020/ngx-utils/utils/file.utils.mjs +0 -90
  250. package/esm2020/ngx-utils/utils/geometry.mjs +0 -132
  251. package/esm2020/ngx-utils/utils/jsonfn.mjs +0 -45
  252. package/esm2020/ngx-utils/utils/loader.utils.mjs +0 -55
  253. package/esm2020/ngx-utils/utils/math.utils.mjs +0 -44
  254. package/esm2020/ngx-utils/utils/object.utils.mjs +0 -320
  255. package/esm2020/ngx-utils/utils/reflect.utils.mjs +0 -33
  256. package/esm2020/ngx-utils/utils/set.utils.mjs +0 -20
  257. package/esm2020/ngx-utils/utils/string.utils.mjs +0 -41
  258. package/esm2020/ngx-utils/utils/unique.utils.mjs +0 -24
  259. package/esm2020/ngx-utils/utils/vector.mjs +0 -77
  260. package/esm2020/ngx-utils/utils/wasi.mjs +0 -159
  261. package/esm2020/ngx-utils/utils/wasm-worker-proxy.mjs +0 -99
  262. package/esm2020/tools/config.mjs +0 -71
  263. package/fesm2015/stemy-ngx-utils-tools.mjs +0 -77
  264. package/fesm2015/stemy-ngx-utils.mjs +0 -5891
  265. package/fesm2015/stemy-ngx-utils.mjs.map +0 -1
  266. package/fesm2020/stemy-ngx-utils-tools.mjs.map +0 -1
  267. package/fesm2020/stemy-ngx-utils.mjs.map +0 -1
  268. package/tools/package.json +0 -10
@@ -1,159 +0,0 @@
1
- import { Injectable } from "@angular/core";
2
- import * as i0 from "@angular/core";
3
- export class Wasi {
4
- constructor() {
5
- this.env = {};
6
- this.instantiated = false;
7
- this.wasi = [
8
- "emscripten_notify_memory_growth",
9
- "proc_exit",
10
- "environ_get",
11
- "environ_sizes_get",
12
- "fd_close",
13
- "fd_write",
14
- "fd_read",
15
- "fd_seek",
16
- ].reduce((res, key) => {
17
- if (typeof this[key] === "function") {
18
- res[key] = this[key].bind(this);
19
- }
20
- return res;
21
- }, {});
22
- }
23
- instantiate(bytes) {
24
- if (this.instantiated) {
25
- throw new Error("WASI already instantiated");
26
- }
27
- this.instantiated = true;
28
- return WebAssembly.instantiate(bytes, {
29
- wasi_snapshot_preview1: this.wasi,
30
- env: this.wasi
31
- }).then(module => {
32
- const exports = module.instance.exports;
33
- this.wasm = {
34
- ...exports,
35
- writeArrayToMemory: (array) => {
36
- const bytes = array.length * array.BYTES_PER_ELEMENT;
37
- const pointer = exports.malloc(bytes);
38
- const ctr = array.constructor;
39
- const heapArray = new ctr(this.wasm.memory.buffer, pointer, array.length);
40
- heapArray.set(array);
41
- return pointer;
42
- },
43
- readArrayFromMemory: (pointer, array) => {
44
- const ctr = array.constructor;
45
- const heapArray = new ctr(this.wasm.memory.buffer, pointer, array.length);
46
- array.set(heapArray);
47
- return array;
48
- }
49
- };
50
- this.updateMemoryViews();
51
- return this.wasm;
52
- });
53
- }
54
- updateMemoryViews() {
55
- const buffer = this.wasm.memory.buffer;
56
- this.wasm.HEAP8 = new Int8Array(buffer);
57
- this.wasm.HEAP16 = new Int16Array(buffer);
58
- this.wasm.HEAP32 = new Int32Array(buffer);
59
- this.wasm.HEAPU8 = new Uint8Array(buffer);
60
- this.wasm.HEAPU16 = new Uint16Array(buffer);
61
- this.wasm.HEAPU32 = new Uint32Array(buffer);
62
- this.wasm.HEAPF32 = new Float32Array(buffer);
63
- this.wasm.HEAPF64 = new Float64Array(buffer);
64
- }
65
- getEnvStrings() {
66
- if (!this.envStrings) {
67
- let x;
68
- const env = {};
69
- for (x in this.env) {
70
- if (this.env[x] === undefined)
71
- delete env[x];
72
- else
73
- env[x] = this.env[x];
74
- }
75
- const strings = [];
76
- for (x in env) {
77
- strings.push(x + "=" + env[x]);
78
- }
79
- this.envStrings = strings;
80
- }
81
- return this.envStrings;
82
- }
83
- stringToAscii(str, buffer) {
84
- const HEAP8 = this.wasm.HEAP8;
85
- for (let i = 0; i < str.length; ++i) {
86
- HEAP8[buffer++ >> 0] = str.charCodeAt(i);
87
- }
88
- HEAP8[buffer >> 0] = 0;
89
- }
90
- emscripten_notify_memory_growth(memoryIndex) {
91
- this.updateMemoryViews();
92
- }
93
- proc_exit(rval) {
94
- console.log("proc_exit", rval);
95
- }
96
- environ_get(environ, environ_buf) {
97
- if (!this.wasm.HEAP8.byteLength) {
98
- this.emscripten_notify_memory_growth(0);
99
- }
100
- const HEAPU32 = this.wasm.HEAPU32;
101
- let bufSize = 0;
102
- this.getEnvStrings().forEach((str, i) => {
103
- const ptr = environ_buf + bufSize;
104
- HEAPU32[environ + i * 4 >> 2] = ptr;
105
- this.stringToAscii(str, ptr);
106
- bufSize += str.length + 1;
107
- });
108
- return 0;
109
- }
110
- environ_sizes_get(penviron_count, penviron_buf_size) {
111
- if (!this.wasm.HEAP8.byteLength) {
112
- this.emscripten_notify_memory_growth(0);
113
- }
114
- const HEAPU32 = this.wasm.HEAPU32;
115
- const strings = this.getEnvStrings();
116
- HEAPU32[penviron_count >> 2] = strings.length;
117
- let bufSize = 0;
118
- strings.forEach(function (string) {
119
- bufSize += string.length + 1;
120
- });
121
- HEAPU32[penviron_buf_size >> 2] = bufSize;
122
- // WASI_ESUCCESS
123
- return 0;
124
- }
125
- fd_close(fd) {
126
- // WASI_ESUCCESS
127
- return 0;
128
- }
129
- fd_write(fd, iovs, iovs_len, nwritten) {
130
- if (fd !== 1) {
131
- // WASI_EBADF
132
- return 8;
133
- }
134
- if (iovs_len !== 1) {
135
- // WASI_ENOSYS
136
- return 52;
137
- }
138
- this.wasm.HEAPU32[nwritten >> 2] = this.wasm.HEAPU32[iovs + 4 >> 2];
139
- // WASI_ESUCCESS
140
- return 0;
141
- }
142
- fd_read(fd, iovs, iovs_len, nread) {
143
- // WASI_EINVAL
144
- return 28;
145
- }
146
- fd_seek(fd, offset, whence, newOffset) {
147
- // WASI_EINVAL
148
- return 28;
149
- }
150
- }
151
- Wasi.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: Wasi, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
152
- Wasi.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: Wasi, providedIn: "root" });
153
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: Wasi, decorators: [{
154
- type: Injectable,
155
- args: [{
156
- providedIn: "root"
157
- }]
158
- }], ctorParameters: function () { return []; } });
159
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FzaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9uZ3gtdXRpbHMvdXRpbHMvd2FzaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDOztBQU16QyxNQUFNLE9BQU8sSUFBSTtJQVFiO1FBQ0ksSUFBSSxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUM7UUFDZCxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztRQUMxQixJQUFJLENBQUMsSUFBSSxHQUFHO1lBQ1IsaUNBQWlDO1lBQ2pDLFdBQVc7WUFDWCxhQUFhO1lBQ2IsbUJBQW1CO1lBQ25CLFVBQVU7WUFDVixVQUFVO1lBQ1YsU0FBUztZQUNULFNBQVM7U0FDWixDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRTtZQUNsQixJQUFJLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLFVBQVUsRUFBRTtnQkFDakMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDbkM7WUFDRCxPQUFPLEdBQUcsQ0FBQztRQUNmLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBa0I7UUFDMUIsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ25CLE1BQU0sSUFBSSxLQUFLLENBQUMsMkJBQTJCLENBQUMsQ0FBQztTQUNoRDtRQUNELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1FBQ3pCLE9BQU8sV0FBVyxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUU7WUFDbEMsc0JBQXNCLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDakMsR0FBRyxFQUFFLElBQUksQ0FBQyxJQUFJO1NBQ2pCLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVB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QUM7SUFFRCxRQUFRLENBQUMsRUFBVSxFQUFFLElBQVksRUFBRSxRQUFnQixFQUFFLFFBQWdCO1FBQ2pFLElBQUksRUFBRSxLQUFLLENBQUMsRUFBRTtZQUNWLGFBQWE7WUFDYixPQUFPLENBQUMsQ0FBQztTQUNaO1FBQ0QsSUFBSSxRQUFRLEtBQUssQ0FBQyxFQUFFO1lBQ2hCLGNBQWM7WUFDZCxPQUFPLEVBQUUsQ0FBQztTQUNiO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDcEUsZ0JBQWdCO1FBQ2hCLE9BQU8sQ0FBQyxDQUFDO0lBQ2IsQ0FBQztJQUVELE9BQU8sQ0FBQyxFQUFVLEVBQUUsSUFBWSxFQUFFLFFBQWdCLEVBQUUsS0FBYTtRQUM3RCxjQUFjO1FBQ2QsT0FBTyxFQUFFLENBQUM7SUFDZCxDQUFDO0lBRUQsT0FBTyxDQUFDLEVBQVUsRUFBRSxNQUFjLEVBQUUsTUFBYyxFQUFFLFNBQWlCO1FBQ2pFLGNBQWM7UUFDZCxPQUFPLEVBQUUsQ0FBQztJQUNkLENBQUM7O2lHQWxLUSxJQUFJO3FHQUFKLElBQUksY0FGRCxNQUFNOzJGQUVULElBQUk7a0JBSGhCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge0lXYXNpLCBJV2FzbUV4cG9ydHMsIFR5cGVkQXJyYXl9IGZyb20gXCIuLi9jb21tb24tdHlwZXNcIjtcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46IFwicm9vdFwiXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBXYXNpIGltcGxlbWVudHMgSVdhc2kge1xyXG5cclxuICAgIHByb3RlY3RlZCBlbnY6IHtba2V5OiBzdHJpbmddOiBzdHJpbmd9O1xyXG4gICAgcHJvdGVjdGVkIGluc3RhbnRpYXRlZDogYm9vbGVhbjtcclxuICAgIHByb3RlY3RlZCB3YXNpOiBhbnk7XHJcbiAgICBwcm90ZWN0ZWQgd2FzbTogSVdhc21FeHBvcnRzO1xyXG4gICAgcHJvdGVjdGVkIGVudlN0cmluZ3M6IHN0cmluZ1tdO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgICAgIHRoaXMuZW52ID0ge307XHJcbiAgICAgICAgdGhpcy5pbnN0YW50aWF0ZWQgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLndhc2kgPSBbXHJcbiAgICAgICAgICAgIFwiZW1zY3JpcHRlbl9ub3RpZnlfbWVtb3J5X2dyb3d0aFwiLFxyXG4gICAgICAgICAgICBcInByb2NfZXhpdFwiLFxyXG4gICAgICAgICAgICBcImVudmlyb25fZ2V0XCIsXHJcbiAgICAgICAgICAgIFwiZW52aXJvbl9zaXplc19nZXRcIixcclxuICAgICAgICAgICAgXCJmZF9jbG9zZVwiLFxyXG4gICAgICAgICAgICBcImZkX3dyaXRlXCIsXHJcbiAgICAgICAgICAgIFwiZmRfcmVhZFwiLFxyXG4gICAgICAgICAgICBcImZkX3NlZWtcIixcclxuICAgICAgICBdLnJlZHVjZSgocmVzLCBrZXkpID0+IHtcclxuICAgICAgICAgICAgaWYgKHR5cGVvZiB0aGlzW2tleV0gPT09IFwiZnVuY3Rpb25cIikge1xyXG4gICAgICAgICAgICAgICAgcmVzW2tleV0gPSB0aGlzW2tleV0uYmluZCh0aGlzKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gcmVzO1xyXG4gICAgICAgIH0sIHt9KTtcclxuICAgIH1cclxuXHJcbiAgICBpbnN0YW50aWF0ZShieXRlczogQXJyYXlCdWZmZXIpOiBQcm9taXNlPElXYXNtRXhwb3J0cz4ge1xyXG4gICAgICAgIGlmICh0aGlzLmluc3RhbnRpYXRlZCkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJXQVNJIGFscmVhZHkgaW5zdGFudGlhdGVkXCIpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmluc3RhbnRpYXRlZCA9IHRydWU7XHJcbiAgICAgICAgcmV0dXJuIFdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlKGJ5dGVzLCB7XHJcbiAgICAgICAgICAgIHdhc2lfc25hcHNob3RfcHJldmlldzE6IHRoaXMud2FzaSxcclxuICAgICAgICAgICAgZW52OiB0aGlzLndhc2lcclxuICAgICAgICB9KS50aGVuKG1vZHVsZSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGV4cG9ydHMgPSBtb2R1bGUuaW5zdGFuY2UuZXhwb3J0cyBhcyBhbnk7XHJcbiAgICAgICAgICAgIHRoaXMud2FzbSA9IHtcclxuICAgICAgICAgICAgICAgIC4uLmV4cG9ydHMsXHJcbiAgICAgICAgICAgICAgICB3cml0ZUFycmF5VG9NZW1vcnk6IChhcnJheTogVHlwZWRBcnJheSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJ5dGVzID0gYXJyYXkubGVuZ3RoICogYXJyYXkuQllURVNfUEVSX0VMRU1FTlQ7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcG9pbnRlciA9IGV4cG9ydHMubWFsbG9jKGJ5dGVzKTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBjdHIgPSBhcnJheS5jb25zdHJ1Y3RvciBhcyBhbnk7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaGVhcEFycmF5ID0gbmV3IGN0cih0aGlzLndhc20ubWVtb3J5LmJ1ZmZlciwgcG9pbnRlciwgYXJyYXkubGVuZ3RoKTtcclxuICAgICAgICAgICAgICAgICAgICBoZWFwQXJyYXkuc2V0KGFycmF5KTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcG9pbnRlcjtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICByZWFkQXJyYXlGcm9tTWVtb3J5OiAocG9pbnRlcjogbnVtYmVyLCBhcnJheTogVHlwZWRBcnJheSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGN0ciA9IGFycmF5LmNvbnN0cnVjdG9yIGFzIGFueTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBoZWFwQXJyYXkgPSBuZXcgY3RyKHRoaXMud2FzbS5tZW1vcnkuYnVmZmVyLCBwb2ludGVyLCBhcnJheS5sZW5ndGgpO1xyXG4gICAgICAgICAgICAgICAgICAgIGFycmF5LnNldChoZWFwQXJyYXkpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBhcnJheTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSBhcyBJV2FzbUV4cG9ydHM7XHJcbiAgICAgICAgICAgIHRoaXMudXBkYXRlTWVtb3J5Vmlld3MoKTtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMud2FzbTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgdXBkYXRlTWVtb3J5Vmlld3MoKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgYnVmZmVyID0gdGhpcy53YXNtLm1lbW9yeS5idWZmZXI7XHJcbiAgICAgICAgdGhpcy53YXNtLkhFQVA4ID0gbmV3IEludDhBcnJheShidWZmZXIpO1xyXG4gICAgICAgIHRoaXMud2FzbS5IRUFQMTYgPSBuZXcgSW50MTZBcnJheShidWZmZXIpO1xyXG4gICAgICAgIHRoaXMud2FzbS5IRUFQMzIgPSBuZXcgSW50MzJBcnJheShidWZmZXIpO1xyXG4gICAgICAgIHRoaXMud2FzbS5IRUFQVTggPSBuZXcgVWludDhBcnJheShidWZmZXIpO1xyXG4gICAgICAgIHRoaXMud2FzbS5IRUFQVTE2ID0gbmV3IFVpbnQxNkFycmF5KGJ1ZmZlcik7XHJcbiAgICAgICAgdGhpcy53YXNtLkhFQVBVMzIgPSBuZXcgVWludDMyQXJyYXkoYnVmZmVyKTtcclxuICAgICAgICB0aGlzLndhc20uSEVBUEYzMiA9IG5ldyBGbG9hdDMyQXJyYXkoYnVmZmVyKTtcclxuICAgICAgICB0aGlzLndhc20uSEVBUEY2NCA9IG5ldyBGbG9hdDY0QXJyYXkoYnVmZmVyKTtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgZ2V0RW52U3RyaW5ncygpOiBzdHJpbmdbXSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmVudlN0cmluZ3MpIHtcclxuICAgICAgICAgICAgbGV0IHg7XHJcbiAgICAgICAgICAgIGNvbnN0IGVudiA9IHt9O1xyXG4gICAgICAgICAgICBmb3IgKHggaW4gdGhpcy5lbnYpIHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmVudlt4XSA9PT0gdW5kZWZpbmVkKSBkZWxldGUgZW52W3hdOyBlbHNlIGVudlt4XSA9IHRoaXMuZW52W3hdXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29uc3Qgc3RyaW5ncyA9IFtdO1xyXG4gICAgICAgICAgICBmb3IgKHggaW4gZW52KSB7XHJcbiAgICAgICAgICAgICAgICBzdHJpbmdzLnB1c2goeCArIFwiPVwiICsgZW52W3hdKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuZW52U3RyaW5ncyA9IHN0cmluZ3NcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZW52U3RyaW5ncztcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgc3RyaW5nVG9Bc2NpaShzdHIsIGJ1ZmZlcikge1xyXG4gICAgICAgIGNvbnN0IEhFQVA4ID0gdGhpcy53YXNtLkhFQVA4O1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc3RyLmxlbmd0aDsgKytpKSB7XHJcbiAgICAgICAgICAgIEhFQVA4W2J1ZmZlcisrID4+IDBdID0gc3RyLmNoYXJDb2RlQXQoaSlcclxuICAgICAgICB9XHJcbiAgICAgICAgSEVBUDhbYnVmZmVyID4+IDBdID0gMFxyXG4gICAgfVxyXG5cclxuICAgIGVtc2NyaXB0ZW5fbm90aWZ5X21lbW9yeV9ncm93dGgobWVtb3J5SW5kZXg6IG51bWJlcik6IHZvaWQge1xyXG4gICAgICAgIHRoaXMudXBkYXRlTWVtb3J5Vmlld3MoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcm9jX2V4aXQocnZhbDogbnVtYmVyKTogdm9pZCB7XHJcbiAgICAgICAgY29uc29sZS5sb2coXCJwcm9jX2V4aXRcIiwgcnZhbCk7XHJcbiAgICB9XHJcblxyXG4gICAgZW52aXJvbl9nZXQoZW52aXJvbjogbnVtYmVyLCBlbnZpcm9uX2J1ZjogbnVtYmVyKTogbnVtYmVyIHtcclxuICAgICAgICBpZiAoIXRoaXMud2FzbS5IRUFQOC5ieXRlTGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZW1zY3JpcHRlbl9ub3RpZnlfbWVtb3J5X2dyb3d0aCgwKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgSEVBUFUzMiA9IHRoaXMud2FzbS5IRUFQVTMyO1xyXG4gICAgICAgIGxldCBidWZTaXplID0gMDtcclxuICAgICAgICB0aGlzLmdldEVudlN0cmluZ3MoKS5mb3JFYWNoKChzdHI6IHN0cmluZywgaTogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IHB0ciA9IGVudmlyb25fYnVmICsgYnVmU2l6ZTtcclxuICAgICAgICAgICAgSEVBUFUzMltlbnZpcm9uICsgaSAqIDQgPj4gMl0gPSBwdHI7XHJcbiAgICAgICAgICAgIHRoaXMuc3RyaW5nVG9Bc2NpaShzdHIsIHB0cik7XHJcbiAgICAgICAgICAgIGJ1ZlNpemUgKz0gc3RyLmxlbmd0aCArIDFcclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm4gMFxyXG4gICAgfVxyXG5cclxuICAgIGVudmlyb25fc2l6ZXNfZ2V0KHBlbnZpcm9uX2NvdW50OiBudW1iZXIsIHBlbnZpcm9uX2J1Zl9zaXplOiBudW1iZXIpOiBudW1iZXIge1xyXG4gICAgICAgIGlmICghdGhpcy53YXNtLkhFQVA4LmJ5dGVMZW5ndGgpIHtcclxuICAgICAgICAgICAgdGhpcy5lbXNjcmlwdGVuX25vdGlmeV9tZW1vcnlfZ3Jvd3RoKDApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBIRUFQVTMyID0gdGhpcy53YXNtLkhFQVBVMzI7XHJcbiAgICAgICAgY29uc3Qgc3RyaW5ncyA9IHRoaXMuZ2V0RW52U3RyaW5ncygpO1xyXG4gICAgICAgIEhFQVBVMzJbcGVudmlyb25fY291bnQgPj4gMl0gPSBzdHJpbmdzLmxlbmd0aDtcclxuICAgICAgICBsZXQgYnVmU2l6ZSA9IDA7XHJcbiAgICAgICAgc3RyaW5ncy5mb3JFYWNoKGZ1bmN0aW9uIChzdHJpbmcpIHtcclxuICAgICAgICAgICAgYnVmU2l6ZSArPSBzdHJpbmcubGVuZ3RoICsgMVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIEhFQVBVMzJbcGVudmlyb25fYnVmX3NpemUgPj4gMl0gPSBidWZTaXplO1xyXG4gICAgICAgIC8vIFdBU0lfRVNVQ0NFU1NcclxuICAgICAgICByZXR1cm4gMFxyXG4gICAgfVxyXG5cclxuICAgIGZkX2Nsb3NlKGZkOiBudW1iZXIpOiBudW1iZXIge1xyXG4gICAgICAgIC8vIFdBU0lfRVNVQ0NFU1NcclxuICAgICAgICByZXR1cm4gMDtcclxuICAgIH1cclxuXHJcbiAgICBmZF93cml0ZShmZDogbnVtYmVyLCBpb3ZzOiBudW1iZXIsIGlvdnNfbGVuOiBudW1iZXIsIG53cml0dGVuOiBudW1iZXIpOiBudW1iZXIge1xyXG4gICAgICAgIGlmIChmZCAhPT0gMSkge1xyXG4gICAgICAgICAgICAvLyBXQVNJX0VCQURGXHJcbiAgICAgICAgICAgIHJldHVybiA4O1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoaW92c19sZW4gIT09IDEpIHtcclxuICAgICAgICAgICAgLy8gV0FTSV9FTk9TWVNcclxuICAgICAgICAgICAgcmV0dXJuIDUyO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLndhc20uSEVBUFUzMltud3JpdHRlbiA+PiAyXSA9IHRoaXMud2FzbS5IRUFQVTMyW2lvdnMgKyA0ID4+IDJdO1xyXG4gICAgICAgIC8vIFdBU0lfRVNVQ0NFU1NcclxuICAgICAgICByZXR1cm4gMDtcclxuICAgIH1cclxuXHJcbiAgICBmZF9yZWFkKGZkOiBudW1iZXIsIGlvdnM6IG51bWJlciwgaW92c19sZW46IG51bWJlciwgbnJlYWQ6IG51bWJlcik6IG51bWJlciB7XHJcbiAgICAgICAgLy8gV0FTSV9FSU5WQUxcclxuICAgICAgICByZXR1cm4gMjg7XHJcbiAgICB9XHJcblxyXG4gICAgZmRfc2VlayhmZDogbnVtYmVyLCBvZmZzZXQ6IG51bWJlciwgd2hlbmNlOiBudW1iZXIsIG5ld09mZnNldDogbnVtYmVyKTogbnVtYmVyIHtcclxuICAgICAgICAvLyBXQVNJX0VJTlZBTFxyXG4gICAgICAgIHJldHVybiAyODtcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -1,99 +0,0 @@
1
- import { JSONfn } from "./jsonfn";
2
- export function workerFunction(JSONfn, logTimes) {
3
- let wasmResolve = null;
4
- const wasmInstance = new Promise(resolve => {
5
- wasmResolve = resolve;
6
- });
7
- self.onmessage = function (e) {
8
- const data = e.data;
9
- const { type, payload } = data;
10
- switch (type) {
11
- case "wasm":
12
- const { url, wasi } = payload;
13
- fetch(url).then(response => response.arrayBuffer()).then(bytes => {
14
- const wasiImpl = JSONfn.parse(wasi);
15
- return new wasiImpl().instantiate(bytes);
16
- }).then(instance => {
17
- wasmResolve(instance);
18
- const methods = Object.getOwnPropertyNames(instance).filter(key => typeof instance[key] === "function");
19
- self.postMessage({ type: "methods", payload: methods });
20
- });
21
- break;
22
- case "call":
23
- wasmInstance.then(instance => {
24
- const { name, id, args } = payload;
25
- if (logTimes) {
26
- console.time(id);
27
- console.timeLog(id, `Calling ${name} ...`);
28
- }
29
- const func = instance[name];
30
- const result = func(...args);
31
- if (logTimes) {
32
- console.timeLog(id, `Called ${name}`);
33
- console.timeEnd(id);
34
- }
35
- self.postMessage({ type: "result", payload: { id, result } });
36
- });
37
- break;
38
- }
39
- };
40
- }
41
- export class WasmWorkerProxy {
42
- constructor(wasmPath, wasi, logTimes = false) {
43
- this.methods = new Promise(resolve => {
44
- this.onMethods = resolve;
45
- });
46
- const lt = logTimes ? "true" : "false";
47
- const blob = new Blob([`${JSONfn.toString()} (${workerFunction.toString()})(JSONfn, ${lt})`], { type: 'application/javascript' });
48
- this.worker = new Worker(URL.createObjectURL(blob));
49
- this.worker.postMessage({
50
- type: "wasm",
51
- payload: { url: wasmPath, wasi: JSONfn.stringify(wasi), logTimes }
52
- });
53
- this.worker.onmessage = this.onMessage.bind(this);
54
- this.promises = new Map();
55
- return new Proxy(this, {
56
- get: (target, prop, receiver) => {
57
- const res = Reflect.get(target, prop, receiver);
58
- if (res) {
59
- return res;
60
- }
61
- return (...args) => {
62
- return this.call(prop.toString(), args);
63
- };
64
- }
65
- });
66
- }
67
- onMessage(e) {
68
- const data = e.data;
69
- const { type, payload } = data;
70
- switch (type) {
71
- case "methods":
72
- this.onMethods(payload);
73
- break;
74
- case "result":
75
- const { id, result } = payload;
76
- const promise = this.promises.get(id);
77
- if (promise) {
78
- promise.resolve(result);
79
- this.promises.delete(id);
80
- }
81
- break;
82
- }
83
- }
84
- async call(method, args) {
85
- const methods = await this.methods;
86
- if (!methods.includes(method)) {
87
- throw new Error(`Method ${method} not found`);
88
- }
89
- return new Promise((resolve, reject) => {
90
- const id = Math.random().toString(36).substring(2, 9);
91
- this.worker.postMessage({
92
- type: "call",
93
- payload: { name: method, id, args }
94
- });
95
- this.promises.set(id, { resolve, reject });
96
- });
97
- }
98
- }
99
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FzbS13b3JrZXItcHJveHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbmd4LXV0aWxzL3V0aWxzL3dhc20td29ya2VyLXByb3h5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFPaEMsTUFBTSxVQUFVLGNBQWMsQ0FBQyxNQUFXLEVBQUUsUUFBaUI7SUFFekQsSUFBSSxXQUFXLEdBQXFDLElBQUksQ0FBQztJQUN6RCxNQUFNLFlBQVksR0FBMEIsSUFBSSxPQUFPLENBQWUsT0FBTyxDQUFDLEVBQUU7UUFDNUUsV0FBVyxHQUFHLE9BQU8sQ0FBQztJQUMxQixDQUFDLENBQUMsQ0FBQztJQUVILElBQUksQ0FBQyxTQUFTLEdBQUcsVUFBVSxDQUFDO1FBQ3hCLE1BQU0sSUFBSSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDcEIsTUFBTSxFQUFDLElBQUksRUFBRSxPQUFPLEVBQUMsR0FBRyxJQUFJLENBQUM7UUFDN0IsUUFBUSxJQUFJLEVBQUU7WUFDVixLQUFLLE1BQU07Z0JBQ1AsTUFBTSxFQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUMsR0FBRyxPQUFPLENBQUM7Z0JBQzVCLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUU7b0JBQzdELE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ3BDLE9BQU8sSUFBSSxRQUFRLEVBQUUsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzdDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRTtvQkFDZixXQUFXLENBQUMsUUFBUSxDQUFDLENBQUM7b0JBQ3RCLE1BQU0sT0FB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QUFDO1NBQ2pEO1FBQ0QsT0FBTyxJQUFJLE9BQU8sQ0FBTSxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUN4QyxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDdEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUM7Z0JBQ3BCLElBQUksRUFBRSxNQUFNO2dCQUNaLE9BQU8sRUFBRSxFQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBQzthQUNwQyxDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBQyxPQUFPLEVBQUUsTUFBTSxFQUFDLENBQUMsQ0FBQztRQUM3QyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SVdhc2ksIElXYXNtRXhwb3J0c30gZnJvbSBcIi4uL2NvbW1vbi10eXBlc1wiO1xyXG5pbXBvcnQge1R5cGV9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7SlNPTmZufSBmcm9tIFwiLi9qc29uZm5cIjtcclxuXHJcbmludGVyZmFjZSBJUHJvbWlzZUV4ZWN1dG9yIHtcclxuICAgIHJlc29sdmU6ICh2YWx1ZT86IGFueSkgPT4gdm9pZDtcclxuICAgIHJlamVjdDogKHJlYXNvbj86IGFueSkgPT4gdm9pZDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHdvcmtlckZ1bmN0aW9uKEpTT05mbjogYW55LCBsb2dUaW1lczogYm9vbGVhbik6IHZvaWQge1xyXG5cclxuICAgIGxldCB3YXNtUmVzb2x2ZTogKGluc3RhbmNlOiBJV2FzbUV4cG9ydHMpID0+IHZvaWQgPSBudWxsO1xyXG4gICAgY29uc3Qgd2FzbUluc3RhbmNlOiBQcm9taXNlPElXYXNtRXhwb3J0cz4gPSBuZXcgUHJvbWlzZTxJV2FzbUV4cG9ydHM+KHJlc29sdmUgPT4ge1xyXG4gICAgICAgIHdhc21SZXNvbHZlID0gcmVzb2x2ZTtcclxuICAgIH0pO1xyXG5cclxuICAgIHNlbGYub25tZXNzYWdlID0gZnVuY3Rpb24gKGUpIHtcclxuICAgICAgICBjb25zdCBkYXRhID0gZS5kYXRhO1xyXG4gICAgICAgIGNvbnN0IHt0eXBlLCBwYXlsb2FkfSA9IGRhdGE7XHJcbiAgICAgICAgc3dpdGNoICh0eXBlKSB7XHJcbiAgICAgICAgICAgIGNhc2UgXCJ3YXNtXCI6XHJcbiAgICAgICAgICAgICAgICBjb25zdCB7dXJsLCB3YXNpfSA9IHBheWxvYWQ7XHJcbiAgICAgICAgICAgICAgICBmZXRjaCh1cmwpLnRoZW4ocmVzcG9uc2UgPT4gcmVzcG9uc2UuYXJyYXlCdWZmZXIoKSkudGhlbihieXRlcyA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgd2FzaUltcGwgPSBKU09OZm4ucGFyc2Uod2FzaSk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyB3YXNpSW1wbCgpLmluc3RhbnRpYXRlKGJ5dGVzKTtcclxuICAgICAgICAgICAgICAgIH0pLnRoZW4oaW5zdGFuY2UgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHdhc21SZXNvbHZlKGluc3RhbmNlKTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBtZXRob2RzID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoaW5zdGFuY2UpLmZpbHRlcihrZXkgPT4gdHlwZW9mIGluc3RhbmNlW2tleV0gPT09IFwiZnVuY3Rpb25cIik7XHJcbiAgICAgICAgICAgICAgICAgICAgc2VsZi5wb3N0TWVzc2FnZSh7dHlwZTogXCJtZXRob2RzXCIsIHBheWxvYWQ6IG1ldGhvZHN9KTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgXCJjYWxsXCI6XHJcbiAgICAgICAgICAgICAgICB3YXNtSW5zdGFuY2UudGhlbihpbnN0YW5jZSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qge25hbWUsIGlkLCBhcmdzfSA9IHBheWxvYWQ7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGxvZ1RpbWVzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUudGltZShpZCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUudGltZUxvZyhpZCwgYENhbGxpbmcgJHtuYW1lfSAuLi5gKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZnVuYyA9IChpbnN0YW5jZVtuYW1lXSBhcyBGdW5jdGlvbik7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gZnVuYyguLi5hcmdzKTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAobG9nVGltZXMpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS50aW1lTG9nKGlkLCBgQ2FsbGVkICR7bmFtZX1gKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS50aW1lRW5kKGlkKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgc2VsZi5wb3N0TWVzc2FnZSh7dHlwZTogXCJyZXN1bHRcIiwgcGF5bG9hZDoge2lkLCByZXN1bHR9fSk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBXYXNtV29ya2VyUHJveHkge1xyXG5cclxuICAgIHByb3RlY3RlZCBtZXRob2RzOiBQcm9taXNlPHN0cmluZ1tdPjtcclxuICAgIHByb3RlY3RlZCBvbk1ldGhvZHM6IChtZXRob2RzOiBzdHJpbmdbXSkgPT4gdm9pZDtcclxuICAgIHByb3RlY3RlZCB3b3JrZXI6IFdvcmtlcjtcclxuICAgIHByb3RlY3RlZCBwcm9taXNlczogTWFwPHN0cmluZywgSVByb21pc2VFeGVjdXRvcj47XHJcblxyXG4gICAgY29uc3RydWN0b3Iod2FzbVBhdGg6IHN0cmluZywgd2FzaTogVHlwZTxJV2FzaT4sIGxvZ1RpbWVzOiBib29sZWFuID0gZmFsc2UpIHtcclxuICAgICAgICB0aGlzLm1ldGhvZHMgPSBuZXcgUHJvbWlzZTxzdHJpbmdbXT4ocmVzb2x2ZSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMub25NZXRob2RzID0gcmVzb2x2ZTtcclxuICAgICAgICB9KTtcclxuICAgICAgICBjb25zdCBsdCA9IGxvZ1RpbWVzID8gXCJ0cnVlXCIgOiBcImZhbHNlXCI7XHJcbiAgICAgICAgY29uc3QgYmxvYiA9IG5ldyBCbG9iKFxyXG4gICAgICAgICAgICBbYCR7SlNPTmZuLnRvU3RyaW5nKCl9ICgke3dvcmtlckZ1bmN0aW9uLnRvU3RyaW5nKCl9KShKU09OZm4sICR7bHR9KWBdLFxyXG4gICAgICAgICAgICB7dHlwZTogJ2FwcGxpY2F0aW9uL2phdmFzY3JpcHQnfVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgdGhpcy53b3JrZXIgPSBuZXcgV29ya2VyKFVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYikpO1xyXG4gICAgICAgIHRoaXMud29ya2VyLnBvc3RNZXNzYWdlKHtcclxuICAgICAgICAgICAgdHlwZTogXCJ3YXNtXCIsXHJcbiAgICAgICAgICAgIHBheWxvYWQ6IHt1cmw6IHdhc21QYXRoLCB3YXNpOiBKU09OZm4uc3RyaW5naWZ5KHdhc2kpLCBsb2dUaW1lc31cclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLndvcmtlci5vbm1lc3NhZ2UgPSB0aGlzLm9uTWVzc2FnZS5iaW5kKHRoaXMpO1xyXG4gICAgICAgIHRoaXMucHJvbWlzZXMgPSBuZXcgTWFwPHN0cmluZywgSVByb21pc2VFeGVjdXRvcj4oKTtcclxuICAgICAgICByZXR1cm4gbmV3IFByb3h5KHRoaXMsIHtcclxuICAgICAgICAgICAgZ2V0OiAodGFyZ2V0LCBwcm9wLCByZWNlaXZlcikgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgcmVzID0gUmVmbGVjdC5nZXQodGFyZ2V0LCBwcm9wLCByZWNlaXZlcik7XHJcbiAgICAgICAgICAgICAgICBpZiAocmVzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlcztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHJldHVybiAoLi4uYXJnczogYW55W10pID0+IHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5jYWxsKHByb3AudG9TdHJpbmcoKSwgYXJncyk7XHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgb25NZXNzYWdlKGU6IE1lc3NhZ2VFdmVudCk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IGRhdGEgPSBlLmRhdGE7XHJcbiAgICAgICAgY29uc3Qge3R5cGUsIHBheWxvYWR9ID0gZGF0YTtcclxuICAgICAgICBzd2l0Y2ggKHR5cGUpIHtcclxuICAgICAgICAgICAgY2FzZSBcIm1ldGhvZHNcIjpcclxuICAgICAgICAgICAgICAgIHRoaXMub25NZXRob2RzKHBheWxvYWQpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgXCJyZXN1bHRcIjpcclxuICAgICAgICAgICAgICAgIGNvbnN0IHtpZCwgcmVzdWx0fSA9IHBheWxvYWQ7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBwcm9taXNlID0gdGhpcy5wcm9taXNlcy5nZXQoaWQpO1xyXG4gICAgICAgICAgICAgICAgaWYgKHByb21pc2UpIHtcclxuICAgICAgICAgICAgICAgICAgICBwcm9taXNlLnJlc29sdmUocmVzdWx0KTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnByb21pc2VzLmRlbGV0ZShpZCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgY2FsbChtZXRob2Q6IHN0cmluZywgYXJnczogYW55W10pOiBQcm9taXNlPGFueT4ge1xyXG4gICAgICAgIGNvbnN0IG1ldGhvZHMgPSBhd2FpdCB0aGlzLm1ldGhvZHM7XHJcbiAgICAgICAgaWYgKCFtZXRob2RzLmluY2x1ZGVzKG1ldGhvZCkpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBNZXRob2QgJHttZXRob2R9IG5vdCBmb3VuZGApO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbmV3IFByb21pc2U8YW55PigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGlkID0gTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsIDkpO1xyXG4gICAgICAgICAgICB0aGlzLndvcmtlci5wb3N0TWVzc2FnZSh7XHJcbiAgICAgICAgICAgICAgICB0eXBlOiBcImNhbGxcIixcclxuICAgICAgICAgICAgICAgIHBheWxvYWQ6IHtuYW1lOiBtZXRob2QsIGlkLCBhcmdzfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgdGhpcy5wcm9taXNlcy5zZXQoaWQsIHtyZXNvbHZlLCByZWplY3R9KTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -1,71 +0,0 @@
1
- export function isPrimitive(value) {
2
- const type = typeof value;
3
- return value == null || (type !== "object" && type !== "function");
4
- }
5
- export function isDate(value) {
6
- return null !== value && !isNaN(value) && "undefined" !== typeof value.getDate;
7
- }
8
- function convertValue(value, type) {
9
- switch (type) {
10
- case "boolean":
11
- value = typeof value == "string" ? value.toLowerCase() : value;
12
- return (value == "no" || value == "false" || value == "0") ? false : !!value;
13
- case "number":
14
- const val = parseFloat(value);
15
- return isNaN(val) ? 0 : val;
16
- }
17
- return value;
18
- }
19
- function getFromEnv(path, alternatives, value) {
20
- const name = path.replace(/\.?([A-Z|0-9]+)/g, function (x, y) {
21
- return "_" + y.toLowerCase();
22
- }).replace(/\./gi, "_").replace(/^_/, "").toUpperCase();
23
- const alts = Array.from(alternatives[name] || []);
24
- alts.unshift(name);
25
- for (const envName of alts) {
26
- const envValue = process.env[envName];
27
- if (typeof envValue !== "undefined") {
28
- const val = convertValue(envValue, typeof value);
29
- console.log(name, envName, val);
30
- return convertValue(envValue, typeof value);
31
- }
32
- }
33
- console.log(name, value);
34
- return value;
35
- }
36
- function createConfigRecursive(target, source, path, alternatives) {
37
- if (isPrimitive(source) || isDate(source)) {
38
- return getFromEnv(path, alternatives, source);
39
- }
40
- if (Array.isArray(source)) {
41
- target = Array.isArray(target) ? Array.from(target) : [];
42
- source.forEach((item, index) => {
43
- if (target.length > index)
44
- target[index] = createConfigRecursive(target[index], item, !path ? `${index}` : `${path}.${index}`, alternatives);
45
- else
46
- target.push(createConfigRecursive(null, item, !path ? `${index}` : `${path}.${index}`, alternatives));
47
- });
48
- return target;
49
- }
50
- return Object.keys(source).reduce((result, key) => {
51
- result[key] = createConfigRecursive(result[key], source[key], !path ? `${key}` : `${path}.${key}`, alternatives);
52
- return result;
53
- }, Object.assign({}, target));
54
- }
55
- export function parseConfig(config) {
56
- if (typeof config == "string") {
57
- try {
58
- config = JSON.parse(config);
59
- }
60
- catch (e) {
61
- return {};
62
- }
63
- }
64
- return config;
65
- }
66
- export function createConfig(config, alternatives) {
67
- alternatives = alternatives || {};
68
- console.log("Parsing config...");
69
- return createConfigRecursive(null, parseConfig(config), "", alternatives);
70
- }
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vdG9vbHMvY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sVUFBVSxXQUFXLENBQUMsS0FBVTtJQUNsQyxNQUFNLElBQUksR0FBRyxPQUFPLEtBQUssQ0FBQztJQUMxQixPQUFPLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssUUFBUSxJQUFJLElBQUksS0FBSyxVQUFVLENBQUMsQ0FBQztBQUN2RSxDQUFDO0FBRUQsTUFBTSxVQUFVLE1BQU0sQ0FBQyxLQUFVO0lBQzdCLE9BQU8sSUFBSSxLQUFLLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxXQUFXLEtBQUssT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDO0FBQ25GLENBQUM7QUFNRCxTQUFTLFlBQVksQ0FBQyxLQUFVLEVBQUUsSUFBWTtJQUMxQyxRQUFRLElBQUksRUFBRTtRQUNWLEtBQUssU0FBUztZQUNWLEtBQUssR0FBRyxPQUFPLEtBQUssSUFBSSxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1lBQy9ELE9BQU8sQ0FBQyxLQUFLLElBQUksSUFBSSxJQUFJLEtBQUssSUFBSSxPQUFPLElBQUksS0FBSyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDakYsS0FBSyxRQUFRO1lBQ1QsTUFBTSxHQUFHLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzlCLE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztLQUNuQztJQUNELE9BQU8sS0FBSyxDQUFDO0FBQ2pCLENBQUM7QUFFRCxTQUFTLFVBQVUsQ0FBQyxJQUFZLEVBQUUsWUFBc0MsRUFBRSxLQUFVO0lBQ2hGLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsa0JBQWtCLEVBQUUsVUFBVSxDQUFDLEVBQUMsQ0FBQztRQUN2RCxPQUFPLEdBQUcsR0FBRyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUE7SUFDaEMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3hELE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ2xELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbkIsS0FBSyxNQUFNLE9BQU8sSUFBSSxJQUFJLEVBQUU7UUFDeEIsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN0QyxJQUFJLE9BQU8sUUFBUSxLQUFLLFdBQVcsRUFBRTtZQUNqQyxNQUFNLEdBQUcsR0FBRyxZQUFZLENBQUMsUUFBUSxFQUFFLE9BQU8sS0FBSyxDQUFDLENBQUM7WUFDakQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQ2hDLE9BQU8sWUFBWSxDQUFDLFFBQVEsRUFBRSxPQUFPLEtBQUssQ0FBQyxDQUFDO1NBQy9DO0tBQ0o7SUFDRCxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN6QixPQUFPLEtBQUssQ0FBQztBQUNqQixDQUFDO0FBRUQsU0FBUyxxQkFBcUIsQ0FBQyxNQUFXLEVBQUUsTUFBVyxFQUFFLElBQVksRUFBRSxZQUFzQztJQUN6RyxJQUFJLFdBQVcsQ0FBQyxNQUFNLENBQUMsSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUU7UUFDdkMsT0FBTyxVQUFVLENBQUMsSUFBSSxFQUFFLFlBQVksRUFBRSxNQUFNLENBQUMsQ0FBQztLQUNqRDtJQUNELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRTtRQUN2QixNQUFNLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3pELE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDM0IsSUFBSSxNQUFNLENBQUMsTUFBTSxHQUFHLEtBQUs7Z0JBQ3JCLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksSUFBSSxLQUFLLEVBQUUsRUFBRSxZQUFZLENBQUMsQ0FBQzs7Z0JBRWxILE1BQU0sQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLElBQUksS0FBSyxFQUFFLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQztRQUM5RyxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sTUFBTSxDQUFDO0tBQ2pCO0lBQ0QsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsRUFBRTtRQUM5QyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcscUJBQXFCLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLElBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDakgsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7QUFDbEMsQ0FBQztBQUVELE1BQU0sVUFBVSxXQUFXLENBQUMsTUFBVztJQUNuQyxJQUFJLE9BQU8sTUFBTSxJQUFJLFFBQVEsRUFBRTtRQUMzQixJQUFJO1lBQ0EsTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDL0I7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNSLE9BQU8sRUFBRSxDQUFDO1NBQ2I7S0FDSjtJQUNELE9BQU8sTUFBTSxDQUFDO0FBQ2xCLENBQUM7QUFFRCxNQUFNLFVBQVUsWUFBWSxDQUFDLE1BQVcsRUFBRSxZQUF1QztJQUM3RSxZQUFZLEdBQUcsWUFBWSxJQUFJLEVBQUUsQ0FBQztJQUNsQyxPQUFPLENBQUMsR0FBRyxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDakMsT0FBTyxxQkFBcUIsQ0FBQyxJQUFJLEVBQUUsV0FBVyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsRUFBRSxZQUFZLENBQUMsQ0FBQztBQUM5RSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGlzUHJpbWl0aXZlKHZhbHVlOiBhbnkpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IHR5cGUgPSB0eXBlb2YgdmFsdWU7XHJcbiAgICByZXR1cm4gdmFsdWUgPT0gbnVsbCB8fCAodHlwZSAhPT0gXCJvYmplY3RcIiAmJiB0eXBlICE9PSBcImZ1bmN0aW9uXCIpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gaXNEYXRlKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBEYXRlIHtcclxuICAgIHJldHVybiBudWxsICE9PSB2YWx1ZSAmJiAhaXNOYU4odmFsdWUpICYmIFwidW5kZWZpbmVkXCIgIT09IHR5cGVvZiB2YWx1ZS5nZXREYXRlO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElFbnZpcm9ubWVudEFsdGVybmF0aXZlcyB7XHJcbiAgICBbbmFtZTogc3RyaW5nXTogc3RyaW5nW11cclxufVxyXG5cclxuZnVuY3Rpb24gY29udmVydFZhbHVlKHZhbHVlOiBhbnksIHR5cGU6IHN0cmluZyk6IGFueSB7XHJcbiAgICBzd2l0Y2ggKHR5cGUpIHtcclxuICAgICAgICBjYXNlIFwiYm9vbGVhblwiOlxyXG4gICAgICAgICAgICB2YWx1ZSA9IHR5cGVvZiB2YWx1ZSA9PSBcInN0cmluZ1wiID8gdmFsdWUudG9Mb3dlckNhc2UoKSA6IHZhbHVlO1xyXG4gICAgICAgICAgICByZXR1cm4gKHZhbHVlID09IFwibm9cIiB8fCB2YWx1ZSA9PSBcImZhbHNlXCIgfHwgdmFsdWUgPT0gXCIwXCIpID8gZmFsc2UgOiAhIXZhbHVlO1xyXG4gICAgICAgIGNhc2UgXCJudW1iZXJcIjpcclxuICAgICAgICAgICAgY29uc3QgdmFsID0gcGFyc2VGbG9hdCh2YWx1ZSk7XHJcbiAgICAgICAgICAgIHJldHVybiBpc05hTih2YWwpID8gMCA6IHZhbDtcclxuICAgIH1cclxuICAgIHJldHVybiB2YWx1ZTtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0RnJvbUVudihwYXRoOiBzdHJpbmcsIGFsdGVybmF0aXZlczogSUVudmlyb25tZW50QWx0ZXJuYXRpdmVzLCB2YWx1ZTogYW55KTogYW55IHtcclxuICAgIGNvbnN0IG5hbWUgPSBwYXRoLnJlcGxhY2UoL1xcLj8oW0EtWnwwLTldKykvZywgZnVuY3Rpb24gKHgseSl7XHJcbiAgICAgICAgcmV0dXJuIFwiX1wiICsgeS50b0xvd2VyQ2FzZSgpXHJcbiAgICB9KS5yZXBsYWNlKC9cXC4vZ2ksIFwiX1wiKS5yZXBsYWNlKC9eXy8sIFwiXCIpLnRvVXBwZXJDYXNlKCk7XHJcbiAgICBjb25zdCBhbHRzID0gQXJyYXkuZnJvbShhbHRlcm5hdGl2ZXNbbmFtZV0gfHwgW10pO1xyXG4gICAgYWx0cy51bnNoaWZ0KG5hbWUpO1xyXG4gICAgZm9yIChjb25zdCBlbnZOYW1lIG9mIGFsdHMpIHtcclxuICAgICAgICBjb25zdCBlbnZWYWx1ZSA9IHByb2Nlc3MuZW52W2Vudk5hbWVdO1xyXG4gICAgICAgIGlmICh0eXBlb2YgZW52VmFsdWUgIT09IFwidW5kZWZpbmVkXCIpIHtcclxuICAgICAgICAgICAgY29uc3QgdmFsID0gY29udmVydFZhbHVlKGVudlZhbHVlLCB0eXBlb2YgdmFsdWUpO1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhuYW1lLCBlbnZOYW1lLCB2YWwpO1xyXG4gICAgICAgICAgICByZXR1cm4gY29udmVydFZhbHVlKGVudlZhbHVlLCB0eXBlb2YgdmFsdWUpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGNvbnNvbGUubG9nKG5hbWUsIHZhbHVlKTtcclxuICAgIHJldHVybiB2YWx1ZTtcclxufVxyXG5cclxuZnVuY3Rpb24gY3JlYXRlQ29uZmlnUmVjdXJzaXZlKHRhcmdldDogYW55LCBzb3VyY2U6IGFueSwgcGF0aDogc3RyaW5nLCBhbHRlcm5hdGl2ZXM6IElFbnZpcm9ubWVudEFsdGVybmF0aXZlcyk6IGFueSB7XHJcbiAgICBpZiAoaXNQcmltaXRpdmUoc291cmNlKSB8fCBpc0RhdGUoc291cmNlKSkge1xyXG4gICAgICAgIHJldHVybiBnZXRGcm9tRW52KHBhdGgsIGFsdGVybmF0aXZlcywgc291cmNlKTtcclxuICAgIH1cclxuICAgIGlmIChBcnJheS5pc0FycmF5KHNvdXJjZSkpIHtcclxuICAgICAgICB0YXJnZXQgPSBBcnJheS5pc0FycmF5KHRhcmdldCkgPyBBcnJheS5mcm9tKHRhcmdldCkgOiBbXTtcclxuICAgICAgICBzb3VyY2UuZm9yRWFjaCgoaXRlbSwgaW5kZXgpID0+IHtcclxuICAgICAgICAgICAgaWYgKHRhcmdldC5sZW5ndGggPiBpbmRleClcclxuICAgICAgICAgICAgICAgIHRhcmdldFtpbmRleF0gPSBjcmVhdGVDb25maWdSZWN1cnNpdmUodGFyZ2V0W2luZGV4XSwgaXRlbSwgIXBhdGggPyBgJHtpbmRleH1gIDogYCR7cGF0aH0uJHtpbmRleH1gLCBhbHRlcm5hdGl2ZXMpO1xyXG4gICAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgICAgICB0YXJnZXQucHVzaChjcmVhdGVDb25maWdSZWN1cnNpdmUobnVsbCwgaXRlbSwgIXBhdGggPyBgJHtpbmRleH1gIDogYCR7cGF0aH0uJHtpbmRleH1gLCBhbHRlcm5hdGl2ZXMpKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm4gdGFyZ2V0O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKHNvdXJjZSkucmVkdWNlKChyZXN1bHQsIGtleSkgPT4ge1xyXG4gICAgICAgIHJlc3VsdFtrZXldID0gY3JlYXRlQ29uZmlnUmVjdXJzaXZlKHJlc3VsdFtrZXldLCBzb3VyY2Vba2V5XSwgIXBhdGggPyBgJHtrZXl9YCA6IGAke3BhdGh9LiR7a2V5fWAsIGFsdGVybmF0aXZlcyk7XHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH0sIE9iamVjdC5hc3NpZ24oe30sIHRhcmdldCkpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VDb25maWcoY29uZmlnOiBhbnkpOiBhbnkge1xyXG4gICAgaWYgKHR5cGVvZiBjb25maWcgPT0gXCJzdHJpbmdcIikge1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIGNvbmZpZyA9IEpTT04ucGFyc2UoY29uZmlnKTtcclxuICAgICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB7fTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gY29uZmlnO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQ29uZmlnKGNvbmZpZzogYW55LCBhbHRlcm5hdGl2ZXM/OiBJRW52aXJvbm1lbnRBbHRlcm5hdGl2ZXMpOiBhbnkge1xyXG4gICAgYWx0ZXJuYXRpdmVzID0gYWx0ZXJuYXRpdmVzIHx8IHt9O1xyXG4gICAgY29uc29sZS5sb2coXCJQYXJzaW5nIGNvbmZpZy4uLlwiKTtcclxuICAgIHJldHVybiBjcmVhdGVDb25maWdSZWN1cnNpdmUobnVsbCwgcGFyc2VDb25maWcoY29uZmlnKSwgXCJcIiwgYWx0ZXJuYXRpdmVzKTtcclxufVxyXG4iXX0=
@@ -1,77 +0,0 @@
1
- function isPrimitive(value) {
2
- const type = typeof value;
3
- return value == null || (type !== "object" && type !== "function");
4
- }
5
- function isDate(value) {
6
- return null !== value && !isNaN(value) && "undefined" !== typeof value.getDate;
7
- }
8
- function convertValue(value, type) {
9
- switch (type) {
10
- case "boolean":
11
- value = typeof value == "string" ? value.toLowerCase() : value;
12
- return (value == "no" || value == "false" || value == "0") ? false : !!value;
13
- case "number":
14
- const val = parseFloat(value);
15
- return isNaN(val) ? 0 : val;
16
- }
17
- return value;
18
- }
19
- function getFromEnv(path, alternatives, value) {
20
- const name = path.replace(/\.?([A-Z|0-9]+)/g, function (x, y) {
21
- return "_" + y.toLowerCase();
22
- }).replace(/\./gi, "_").replace(/^_/, "").toUpperCase();
23
- const alts = Array.from(alternatives[name] || []);
24
- alts.unshift(name);
25
- for (const envName of alts) {
26
- const envValue = process.env[envName];
27
- if (typeof envValue !== "undefined") {
28
- const val = convertValue(envValue, typeof value);
29
- console.log(name, envName, val);
30
- return convertValue(envValue, typeof value);
31
- }
32
- }
33
- console.log(name, value);
34
- return value;
35
- }
36
- function createConfigRecursive(target, source, path, alternatives) {
37
- if (isPrimitive(source) || isDate(source)) {
38
- return getFromEnv(path, alternatives, source);
39
- }
40
- if (Array.isArray(source)) {
41
- target = Array.isArray(target) ? Array.from(target) : [];
42
- source.forEach((item, index) => {
43
- if (target.length > index)
44
- target[index] = createConfigRecursive(target[index], item, !path ? `${index}` : `${path}.${index}`, alternatives);
45
- else
46
- target.push(createConfigRecursive(null, item, !path ? `${index}` : `${path}.${index}`, alternatives));
47
- });
48
- return target;
49
- }
50
- return Object.keys(source).reduce((result, key) => {
51
- result[key] = createConfigRecursive(result[key], source[key], !path ? `${key}` : `${path}.${key}`, alternatives);
52
- return result;
53
- }, Object.assign({}, target));
54
- }
55
- function parseConfig(config) {
56
- if (typeof config == "string") {
57
- try {
58
- config = JSON.parse(config);
59
- }
60
- catch (e) {
61
- return {};
62
- }
63
- }
64
- return config;
65
- }
66
- function createConfig(config, alternatives) {
67
- alternatives = alternatives || {};
68
- console.log("Parsing config...");
69
- return createConfigRecursive(null, parseConfig(config), "", alternatives);
70
- }
71
-
72
- /**
73
- * Generated bundle index. Do not edit.
74
- */
75
-
76
- export { createConfig };
77
- //# sourceMappingURL=stemy-ngx-utils-tools.mjs.map