@nymphjs/client 1.0.0-beta.9 → 1.0.0-beta.91

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 (70) hide show
  1. package/CHANGELOG.md +378 -0
  2. package/README.md +6 -6
  3. package/asyncitertest.js +53 -0
  4. package/dist/Entity.d.ts +156 -0
  5. package/{lib → dist}/Entity.js +202 -104
  6. package/dist/Entity.js.map +1 -0
  7. package/dist/Entity.types.d.ts +218 -0
  8. package/dist/Entity.types.js +2 -0
  9. package/{lib → dist}/EntityWeakCache.d.ts +1 -1
  10. package/{lib → dist}/EntityWeakCache.js +5 -9
  11. package/dist/EntityWeakCache.js.map +1 -0
  12. package/dist/HttpRequester.d.ts +78 -0
  13. package/dist/HttpRequester.js +365 -0
  14. package/dist/HttpRequester.js.map +1 -0
  15. package/{lib → dist}/Nymph.d.ts +44 -11
  16. package/{lib → dist}/Nymph.js +118 -39
  17. package/dist/Nymph.js.map +1 -0
  18. package/{lib → dist}/Nymph.types.d.ts +74 -2
  19. package/dist/Nymph.types.js +2 -0
  20. package/{lib → dist}/PubSub.d.ts +16 -10
  21. package/{lib → dist}/PubSub.js +172 -108
  22. package/dist/PubSub.js.map +1 -0
  23. package/{lib → dist}/PubSub.types.d.ts +8 -3
  24. package/dist/PubSub.types.js +2 -0
  25. package/{lib → dist}/entityRefresh.d.ts +1 -1
  26. package/{lib → dist}/entityRefresh.js +21 -13
  27. package/dist/entityRefresh.js.map +1 -0
  28. package/dist/index.d.ts +13 -0
  29. package/dist/index.js +13 -2
  30. package/dist/index.js.map +1 -1
  31. package/{lib → dist}/utils.d.ts +1 -1
  32. package/{lib → dist}/utils.js +28 -21
  33. package/dist/utils.js.map +1 -0
  34. package/jest.config.js +11 -2
  35. package/package.json +23 -27
  36. package/src/Entity.ts +170 -104
  37. package/src/Entity.types.ts +29 -47
  38. package/src/EntityWeakCache.ts +8 -6
  39. package/src/HttpRequester.ts +308 -35
  40. package/src/Nymph.ts +134 -70
  41. package/src/Nymph.types.ts +41 -2
  42. package/src/PubSub.ts +214 -141
  43. package/src/PubSub.types.ts +10 -5
  44. package/src/entityRefresh.ts +6 -6
  45. package/src/index.ts +10 -10
  46. package/src/utils.ts +12 -5
  47. package/tsconfig.json +6 -4
  48. package/typedoc.json +4 -0
  49. package/dist/index.js.LICENSE.txt +0 -8
  50. package/lib/Entity.d.ts +0 -51
  51. package/lib/Entity.js.map +0 -1
  52. package/lib/Entity.types.d.ts +0 -65
  53. package/lib/Entity.types.js +0 -3
  54. package/lib/EntityWeakCache.js.map +0 -1
  55. package/lib/HttpRequester.d.ts +0 -42
  56. package/lib/HttpRequester.js +0 -160
  57. package/lib/HttpRequester.js.map +0 -1
  58. package/lib/Nymph.js.map +0 -1
  59. package/lib/Nymph.types.js +0 -3
  60. package/lib/PubSub.js.map +0 -1
  61. package/lib/PubSub.types.js +0 -3
  62. package/lib/entityRefresh.js.map +0 -1
  63. package/lib/index.d.ts +0 -13
  64. package/lib/index.js +0 -34
  65. package/lib/index.js.map +0 -1
  66. package/lib/utils.js.map +0 -1
  67. package/webpack.config.js +0 -28
  68. /package/{lib → dist}/Entity.types.js.map +0 -0
  69. /package/{lib → dist}/Nymph.types.js.map +0 -0
  70. /package/{lib → dist}/PubSub.types.js.map +0 -0
