@iapps/d2-web-sdk 1.0.0 → 1.0.2

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 (288) hide show
  1. package/package.json +12 -1
  2. package/src/lib/d2-web-sdk.d.ts +16 -4
  3. package/src/lib/d2-web-sdk.js +89 -16
  4. package/src/lib/d2-web-sdk.js.map +1 -1
  5. package/src/lib/index.d.ts +0 -0
  6. package/src/lib/index.js +5 -0
  7. package/src/lib/index.js.map +1 -0
  8. package/src/lib/modules/app-manifest/app-manifest.module.d.ts +7 -0
  9. package/src/lib/modules/app-manifest/app-manifest.module.js +29 -0
  10. package/src/lib/modules/app-manifest/app-manifest.module.js.map +1 -0
  11. package/src/lib/modules/app-manifest/index.d.ts +2 -0
  12. package/src/lib/modules/app-manifest/index.js +9 -0
  13. package/src/lib/modules/app-manifest/index.js.map +1 -0
  14. package/src/lib/modules/app-manifest/models/index.d.ts +1 -0
  15. package/src/lib/modules/app-manifest/models/index.js +8 -0
  16. package/src/lib/modules/app-manifest/models/index.js.map +1 -0
  17. package/src/lib/modules/app-manifest/models/manifest.model.d.ts +24 -0
  18. package/src/lib/modules/app-manifest/models/manifest.model.js +3 -0
  19. package/src/lib/modules/app-manifest/models/manifest.model.js.map +1 -0
  20. package/src/lib/modules/data-element/models/data-element.model.d.ts +3 -2
  21. package/src/lib/modules/data-element/models/data-element.model.js +14 -60
  22. package/src/lib/modules/data-element/models/data-element.model.js.map +1 -1
  23. package/src/lib/modules/data-element/queries/data-element.query.d.ts +2 -2
  24. package/src/lib/modules/data-element/queries/data-element.query.js.map +1 -1
  25. package/src/lib/modules/engine/engine.module.d.ts +4 -0
  26. package/src/lib/modules/engine/engine.module.js +14 -0
  27. package/src/lib/modules/engine/engine.module.js.map +1 -0
  28. package/src/lib/modules/engine/index.d.ts +2 -0
  29. package/src/lib/modules/{organisation-unit → engine}/index.js +2 -3
  30. package/src/lib/modules/engine/index.js.map +1 -0
  31. package/src/lib/modules/engine/program-rule/index.d.ts +1 -0
  32. package/src/lib/{shared/decorators → modules/engine/program-rule}/index.js +1 -1
  33. package/src/lib/modules/engine/program-rule/index.js.map +1 -0
  34. package/src/lib/modules/engine/program-rule/program-rule.engine.d.ts +7 -0
  35. package/src/lib/modules/engine/program-rule/program-rule.engine.js +42 -0
  36. package/src/lib/modules/engine/program-rule/program-rule.engine.js.map +1 -0
  37. package/src/lib/modules/engine/program-rule/utils/d2-functions.util.d.ts +7 -0
  38. package/src/lib/modules/engine/program-rule/utils/d2-functions.util.js +361 -0
  39. package/src/lib/modules/engine/program-rule/utils/d2-functions.util.js.map +1 -0
  40. package/src/lib/modules/engine/program-rule/utils/d2.util.d.ts +17 -0
  41. package/src/lib/modules/engine/program-rule/utils/d2.util.js +35 -0
  42. package/src/lib/modules/engine/program-rule/utils/d2.util.js.map +1 -0
  43. package/src/lib/modules/engine/program-rule/utils/date.utils.d.ts +9 -0
  44. package/src/lib/modules/engine/program-rule/utils/date.utils.js +35 -0
  45. package/src/lib/modules/engine/program-rule/utils/date.utils.js.map +1 -0
  46. package/src/lib/modules/engine/program-rule/utils/index.d.ts +1 -0
  47. package/src/lib/modules/{organisation-unit/models → engine/program-rule/utils}/index.js +1 -3
  48. package/src/lib/modules/engine/program-rule/utils/index.js.map +1 -0
  49. package/src/lib/modules/engine/program-rule/utils/run-d2-expression.util.d.ts +4 -0
  50. package/src/lib/modules/engine/program-rule/utils/run-d2-expression.util.js +88 -0
  51. package/src/lib/modules/engine/program-rule/utils/run-d2-expression.util.js.map +1 -0
  52. package/src/lib/modules/engine/program-rule/utils/trim-quotes.util.d.ts +1 -0
  53. package/src/lib/modules/engine/program-rule/utils/trim-quotes.util.js +18 -0
  54. package/src/lib/modules/engine/program-rule/utils/trim-quotes.util.js.map +1 -0
  55. package/src/lib/modules/engine/program-rule/utils/value-converter.util.d.ts +3 -0
  56. package/src/lib/modules/engine/program-rule/utils/value-converter.util.js +10 -0
  57. package/src/lib/modules/engine/program-rule/utils/value-converter.util.js.map +1 -0
  58. package/src/lib/modules/engine/program-rule/utils/z-score-wfa.util.d.ts +1 -0
  59. package/src/lib/modules/engine/program-rule/utils/z-score-wfa.util.js +182 -0
  60. package/src/lib/modules/engine/program-rule/utils/z-score-wfa.util.js.map +1 -0
  61. package/src/lib/modules/index.d.ts +4 -1
  62. package/src/lib/modules/index.js +4 -1
  63. package/src/lib/modules/index.js.map +1 -1
  64. package/src/lib/modules/program/models/program-rule-action.model.d.ts +4 -2
  65. package/src/lib/modules/program/models/program-rule-action.model.js.map +1 -1
  66. package/src/lib/modules/program/models/program-rule-variable.model.d.ts +2 -2
  67. package/src/lib/modules/program/models/program-rule.model.d.ts +1 -1
  68. package/src/lib/modules/program/models/program-rule.model.js +6 -2
  69. package/src/lib/modules/program/models/program-rule.model.js.map +1 -1
  70. package/src/lib/modules/program/models/program-section.model.d.ts +1 -1
  71. package/src/lib/modules/program/models/program-section.model.js +1 -1
  72. package/src/lib/modules/program/models/program-section.model.js.map +1 -1
  73. package/src/lib/modules/program/models/program.model.d.ts +3 -0
  74. package/src/lib/modules/program/models/program.model.js +6 -0
  75. package/src/lib/modules/program/models/program.model.js.map +1 -1
  76. package/src/lib/modules/program/program.module.d.ts +2 -2
  77. package/src/lib/modules/program/program.module.js +2 -2
  78. package/src/lib/modules/program/program.module.js.map +1 -1
  79. package/src/lib/modules/tracker/decorators/attribute-field.decorator.d.ts +1 -0
  80. package/src/lib/modules/tracker/decorators/attribute-field.decorator.js +28 -0
  81. package/src/lib/modules/tracker/decorators/attribute-field.decorator.js.map +1 -0
  82. package/src/lib/modules/tracker/decorators/data-element-field.decorator.d.ts +4 -0
  83. package/src/lib/modules/tracker/decorators/data-element-field.decorator.js +53 -0
  84. package/src/lib/modules/tracker/decorators/data-element-field.decorator.js.map +1 -0
  85. package/src/lib/modules/tracker/decorators/enrollment-date-field.decorator.d.ts +1 -0
  86. package/src/lib/modules/tracker/decorators/enrollment-date-field.decorator.js +22 -0
  87. package/src/lib/modules/tracker/decorators/enrollment-date-field.decorator.js.map +1 -0
  88. package/src/lib/modules/tracker/decorators/event-date-field.decorator.d.ts +1 -0
  89. package/src/lib/modules/tracker/decorators/event-date-field.decorator.js +21 -0
  90. package/src/lib/modules/tracker/decorators/event-date-field.decorator.js.map +1 -0
  91. package/src/lib/modules/tracker/decorators/event-field.decorator.d.ts +2 -0
  92. package/src/lib/modules/tracker/decorators/event-field.decorator.js +54 -0
  93. package/src/lib/modules/tracker/decorators/event-field.decorator.js.map +1 -0
  94. package/src/lib/modules/tracker/decorators/event-id-field.decorator.d.ts +1 -0
  95. package/src/lib/modules/tracker/decorators/event-id-field.decorator.js +21 -0
  96. package/src/lib/modules/tracker/decorators/event-id-field.decorator.js.map +1 -0
  97. package/src/lib/modules/tracker/decorators/event.decorator.d.ts +3 -0
  98. package/src/lib/modules/tracker/decorators/event.decorator.js +13 -0
  99. package/src/lib/modules/tracker/decorators/event.decorator.js.map +1 -0
  100. package/src/lib/modules/tracker/decorators/index.d.ts +11 -0
  101. package/src/lib/modules/tracker/decorators/index.js +15 -0
  102. package/src/lib/modules/tracker/decorators/index.js.map +1 -0
  103. package/src/lib/modules/tracker/decorators/org-unit-field.decorator.d.ts +3 -0
  104. package/src/lib/modules/tracker/decorators/org-unit-field.decorator.js +28 -0
  105. package/src/lib/modules/tracker/decorators/org-unit-field.decorator.js.map +1 -0
  106. package/src/lib/modules/tracker/decorators/relationship-field.decorator.d.ts +2 -0
  107. package/src/lib/modules/tracker/decorators/relationship-field.decorator.js +55 -0
  108. package/src/lib/modules/tracker/decorators/relationship-field.decorator.js.map +1 -0
  109. package/src/lib/modules/tracker/decorators/tracked-entity-id-field.decorator.d.ts +1 -0
  110. package/src/lib/modules/tracker/decorators/tracked-entity-id-field.decorator.js +22 -0
  111. package/src/lib/modules/tracker/decorators/tracked-entity-id-field.decorator.js.map +1 -0
  112. package/src/lib/modules/tracker/decorators/tracked-entity.decorator.d.ts +4 -0
  113. package/src/lib/modules/tracker/decorators/tracked-entity.decorator.js +14 -0
  114. package/src/lib/modules/tracker/decorators/tracked-entity.decorator.js.map +1 -0
  115. package/src/lib/modules/tracker/index.d.ts +6 -0
  116. package/src/lib/modules/tracker/index.js +10 -0
  117. package/src/lib/modules/tracker/index.js.map +1 -0
  118. package/src/lib/modules/tracker/interfaces/index.d.ts +2 -0
  119. package/src/lib/modules/tracker/interfaces/index.js +9 -0
  120. package/src/lib/modules/tracker/interfaces/index.js.map +1 -0
  121. package/src/lib/modules/tracker/interfaces/tracker-filter-condition.interface.d.ts +10 -0
  122. package/src/lib/modules/tracker/interfaces/tracker-filter-condition.interface.js +18 -0
  123. package/src/lib/modules/tracker/interfaces/tracker-filter-condition.interface.js.map +1 -0
  124. package/src/lib/modules/tracker/interfaces/tracker-query-filter.interface.d.ts +6 -0
  125. package/src/lib/modules/tracker/interfaces/tracker-query-filter.interface.js +6 -0
  126. package/src/lib/modules/tracker/interfaces/tracker-query-filter.interface.js.map +1 -0
  127. package/src/lib/modules/tracker/models/attribute.model.d.ts +16 -0
  128. package/src/lib/modules/tracker/models/attribute.model.js +3 -0
  129. package/src/lib/modules/tracker/models/attribute.model.js.map +1 -0
  130. package/src/lib/modules/tracker/models/base.model.d.ts +3 -0
  131. package/src/lib/modules/tracker/models/base.model.js +14 -0
  132. package/src/lib/modules/tracker/models/base.model.js.map +1 -0
  133. package/src/lib/modules/tracker/models/d2-event-response.model.d.ts +10 -0
  134. package/src/lib/modules/tracker/models/d2-event-response.model.js +38 -0
  135. package/src/lib/modules/tracker/models/d2-event-response.model.js.map +1 -0
  136. package/src/lib/modules/tracker/models/d2-tracker-response.model.d.ts +10 -0
  137. package/src/lib/modules/tracker/models/d2-tracker-response.model.js +38 -0
  138. package/src/lib/modules/tracker/models/d2-tracker-response.model.js.map +1 -0
  139. package/src/lib/modules/tracker/models/data-value.model.d.ts +47 -0
  140. package/src/lib/modules/tracker/models/data-value.model.js +35 -0
  141. package/src/lib/modules/tracker/models/data-value.model.js.map +1 -0
  142. package/src/lib/modules/tracker/models/enrollment.model.d.ts +73 -0
  143. package/src/lib/modules/tracker/models/enrollment.model.js +113 -0
  144. package/src/lib/modules/tracker/models/enrollment.model.js.map +1 -0
  145. package/src/lib/modules/tracker/models/event.model.d.ts +95 -0
  146. package/src/lib/modules/tracker/models/event.model.js +99 -0
  147. package/src/lib/modules/tracker/models/event.model.js.map +1 -0
  148. package/src/lib/modules/tracker/models/index.d.ts +14 -0
  149. package/src/lib/modules/tracker/models/index.js +18 -0
  150. package/src/lib/modules/tracker/models/index.js.map +1 -0
  151. package/src/lib/modules/tracker/models/tracked-entity-instance.model.d.ts +125 -0
  152. package/src/lib/modules/tracker/models/tracked-entity-instance.model.js +215 -0
  153. package/src/lib/modules/tracker/models/tracked-entity-instance.model.js.map +1 -0
  154. package/src/lib/modules/tracker/models/tracker-import-stats.model.d.ts +11 -0
  155. package/src/lib/modules/tracker/models/tracker-import-stats.model.js +28 -0
  156. package/src/lib/modules/tracker/models/tracker-import-stats.model.js.map +1 -0
  157. package/src/lib/modules/tracker/models/tracker-import-summary.model.d.ts +10 -0
  158. package/src/lib/modules/tracker/models/tracker-import-summary.model.js +21 -0
  159. package/src/lib/modules/tracker/models/tracker-import-summary.model.js.map +1 -0
  160. package/src/lib/modules/tracker/models/tracker-import-validation-report.model.d.ts +12 -0
  161. package/src/lib/modules/tracker/models/tracker-import-validation-report.model.js +39 -0
  162. package/src/lib/modules/tracker/models/tracker-import-validation-report.model.js.map +1 -0
  163. package/src/lib/modules/tracker/models/tracker-query-filter.model.d.ts +13 -0
  164. package/src/lib/modules/tracker/models/tracker-query-filter.model.js +39 -0
  165. package/src/lib/modules/tracker/models/tracker-query-filter.model.js.map +1 -0
  166. package/src/lib/modules/tracker/models/tracker-relationship.model.d.ts +28 -0
  167. package/src/lib/modules/tracker/models/tracker-relationship.model.js +58 -0
  168. package/src/lib/modules/tracker/models/tracker-relationship.model.js.map +1 -0
  169. package/src/lib/modules/tracker/models/tracker-url-generator.model.d.ts +20 -0
  170. package/src/lib/modules/tracker/models/tracker-url-generator.model.js +98 -0
  171. package/src/lib/modules/tracker/models/tracker-url-generator.model.js.map +1 -0
  172. package/src/lib/modules/tracker/queries/base-event.query.d.ts +22 -0
  173. package/src/lib/modules/tracker/queries/base-event.query.js +104 -0
  174. package/src/lib/modules/tracker/queries/base-event.query.js.map +1 -0
  175. package/src/lib/modules/tracker/queries/base-tracker.query.d.ts +32 -0
  176. package/src/lib/modules/tracker/queries/base-tracker.query.js +231 -0
  177. package/src/lib/modules/tracker/queries/base-tracker.query.js.map +1 -0
  178. package/src/lib/modules/tracker/queries/index.d.ts +2 -0
  179. package/src/lib/modules/tracker/queries/index.js +6 -0
  180. package/src/lib/modules/tracker/queries/index.js.map +1 -0
  181. package/src/lib/modules/tracker/tracker.module.d.ts +8 -0
  182. package/src/lib/modules/tracker/tracker.module.js +14 -0
  183. package/src/lib/modules/tracker/tracker.module.js.map +1 -0
  184. package/src/lib/modules/tracker/utils/attribute.util.d.ts +9 -0
  185. package/src/lib/modules/tracker/utils/attribute.util.js +49 -0
  186. package/src/lib/modules/tracker/utils/attribute.util.js.map +1 -0
  187. package/src/lib/modules/tracker/utils/enrollment.util.d.ts +17 -0
  188. package/src/lib/modules/tracker/utils/enrollment.util.js +57 -0
  189. package/src/lib/modules/tracker/utils/enrollment.util.js.map +1 -0
  190. package/src/lib/modules/tracker/utils/event.util.d.ts +16 -0
  191. package/src/lib/modules/tracker/utils/event.util.js +45 -0
  192. package/src/lib/modules/tracker/utils/event.util.js.map +1 -0
  193. package/src/lib/modules/tracker/utils/index.d.ts +5 -0
  194. package/src/lib/modules/tracker/utils/index.js +9 -0
  195. package/src/lib/modules/tracker/utils/index.js.map +1 -0
  196. package/src/lib/modules/tracker/utils/program-rule.util.d.ts +4 -0
  197. package/src/lib/modules/tracker/utils/program-rule.util.js +21 -0
  198. package/src/lib/modules/tracker/utils/program-rule.util.js.map +1 -0
  199. package/src/lib/modules/tracker/utils/tracked-entity-instance.util.d.ts +14 -0
  200. package/src/lib/modules/tracker/utils/tracked-entity-instance.util.js +58 -0
  201. package/src/lib/modules/tracker/utils/tracked-entity-instance.util.js.map +1 -0
  202. package/src/lib/modules/tracker/utils/tracker-relationship.util.d.ts +4 -0
  203. package/src/lib/modules/tracker/utils/tracker-relationship.util.js +11 -0
  204. package/src/lib/modules/tracker/utils/tracker-relationship.util.js.map +1 -0
  205. package/src/lib/modules/{organisation-unit → user}/index.d.ts +1 -1
  206. package/src/lib/modules/user/index.js +7 -0
  207. package/src/lib/modules/user/index.js.map +1 -0
  208. package/src/lib/modules/user/models/current-user.model.d.ts +4 -0
  209. package/src/lib/modules/user/models/current-user.model.js +8 -0
  210. package/src/lib/modules/user/models/current-user.model.js.map +1 -0
  211. package/src/lib/modules/user/models/index.d.ts +2 -0
  212. package/src/lib/modules/user/models/index.js +9 -0
  213. package/src/lib/modules/user/models/index.js.map +1 -0
  214. package/src/lib/modules/user/models/user.model.d.ts +13 -0
  215. package/src/lib/modules/user/models/user.model.js +18 -0
  216. package/src/lib/modules/user/models/user.model.js.map +1 -0
  217. package/src/lib/modules/user/queries/index.d.ts +1 -0
  218. package/src/lib/modules/user/queries/index.js +8 -0
  219. package/src/lib/modules/user/queries/index.js.map +1 -0
  220. package/src/lib/modules/user/queries/user.query.d.ts +5 -0
  221. package/src/lib/modules/{organisation-unit/queries/organisation-unit.query.js → user/queries/user.query.js} +5 -5
  222. package/src/lib/modules/user/queries/user.query.js.map +1 -0
  223. package/src/lib/modules/user/user.module.d.ts +9 -0
  224. package/src/lib/modules/user/user.module.js +38 -0
  225. package/src/lib/modules/user/user.module.js.map +1 -0
  226. package/src/lib/shared/index.d.ts +1 -1
  227. package/src/lib/shared/index.js +1 -1
  228. package/src/lib/shared/index.js.map +1 -1
  229. package/src/lib/shared/models/base.model.d.ts +0 -1
  230. package/src/lib/shared/models/base.model.js +0 -4
  231. package/src/lib/shared/models/base.model.js.map +1 -1
  232. package/src/lib/shared/models/d2-http-request-config.model.d.ts +13 -0
  233. package/src/lib/shared/models/d2-http-request-config.model.js +3 -0
  234. package/src/lib/shared/models/d2-http-request-config.model.js.map +1 -0
  235. package/src/lib/shared/models/d2-response.model.js +5 -3
  236. package/src/lib/shared/models/d2-response.model.js.map +1 -1
  237. package/src/lib/shared/models/d2-web-config.model.d.ts +1 -1
  238. package/src/lib/shared/models/http-client.model.d.ts +3 -1
  239. package/src/lib/shared/models/http-client.model.js +22 -4
  240. package/src/lib/shared/models/http-client.model.js.map +1 -1
  241. package/src/lib/shared/models/http-response.model.d.ts +1 -0
  242. package/src/lib/shared/models/http-response.model.js +3 -0
  243. package/src/lib/shared/models/http-response.model.js.map +1 -1
  244. package/src/lib/shared/models/index.d.ts +3 -0
  245. package/src/lib/shared/models/index.js +3 -0
  246. package/src/lib/shared/models/index.js.map +1 -1
  247. package/src/lib/shared/queries/base-query.d.ts +15 -5
  248. package/src/lib/shared/queries/base-query.js +32 -26
  249. package/src/lib/shared/queries/base-query.js.map +1 -1
  250. package/src/lib/shared/utils/dhis-url-generator.util.js +1 -1
  251. package/src/lib/shared/utils/dhis-url-generator.util.js.map +1 -1
  252. package/src/lib/shared/utils/generate-uid.util.d.ts +2 -0
  253. package/src/lib/shared/utils/generate-uid.util.js +31 -0
  254. package/src/lib/shared/utils/generate-uid.util.js.map +1 -0
  255. package/src/lib/shared/utils/index.d.ts +1 -0
  256. package/src/lib/shared/utils/index.js +1 -0
  257. package/src/lib/shared/utils/index.js.map +1 -1
  258. package/src/lib/modules/organisation-unit/index.js.map +0 -1
  259. package/src/lib/modules/organisation-unit/models/index.d.ts +0 -3
  260. package/src/lib/modules/organisation-unit/models/index.js.map +0 -1
  261. package/src/lib/modules/organisation-unit/models/organisation-unit-group-set.model.d.ts +0 -44
  262. package/src/lib/modules/organisation-unit/models/organisation-unit-group-set.model.js +0 -55
  263. package/src/lib/modules/organisation-unit/models/organisation-unit-group-set.model.js.map +0 -1
  264. package/src/lib/modules/organisation-unit/models/organisation-unit-group.model.d.ts +0 -39
  265. package/src/lib/modules/organisation-unit/models/organisation-unit-group.model.js +0 -50
  266. package/src/lib/modules/organisation-unit/models/organisation-unit-group.model.js.map +0 -1
  267. package/src/lib/modules/organisation-unit/models/organisation-unit.model.d.ts +0 -56
  268. package/src/lib/modules/organisation-unit/models/organisation-unit.model.js +0 -68
  269. package/src/lib/modules/organisation-unit/models/organisation-unit.model.js.map +0 -1
  270. package/src/lib/modules/organisation-unit/organisation-unit.module.d.ts +0 -9
  271. package/src/lib/modules/organisation-unit/organisation-unit.module.js +0 -20
  272. package/src/lib/modules/organisation-unit/organisation-unit.module.js.map +0 -1
  273. package/src/lib/modules/organisation-unit/queries/index.d.ts +0 -3
  274. package/src/lib/modules/organisation-unit/queries/index.js +0 -10
  275. package/src/lib/modules/organisation-unit/queries/index.js.map +0 -1
  276. package/src/lib/modules/organisation-unit/queries/organisation-unit-group-set.query.d.ts +0 -5
  277. package/src/lib/modules/organisation-unit/queries/organisation-unit-group-set.query.js +0 -15
  278. package/src/lib/modules/organisation-unit/queries/organisation-unit-group-set.query.js.map +0 -1
  279. package/src/lib/modules/organisation-unit/queries/organisation-unit-group.query.d.ts +0 -5
  280. package/src/lib/modules/organisation-unit/queries/organisation-unit-group.query.js +0 -15
  281. package/src/lib/modules/organisation-unit/queries/organisation-unit-group.query.js.map +0 -1
  282. package/src/lib/modules/organisation-unit/queries/organisation-unit.query.d.ts +0 -5
  283. package/src/lib/modules/organisation-unit/queries/organisation-unit.query.js.map +0 -1
  284. package/src/lib/shared/decorators/d2-property.decorator.d.ts +0 -2
  285. package/src/lib/shared/decorators/d2-property.decorator.js +0 -14
  286. package/src/lib/shared/decorators/d2-property.decorator.js.map +0 -1
  287. package/src/lib/shared/decorators/index.d.ts +0 -1
  288. package/src/lib/shared/decorators/index.js.map +0 -1
