@lifeready/core 1.0.0 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (378) hide show
  1. package/README.md +62 -62
  2. package/karma.conf.js +32 -0
  3. package/ng-package.json +26 -0
  4. package/package.json +21 -29
  5. package/src/lib/_common/ast.ts +75 -0
  6. package/src/lib/_common/deferred-promise.ts +35 -0
  7. package/src/lib/_common/exceptions.ts +189 -0
  8. package/src/lib/_common/queries.gql.ts +200 -0
  9. package/src/lib/_common/run-outside-angular.ts +125 -0
  10. package/src/lib/_common/tests.ts +82 -0
  11. package/{lib/_common/types.d.ts → src/lib/_common/types.ts} +13 -10
  12. package/src/lib/_common/utils.ts +57 -0
  13. package/src/lib/api/api-mutation.spec.ts +547 -0
  14. package/src/lib/api/api-query.spec.ts +40 -0
  15. package/src/lib/api/contact-card.gql.ts +85 -0
  16. package/src/lib/api/contact-card.service.spec.ts +249 -0
  17. package/src/lib/api/contact-card.service.ts +228 -0
  18. package/src/lib/api/contact-card2.gql.ts +93 -0
  19. package/src/lib/api/contact-card2.service.spec.ts +297 -0
  20. package/src/lib/api/contact-card2.service.ts +139 -0
  21. package/src/lib/api/file.service.spec.ts +14 -0
  22. package/src/lib/api/file.service.ts +81 -0
  23. package/src/lib/api/item2.gql.ts +211 -0
  24. package/src/lib/api/item2.service.spec.ts +1043 -0
  25. package/src/lib/api/item2.service.ts +481 -0
  26. package/src/lib/api/key-exchange.gql.ts +196 -0
  27. package/src/lib/api/key-exchange.service.spec.ts +470 -0
  28. package/src/lib/api/key-exchange.service.ts +731 -0
  29. package/src/lib/api/key-exchange.types.ts +235 -0
  30. package/src/lib/api/key-exchange2.gql.ts +310 -0
  31. package/src/lib/api/key-exchange2.service.spec.ts +892 -0
  32. package/src/lib/api/key-exchange2.service.ts +875 -0
  33. package/src/lib/api/lock.gql.ts +67 -0
  34. package/src/lib/api/lock.service.spec.ts +549 -0
  35. package/src/lib/api/lock.service.ts +57 -0
  36. package/src/lib/api/lr-apollo.service.spec.ts +27 -0
  37. package/src/lib/api/lr-apollo.service.ts +43 -0
  38. package/{lib/api/lr-graphql/index.d.ts → src/lib/api/lr-graphql/index.ts} +5 -5
  39. package/src/lib/api/lr-graphql/lr-graphql.service.ts +313 -0
  40. package/src/lib/api/lr-graphql/lr-merged-mutation.ts +377 -0
  41. package/src/lib/api/lr-graphql/lr-mutation-base.ts +67 -0
  42. package/src/lib/api/lr-graphql/lr-mutation.ts +74 -0
  43. package/src/lib/api/lr-graphql/lr.service.ts +28 -0
  44. package/src/lib/api/message.service.spec.ts +20 -0
  45. package/src/lib/api/message.service.ts +210 -0
  46. package/src/lib/api/persist.service.spec.ts +209 -0
  47. package/src/lib/api/persist.service.ts +220 -0
  48. package/src/lib/api/query-processor/common-processors.service.ts +148 -0
  49. package/{lib/api/query-processor/index.d.ts → src/lib/api/query-processor/index.ts} +2 -2
  50. package/src/lib/api/query-processor/query-processor.service.ts +240 -0
  51. package/src/lib/api/query-processor/tp-password-reset-processor.service.ts +177 -0
  52. package/src/lib/api/shared-contact-card.service.ts +156 -0
  53. package/src/lib/api/shared-contact-card2.gql.ts +76 -0
  54. package/src/lib/api/shared-contact-card2.service.ts +154 -0
  55. package/src/lib/api/time.service.spec.ts +48 -0
  56. package/src/lib/api/time.service.ts +155 -0
  57. package/src/lib/api/types/graphql.types.ts +48 -0
  58. package/{lib/api/types/index.d.ts → src/lib/api/types/index.ts} +2 -2
  59. package/src/lib/api/types/lr-graphql.types.ts +467 -0
  60. package/src/lib/auth/auth.config.ts +83 -0
  61. package/src/lib/auth/auth.gql.ts +62 -0
  62. package/src/lib/auth/auth.types.ts +79 -0
  63. package/src/lib/auth/idle.service.spec.ts +119 -0
  64. package/src/lib/auth/idle.service.ts +208 -0
  65. package/src/lib/auth/idle.types.ts +11 -0
  66. package/src/lib/auth/lbop.service.spec.ts +56 -0
  67. package/src/lib/auth/lbop.service.ts +539 -0
  68. package/src/lib/auth/life-ready-auth.service.spec.ts +70 -0
  69. package/src/lib/auth/life-ready-auth.service.ts +454 -0
  70. package/src/lib/auth/password.service.spec.ts +51 -0
  71. package/src/lib/auth/password.service.ts +438 -0
  72. package/src/lib/auth/register.service.spec.ts +31 -0
  73. package/src/lib/auth/register.service.ts +181 -0
  74. package/src/lib/auth/two-factor.service.spec.ts +21 -0
  75. package/src/lib/auth/two-factor.service.ts +69 -0
  76. package/src/lib/category/category-meta.service.spec.ts +28 -0
  77. package/src/lib/category/category-meta.service.ts +125 -0
  78. package/src/lib/category/category.gql.ts +449 -0
  79. package/src/lib/category/category.service.spec.ts +26 -0
  80. package/src/lib/category/category.service.ts +498 -0
  81. package/src/lib/category/category.types.ts +89 -0
  82. package/src/lib/cryptography/cryptography.types.ts +108 -0
  83. package/src/lib/cryptography/encryption.service.spec.ts +125 -0
  84. package/src/lib/cryptography/encryption.service.ts +243 -0
  85. package/src/lib/cryptography/key-factory.service.spec.ts +15 -0
  86. package/src/lib/cryptography/key-factory.service.ts +303 -0
  87. package/src/lib/cryptography/key-graph.service.spec.ts +16 -0
  88. package/src/lib/cryptography/key-graph.service.ts +354 -0
  89. package/src/lib/cryptography/key-meta.service.spec.ts +40 -0
  90. package/src/lib/cryptography/key-meta.service.ts +254 -0
  91. package/src/lib/cryptography/key.service.spec.ts +16 -0
  92. package/src/lib/cryptography/key.service.ts +154 -0
  93. package/src/lib/cryptography/slip39.service.spec.ts +44 -0
  94. package/src/lib/cryptography/slip39.service.ts +204 -0
  95. package/src/lib/cryptography/web-crypto.service.ts +22 -0
  96. package/src/lib/life-ready.config.ts +127 -0
  97. package/src/lib/life-ready.module.ts +81 -0
  98. package/src/lib/plan/plan.gql.ts +133 -0
  99. package/src/lib/plan/plan.service.spec.ts +294 -0
  100. package/src/lib/plan/plan.service.ts +198 -0
  101. package/src/lib/plan/plan.types.ts +37 -0
  102. package/src/lib/record/record-attachment.service.spec.ts +31 -0
  103. package/src/lib/record/record-attachment.service.ts +101 -0
  104. package/src/lib/record/record.gql.ts +192 -0
  105. package/src/lib/record/record.service.spec.ts +598 -0
  106. package/src/lib/record/record.service.ts +236 -0
  107. package/src/lib/record/record.types.ts +86 -0
  108. package/src/lib/record-type/record-type.service.spec.ts +16 -0
  109. package/src/lib/record-type/record-type.service.ts +71 -0
  110. package/src/lib/record-type/record-type.types.ts +58 -0
  111. package/src/lib/scenario/approvals/scenario-approval.gql.ts +112 -0
  112. package/src/lib/scenario/approvals/scenario-approval.types.ts +85 -0
  113. package/src/lib/scenario/approvals/scenario-approver.service.spec.ts +16 -0
  114. package/src/lib/scenario/approvals/scenario-approver.service.ts +422 -0
  115. package/src/lib/scenario/claimants/scenario-claimant.gql.ts +56 -0
  116. package/src/lib/scenario/claimants/scenario-claimant.service.spec.ts +16 -0
  117. package/src/lib/scenario/claimants/scenario-claimant.service.ts +100 -0
  118. package/src/lib/scenario/claimants/scenario-claimant.types.ts +21 -0
  119. package/src/lib/scenario/receivers/scenario-receiver.gql.ts +157 -0
  120. package/src/lib/scenario/receivers/scenario-receiver.service.spec.ts +16 -0
  121. package/src/lib/scenario/receivers/scenario-receiver.service.ts +278 -0
  122. package/src/lib/scenario/receivers/scenario-receiver.types.ts +66 -0
  123. package/src/lib/scenario/scenario-setup.service.spec.ts +22 -0
  124. package/src/lib/scenario/scenario-setup.service.ts +369 -0
  125. package/src/lib/scenario/scenario.gql.ts +404 -0
  126. package/src/lib/scenario/scenario.service.spec.ts +1586 -0
  127. package/src/lib/scenario/scenario.service.ts +811 -0
  128. package/src/lib/scenario/scenario.types.ts +258 -0
  129. package/src/lib/search/search.gql.ts +62 -0
  130. package/src/lib/search/search.service.spec.ts +57 -0
  131. package/src/lib/search/search.service.ts +174 -0
  132. package/src/lib/search/search.types.ts +24 -0
  133. package/src/lib/trusted-parties/tp-password-reset-request.service.ts +140 -0
  134. package/src/lib/trusted-parties/tp-password-reset-user.service.ts +359 -0
  135. package/src/lib/trusted-parties/tp-password-reset.gql.ts +453 -0
  136. package/src/lib/trusted-parties/tp-password-reset.service.spec.ts +602 -0
  137. package/src/lib/trusted-parties/tp-password-reset.service.ts +482 -0
  138. package/src/lib/trusted-parties/trusted-party.gql.ts +159 -0
  139. package/src/lib/trusted-parties/trusted-party.service.spec.ts +1008 -0
  140. package/src/lib/trusted-parties/trusted-party.service.ts +394 -0
  141. package/src/lib/trusted-parties/trusted-party.types.ts +119 -0
  142. package/src/lib/trusted-parties/trusted-party2.gql.ts +165 -0
  143. package/src/lib/trusted-parties/trusted-party2.service.spec.ts +1782 -0
  144. package/src/lib/trusted-parties/trusted-party2.service.ts +272 -0
  145. package/src/lib/users/profile-details.service.spec.ts +45 -0
  146. package/src/lib/users/profile-details.service.ts +278 -0
  147. package/src/lib/users/profile.gql.ts +108 -0
  148. package/src/lib/users/profile.service.spec.ts +97 -0
  149. package/src/lib/users/profile.service.ts +224 -0
  150. package/src/lib/users/profile.types.ts +101 -0
  151. package/src/lib/users/user.gql.ts +69 -0
  152. package/src/lib/users/user.service.spec.ts +161 -0
  153. package/src/lib/users/user.service.ts +72 -0
  154. package/src/lib/users/user.types.ts +27 -0
  155. package/{public-api.d.ts → src/public-api.ts} +96 -77
  156. package/src/test.ts +21 -0
  157. package/tsconfig.lib.json +21 -0
  158. package/tsconfig.lib.prod.json +6 -0
  159. package/tsconfig.spec.json +10 -0
  160. package/tslint.json +17 -0
  161. package/bundles/lifeready-core.umd.js +0 -15876
  162. package/bundles/lifeready-core.umd.js.map +0 -1
  163. package/bundles/lifeready-core.umd.min.js +0 -16
  164. package/bundles/lifeready-core.umd.min.js.map +0 -1
  165. package/esm2015/lib/_common/ast.js +0 -40
  166. package/esm2015/lib/_common/deferred-promise.js +0 -24
  167. package/esm2015/lib/_common/exceptions.js +0 -157
  168. package/esm2015/lib/_common/queries.gql.js +0 -190
  169. package/esm2015/lib/_common/run-outside-angular.js +0 -79
  170. package/esm2015/lib/_common/types.js +0 -1
  171. package/esm2015/lib/_common/utils.js +0 -44
  172. package/esm2015/lib/api/contact-card.gql.js +0 -79
  173. package/esm2015/lib/api/contact-card.service.js +0 -154
  174. package/esm2015/lib/api/contact-card2.gql.js +0 -60
  175. package/esm2015/lib/api/contact-card2.service.js +0 -103
  176. package/esm2015/lib/api/file.service.js +0 -74
  177. package/esm2015/lib/api/item2.gql.js +0 -110
  178. package/esm2015/lib/api/item2.service.js +0 -311
  179. package/esm2015/lib/api/key-exchange.gql.js +0 -188
  180. package/esm2015/lib/api/key-exchange.service.js +0 -442
  181. package/esm2015/lib/api/key-exchange.types.js +0 -18
  182. package/esm2015/lib/api/key-exchange2.gql.js +0 -171
  183. package/esm2015/lib/api/key-exchange2.service.js +0 -479
  184. package/esm2015/lib/api/lock.gql.js +0 -40
  185. package/esm2015/lib/api/lock.service.js +0 -64
  186. package/esm2015/lib/api/lr-apollo.service.js +0 -46
  187. package/esm2015/lib/api/lr-graphql/index.js +0 -6
  188. package/esm2015/lib/api/lr-graphql/lr-graphql.service.js +0 -155
  189. package/esm2015/lib/api/lr-graphql/lr-merged-mutation.js +0 -213
  190. package/esm2015/lib/api/lr-graphql/lr-mutation-base.js +0 -51
  191. package/esm2015/lib/api/lr-graphql/lr-mutation.js +0 -48
  192. package/esm2015/lib/api/lr-graphql/lr.service.js +0 -18
  193. package/esm2015/lib/api/message.service.js +0 -138
  194. package/esm2015/lib/api/persist.service.js +0 -181
  195. package/esm2015/lib/api/query-processor/common-processors.service.js +0 -93
  196. package/esm2015/lib/api/query-processor/index.js +0 -3
  197. package/esm2015/lib/api/query-processor/query-processor.service.js +0 -192
  198. package/esm2015/lib/api/query-processor/tp-password-reset-processor.service.js +0 -109
  199. package/esm2015/lib/api/shared-contact-card.service.js +0 -119
  200. package/esm2015/lib/api/shared-contact-card2.gql.js +0 -41
  201. package/esm2015/lib/api/shared-contact-card2.service.js +0 -117
  202. package/esm2015/lib/api/time.service.js +0 -146
  203. package/esm2015/lib/api/types/graphql.types.js +0 -7
  204. package/esm2015/lib/api/types/index.js +0 -3
  205. package/esm2015/lib/api/types/lr-graphql.types.js +0 -71
  206. package/esm2015/lib/auth/auth.config.js +0 -57
  207. package/esm2015/lib/auth/auth.gql.js +0 -48
  208. package/esm2015/lib/auth/auth.types.js +0 -27
  209. package/esm2015/lib/auth/idle.service.js +0 -168
  210. package/esm2015/lib/auth/idle.types.js +0 -7
  211. package/esm2015/lib/auth/lbop.service.js +0 -355
  212. package/esm2015/lib/auth/life-ready-auth.service.js +0 -333
  213. package/esm2015/lib/auth/password.service.js +0 -320
  214. package/esm2015/lib/auth/register.service.js +0 -172
  215. package/esm2015/lib/auth/two-factor.service.js +0 -74
  216. package/esm2015/lib/category/category-meta.service.js +0 -99
  217. package/esm2015/lib/category/category.gql.js +0 -406
  218. package/esm2015/lib/category/category.service.js +0 -390
  219. package/esm2015/lib/category/category.types.js +0 -29
  220. package/esm2015/lib/cryptography/cryptography.types.js +0 -11
  221. package/esm2015/lib/cryptography/encryption.service.js +0 -189
  222. package/esm2015/lib/cryptography/key-factory.service.js +0 -237
  223. package/esm2015/lib/cryptography/key-graph.service.js +0 -280
  224. package/esm2015/lib/cryptography/key-meta.service.js +0 -200
  225. package/esm2015/lib/cryptography/key.service.js +0 -124
  226. package/esm2015/lib/cryptography/slip39.service.js +0 -169
  227. package/esm2015/lib/cryptography/web-crypto.service.js +0 -29
  228. package/esm2015/lib/life-ready.config.js +0 -84
  229. package/esm2015/lib/life-ready.module.js +0 -74
  230. package/esm2015/lib/plan/plan.gql.js +0 -123
  231. package/esm2015/lib/plan/plan.service.js +0 -149
  232. package/esm2015/lib/plan/plan.types.js +0 -11
  233. package/esm2015/lib/record/record-attachment.service.js +0 -101
  234. package/esm2015/lib/record/record.gql.js +0 -179
  235. package/esm2015/lib/record/record.service.js +0 -206
  236. package/esm2015/lib/record/record.types.js +0 -15
  237. package/esm2015/lib/record-type/record-type.service.js +0 -75
  238. package/esm2015/lib/record-type/record-type.types.js +0 -28
  239. package/esm2015/lib/scenario/approvals/scenario-approval.gql.js +0 -105
  240. package/esm2015/lib/scenario/approvals/scenario-approval.types.js +0 -1
  241. package/esm2015/lib/scenario/approvals/scenario-approver.service.js +0 -300
  242. package/esm2015/lib/scenario/claimants/scenario-claimant.gql.js +0 -52
  243. package/esm2015/lib/scenario/claimants/scenario-claimant.service.js +0 -97
  244. package/esm2015/lib/scenario/claimants/scenario-claimant.types.js +0 -1
  245. package/esm2015/lib/scenario/receivers/scenario-receiver.gql.js +0 -150
  246. package/esm2015/lib/scenario/receivers/scenario-receiver.service.js +0 -229
  247. package/esm2015/lib/scenario/receivers/scenario-receiver.types.js +0 -1
  248. package/esm2015/lib/scenario/scenario-setup.service.js +0 -269
  249. package/esm2015/lib/scenario/scenario.gql.js +0 -368
  250. package/esm2015/lib/scenario/scenario.service.js +0 -611
  251. package/esm2015/lib/scenario/scenario.types.js +0 -64
  252. package/esm2015/lib/search/search.gql.js +0 -62
  253. package/esm2015/lib/search/search.service.js +0 -156
  254. package/esm2015/lib/search/search.types.js +0 -6
  255. package/esm2015/lib/trusted-parties/tp-password-reset-request.service.js +0 -112
  256. package/esm2015/lib/trusted-parties/tp-password-reset-user.service.js +0 -266
  257. package/esm2015/lib/trusted-parties/tp-password-reset.gql.js +0 -232
  258. package/esm2015/lib/trusted-parties/tp-password-reset.service.js +0 -300
  259. package/esm2015/lib/trusted-parties/trusted-party.gql.js +0 -148
  260. package/esm2015/lib/trusted-parties/trusted-party.service.js +0 -326
  261. package/esm2015/lib/trusted-parties/trusted-party.types.js +0 -41
  262. package/esm2015/lib/trusted-parties/trusted-party2.gql.js +0 -87
  263. package/esm2015/lib/trusted-parties/trusted-party2.service.js +0 -215
  264. package/esm2015/lib/users/profile-details.service.js +0 -214
  265. package/esm2015/lib/users/profile.gql.js +0 -97
  266. package/esm2015/lib/users/profile.service.js +0 -169
  267. package/esm2015/lib/users/profile.types.js +0 -34
  268. package/esm2015/lib/users/user.gql.js +0 -60
  269. package/esm2015/lib/users/user.service.js +0 -79
  270. package/esm2015/lib/users/user.types.js +0 -5
  271. package/esm2015/lifeready-core.js +0 -10
  272. package/esm2015/public-api.js +0 -81
  273. package/fesm2015/lifeready-core.js +0 -13282
  274. package/fesm2015/lifeready-core.js.map +0 -1
  275. package/lib/_common/ast.d.ts +0 -11
  276. package/lib/_common/deferred-promise.d.ts +0 -12
  277. package/lib/_common/exceptions.d.ts +0 -109
  278. package/lib/_common/queries.gql.d.ts +0 -10
  279. package/lib/_common/run-outside-angular.d.ts +0 -14
  280. package/lib/_common/utils.d.ts +0 -3
  281. package/lib/api/contact-card.gql.d.ts +0 -7
  282. package/lib/api/contact-card.service.d.ts +0 -52
  283. package/lib/api/contact-card2.gql.d.ts +0 -34
  284. package/lib/api/contact-card2.service.d.ts +0 -49
  285. package/lib/api/file.service.d.ts +0 -18
  286. package/lib/api/item2.gql.d.ts +0 -96
  287. package/lib/api/item2.service.d.ts +0 -177
  288. package/lib/api/key-exchange.gql.d.ts +0 -9
  289. package/lib/api/key-exchange.service.d.ts +0 -39
  290. package/lib/api/key-exchange.types.d.ts +0 -196
  291. package/lib/api/key-exchange2.gql.d.ts +0 -125
  292. package/lib/api/key-exchange2.service.d.ts +0 -187
  293. package/lib/api/lock.gql.d.ts +0 -27
  294. package/lib/api/lock.service.d.ts +0 -25
  295. package/lib/api/lr-apollo.service.d.ts +0 -15
  296. package/lib/api/lr-graphql/lr-graphql.service.d.ts +0 -60
  297. package/lib/api/lr-graphql/lr-merged-mutation.d.ts +0 -27
  298. package/lib/api/lr-graphql/lr-mutation-base.d.ts +0 -28
  299. package/lib/api/lr-graphql/lr-mutation.d.ts +0 -8
  300. package/lib/api/lr-graphql/lr.service.d.ts +0 -9
  301. package/lib/api/message.service.d.ts +0 -58
  302. package/lib/api/persist.service.d.ts +0 -31
  303. package/lib/api/query-processor/common-processors.service.d.ts +0 -36
  304. package/lib/api/query-processor/query-processor.service.d.ts +0 -18
  305. package/lib/api/query-processor/tp-password-reset-processor.service.d.ts +0 -15
  306. package/lib/api/shared-contact-card.service.d.ts +0 -33
  307. package/lib/api/shared-contact-card2.gql.d.ts +0 -36
  308. package/lib/api/shared-contact-card2.service.d.ts +0 -45
  309. package/lib/api/time.service.d.ts +0 -16
  310. package/lib/api/types/graphql.types.d.ts +0 -29
  311. package/lib/api/types/lr-graphql.types.d.ts +0 -385
  312. package/lib/auth/auth.config.d.ts +0 -5
  313. package/lib/auth/auth.gql.d.ts +0 -15
  314. package/lib/auth/auth.types.d.ts +0 -66
  315. package/lib/auth/idle.service.d.ts +0 -40
  316. package/lib/auth/idle.types.d.ts +0 -10
  317. package/lib/auth/lbop.service.d.ts +0 -91
  318. package/lib/auth/life-ready-auth.service.d.ts +0 -46
  319. package/lib/auth/password.service.d.ts +0 -78
  320. package/lib/auth/register.service.d.ts +0 -25
  321. package/lib/auth/two-factor.service.d.ts +0 -15
  322. package/lib/category/category-meta.service.d.ts +0 -23
  323. package/lib/category/category.gql.d.ts +0 -45
  324. package/lib/category/category.service.d.ts +0 -67
  325. package/lib/category/category.types.d.ts +0 -79
  326. package/lib/cryptography/cryptography.types.d.ts +0 -83
  327. package/lib/cryptography/encryption.service.d.ts +0 -41
  328. package/lib/cryptography/key-factory.service.d.ts +0 -38
  329. package/lib/cryptography/key-graph.service.d.ts +0 -33
  330. package/lib/cryptography/key-meta.service.d.ts +0 -44
  331. package/lib/cryptography/key.service.d.ts +0 -36
  332. package/lib/cryptography/slip39.service.d.ts +0 -43
  333. package/lib/cryptography/web-crypto.service.d.ts +0 -5
  334. package/lib/life-ready.config.d.ts +0 -14
  335. package/lib/life-ready.module.d.ts +0 -5
  336. package/lib/plan/plan.gql.d.ts +0 -11
  337. package/lib/plan/plan.service.d.ts +0 -33
  338. package/lib/plan/plan.types.d.ts +0 -31
  339. package/lib/record/record-attachment.service.d.ts +0 -16
  340. package/lib/record/record.gql.d.ts +0 -14
  341. package/lib/record/record.service.d.ts +0 -25
  342. package/lib/record/record.types.d.ts +0 -57
  343. package/lib/record-type/record-type.service.d.ts +0 -11
  344. package/lib/record-type/record-type.types.d.ts +0 -50
  345. package/lib/scenario/approvals/scenario-approval.gql.d.ts +0 -7
  346. package/lib/scenario/approvals/scenario-approval.types.d.ts +0 -63
  347. package/lib/scenario/approvals/scenario-approver.service.d.ts +0 -32
  348. package/lib/scenario/claimants/scenario-claimant.gql.d.ts +0 -5
  349. package/lib/scenario/claimants/scenario-claimant.service.d.ts +0 -17
  350. package/lib/scenario/claimants/scenario-claimant.types.d.ts +0 -18
  351. package/lib/scenario/receivers/scenario-receiver.gql.d.ts +0 -8
  352. package/lib/scenario/receivers/scenario-receiver.service.d.ts +0 -30
  353. package/lib/scenario/receivers/scenario-receiver.types.d.ts +0 -54
  354. package/lib/scenario/scenario-setup.service.d.ts +0 -22
  355. package/lib/scenario/scenario.gql.d.ts +0 -34
  356. package/lib/scenario/scenario.service.d.ts +0 -58
  357. package/lib/scenario/scenario.types.d.ts +0 -217
  358. package/lib/search/search.gql.d.ts +0 -1
  359. package/lib/search/search.service.d.ts +0 -25
  360. package/lib/search/search.types.d.ts +0 -20
  361. package/lib/trusted-parties/tp-password-reset-request.service.d.ts +0 -20
  362. package/lib/trusted-parties/tp-password-reset-user.service.d.ts +0 -41
  363. package/lib/trusted-parties/tp-password-reset.gql.d.ts +0 -218
  364. package/lib/trusted-parties/tp-password-reset.service.d.ts +0 -131
  365. package/lib/trusted-parties/trusted-party.gql.d.ts +0 -9
  366. package/lib/trusted-parties/trusted-party.service.d.ts +0 -44
  367. package/lib/trusted-parties/trusted-party.types.d.ts +0 -102
  368. package/lib/trusted-parties/trusted-party2.gql.d.ts +0 -79
  369. package/lib/trusted-parties/trusted-party2.service.d.ts +0 -114
  370. package/lib/users/profile-details.service.d.ts +0 -21
  371. package/lib/users/profile.gql.d.ts +0 -11
  372. package/lib/users/profile.service.d.ts +0 -35
  373. package/lib/users/profile.types.d.ts +0 -96
  374. package/lib/users/user.gql.d.ts +0 -9
  375. package/lib/users/user.service.d.ts +0 -12
  376. package/lib/users/user.types.d.ts +0 -23
  377. package/lifeready-core.d.ts +0 -9
  378. package/lifeready-core.metadata.json +0 -1
