@nymphjs/tilmeld 1.0.0-beta.12 → 1.0.0-beta.120

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 (83) hide show
  1. package/CHANGELOG.md +544 -0
  2. package/README.md +15 -2
  3. package/dist/AbleObject.d.ts +15 -0
  4. package/dist/AbleObject.js +18 -6
  5. package/dist/AbleObject.js.map +1 -1
  6. package/dist/Group.d.ts +182 -15
  7. package/dist/Group.js +571 -191
  8. package/dist/Group.js.map +1 -1
  9. package/dist/Group.test.js +86 -13
  10. package/dist/Group.test.js.map +1 -1
  11. package/dist/Tilmeld.d.ts +241 -12
  12. package/dist/Tilmeld.js +721 -273
  13. package/dist/Tilmeld.js.map +1 -1
  14. package/dist/Tilmeld.types.d.ts +5 -5
  15. package/dist/Tilmeld.types.js +1 -2
  16. package/dist/User.d.ts +396 -22
  17. package/dist/User.js +1386 -367
  18. package/dist/User.js.map +1 -1
  19. package/dist/User.test.js +133 -13
  20. package/dist/User.test.js.map +1 -1
  21. package/dist/conf/defaults.d.ts +1 -1
  22. package/dist/conf/defaults.js +196 -141
  23. package/dist/conf/defaults.js.map +1 -1
  24. package/dist/conf/index.d.ts +355 -2
  25. package/dist/conf/index.js +2 -8
  26. package/dist/conf/index.js.map +1 -1
  27. package/dist/enforceTilmeld.d.ts +3 -0
  28. package/dist/enforceTilmeld.js +18 -0
  29. package/dist/enforceTilmeld.js.map +1 -0
  30. package/dist/errors/AccessControlError.d.ts +2 -1
  31. package/dist/errors/AccessControlError.js +3 -6
  32. package/dist/errors/AccessControlError.js.map +1 -1
  33. package/dist/errors/BadDataError.d.ts +2 -1
  34. package/dist/errors/BadDataError.js +3 -6
  35. package/dist/errors/BadDataError.js.map +1 -1
  36. package/dist/errors/BadEmailError.d.ts +2 -1
  37. package/dist/errors/BadEmailError.js +3 -6
  38. package/dist/errors/BadEmailError.js.map +1 -1
  39. package/dist/errors/BadUsernameError.d.ts +2 -1
  40. package/dist/errors/BadUsernameError.js +3 -6
  41. package/dist/errors/BadUsernameError.js.map +1 -1
  42. package/dist/errors/CouldNotChangeDefaultPrimaryGroupError.js +1 -5
  43. package/dist/errors/CouldNotChangeDefaultPrimaryGroupError.js.map +1 -1
  44. package/dist/errors/EmailChangeRateLimitExceededError.js +1 -5
  45. package/dist/errors/EmailChangeRateLimitExceededError.js.map +1 -1
  46. package/dist/errors/index.d.ts +6 -6
  47. package/dist/errors/index.js +6 -22
  48. package/dist/errors/index.js.map +1 -1
  49. package/dist/index.d.ts +11 -10
  50. package/dist/index.js +16 -35
  51. package/dist/index.js.map +1 -1
  52. package/dist/testArtifacts.d.ts +19 -0
  53. package/dist/testArtifacts.js +1164 -0
  54. package/dist/testArtifacts.js.map +1 -0
  55. package/dist/tilmeldJoiProps.d.ts +3 -3
  56. package/dist/tilmeldJoiProps.js +13 -18
  57. package/dist/tilmeldJoiProps.js.map +1 -1
  58. package/jest.config.js +31 -5
  59. package/package.json +41 -34
  60. package/src/AbleObject.ts +2 -2
  61. package/src/Group.test.ts +107 -6
  62. package/src/Group.ts +684 -225
  63. package/src/Tilmeld.ts +547 -283
  64. package/src/Tilmeld.types.ts +5 -5
  65. package/src/User.test.ts +163 -7
  66. package/src/User.ts +1635 -461
  67. package/src/conf/defaults.ts +172 -109
  68. package/src/conf/index.ts +370 -2
  69. package/src/enforceTilmeld.ts +20 -0
  70. package/src/errors/AccessControlError.ts +4 -2
  71. package/src/errors/BadDataError.ts +4 -2
  72. package/src/errors/BadEmailError.ts +4 -2
  73. package/src/errors/BadUsernameError.ts +4 -2
  74. package/src/errors/index.ts +6 -6
  75. package/src/index.ts +12 -10
  76. package/src/testArtifacts.ts +1966 -0
  77. package/src/tilmeldJoiProps.ts +8 -23
  78. package/tsconfig.json +6 -3
  79. package/typedoc.json +4 -0
  80. package/dist/conf/d.d.ts +0 -55
  81. package/dist/conf/d.js +0 -3
  82. package/dist/conf/d.js.map +0 -1
  83. package/src/conf/d.ts +0 -303