package/package.json CHANGED
@@ -1,11 +1,22 @@
1
1
  {
2
2
  "name": "@iapps/d2-web-sdk",
3
- "version": "1.0.0",
3
+ "version": "1.0.2",
4
4
  "dependencies": {
5
+ "axios": "^1.8.1",
6
+ "date-fns": "^4.1.0",
7
+ "lodash": "^4.17.21",
5
8
  "tslib": "^2.3.0"
6
9
  },
7
10
  "type": "commonjs",
8
11
  "main": "./src/index.js",
9
12
  "typings": "./src/index.d.ts",
13
+ "devDependencies": {
14
+ "@types/date-fns": "^2.5.3",
15
+ "@types/jest": "^29.5.14",
16
+ "@types/lodash": "^4.17.15",
17
+ "@types/moment": "^2.11.29",
18
+ "@types/node": "^22.13.5",
19
+ "moment": "^2.30.1"
20
+ },
10
21
  "types": "./src/index.d.ts"
11
22
  }
@@ -1,16 +1,28 @@
1
1
  import { AxiosDefaults } from 'axios';
2
- import { DataElementModule, OptionSetModule, ProgramModule, OrganisationUnitModule } from './modules';
3
- import { D2WebConfig } from './shared';
2
+ import { CurrentUser, D2EngineModule, DataElementModule, Manifest, OptionSetModule, ProgramModule, TrackerModule, UserModule } from './modules';
3
+ import { D2HttpClient, D2WebConfig } from './shared';
4
+ export interface D2Window extends Window {
5
+ d2Web: D2Web;
6
+ }
4
7
  export declare class D2Web {
5
8
  #private;
6
9
  private static instance;
10
+ httpInstance: D2HttpClient;
11
+ appManifest: Manifest | null;
12
+ currentUser: CurrentUser | null;
7
13
  private constructor();
8
- static getInstance(config: D2WebConfig): D2Web;
14
+ static initialize(config: D2WebConfig): Promise<D2Web>;
15
+ static getInstance(config: D2WebConfig): Promise<D2Web>;
9
16
  setConfig(config: D2WebConfig): void;
17
+ setAppManifest(): Promise<void>;
18
+ setCurrentUser(): Promise<void>;
10
19
  setHttpInstance(httpConfig: AxiosDefaults): void;
20
+ get rootUrl(): string;
11
21
  get config(): D2WebConfig;
22
+ get userModule(): UserModule;
12
23
  get programModule(): ProgramModule;
13
24
  get dataElementModule(): DataElementModule;
14
25
  get optionSetModule(): OptionSetModule;
15
- get organisationUnitModule(): OrganisationUnitModule;
26
+ get engineModule(): D2EngineModule;
27
+ get trackerModule(): TrackerModule;
16
28
  }
