@softr/sdk 0.0.25 → 0.0.26

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 (40) hide show
  1. package/dist/action.d.ts +195 -0
  2. package/dist/action.js +21 -0
  3. package/dist/auth/isomorphic.d.ts +1 -2
  4. package/dist/auth/permissions.d.ts +7 -2
  5. package/dist/cli.d.ts +1 -0
  6. package/dist/cli.js +639 -0
  7. package/dist/codegen/datasource-types.js +471 -0
  8. package/dist/codegen/softr-env.js +103 -0
  9. package/dist/codegen/user-groups.js +11 -0
  10. package/dist/core/integration.js +1 -1
  11. package/dist/datasource/chart.d.ts +196 -0
  12. package/dist/datasource/chart.js +289 -0
  13. package/dist/datasource/datasource.d.ts +16 -0
  14. package/dist/datasource/datasource.js +17 -0
  15. package/dist/datasource/fields.d.ts +122 -0
  16. package/dist/datasource/fields.js +82 -0
  17. package/dist/datasource/filter.d.ts +30 -0
  18. package/dist/datasource/filter.js +146 -0
  19. package/dist/datasource/record.d.ts +138 -0
  20. package/dist/datasource/record.js +258 -0
  21. package/dist/index.d.ts +3 -5
  22. package/dist/index.js +2 -2
  23. package/dist/package.js +5 -0
  24. package/dist/routes/visibility.d.ts +1 -1
  25. package/dist/server.d.ts +1 -1
  26. package/dist/server.js +1 -1
  27. package/package.json +2 -1
  28. package/skills/softr-sdk/SKILL.md +6 -2
  29. package/skills/softr-sdk/auth/SKILL.md +1 -1
  30. package/skills/softr-sdk/current-user/SKILL.md +1 -1
  31. package/skills/softr-sdk/data-mutations/SKILL.md +1 -1
  32. package/skills/softr-sdk/integrations/SKILL.md +140 -0
  33. package/skills/softr-sdk/reading-records/SKILL.md +1 -1
  34. package/skills/softr-sdk/routes-and-visibility/SKILL.md +1 -1
  35. package/dist/core/datasource.d.ts +0 -31
  36. package/dist/core/datasource.js +0 -226
  37. package/dist/core/query.d.ts +0 -354
  38. package/dist/core/query.js +0 -528
  39. package/dist/core/utils.js +0 -14
  40. package/dist/types.d.ts +0 -128
