prostgles-server 4.2.159 → 4.2.161

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 (107) hide show
  1. package/dist/Auth/setEmailProvider.js +2 -2
  2. package/dist/Auth/setEmailProvider.js.map +1 -1
  3. package/lib/Auth/AuthHandler.ts +436 -0
  4. package/lib/Auth/AuthTypes.ts +280 -0
  5. package/lib/Auth/getSafeReturnURL.ts +35 -0
  6. package/lib/Auth/sendEmail.ts +83 -0
  7. package/lib/Auth/setAuthProviders.ts +128 -0
  8. package/lib/Auth/setEmailProvider.ts +85 -0
  9. package/lib/Auth/setupAuthRoutes.ts +161 -0
  10. package/lib/DBEventsManager.ts +178 -0
  11. package/lib/DBSchemaBuilder.ts +225 -0
  12. package/lib/DboBuilder/DboBuilder.ts +319 -0
  13. package/lib/DboBuilder/DboBuilderTypes.ts +361 -0
  14. package/lib/DboBuilder/QueryBuilder/Functions.ts +1153 -0
  15. package/lib/DboBuilder/QueryBuilder/QueryBuilder.ts +288 -0
  16. package/lib/DboBuilder/QueryBuilder/getJoinQuery.ts +263 -0
  17. package/lib/DboBuilder/QueryBuilder/getNewQuery.ts +271 -0
  18. package/lib/DboBuilder/QueryBuilder/getSelectQuery.ts +136 -0
  19. package/lib/DboBuilder/QueryBuilder/prepareHaving.ts +22 -0
  20. package/lib/DboBuilder/QueryStreamer.ts +250 -0
  21. package/lib/DboBuilder/TableHandler/DataValidator.ts +428 -0
  22. package/lib/DboBuilder/TableHandler/TableHandler.ts +205 -0
  23. package/lib/DboBuilder/TableHandler/delete.ts +115 -0
  24. package/lib/DboBuilder/TableHandler/insert.ts +183 -0
  25. package/lib/DboBuilder/TableHandler/insertTest.ts +78 -0
  26. package/lib/DboBuilder/TableHandler/onDeleteFromFileTable.ts +62 -0
  27. package/lib/DboBuilder/TableHandler/runInsertUpdateQuery.ts +134 -0
  28. package/lib/DboBuilder/TableHandler/update.ts +126 -0
  29. package/lib/DboBuilder/TableHandler/updateBatch.ts +49 -0
  30. package/lib/DboBuilder/TableHandler/updateFile.ts +48 -0
  31. package/lib/DboBuilder/TableHandler/upsert.ts +34 -0
  32. package/lib/DboBuilder/ViewHandler/ViewHandler.ts +393 -0
  33. package/lib/DboBuilder/ViewHandler/count.ts +38 -0
  34. package/lib/DboBuilder/ViewHandler/find.ts +153 -0
  35. package/lib/DboBuilder/ViewHandler/getExistsCondition.ts +73 -0
  36. package/lib/DboBuilder/ViewHandler/getExistsFilters.ts +74 -0
  37. package/lib/DboBuilder/ViewHandler/getInfo.ts +32 -0
  38. package/lib/DboBuilder/ViewHandler/getTableJoinQuery.ts +84 -0
  39. package/lib/DboBuilder/ViewHandler/parseComplexFilter.ts +96 -0
  40. package/lib/DboBuilder/ViewHandler/parseFieldFilter.ts +105 -0
  41. package/lib/DboBuilder/ViewHandler/parseJoinPath.ts +208 -0
  42. package/lib/DboBuilder/ViewHandler/prepareSortItems.ts +163 -0
  43. package/lib/DboBuilder/ViewHandler/prepareWhere.ts +90 -0
  44. package/lib/DboBuilder/ViewHandler/size.ts +37 -0
  45. package/lib/DboBuilder/ViewHandler/subscribe.ts +118 -0
  46. package/lib/DboBuilder/ViewHandler/validateViewRules.ts +70 -0
  47. package/lib/DboBuilder/dboBuilderUtils.ts +222 -0
  48. package/lib/DboBuilder/getColumns.ts +114 -0
  49. package/lib/DboBuilder/getCondition.ts +201 -0
  50. package/lib/DboBuilder/getSubscribeRelatedTables.ts +190 -0
  51. package/lib/DboBuilder/getTablesForSchemaPostgresSQL.ts +426 -0
  52. package/lib/DboBuilder/insertNestedRecords.ts +355 -0
  53. package/lib/DboBuilder/parseUpdateRules.ts +187 -0
  54. package/lib/DboBuilder/prepareShortestJoinPaths.ts +186 -0
  55. package/lib/DboBuilder/runSQL.ts +182 -0
  56. package/lib/DboBuilder/runTransaction.ts +50 -0
  57. package/lib/DboBuilder/sqlErrCodeToMsg.ts +254 -0
  58. package/lib/DboBuilder/uploadFile.ts +69 -0
  59. package/lib/Event_Trigger_Tags.ts +118 -0
  60. package/lib/FileManager/FileManager.ts +358 -0
  61. package/lib/FileManager/getValidatedFileType.ts +69 -0
  62. package/lib/FileManager/initFileManager.ts +187 -0
  63. package/lib/FileManager/upload.ts +62 -0
  64. package/lib/FileManager/uploadStream.ts +79 -0
  65. package/lib/Filtering.ts +463 -0
  66. package/lib/JSONBValidation/validate_jsonb_schema_sql.ts +502 -0
  67. package/lib/JSONBValidation/validation.ts +143 -0
  68. package/lib/Logging.ts +127 -0
  69. package/lib/PostgresNotifListenManager.ts +143 -0
  70. package/lib/Prostgles.ts +485 -0
  71. package/lib/ProstglesTypes.ts +196 -0
  72. package/lib/PubSubManager/PubSubManager.ts +609 -0
  73. package/lib/PubSubManager/addSub.ts +138 -0
  74. package/lib/PubSubManager/addSync.ts +141 -0
  75. package/lib/PubSubManager/getCreatePubSubManagerError.ts +72 -0
  76. package/lib/PubSubManager/getPubSubManagerInitQuery.ts +662 -0
  77. package/lib/PubSubManager/initPubSubManager.ts +79 -0
  78. package/lib/PubSubManager/notifListener.ts +173 -0
  79. package/lib/PubSubManager/orphanTriggerCheck.ts +70 -0
  80. package/lib/PubSubManager/pushSubData.ts +55 -0
  81. package/lib/PublishParser/PublishParser.ts +162 -0
  82. package/lib/PublishParser/getFileTableRules.ts +124 -0
  83. package/lib/PublishParser/getSchemaFromPublish.ts +141 -0
  84. package/lib/PublishParser/getTableRulesWithoutFileTable.ts +177 -0
  85. package/lib/PublishParser/publishTypesAndUtils.ts +399 -0
  86. package/lib/RestApi.ts +127 -0
  87. package/lib/SchemaWatch/SchemaWatch.ts +90 -0
  88. package/lib/SchemaWatch/createSchemaWatchEventTrigger.ts +3 -0
  89. package/lib/SchemaWatch/getValidatedWatchSchemaType.ts +45 -0
  90. package/lib/SchemaWatch/getWatchSchemaTagList.ts +27 -0
  91. package/lib/SyncReplication.ts +557 -0
  92. package/lib/TableConfig/TableConfig.ts +468 -0
  93. package/lib/TableConfig/getColumnDefinitionQuery.ts +111 -0
  94. package/lib/TableConfig/getConstraintDefinitionQueries.ts +95 -0
  95. package/lib/TableConfig/getFutureTableSchema.ts +64 -0
  96. package/lib/TableConfig/getPGIndexes.ts +53 -0
  97. package/lib/TableConfig/getTableColumnQueries.ts +129 -0
  98. package/lib/TableConfig/initTableConfig.ts +326 -0
  99. package/lib/index.ts +13 -0
  100. package/lib/initProstgles.ts +319 -0
  101. package/lib/onSocketConnected.ts +102 -0
  102. package/lib/runClientRequest.ts +129 -0
  103. package/lib/shortestPath.ts +122 -0
  104. package/lib/typeTests/DBoGenerated.d.ts +320 -0
  105. package/lib/typeTests/dboTypeCheck.ts +81 -0
  106. package/lib/utils.ts +15 -0
  107. package/package.json +1 -1