@@ -2,7 +2,7 @@
2
2
  // Copyright 2024 UDSM DHIS2 Lab. All rights reserved.
3
3
  // Use of this source code is governed by a BSD-style
4
4
  // license that can be found in the LICENSE file.
5
- var _D2Web_config, _D2Web_httpInstance;
5
+ var _D2Web_config;
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
7
  exports.D2Web = void 0;
8
8
  const tslib_1 = require("tslib");
@@ -11,39 +11,112 @@ const shared_1 = require("./shared");
11
11
  class D2Web {
12
12
  constructor() {
13
13
  _D2Web_config.set(this, void 0);
14
- _D2Web_httpInstance.set(this, void 0);
14
+ }
15
+ static initialize(config) {
16
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
17
+ if (!D2Web.instance) {
18
+ const instance = new D2Web();
19
+ /**
20
+ * Set configuration
21
+ */
22
+ instance.setConfig(config);
23
+ /**
24
+ * Initialize http instance to allow http request using axios
25
+ */
26
+ instance.setHttpInstance(config.httpClientConfig);
27
+ /**
28
+ * Fetch and set app manifest
29
+ */
30
+ yield instance.setAppManifest();
31
+ /**
32
+ * Update http instance to account for new information from manifest
33
+ */
34
+ const newWebConfig = new shared_1.D2WebConfig({
35
+ baseUrl: instance.rootUrl,
36
+ });
37
+ instance.setHttpInstance(newWebConfig.httpClientConfig);
38
+ /**
39
+ * Fetch and set current user
40
+ */
41
+ yield instance.setCurrentUser();
42
+ D2Web.instance = instance;
43
+ window.d2Web = instance;
44
+ }
45
+ return D2Web.instance;
46
+ });
15
47
  }