@@ -1,354 +0,0 @@
1
- //#region src/core/query.d.ts
2
-
3
- type LogicalOperator = "AND" | "OR";
4
- type FilterOperator = "IS" | "IS_NOT" | "EQUAL" | "NOT_EQUAL" | "IS_EMPTY" | "IS_NOT_EMPTY" | "IS_ONE_OF" | "IS_NONE_OF" | "HAS_ALL_OF" | "HAS_ONE_OF" | "HAS_NONE_OF" | "CONTAINS" | "INLINE_CONTAINS" | "GT" | "LT" | "GTE" | "LTE" | "BETWEEN" | "IS_NOT_BETWEEN" | "DOES_NOT_CONTAINS" | "STARTS_WITH" | "ENDS_WITH";
5
- type ConditionFieldType = "TEXT" | "BOOLEAN" | "NUMERIC" | "ARRAY" | "DATE";
6
- interface Filter {
7
- subject: string;
8
- operator: FilterOperator;
9
- value?: unknown;
10
- type: ConditionFieldType;
11
- }
12
- type ConstructableFilter = Filter & {
13
- [INTERNAL_KIND]: "FILTER";
14
- };
15
- type ConstructableFilterGroup = {
16
- logicalOperator: LogicalOperator;
17
- filters: Array<ConstructableFilter | ConstructableFilterGroup>;
18
- [INTERNAL_KIND]: "LOGICAL_GROUP";
19
- };
20
- interface SortingOptionItem {
21
- sortingField: string;
22
- sortType: "ASC" | "DESC";
23
- }
24
- type ConstructableOrderBy = SortingOptionItem & {
25
- [INTERNAL_KIND]: "ORDER_BY";
26
- };
27
- type AnyConstructable = ConstructableFilter | ConstructableFilterGroup;
28
- declare const INTERNAL_KIND: unique symbol;
29
- /**
30
- * Query builder for filter queries. This exist to alleviate the (LLM?) mental overhead. API filter schema is a bit
31
- * verbose and confusing, even when dealing with very basic queries. So to fall into the pit of success, aim here
32
- * is to simplify filtering as much as possible.
33
- *
34
- * @example
35
- * single filter
36
- * ```tsx
37
- * const query = q.text("title").contains("hello");
38
- *
39
- * const json = buildFilterCriteria(query);
40
- * // result
41
- * {
42
- * "filterCriteria": {
43
- * "filterConditionGroup": {
44
- * "logicalOperator": "AND"
45
- * "filterGroups": [{
46
- * "logicalOperator": "AND",
47
- * "filters": [{
48
- * "subject": "title",
49
- * "type": "TEXT",
50
- * "operator": "CONTAINS",
51
- * "value": "hello"
52
- * }],
53
- * }]
54
- * }
55
- * }
56
- * }
57
- *
58
- * ```
59
- *
60
- * @example
61
- * combining multiple filters
62
- * ```tsx
63
- * const query = q.and(
64
- * q.text("title").contains("hello"),
65
- * q.number("views").is(100),
66
- * q.or(
67
- * q.text("author").is("John"),
68
- * q.boolean("isPublished").is(true)
69
- * )
70
- * );
71
- * ```
72
- */
73
- declare const q: {
74
- select<T extends Record<string, string>>(mapping: T): T;
75
- and(...filters: AnyConstructable[]): ConstructableFilterGroup;
76
- or(...filters: AnyConstructable[]): ConstructableFilterGroup;
77
- text(subject: string): {
78
- is(value: string): {
79
- operator: "IS";
80
- value: string;
81
- subject: string;
82
- type: "TEXT";
83
- [INTERNAL_KIND]: "FILTER";
84
- };
85
- isNot(value: string): {
86
- operator: "IS_NOT";
87
- value: string;
88
- subject: string;
89
- type: "TEXT";
90
- [INTERNAL_KIND]: "FILTER";
91
- };
92
- contains(value: string): {
93
- operator: "CONTAINS";
94
- value: string;
95
- subject: string;
96
- type: "TEXT";
97
- [INTERNAL_KIND]: "FILTER";
98
- };
99
- isOneOf(value: string[]): {
100
- operator: "IS_ONE_OF";
101
- value: string[];
102
- subject: string;
103
- type: "TEXT";
104
- [INTERNAL_KIND]: "FILTER";
105
- };
106
- isNoneOf(value: string[]): {
107
- operator: "IS_NONE_OF";
108
- value: string[];
109
- subject: string;
110
- type: "TEXT";
111
- [INTERNAL_KIND]: "FILTER";
112
- };
113
- startsWith(value: string): {
114
- operator: "STARTS_WITH";
115
- value: string;
116
- subject: string;
117
- type: "TEXT";
118
- [INTERNAL_KIND]: "FILTER";
119
- };
120
- endsWith(value: string): {
121
- operator: "ENDS_WITH";
122
- value: string;
123
- subject: string;
124
- type: "TEXT";
125
- [INTERNAL_KIND]: "FILTER";
126
- };
127
- hasAllOf(value: string[]): {
128
- operator: "HAS_ALL_OF";
129
- value: string[];
130
- subject: string;
131
- type: "TEXT";
132
- [INTERNAL_KIND]: "FILTER";
133
- };
134
- isEmpty(): {
135
- operator: "IS_EMPTY";
136
- subject: string;
137
- type: "TEXT";
138
- [INTERNAL_KIND]: "FILTER";
139
- };
140
- isNotEmpty(): {
141
- operator: "IS_NOT_EMPTY";
142
- subject: string;
143
- type: "TEXT";
144
- [INTERNAL_KIND]: "FILTER";
145
- };
146
- };
147
- boolean(subject: string): {
148
- is(value: boolean): {
149
- operator: "IS";
150
- value: boolean;
151
- subject: string;
152
- type: "BOOLEAN";
153
- [INTERNAL_KIND]: "FILTER";
154
- };
155
- isNot(value: boolean): {
156
- operator: "IS_NOT";
157
- value: boolean;
158
- subject: string;
159
- type: "BOOLEAN";
160
- [INTERNAL_KIND]: "FILTER";
161
- };
162
- isEmpty(): {
163
- operator: "IS_EMPTY";
164
- subject: string;
165
- type: "BOOLEAN";
166
- [INTERNAL_KIND]: "FILTER";
167
- };
168
- isNotEmpty(): {
169
- operator: "IS_NOT_EMPTY";
170
- subject: string;
171
- type: "BOOLEAN";
172
- [INTERNAL_KIND]: "FILTER";
173
- };
174
- };
175
- number(subject: string): {
176
- is(value: number): {
177
- operator: "IS";
178
- value: string;
179
- subject: string;
180
- type: "NUMERIC";
181
- [INTERNAL_KIND]: "FILTER";
182
- };
183
- isNot(value: number): {
184
- operator: "IS_NOT";
185
- value: string;
186
- subject: string;
187
- type: "NUMERIC";
188
- [INTERNAL_KIND]: "FILTER";
189
- };
190
- gt(value: number): {
191
- operator: "GT";
192
- value: string;
193
- subject: string;
194
- type: "NUMERIC";
195
- [INTERNAL_KIND]: "FILTER";
196
- };
197
- gte(value: number): {
198
- operator: "GTE";
199
- value: string;
200
- subject: string;
201
- type: "NUMERIC";
202
- [INTERNAL_KIND]: "FILTER";
203
- };
204
- lt(value: number): {
205
- operator: "LT";
206
- value: string;
207
- subject: string;
208
- type: "NUMERIC";
209
- [INTERNAL_KIND]: "FILTER";
210
- };
211
- lte(value: number): {
212
- operator: "LTE";
213
- value: string;
214
- subject: string;
215
- type: "NUMERIC";
216
- [INTERNAL_KIND]: "FILTER";
217
- };
218
- between(start: number, end: number): {
219
- operator: "BETWEEN";
220
- value: string[];
221
- subject: string;
222
- type: "NUMERIC";
223
- [INTERNAL_KIND]: "FILTER";
224
- };
225
- isEmpty(): {
226
- operator: "IS_EMPTY";
227
- subject: string;
228
- type: "NUMERIC";
229
- [INTERNAL_KIND]: "FILTER";
230
- };
231
- isNotEmpty(): {
232
- operator: "IS_NOT_EMPTY";
233
- subject: string;
234
- type: "NUMERIC";
235
- [INTERNAL_KIND]: "FILTER";
236
- };
237
- };
238
- array(subject: string): {
239
- is(value: string[]): {
240
- operator: "IS";
241
- value: string[];
242
- subject: string;
243
- type: "ARRAY";
244
- [INTERNAL_KIND]: "FILTER";
245
- };
246
- isOneOf(value: string[]): {
247
- operator: "IS_ONE_OF";
248
- value: string[];
249
- subject: string;
250
- type: "ARRAY";
251
- [INTERNAL_KIND]: "FILTER";
252
- };
253
- isNoneOf(value: string[]): {
254
- operator: "IS_NONE_OF";
255
- value: string[];
256
- subject: string;
257
- type: "ARRAY";
258
- [INTERNAL_KIND]: "FILTER";
259
- };
260
- hasAllOf(value: string[]): {
261
- operator: "HAS_ALL_OF";
262
- value: string[];
263
- subject: string;
264
- type: "ARRAY";
265
- [INTERNAL_KIND]: "FILTER";
266
- };
267
- isEmpty(): {
268
- operator: "IS_EMPTY";
269
- subject: string;
270
- type: "ARRAY";
271
- [INTERNAL_KIND]: "FILTER";
272
- };
273
- isNotEmpty(): {
274
- operator: "IS_NOT_EMPTY";
275
- subject: string;
276
- type: "ARRAY";
277
- [INTERNAL_KIND]: "FILTER";
278
- };
279
- };
280
- date(subject: string): {
281
- is(value: string): {
282
- operator: "IS";
283
- value: string;
284
- subject: string;
285
- type: "DATE";
286
- [INTERNAL_KIND]: "FILTER";
287
- };
288
- isNot(value: string): {
289
- operator: "IS_NOT";
290
- value: string;
291
- subject: string;
292
- type: "DATE";
293
- [INTERNAL_KIND]: "FILTER";
294
- };
295
- gt(value: string): {
296
- operator: "GT";
297
- value: string;
298
- subject: string;
299
- type: "DATE";
300
- [INTERNAL_KIND]: "FILTER";
301
- };
302
- gte(value: string): {
303
- operator: "GTE";
304
- value: string;
305
- subject: string;
306
- type: "DATE";
307
- [INTERNAL_KIND]: "FILTER";
308
- };
309
- lt(value: string): {
310
- operator: "LT";
311
- value: string;
312
- subject: string;
313
- type: "DATE";
314
- [INTERNAL_KIND]: "FILTER";
315
- };
316
- lte(value: string): {
317
- operator: "LTE";
318
- value: string;
319
- subject: string;
320
- type: "DATE";
321
- [INTERNAL_KIND]: "FILTER";
322
- };
323
- between(start: string, end: string): {
324
- operator: "BETWEEN";
325
- value: string[];
326
- subject: string;
327
- type: "DATE";
328
- [INTERNAL_KIND]: "FILTER";
329
- };
330
- isNotBetween(start: string, end: string): {
331
- operator: "IS_NOT_BETWEEN";
332
- value: string[];
333
- subject: string;
334
- type: "DATE";
335
- [INTERNAL_KIND]: "FILTER";
336
- };
337
- isEmpty(): {
338
- operator: "IS_EMPTY";
339
- subject: string;
340
- type: "DATE";
341
- [INTERNAL_KIND]: "FILTER";
342
- };
343
- isNotEmpty(): {
344
- operator: "IS_NOT_EMPTY";
345
- subject: string;
346
- type: "DATE";
347
- [INTERNAL_KIND]: "FILTER";
348
- };
349
- };
350
- asc(subject: string): ConstructableOrderBy;
351
- desc(subject: string): ConstructableOrderBy;
352
- };
353
- //#endregion
354
- export { AnyConstructable, ConstructableOrderBy, q };