@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
package/README.md CHANGED
@@ -1,62 +1,62 @@
1
- # Key Crypt API
2
-
3
- Note that the following only applies to the new API.
4
-
5
- ## General design principles
6
- - Use typing as much as possible
7
- - Use auto inferred type where possible. This makes refactoring easier. Also less likely to cause errors because auto type inference usually resolves to the most strict type.
8
- - Provide utilities to remove boiler plates where possible. Should consider even small and simple boiler plates to improve the ability to refactor, reduce bugs, and maintain consistency.
9
- - Consistent naming convention
10
- - Prefer composition over inheritance. Generally allow for more flexibility in combining primitive functions. Coding style is more functional which makes it easier to reason and debug.
11
- -
12
-
13
- ## KC specific design
14
- - Provide data in a form that's close to the graphql input and results such that the user of the lib can experiment in the online graphql explorer to test out queries and mutations and expect the results to be the same.
15
- - Original data from API is always retained
16
- - Processed data (eg. decrypted, JSON parsed) are names with consistent suffix, eg.
17
- - cipherMeta (encrypted string) -> cipherMetaClear (decrypted string) -> cipherMetaClearJson (decrypted string JSON parsed)
18
- - plainMeta (plain string) -> plainMetaJson (plain string JSON parsed)
19
- - Allow optional efficiency improvements. eg, the encryption keys can be optionally provide for mutations. If not provided, the mutation will make additional queries to fetch the keys.
20
- - Allow future refactoring to make KC client independent of Angular.
21
- - Transparent encryption and decryption of data where possible
22
- - Most queries should be defined out side of KC-client because the business logic dictate which fields to select.
23
- - Except for certain instances where decrypting the data requires keys not managed within the key graph, eg. the key exchange function use a raw key string from OOB, so it contains functions to fetch and decrypt the data.
24
- - `gqlTyped` only has generic type on the return of the query or mutation, not on the input variable. Usually the LrMutation are created in a function, which has explit input types. The function will also do other preparation for the mutation, so the input type is not just the input variables. Because the end user does not need to interact with the gql mutation, it doesn't need an input variable type.
25
- - Use string enum instead of string constant union types because sometime you need to drop to JS and string typos becomes easy.
26
- - Return LrMutation where possible so that the user can choose how to compose the mutations. Unfortunately that's not always possible if subsequent steps depend on previous mutations. But these instances are rare.
27
-
28
- ## Good to know
29
- - `JSON.stringify(void 0)` returns `undefined` so no need for this: `input JSON.stringify(input)`
30
- - When using mergeMap,concatMap, switchMap you can just return a promise.
31
-
32
- ## Future
33
- - Being able to cancel apollo requests would be nice. Let's wait for support from apollo on that.
34
-
35
- ## Convention
36
- - Suffixes
37
- - `Option` is user to group variables together.
38
- - `Input` is graphql mutation variable
39
- - `Mutation` is a graphql mutation
40
- - `Query` is a graphql query
41
- - When a graphql mutation wants to clear a field, pass in undefined or null as the variable value. If you want to prove that the user cleared the field, you can use empty string, which will get encrypted. And all encryption has a timestamp it can be verified to be cleared by the user at a certain time.
42
- - The return type of mutations should not use xxxNode types because the mutation performs a specific selection of fields in the result. The return type should be customised to include only those fields.
43
- - Use `gqlTyped` instead of `gql` and co-locate the interface for the result just above the query definition. Example
44
- ```
45
- export interface CancelKeyExchangeMutation {
46
- cancelKeyExchange: {
47
- keyExchange: {
48
- id: ID;
49
- };
50
- };
51
- }
52
- export const CancelKeyExchangeMutation = gqlTyped<CancelKeyExchangeMutation>`
53
- mutation CancelKeyExchangeMutation($input: CancelKeyExchangeInput!) {
54
- cancelKeyExchange(input: $input) {
55
- keyExchange {
56
- id
57
- }
58
- }
59
- }
60
- `;
61
- ```
62
- Notice the name of the interface and the query is the same. The name `CancelKeyExchangeMutation` should always be repeated 4 times: as the interface name, the query variable name, the gqlTyped generic type, and the mutation name.
1
+ # Key Crypt API
2
+
3
+ Note that the following only applies to the new API.
4
+
5
+ ## General design principles
6
+ - Use typing as much as possible
7
+ - Use auto inferred type where possible. This makes refactoring easier. Also less likely to cause errors because auto type inference usually resolves to the most strict type.
8
+ - Provide utilities to remove boiler plates where possible. Should consider even small and simple boiler plates to improve the ability to refactor, reduce bugs, and maintain consistency.
9
+ - Consistent naming convention
10
+ - Prefer composition over inheritance. Generally allow for more flexibility in combining primitive functions. Coding style is more functional which makes it easier to reason and debug.
11
+ -
12
+
13
+ ## KC specific design
14
+ - Provide data in a form that's close to the graphql input and results such that the user of the lib can experiment in the online graphql explorer to test out queries and mutations and expect the results to be the same.
15
+ - Original data from API is always retained
16
+ - Processed data (eg. decrypted, JSON parsed) are names with consistent suffix, eg.
17
+ - cipherMeta (encrypted string) -> cipherMetaClear (decrypted string) -> cipherMetaClearJson (decrypted string JSON parsed)
18
+ - plainMeta (plain string) -> plainMetaJson (plain string JSON parsed)
19
+ - Allow optional efficiency improvements. eg, the encryption keys can be optionally provide for mutations. If not provided, the mutation will make additional queries to fetch the keys.
20
+ - Allow future refactoring to make KC client independent of Angular.
21
+ - Transparent encryption and decryption of data where possible
22
+ - Most queries should be defined out side of KC-client because the business logic dictate which fields to select.
23
+ - Except for certain instances where decrypting the data requires keys not managed within the key graph, eg. the key exchange function use a raw key string from OOB, so it contains functions to fetch and decrypt the data.
24
+ - `gqlTyped` only has generic type on the return of the query or mutation, not on the input variable. Usually the LrMutation are created in a function, which has explit input types. The function will also do other preparation for the mutation, so the input type is not just the input variables. Because the end user does not need to interact with the gql mutation, it doesn't need an input variable type.
25
+ - Use string enum instead of string constant union types because sometime you need to drop to JS and string typos becomes easy.
26
+ - Return LrMutation where possible so that the user can choose how to compose the mutations. Unfortunately that's not always possible if subsequent steps depend on previous mutations. But these instances are rare.
27
+
28
+ ## Good to know
29
+ - `JSON.stringify(void 0)` returns `undefined` so no need for this: `input JSON.stringify(input)`
30
+ - When using mergeMap,concatMap, switchMap you can just return a promise.
31
+
32
+ ## Future
33
+ - Being able to cancel apollo requests would be nice. Let's wait for support from apollo on that.
34
+
35
+ ## Convention
36
+ - Suffixes
37
+ - `Option` is user to group variables together.
38
+ - `Input` is graphql mutation variable
39
+ - `Mutation` is a graphql mutation
40
+ - `Query` is a graphql query
41
+ - When a graphql mutation wants to clear a field, pass in undefined or null as the variable value. If you want to prove that the user cleared the field, you can use empty string, which will get encrypted. And all encryption has a timestamp it can be verified to be cleared by the user at a certain time.
42
+ - The return type of mutations should not use xxxNode types because the mutation performs a specific selection of fields in the result. The return type should be customised to include only those fields.
43
+ - Use `gqlTyped` instead of `gql` and co-locate the interface for the result just above the query definition. Example
44
+ ```
45
+ export interface CancelKeyExchangeMutation {
46
+ cancelKeyExchange: {
47
+ keyExchange: {
48
+ id: ID;
49
+ };
50
+ };
51
+ }
52
+ export const CancelKeyExchangeMutation = gqlTyped<CancelKeyExchangeMutation>`
53
+ mutation CancelKeyExchangeMutation($input: CancelKeyExchangeInput!) {
54
+ cancelKeyExchange(input: $input) {
55
+ keyExchange {
56
+ id
57
+ }
58
+ }
59
+ }
60
+ `;
61
+ ```
62
+ Notice the name of the interface and the query is the same. The name `CancelKeyExchangeMutation` should always be repeated 4 times: as the interface name, the query variable name, the gqlTyped generic type, and the mutation name.
package/karma.conf.js ADDED
@@ -0,0 +1,32 @@
1
+ // Karma configuration file, see link for more information
2
+ // https://karma-runner.github.io/1.0/config/configuration-file.html
3
+
4
+ module.exports = function (config) {
5
+ config.set({
6
+ basePath: '',
7
+ frameworks: ['jasmine', '@angular-devkit/build-angular'],
8
+ plugins: [
9
+ require('karma-jasmine'),
10
+ require('karma-chrome-launcher'),
11
+ require('karma-jasmine-html-reporter'),
12
+ require('karma-coverage-istanbul-reporter'),
13
+ require('@angular-devkit/build-angular/plugins/karma')
14
+ ],
15
+ client: {
16
+ clearContext: false // leave Jasmine Spec Runner output visible in browser
17
+ },
18
+ coverageIstanbulReporter: {
19
+ dir: require('path').join(__dirname, '../../coverage/lr-auth'),
20
+ reports: ['html', 'lcovonly', 'text-summary'],
21
+ fixWebpackSourcePaths: true
22
+ },
23
+ reporters: ['progress', 'kjhtml'],
24
+ port: 9876,
25
+ colors: true,
26
+ logLevel: config.LOG_INFO,
27
+ autoWatch: true,
28
+ browsers: ['Chrome'],
29
+ singleRun: false,
30
+ restartOnFileChange: true
31
+ });
32
+ };
@@ -0,0 +1,26 @@
1
+ {
2
+ "$schema": "../../node_modules/ng-packagr/ng-package.schema.json",
3
+ "dest": "../../dist/@lifeready/core",
4
+ "lib": {
5
+ "entryFile": "src/public-api.ts",
6
+ "umdModuleIds": {
7
+ "@aws-amplify/auth": "@aws-amplify/auth",
8
+ "@aws-amplify/auth/lib-esm/Auth": "@aws-amplify/auth/lib-esm/Auth",
9
+ "@aws-amplify/core": "@aws-amplify/core",
10
+ "@dagrejs/graphlib": "@dagrejs/graphlib",
11
+ "@ng-idle/core": "@ng-idle/core",
12
+ "@ng-idle/keepalive": "@ng-idle/keepalive",
13
+ "apollo-angular": "apollo-angular",
14
+ "@apollo/client/core": "@apollo/client/core",
15
+ "@apollo/client/link/context": "@apollo/client/link/context",
16
+ "@apollo/client/link/retry": "@apollo/client/link/retry",
17
+ "graphql-tag": "graphql-tag",
18
+ "lodash": "lodash",
19
+ "moment": "moment",
20
+ "ngx-cookie-service": "ngx-cookie-service",
21
+ "node-jose": "node-jose",
22
+ "slip39": "slip39",
23
+ "graphql/language/printer": "graphql/language/printer"
24
+ }
25
+ }
26
+ }
package/package.json CHANGED
@@ -1,29 +1,21 @@
1
- {
2
- "name": "@lifeready/core",
3
- "version": "1.0.0",
4
- "peerDependencies": {
5
- "@angular/common": "~10.0.5",
6
- "@angular/core": "~10.0.5",
7
- "@apollo/client": "^3.3.12",
8
- "@aws-amplify/auth": "^3.3.3",
9
- "@dagrejs/graphlib": "^2.1.4",
10
- "@ng-idle/core": "^10.0.0-beta.1",
11
- "@ng-idle/keepalive": "^10.0.0-beta.1",
12
- "apollo-angular": "^2.4.0",
13
- "graphql-tag": "^2.10.0",
14
- "ngx-cookie-service": "^10.0.1",
15
- "node-jose": "^1.1.3",
16
- "slip39": "github:lifeready/slip39-js"
17
- },
18
- "dependencies": {
19
- "tslib": "^2.0.0"
20
- },
21
- "main": "bundles/lifeready-core.umd.js",
22
- "module": "fesm2015/lifeready-core.js",
23
- "es2015": "fesm2015/lifeready-core.js",
24
- "esm2015": "esm2015/lifeready-core.js",
25
- "fesm2015": "fesm2015/lifeready-core.js",
26
- "typings": "lifeready-core.d.ts",
27
- "metadata": "lifeready-core.metadata.json",
28
- "sideEffects": false
29
- }
1
+ {
2
+ "name": "@lifeready/core",
3
+ "version": "1.0.1",
4
+ "peerDependencies": {
5
+ "@angular/common": "~10.0.5",
6
+ "@angular/core": "~10.0.5",
7
+ "@apollo/client": "^3.3.12",
8
+ "@aws-amplify/auth": "^3.3.3",
9
+ "@dagrejs/graphlib": "^2.1.4",
10
+ "@ng-idle/core": "^10.0.0-beta.1",
11
+ "@ng-idle/keepalive": "^10.0.0-beta.1",
12
+ "apollo-angular": "^2.4.0",
13
+ "graphql-tag": "^2.10.0",
14
+ "ngx-cookie-service": "^10.0.1",
15
+ "node-jose": "^1.1.3",
16
+ "slip39": "github:lifeready/slip39-js"
17
+ },
18
+ "dependencies": {
19
+ "tslib": "^2.0.0"
20
+ }
21
+ }
@@ -0,0 +1,75 @@
1
+ // Abstract Syntax Tree
2
+
3
+ import {
4
+ DocumentNode,
5
+ FieldNode,
6
+ FragmentDefinitionNode,
7
+ NameNode,
8
+ OperationDefinitionNode,
9
+ OperationTypeNode,
10
+ } from 'graphql';
11
+ import gql from 'graphql-tag';
12
+ import { LrBadArgumentException, LrBadLogicException } from './exceptions';
13
+
14
+ export function getAstOperation(
15
+ astDocument,
16
+ operation: OperationTypeNode
17
+ ): OperationDefinitionNode {
18
+ const operations = astDocument.definitions.filter(
19
+ (def: OperationDefinitionNode) => def.kind === 'OperationDefinition'
20
+ );
21
+
22
+ if (operations.length > 1) {
23
+ throw new LrBadLogicException(
24
+ `There can be only one '${operation}' operation, instead there are ${operations.length}`
25
+ );
26
+ }
27
+
28
+ return operations[0];
29
+ }
30
+
31
+ export function getQuery(doc: DocumentNode): OperationDefinitionNode {
32
+ return getAstOperation(doc, 'query');
33
+ }
34
+
35
+ export function getMutation(doc: DocumentNode): OperationDefinitionNode {
36
+ return getAstOperation(doc, 'mutation');
37
+ }
38
+
39
+ export function getFragments(doc: DocumentNode): FragmentDefinitionNode[] {
40
+ return doc.definitions.filter(
41
+ (def) => def.kind === 'FragmentDefinition'
42
+ ) as FragmentDefinitionNode[];
43
+ }
44
+
45
+ export function getFragment(astDocument: DocumentNode): FragmentDefinitionNode {
46
+ const fragments = getFragments(astDocument);
47
+ if (fragments.length > 1) {
48
+ throw new LrBadArgumentException(
49
+ 'GraphQL document can only contain one fragment.'
50
+ );
51
+ }
52
+ return fragments[0];
53
+ }
54
+
55
+ export function name(value: string): NameNode {
56
+ return {
57
+ kind: 'Name',
58
+ value,
59
+ };
60
+ }
61
+
62
+ export function getAliasOrName(field: FieldNode) {
63
+ return field.alias?.value || field.name.value;
64
+ }
65
+
66
+ // Collocates the type with the document.
67
+ /* tslint:disable:no-empty-interface */
68
+ export interface TypedDocumentNode<T> extends DocumentNode {}
69
+
70
+ export function gqlTyped<T = any>(
71
+ literals: ReadonlyArray<string> | Readonly<string>,
72
+ ...placeholders: any[]
73
+ ): TypedDocumentNode<T> {
74
+ return gql(literals, ...placeholders) as TypedDocumentNode<T>;
75
+ }
@@ -0,0 +1,35 @@
1
+ export type ResolvePromise<T> = (value?: T | PromiseLike<T>) => void;
2
+ export type RejectPromise = (reason?: any) => void;
3
+
4
+ export class DeferredPromise<T> {
5
+ public readonly promise: Promise<T>;
6
+ /* tslint:disable: variable-name */
7
+ private _resolve: ResolvePromise<T>;
8
+ /* tslint:disable: variable-name */
9
+ private _reject: RejectPromise;
10
+ /* tslint:disable: variable-name */
11
+ private _fulfilled = false;
12
+
13
+ constructor() {
14
+ this.promise = new Promise<T>((resolve, reject) => {
15
+ this._resolve = resolve;
16
+ this._reject = reject;
17
+ }).finally(() => {
18
+ // finally() simply gets called on both then() and catch(). The promise
19
+ // chain continues on.
20
+ this._fulfilled = true;
21
+ });
22
+ }
23
+
24
+ get resolve() {
25
+ return this._resolve;
26
+ }
27
+
28
+ get reject() {
29
+ return this._reject;
30
+ }
31
+
32
+ get fulfilled() {
33
+ return this._fulfilled;
34
+ }
35
+ }
@@ -0,0 +1,189 @@
1
+ import { GraphQLError } from 'graphql';
2
+ import { debuglog } from 'util';
3
+
4
+ export function handleApolloError(errors: ReadonlyArray<GraphQLError>) {
5
+ if (!errors || !errors.length) return;
6
+
7
+ const lrErrors = errors.map((x) => ({
8
+ code: x.extensions && x.extensions.code,
9
+ source: x.extensions && x.extensions.source,
10
+ message: x.message,
11
+ debug: {
12
+ locations: x.locations as any,
13
+ path: x.path as string[],
14
+ },
15
+ }));
16
+
17
+ throw new LrException(...lrErrors);
18
+ }
19
+
20
+ export class LrError {
21
+ code?: string;
22
+ source?: string;
23
+ message: string;
24
+ debug?: {
25
+ locations: {
26
+ line: number;
27
+ column: number;
28
+ }[];
29
+ path: string[];
30
+ };
31
+ }
32
+
33
+ export class LrException {
34
+ public errors: LrError[];
35
+
36
+ constructor(...errors: LrError[]) {
37
+ this.errors = errors;
38
+ }
39
+
40
+ public toString() {
41
+ return this.errors.map((t) => JSON.stringify(t, null, 2));
42
+ }
43
+ }
44
+
45
+ export enum LrApiErrorCode {
46
+ ARCHIVED_RESOURCE = 'ARCHIVED_RESOURCE',
47
+ BAD_ARGUMENT = 'BAD_ARGUMENT',
48
+ BAD_SIGNATURE = 'BAD_SIGNATURE',
49
+ BAD_STATE = 'BAD_STATE',
50
+ CHANGED_PERMISSIONS = 'CHANGED_PERMISSIONS',
51
+ CONCURRENT_ACCESS = 'CONCURRENT_ACCESS',
52
+ CONFIG_ERROR = 'CONFIG_ERROR',
53
+ CYCLE_DETECTED = 'CYCLE_DETECTED',
54
+ EXPIRED = 'EXPIRED',
55
+ INVALID_TOKEN = 'INVALID_TOKEN',
56
+ INTERNAL_ERROR = 'INTERNAL_ERROR',
57
+ JSON_DECODE_ERROR = 'JSON_DECODE_ERROR',
58
+ KEY_MISMATCH = 'KEY_MISMATCH',
59
+ LIMIT_REACHED = 'LIMIT_REACHED',
60
+ LOCKED = 'LOCKED',
61
+ LOGIC_ERROR = 'LOGIC_ERROR',
62
+ LR_DEBUG_ONLY = 'LR_DEBUG_ONLY',
63
+ MIN_DELAY = 'MIN_DELAY',
64
+ MISSING_FIELD = 'MISSING_FIELD',
65
+ MISSING_FIELD_VALUE = 'MISSING_FIELD_VALUE',
66
+ MISSING_QUERY_PARAM = 'MISSING_QUERY_PARAM',
67
+ NOT_IMPLEMENTED = 'NOT_IMPLEMENTED',
68
+ OBJECT_DOES_NOT_EXIST = 'OBJECT_DOES_NOT_EXIST',
69
+ OBJECT_EXISTS = 'OBJECT_EXISTS',
70
+ RANGE_ERROR = 'RANGE_ERROR',
71
+ TRUSTED_PARTY_NOT_FOUND = 'TRUSTED_PARTY_NOT_FOUND',
72
+ UNAUTHENTICATED_USER = 'UNAUTHENTICATED_USER',
73
+ USER_NOT_FOUND = 'USER_NOT_FOUND',
74
+ VERSION_MISMATCH = 'VERSION_MISMATCH',
75
+ WRONG_PERMISSIONS = 'WRONG_PERMISSIONS',
76
+ }
77
+
78
+ export enum LrErrorCode {
79
+ BadTimeSync = 'LrBadTimeSync',
80
+ ReceiveClaimMismatch = 'LrReceiveClaimMismatch',
81
+ BadState = 'LrBadState',
82
+ BadSignature = 'LrBadSignature',
83
+ Auth = 'LrAuth',
84
+ BadArgument = 'LrBadArgument',
85
+ SuspiciousException = 'LrSuspiciousException',
86
+ NotFound = 'LrNotFound',
87
+ BadLogic = 'LrBadLogicException',
88
+ CodeMismatch = 'LrCodeMismatchException',
89
+ ConcurrentAccess = 'LrConcurrentAccessException',
90
+ BadRequest = 'LrBadRequestException',
91
+ Encryption = 'LrEncryptionGoBad',
92
+ Locked = 'LrLockedException',
93
+ }
94
+
95
+ export class LrBadArgumentException extends LrException {
96
+ constructor(message) {
97
+ super({ code: LrErrorCode.BadArgument, message });
98
+ }
99
+ }
100
+
101
+ export class LrSuspiciousException extends LrException {
102
+ constructor(message) {
103
+ super({ code: LrErrorCode.BadArgument, message });
104
+ }
105
+ }
106
+
107
+ export class LrNotFoundException extends LrException {
108
+ constructor(message) {
109
+ super({ code: LrErrorCode.NotFound, message });
110
+ }
111
+ }
112
+
113
+ export class LrBadLogicException extends LrException {
114
+ constructor(message) {
115
+ super({ code: LrErrorCode.BadLogic, message });
116
+ }
117
+ }
118
+
119
+ export class LrCodeMismatchException extends LrException {
120
+ constructor(message) {
121
+ super({ code: LrErrorCode.CodeMismatch, message });
122
+ }
123
+ }
124
+
125
+ export class LrConcurrentAccessException extends LrException {
126
+ constructor(message) {
127
+ super({ code: LrErrorCode.ConcurrentAccess, message });
128
+ }
129
+ }
130
+
131
+ export class LrLockedException extends LrException {
132
+ constructor(message) {
133
+ super({ code: LrErrorCode.Locked, message });
134
+ }
135
+ }
136
+
137
+ export class LrBadRequestException extends LrException {
138
+ constructor(message) {
139
+ super({ code: LrErrorCode.BadRequest, message });
140
+ }
141
+ }
142
+
143
+ export class LrAuthException extends LrException {
144
+ constructor(message) {
145
+ super({ code: LrErrorCode.Auth, message });
146
+ }
147
+ }
148
+
149
+ export class LrEncryptionException extends LrException {
150
+ constructor(message) {
151
+ super({ code: LrErrorCode.Encryption, message });
152
+ }
153
+ }
154
+
155
+ export class LrUnsupportedException extends LrException {
156
+ constructor(message) {
157
+ super({
158
+ code: 'LrUnsupportedException',
159
+ message,
160
+ });
161
+ }
162
+ }
163
+
164
+ export class LrExpiredCodeException extends LrException {
165
+ constructor(message) {
166
+ super({
167
+ code: 'LrExpiredCodeException',
168
+ message,
169
+ });
170
+ }
171
+ }
172
+
173
+ export class LrExpiredException extends LrException {
174
+ constructor(message) {
175
+ super({
176
+ code: 'LrExpiredException',
177
+ message,
178
+ });
179
+ }
180
+ }
181
+
182
+ export class LrBadStateException extends LrException {
183
+ constructor(message) {
184
+ super({
185
+ code: 'LrBadStateException',
186
+ message,
187
+ });
188
+ }
189
+ }