16
48
  static getInstance(config) {
17
- if (!D2Web.instance) {
18
- const instance = new D2Web();
19
- instance.setConfig(config);
20
- instance.setHttpInstance(config.httpClientConfig);
21
- D2Web.instance = instance;
22
- }
23
- return D2Web.instance;
49
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
50
+ if (!D2Web.instance) {
51
+ return yield D2Web.initialize(config);
52
+ }
53
+ return D2Web.instance;
54
+ });
24
55
  }
25
56
  setConfig(config) {
26
57
  tslib_1.__classPrivateFieldSet(this, _D2Web_config, config, "f");
27
58
  }
59
+ setAppManifest() {
60
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
61
+ const appManifestModule = new modules_1.AppManifestModule(this.httpInstance);
62
+ try {
63
+ const manifest = yield appManifestModule.get();
64
+ this.appManifest = manifest;
65
+ }
66
+ catch (e) {
67
+ this.appManifest = null;
68
+ }
69
+ });
70
+ }
71
+ setCurrentUser() {
72
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
73
+ try {
74
+ const currentUser = yield this.userModule.currentUser();
75
+ if (currentUser) {
76
+ this.currentUser = currentUser;
77
+ }
78
+ }
79
+ catch (e) {
80
+ throw new Error('Current user information could not be found or determined');
81
+ }
82
+ });
83
+ }
28
84
  setHttpInstance(httpConfig) {
29
- tslib_1.__classPrivateFieldSet(this, _D2Web_httpInstance, new shared_1.D2HttpClient(httpConfig), "f");
85
+ this.httpInstance = new shared_1.D2HttpClient(httpConfig);
86
+ }
87
+ get rootUrl() {
88
+ const defaultRootUrl = '../../..';
89
+ if (!this.appManifest) {
90
+ return defaultRootUrl;
91
+ }
92
+ return this.appManifest.activities &&
93
+ this.appManifest.activities.dhis &&
94
+ this.appManifest.activities.dhis.href
95
+ ? this.appManifest.activities.dhis.href
96
+ : defaultRootUrl;
30
97
  }