@@ -0,0 +1,249 @@
1
+ import { TestBed } from '@angular/core/testing';
2
+ import { environment } from 'projects/lr-auth-app/src/environments/environment';
3
+ import {
4
+ loginTestUser,
5
+ logoutUser,
6
+ } from '../auth/life-ready-auth.service.spec';
7
+ import {
8
+ lrConfigureTestingModule,
9
+ lrExpectAsyncThrow,
10
+ lrit,
11
+ } from '../_common/tests';
12
+ import {
13
+ ContactCardService,
14
+ CreateContactCardInput,
15
+ } from './contact-card.service';
16
+
17
+ const TIMEOUT = 1000 * 60 * 10;
18
+
19
+ describe('ContactCardService', () => {
20
+ let ccService: ContactCardService;
21
+
22
+ beforeEach(async () => {
23
+ lrConfigureTestingModule();
24
+ ccService = TestBed.inject(ContactCardService);
25
+ }, TIMEOUT);
26
+
27
+ lrit(
28
+ 'should create single contact card',
29
+ async () => {
30
+ if (!environment.test) {
31
+ return;
32
+ }
33
+
34
+ const {
35
+ username: username1,
36
+ password: password1,
37
+ } = environment.test.users[0];
38
+ let res;
39
+ let cc1;
40
+
41
+ // ------------------------------------------------------
42
+ // Test User 1
43
+ // ------------------------------------------------------
44
+ await loginTestUser(username1, password1);
45
+
46
+ // Clear contact cards
47
+ await Promise.all(
48
+ (await ccService.getContactCardList()).map(async (cc) => {
49
+ res = await ccService.deleteContactCard(cc.id);
50
+ expect(res).toBeTruthy();
51
+ })
52
+ );
53
+
54
+ const card1: CreateContactCardInput = {
55
+ plainCipherDataJson: { secret: 1 },
56
+ publicDataJson: '',
57
+ publicSearchableJson: '',
58
+ plainDataJson: { name: { name: 'name 1' } },
59
+ };
60
+
61
+ res = await ccService.createContactCard(card1);
62
+ cc1 = await ccService.getContactCard(res.id);
63
+ expect(cc1.id).toEqual(res.id);
64
+ expect(cc1.plainCipherDataJson).toEqual(card1.plainCipherDataJson);
65
+ expect(cc1.publicDataJson).toEqual(card1.publicDataJson);
66
+ expect(cc1.publicSearchableJson).toEqual(card1.publicSearchableJson);
67
+ },
68
+ TIMEOUT
69
+ );
70
+
71
+ lrit(
72
+ 'should create contact cards',
73
+ async () => {
74
+ if (!environment.test) {
75
+ return;
76
+ }
77
+
78
+ const {
79
+ username: username1,
80
+ password: password1,
81
+ } = environment.test.users[0];
82
+ const {
83
+ username: username2,
84
+ password: password2,
85
+ } = environment.test.users[1];
86
+ const {
87
+ username: username3,
88
+ password: password3,
89
+ } = environment.test.users[2];
90
+
91
+ let res;
92
+ let cc1;
93
+ let cc2;
94
+ let cc3;
95
+
96
+ const publicSearchableFilter = {
97
+ filter: [{ contains: { b: { c: 2 } } }],
98
+ };
99
+
100
+ // ------------------------------------------------------
101
+ // Signed out
102
+ // ------------------------------------------------------
103
+ await logoutUser();
104
+
105
+ (await lrExpectAsyncThrow(ccService.getContactCardList())).toBeTruthy();
106
+ (
107
+ await lrExpectAsyncThrow(
108
+ ccService.searchContactCard(publicSearchableFilter)
109
+ )
110
+ ).toBeTruthy();
111
+
112
+ // ------------------------------------------------------
113
+ // Test User 1
114
+ // ------------------------------------------------------
115
+ await loginTestUser(username1, password1);
116
+
117
+ // Clear contact cards
118
+ await Promise.all(
119
+ (await ccService.getContactCardList()).map(async (cc) => {
120
+ res = await ccService.deleteContactCard(cc.id);
121
+ expect(res).toBeTruthy();
122
+ })
123
+ );
124
+
125
+ const card1: CreateContactCardInput = {
126
+ plainCipherDataJson: { secret: 1 },
127
+ publicDataJson: { public: 1 },
128
+ publicSearchableJson: { publicSearchable: 1 },
129
+ plainDataJson: { name: { name: 'name 1' } },
130
+ };
131
+
132
+ const card2: CreateContactCardInput = {
133
+ plainCipherDataJson: { secret: 2 },
134
+ publicDataJson: { public: 2 },
135
+ publicSearchableJson: { publicSearchable: 2 },
136
+ plainDataJson: { name: { name: 'name 2' } },
137
+ };
138
+
139
+ const card2Updated: CreateContactCardInput = {
140
+ plainCipherDataJson: { secret: 22 },
141
+ publicDataJson: { public: 22 },
142
+ publicSearchableJson: { publicSearchable: 22 },
143
+ plainDataJson: { name: { name: 'name 22' } },
144
+ };
145
+
146
+ const card3: CreateContactCardInput = {
147
+ plainCipherDataJson: { secret: 3 },
148
+ publicDataJson: { public: 3 },
149
+ publicSearchableJson: { publicSearchable: 3 },
150
+ plainDataJson: { name: { name: 'name 3' } },
151
+ };
152
+
153
+ // Create contact card 1
154
+ res = await ccService.createContactCard(card1);
155
+ cc1 = await ccService.getContactCard(res.id);
156
+ expect(cc1.id).toEqual(res.id);
157
+ expect(cc1.plainCipherDataJson).toEqual(card1.plainCipherDataJson);
158
+ expect(cc1.publicDataJson).toEqual(card1.publicDataJson);
159
+ expect(cc1.publicSearchableJson).toEqual(card1.publicSearchableJson);
160
+
161
+ // Create contact card 2
162
+ res = await ccService.createContactCard(card2);
163
+ cc2 = await ccService.getContactCard(res.id);
164
+
165
+ // List
166
+ res = await ccService.getContactCardList();
167
+ expect(res.length).toBe(2);
168
+
169
+ // Update
170
+ res = await ccService.updateContactCard({
171
+ id: cc2.id,
172
+ ...card2Updated,
173
+ });
174
+
175
+ const cc2Updated = await ccService.getContactCard(cc2.id);
176
+ expect(cc2Updated.id).toEqual(cc2.id);
177
+ expect(cc2Updated.plainCipherDataJson).toEqual(
178
+ card2Updated.plainCipherDataJson
179
+ );
180
+ expect(cc2Updated.publicDataJson).toEqual(card2Updated.publicDataJson);
181
+ expect(cc2Updated.publicSearchableJson).toEqual(
182
+ card2Updated.publicSearchableJson
183
+ );
184
+ // Expecting keys to remain unchanged.
185
+ expect(cc2Updated.key.id).toEqual(cc2.key.id);
186
+
187
+ // Create contact card 3
188
+ cc3 = await ccService.createContactCard(card3);
189
+ res = await ccService.getContactCardList();
190
+ expect(res.length).toEqual(3);
191
+ res = await ccService.deleteContactCard(cc3.id);
192
+ res = await ccService.getContactCardList();
193
+ expect(res.length).toEqual(2);
194
+
195
+ // ------------------------------------------------------
196
+ // Signed out
197
+ // ------------------------------------------------------
198
+ await logoutUser();
199
+ (await lrExpectAsyncThrow(ccService.getContactCard(cc1.id))).toBeTruthy(
200
+ 'Query should only available to logged in users'
201
+ );
202
+
203
+ // ------------------------------------------------------
204
+ // Test User 2
205
+ // ------------------------------------------------------
206
+ await loginTestUser(username2, password2);
207
+
208
+ (
209
+ await lrExpectAsyncThrow(ccService.deleteContactCard(cc1.id))
210
+ ).toBeTruthy('Should not be able to delete another user\'s contact card.');
211
+ (
212
+ await lrExpectAsyncThrow(
213
+ ccService.updateContactCard({
214
+ id: cc2.id,
215
+ ...card2,
216
+ })
217
+ )
218
+ ).toBeTruthy('Should not be able to update another user\'s contact card.');
219
+
220
+ // Should be able to search by public searchable
221
+ res = await ccService.searchContactCard({
222
+ filter: [
223
+ {
224
+ contains: {
225
+ ...card1.publicSearchableJson,
226
+ },
227
+ },
228
+ ],
229
+ });
230
+
231
+ expect(res.length).toBe(1);
232
+ expect(res[0].id).toBe(cc1.id);
233
+
234
+ // Should not be able to search by public data
235
+ res = await ccService.searchContactCard({
236
+ filter: [
237
+ {
238
+ contains: {
239
+ ...card1.publicDataJson,
240
+ },
241
+ },
242
+ ],
243
+ });
244
+
245
+ expect(res.length).toBe(0);
246
+ },
247
+ TIMEOUT
248
+ );
249
+ });
@@ -0,0 +1,228 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { HasKeyGraph, Key } from '../cryptography/cryptography.types';
3
+ import { EncryptionService } from '../cryptography/encryption.service';
4
+ import { KeyGraphService } from '../cryptography/key-graph.service';
5
+ import { KeyService } from '../cryptography/key.service';
6
+ import { HasEdges } from '../_common/types';
7
+ import { LrApolloService } from './lr-apollo.service';
8
+ import {
9
+ SearchContactCardQuery,
10
+ ContactCardListQuery,
11
+ ContactCardQuery,
12
+ CreateContactCardMutation,
13
+ UpdateContactCardMutation,
14
+ DeleteContactCardMutation,
15
+ } from './contact-card.gql';
16
+ import { KeyFactoryService } from '../cryptography/key-factory.service';
17
+ import { MainContactCardPlainFields } from '../users/profile.types';
18
+ import { KeyMetaService } from '../cryptography/key-meta.service';
19
+
20
+ interface ContactCardQuery extends HasKeyGraph {
21
+ contactCard: ContactCard;
22
+ }
23
+
24
+ interface SearchContactCardQuery extends HasKeyGraph {
25
+ searchContactCards: HasEdges<ContactCard>;
26
+ }
27
+
28
+ interface ContactCardListQuery extends HasKeyGraph {
29
+ contactCards: HasEdges<ContactCard>;
30
+ }
31
+
32
+ export class ContactCard {
33
+ id: string;
34
+ key: Key;
35
+ sigPxk: Key;
36
+ publicData: string;
37
+ publicDataSig: string;
38
+ publicSearchable: string;
39
+ publicSearchableSig: string;
40
+ plainData: string;
41
+ plainDataSig: string;
42
+ cipherData: string;
43
+ // Parse/decrypted versions of the above.
44
+ publicDataJson: any;
45
+ publicSearchableJson: any;
46
+ plainCipherDataJson: any;
47
+ plainDataJson: any;
48
+ }
49
+
50
+ export interface CreateContactCardInput {
51
+ publicDataJson: any;
52
+ publicSearchableJson: any;
53
+ plainCipherDataJson: any;
54
+ plainDataJson: MainContactCardPlainFields;
55
+ }
56
+
57
+ export interface UpdateContactCardInput extends CreateContactCardInput {
58
+ id: string;
59
+ }
60
+
61
+ @Injectable({
62
+ providedIn: 'root',
63
+ })
64
+ export class ContactCardService {
65
+ constructor(
66
+ private keyFactory: KeyFactoryService,
67
+ private keyService: KeyService,
68
+ private lrApollo: LrApolloService,
69
+ private keyGraph: KeyGraphService,
70
+ private encryptionService: EncryptionService,
71
+ private keyMetaService: KeyMetaService
72
+ ) {}
73
+
74
+ async decryptContactCard(cc: ContactCard): Promise<ContactCard> {
75
+ const ret = {
76
+ ...cc,
77
+ publicDataJson: JSON.parse(cc.publicData),
78
+ publicSearchableJson: JSON.parse(cc.publicSearchable),
79
+ };
80
+
81
+ if (cc.key) {
82
+ const key = await this.keyGraph.getJwkKey(cc.key.id);
83
+ // TODO: verify signature
84
+ ret.plainCipherDataJson = await this.encryptionService.decrypt(
85
+ key,
86
+ cc.cipherData
87
+ );
88
+ }
89
+
90
+ return ret;
91
+ }
92
+
93
+ async decryptContactCardEdges(
94
+ hasEdges: HasEdges<ContactCard>
95
+ ): Promise<ContactCard[]> {
96
+ return Promise.all(
97
+ hasEdges.edges.map(async (edge: any) => {
98
+ const cc = edge.node as ContactCard;
99
+ return await this.decryptContactCard(cc);
100
+ })
101
+ );
102
+ }
103
+
104
+ // { "filter": [{ "contains": { "a": true } }] }
105
+ async searchContactCard(publicSearchable: object): Promise<ContactCard[]> {
106
+ const data = await this.lrApollo.query<SearchContactCardQuery>({
107
+ query: SearchContactCardQuery,
108
+ variables: {
109
+ publicSearchable: JSON.stringify(publicSearchable),
110
+ },
111
+ });
112
+
113
+ return await this.decryptContactCardEdges(data.searchContactCards);
114
+ }
115
+
116
+ async getContactCardList(): Promise<ContactCard[]> {
117
+ const data = await this.lrApollo.query<ContactCardListQuery>({
118
+ query: ContactCardListQuery,
119
+ });
120
+
121
+ return await this.decryptContactCardEdges(data.contactCards);
122
+ }
123
+
124
+ async getContactCard(id: string): Promise<ContactCard> {
125
+ const data = await this.lrApollo.query<ContactCardQuery>({
126
+ query: ContactCardQuery,
127
+ variables: {
128
+ id,
129
+ },
130
+ });
131
+
132
+ return await this.decryptContactCard(data.contactCard);
133
+ }
134
+
135
+ private async prepareContactCardInput(
136
+ input: CreateContactCardInput
137
+ ): Promise<any> {
138
+ const sigPxk = await this.keyService.getCurrentSigPxk();
139
+ const publicDataSig = JSON.stringify(
140
+ await this.encryptionService.sign(sigPxk.jwk, input.publicDataJson)
141
+ );
142
+ const publicSearchableSig = JSON.stringify(
143
+ await this.encryptionService.sign(sigPxk.jwk, input.publicSearchableJson)
144
+ );
145
+ const plainDataSig = JSON.stringify(
146
+ await this.encryptionService.sign(sigPxk.jwk, input.plainDataJson)
147
+ );
148
+
149
+ return {
150
+ sigPxkId: sigPxk.id,
151
+ publicDataSig,
152
+ publicSearchableSig,
153
+ plainDataSig,
154
+ };
155
+ }
156
+
157
+ async createContactCard(input: CreateContactCardInput): Promise<ContactCard> {
158
+ // Get encryption key
159
+ const rootKey = await this.keyService.getCurrentRootKey();
160
+ const key = await this.keyFactory.createKey();
161
+ const wrappedKey = await this.keyGraph.encryptToString(
162
+ rootKey.jwk,
163
+ key.toJSON(true)
164
+ );
165
+ const cipherData = await this.keyGraph.encryptToString(
166
+ key,
167
+ input.plainCipherDataJson
168
+ );
169
+
170
+ const params = await this.prepareContactCardInput(input);
171
+
172
+ const data = await this.lrApollo.mutate<{
173
+ createContactCard: { contactCard: ContactCard };
174
+ }>({
175
+ mutation: CreateContactCardMutation,
176
+ variables: {
177
+ input: {
178
+ ...params,
179
+ wrappingKeyId: rootKey.id,
180
+ wrappedKey,
181
+ cipherData,
182
+ },
183
+ },
184
+ });
185
+
186
+ return data.createContactCard.contactCard;
187
+ }
188
+
189
+ async updateContactCard(input: UpdateContactCardInput): Promise<ContactCard> {
190
+ // Get encryption key
191
+ const cc = await this.getContactCard(input.id);
192
+ const key = await this.keyGraph.getJwkKey(cc.key.id);
193
+ const cipherData = await this.keyGraph.encryptToString(
194
+ key,
195
+ input.plainCipherDataJson
196
+ );
197
+
198
+ const params = await this.prepareContactCardInput(input);
199
+
200
+ const data = await this.lrApollo.mutate<{
201
+ updateContactCard: { contactCard: ContactCard };
202
+ }>({
203
+ mutation: UpdateContactCardMutation,
204
+ variables: {
205
+ input: {
206
+ ...params,
207
+ id: input.id,
208
+ cipherData,
209
+ },
210
+ },
211
+ });
212
+
213
+ return data.updateContactCard.contactCard;
214
+ }
215
+
216
+ async deleteContactCard(id: string): Promise<string> {
217
+ const data = await this.lrApollo.mutate<any>({
218
+ mutation: DeleteContactCardMutation,
219
+ variables: {
220
+ input: {
221
+ id,
222
+ },
223
+ },
224
+ });
225
+
226
+ return data.deleteContactCard.id;
227
+ }
228
+ }
@@ -0,0 +1,93 @@
1
+ import { Connection, ContactCardNode, ID } from './types';
2
+ import { gqlTyped } from '../_common/ast';
3
+
4
+ export const ContactCardFragment = gqlTyped<ContactCardNode>`
5
+ fragment ContactCardFragment on ContactCardNode {
6
+ id
7
+ publicData
8
+ publicSearchable
9
+ cipherData
10
+ key {
11
+ id
12
+ }
13
+ }
14
+ `;
15
+
16
+ export interface CreateContactCardMutation {
17
+ createContactCard: {
18
+ contactCard: {
19
+ id: ID;
20
+ };
21
+ };
22
+ }
23
+ export const CreateContactCardMutation = gqlTyped<CreateContactCardMutation>`
24
+ mutation CreateContactCardMutation(
25
+ $input: CreateContactCardInput!
26
+ ) {
27
+ createContactCard(input: $input) {
28
+ contactCard {
29
+ id
30
+ }
31
+ }
32
+ }
33
+ `;
34
+
35
+ export interface UpdateContactCardMutation {
36
+ updateContactCard: {
37
+ contactCard: {
38
+ id: ID;
39
+ };
40
+ };
41
+ }
42
+ export const UpdateContactCardMutation = gqlTyped<UpdateContactCardMutation>`
43
+ mutation UpdateContactCardMutation($input: UpdateContactCardInput!) {
44
+ updateContactCard(input: $input) {
45
+ contactCard {
46
+ id
47
+ }
48
+ }
49
+ }
50
+ `;
51
+
52
+ export interface DeleteContactCardMutation {
53
+ deleteContactCard: {
54
+ deleteContactCard: {
55
+ id: ID;
56
+ };
57
+ };
58
+ }
59
+ export const DeleteContactCardMutation = gqlTyped<DeleteContactCardMutation>`
60
+ mutation DeleteContactCardMutation($input: DeleteContactCardInput!) {
61
+ deleteContactCard(input: $input) {
62
+ id
63
+ }
64
+ }
65
+ `;
66
+
67
+ export interface ContactCardsQuery {
68
+ contactCards: Connection<ContactCardNode>;
69
+ }
70
+ export const ContactCardsQuery = gqlTyped<ContactCardsQuery>`
71
+ query ContactCardsQuery {
72
+ contactCards(orderBy: "created") {
73
+ edges {
74
+ node {
75
+ ...ContactCardFragment
76
+ }
77
+ }
78
+ }
79
+ }
80
+ ${ContactCardFragment}
81
+ `;
82
+
83
+ export interface ContactCardQuery {
84
+ contactCard: ContactCardNode;
85
+ }
86
+ export const ContactCardQuery = gqlTyped<ContactCardQuery>`
87
+ query ContactCardQuery($id: LrRelayIdInput!) {
88
+ contactCard(id: $id) {
89
+ ...ContactCardFragment
90
+ }
91
+ }
92
+ ${ContactCardFragment}
93
+ `;