@ethlete/query 5.15.1 → 5.16.0

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 (184) hide show
  1. package/.eslintrc.json +40 -0
  2. package/CHANGELOG.md +8 -0
  3. package/jest.config.ts +23 -0
  4. package/ng-package.json +8 -0
  5. package/package.json +6 -23
  6. package/project.json +37 -0
  7. package/{index.d.ts → src/index.ts} +2 -0
  8. package/src/lib/auth/auth-provider.types.ts +160 -0
  9. package/src/lib/auth/auth-provider.utils.ts +39 -0
  10. package/src/lib/auth/basic-auth-provider.ts +17 -0
  11. package/src/lib/auth/bearer-auth-provider.ts +243 -0
  12. package/src/lib/auth/custom-header-auth-provider.ts +13 -0
  13. package/{lib/class-validator/class-validator.types.d.ts → src/lib/class-validator/class-validator.types.ts} +4 -3
  14. package/src/lib/class-validator/class-validator.utils.ts +5 -0
  15. package/src/lib/devtools/components/query-devtools/query-devtools.component.html +402 -0
  16. package/src/lib/devtools/components/query-devtools/query-devtools.component.scss +360 -0
  17. package/src/lib/devtools/components/query-devtools/query-devtools.component.ts +427 -0
  18. package/src/lib/devtools/pipes/query-short-name.pipe.ts +24 -0
  19. package/src/lib/devtools/utils/query-client.utils.ts +25 -0
  20. package/src/lib/directives/infinity-query-trigger.directive.ts +58 -0
  21. package/src/lib/directives/infinity-query.directive.ts +208 -0
  22. package/src/lib/directives/query.directive.ts +201 -0
  23. package/src/lib/entity/entity-store.ts +180 -0
  24. package/src/lib/entity/entity.types.ts +34 -0
  25. package/src/lib/entity/entity.utils.ts +51 -0
  26. package/src/lib/gql/gql.ts +22 -0
  27. package/src/lib/infinite-query/infinity-query.ts +245 -0
  28. package/src/lib/infinite-query/infinity-query.types.ts +149 -0
  29. package/src/lib/infinite-query/infinity-query.utils.ts +14 -0
  30. package/src/lib/logger/logger.ts +30 -0
  31. package/src/lib/query/query.ts +631 -0
  32. package/src/lib/query/query.types.ts +532 -0
  33. package/src/lib/query/query.utils.spec.ts +92 -0
  34. package/src/lib/query/query.utils.ts +450 -0
  35. package/src/lib/query-client/query-client.spec.ts +77 -0
  36. package/src/lib/query-client/query-client.ts +195 -0
  37. package/src/lib/query-client/query-client.types.ts +101 -0
  38. package/src/lib/query-client/query-client.utils.spec.ts +61 -0
  39. package/src/lib/query-client/query-client.utils.ts +28 -0
  40. package/src/lib/query-creator/query-creator.ts +103 -0
  41. package/src/lib/query-creator/query-creator.types.ts +74 -0
  42. package/src/lib/query-form/query-form.ts +526 -0
  43. package/src/lib/query-form/query-form.types.ts +169 -0
  44. package/src/lib/query-form/query-form.utils.ts +116 -0
  45. package/src/lib/query-store/query-store.ts +192 -0
  46. package/src/lib/request/request.ts +253 -0
  47. package/src/lib/request/request.types.ts +164 -0
  48. package/src/lib/request/request.util.spec.ts +177 -0
  49. package/src/lib/request/request.util.ts +399 -0
  50. package/src/lib/stories/angular-example-page.mdx +85 -0
  51. package/src/lib/stories/authentication-page.mdx +35 -0
  52. package/src/lib/stories/changelog-page.mdx +9 -0
  53. package/src/lib/stories/client-page.mdx +100 -0
  54. package/src/lib/stories/queries-page.mdx +117 -0
  55. package/src/lib/symfony/symfony.types.ts +21 -0
  56. package/src/lib/symfony/symfony.utils.ts +43 -0
  57. package/src/lib/utils/data.utils.ts +280 -0
  58. package/src/lib/utils/deep-freeze.util.ts +21 -0
  59. package/{lib/utils/def.util.d.ts → src/lib/utils/def.util.ts} +1 -1
  60. package/src/test-setup.ts +1 -0
  61. package/tsconfig.json +29 -0
  62. package/tsconfig.lib.json +12 -0
  63. package/tsconfig.lib.prod.json +10 -0
  64. package/tsconfig.spec.json +11 -0
  65. package/esm2022/ethlete-query.mjs +0 -5
  66. package/esm2022/index.mjs +0 -20
  67. package/esm2022/lib/auth/auth-provider.types.mjs +0 -2
  68. package/esm2022/lib/auth/auth-provider.utils.mjs +0 -25
  69. package/esm2022/lib/auth/basic-auth-provider.mjs +0 -15
  70. package/esm2022/lib/auth/bearer-auth-provider.mjs +0 -168
  71. package/esm2022/lib/auth/custom-header-auth-provider.mjs +0 -12
  72. package/esm2022/lib/auth/index.mjs +0 -6
  73. package/esm2022/lib/class-validator/class-validator.types.mjs +0 -2
  74. package/esm2022/lib/class-validator/class-validator.utils.mjs +0 -4
  75. package/esm2022/lib/class-validator/index.mjs +0 -3
  76. package/esm2022/lib/devtools/components/query-devtools/index.mjs +0 -2
  77. package/esm2022/lib/devtools/components/query-devtools/query-devtools.component.mjs +0 -297
  78. package/esm2022/lib/devtools/pipes/index.mjs +0 -2
  79. package/esm2022/lib/devtools/pipes/query-short-name.pipe.mjs +0 -24
  80. package/esm2022/lib/devtools/utils/index.mjs +0 -2
  81. package/esm2022/lib/devtools/utils/query-client.utils.mjs +0 -13
  82. package/esm2022/lib/directives/index.mjs +0 -4
  83. package/esm2022/lib/directives/infinity-query-trigger.directive.mjs +0 -56
  84. package/esm2022/lib/directives/infinity-query.directive.mjs +0 -147
  85. package/esm2022/lib/directives/query.directive.mjs +0 -123
  86. package/esm2022/lib/entity/entity-store.mjs +0 -127
  87. package/esm2022/lib/entity/entity.types.mjs +0 -2
  88. package/esm2022/lib/entity/entity.utils.mjs +0 -29
  89. package/esm2022/lib/entity/index.mjs +0 -4
  90. package/esm2022/lib/gql/gql.mjs +0 -23
  91. package/esm2022/lib/gql/index.mjs +0 -2
  92. package/esm2022/lib/infinite-query/index.mjs +0 -4
  93. package/esm2022/lib/infinite-query/infinity-query.mjs +0 -171
  94. package/esm2022/lib/infinite-query/infinity-query.types.mjs +0 -2
  95. package/esm2022/lib/infinite-query/infinity-query.utils.mjs +0 -3
  96. package/esm2022/lib/logger/index.mjs +0 -2
  97. package/esm2022/lib/logger/logger.mjs +0 -16
  98. package/esm2022/lib/query/index.mjs +0 -4
  99. package/esm2022/lib/query/query.mjs +0 -428
  100. package/esm2022/lib/query/query.types.mjs +0 -2
  101. package/esm2022/lib/query/query.utils.mjs +0 -253
  102. package/esm2022/lib/query-client/index.mjs +0 -4
  103. package/esm2022/lib/query-client/query-client.mjs +0 -80
  104. package/esm2022/lib/query-client/query-client.types.mjs +0 -2
  105. package/esm2022/lib/query-client/query-client.utils.mjs +0 -20
  106. package/esm2022/lib/query-creator/index.mjs +0 -3
  107. package/esm2022/lib/query-creator/query-creator.mjs +0 -55
  108. package/esm2022/lib/query-creator/query-creator.types.mjs +0 -2
  109. package/esm2022/lib/query-form/index.mjs +0 -4
  110. package/esm2022/lib/query-form/query-form.mjs +0 -368
  111. package/esm2022/lib/query-form/query-form.types.mjs +0 -2
  112. package/esm2022/lib/query-form/query-form.utils.mjs +0 -97
  113. package/esm2022/lib/query-store/index.mjs +0 -2
  114. package/esm2022/lib/query-store/query-store.mjs +0 -144
  115. package/esm2022/lib/request/index.mjs +0 -4
  116. package/esm2022/lib/request/request.mjs +0 -196
  117. package/esm2022/lib/request/request.types.mjs +0 -2
  118. package/esm2022/lib/request/request.util.mjs +0 -252
  119. package/esm2022/lib/symfony/index.mjs +0 -3
  120. package/esm2022/lib/symfony/symfony.types.mjs +0 -2
  121. package/esm2022/lib/symfony/symfony.utils.mjs +0 -31
  122. package/esm2022/lib/utils/data.utils.mjs +0 -138
  123. package/esm2022/lib/utils/deep-freeze.util.mjs +0 -17
  124. package/esm2022/lib/utils/def.util.mjs +0 -8
  125. package/esm2022/lib/utils/index.mjs +0 -4
  126. package/fesm2022/ethlete-query.mjs +0 -3276
  127. package/fesm2022/ethlete-query.mjs.map +0 -1
  128. package/lib/auth/auth-provider.types.d.ts +0 -133
  129. package/lib/auth/auth-provider.utils.d.ts +0 -9
  130. package/lib/auth/basic-auth-provider.d.ts +0 -10
  131. package/lib/auth/bearer-auth-provider.d.ts +0 -23
  132. package/lib/auth/custom-header-auth-provider.d.ts +0 -9
  133. package/lib/class-validator/class-validator.utils.d.ts +0 -2
  134. package/lib/devtools/components/query-devtools/query-devtools.component.d.ts +0 -151
  135. package/lib/devtools/pipes/query-short-name.pipe.d.ts +0 -8
  136. package/lib/devtools/utils/query-client.utils.d.ts +0 -12
  137. package/lib/directives/infinity-query-trigger.directive.d.ts +0 -15
  138. package/lib/directives/infinity-query.directive.d.ts +0 -49
  139. package/lib/directives/query.directive.d.ts +0 -63
  140. package/lib/entity/entity-store.d.ts +0 -25
  141. package/lib/entity/entity.types.d.ts +0 -25
  142. package/lib/entity/entity.utils.d.ts +0 -12
  143. package/lib/gql/gql.d.ts +0 -6
  144. package/lib/infinite-query/infinity-query.d.ts +0 -29
  145. package/lib/infinite-query/infinity-query.types.d.ts +0 -104
  146. package/lib/infinite-query/infinity-query.utils.d.ts +0 -4
  147. package/lib/logger/logger.d.ts +0 -12
  148. package/lib/query/query.d.ts +0 -60
  149. package/lib/query/query.types.d.ts +0 -388
  150. package/lib/query/query.utils.d.ts +0 -91
  151. package/lib/query-client/query-client.d.ts +0 -29
  152. package/lib/query-client/query-client.types.d.ts +0 -82
  153. package/lib/query-client/query-client.utils.d.ts +0 -4
  154. package/lib/query-creator/query-creator.d.ts +0 -20
  155. package/lib/query-creator/query-creator.types.d.ts +0 -13
  156. package/lib/query-form/query-form.d.ts +0 -89
  157. package/lib/query-form/query-form.types.d.ts +0 -138
  158. package/lib/query-form/query-form.utils.d.ts +0 -13
  159. package/lib/query-store/query-store.d.ts +0 -31
  160. package/lib/request/request.d.ts +0 -3
  161. package/lib/request/request.types.d.ts +0 -126
  162. package/lib/request/request.util.d.ts +0 -92
  163. package/lib/symfony/symfony.types.d.ts +0 -19
  164. package/lib/symfony/symfony.utils.d.ts +0 -6
  165. package/lib/utils/data.utils.d.ts +0 -59
  166. package/lib/utils/deep-freeze.util.d.ts +0 -1
  167. /package/{lib/auth/index.d.ts → src/lib/auth/index.ts} +0 -0
  168. /package/{lib/class-validator/index.d.ts → src/lib/class-validator/index.ts} +0 -0
  169. /package/{lib/devtools/components/query-devtools/index.d.ts → src/lib/devtools/components/query-devtools/index.ts} +0 -0
  170. /package/{lib/devtools/pipes/index.d.ts → src/lib/devtools/pipes/index.ts} +0 -0
  171. /package/{lib/devtools/utils/index.d.ts → src/lib/devtools/utils/index.ts} +0 -0
  172. /package/{lib/directives/index.d.ts → src/lib/directives/index.ts} +0 -0
  173. /package/{lib/entity/index.d.ts → src/lib/entity/index.ts} +0 -0
  174. /package/{lib/gql/index.d.ts → src/lib/gql/index.ts} +0 -0
  175. /package/{lib/infinite-query/index.d.ts → src/lib/infinite-query/index.ts} +0 -0
  176. /package/{lib/logger/index.d.ts → src/lib/logger/index.ts} +0 -0
  177. /package/{lib/query/index.d.ts → src/lib/query/index.ts} +0 -0
  178. /package/{lib/query-client/index.d.ts → src/lib/query-client/index.ts} +0 -0
  179. /package/{lib/query-creator/index.d.ts → src/lib/query-creator/index.ts} +0 -0
  180. /package/{lib/query-form/index.d.ts → src/lib/query-form/index.ts} +0 -0
  181. /package/{lib/query-store/index.d.ts → src/lib/query-store/index.ts} +0 -0
  182. /package/{lib/request/index.d.ts → src/lib/request/index.ts} +0 -0
  183. /package/{lib/symfony/index.d.ts → src/lib/symfony/index.ts} +0 -0
  184. /package/{lib/utils/index.d.ts → src/lib/utils/index.ts} +0 -0