package/CHANGELOG.md CHANGED
@@ -3,6 +3,384 @@
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.91](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.90...v1.0.0-beta.91) (2025-03-07)
7
+
8
+ **Note:** Version bump only for package @nymphjs/client
9
+
10
+ # [1.0.0-beta.90](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.89...v1.0.0-beta.90) (2025-02-09)
11
+
12
+ **Note:** Version bump only for package @nymphjs/client
13
+
14
+ # [1.0.0-beta.89](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.88...v1.0.0-beta.89) (2025-02-09)
15
+
16
+ **Note:** Version bump only for package @nymphjs/client
17
+
18
+ # [1.0.0-beta.88](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.87...v1.0.0-beta.88) (2025-01-30)
19
+
20
+ **Note:** Version bump only for package @nymphjs/client
21
+
22
+ # [1.0.0-beta.87](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.86...v1.0.0-beta.87) (2025-01-20)
23
+
24
+ ### Features
25
+
26
+ - deprecate node client and allow multiple client instances to each log in own users ([17b42f4](https://github.com/sciactive/nymphjs/commit/17b42f449f2355a3ce896b8e86a47edd660e9277))
27
+
28
+ # [1.0.0-beta.86](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.85...v1.0.0-beta.86) (2024-12-28)
29
+
30
+ ### Bug Fixes
31
+
32
+ - entity search functions handling of null values ([6ac0335](https://github.com/sciactive/nymphjs/commit/6ac0335ecb792979ecfb621395a55b68a607429f))
33
+
34
+ # [1.0.0-beta.85](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.84...v1.0.0-beta.85) (2024-12-27)
35
+
36
+ **Note:** Version bump only for package @nymphjs/client
37
+
38
+ # [1.0.0-beta.84](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.83...v1.0.0-beta.84) (2024-12-21)
39
+
40
+ **Note:** Version bump only for package @nymphjs/client
41
+
42
+ # [1.0.0-beta.83](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.82...v1.0.0-beta.83) (2024-12-20)
43
+
44
+ **Note:** Version bump only for package @nymphjs/client
45
+
46
+ # [1.0.0-beta.82](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.81...v1.0.0-beta.82) (2024-12-15)
47
+
48
+ ### Features
49
+
50
+ - migrate to es modules, upgrade all packages, migrate to Svelte 5 ([3f2b9e5](https://github.com/sciactive/nymphjs/commit/3f2b9e517b39934eddce66601d7fc747fbf3f9e6))
51
+
52
+ # [1.0.0-beta.81](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.80...v1.0.0-beta.81) (2024-09-28)
53
+
54
+ **Note:** Version bump only for package @nymphjs/client
55
+
56
+ # [1.0.0-beta.80](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.79...v1.0.0-beta.80) (2024-09-28)
57
+
58
+ **Note:** Version bump only for package @nymphjs/client
59
+
60
+ # [1.0.0-beta.79](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.78...v1.0.0-beta.79) (2024-09-28)
61
+
62
+ **Note:** Version bump only for package @nymphjs/client
63
+
64
+ # [1.0.0-beta.78](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.77...v1.0.0-beta.78) (2024-09-27)
65
+
66
+ **Note:** Version bump only for package @nymphjs/client
67
+
68
+ # [1.0.0-beta.77](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.76...v1.0.0-beta.77) (2024-09-26)
69
+
70
+ **Note:** Version bump only for package @nymphjs/client
71
+
72
+ # [1.0.0-beta.76](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.75...v1.0.0-beta.76) (2024-09-25)
73
+
74
+ **Note:** Version bump only for package @nymphjs/client
75
+
76
+ # [1.0.0-beta.75](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.74...v1.0.0-beta.75) (2024-09-24)
77
+
78
+ **Note:** Version bump only for package @nymphjs/client
79
+
80
+ # [1.0.0-beta.74](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.73...v1.0.0-beta.74) (2024-09-21)
81
+
82
+ **Note:** Version bump only for package @nymphjs/client
83
+
84
+ # [1.0.0-beta.73](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.72...v1.0.0-beta.73) (2024-09-20)
85
+
86
+ **Note:** Version bump only for package @nymphjs/client
87
+
88
+ # [1.0.0-beta.72](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.71...v1.0.0-beta.72) (2024-09-20)
89
+
90
+ **Note:** Version bump only for package @nymphjs/client
91
+
92
+ # [1.0.0-beta.71](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.70...v1.0.0-beta.71) (2024-09-20)
93
+
94
+ **Note:** Version bump only for package @nymphjs/client
95
+
96
+ # [1.0.0-beta.70](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.69...v1.0.0-beta.70) (2024-09-20)
97
+
98
+ **Note:** Version bump only for package @nymphjs/client
99
+
100
+ # [1.0.0-beta.69](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.68...v1.0.0-beta.69) (2024-09-19)
101
+
102
+ **Note:** Version bump only for package @nymphjs/client
103
+
104
+ # [1.0.0-beta.68](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.67...v1.0.0-beta.68) (2024-09-19)
105
+
106
+ **Note:** Version bump only for package @nymphjs/client
107
+
108
+ # [1.0.0-beta.67](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.66...v1.0.0-beta.67) (2024-09-03)
109
+
110
+ **Note:** Version bump only for package @nymphjs/client
111
+
112
+ # [1.0.0-beta.66](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.65...v1.0.0-beta.66) (2024-08-06)
113
+
114
+ **Note:** Version bump only for package @nymphjs/client
115
+
116
+ # [1.0.0-beta.65](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.64...v1.0.0-beta.65) (2024-08-05)
117
+
118
+ **Note:** Version bump only for package @nymphjs/client
119
+
120
+ # [1.0.0-beta.64](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.63...v1.0.0-beta.64) (2024-08-04)
121
+
122
+ **Note:** Version bump only for package @nymphjs/client
123
+
124
+ # [1.0.0-beta.63](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.62...v1.0.0-beta.63) (2024-06-18)
125
+
126
+ **Note:** Version bump only for package @nymphjs/client
127
+
128
+ # [1.0.0-beta.62](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.61...v1.0.0-beta.62) (2024-06-15)
129
+
130
+ **Note:** Version bump only for package @nymphjs/client
131
+
132
+ # [1.0.0-beta.61](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.60...v1.0.0-beta.61) (2024-06-14)
133
+
134
+ **Note:** Version bump only for package @nymphjs/client
135
+
136
+ # [1.0.0-beta.60](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.59...v1.0.0-beta.60) (2024-06-14)
137
+
138
+ **Note:** Version bump only for package @nymphjs/client
139
+
140
+ # [1.0.0-beta.59](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.58...v1.0.0-beta.59) (2024-06-14)
141
+
142
+ ### Features
143
+
144
+ - add uniqueness constraint feature, refactor some types ([8133d32](https://github.com/sciactive/nymphjs/commit/8133d32b2c04907182dca2e9171b8217ed1b57e4))
145
+
146
+ # [1.0.0-beta.58](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.57...v1.0.0-beta.58) (2024-06-12)
147
+
148
+ **Note:** Version bump only for package @nymphjs/client
149
+
150
+ # [1.0.0-beta.57](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.56...v1.0.0-beta.57) (2024-06-12)
151
+
152
+ **Note:** Version bump only for package @nymphjs/client
153
+
154
+ # [1.0.0-beta.56](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.55...v1.0.0-beta.56) (2024-06-11)
155
+
156
+ ### Features
157
+
158
+ - allow connections where tokens are not renewed ([39071a5](https://github.com/sciactive/nymphjs/commit/39071a545644075190bd8213be25e0a0c46d2b5d))
159
+
160
+ # [1.0.0-beta.55](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.54...v1.0.0-beta.55) (2024-05-26)
161
+
162
+ **Note:** Version bump only for package @nymphjs/client
163
+
164
+ # [1.0.0-beta.54](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.53...v1.0.0-beta.54) (2024-05-26)
165
+
166
+ **Note:** Version bump only for package @nymphjs/client
167
+
168
+ # [1.0.0-beta.53](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.52...v1.0.0-beta.53) (2024-05-26)
169
+
170
+ **Note:** Version bump only for package @nymphjs/client
171
+
172
+ # [1.0.0-beta.52](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.51...v1.0.0-beta.52) (2024-05-25)
173
+
174
+ **Note:** Version bump only for package @nymphjs/client
175
+
176
+ # [1.0.0-beta.51](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.50...v1.0.0-beta.51) (2024-04-12)
177
+
178
+ **Note:** Version bump only for package @nymphjs/client
179
+
180
+ # [1.0.0-beta.50](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.49...v1.0.0-beta.50) (2024-04-08)
181
+
182
+ **Note:** Version bump only for package @nymphjs/client
183
+
184
+ # [1.0.0-beta.49](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.48...v1.0.0-beta.49) (2024-03-04)
185
+
186
+ **Note:** Version bump only for package @nymphjs/client
187
+
188
+ # [1.0.0-beta.48](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.47...v1.0.0-beta.48) (2023-11-10)
189
+
190
+ **Note:** Version bump only for package @nymphjs/client
191
+
192
+ # [1.0.0-beta.47](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.46...v1.0.0-beta.47) (2023-11-10)
193
+
194
+ **Note:** Version bump only for package @nymphjs/client
195
+
196
+ # [1.0.0-beta.46](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.45...v1.0.0-beta.46) (2023-08-29)
197
+
198
+ **Note:** Version bump only for package @nymphjs/client
199
+
200
+ # [1.0.0-beta.45](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.44...v1.0.0-beta.45) (2023-07-17)
201
+
202
+ **Note:** Version bump only for package @nymphjs/client
203
+
204
+ # [1.0.0-beta.44](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.43...v1.0.0-beta.44) (2023-07-13)
205
+
206
+ **Note:** Version bump only for package @nymphjs/client
207
+
208
+ # [1.0.0-beta.43](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.42...v1.0.0-beta.43) (2023-07-12)
209
+
210
+ **Note:** Version bump only for package @nymphjs/client
211
+
212
+ # [1.0.0-beta.42](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.41...v1.0.0-beta.42) (2023-07-12)
213
+
214
+ **Note:** Version bump only for package @nymphjs/client
215
+
216
+ # [1.0.0-beta.41](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.40...v1.0.0-beta.41) (2023-07-12)
217
+
218
+ ### Features
219
+
220
+ - remove synchronous database queries ([b579fb2](https://github.com/sciactive/nymphjs/commit/b579fb2eacd96cdd1b386a62c5c00cdbb2438f6e))
221
+ - rewrite server side async api to match client side api ([9c537a8](https://github.com/sciactive/nymphjs/commit/9c537a8be49e9b989af0822a4c2236e8c2d20f87))
222
+
223
+ # [1.0.0-beta.40](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.39...v1.0.0-beta.40) (2023-07-10)
224
+
225
+ ### Bug Fixes
226
+
227
+ - rewrite updateArray function to fix it ([22185c7](https://github.com/sciactive/nymphjs/commit/22185c7627f6dc616f9d3187ee8c9a383ca71441))
228
+
229
+ # [1.0.0-beta.39](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.38...v1.0.0-beta.39) (2023-07-09)
230
+
231
+ ### Bug Fixes
232
+
233
+ - go back to older code for updateArray, but better number handling ([7a58c98](https://github.com/sciactive/nymphjs/commit/7a58c983eac73839544361b4d32fb2dbb0881da2))
234
+
235
+ # [1.0.0-beta.38](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.37...v1.0.0-beta.38) (2023-07-09)
236
+
237
+ ### Bug Fixes
238
+
239
+ - pull value from the array in updateArray function ([352d1ea](https://github.com/sciactive/nymphjs/commit/352d1eab0cf8868f672ce0350564eb75ac9d4a45))
240
+ - simplify updateArray code ([348154c](https://github.com/sciactive/nymphjs/commit/348154c4d42b1e2b54bc491c1588a59c7c48984c))
241
+
242
+ # [1.0.0-beta.37](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.36...v1.0.0-beta.37) (2023-07-09)
243
+
244
+ ### Bug Fixes
245
+
246
+ - correctly iterate through new arrays on updateArray pubsub method ([27d7cc8](https://github.com/sciactive/nymphjs/commit/27d7cc847d93300e3d76cf6fa528176c3d06ae67))
247
+
248
+ # [1.0.0-beta.36](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.35...v1.0.0-beta.36) (2023-07-09)
249
+
250
+ ### Bug Fixes
251
+
252
+ - use code 1000 for closing pubsub connection ([cbd56af](https://github.com/sciactive/nymphjs/commit/cbd56af98d0775dee36025d909a82a0af0633d72))
253
+
254
+ # [1.0.0-beta.35](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.34...v1.0.0-beta.35) (2023-06-14)
255
+
256
+ ### Features
257
+
258
+ - add iteratable server call support using event streams ([fa7c1ec](https://github.com/sciactive/nymphjs/commit/fa7c1ec869e1fb52db20c8245e98a681f73dbf83))
259
+
260
+ # [1.0.0-beta.34](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.33...v1.0.0-beta.34) (2023-05-13)
261
+
262
+ ### Bug Fixes
263
+
264
+ - subscribeWith making guid null ([dbb38d4](https://github.com/sciactive/nymphjs/commit/dbb38d424f2395bbfa01ab4a0663dcaebf0c7aa7))
265
+
266
+ # [1.0.0-beta.33](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.32...v1.0.0-beta.33) (2023-05-13)
267
+
268
+ **Note:** Version bump only for package @nymphjs/client
269
+
270
+ # [1.0.0-beta.32](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.31...v1.0.0-beta.32) (2023-05-13)
271
+
272
+ ### Features
273
+
274
+ - issue initial request with pubsub instead of rest on subscribe ([8a232d2](https://github.com/sciactive/nymphjs/commit/8a232d2faeb8622924f9c35a01a8f71a70659bb3))
275
+
276
+ # [1.0.0-beta.31](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.30...v1.0.0-beta.31) (2023-05-12)
277
+
278
+ ### Bug Fixes
279
+
280
+ - pubsub client reconnect multiple times issue ([bba0897](https://github.com/sciactive/nymphjs/commit/bba08974fadf318d040f8844a2d583f6bc15b486))
281
+
282
+ # [1.0.0-beta.30](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.29...v1.0.0-beta.30) (2023-05-12)
283
+
284
+ ### Features
285
+
286
+ - allow providing getEntityClass with a class instead of string ([ecd64c1](https://github.com/sciactive/nymphjs/commit/ecd64c1bf92e3657889613b76bcc46652f371ead))
287
+
288
+ # [1.0.0-beta.29](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.28...v1.0.0-beta.29) (2023-05-08)
289
+
290
+ **Note:** Version bump only for package @nymphjs/client
291
+
292
+ # [1.0.0-beta.28](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.27...v1.0.0-beta.28) (2023-05-05)
293
+
294
+ ### Bug Fixes
295
+
296
+ - pubsub client auth ([979d913](https://github.com/sciactive/nymphjs/commit/979d9138abc86c7cef8b80b4f63c519b7b7ded78))
297
+
298
+ # [1.0.0-beta.27](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.26...v1.0.0-beta.27) (2023-05-04)
299
+
300
+ **Note:** Version bump only for package @nymphjs/client
301
+
302
+ # [1.0.0-beta.26](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.25...v1.0.0-beta.26) (2023-05-04)
303
+
304
+ ### Features
305
+
306
+ - update packages and migrate to mysql2 ([72ad611](https://github.com/sciactive/nymphjs/commit/72ad611bd2bf7bf85c3ba8a3486503d9b50c49d6))
307
+
308
+ # [1.0.0-beta.25](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.24...v1.0.0-beta.25) (2023-05-04)
309
+
310
+ ### Features
311
+
312
+ - add flags to disable rest and pubsub support on an entity class ([52106a3](https://github.com/sciactive/nymphjs/commit/52106a3d44065bcfec40d361344bf1eba59a5136)), closes [#1](https://github.com/sciactive/nymphjs/issues/1)
313
+
314
+ # [1.0.0-beta.24](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.23...v1.0.0-beta.24) (2023-05-02)
315
+
316
+ **Note:** Version bump only for package @nymphjs/client
317
+
318
+ # [1.0.0-beta.23](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.22...v1.0.0-beta.23) (2023-05-02)
319
+
320
+ **Note:** Version bump only for package @nymphjs/client
321
+
322
+ # [1.0.0-beta.22](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.21...v1.0.0-beta.22) (2023-05-01)
323
+
324
+ **Note:** Version bump only for package @nymphjs/client
325
+
326
+ # [1.0.0-beta.21](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.20...v1.0.0-beta.21) (2023-05-01)
327
+
328
+ **Note:** Version bump only for package @nymphjs/client
329
+
330
+ # [1.0.0-beta.20](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.19...v1.0.0-beta.20) (2023-04-30)
331
+
332
+ **Note:** Version bump only for package @nymphjs/client
333
+
334
+ # [1.0.0-beta.19](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.18...v1.0.0-beta.19) (2023-04-29)
335
+
336
+ ### Bug Fixes
337
+
338
+ - some type issues ([ee69d5d](https://github.com/sciactive/nymphjs/commit/ee69d5d73361dacda5745d697df18fafd47810bc))
339
+
340
+ # [1.0.0-beta.18](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.17...v1.0.0-beta.18) (2023-04-27)
341
+
342
+ ### Features
343
+
344
+ - add the ability to switch to a user without their password ([ca4466a](https://github.com/sciactive/nymphjs/commit/ca4466af1704d68905ac087350a8cf151c1072d9))
345
+
346
+ # [1.0.0-beta.17](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.16...v1.0.0-beta.17) (2023-04-24)
347
+
348
+ **Note:** Version bump only for package @nymphjs/client
349
+
350
+ # [1.0.0-beta.16](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.15...v1.0.0-beta.16) (2023-03-31)
351
+
352
+ **Note:** Version bump only for package @nymphjs/client
353
+
354
+ # [1.0.0-beta.15](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.14...v1.0.0-beta.15) (2023-03-23)
355
+
356
+ ### Features
357
+
358
+ - add option to sort results by a property ([16384e7](https://github.com/sciactive/nymphjs/commit/16384e7bdab88abb55ccccabb06ac09f92fa8a03))
359
+
360
+ # [1.0.0-beta.14](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.13...v1.0.0-beta.14) (2023-03-17)
361
+
362
+ **Note:** Version bump only for package @nymphjs/client
363
+
364
+ # [1.0.0-beta.13](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.12...v1.0.0-beta.13) (2023-03-16)
365
+
366
+ ### Features
367
+
368
+ - add noAutoconnect option to pubsub client ([266e715](https://github.com/sciactive/nymphjs/commit/266e715988b34f3e0d58ac68178677d2086b5160))
369
+
370
+ # [1.0.0-beta.12](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.11...v1.0.0-beta.12) (2023-03-04)
371
+
372
+ **Note:** Version bump only for package @nymphjs/client
373
+
374
+ # [1.0.0-beta.11](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.10...v1.0.0-beta.11) (2023-02-27)
375
+
376
+ ### Features
377
+
378
+ - allow customizing HTTP status codes in response from server called methods ([8c5c3d4](https://github.com/sciactive/nymphjs/commit/8c5c3d4af741edabc1a8947aaebf026ba546c46a))
379
+
380
+ # [1.0.0-beta.10](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.9...v1.0.0-beta.10) (2023-01-19)
381
+
382
+ **Note:** Version bump only for package @nymphjs/client
383
+
6
384
  # [1.0.0-beta.9](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.8...v1.0.0-beta.9) (2023-01-09)
7
385
 
8
386
  ### Bug Fixes
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Powerful object data storage and querying.
4
4
 
5
- The Nymph Client allows you to query and push data to a Nymph REST server from the browser. You can also subscribe to entities and queries on a Nymph PubSub server and be notified of changes.
5
+ The Nymph Client allows you to query and push data to a Nymph REST server from the browser or Node.js. You can also subscribe to entities and queries on a Nymph PubSub server and be notified of changes.
6
6
 
7
7
  ## Installation
8
8
 
@@ -10,7 +10,7 @@ The Nymph Client allows you to query and push data to a Nymph REST server from t
10
10
  npm install --save @nymphjs/client
11
11
  ```
12
12
 
13
- This package is the Nymph client for browsers. You can find UMD in `dist`, or TS source in `src`. There is also a **[Node.js client](https://github.com/sciactive/nymphjs/packages/client-node)**.
13
+ This package is the Nymph client for browsers and Node.js, but requires at least Node.js 22 to be used in Node. You can find ES modules in `dist`, or TS source in `src`.
14
14
 
15
15
  ## Usage
16
16
 
@@ -18,7 +18,7 @@ Here's an overview:
18
18
 
19
19
  ```ts
20
20
  import { Nymph, PubSub } from '@nymphjs/client';
21
- import TodoClass from 'Todo';
21
+ import TodoClass from './Todo.js';
22
22
 
23
23
  const nymphOptions = {
24
24
  restUrl: 'https://yournymphrestserver/path/to/your/endpoint',
@@ -59,7 +59,7 @@ let subscription = pubsub.subscribeEntities(
59
59
  {
60
60
  type: '&',
61
61
  '!tag': 'archived',
62
- }
62
+ },
63
63
  )(
64
64
  (update) => {
65
65
  // The first time this is called, `update` will be an array of Todo
@@ -77,7 +77,7 @@ let subscription = pubsub.subscribeEntities(
77
77
  // If you provide this callback, the server will send updates of how many
78
78
  // clients are subscribed to this query.
79
79
  userCount = count;
80
- }
80
+ },
81
81
  );
82
82
 
83
83
  // ...
@@ -88,7 +88,7 @@ subscription.unsubscribe();
88
88
 
89
89
  # License
90
90
 
91
- Copyright 2021 SciActive Inc
91
+ Copyright 2021-2025 SciActive Inc
92
92
 
93
93
  Licensed under the Apache License, Version 2.0 (the "License");
94
94
  you may not use this file except in compliance with the License.
@@ -0,0 +1,53 @@
1
+ async function* iterate() {
2
+ let values = [1, 2, 3];
3
+ let finished = false;
4
+
5
+ let promise = new Promise((resolve) => {
6
+ setTimeout(() => {
7
+ promise = new Promise((resolve) => {
8
+ setTimeout(() => {
9
+ values.push(4);
10
+ promise = new Promise((resolve) => {
11
+ setTimeout(() => {
12
+ values.push(5, 6);
13
+ finished = true;
14
+ resolve();
15
+ }, 3000);
16
+ });
17
+ resolve();
18
+ }, 3000);
19
+ });
20
+ resolve();
21
+ }, 0);
22
+ });
23
+
24
+ const iterable = {
25
+ async *[Symbol.asyncIterator]() {
26
+ do {
27
+ await promise;
28
+
29
+ while (values.length) {
30
+ yield values.shift();
31
+ }
32
+ } while (!finished);
33
+ },
34
+ };
35
+
36
+ yield* iterable;
37
+ }
38
+
39
+ (async () => {
40
+ const iter = iterate();
41
+
42
+ for await (let value of iter) {
43
+ console.log(value);
44
+ }
45
+
46
+ console.log('done');
47
+
48
+ for await (let value of ['a', 'b', 'c']) {
49
+ console.log(value);
50
+ }
51
+
52
+ console.log('done');
53
+ })();
@@ -0,0 +1,156 @@
1
+ import type Nymph from './Nymph.js';
2
+ import { EntityConstructor, EntityData, EntityInterface, EntityJson, EntityPatch, EntityReference } from './Entity.types.js';
3
+ export type EntityDataType<T> = T extends Entity<infer DataType> ? DataType : never;
4
+ export type EntityInstanceType<T extends EntityConstructor> = T extends new () => infer E ? E & EntityDataType<E> : never;
5
+ export default class Entity<T extends EntityData = EntityData> implements EntityInterface {
6
+ /**
7
+ * The instance of Nymph to use for queries.
8
+ */
9
+ static nymph: Nymph;
10
+ /**
11
+ * The lookup name for this entity.
12
+ *
13
+ * This is used for reference arrays (and sleeping references) and server
14
+ * requests.
15
+ */
16
+ static class: string;
17
+ /**
18
+ * The instance of Nymph to use for queries.
19
+ */
20
+ $nymph: Nymph;
21
+ /**
22
+ * The entity's Globally Unique ID.
23
+ */
24
+ guid: string | null;
25
+ /**
26
+ * The creation date of the entity as a high precision Unix timestamp.
27
+ */
28
+ cdate: number | null;
29
+ /**
30
+ * The modified date of the entity as a high precision Unix timestamp.
31
+ */
32
+ mdate: number | null;
33
+ /**
34
+ * Array of the entity's tags.
35
+ */
36
+ tags: string[];
37
+ /**
38
+ * Array of the entity's original tags (for patch).
39
+ */
40
+ protected $originalTags: string[];
41
+ /**
42
+ * A map of props to whether they're dirty (for patch).
43
+ */
44
+ protected $dirty: {
45
+ [k: string]: boolean;
46
+ };
47
+ /**
48
+ * The data proxy handler.
49
+ */
50
+ protected $dataHandler: Object;
51
+ /**
52
+ * The actual data store.
53
+ */
54
+ protected $dataStore: T;
55
+ /**
56
+ * The data proxy object.
57
+ */
58
+ protected $data: T;
59
+ /**
60
+ * Whether this instance is a sleeping reference.
61
+ */
62
+ protected $isASleepingReference: boolean;
63
+ /**
64
+ * The reference to use to wake.
65
+ */
66
+ protected $sleepingReference: EntityReference | null;
67
+ /**
68
+ * A promise that resolved when the entity's data is wake.
69
+ */
70
+ protected $wakePromise: Promise<Entity<T>> | null;
71
+ /**
72
+ * Initialize an entity.
73
+ */
74
+ constructor(..._rest: any[]);
75
+ /**
76
+ * Create or retrieve a new entity instance.
77
+ *
78
+ * Note that this will always return an entity, even if the GUID is not found.
79
+ *
80
+ * @param guid An optional GUID to retrieve.
81
+ */
82
+ static factory<E extends Entity>(this: {
83
+ new (): E;
84
+ }, guid?: string): Promise<E & EntityDataType<E>>;
85
+ /**
86
+ * Create a new entity instance.
87
+ */
88
+ static factorySync<E extends Entity>(this: {
89
+ new (): E;
90
+ }): E & EntityDataType<E>;
91
+ /**
92
+ * Create a new sleeping reference instance.
93
+ *
94
+ * Sleeping references won't retrieve their data from the server until they
95
+ * are readied with `$wake()` or a parent's `$wakeAll()`.
96
+ *
97
+ * @param reference The Nymph Entity Reference to use to wake.
98
+ * @returns The new instance.
99
+ */
100
+ static factoryReference<E extends Entity>(this: {
101
+ new (): E;
102
+ }, reference: EntityReference): E & EntityDataType<E>;
103
+ /**
104
+ * Call a static method on the server version of this entity.
105
+ *
106
+ * @param method The name of the method.
107
+ * @param params The parameters to call the method with.
108
+ * @returns The value that the method on the server returned.
109
+ */
110
+ static serverCallStatic(method: string, params: Iterable<any>): Promise<any>;
111
+ /**
112
+ * Call a static iterator method on the server version of this entity.
113
+ *
114
+ * @param method The name of the method.
115
+ * @param params The parameters to call the method with.
116
+ * @returns An iterator that iterates over values that the method on the server yields.
117
+ */
118
+ static serverCallStaticIterator(method: string, params: Iterable<any>): Promise<import("./HttpRequester.js").AbortableAsyncIterator<any>>;
119
+ toJSON(): EntityJson;
120
+ $init(entityJson: EntityJson | null): Entity<T>;
121
+ $addTag(...tags: string[]): void;
122
+ $arraySearch(array: any[], strict?: boolean): number;
123
+ $delete(): Promise<boolean>;
124
+ $equals(object: any): boolean;
125
+ $getPatch(): EntityPatch;
126
+ $hasTag(...tags: string[]): boolean;
127
+ $isDirty(property: string): boolean | null;
128
+ $inArray(array: any[], strict?: boolean): boolean;
129
+ $is(object: any): boolean;
130
+ $patch(): Promise<boolean>;
131
+ /**
132
+ * Check if this is a sleeping reference and throw an error if so.
133
+ */
134
+ protected $check(): void;
135
+ /**
136
+ * Check if this is a sleeping reference.
137
+ */
138
+ $asleep(): boolean;
139
+ /**
140
+ * Wake from a sleeping reference.
141
+ */
142
+ $wake(): Promise<Entity<T>>;
143
+ $wakeAll(level?: number): Promise<Entity<T>>;
144
+ protected $referenceSleep(reference: EntityReference): void;
145
+ $refresh(): Promise<boolean | 0>;
146
+ $removeTag(...tags: string[]): void;
147
+ $save(): Promise<boolean>;
148
+ $serverCall(method: string, params: Iterable<any>, stateless?: boolean): Promise<any>;
149
+ $toReference(): EntityReference | EntityInterface;
150
+ }
151
+ export declare class EntityIsSleepingReferenceError extends Error {
152
+ constructor(message: string);
153
+ }
154
+ export declare class InvalidStateError extends Error {
155
+ constructor(message: string);
156
+ }