31
98
  get config() {
32
99
  return tslib_1.__classPrivateFieldGet(this, _D2Web_config, "f");
33
100
  }
101
+ get userModule() {
102
+ return new modules_1.UserModule(this.httpInstance);
103
+ }
34
104
  get programModule() {
35
- return new modules_1.ProgramModule(tslib_1.__classPrivateFieldGet(this, _D2Web_httpInstance, "f"));
105
+ return new modules_1.ProgramModule(this.httpInstance);
36
106
  }
37
107
  get dataElementModule() {
38
- return new modules_1.DataElementModule(tslib_1.__classPrivateFieldGet(this, _D2Web_httpInstance, "f"));
108
+ return new modules_1.DataElementModule(this.httpInstance);
39
109
  }
40
110
  get optionSetModule() {
41
- return new modules_1.OptionSetModule(tslib_1.__classPrivateFieldGet(this, _D2Web_httpInstance, "f"));
111
+ return new modules_1.OptionSetModule(this.httpInstance);
112
+ }
113
+ get engineModule() {
114
+ return new modules_1.D2EngineModule();
42
115
  }
43
- get organisationUnitModule() {
44
- return new modules_1.OrganisationUnitModule(tslib_1.__classPrivateFieldGet(this, _D2Web_httpInstance, "f"));
116
+ get trackerModule() {
117
+ return new modules_1.TrackerModule(this.httpInstance);
45
118
  }
46
119
  }
47
120
  exports.D2Web = D2Web;
48
- _D2Web_config = new WeakMap(), _D2Web_httpInstance = new WeakMap();
121
+ _D2Web_config = new WeakMap();
49
122
  //# sourceMappingURL=d2-web-sdk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"d2-web-sdk.js","sourceRoot":"","sources":["../../../../../packages/dhis2-web-sdk/src/lib/d2-web-sdk.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,qDAAqD;AACrD,iDAAiD;;;;;AAGjD,uCAKmB;AACnB,qCAAqD;AAErD,MAAa,KAAK;IAIhB;QAFA,gCAAsB;QACtB,sCAA6B;IACN,CAAC;IAEjB,MAAM,CAAC,WAAW,CAAC,MAAmB;QAC3C,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;YACpB,MAAM,QAAQ,GAAG,IAAI,KAAK,EAAE,CAAC;YAC7B,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAC3B,QAAQ,CAAC,eAAe,CAAC,MAAM,CAAC,gBAAiC,CAAC,CAAC;YACnE,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC5B,CAAC;QACD,OAAO,KAAK,CAAC,QAAQ,CAAC;IACxB,CAAC;IAED,SAAS,CAAC,MAAmB;QAC3B,+BAAA,IAAI,iBAAW,MAAM,MAAA,CAAC;IACxB,CAAC;IAED,eAAe,CAAC,UAAyB;QACvC,+BAAA,IAAI,uBAAiB,IAAI,qBAAY,CAAC,UAAU,CAAC,MAAA,CAAC;IACpD,CAAC;IAED,IAAI,MAAM;QACR,OAAO,+BAAA,IAAI,qBAAQ,CAAC;IACtB,CAAC;IAED,IAAI,aAAa;QACf,OAAO,IAAI,uBAAa,CAAC,+BAAA,IAAI,2BAAc,CAAC,CAAC;IAC/C,CAAC;IAED,IAAI,iBAAiB;QACnB,OAAO,IAAI,2BAAiB,CAAC,+BAAA,IAAI,2BAAc,CAAC,CAAC;IACnD,CAAC;IAED,IAAI,eAAe;QACjB,OAAO,IAAI,yBAAe,CAAC,+BAAA,IAAI,2BAAc,CAAC,CAAC;IACjD,CAAC;IAED,IAAI,sBAAsB;QACxB,OAAO,IAAI,gCAAsB,CAAC,+BAAA,IAAI,2BAAc,CAAC,CAAC;IACxD,CAAC;CACF;AA3CD,sBA2CC"}