@@ -0,0 +1,360 @@
1
+ $primary: rgb(0 255 161);
2
+ $secondary: rgb(37 41 46);
3
+
4
+ :host {
5
+ position: fixed;
6
+ top: 0;
7
+ z-index: 1000000;
8
+ font-size: 14px;
9
+ color: #fff;
10
+ }
11
+
12
+ .et-query-devtools-container {
13
+ position: fixed;
14
+ inset: 0;
15
+ background-color: $secondary;
16
+ z-index: 10000;
17
+ overflow: auto;
18
+ font-family: monospace;
19
+ display: grid;
20
+ grid-template-rows: auto auto auto minmax(0, 1fr);
21
+
22
+ &.et-query-devtools-container--transparent {
23
+ opacity: 0.25;
24
+ pointer-events: none;
25
+
26
+ .et-query-devtools-translucent-btn {
27
+ pointer-events: all;
28
+ }
29
+ }
30
+
31
+ &.et-query-devtools-container--snap-left {
32
+ inset-inline-start: 0;
33
+ inset-block-start: 0;
34
+ inset-block-end: 0;
35
+ width: 50%;
36
+ border-right: 1px solid $secondary;
37
+ }
38
+
39
+ &.et-query-devtools-container--snap-right {
40
+ inset-inline-start: unset;
41
+ inset-inline-end: 0;
42
+ inset-block-start: 0;
43
+ inset-block-end: 0;
44
+ width: 50%;
45
+ border-left: 1px solid $secondary;
46
+ }
47
+
48
+ &.et-query-devtools-container--snap-top {
49
+ inset-inline-start: 0;
50
+ inset-block-start: 0;
51
+ inset-inline-end: 0;
52
+ height: 50%;
53
+ border-bottom: 1px solid $secondary;
54
+ }
55
+
56
+ &.et-query-devtools-container--snap-bottom {
57
+ inset-inline-start: 0;
58
+ inset-block-start: unset;
59
+ inset-block-end: 0;
60
+ inset-inline-end: 0;
61
+ height: 50%;
62
+ border-top: 1px solid $secondary;
63
+ }
64
+ }
65
+
66
+ button.et-query-devtools-open-btn {
67
+ position: fixed;
68
+ inset-inline-end: 20px;
69
+ inset-block-end: 0;
70
+ z-index: 9999;
71
+ font-family: monospace;
72
+ border-bottom-left-radius: 0;
73
+ border-bottom-right-radius: 0;
74
+ border-top-left-radius: 3px;
75
+ border-top-right-radius: 3px;
76
+ line-height: 14px;
77
+ font-size: 12px;
78
+ }
79
+
80
+ .et-qd-header {
81
+ background-color: $primary;
82
+ padding: 12px;
83
+ display: grid;
84
+ grid-template-columns: 1fr auto auto;
85
+ gap: 12px;
86
+ align-items: center;
87
+
88
+ &__title {
89
+ color: $secondary;
90
+ margin: 0;
91
+ font-size: 22px;
92
+ }
93
+
94
+ &__select {
95
+ display: grid;
96
+ background-color: $secondary;
97
+ border-radius: 10px;
98
+ overflow: hidden;
99
+
100
+ select {
101
+ width: 250px;
102
+ color: white;
103
+ padding: 3px 10px 2px 10px;
104
+ border: none;
105
+ background-color: $secondary;
106
+ font-family: monospace;
107
+ }
108
+
109
+ label {
110
+ padding: 3px 10px 3px 10px;
111
+ color: $secondary;
112
+ font-size: 12px;
113
+ font-weight: 700;
114
+ color: white;
115
+ border-bottom: 1px solid gray;
116
+ }
117
+ }
118
+ }
119
+
120
+ .et-qd-sub-header {
121
+ background-color: darken($primary, 15%);
122
+ padding: 12px;
123
+ display: flex;
124
+ gap: 12px;
125
+ flex-wrap: wrap;
126
+
127
+ &__divider {
128
+ width: 1px;
129
+ background-color: $secondary;
130
+ }
131
+ }
132
+
133
+ .et-qd-btn {
134
+ background-color: $primary;
135
+ color: $secondary;
136
+ border: none;
137
+ padding: 12px;
138
+ cursor: pointer;
139
+ font-size: 14px;
140
+ font-weight: bold;
141
+ text-align: center;
142
+ text-decoration: none;
143
+ display: inline-block;
144
+ width: 100%;
145
+ transition: all 0.3s ease-in-out;
146
+ font-family: monospace;
147
+ border-radius: 10px;
148
+
149
+ &:hover {
150
+ background-color: darken($primary, 10%);
151
+ }
152
+
153
+ &.et-qd-btn-secondary {
154
+ background-color: $secondary;
155
+ color: $primary;
156
+
157
+ &:hover {
158
+ background-color: lighten($secondary, 10%);
159
+ }
160
+ }
161
+ }
162
+
163
+ .et-qd-chip {
164
+ background-color: $primary;
165
+ color: $secondary;
166
+ border: none;
167
+ padding: 4px 9px;
168
+ cursor: pointer;
169
+ font-size: 12px;
170
+ font-weight: bold;
171
+ text-align: center;
172
+ text-decoration: none;
173
+ display: inline-block;
174
+ transition: all 0.3s ease-in-out;
175
+ font-family: monospace;
176
+ border-radius: 10px;
177
+
178
+ &:hover {
179
+ background-color: darken($primary, 10%);
180
+ }
181
+
182
+ &.et-qd-chip-secondary {
183
+ background-color: $secondary;
184
+ color: $primary;
185
+
186
+ &:hover {
187
+ background-color: lighten($secondary, 10%);
188
+ }
189
+ }
190
+
191
+ &.et-qd-chip-bordered {
192
+ border: 1px solid $primary;
193
+ }
194
+ }
195
+
196
+ .et-qd-translucent-clickable {
197
+ pointer-events: all;
198
+ }
199
+
200
+ .et-qd-client {
201
+ border-bottom: 1px solid lighten($secondary, 10%);
202
+ padding: 12px;
203
+
204
+ &__title {
205
+ margin: 0;
206
+ font-size: 14px;
207
+ color: white;
208
+ font-weight: 700;
209
+ }
210
+
211
+ &__actions {
212
+ display: flex;
213
+ gap: 12px;
214
+ margin-top: 12px;
215
+ }
216
+ }
217
+
218
+ .et-qd-queries {
219
+ padding: 12px;
220
+ display: grid;
221
+ grid-template-rows: auto auto minmax(0, 1fr);
222
+
223
+ &__actions {
224
+ display: flex;
225
+ gap: 12px;
226
+ margin-top: 12px;
227
+ margin-bottom: 16px;
228
+ }
229
+
230
+ &__title {
231
+ margin: 0;
232
+ font-size: 14px;
233
+ color: white;
234
+ font-weight: 700;
235
+ }
236
+
237
+ &__divider {
238
+ width: 1px;
239
+ background-color: lighten($secondary, 10%);
240
+ }
241
+
242
+ &__browser {
243
+ display: grid;
244
+ grid-template-columns: 1fr minmax(0, 3fr);
245
+ margin-left: -12px;
246
+ margin-right: -12px;
247
+ border-top: 1px solid lighten($secondary, 10%);
248
+ margin-bottom: -12px;
249
+ }
250
+
251
+ &__browser-list {
252
+ border-right: 1px solid lighten($secondary, 10%);
253
+ list-style: none;
254
+ padding: 0;
255
+ margin: 0;
256
+ display: grid;
257
+ grid-auto-flow: row;
258
+ grid-auto-rows: 55px;
259
+ overflow-y: auto;
260
+ overflow-x: hidden;
261
+
262
+ li {
263
+ margin: 0;
264
+
265
+ button {
266
+ all: unset;
267
+ font-family: monospace;
268
+ box-sizing: border-box;
269
+ width: 100%;
270
+ border: none;
271
+ border-bottom: 1px solid lighten($secondary, 10%);
272
+ background-color: $secondary;
273
+ color: white;
274
+ text-align: left;
275
+ padding: 12px;
276
+ height: 100%;
277
+ transition: all 0.3s ease-in-out;
278
+ cursor: pointer;
279
+ display: grid;
280
+ grid-template-columns: auto minmax(0, 1fr);
281
+ gap: 2px;
282
+ display: block;
283
+
284
+ span {
285
+ white-space: nowrap;
286
+ overflow: hidden;
287
+ text-overflow: ellipsis;
288
+
289
+ &:first-of-type {
290
+ font-weight: 700;
291
+ }
292
+ }
293
+
294
+ &:hover {
295
+ background-color: lighten($secondary, 5%);
296
+ }
297
+
298
+ &.et-qd-query--active {
299
+ background-color: lighten($secondary, 5%);
300
+ }
301
+ }
302
+ }
303
+ }
304
+
305
+ &__browser-detail {
306
+ padding: 12px;
307
+ overflow-y: auto;
308
+ overflow-x: hidden;
309
+
310
+ &__title {
311
+ margin: 0;
312
+ font-size: 14px;
313
+ color: white;
314
+ font-weight: 700;
315
+ }
316
+ }
317
+ }
318
+
319
+ .et-qd-auth-provider__viewer {
320
+ border-top: 1px solid lighten($secondary, 10%);
321
+ margin-left: -12px;
322
+ margin-right: -12px;
323
+ margin-bottom: -12px;
324
+
325
+ padding: 12px;
326
+ overflow-y: auto;
327
+ overflow-x: hidden;
328
+ }
329
+
330
+ .et-qd-list {
331
+ display: grid;
332
+ gap: 12px;
333
+ }
334
+
335
+ .et-qd-list-item {
336
+ display: grid;
337
+
338
+ p {
339
+ font-weight: 700;
340
+ margin: 0;
341
+ padding-bottom: 8px;
342
+
343
+ + p {
344
+ margin-top: -8px;
345
+ }
346
+ }
347
+
348
+ div + pre {
349
+ margin-top: 8px;
350
+ }
351
+
352
+ pre {
353
+ margin: 0;
354
+ padding: 4px;
355
+ background-color: darken($secondary, 10%);
356
+ border-radius: 4px;
357
+ max-height: 450px;
358
+ overflow: auto;
359
+ }
360
+ }