@lifeready/core 1.0.1 → 1.0.3

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 (379) hide show
  1. package/bundles/lifeready-core.umd.js +15939 -0
  2. package/bundles/lifeready-core.umd.js.map +1 -0
  3. package/bundles/lifeready-core.umd.min.js +16 -0
  4. package/bundles/lifeready-core.umd.min.js.map +1 -0
  5. package/esm2015/lib/_common/ast.js +40 -0
  6. package/esm2015/lib/_common/deferred-promise.js +24 -0
  7. package/esm2015/lib/_common/exceptions.js +157 -0
  8. package/esm2015/lib/_common/queries.gql.js +190 -0
  9. package/esm2015/lib/_common/run-outside-angular.js +79 -0
  10. package/esm2015/lib/_common/types.js +1 -0
  11. package/esm2015/lib/_common/utils.js +44 -0
  12. package/esm2015/lib/api/contact-card.gql.js +79 -0
  13. package/esm2015/lib/api/contact-card.service.js +154 -0
  14. package/esm2015/lib/api/contact-card2.gql.js +60 -0
  15. package/esm2015/lib/api/contact-card2.service.js +103 -0
  16. package/esm2015/lib/api/file.service.js +74 -0
  17. package/esm2015/lib/api/item2.gql.js +110 -0
  18. package/esm2015/lib/api/item2.service.js +311 -0
  19. package/esm2015/lib/api/key-exchange.gql.js +188 -0
  20. package/esm2015/lib/api/key-exchange.service.js +442 -0
  21. package/esm2015/lib/api/key-exchange.types.js +18 -0
  22. package/esm2015/lib/api/key-exchange2.gql.js +171 -0
  23. package/esm2015/lib/api/key-exchange2.service.js +479 -0
  24. package/esm2015/lib/api/lock.gql.js +40 -0
  25. package/esm2015/lib/api/lock.service.js +64 -0
  26. package/esm2015/lib/api/lr-apollo.service.js +46 -0
  27. package/esm2015/lib/api/lr-graphql/index.js +6 -0
  28. package/esm2015/lib/api/lr-graphql/lr-graphql.service.js +155 -0
  29. package/esm2015/lib/api/lr-graphql/lr-merged-mutation.js +213 -0
  30. package/esm2015/lib/api/lr-graphql/lr-mutation-base.js +51 -0
  31. package/esm2015/lib/api/lr-graphql/lr-mutation.js +48 -0
  32. package/esm2015/lib/api/lr-graphql/lr.service.js +18 -0
  33. package/esm2015/lib/api/message.service.js +138 -0
  34. package/esm2015/lib/api/persist.service.js +181 -0
  35. package/esm2015/lib/api/query-processor/common-processors.service.js +93 -0
  36. package/esm2015/lib/api/query-processor/index.js +3 -0
  37. package/esm2015/lib/api/query-processor/query-processor.service.js +192 -0
  38. package/esm2015/lib/api/query-processor/tp-password-reset-processor.service.js +109 -0
  39. package/esm2015/lib/api/shared-contact-card.service.js +119 -0
  40. package/esm2015/lib/api/shared-contact-card2.gql.js +41 -0
  41. package/esm2015/lib/api/shared-contact-card2.service.js +117 -0
  42. package/esm2015/lib/api/time.service.js +146 -0
  43. package/esm2015/lib/api/types/graphql.types.js +7 -0
  44. package/esm2015/lib/api/types/index.js +3 -0
  45. package/esm2015/lib/api/types/lr-graphql.types.js +71 -0
  46. package/esm2015/lib/auth/auth.config.js +57 -0
  47. package/esm2015/lib/auth/auth.gql.js +48 -0
  48. package/esm2015/lib/auth/auth.types.js +27 -0
  49. package/esm2015/lib/auth/idle.service.js +168 -0
  50. package/esm2015/lib/auth/idle.types.js +7 -0
  51. package/esm2015/lib/auth/lbop.service.js +355 -0
  52. package/esm2015/lib/auth/life-ready-auth.service.js +500 -0
  53. package/esm2015/lib/auth/password.service.js +320 -0
  54. package/esm2015/lib/auth/register.service.js +172 -0
  55. package/esm2015/lib/auth/two-factor.service.js +74 -0
  56. package/esm2015/lib/category/category-meta.service.js +99 -0
  57. package/esm2015/lib/category/category.gql.js +406 -0
  58. package/esm2015/lib/category/category.service.js +390 -0
  59. package/esm2015/lib/category/category.types.js +29 -0
  60. package/esm2015/lib/cryptography/cryptography.types.js +11 -0
  61. package/esm2015/lib/cryptography/encryption.service.js +189 -0
  62. package/esm2015/lib/cryptography/key-factory.service.js +237 -0
  63. package/esm2015/lib/cryptography/key-graph.service.js +280 -0
  64. package/esm2015/lib/cryptography/key-meta.service.js +200 -0
  65. package/esm2015/lib/cryptography/key.service.js +124 -0
  66. package/esm2015/lib/cryptography/slip39.service.js +169 -0
  67. package/esm2015/lib/cryptography/web-crypto.service.js +29 -0
  68. package/esm2015/lib/life-ready.config.js +84 -0
  69. package/esm2015/lib/life-ready.module.js +74 -0
  70. package/esm2015/lib/plan/plan.gql.js +123 -0
  71. package/esm2015/lib/plan/plan.service.js +149 -0
  72. package/esm2015/lib/plan/plan.types.js +11 -0
  73. package/esm2015/lib/record/record-attachment.service.js +101 -0
  74. package/esm2015/lib/record/record.gql.js +179 -0
  75. package/esm2015/lib/record/record.service.js +206 -0
  76. package/esm2015/lib/record/record.types.js +15 -0
  77. package/esm2015/lib/record-type/record-type.service.js +75 -0
  78. package/esm2015/lib/record-type/record-type.types.js +28 -0
  79. package/esm2015/lib/scenario/approvals/scenario-approval.gql.js +105 -0
  80. package/esm2015/lib/scenario/approvals/scenario-approval.types.js +1 -0
  81. package/esm2015/lib/scenario/approvals/scenario-approver.service.js +300 -0
  82. package/esm2015/lib/scenario/claimants/scenario-claimant.gql.js +52 -0
  83. package/esm2015/lib/scenario/claimants/scenario-claimant.service.js +97 -0
  84. package/esm2015/lib/scenario/claimants/scenario-claimant.types.js +1 -0
  85. package/esm2015/lib/scenario/receivers/scenario-receiver.gql.js +150 -0
  86. package/esm2015/lib/scenario/receivers/scenario-receiver.service.js +229 -0
  87. package/esm2015/lib/scenario/receivers/scenario-receiver.types.js +1 -0
  88. package/esm2015/lib/scenario/scenario-setup.service.js +269 -0
  89. package/esm2015/lib/scenario/scenario.gql.js +368 -0
  90. package/esm2015/lib/scenario/scenario.service.js +611 -0
  91. package/esm2015/lib/scenario/scenario.types.js +64 -0
  92. package/esm2015/lib/search/search.gql.js +62 -0
  93. package/esm2015/lib/search/search.service.js +156 -0
  94. package/esm2015/lib/search/search.types.js +6 -0
  95. package/esm2015/lib/trusted-parties/tp-password-reset-request.service.js +112 -0
  96. package/esm2015/lib/trusted-parties/tp-password-reset-user.service.js +129 -0
  97. package/esm2015/lib/trusted-parties/tp-password-reset.constants.js +4 -0
  98. package/esm2015/lib/trusted-parties/tp-password-reset.gql.js +232 -0
  99. package/esm2015/lib/trusted-parties/tp-password-reset.service.js +299 -0
  100. package/esm2015/lib/trusted-parties/trusted-party.gql.js +148 -0
  101. package/esm2015/lib/trusted-parties/trusted-party.service.js +326 -0
  102. package/esm2015/lib/trusted-parties/trusted-party.types.js +41 -0
  103. package/esm2015/lib/trusted-parties/trusted-party2.gql.js +87 -0
  104. package/esm2015/lib/trusted-parties/trusted-party2.service.js +215 -0
  105. package/esm2015/lib/users/profile-details.service.js +214 -0
  106. package/esm2015/lib/users/profile.gql.js +97 -0
  107. package/esm2015/lib/users/profile.service.js +169 -0
  108. package/esm2015/lib/users/profile.types.js +34 -0
  109. package/esm2015/lib/users/user.gql.js +60 -0
  110. package/esm2015/lib/users/user.service.js +79 -0
  111. package/esm2015/lib/users/user.types.js +5 -0
  112. package/esm2015/lifeready-core.js +10 -0
  113. package/esm2015/public-api.js +81 -0
  114. package/fesm2015/lifeready-core.js +13314 -0
  115. package/fesm2015/lifeready-core.js.map +1 -0
  116. package/lib/_common/ast.d.ts +11 -0
  117. package/lib/_common/deferred-promise.d.ts +12 -0
  118. package/lib/_common/exceptions.d.ts +109 -0
  119. package/lib/_common/queries.gql.d.ts +10 -0
  120. package/lib/_common/run-outside-angular.d.ts +14 -0
  121. package/{src/lib/_common/types.ts → lib/_common/types.d.ts} +3 -6
  122. package/lib/_common/utils.d.ts +3 -0
  123. package/lib/api/contact-card.gql.d.ts +7 -0
  124. package/lib/api/contact-card.service.d.ts +52 -0
  125. package/lib/api/contact-card2.gql.d.ts +34 -0
  126. package/lib/api/contact-card2.service.d.ts +49 -0
  127. package/lib/api/file.service.d.ts +18 -0
  128. package/lib/api/item2.gql.d.ts +96 -0
  129. package/lib/api/item2.service.d.ts +177 -0
  130. package/lib/api/key-exchange.gql.d.ts +9 -0
  131. package/lib/api/key-exchange.service.d.ts +39 -0
  132. package/lib/api/key-exchange.types.d.ts +196 -0
  133. package/lib/api/key-exchange2.gql.d.ts +125 -0
  134. package/lib/api/key-exchange2.service.d.ts +187 -0
  135. package/lib/api/lock.gql.d.ts +27 -0
  136. package/lib/api/lock.service.d.ts +25 -0
  137. package/lib/api/lr-apollo.service.d.ts +15 -0
  138. package/lib/api/lr-graphql/lr-graphql.service.d.ts +60 -0
  139. package/lib/api/lr-graphql/lr-merged-mutation.d.ts +27 -0
  140. package/lib/api/lr-graphql/lr-mutation-base.d.ts +28 -0
  141. package/lib/api/lr-graphql/lr-mutation.d.ts +8 -0
  142. package/lib/api/lr-graphql/lr.service.d.ts +9 -0
  143. package/lib/api/message.service.d.ts +58 -0
  144. package/lib/api/persist.service.d.ts +31 -0
  145. package/lib/api/query-processor/common-processors.service.d.ts +36 -0
  146. package/lib/api/query-processor/query-processor.service.d.ts +18 -0
  147. package/lib/api/query-processor/tp-password-reset-processor.service.d.ts +15 -0
  148. package/lib/api/shared-contact-card.service.d.ts +33 -0
  149. package/lib/api/shared-contact-card2.gql.d.ts +36 -0
  150. package/lib/api/shared-contact-card2.service.d.ts +45 -0
  151. package/lib/api/time.service.d.ts +16 -0
  152. package/lib/api/types/graphql.types.d.ts +29 -0
  153. package/lib/api/types/lr-graphql.types.d.ts +385 -0
  154. package/lib/auth/auth.config.d.ts +5 -0
  155. package/lib/auth/auth.gql.d.ts +15 -0
  156. package/lib/auth/auth.types.d.ts +66 -0
  157. package/lib/auth/idle.service.d.ts +40 -0
  158. package/lib/auth/idle.types.d.ts +10 -0
  159. package/lib/auth/lbop.service.d.ts +91 -0
  160. package/lib/auth/life-ready-auth.service.d.ts +59 -0
  161. package/lib/auth/password.service.d.ts +78 -0
  162. package/lib/auth/register.service.d.ts +25 -0
  163. package/lib/auth/two-factor.service.d.ts +15 -0
  164. package/lib/category/category-meta.service.d.ts +23 -0
  165. package/lib/category/category.gql.d.ts +45 -0
  166. package/lib/category/category.service.d.ts +67 -0
  167. package/lib/category/category.types.d.ts +79 -0
  168. package/lib/cryptography/cryptography.types.d.ts +83 -0
  169. package/lib/cryptography/encryption.service.d.ts +41 -0
  170. package/lib/cryptography/key-factory.service.d.ts +38 -0
  171. package/lib/cryptography/key-graph.service.d.ts +33 -0
  172. package/lib/cryptography/key-meta.service.d.ts +44 -0
  173. package/lib/cryptography/key.service.d.ts +36 -0
  174. package/lib/cryptography/slip39.service.d.ts +43 -0
  175. package/lib/cryptography/web-crypto.service.d.ts +5 -0
  176. package/lib/life-ready.config.d.ts +14 -0
  177. package/lib/life-ready.module.d.ts +5 -0
  178. package/lib/plan/plan.gql.d.ts +11 -0
  179. package/lib/plan/plan.service.d.ts +33 -0
  180. package/lib/plan/plan.types.d.ts +31 -0
  181. package/lib/record/record-attachment.service.d.ts +16 -0
  182. package/lib/record/record.gql.d.ts +14 -0
  183. package/lib/record/record.service.d.ts +25 -0
  184. package/lib/record/record.types.d.ts +57 -0
  185. package/lib/record-type/record-type.service.d.ts +11 -0
  186. package/lib/record-type/record-type.types.d.ts +50 -0
  187. package/lib/scenario/approvals/scenario-approval.gql.d.ts +7 -0
  188. package/lib/scenario/approvals/scenario-approval.types.d.ts +63 -0
  189. package/lib/scenario/approvals/scenario-approver.service.d.ts +32 -0
  190. package/lib/scenario/claimants/scenario-claimant.gql.d.ts +5 -0
  191. package/lib/scenario/claimants/scenario-claimant.service.d.ts +17 -0
  192. package/lib/scenario/claimants/scenario-claimant.types.d.ts +18 -0
  193. package/lib/scenario/receivers/scenario-receiver.gql.d.ts +8 -0
  194. package/lib/scenario/receivers/scenario-receiver.service.d.ts +30 -0
  195. package/lib/scenario/receivers/scenario-receiver.types.d.ts +54 -0
  196. package/lib/scenario/scenario-setup.service.d.ts +22 -0
  197. package/lib/scenario/scenario.gql.d.ts +34 -0
  198. package/lib/scenario/scenario.service.d.ts +58 -0
  199. package/lib/scenario/scenario.types.d.ts +217 -0
  200. package/lib/search/search.gql.d.ts +1 -0
  201. package/lib/search/search.service.d.ts +25 -0
  202. package/lib/search/search.types.d.ts +20 -0
  203. package/lib/trusted-parties/tp-password-reset-request.service.d.ts +20 -0
  204. package/lib/trusted-parties/tp-password-reset-user.service.d.ts +35 -0
  205. package/lib/trusted-parties/tp-password-reset.constants.d.ts +3 -0
  206. package/lib/trusted-parties/tp-password-reset.gql.d.ts +218 -0
  207. package/lib/trusted-parties/tp-password-reset.service.d.ts +130 -0
  208. package/lib/trusted-parties/trusted-party.gql.d.ts +9 -0
  209. package/lib/trusted-parties/trusted-party.service.d.ts +44 -0
  210. package/lib/trusted-parties/trusted-party.types.d.ts +102 -0
  211. package/lib/trusted-parties/trusted-party2.gql.d.ts +79 -0
  212. package/lib/trusted-parties/trusted-party2.service.d.ts +114 -0
  213. package/lib/users/profile-details.service.d.ts +21 -0
  214. package/lib/users/profile.gql.d.ts +11 -0
  215. package/lib/users/profile.service.d.ts +35 -0
  216. package/lib/users/profile.types.d.ts +96 -0
  217. package/lib/users/user.gql.d.ts +9 -0
  218. package/lib/users/user.service.d.ts +12 -0
  219. package/lib/users/user.types.d.ts +23 -0
  220. package/lifeready-core.d.ts +9 -0
  221. package/lifeready-core.metadata.json +1 -0
  222. package/package.json +29 -21
  223. package/{src/public-api.ts → public-api.d.ts} +0 -19
  224. package/karma.conf.js +0 -32
  225. package/ng-package.json +0 -26
  226. package/src/lib/_common/ast.ts +0 -75
  227. package/src/lib/_common/deferred-promise.ts +0 -35
  228. package/src/lib/_common/exceptions.ts +0 -189
  229. package/src/lib/_common/queries.gql.ts +0 -200
  230. package/src/lib/_common/run-outside-angular.ts +0 -125
  231. package/src/lib/_common/tests.ts +0 -82
  232. package/src/lib/_common/utils.ts +0 -57
  233. package/src/lib/api/api-mutation.spec.ts +0 -547
  234. package/src/lib/api/api-query.spec.ts +0 -40
  235. package/src/lib/api/contact-card.gql.ts +0 -85
  236. package/src/lib/api/contact-card.service.spec.ts +0 -249
  237. package/src/lib/api/contact-card.service.ts +0 -228
  238. package/src/lib/api/contact-card2.gql.ts +0 -93
  239. package/src/lib/api/contact-card2.service.spec.ts +0 -297
  240. package/src/lib/api/contact-card2.service.ts +0 -139
  241. package/src/lib/api/file.service.spec.ts +0 -14
  242. package/src/lib/api/file.service.ts +0 -81
  243. package/src/lib/api/item2.gql.ts +0 -211
  244. package/src/lib/api/item2.service.spec.ts +0 -1043
  245. package/src/lib/api/item2.service.ts +0 -481
  246. package/src/lib/api/key-exchange.gql.ts +0 -196
  247. package/src/lib/api/key-exchange.service.spec.ts +0 -470
  248. package/src/lib/api/key-exchange.service.ts +0 -731
  249. package/src/lib/api/key-exchange.types.ts +0 -235
  250. package/src/lib/api/key-exchange2.gql.ts +0 -310
  251. package/src/lib/api/key-exchange2.service.spec.ts +0 -892
  252. package/src/lib/api/key-exchange2.service.ts +0 -875
  253. package/src/lib/api/lock.gql.ts +0 -67
  254. package/src/lib/api/lock.service.spec.ts +0 -549
  255. package/src/lib/api/lock.service.ts +0 -57
  256. package/src/lib/api/lr-apollo.service.spec.ts +0 -27
  257. package/src/lib/api/lr-apollo.service.ts +0 -43
  258. package/src/lib/api/lr-graphql/lr-graphql.service.ts +0 -313
  259. package/src/lib/api/lr-graphql/lr-merged-mutation.ts +0 -377
  260. package/src/lib/api/lr-graphql/lr-mutation-base.ts +0 -67
  261. package/src/lib/api/lr-graphql/lr-mutation.ts +0 -74
  262. package/src/lib/api/lr-graphql/lr.service.ts +0 -28
  263. package/src/lib/api/message.service.spec.ts +0 -20
  264. package/src/lib/api/message.service.ts +0 -210
  265. package/src/lib/api/persist.service.spec.ts +0 -209
  266. package/src/lib/api/persist.service.ts +0 -220
  267. package/src/lib/api/query-processor/common-processors.service.ts +0 -148
  268. package/src/lib/api/query-processor/query-processor.service.ts +0 -240
  269. package/src/lib/api/query-processor/tp-password-reset-processor.service.ts +0 -177
  270. package/src/lib/api/shared-contact-card.service.ts +0 -156
  271. package/src/lib/api/shared-contact-card2.gql.ts +0 -76
  272. package/src/lib/api/shared-contact-card2.service.ts +0 -154
  273. package/src/lib/api/time.service.spec.ts +0 -48
  274. package/src/lib/api/time.service.ts +0 -155
  275. package/src/lib/api/types/graphql.types.ts +0 -48
  276. package/src/lib/api/types/lr-graphql.types.ts +0 -467
  277. package/src/lib/auth/auth.config.ts +0 -83
  278. package/src/lib/auth/auth.gql.ts +0 -62
  279. package/src/lib/auth/auth.types.ts +0 -79
  280. package/src/lib/auth/idle.service.spec.ts +0 -119
  281. package/src/lib/auth/idle.service.ts +0 -208
  282. package/src/lib/auth/idle.types.ts +0 -11
  283. package/src/lib/auth/lbop.service.spec.ts +0 -56
  284. package/src/lib/auth/lbop.service.ts +0 -539
  285. package/src/lib/auth/life-ready-auth.service.spec.ts +0 -70
  286. package/src/lib/auth/life-ready-auth.service.ts +0 -454
  287. package/src/lib/auth/password.service.spec.ts +0 -51
  288. package/src/lib/auth/password.service.ts +0 -438
  289. package/src/lib/auth/register.service.spec.ts +0 -31
  290. package/src/lib/auth/register.service.ts +0 -181
  291. package/src/lib/auth/two-factor.service.spec.ts +0 -21
  292. package/src/lib/auth/two-factor.service.ts +0 -69
  293. package/src/lib/category/category-meta.service.spec.ts +0 -28
  294. package/src/lib/category/category-meta.service.ts +0 -125
  295. package/src/lib/category/category.gql.ts +0 -449
  296. package/src/lib/category/category.service.spec.ts +0 -26
  297. package/src/lib/category/category.service.ts +0 -498
  298. package/src/lib/category/category.types.ts +0 -89
  299. package/src/lib/cryptography/cryptography.types.ts +0 -108
  300. package/src/lib/cryptography/encryption.service.spec.ts +0 -125
  301. package/src/lib/cryptography/encryption.service.ts +0 -243
  302. package/src/lib/cryptography/key-factory.service.spec.ts +0 -15
  303. package/src/lib/cryptography/key-factory.service.ts +0 -303
  304. package/src/lib/cryptography/key-graph.service.spec.ts +0 -16
  305. package/src/lib/cryptography/key-graph.service.ts +0 -354
  306. package/src/lib/cryptography/key-meta.service.spec.ts +0 -40
  307. package/src/lib/cryptography/key-meta.service.ts +0 -254
  308. package/src/lib/cryptography/key.service.spec.ts +0 -16
  309. package/src/lib/cryptography/key.service.ts +0 -154
  310. package/src/lib/cryptography/slip39.service.spec.ts +0 -44
  311. package/src/lib/cryptography/slip39.service.ts +0 -204
  312. package/src/lib/cryptography/web-crypto.service.ts +0 -22
  313. package/src/lib/life-ready.config.ts +0 -127
  314. package/src/lib/life-ready.module.ts +0 -81
  315. package/src/lib/plan/plan.gql.ts +0 -133
  316. package/src/lib/plan/plan.service.spec.ts +0 -294
  317. package/src/lib/plan/plan.service.ts +0 -198
  318. package/src/lib/plan/plan.types.ts +0 -37
  319. package/src/lib/record/record-attachment.service.spec.ts +0 -31
  320. package/src/lib/record/record-attachment.service.ts +0 -101
  321. package/src/lib/record/record.gql.ts +0 -192
  322. package/src/lib/record/record.service.spec.ts +0 -598
  323. package/src/lib/record/record.service.ts +0 -236
  324. package/src/lib/record/record.types.ts +0 -86
  325. package/src/lib/record-type/record-type.service.spec.ts +0 -16
  326. package/src/lib/record-type/record-type.service.ts +0 -71
  327. package/src/lib/record-type/record-type.types.ts +0 -58
  328. package/src/lib/scenario/approvals/scenario-approval.gql.ts +0 -112
  329. package/src/lib/scenario/approvals/scenario-approval.types.ts +0 -85
  330. package/src/lib/scenario/approvals/scenario-approver.service.spec.ts +0 -16
  331. package/src/lib/scenario/approvals/scenario-approver.service.ts +0 -422
  332. package/src/lib/scenario/claimants/scenario-claimant.gql.ts +0 -56
  333. package/src/lib/scenario/claimants/scenario-claimant.service.spec.ts +0 -16
  334. package/src/lib/scenario/claimants/scenario-claimant.service.ts +0 -100
  335. package/src/lib/scenario/claimants/scenario-claimant.types.ts +0 -21
  336. package/src/lib/scenario/receivers/scenario-receiver.gql.ts +0 -157
  337. package/src/lib/scenario/receivers/scenario-receiver.service.spec.ts +0 -16
  338. package/src/lib/scenario/receivers/scenario-receiver.service.ts +0 -278
  339. package/src/lib/scenario/receivers/scenario-receiver.types.ts +0 -66
  340. package/src/lib/scenario/scenario-setup.service.spec.ts +0 -22
  341. package/src/lib/scenario/scenario-setup.service.ts +0 -369
  342. package/src/lib/scenario/scenario.gql.ts +0 -404
  343. package/src/lib/scenario/scenario.service.spec.ts +0 -1586
  344. package/src/lib/scenario/scenario.service.ts +0 -811
  345. package/src/lib/scenario/scenario.types.ts +0 -258
  346. package/src/lib/search/search.gql.ts +0 -62
  347. package/src/lib/search/search.service.spec.ts +0 -57
  348. package/src/lib/search/search.service.ts +0 -174
  349. package/src/lib/search/search.types.ts +0 -24
  350. package/src/lib/trusted-parties/tp-password-reset-request.service.ts +0 -140
  351. package/src/lib/trusted-parties/tp-password-reset-user.service.ts +0 -359
  352. package/src/lib/trusted-parties/tp-password-reset.gql.ts +0 -453
  353. package/src/lib/trusted-parties/tp-password-reset.service.spec.ts +0 -602
  354. package/src/lib/trusted-parties/tp-password-reset.service.ts +0 -482
  355. package/src/lib/trusted-parties/trusted-party.gql.ts +0 -159
  356. package/src/lib/trusted-parties/trusted-party.service.spec.ts +0 -1008
  357. package/src/lib/trusted-parties/trusted-party.service.ts +0 -394
  358. package/src/lib/trusted-parties/trusted-party.types.ts +0 -119
  359. package/src/lib/trusted-parties/trusted-party2.gql.ts +0 -165
  360. package/src/lib/trusted-parties/trusted-party2.service.spec.ts +0 -1782
  361. package/src/lib/trusted-parties/trusted-party2.service.ts +0 -272
  362. package/src/lib/users/profile-details.service.spec.ts +0 -45
  363. package/src/lib/users/profile-details.service.ts +0 -278
  364. package/src/lib/users/profile.gql.ts +0 -108
  365. package/src/lib/users/profile.service.spec.ts +0 -97
  366. package/src/lib/users/profile.service.ts +0 -224
  367. package/src/lib/users/profile.types.ts +0 -101
  368. package/src/lib/users/user.gql.ts +0 -69
  369. package/src/lib/users/user.service.spec.ts +0 -161
  370. package/src/lib/users/user.service.ts +0 -72
  371. package/src/lib/users/user.types.ts +0 -27
  372. package/src/test.ts +0 -21
  373. package/tsconfig.lib.json +0 -21
  374. package/tsconfig.lib.prod.json +0 -6
  375. package/tsconfig.spec.json +0 -10
  376. package/tslint.json +0 -17
  377. /package/{src/lib/api/lr-graphql/index.ts → lib/api/lr-graphql/index.d.ts} +0 -0
  378. /package/{src/lib/api/query-processor/index.ts → lib/api/query-processor/index.d.ts} +0 -0
  379. /package/{src/lib/api/types/index.ts → lib/api/types/index.d.ts} +0 -0