1
+ {"version":3,"file":"d2-web-sdk.js","sourceRoot":"","sources":["../../../../../packages/dhis2-web-sdk/src/lib/d2-web-sdk.ts"],"names":[],"mappings":"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"}
File without changes
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ // export * from './modules';
3
+ // export * from './shared';
4
+ // export * from './d2-web-sdk';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/dhis2-web-sdk/src/lib/index.ts"],"names":[],"mappings":";AAAA,6BAA6B;AAC7B,4BAA4B;AAC5B,gCAAgC"}
@@ -0,0 +1,7 @@
1
+ import { D2HttpClient } from '../../shared';
2
+ import { Manifest } from './models';
3
+ export declare class AppManifestModule {
4
+ private httpClient;
5
+ constructor(httpClient: D2HttpClient);
6
+ get(): Promise<Manifest | null>;
7
+ }
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ // Copyright 2025 UDSM DHIS2 Lab. All rights reserved.
3
+ // Use of this source code is governed by a BSD-style
4
+ // license that can be found in the LICENSE file.
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.AppManifestModule = void 0;
7
+ const tslib_1 = require("tslib");
8
+ class AppManifestModule {
9
+ constructor(httpClient) {
10
+ this.httpClient = httpClient;
11
+ }
12
+ get() {
13
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
14
+ let manifest = null;
15
+ try {
16
+ const manifestResponse = yield this.httpClient.get('manifest.webapp', {
17
+ useRootUrl: true,
18
+ });
19
+ manifest = manifestResponse.data || null;
20
+ }
21
+ catch (error) {
22
+ console.warn('Manifest file could not be loaded, default options have been used instead');
23
+ }
24
+ return manifest;
25
+ });
26
+ }
27
+ }
28
+ exports.AppManifestModule = AppManifestModule;
29
+ //# sourceMappingURL=app-manifest.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-manifest.module.js","sourceRoot":"","sources":["../../../../../../../packages/dhis2-web-sdk/src/lib/modules/app-manifest/app-manifest.module.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,qDAAqD;AACrD,iDAAiD;;;;AAIjD,MAAa,iBAAiB;IAC5B,YAAoB,UAAwB;QAAxB,eAAU,GAAV,UAAU,CAAc;IAAG,CAAC;IAE1C,GAAG;;YACP,IAAI,QAAQ,GAAG,IAAI,CAAC;YAEpB,IAAI,CAAC;gBACH,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,iBAAiB,EAAE;oBACpE,UAAU,EAAE,IAAI;iBACjB,CAAC,CAAC;gBAEH,QAAQ,GAAI,gBAAgB,CAAC,IAA4B,IAAI,IAAI,CAAC;YACpE,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CACV,2EAA2E,CAC5E,CAAC;YACJ,CAAC;YAED,OAAO,QAAQ,CAAC;QAClB,CAAC;KAAA;CACF;AApBD,8CAoBC"}
@@ -0,0 +1,2 @@
1
+ export * from './models';
2
+ export * from './app-manifest.module';
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ // Copyright 2025 UDSM DHIS2 Lab. All rights reserved.
5
+ // Use of this source code is governed by a BSD-style
6
+ // license that can be found in the LICENSE file.
7
+ tslib_1.__exportStar(require("./models"), exports);
8
+ tslib_1.__exportStar(require("./app-manifest.module"), exports);
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../packages/dhis2-web-sdk/src/lib/modules/app-manifest/index.ts"],"names":[],"mappings":";;;AAAA,sDAAsD;AACtD,qDAAqD;AACrD,iDAAiD;AACjD,mDAAyB;AACzB,gEAAsC"}
@@ -0,0 +1 @@
1
+ export * from './manifest.model';
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ // Copyright 2025 UDSM DHIS2 Lab. All rights reserved.
5
+ // Use of this source code is governed by a BSD-style
6
+ // license that can be found in the LICENSE file.
7
+ tslib_1.__exportStar(require("./manifest.model"), exports);
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../packages/dhis2-web-sdk/src/lib/modules/app-manifest/models/index.ts"],"names":[],"mappings":";;;AAAA,sDAAsD;AACtD,qDAAqD;AACrD,iDAAiD;AACjD,2DAAiC"}
@@ -0,0 +1,24 @@
1
+ export interface Manifest {
2
+ name: string;
3
+ version: number | string;
4
+ description: string;
5
+ launch_path: string;
6
+ appType: string;
7
+ icons: {
8
+ 16: string;
9
+ 48: string;
10
+ 128: string;
11
+ };
12
+ developer: {
13
+ name: string;
14
+ url: string;
15
+ };
16
+ default_locale: string;
17
+ activities: {
18
+ dhis: {
19
+ href: string;
20
+ namespace: string;
21
+ };
22
+ };
23
+ authorities: Array<string>;
24
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=manifest.model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifest.model.js","sourceRoot":"","sources":["../../../../../../../../packages/dhis2-web-sdk/src/lib/modules/app-manifest/models/manifest.model.ts"],"names":[],"mappings":""}
@@ -1,10 +1,11 @@
1
1
  import { OptionSet } from '../../option-set';
2
2
  import { IdentifiableField, IdentifiableObject } from '../../../shared';
3
- export type DataElementField = IdentifiableField | 'formName' | 'valueType' | 'aggregationType' | 'domainType' | 'displayDescription' | 'displayFormName' | 'skipSynchronization' | 'zeroIsSignificant' | 'periodOffset' | 'optionSetValue' | 'optionSet';
3
+ export type DataElementProperty = IdentifiableField | 'formName' | 'valueType' | 'aggregationType' | 'domainType' | 'displayDescription' | 'displayFormName' | 'skipSynchronization' | 'zeroIsSignificant' | 'periodOffset' | 'optionSetValue' | 'optionSet';
4
4
  export declare class DataElement extends IdentifiableObject<DataElement> {
5
+ static getProperties(): {};
5
6
  static resourceName: string;
6
7
  static singularResourceName: string;
7
- static fields: DataElementField[];
8
+ static fields: DataElementProperty[];
8
9
  formName?: string;
9
10
  valueType: string;
10
11
  aggregationType: string;
@@ -4,10 +4,12 @@
4
4
  // license that can be found in the LICENSE file.
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.DataElement = void 0;
7
- const tslib_1 = require("tslib");
8
7
  const option_set_1 = require("../../option-set");
9
8
  const shared_1 = require("../../../shared");
10
9
  class DataElement extends shared_1.IdentifiableObject {
10
+ static getProperties() {
11
+ throw new Error('Method not implemented.');
12
+ }
11
13
  constructor(dataElement) {
12
14
  super(dataElement);
13
15
  if (dataElement.optionSetValue) {
@@ -18,66 +20,18 @@ class DataElement extends shared_1.IdentifiableObject {
18
20
  exports.DataElement = DataElement;
19
21
  DataElement.resourceName = 'dataElements';
20
22
  DataElement.singularResourceName = 'dataElement';
21
- // static fields: DataElementField[] = [
22
- // ...IDENTIFIABLE_FIELDS,
23
- // 'formName',
24
- // 'valueType',
25
- // 'aggregationType',
26
- // 'domainType',
27
- // 'displayDescription',
28
- // 'displayFormName',
29
- // 'skipSynchronization',
30
- // 'zeroIsSignificant',
31
- // 'periodOffset',
32
- // 'optionSetValue',
33
- // 'optionSet',
34
- // ];
35
23
  DataElement.fields = [
36
24
  ...shared_1.IDENTIFIABLE_FIELDS,
37
- ...Object.keys(DataElement.getProperties() || {}),
25
+ 'formName',
26
+ 'valueType',
27
+ 'aggregationType',
28
+ 'domainType',
29
+ 'displayDescription',
30
+ 'displayFormName',
31
+ 'skipSynchronization',
32
+ 'zeroIsSignificant',
33
+ 'periodOffset',
34
+ 'optionSetValue',
35
+ 'optionSet',
38
36
  ];
39
- tslib_1.__decorate([
40
- shared_1.D2Property,
41
- tslib_1.__metadata("design:type", String)
42
- ], DataElement.prototype, "formName", void 0);
43
- tslib_1.__decorate([
44
- shared_1.D2Property,
45
- tslib_1.__metadata("design:type", String)
46
- ], DataElement.prototype, "valueType", void 0);
47
- tslib_1.__decorate([
48
- shared_1.D2Property,
49
- tslib_1.__metadata("design:type", String)
50
- ], DataElement.prototype, "aggregationType", void 0);
51
- tslib_1.__decorate([
52
- shared_1.D2Property,
53
- tslib_1.__metadata("design:type", String)
54
- ], DataElement.prototype, "domainType", void 0);
55
- tslib_1.__decorate([
56
- shared_1.D2Property,
57
- tslib_1.__metadata("design:type", String)
58
- ], DataElement.prototype, "displayDescription", void 0);
59
- tslib_1.__decorate([
60
- shared_1.D2Property,
61
- tslib_1.__metadata("design:type", String)
62
- ], DataElement.prototype, "displayFormName", void 0);
63
- tslib_1.__decorate([
64
- shared_1.D2Property,
65
- tslib_1.__metadata("design:type", Boolean)
66
- ], DataElement.prototype, "skipSynchronization", void 0);
67
- tslib_1.__decorate([
68
- shared_1.D2Property,
69
- tslib_1.__metadata("design:type", Boolean)
70
- ], DataElement.prototype, "zeroIsSignificant", void 0);
71
- tslib_1.__decorate([
72
- shared_1.D2Property,
73
- tslib_1.__metadata("design:type", Number)
74
- ], DataElement.prototype, "periodOffset", void 0);
75
- tslib_1.__decorate([
76
- shared_1.D2Property,
77
- tslib_1.__metadata("design:type", Boolean)
78
- ], DataElement.prototype, "optionSetValue", void 0);
79
- tslib_1.__decorate([
80
- shared_1.D2Property,
81
- tslib_1.__metadata("design:type", option_set_1.OptionSet)
82
- ], DataElement.prototype, "optionSet", void 0);
83
37
  //# sourceMappingURL=data-element.model.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"data-element.model.js","sourceRoot":"","sources":["../../../../../../../../packages/dhis2-web-sdk/src/lib/modules/data-element/models/data-element.model.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,qDAAqD;AACrD,iDAAiD;;;;AAEjD,iDAA6C;AAC7C,4CAKyB;AAgBzB,MAAa,WAAY,SAAQ,2BAA+B;IA8C9D,YAAY,WAAiC;QAC3C,KAAK,CAAC,WAAW,CAAC,CAAC;QACnB,IAAI,WAAW,CAAC,cAAc,EAAE,CAAC;YAC/B,IAAI,CAAC,SAAS,GAAG,IAAI,sBAAS,CAAC,WAAW,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;;AAnDH,kCAoDC;AAnDQ,wBAAY,GAAG,cAAc,CAAC;AAC9B,gCAAoB,GAAG,aAAa,CAAC;AAC5C,wCAAwC;AACxC,4BAA4B;AAC5B,gBAAgB;AAChB,iBAAiB;AACjB,uBAAuB;AACvB,kBAAkB;AAClB,0BAA0B;AAC1B,uBAAuB;AACvB,2BAA2B;AAC3B,yBAAyB;AACzB,oBAAoB;AACpB,sBAAsB;AACtB,iBAAiB;AACjB,KAAK;AAEE,kBAAM,GAAuB;IAClC,GAAG,4BAAmB;IACtB,GAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,IAAI,EAAE,CAAS;CAC3D,CAAC;AAGF;IADC,mBAAU;;6CACO;AAElB;IADC,mBAAU;;8CACQ;AAEnB;IADC,mBAAU;;oDACc;AAEzB;IADC,mBAAU;;+CACS;AAEpB;IADC,mBAAU;;uDACiB;AAE5B;IADC,mBAAU;;oDACc;AAEzB;IADC,mBAAU;;wDACmB;AAE9B;IADC,mBAAU;;sDACiB;AAE5B;IADC,mBAAU;;iDACW;AAEtB;IADC,mBAAU;;mDACc;AAEzB;IADC,mBAAU;sCACC,sBAAS;8CAAC"}
1
+ {"version":3,"file":"data-element.model.js","sourceRoot":"","sources":["../../../../../../../../packages/dhis2-web-sdk/src/lib/modules/data-element/models/data-element.model.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,qDAAqD;AACrD,iDAAiD;;;AAEjD,iDAA6C;AAC7C,4CAIyB;AAgBzB,MAAa,WAAY,SAAQ,2BAA+B;IAC9D,MAAM,CAAC,aAAa;QAClB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IA8BD,YAAY,WAAiC;QAC3C,KAAK,CAAC,WAAW,CAAC,CAAC;QACnB,IAAI,WAAW,CAAC,cAAc,EAAE,CAAC;YAC/B,IAAI,CAAC,SAAS,GAAG,IAAI,sBAAS,CAAC,WAAW,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;;AAtCH,kCAuCC;AAnCQ,wBAAY,GAAG,cAAc,CAAC;AAC9B,gCAAoB,GAAG,aAAa,CAAC;AACrC,kBAAM,GAA0B;IACrC,GAAG,4BAAmB;IACtB,UAAU;IACV,WAAW;IACX,iBAAiB;IACjB,YAAY;IACZ,oBAAoB;IACpB,iBAAiB;IACjB,qBAAqB;IACrB,mBAAmB;IACnB,cAAc;IACd,gBAAgB;IAChB,WAAW;CACZ,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { BaseQuery, D2HttpClient } from '../../../shared';
2
- import { DataElement, DataElementField } from '../models';
3
- export declare class DataElementQuery extends BaseQuery<DataElement, DataElementField> {
2
+ import { DataElement, DataElementProperty } from '../models';
3
+ export declare class DataElementQuery extends BaseQuery<DataElement, DataElementProperty> {
4
4
  constructor(httpClient: D2HttpClient);
5
5
  }
@@ -1 +1 @@
1
- {"version":3,"file":"data-element.query.js","sourceRoot":"","sources":["../../../../../../../../packages/dhis2-web-sdk/src/lib/modules/data-element/queries/data-element.query.ts"],"names":[],"mappings":";;;AAAA,sDAAsD;AACtD,qDAAqD;AACrD,iDAAiD;AACjD,4CAA0D;AAC1D,sCAA0D;AAE1D,MAAa,gBAAiB,SAAQ,kBAAwC;IAC5E,YAAY,UAAwB;QAClC,KAAK,CAAC,oBAAW,EAAE,UAAU,CAAC,CAAC;IACjC,CAAC;CACF;AAJD,4CAIC"}
1
+ {"version":3,"file":"data-element.query.js","sourceRoot":"","sources":["../../../../../../../../packages/dhis2-web-sdk/src/lib/modules/data-element/queries/data-element.query.ts"],"names":[],"mappings":";;;AAAA,sDAAsD;AACtD,qDAAqD;AACrD,iDAAiD;AACjD,4CAA0D;AAC1D,sCAA6D;AAE7D,MAAa,gBAAiB,SAAQ,kBAGrC;IACC,YAAY,UAAwB;QAClC,KAAK,CAAC,oBAAW,EAAE,UAAU,CAAC,CAAC;IACjC,CAAC;CACF;AAPD,4CAOC"}
@@ -0,0 +1,4 @@
1
+ import { ProgramRuleEngine } from './program-rule';
2
+ export declare class D2EngineModule {
3
+ get programRule(): ProgramRuleEngine;
4
+ }
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ // Copyright 2024 UDSM DHIS2 Lab. All rights reserved.
3
+ // Use of this source code is governed by a BSD-style
4
+ // license that can be found in the LICENSE file.
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.D2EngineModule = void 0;
7
+ const program_rule_1 = require("./program-rule");
8
+ class D2EngineModule {
9
+ get programRule() {
10
+ return new program_rule_1.ProgramRuleEngine();
11
+ }
12
+ }
13
+ exports.D2EngineModule = D2EngineModule;
14
+ //# sourceMappingURL=engine.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine.module.js","sourceRoot":"","sources":["../../../../../../../packages/dhis2-web-sdk/src/lib/modules/engine/engine.module.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,qDAAqD;AACrD,iDAAiD;;;AAEjD,iDAAmD;AAEnD,MAAa,cAAc;IACzB,IAAI,WAAW;QACb,OAAO,IAAI,gCAAiB,EAAE,CAAC;IACjC,CAAC;CACF;AAJD,wCAIC"}
@@ -0,0 +1,2 @@
1
+ export * from './program-rule';
2
+ export * from './engine.module';
@@ -4,7 +4,6 @@ const tslib_1 = require("tslib");
4
4
  // Copyright 2024 UDSM DHIS2 Lab. All rights reserved.
5
5
  // Use of this source code is governed by a BSD-style
6
6
  // license that can be found in the LICENSE file.
7
- tslib_1.__exportStar(require("./models"), exports);
8
- tslib_1.__exportStar(require("./queries"), exports);
9
- tslib_1.__exportStar(require("./organisation-unit.module"), exports);
7
+ tslib_1.__exportStar(require("./program-rule"), exports);
8
+ tslib_1.__exportStar(require("./engine.module"), exports);
10
9
  //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../packages/dhis2-web-sdk/src/lib/modules/engine/index.ts"],"names":[],"mappings":";;;AAAA,sDAAsD;AACtD,qDAAqD;AACrD,iDAAiD;AACjD,yDAA+B;AAC/B,0DAAgC"}
@@ -0,0 +1 @@
1
+ export * from './program-rule.engine';
@@ -4,5 +4,5 @@ const tslib_1 = require("tslib");
4
4
  // Copyright 2024 UDSM DHIS2 Lab. All rights reserved.
5
5
  // Use of this source code is governed by a BSD-style
6
6
  // license that can be found in the LICENSE file.
7
- tslib_1.__exportStar(require("./d2-property.decorator"), exports);
7
+ tslib_1.__exportStar(require("./program-rule.engine"), exports);
8
8
  //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../packages/dhis2-web-sdk/src/lib/modules/engine/program-rule/index.ts"],"names":[],"mappings":";;;AAAA,sDAAsD;AACtD,qDAAqD;AACrD,iDAAiD;AACjD,gEAAsC"}
@@ -0,0 +1,7 @@
1
+ export declare class ProgramRuleEngine {
2
+ rules: any[];
3
+ dataValues: Record<string, unknown>;
4
+ setRules(rules: any[]): this;
5
+ setDataValues(dataValues: Record<string, unknown>): this;
6
+ execute(): any[];
7
+ }
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ // Copyright 2024 UDSM DHIS2 Lab. All rights reserved.
3
+ // Use of this source code is governed by a BSD-style
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.ProgramRuleEngine = void 0;
6
+ const lodash_1 = require("lodash");
7
+ const utils_1 = require("./utils");
8
+ // license that can be found in the LICENSE file.
9
+ class ProgramRuleEngine {
10
+ setRules(rules) {
11
+ this.rules = rules;
12
+ return this;
13
+ }
14
+ setDataValues(dataValues) {
15
+ this.dataValues = dataValues;
16
+ return this;
17
+ }
18
+ execute() {
19
+ return (0, lodash_1.flatten)((this.rules || []).map((rule) => {
20
+ if (!rule) {
21
+ return [];
22
+ }
23
+ let ruleCondition = rule.condition || '';
24
+ Object.keys(this.dataValues).forEach((key) => {
25
+ ruleCondition = ruleCondition.replace(new RegExp(`{${key}}`, 'g'), `'${this.dataValues[key]}'`);
26
+ });
27
+ if (ruleCondition.includes('d2:')) {
28
+ ruleCondition = (0, utils_1.dhisD2Functions)(ruleCondition, {});
29
+ }
30
+ let evaluationResult;
31
+ try {
32
+ evaluationResult = eval(ruleCondition);
33
+ }
34
+ catch (e) {
35
+ //
36
+ }
37
+ return (rule.actions || []).map((action) => (Object.assign(Object.assign({}, action), { actionType: evaluationResult ? action['actionType'] : '' })));
38
+ }));
39
+ }
40
+ }
41
+ exports.ProgramRuleEngine = ProgramRuleEngine;
42
+ //# sourceMappingURL=program-rule.engine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"program-rule.engine.js","sourceRoot":"","sources":["../../../../../../../../packages/dhis2-web-sdk/src/lib/modules/engine/program-rule/program-rule.engine.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,qDAAqD;;;AAErD,mCAAiC;AACjC,mCAA0C;AAE1C,iDAAiD;AACjD,MAAa,iBAAiB;IAI5B,QAAQ,CAAC,KAAY;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,aAAa,CAAC,UAAmC;QAC/C,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO;QACL,OAAO,IAAA,gBAAO,EACZ,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YAC9B,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,IAAI,aAAa,GAAG,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC;YAEzC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBAC3C,aAAa,GAAG,aAAa,CAAC,OAAO,CACnC,IAAI,MAAM,CAAC,IAAI,GAAG,GAAG,EAAE,GAAG,CAAC,EAC3B,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAC5B,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,IAAI,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBAClC,aAAa,GAAG,IAAA,uBAAe,EAAC,aAAa,EAAE,EAAE,CAAC,CAAC;YACrD,CAAC;YAED,IAAI,gBAAyB,CAAC;YAC9B,IAAI,CAAC;gBACH,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;YACzC,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,EAAE;YACJ,CAAC;YAED,OAAO,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAA+B,EAAE,EAAE,CAAC,iCAChE,MAAM,KACT,UAAU,EAAE,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,IACxD,CAAC,CAAC;QACN,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;CACF;AA/CD,8CA+CC"}
@@ -0,0 +1,7 @@
1
+ export declare const d2FuctionsVariables: Array<{
2
+ name: string;
3
+ parameters?: number;
4
+ }>;
5
+ export declare const d2FunctionsEval: {
6
+ [x: string]: Function;
7
+ };