@@ -0,0 +1,320 @@
1
+ export type DBSchemaGenerated = {
2
+ items: {
3
+ is_view: false;
4
+ select: true;
5
+ insert: true;
6
+ update: true;
7
+ delete: true;
8
+ columns: {
9
+ h?: null | string[];
10
+ id?: number;
11
+ name?: null | string;
12
+ };
13
+ };
14
+ items2: {
15
+ is_view: false;
16
+ select: true;
17
+ insert: true;
18
+ update: true;
19
+ delete: true;
20
+ columns: {
21
+ hh?: null | string[];
22
+ id?: number;
23
+ items_id?: null | number;
24
+ name?: null | string;
25
+ };
26
+ };
27
+ items3: {
28
+ is_view: false;
29
+ select: true;
30
+ insert: true;
31
+ update: true;
32
+ delete: true;
33
+ columns: {
34
+ h?: null | string[];
35
+ id?: number;
36
+ name?: null | string;
37
+ };
38
+ };
39
+ items4: {
40
+ is_view: false;
41
+ select: true;
42
+ insert: true;
43
+ update: true;
44
+ delete: true;
45
+ columns: {
46
+ added?: null | string;
47
+ id?: number;
48
+ name: string;
49
+ public?: null | string;
50
+ };
51
+ };
52
+ items4_pub: {
53
+ is_view: false;
54
+ select: true;
55
+ insert: true;
56
+ update: true;
57
+ delete: true;
58
+ columns: {
59
+ added?: null | string;
60
+ id?: number;
61
+ name: string;
62
+ public?: null | string;
63
+ };
64
+ };
65
+ items4a: {
66
+ is_view: false;
67
+ select: true;
68
+ insert: true;
69
+ update: true;
70
+ delete: true;
71
+ columns: {
72
+ id?: number;
73
+ items_id?: null | number;
74
+ items2_id?: null | number;
75
+ name?: null | string;
76
+ };
77
+ };
78
+ "prostgles_test.basic": {
79
+ is_view: false;
80
+ select: true;
81
+ insert: true;
82
+ update: true;
83
+ delete: true;
84
+ columns: {
85
+ id?: number;
86
+ txt?: null | string;
87
+ };
88
+ };
89
+ "prostgles_test.basic1": {
90
+ is_view: false;
91
+ select: true;
92
+ insert: true;
93
+ update: true;
94
+ delete: true;
95
+ columns: {
96
+ id?: number;
97
+ id_basic?: null | number;
98
+ txt?: null | string;
99
+ };
100
+ };
101
+ "prostgles_test.mv_basic1": {
102
+ is_view: true;
103
+ select: true;
104
+ insert: false;
105
+ update: false;
106
+ delete: false;
107
+ columns: {
108
+ id: number;
109
+ id_basic: number;
110
+ txt: string;
111
+ };
112
+ };
113
+ rec: {
114
+ is_view: false;
115
+ select: true;
116
+ insert: true;
117
+ update: true;
118
+ delete: true;
119
+ columns: {
120
+ id?: number;
121
+ parent_id?: null | number;
122
+ recf?: null | number;
123
+ };
124
+ };
125
+ rec_ref: {
126
+ is_view: false;
127
+ select: true;
128
+ insert: true;
129
+ update: true;
130
+ delete: true;
131
+ columns: {
132
+ id?: number;
133
+ };
134
+ };
135
+ self_join: {
136
+ is_view: false;
137
+ select: true;
138
+ insert: true;
139
+ update: true;
140
+ delete: true;
141
+ columns: {
142
+ id?: number;
143
+ my_id?: null | number;
144
+ my_id1?: null | number;
145
+ name?: null | string;
146
+ };
147
+ };
148
+ shapes: {
149
+ is_view: false;
150
+ select: true;
151
+ insert: true;
152
+ update: true;
153
+ delete: true;
154
+ columns: {
155
+ geog?: null | string;
156
+ geom?: null | string;
157
+ id?: string;
158
+ };
159
+ };
160
+ spatial_ref_sys: {
161
+ is_view: false;
162
+ select: true;
163
+ insert: true;
164
+ update: true;
165
+ delete: true;
166
+ columns: {
167
+ auth_name?: null | string;
168
+ auth_srid?: null | number;
169
+ proj4text?: null | string;
170
+ srid: number;
171
+ srtext?: null | string;
172
+ };
173
+ };
174
+ symbols: {
175
+ is_view: false;
176
+ select: true;
177
+ insert: true;
178
+ update: true;
179
+ delete: true;
180
+ columns: {
181
+ id: string;
182
+ };
183
+ };
184
+ tjson: {
185
+ is_view: false;
186
+ select: true;
187
+ insert: true;
188
+ update: true;
189
+ delete: true;
190
+ columns: {
191
+ colOneOf: "a" | "b" | "c"
192
+ json: { a: boolean; arr: '1' | '2' | '3'; arr1: 1 | 2 | 3; arr2: number[]; arrStr?: null | string[]; o?: | null
193
+ | { o1: number; }
194
+ | { o2: boolean; }; };
195
+ jsonOneOf?:
196
+ | null
197
+ | { command: 'a'; }
198
+ | { command: 'b'; option: number[]; }
199
+ status?:
200
+ | null
201
+ | { ok: string; }
202
+ | { err: string; }
203
+ | { loading: { loaded: number; total: number; }; }
204
+ table_config?: null | { referencedTables?: ( { name: string; minFiles: number; } )[]; recType?: null | Record<'a' | 'b', { bools: boolean[]; }>; };
205
+ };
206
+ };
207
+ tr1: {
208
+ is_view: false;
209
+ select: true;
210
+ insert: true;
211
+ update: true;
212
+ delete: true;
213
+ columns: {
214
+ id?: number;
215
+ t1?: null | string;
216
+ };
217
+ };
218
+ tr2: {
219
+ is_view: false;
220
+ select: true;
221
+ insert: true;
222
+ update: true;
223
+ delete: true;
224
+ columns: {
225
+ id?: number;
226
+ t1?: null | string;
227
+ t2?: null | string;
228
+ tr1_id?: null | number;
229
+ };
230
+ };
231
+ tr3: {
232
+ is_view: false;
233
+ select: true;
234
+ insert: true;
235
+ update: true;
236
+ delete: true;
237
+ columns: {
238
+ id?: number;
239
+ t2?: null | string;
240
+ tr2_id?: null | number;
241
+ };
242
+ };
243
+ trades: {
244
+ is_view: false;
245
+ select: true;
246
+ insert: true;
247
+ update: true;
248
+ delete: true;
249
+ columns: {
250
+ id?: number;
251
+ price: string;
252
+ symbol: string;
253
+ };
254
+ };
255
+ users: {
256
+ is_view: false;
257
+ select: true;
258
+ insert: true;
259
+ update: true;
260
+ delete: true;
261
+ columns: {
262
+ email: string;
263
+ id?: number;
264
+ preferences: { showIntro?: boolean; theme?: 'light' | 'dark' | 'auto'; others: any[]; };
265
+ status: "active" | "disabled" | "pending"
266
+ };
267
+ };
268
+ users_public_info: {
269
+ is_view: false;
270
+ select: true;
271
+ insert: true;
272
+ update: true;
273
+ delete: true;
274
+ columns: {
275
+ avatar?: null | string;
276
+ id?: number;
277
+ name?: null | string;
278
+ sid?: null | string;
279
+ };
280
+ };
281
+ uuid_text: {
282
+ is_view: false;
283
+ select: true;
284
+ insert: true;
285
+ update: true;
286
+ delete: true;
287
+ columns: {
288
+ col1?: null | string;
289
+ col2?: null | string;
290
+ id?: null | string;
291
+ };
292
+ };
293
+ v_items: {
294
+ is_view: true;
295
+ select: true;
296
+ insert: true;
297
+ update: true;
298
+ delete: true;
299
+ columns: {
300
+ id?: null | number;
301
+ name?: null | string;
302
+ };
303
+ };
304
+ various: {
305
+ is_view: false;
306
+ select: true;
307
+ insert: true;
308
+ update: true;
309
+ delete: true;
310
+ columns: {
311
+ added?: null | string;
312
+ h?: null | string[];
313
+ id?: number;
314
+ jsn?: null | any;
315
+ name?: null | string;
316
+ tsv?: null | string;
317
+ };
318
+ };
319
+
320
+ }
@@ -0,0 +1,81 @@
1
+ import { ViewHandler } from "prostgles-types";
2
+ import type { DBOFullyTyped } from "../DBSchemaBuilder";
3
+ import type { DBHandlerServer } from "../DboBuilder/DboBuilder";
4
+ import { Publish } from "../PublishParser/PublishParser";
5
+ import { DBSchemaGenerated } from "./DBoGenerated";
6
+
7
+ type DBSchema2 = {
8
+ tr2: {
9
+ is_view: false;
10
+ select: true;
11
+ insert: true;
12
+ update: true;
13
+ delete: true;
14
+ columns: {
15
+ id?: number;
16
+ t1?: null | string;
17
+ t2?: null | string;
18
+ tr1_id?: null | number;
19
+ };
20
+ };
21
+ }
22
+ export const testDboTypes = () => {
23
+ (async () => {
24
+ const dbo = {} as DBOFullyTyped;
25
+ dbo.someTable?.find;
26
+
27
+ const dbo1 = {} as DBHandlerServer;
28
+ dbo1.w?.find;
29
+
30
+ const db = {} as DBOFullyTyped<DBSchemaGenerated>;
31
+ db.items2.find;
32
+
33
+ const r = await db.items2.find({ }, {
34
+ select: { id: 1 },
35
+ orderBy: {
36
+ id: 1,
37
+ }
38
+ });
39
+
40
+ r[0]?.id;
41
+
42
+ //@ts-expect-error
43
+ r[0]?.bad_col;
44
+
45
+ const tr2 = {} as ViewHandler<DBSchema2["tr2"]["columns"], DBSchema2>;
46
+ tr2.find({}, {
47
+ select: { id: 1 },
48
+ orderBy: { tr1_id: 1 }
49
+ });
50
+
51
+ tr2.find({}, {
52
+ //@ts-expect-error
53
+ select: { bad_col: 1 }
54
+ });
55
+
56
+ tr2.find({}, {
57
+ //@ts-expect-error
58
+ orderBy: { bad_col: 1 }
59
+ });
60
+
61
+ (await db.items2.find({}, { select: { items_id: 1 }, returnType: "values" })) satisfies (number | null)[];
62
+
63
+
64
+ const publish: Publish<DBSchemaGenerated> = {
65
+ items: {
66
+ insert: {
67
+ fields: {
68
+ name: 1,
69
+ //@ts-expect-error
70
+ bad_col: 1
71
+ },
72
+ validate: async (row) => ({
73
+ ...row,
74
+ h: [""]
75
+ })
76
+ }
77
+ }
78
+ };
79
+ publish;
80
+ })
81
+ }
package/lib/utils.ts ADDED
@@ -0,0 +1,15 @@
1
+
2
+ export { get } from "prostgles-types";
3
+ export const clone = <T extends any[] | Record<string, any>>(obj: T): T => {
4
+ if(typeof structuredClone !== "undefined"){
5
+ return structuredClone(obj);
6
+ }
7
+
8
+ return JSON.parse(JSON.stringify(obj));
9
+ }
10
+
11
+ export const sleep = function (ms: number) {
12
+ return new Promise((resolve) => {
13
+ setTimeout(resolve, ms);
14
+ });
15
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "prostgles-server",
3
- "version": "4.2.159",
3
+ "version": "4.2.161",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",