package/CHANGELOG.md CHANGED
@@ -3,6 +3,550 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [1.0.0-beta.120](https://forge.sciactive.com/sciactive/nymphjs/compare/v1.0.0-beta.119...v1.0.0-beta.120) (2026-09-01)
7
+
8
+ **Note:** Version bump only for package @nymphjs/tilmeld
9
+
10
+ # [1.0.0-beta.119](https://forge.sciactive.com/sciactive/nymphjs/compare/v1.0.0-beta.118...v1.0.0-beta.119) (2026-08-25)
11
+
12
+ ### Features
13
+
14
+ - limit concurrent queries in postgres transactions to one at a time ([796a41b](https://forge.sciactive.com/sciactive/nymphjs/commits/796a41b128912d61ea4390f556476f9e7b6f3865))
15
+
16
+ # [1.0.0-beta.118](https://forge.sciactive.com/sciactive/nymphjs/compare/v1.0.0-beta.117...v1.0.0-beta.118) (2026-08-24)
17
+
18
+ ### Features
19
+
20
+ - update packages and migrate to ts7 ([c1b8eb5](https://forge.sciactive.com/sciactive/nymphjs/commits/c1b8eb5f7dd68436759f8d7b94bc9622511e71fd))
21
+
22
+ # [1.0.0-beta.117](https://forge.sciactive.com/sciactive/nymphjs/compare/v1.0.0-beta.116...v1.0.0-beta.117) (2026-04-21)
23
+
24
+ **Note:** Version bump only for package @nymphjs/tilmeld
25
+
26
+ # [1.0.0-beta.116](https://forge.sciactive.com/sciactive/nymphjs/compare/v1.0.0-beta.115...v1.0.0-beta.116) (2026-04-08)
27
+
28
+ **Note:** Version bump only for package @nymphjs/tilmeld
29
+
30
+ # [1.0.0-beta.115](https://forge.sciactive.com/sciactive/nymphjs/compare/v1.0.0-beta.114...v1.0.0-beta.115) (2026-04-06)
31
+
32
+ ### Bug Fixes
33
+
34
+ - don't export test things in indexes ([ba04bf6](https://forge.sciactive.com/sciactive/nymphjs/commits/ba04bf60a71c7acd0cfc719c92be10396f488875))
35
+
36
+ # [1.0.0-beta.114](https://forge.sciactive.com/sciactive/nymphjs/compare/v1.0.0-beta.113...v1.0.0-beta.114) (2026-04-06)
37
+
38
+ **Note:** Version bump only for package @nymphjs/tilmeld
39
+
40
+ # [1.0.0-beta.113](https://forge.sciactive.com/sciactive/nymphjs/compare/v1.0.0-beta.112...v1.0.0-beta.113) (2026-04-03)
41
+
42
+ **Note:** Version bump only for package @nymphjs/tilmeld
43
+
44
+ # [1.0.0-beta.112](https://forge.sciactive.com/sciactive/nymphjs/compare/v1.0.0-beta.111...v1.0.0-beta.112) (2026-04-03)
45
+
46
+ ### Features
47
+
48
+ - add acRequest query option ([600b617](https://forge.sciactive.com/sciactive/nymphjs/commits/600b617692b7ba0824e6ee91c0c9f9c29156fbe3))
49
+
50
+ # [1.0.0-beta.111](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.110...v1.0.0-beta.111) (2026-03-10)
51
+
52
+ ### Bug Fixes
53
+
54
+ - ac arrays being added to users and groups ([1f00ce2](https://github.com/sciactive/nymphjs/commit/1f00ce2ef104c8b80ccdcc25f4f1ea0f7f8d476e))
55
+
56
+ # [1.0.0-beta.110](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.109...v1.0.0-beta.110) (2026-02-23)
57
+
58
+ ### Features
59
+
60
+ - use the new access control columns in queries instead of data rows ([f3a2be2](https://github.com/sciactive/nymphjs/commit/f3a2be2c3ca37fa33499f3353a0862f64f2f32f2))
61
+
62
+ # [1.0.0-beta.109](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.108...v1.0.0-beta.109) (2026-02-15)
63
+
64
+ **Note:** Version bump only for package @nymphjs/tilmeld
65
+
66
+ # [1.0.0-beta.108](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.107...v1.0.0-beta.108) (2026-02-15)
67
+
68
+ **Note:** Version bump only for package @nymphjs/tilmeld
69
+
70
+ # [1.0.0-beta.107](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.106...v1.0.0-beta.107) (2026-02-13)
71
+
72
+ ### Features
73
+
74
+ - move HttpError to nymph package to fix circular dependency ([ef8876e](https://github.com/sciactive/nymphjs/commit/ef8876e7dc2ad398038d66d324bf4c65227de681))
75
+ - update packages and fix all new issues ([0e9d17c](https://github.com/sciactive/nymphjs/commit/0e9d17c6e2db12c11bdfb559031719c1b52b5fa1))
76
+
77
+ # [1.0.0-beta.106](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.105...v1.0.0-beta.106) (2025-12-05)
78
+
79
+ **Note:** Version bump only for package @nymphjs/tilmeld
80
+
81
+ # [1.0.0-beta.105](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.104...v1.0.0-beta.105) (2025-12-04)
82
+
83
+ **Note:** Version bump only for package @nymphjs/tilmeld
84
+
85
+ # [1.0.0-beta.104](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.103...v1.0.0-beta.104) (2025-12-01)
86
+
87
+ **Note:** Version bump only for package @nymphjs/tilmeld
88
+
89
+ # [1.0.0-beta.103](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.102...v1.0.0-beta.103) (2025-11-30)
90
+
91
+ **Note:** Version bump only for package @nymphjs/tilmeld
92
+
93
+ # [1.0.0-beta.102](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.101...v1.0.0-beta.102) (2025-11-29)
94
+
95
+ ### Bug Fixes
96
+
97
+ - don't add non language user data to tokens tables ([1be9193](https://github.com/sciactive/nymphjs/commit/1be919392d31511f5ba022fe4dda9ee8ad5d610c))
98
+
99
+ # [1.0.0-beta.101](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.100...v1.0.0-beta.101) (2025-11-29)
100
+
101
+ **Note:** Version bump only for package @nymphjs/tilmeld
102
+
103
+ # [1.0.0-beta.100](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.99...v1.0.0-beta.100) (2025-11-29)
104
+
105
+ **Note:** Version bump only for package @nymphjs/tilmeld
106
+
107
+ # [1.0.0-beta.99](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.98...v1.0.0-beta.99) (2025-11-26)
108
+
109
+ ### Bug Fixes
110
+
111
+ - refresh user and group before user delete ([dee2444](https://github.com/sciactive/nymphjs/commit/dee2444d99a187e9a90c98fe514eb6a8d4fbb7fd))
112
+ - update tokenizer and fix issue with tilmeld test ([1df81fd](https://github.com/sciactive/nymphjs/commit/1df81fdeab2c639dc669bd92c09faa220bb9a6ff))
113
+
114
+ # [1.0.0-beta.98](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.97...v1.0.0-beta.98) (2025-10-24)
115
+
116
+ **Note:** Version bump only for package @nymphjs/tilmeld
117
+
118
+ # [1.0.0-beta.97](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.96...v1.0.0-beta.97) (2025-10-04)
119
+
120
+ ### Bug Fixes
121
+
122
+ - add missing rollback ([8763ecb](https://github.com/sciactive/nymphjs/commit/8763ecbc0ad2bfa9ac302c9e72262e45f8383548))
123
+
124
+ # [1.0.0-beta.96](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.95...v1.0.0-beta.96) (2025-09-01)
125
+
126
+ **Note:** Version bump only for package @nymphjs/tilmeld
127
+
128
+ # [1.0.0-beta.95](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.94...v1.0.0-beta.95) (2025-08-30)
129
+
130
+ ### Features
131
+
132
+ - add a delay when a login attempt fails ([93e6d3f](https://github.com/sciactive/nymphjs/commit/93e6d3f79a077b102b04fd1155ffd1b81cf262e1))
133
+
134
+ # [1.0.0-beta.94](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.93...v1.0.0-beta.94) (2025-08-25)
135
+
136
+ ### Features
137
+
138
+ - add returnNullOnNotFound client option, and some tilmeld domain checks ([20c0207](https://github.com/sciactive/nymphjs/commit/20c0207ef537a948f84f830f1db88d207e1c386b))
139
+
140
+ # [1.0.0-beta.93](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.92...v1.0.0-beta.93) (2025-08-16)
141
+
142
+ **Note:** Version bump only for package @nymphjs/tilmeld
143
+
144
+ # [1.0.0-beta.92](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.91...v1.0.0-beta.92) (2025-04-06)
145
+
146
+ **Note:** Version bump only for package @nymphjs/tilmeld
147
+
148
+ # [1.0.0-beta.91](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.90...v1.0.0-beta.91) (2025-03-07)
149
+
150
+ ### Features
151
+
152
+ - add callbacks for user and group save and delete ([8119127](https://github.com/sciactive/nymphjs/commit/81191276fe1884e5ee65f41815fc72a23cf1e2f2))
153
+
154
+ # [1.0.0-beta.90](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.89...v1.0.0-beta.90) (2025-02-09)
155
+
156
+ **Note:** Version bump only for package @nymphjs/tilmeld
157
+
158
+ # [1.0.0-beta.89](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.88...v1.0.0-beta.89) (2025-02-09)
159
+
160
+ ### Bug Fixes
161
+
162
+ - use guaranteed guid in references, update generated primary group code ([5f22f8a](https://github.com/sciactive/nymphjs/commit/5f22f8a9c71f373251cd4946c465fa29b86d91e7))
163
+
164
+ # [1.0.0-beta.88](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.87...v1.0.0-beta.88) (2025-01-30)
165
+
166
+ **Note:** Version bump only for package @nymphjs/tilmeld
167
+
168
+ # [1.0.0-beta.87](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.86...v1.0.0-beta.87) (2025-01-20)
169
+
170
+ ### Features
171
+
172
+ - deprecate node client and allow multiple client instances to each log in own users ([17b42f4](https://github.com/sciactive/nymphjs/commit/17b42f449f2355a3ce896b8e86a47edd660e9277))
173
+
174
+ # [1.0.0-beta.86](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.85...v1.0.0-beta.86) (2024-12-28)
175
+
176
+ ### Features
177
+
178
+ - add domain support ([c965008](https://github.com/sciactive/nymphjs/commit/c96500811a4d64ab4e80eca6acdfbfdfae1de076))
179
+
180
+ # [1.0.0-beta.85](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.84...v1.0.0-beta.85) (2024-12-27)
181
+
182
+ **Note:** Version bump only for package @nymphjs/tilmeld
183
+
184
+ # [1.0.0-beta.84](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.83...v1.0.0-beta.84) (2024-12-21)
185
+
186
+ **Note:** Version bump only for package @nymphjs/tilmeld
187
+
188
+ # [1.0.0-beta.83](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.82...v1.0.0-beta.83) (2024-12-20)
189
+
190
+ **Note:** Version bump only for package @nymphjs/tilmeld
191
+
192
+ # [1.0.0-beta.82](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.81...v1.0.0-beta.82) (2024-12-15)
193
+
194
+ ### Features
195
+
196
+ - migrate to es modules, upgrade all packages, migrate to Svelte 5 ([3f2b9e5](https://github.com/sciactive/nymphjs/commit/3f2b9e517b39934eddce66601d7fc747fbf3f9e6))
197
+
198
+ # [1.0.0-beta.81](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.80...v1.0.0-beta.81) (2024-09-28)
199
+
200
+ **Note:** Version bump only for package @nymphjs/tilmeld
201
+
202
+ # [1.0.0-beta.80](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.79...v1.0.0-beta.80) (2024-09-28)
203
+
204
+ **Note:** Version bump only for package @nymphjs/tilmeld
205
+
206
+ # [1.0.0-beta.79](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.78...v1.0.0-beta.79) (2024-09-28)
207
+
208
+ **Note:** Version bump only for package @nymphjs/tilmeld
209
+
210
+ # [1.0.0-beta.78](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.77...v1.0.0-beta.78) (2024-09-27)
211
+
212
+ **Note:** Version bump only for package @nymphjs/tilmeld
213
+
214
+ # [1.0.0-beta.77](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.76...v1.0.0-beta.77) (2024-09-26)
215
+
216
+ **Note:** Version bump only for package @nymphjs/tilmeld
217
+
218
+ # [1.0.0-beta.76](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.75...v1.0.0-beta.76) (2024-09-25)
219
+
220
+ ### Features
221
+
222
+ - add info level logging and log queries at this level ([afad941](https://github.com/sciactive/nymphjs/commit/afad941f46c4e594f0981de6443e4dd0b9ffdf4c))
223
+
224
+ # [1.0.0-beta.75](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.74...v1.0.0-beta.75) (2024-09-24)
225
+
226
+ **Note:** Version bump only for package @nymphjs/tilmeld
227
+
228
+ # [1.0.0-beta.74](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.73...v1.0.0-beta.74) (2024-09-21)
229
+
230
+ **Note:** Version bump only for package @nymphjs/tilmeld
231
+
232
+ # [1.0.0-beta.73](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.72...v1.0.0-beta.73) (2024-09-20)
233
+
234
+ **Note:** Version bump only for package @nymphjs/tilmeld
235
+
236
+ # [1.0.0-beta.72](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.71...v1.0.0-beta.72) (2024-09-20)
237
+
238
+ **Note:** Version bump only for package @nymphjs/tilmeld
239
+
240
+ # [1.0.0-beta.71](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.70...v1.0.0-beta.71) (2024-09-20)
241
+
242
+ **Note:** Version bump only for package @nymphjs/tilmeld
243
+
244
+ # [1.0.0-beta.70](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.69...v1.0.0-beta.70) (2024-09-20)
245
+
246
+ **Note:** Version bump only for package @nymphjs/tilmeld
247
+
248
+ # [1.0.0-beta.69](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.68...v1.0.0-beta.69) (2024-09-19)
249
+
250
+ **Note:** Version bump only for package @nymphjs/tilmeld
251
+
252
+ # [1.0.0-beta.68](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.67...v1.0.0-beta.68) (2024-09-19)
253
+
254
+ **Note:** Version bump only for package @nymphjs/tilmeld
255
+
256
+ # [1.0.0-beta.67](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.66...v1.0.0-beta.67) (2024-09-03)
257
+
258
+ **Note:** Version bump only for package @nymphjs/tilmeld
259
+
260
+ # [1.0.0-beta.66](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.65...v1.0.0-beta.66) (2024-08-06)
261
+
262
+ **Note:** Version bump only for package @nymphjs/tilmeld
263
+
264
+ # [1.0.0-beta.65](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.64...v1.0.0-beta.65) (2024-08-05)
265
+
266
+ **Note:** Version bump only for package @nymphjs/tilmeld
267
+
268
+ # [1.0.0-beta.64](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.63...v1.0.0-beta.64) (2024-08-04)
269
+
270
+ **Note:** Version bump only for package @nymphjs/tilmeld
271
+
272
+ # [1.0.0-beta.63](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.62...v1.0.0-beta.63) (2024-06-18)
273
+
274
+ ### Bug Fixes
275
+
276
+ - undo ts compilation to module change ([84be6d4](https://github.com/sciactive/nymphjs/commit/84be6d434be29f8afd53907d15be2eb77d1736ce))
277
+
278
+ ### Features
279
+
280
+ - export data iterator ([b86aa19](https://github.com/sciactive/nymphjs/commit/b86aa19fc77d744b5a683046dfb697fc4746df5c))
281
+
282
+ # [1.0.0-beta.62](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.61...v1.0.0-beta.62) (2024-06-15)
283
+
284
+ ### Bug Fixes
285
+
286
+ - assign generated and default groups to users created through admin app ([7ea0baa](https://github.com/sciactive/nymphjs/commit/7ea0baaf3a2c1285a63ee95ec153f38c169af6b6))
287
+
288
+ ### Features
289
+
290
+ - use unique constraint to guarantee username, groupname, and email uniqueness ([eff5cc4](https://github.com/sciactive/nymphjs/commit/eff5cc43fbbf31e66ede17f42d38de07a0344ede))
291
+
292
+ # [1.0.0-beta.61](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.60...v1.0.0-beta.61) (2024-06-14)
293
+
294
+ **Note:** Version bump only for package @nymphjs/tilmeld
295
+
296
+ # [1.0.0-beta.60](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.59...v1.0.0-beta.60) (2024-06-14)
297
+
298
+ **Note:** Version bump only for package @nymphjs/tilmeld
299
+
300
+ # [1.0.0-beta.59](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.58...v1.0.0-beta.59) (2024-06-14)
301
+
302
+ ### Features
303
+
304
+ - add uniqueness constraint feature, refactor some types ([8133d32](https://github.com/sciactive/nymphjs/commit/8133d32b2c04907182dca2e9171b8217ed1b57e4))
305
+
306
+ # [1.0.0-beta.58](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.57...v1.0.0-beta.58) (2024-06-12)
307
+
308
+ **Note:** Version bump only for package @nymphjs/tilmeld
309
+
310
+ # [1.0.0-beta.57](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.56...v1.0.0-beta.57) (2024-06-12)
311
+
312
+ ### Features
313
+
314
+ - add debug logs to tilmeld ([52dfc26](https://github.com/sciactive/nymphjs/commit/52dfc26f41401b5fe17807158d79e8ccba3ed280))
315
+
316
+ # [1.0.0-beta.56](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.55...v1.0.0-beta.56) (2024-06-11)
317
+
318
+ ### Bug Fixes
319
+
320
+ - use HttpError in tilmeld ([13893d5](https://github.com/sciactive/nymphjs/commit/13893d5b27f8540c1ed6a8d75a39ce6e0c638b93))
321
+
322
+ ### Features
323
+
324
+ - allow connections where tokens are not renewed ([39071a5](https://github.com/sciactive/nymphjs/commit/39071a545644075190bd8213be25e0a0c46d2b5d))
325
+
326
+ # [1.0.0-beta.55](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.54...v1.0.0-beta.55) (2024-05-26)
327
+
328
+ **Note:** Version bump only for package @nymphjs/tilmeld
329
+
330
+ # [1.0.0-beta.54](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.53...v1.0.0-beta.54) (2024-05-26)
331
+
332
+ **Note:** Version bump only for package @nymphjs/tilmeld
333
+
334
+ # [1.0.0-beta.53](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.52...v1.0.0-beta.53) (2024-05-26)
335
+
336
+ **Note:** Version bump only for package @nymphjs/tilmeld
337
+
338
+ # [1.0.0-beta.52](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.51...v1.0.0-beta.52) (2024-05-25)
339
+
340
+ ### Bug Fixes
341
+
342
+ - support setup app and users and groups when userFields is limited ([20e25a2](https://github.com/sciactive/nymphjs/commit/20e25a2bcc35f96b3146fd9d973e34083a85f854))
343
+
344
+ # [1.0.0-beta.51](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.50...v1.0.0-beta.51) (2024-04-12)
345
+
346
+ **Note:** Version bump only for package @nymphjs/tilmeld
347
+
348
+ # [1.0.0-beta.50](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.49...v1.0.0-beta.50) (2024-04-08)
349
+
350
+ ### Bug Fixes
351
+
352
+ - run beforeRegister callbacks within the registration transaction ([0c50329](https://github.com/sciactive/nymphjs/commit/0c503299d8bee5bba323e23e34583b9b59823af5))
353
+
354
+ # [1.0.0-beta.49](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.48...v1.0.0-beta.49) (2024-03-04)
355
+
356
+ ### Bug Fixes
357
+
358
+ - change some jwt defaults and fix nbf date ([cff5f38](https://github.com/sciactive/nymphjs/commit/cff5f38da6c1624b3fc27655e3601f409f8b86c2))
359
+
360
+ # [1.0.0-beta.48](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.47...v1.0.0-beta.48) (2023-11-10)
361
+
362
+ ### Bug Fixes
363
+
364
+ - avoid trying to roll back a transaction twice ([e26ef31](https://github.com/sciactive/nymphjs/commit/e26ef312b617edcc715c81e7f92875dfaa7a904a))
365
+
366
+ # [1.0.0-beta.47](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.46...v1.0.0-beta.47) (2023-11-10)
367
+
368
+ **Note:** Version bump only for package @nymphjs/tilmeld
369
+
370
+ # [1.0.0-beta.46](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.45...v1.0.0-beta.46) (2023-08-29)
371
+
372
+ ### Bug Fixes
373
+
374
+ - secure cookies ([85d3ca4](https://github.com/sciactive/nymphjs/commit/85d3ca49f9ecdcdbaf68fee6639c3e77a4aeb109))
375
+
376
+ ### Features
377
+
378
+ - add minimum username length ([fcb317a](https://github.com/sciactive/nymphjs/commit/fcb317ad8f758a89b1b24f377b506e8a38f9ad41))
379
+ - enable tilmeld admins to remove totp secret from users ([18455b3](https://github.com/sciactive/nymphjs/commit/18455b3edbbfa1188f8cf317438bbfa028ba8f47))
380
+
381
+ # [1.0.0-beta.45](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.44...v1.0.0-beta.45) (2023-07-17)
382
+
383
+ **Note:** Version bump only for package @nymphjs/tilmeld
384
+
385
+ # [1.0.0-beta.44](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.43...v1.0.0-beta.44) (2023-07-13)
386
+
387
+ ### Bug Fixes
388
+
389
+ - wake before gatekeeper check ([1b7e985](https://github.com/sciactive/nymphjs/commit/1b7e985c41bd758c478503b9e51efcc2df5e6a91))
390
+
391
+ # [1.0.0-beta.43](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.42...v1.0.0-beta.43) (2023-07-12)
392
+
393
+ ### Bug Fixes
394
+
395
+ - update calls to gatekeeper to not use await ([ad36172](https://github.com/sciactive/nymphjs/commit/ad361725b67054aeb9e8e1c1a221c8e150a2c737))
396
+
397
+ # [1.0.0-beta.42](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.41...v1.0.0-beta.42) (2023-07-12)
398
+
399
+ ### Features
400
+
401
+ - make fillSession async so that gatekeeper can be sync ([fb6def4](https://github.com/sciactive/nymphjs/commit/fb6def45cd031516c9bcd3438f905e2ff881707b))
402
+
403
+ # [1.0.0-beta.41](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.40...v1.0.0-beta.41) (2023-07-12)
404
+
405
+ ### Features
406
+
407
+ - remove synchronous database queries ([b579fb2](https://github.com/sciactive/nymphjs/commit/b579fb2eacd96cdd1b386a62c5c00cdbb2438f6e))
408
+ - rewrite server side async api to match client side api ([9c537a8](https://github.com/sciactive/nymphjs/commit/9c537a8be49e9b989af0822a4c2236e8c2d20f87))
409
+
410
+ # [1.0.0-beta.40](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.39...v1.0.0-beta.40) (2023-07-10)
411
+
412
+ **Note:** Version bump only for package @nymphjs/tilmeld
413
+
414
+ # [1.0.0-beta.39](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.38...v1.0.0-beta.39) (2023-07-09)
415
+
416
+ **Note:** Version bump only for package @nymphjs/tilmeld
417
+
418
+ # [1.0.0-beta.38](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.37...v1.0.0-beta.38) (2023-07-09)
419
+
420
+ **Note:** Version bump only for package @nymphjs/tilmeld
421
+
422
+ # [1.0.0-beta.37](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.36...v1.0.0-beta.37) (2023-07-09)
423
+
424
+ **Note:** Version bump only for package @nymphjs/tilmeld
425
+
426
+ # [1.0.0-beta.36](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.35...v1.0.0-beta.36) (2023-07-09)
427
+
428
+ **Note:** Version bump only for package @nymphjs/tilmeld
429
+
430
+ # [1.0.0-beta.35](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.34...v1.0.0-beta.35) (2023-06-14)
431
+
432
+ **Note:** Version bump only for package @nymphjs/tilmeld
433
+
434
+ # [1.0.0-beta.34](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.33...v1.0.0-beta.34) (2023-05-13)
435
+
436
+ **Note:** Version bump only for package @nymphjs/tilmeld
437
+
438
+ # [1.0.0-beta.33](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.32...v1.0.0-beta.33) (2023-05-13)
439
+
440
+ **Note:** Version bump only for package @nymphjs/tilmeld
441
+
442
+ # [1.0.0-beta.32](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.31...v1.0.0-beta.32) (2023-05-13)
443
+
444
+ **Note:** Version bump only for package @nymphjs/tilmeld
445
+
446
+ # [1.0.0-beta.31](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.30...v1.0.0-beta.31) (2023-05-12)
447
+
448
+ **Note:** Version bump only for package @nymphjs/tilmeld
449
+
450
+ # [1.0.0-beta.30](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.29...v1.0.0-beta.30) (2023-05-12)
451
+
452
+ ### Features
453
+
454
+ - allow providing getEntityClass with a class instead of string ([ecd64c1](https://github.com/sciactive/nymphjs/commit/ecd64c1bf92e3657889613b76bcc46652f371ead))
455
+
456
+ # [1.0.0-beta.29](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.28...v1.0.0-beta.29) (2023-05-08)
457
+
458
+ **Note:** Version bump only for package @nymphjs/tilmeld
459
+
460
+ # [1.0.0-beta.28](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.27...v1.0.0-beta.28) (2023-05-05)
461
+
462
+ **Note:** Version bump only for package @nymphjs/tilmeld
463
+
464
+ # [1.0.0-beta.27](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.26...v1.0.0-beta.27) (2023-05-04)
465
+
466
+ **Note:** Version bump only for package @nymphjs/tilmeld
467
+
468
+ # [1.0.0-beta.26](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.25...v1.0.0-beta.26) (2023-05-04)
469
+
470
+ ### Features
471
+
472
+ - update packages and migrate to mysql2 ([72ad611](https://github.com/sciactive/nymphjs/commit/72ad611bd2bf7bf85c3ba8a3486503d9b50c49d6))
473
+
474
+ # [1.0.0-beta.25](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.24...v1.0.0-beta.25) (2023-05-04)
475
+
476
+ ### Bug Fixes
477
+
478
+ - tilmeld uses wrong class when cloned with user ([059c2ce](https://github.com/sciactive/nymphjs/commit/059c2cedf1b07b9681e87c240eb36723a4581918))
479
+
480
+ # [1.0.0-beta.24](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.23...v1.0.0-beta.24) (2023-05-02)
481
+
482
+ ### Bug Fixes
483
+
484
+ - fill session after setting current user clone ([7bae7cf](https://github.com/sciactive/nymphjs/commit/7bae7cf1bf236b8efc00cb7b5ed53cd21f1370c7))
485
+
486
+ # [1.0.0-beta.23](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.22...v1.0.0-beta.23) (2023-05-02)
487
+
488
+ ### Bug Fixes
489
+
490
+ - rare case where currentUser isn't corrent ([97f233a](https://github.com/sciactive/nymphjs/commit/97f233a5fcfd4b97dd282562b0c99097ac3ef41d))
491
+
492
+ # [1.0.0-beta.22](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.21...v1.0.0-beta.22) (2023-05-01)
493
+
494
+ **Note:** Version bump only for package @nymphjs/tilmeld
495
+
496
+ # [1.0.0-beta.21](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.20...v1.0.0-beta.21) (2023-05-01)
497
+
498
+ ### Features
499
+
500
+ - add totp two factor authentication ([cc9f8ed](https://github.com/sciactive/nymphjs/commit/cc9f8edb183271fa7f51e4b182b876efb8fa0f8d))
501
+
502
+ # [1.0.0-beta.20](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.19...v1.0.0-beta.20) (2023-04-30)
503
+
504
+ ### Features
505
+
506
+ - let the user revoke all current auth tokens ([63af3b9](https://github.com/sciactive/nymphjs/commit/63af3b9a31c6c221ab40c2c8a69231675f4634a2))
507
+
508
+ # [1.0.0-beta.19](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.18...v1.0.0-beta.19) (2023-04-29)
509
+
510
+ ### Bug Fixes
511
+
512
+ - some type issues ([ee69d5d](https://github.com/sciactive/nymphjs/commit/ee69d5d73361dacda5745d697df18fafd47810bc))
513
+
514
+ # [1.0.0-beta.18](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.17...v1.0.0-beta.18) (2023-04-27)
515
+
516
+ ### Bug Fixes
517
+
518
+ - small type issues ([b91579c](https://github.com/sciactive/nymphjs/commit/b91579c9c1e96500d903332648f5a93c9a7e7d9b))
519
+
520
+ ### Features
521
+
522
+ - add enforceTilmeld function ([130faf1](https://github.com/sciactive/nymphjs/commit/130faf151dcdfbfacd6814833868907dca037d24))
523
+ - add the ability to switch to a user without their password ([ca4466a](https://github.com/sciactive/nymphjs/commit/ca4466af1704d68905ac087350a8cf151c1072d9))
524
+ - forbid modifying ac props from client ([f9e896f](https://github.com/sciactive/nymphjs/commit/f9e896f6c57b08ae100bc50d33a0234b6a431333))
525
+ - remove access control bypass for sysadmins and ownerless entities, no longer needed ([345bbf4](https://github.com/sciactive/nymphjs/commit/345bbf4fd78a8f9d6d01fd0be8337854a1277ce6))
526
+
527
+ # [1.0.0-beta.17](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.16...v1.0.0-beta.17) (2023-04-24)
528
+
529
+ **Note:** Version bump only for package @nymphjs/tilmeld
530
+
531
+ # [1.0.0-beta.16](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.15...v1.0.0-beta.16) (2023-03-31)
532
+
533
+ ### Features
534
+
535
+ - add ability to tell tilmeld to log in a specific user during authentication ([922e145](https://github.com/sciactive/nymphjs/commit/922e1452adae44bed2aa9655be16e19796acb39b))
536
+ - username check callback ([372e95c](https://github.com/sciactive/nymphjs/commit/372e95c39664c0d718e497ec1b09426e7cfa8862))
537
+
538
+ # [1.0.0-beta.15](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.14...v1.0.0-beta.15) (2023-03-23)
539
+
540
+ **Note:** Version bump only for package @nymphjs/tilmeld
541
+
542
+ # [1.0.0-beta.14](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.13...v1.0.0-beta.14) (2023-03-17)
543
+
544
+ **Note:** Version bump only for package @nymphjs/tilmeld
545
+
546
+ # [1.0.0-beta.13](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.12...v1.0.0-beta.13) (2023-03-16)
547
+
548
+ **Note:** Version bump only for package @nymphjs/tilmeld
549
+
6
550
  # [1.0.0-beta.12](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.11...v1.0.0-beta.12) (2023-03-04)
7
551
 
8
552
  **Note:** Version bump only for package @nymphjs/tilmeld
package/README.md CHANGED
@@ -38,7 +38,7 @@ const nymph = new Nymph(
38
38
  new SQLite3Driver({
39
39
  filename: ':memory:',
40
40
  }),
41
- tilmeld
41
+ tilmeld,
42
42
  );
43
43
 
44
44
  // These are the classes specific to this instance of Tilmeld.
@@ -49,9 +49,22 @@ const { User, Group } = tilmeld;
49
49
 
50
50
  See the [config declaration file](src/conf/d.ts).
51
51
 
52
+ ## Abilities
53
+
54
+ There are a few abilities that Tilmeld uses internally:
55
+
56
+ - `system/admin` - A user with this ability has **all** abilities.
57
+ - `tilmeld/admin` - Allow the user to manage and edit other user's account and group information and grant/revoke abilities.
58
+ - `tilmeld/switch` - Allow the user to switch to other users (log in as them without their password).
59
+ - `uid/get/[name]` - Allow the user to read the named UID.
60
+ - `uid/new/[name]` - Allow the user to read, create, and increment the named UID.
61
+ - `uid/set/[name]` - Allow the user to read, create, increment, set, and delete the named UID.
62
+
63
+ The admin and switch abilities cannot be inherited from groups.
64
+
52
65
  # License
53
66
 
54
- Copyright 2021 SciActive Inc
67
+ Copyright 2021-2025 SciActive Inc
55
68
 
56
69
  Licensed under the Apache License, Version 2.0 (the "License");
57
70
  you may not use this file except in compliance with the License.
@@ -1,7 +1,22 @@
1
1
  import { Entity } from '@nymphjs/nymph';
2
+ /**
3
+ * AbleObject abstract class.
4
+ *
5
+ * Used in entities which support abilities, such as users and groups.
6
+ */
2
7
  export default abstract class AbleObject<T extends {
3
8
  abilities?: string[];
4
9
  }> extends Entity<T> {
10
+ /**
11
+ * Grant an ability.
12
+ *
13
+ * @param ability The ability.
14
+ */
5
15
  $grant(ability: string): void;
16
+ /**
17
+ * Revoke an ability.
18
+ *
19
+ * @param ability The ability.
20
+ */
6
21
  $revoke(ability: string): void;
7
22
  }
@@ -1,15 +1,28 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const nymph_1 = require("@nymphjs/nymph");
4
- class AbleObject extends nymph_1.Entity {
1
+ import { Entity } from '@nymphjs/nymph';
2
+ /**
3
+ * AbleObject abstract class.
4
+ *
5
+ * Used in entities which support abilities, such as users and groups.
6
+ */
7
+ export default class AbleObject extends Entity {
8
+ /**
9
+ * Grant an ability.
10
+ *
11
+ * @param ability The ability.
12
+ */
5
13
  $grant(ability) {
6
14
  if (!Array.isArray(this.$data.abilities)) {
7
15
  this.$data.abilities = [];
8
16
  }
9
- if (this.$data.abilities.indexOf(ability) === -1) {
17
+ if (!this.$data.abilities.includes(ability)) {
10
18
  this.$data.abilities.push(ability);
11
19
  }
12
20
  }
21
+ /**
22
+ * Revoke an ability.
23
+ *
24
+ * @param ability The ability.
25
+ */
13
26
  $revoke(ability) {
14
27
  if (!Array.isArray(this.$data.abilities)) {
15
28
  this.$data.abilities = [];
@@ -23,5 +36,4 @@ class AbleObject extends nymph_1.Entity {
23
36
  } while (idx !== -1);
24
37
  }
25
38
  }
26
- exports.default = AbleObject;
27
39
  //# sourceMappingURL=AbleObject.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AbleObject.js","sourceRoot":"","sources":["../src/AbleObject.ts"],"names":[],"mappings":";;AAAA,0CAAwC;AAOxC,MAA8B,UAE5B,SAAQ,cAAS;IAMV,MAAM,CAAC,OAAe;QAC3B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE;YACxC,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,EAAE,CAAC;SAC3B;QACD,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE;YAChD,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SACpC;IACH,CAAC;IAOM,OAAO,CAAC,OAAe;QAC5B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE;YACxC,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,EAAE,CAAC;SAC3B;QACD,IAAI,GAAW,CAAC;QAChB,GAAG;YACD,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC5C,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE;gBACd,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;aACrC;SACF,QAAQ,GAAG,KAAK,CAAC,CAAC,EAAE;IACvB,CAAC;CACF;AAlCD,6BAkCC"}
1
+ {"version":3,"file":"AbleObject.js","sourceRoot":"","sources":["../src/AbleObject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAExC;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAgB,UAE5B,SAAQ,MAAS;IACjB;;;;OAIG;IACI,MAAM,CAAC,OAAe;QAC3B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;YACzC,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,EAAE,CAAC;QAC5B,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5C,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IAED;;;;OAIG;IACI,OAAO,CAAC,OAAe;QAC5B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;YACzC,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,EAAE,CAAC;QAC5B,CAAC;QACD,IAAI,GAAW,CAAC;QAChB,GAAG,CAAC;YACF,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC5C,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;gBACf,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YACtC,CAAC;QACH,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC,EAAE;IACvB,CAAC;CACF"}