@@ -1,210 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import gql from 'graphql-tag';
3
- import { JWK } from 'node-jose';
4
- import { EncryptionService } from '../cryptography/encryption.service';
5
- import { KeyGraphService } from '../cryptography/key-graph.service';
6
- import { KeyGraphFragment } from '../_common/queries.gql';
7
- import { KeyExchangeService } from './key-exchange.service';
8
- import { LrApolloService } from './lr-apollo.service';
9
- import { KeyFactoryService as KFS } from '../cryptography/key-factory.service';
10
-
11
- export const SendMessageMutation = gql`
12
- mutation SendMessage($input: SendMessageInput!) {
13
- sendMessage(input: $input) {
14
- message {
15
- id
16
- }
17
- }
18
- }
19
- `;
20
-
21
- export const MessageQuery = gql`
22
- query Message($id: LrRelayIdInput!) {
23
- message(id: $id) {
24
- id
25
- sender {
26
- username
27
- }
28
- receiver {
29
- username
30
- }
31
- plainMessage
32
- signedCipherMessage
33
- sharedKey {
34
- id
35
- }
36
- senderSigPbk {
37
- id
38
- }
39
- }
40
- keyGraph {
41
- ...KeyGraphFragment
42
- }
43
- }
44
- ${KeyGraphFragment}
45
- `;
46
-
47
- export interface SendMessage {
48
- message: {
49
- id: string;
50
- };
51
- }
52
-
53
- export interface SendMessageInput {
54
- username?: string;
55
- userId?: string;
56
- plainMessageJson?: any;
57
- plainCipherMessageJson?: any;
58
- }
59
-
60
- export interface Message {
61
- id: string;
62
- sender: {
63
- id: string;
64
- username: string;
65
- };
66
- receiver: {
67
- id: string;
68
- username: string;
69
- };
70
- plainMessage: string;
71
- plainMessageJson?: any;
72
- signedCipherMessage: string;
73
- plainSignedCipherMessageJson?: any;
74
- senderSigPbk: {
75
- id: string;
76
- };
77
- sharedKey: {
78
- id: string;
79
- };
80
- }
81
-
82
- interface DecryptMessageOptions {
83
- sharedKey: JWK.Key;
84
- senderSigPbk: JWK.Key;
85
- }
86
-
87
- @Injectable({
88
- providedIn: 'root',
89
- })
90
- export class MessageService {
91
- private readonly encrypt = this.encryptionService.encrypt.bind(
92
- this.encryptionService
93
- );
94
- private readonly decrypt = this.encryptionService.decrypt.bind(
95
- this.encryptionService
96
- );
97
- private readonly sign = this.encryptionService.sign.bind(
98
- this.encryptionService
99
- );
100
- private readonly verify = this.encryptionService.verify.bind(
101
- this.encryptionService
102
- );
103
-
104
- constructor(
105
- private lrApollo: LrApolloService,
106
- private keyGraph: KeyGraphService,
107
- private encryptionService: EncryptionService,
108
- private keyExchangeService: KeyExchangeService
109
- ) {}
110
-
111
- async sendMessage({
112
- username,
113
- userId,
114
- plainMessageJson,
115
- plainCipherMessageJson,
116
- }: SendMessageInput): Promise<SendMessage> {
117
- const userSharedKey = await this.keyExchangeService.currentUserSharedKey({
118
- username,
119
- userId,
120
- });
121
-
122
- const input: any = {
123
- receiverUsername: username,
124
- receiverId: userId,
125
- sharedKeyId: userSharedKey.sharedKey.id,
126
- senderSigPbkId: userSharedKey.userSigPrk.id,
127
- };
128
-
129
- if (plainCipherMessageJson) {
130
- const sharedKey = await this.keyGraph.getJwkKey(
131
- userSharedKey.sharedKey.id
132
- );
133
- const cipherMessage = await this.encrypt(
134
- sharedKey,
135
- plainCipherMessageJson
136
- );
137
-
138
- const senderSigPrk = await this.keyGraph.getJwkKey(
139
- userSharedKey.userSigPrk.id
140
- );
141
- const signedCipherMessage = await this.sign(senderSigPrk, cipherMessage);
142
-
143
- input.signedCipherMessage = JSON.stringify(signedCipherMessage);
144
- }
145
-
146
- if (plainMessageJson) {
147
- input.plainMessage = JSON.stringify(plainMessageJson);
148
- }
149
-
150
- const res = await this.lrApollo.query<any>({
151
- query: SendMessageMutation,
152
- variables: {
153
- input,
154
- },
155
- });
156
-
157
- return res.sendMessage;
158
- }
159
-
160
- async decryptMessage(
161
- message: Message,
162
- { sharedKey, senderSigPbk }: DecryptMessageOptions
163
- ): Promise<void> {
164
- const signedCipherMessage = await this.verify(
165
- senderSigPbk,
166
- JSON.parse(message.signedCipherMessage)
167
- );
168
-
169
- message.plainSignedCipherMessageJson = await this.decrypt(
170
- sharedKey,
171
- signedCipherMessage
172
- );
173
- }
174
-
175
- async getMessage(id: string): Promise<Message> {
176
- const res = await this.lrApollo.query<any>({
177
- query: MessageQuery,
178
- variables: {
179
- id,
180
- },
181
- });
182
-
183
- this.keyGraph.addKeys(res.keyGraph);
184
-
185
- const message = res.message as Message;
186
-
187
- const sharedKey = await this.keyGraph.getJwkKey(message.sharedKey.id);
188
-
189
- // The sender would be getting the Prk back. The receiver gets the Pbk back.
190
- // But only the Pbk is needed here to verify signature.
191
- // So both sender and receiver can access this message.
192
- const senderSigPbk = await this.keyGraph.getJwkKey(message.senderSigPbk.id);
193
-
194
- // Test bad signature
195
- // senderSigPbk = senderSigPbk.toJSON();
196
- // senderSigPbk.n = "x" + senderSigPbk.n.substring(1);
197
- // senderSigPbk = await KFS.asKey(senderSigPbk);
198
-
199
- await this.decryptMessage(message, {
200
- sharedKey,
201
- senderSigPbk,
202
- });
203
-
204
- if (message.plainMessage) {
205
- message.plainMessageJson = JSON.parse(message.plainMessage);
206
- }
207
-
208
- return res.message;
209
- }
210
- }
@@ -1,209 +0,0 @@
1
- import { TestBed } from '@angular/core/testing';
2
- import {
3
- delaySec,
4
- lrConfigureTestingModule,
5
- lrExpectAsyncThrow,
6
- lrit,
7
- } from '../_common/tests';
8
- import { PersistService } from 'projects/core/src/lib/api/persist.service';
9
- import {
10
- loginTestUser,
11
- logoutUser,
12
- } from '../auth/life-ready-auth.service.spec';
13
- import { EncryptionService } from '../cryptography/encryption.service';
14
- import { JWK } from 'node-jose';
15
- import { CookieService } from 'ngx-cookie-service';
16
- import { LifeReadyConfig, LR_CONFIG } from '../life-ready.config';
17
-
18
- const TIMEOUT = 1000 * 60 * 10;
19
-
20
- describe('PersistService', () => {
21
- let persistService: PersistService;
22
- let encryptionService: EncryptionService;
23
- let cookieService: CookieService;
24
- let config: LifeReadyConfig;
25
-
26
- beforeEach(async () => {
27
- lrConfigureTestingModule();
28
- persistService = TestBed.inject(PersistService);
29
- encryptionService = TestBed.inject(EncryptionService);
30
- cookieService = TestBed.inject(CookieService);
31
- config = TestBed.inject(LR_CONFIG);
32
- }, TIMEOUT);
33
-
34
- function expiresAfter(seconds: number) {
35
- return new Date(Date.now() + 1000 * seconds);
36
- }
37
-
38
- lrit(
39
- 'should persist',
40
- async () => {
41
- let res: any;
42
- const name1 = 'name1';
43
- const value1 = 'value1';
44
- const name2 = 'name2';
45
- const value2 = {
46
- test: 2,
47
- };
48
- const name3 = 'name3';
49
- const value3 = {
50
- test: 3,
51
- };
52
-
53
- await persistService.set({
54
- name: name1,
55
- value: value1,
56
- serverSession: false,
57
- });
58
- res = await persistService.get(name1);
59
- console.log('res:', res);
60
- expect(res).toEqual(value1);
61
-
62
- await persistService.set({
63
- name: name2,
64
- value: value2,
65
- serverSession: false,
66
- });
67
- res = await persistService.get(name2);
68
- console.log('res:', res);
69
- expect(res).toEqual(value2);
70
-
71
- await persistService.set({
72
- name: name3,
73
- value: value3,
74
- serverSession: false,
75
- expiry: expiresAfter(3),
76
- });
77
- res = await persistService.get(name3);
78
- console.log('res:', res);
79
- expect(res).toEqual(value3);
80
-
81
- await delaySec(1);
82
- res = await persistService.get(name3);
83
- console.log('res:', res);
84
- expect(res).toEqual(value3);
85
-
86
- await delaySec(2);
87
- await delaySec(1); // give it some buffer to make sure it's expired.
88
- res = await persistService.get(name3);
89
- console.log('res:', res);
90
- expect(res).toBeNull();
91
- },
92
- TIMEOUT
93
- );
94
-
95
- lrit(
96
- 'should persist with serverSession',
97
- async () => {
98
- expect(config.disableSessionEncryptionKey).toBeFalsy(
99
- 'Current tests can not run because disableSessionEncryptionKey=True. You can ignore this if this is deliberate decision.'
100
- );
101
-
102
- let res: any;
103
- const name1 = 'name1';
104
- const value1 = 'value1';
105
- const name2 = 'name2';
106
- const value2 = {
107
- test: 2,
108
- };
109
- const name3 = 'name3';
110
- const value3 = {
111
- test: 3,
112
- };
113
-
114
- await logoutUser();
115
-
116
- (
117
- await lrExpectAsyncThrow(
118
- persistService.set({
119
- name: name1,
120
- value: value1,
121
- serverSession: true,
122
- })
123
- )
124
- ).toBeTruthy('Pre-auth will should not have session key.');
125
-
126
- const user = await loginTestUser();
127
-
128
- // --------------------------------------------------------
129
- // Test with server session
130
- // --------------------------------------------------------
131
- await persistService.set({
132
- name: name1,
133
- value: value1,
134
- serverSession: true,
135
- });
136
-
137
- res = await persistService.get(name1);
138
- expect(res).toEqual(value1);
139
-
140
- // Independently make sure the encryption is done properly in localstorage and cookies.
141
- res = await encryptionService.decrypt(
142
- await JWK.asKey(JSON.parse(user.sessionEncryptionKey)),
143
- JSON.parse(localStorage.getItem(`lrSession-${name1}`)).data
144
- );
145
- expect(res).toEqual(value1);
146
- expect(cookieService.get(`lrSession-${name1}`)).toBe('');
147
-
148
- // --------------------------------------------------------
149
- // Test with cookie expiry
150
- // --------------------------------------------------------
151
- await persistService.set({
152
- name: name1,
153
- value: value1,
154
- serverSession: false,
155
- expiry: new Date(Date.now() + 1000 * 2),
156
- });
157
- res = await persistService.get(name1);
158
- expect(res).toEqual(value1);
159
-
160
- // Manual verification
161
- res = await encryptionService.decrypt(
162
- // Cookie key
163
- await JWK.asKey(
164
- JSON.parse(cookieService.get(`lrSession-${name1}`)).key
165
- ),
166
- JSON.parse(localStorage.getItem(`lrSession-${name1}`)).data
167
- );
168
- expect(res).toEqual(value1);
169
-
170
- await delaySec(2);
171
-
172
- res = await persistService.get(name1);
173
- expect(res).toBeNull('Should have expired');
174
-
175
- // --------------------------------------------------------
176
- // Test with both server session and cookie expiry
177
- // --------------------------------------------------------
178
- await persistService.set({
179
- name: name1,
180
- value: value1,
181
- serverSession: true,
182
- expiry: new Date(Date.now() + 1000 * 2),
183
- });
184
-
185
- res = await persistService.get(name1);
186
- expect(res).toEqual(value1);
187
-
188
- // Manual verification
189
- res = await encryptionService.decrypt(
190
- // Cookie key
191
- await JWK.asKey(
192
- JSON.parse(cookieService.get(`lrSession-${name1}`)).key
193
- ),
194
- JSON.parse(localStorage.getItem(`lrSession-${name1}`)).data
195
- );
196
- res = await encryptionService.decrypt(
197
- // session key
198
- await JWK.asKey(JSON.parse(user.sessionEncryptionKey)),
199
- res
200
- );
201
- expect(res).toEqual(value1);
202
-
203
- await delaySec(2);
204
- res = await persistService.get(name1);
205
- expect(res).toBeNull('Should have expired');
206
- },
207
- TIMEOUT
208
- );
209
- });
@@ -1,220 +0,0 @@
1
- import { JWK } from 'node-jose';
2
- import { Injectable, Injector } from '@angular/core';
3
- import { CookieService } from 'ngx-cookie-service';
4
- import { EncryptionService } from '../cryptography/encryption.service';
5
- import { isDevMode } from '@angular/core';
6
- import { LrBadArgumentException } from '../_common/exceptions';
7
- import { KeyFactoryService as KFS } from '../cryptography/key-factory.service';
8
-
9
- interface Item {
10
- data: string;
11
- expiry?: string; // iso format
12
- serverSession?: boolean;
13
- }
14
-
15
- interface CookieItem {
16
- key: any;
17
- }
18
-
19
- @Injectable({
20
- providedIn: 'root',
21
- })
22
- export class PersistService {
23
- private readonly KEY_PREFIX = 'lrSession-';
24
-
25
- private cookieSecure = true;
26
- private serverSessionEncryptionKey: JWK.Key = null;
27
-
28
- constructor(
29
- private keyFactory: KFS,
30
- private cookieService: CookieService,
31
- private encryptionService: EncryptionService,
32
- private injector: Injector
33
- ) {
34
- if (isDevMode()) {
35
- this.setCookieSecure(false);
36
- }
37
- }
38
-
39
- setServerSessionEncryptionKey(key: JWK.Key) {
40
- this.serverSessionEncryptionKey = key;
41
- }
42
-
43
- clearServerSessionEncryptionKey() {
44
- this.serverSessionEncryptionKey = null;
45
- }
46
-
47
- // It's important that set and delete cookie use exactly the same set of parameters.
48
- private getCookieParams() {
49
- return {
50
- path: '/',
51
- domain: null, // which means the current domain of the frontend app.
52
- secure: this.cookieSecure,
53
- sameSite: 'Lax' as 'Lax' | 'None' | 'Strict',
54
- };
55
- }
56
-
57
- public clear() {
58
- // Remove all cookies
59
- Object.keys(this.cookieService.getAll()).forEach((key) => {
60
- if (key.startsWith(this.KEY_PREFIX)) {
61
- this.deletePrefixedName(key);
62
- }
63
- });
64
-
65
- // Remove all persisted session variables
66
- Object.keys(localStorage).forEach((key) => {
67
- if (key.startsWith(this.KEY_PREFIX)) {
68
- this.deletePrefixedName(key);
69
- }
70
- });
71
- }
72
-
73
- public setCookieSecure(value: boolean) {
74
- this.cookieSecure = value;
75
- if (!value) {
76
- if (isDevMode()) {
77
- console.warn(
78
- 'The cookie secure flag in persistService has been set to false, set it to true in production mode'
79
- );
80
- } else {
81
- throw new LrBadArgumentException(
82
- 'Can not set PersistService cookie secure flag to false in production mode.'
83
- );
84
- }
85
- }
86
- }
87
-
88
- private prefixName(name: string): string {
89
- return this.KEY_PREFIX + name;
90
- }
91
-
92
- public delete(name: string): void {
93
- this.deletePrefixedName(this.prefixName(name));
94
- }
95
-
96
- private deletePrefixedName(prefixedName: string): void {
97
- const params = this.getCookieParams();
98
- this.cookieService.delete(
99
- prefixedName, // name: string,
100
- params.path, // path?: string,
101
- params.domain, // domain ?: string,
102
- params.secure, // secure ?: boolean,
103
- params.sameSite // sameSite ?: 'Lax' | 'None' | 'Strict'): void;
104
- );
105
- localStorage.removeItem(prefixedName);
106
- }
107
-
108
- public async set({
109
- name,
110
- value,
111
- serverSession,
112
- expiry,
113
- }: {
114
- name: string;
115
- value: any;
116
- serverSession: boolean;
117
- expiry?: Date;
118
- }): Promise<void> {
119
- const prefixedName = this.prefixName(name);
120
-
121
- let item: Item;
122
-
123
- if (serverSession) {
124
- item = {
125
- serverSession: true,
126
- data: await this.encryptionService.encryptToString(
127
- this.serverSessionEncryptionKey,
128
- value
129
- ),
130
- };
131
- } else {
132
- item = {
133
- data: value,
134
- };
135
- }
136
-
137
- if (expiry) {
138
- const key = await this.keyFactory.createKey();
139
- item.expiry = expiry.toISOString();
140
- item.data = await this.encryptionService.encryptToString(key, item.data);
141
-
142
- const cookieItem: CookieItem = {
143
- key: key.toJSON(true),
144
- };
145
-
146
- // If path is set to anything other than "/" then the cookie is only
147
- // accessible by JS if the current URL has the same prefix as the path.
148
- // Ideally we don't want the encryption key cookie to be sent at all, but
149
- // since the encrypted content is held in localstorage, it is not a security
150
- // risk, i.e. it is at least as secure as storing only in localstorage.
151
- const params = this.getCookieParams();
152
- this.cookieService.set(
153
- prefixedName, // name: string,
154
- JSON.stringify(cookieItem), // value: string,
155
- expiry, // expires?: number | Date,
156
- params.path, // path?: string,
157
- params.domain, // domain?: string,
158
- params.secure, // secure?: boolean,
159
- params.sameSite // sameSite?: 'Lax' | 'None' | 'Strict'
160
- );
161
- }
162
-
163
- localStorage.setItem(prefixedName, JSON.stringify(item));
164
- }
165
-
166
- public async get(name: string): Promise<any> {
167
- const prefixedName = this.prefixName(name);
168
-
169
- try {
170
- const ret = await this.getImpl(prefixedName);
171
- if (ret == null) {
172
- // Clear any cookies to keep things in sync.
173
- this.deletePrefixedName(prefixedName);
174
- }
175
- return ret;
176
- } catch (error) {
177
- this.deletePrefixedName(prefixedName);
178
- throw error;
179
- }
180
- }
181
-
182
- private async getImpl(name: string): Promise<any> {
183
- const itemString = localStorage.getItem(name);
184
- if (!itemString) {
185
- return null;
186
- }
187
-
188
- const item: Item = JSON.parse(itemString);
189
-
190
- let data: any;
191
-
192
- if (item.expiry) {
193
- const cookieItemString = this.cookieService.get(name);
194
- if (!cookieItemString) {
195
- // Probably expired, but we won't make any interpretations since if we only used
196
- // cookies we can't tell if it's expired or explicitly removed. So we just make
197
- // the behaviour here consistent with that.
198
- console.log('No cookie.');
199
- return null;
200
- }
201
-
202
- const cookieItem = JSON.parse(cookieItemString);
203
-
204
- const key = await KFS.asKey(cookieItem.key);
205
-
206
- data = await this.encryptionService.decrypt(key, item.data);
207
- } else {
208
- data = item.data;
209
- }
210
-
211
- if (item.serverSession) {
212
- data = await this.encryptionService.decrypt(
213
- this.serverSessionEncryptionKey,
214
- data
215
- );
216
- }
217
-
218
- return data;
219
- }
220
- }