prostgles-server 4.0.57 → 4.0.59

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 (221) hide show
  1. package/dist/DboBuilder/getColumns.d.ts.map +1 -1
  2. package/dist/DboBuilder/getColumns.js +1 -13
  3. package/dist/DboBuilder/getColumns.js.map +1 -1
  4. package/dist/DboBuilder/runSQL.js +2 -2
  5. package/dist/DboBuilder/runSQL.js.map +1 -1
  6. package/dist/Prostgles.d.ts.map +1 -1
  7. package/dist/PubSubManager/PubSubManager.d.ts +1 -1
  8. package/dist/PubSubManager/PubSubManager.d.ts.map +1 -1
  9. package/dist/PubSubManager/PubSubManager.js +14 -1
  10. package/dist/PubSubManager/PubSubManager.js.map +1 -1
  11. package/lib/DboBuilder/getColumns.ts +1 -18
  12. package/lib/DboBuilder/runSQL.ts +2 -2
  13. package/lib/Prostgles.ts +3 -3
  14. package/lib/PubSubManager/PubSubManager.ts +14 -1
  15. package/package.json +2 -2
  16. package/tests/client/PID.txt +1 -1
  17. package/tests/client/package.json +2 -2
  18. package/tests/client/tsconfig.json +2 -1
  19. package/tests/isomorphic_queries.ts +11 -9
  20. package/tests/server/DBoGenerated.d.ts +1 -1
  21. package/tests/server/dboTypeCheck.ts +3 -3
  22. package/tests/server/index.ts +7 -6
  23. package/tests/server/package-lock.json +1 -1
  24. package/tests/server/package.json +3 -3
  25. package/tests/server/publishTypeCheck.ts +1 -1
  26. package/tests/server/tsconfig.json +3 -2
  27. package/tests/test.sh +2 -0
  28. package/dist/FileManager.d.ts +0 -143
  29. package/dist/FileManager.d.ts.map +0 -1
  30. package/dist/FileManager.js +0 -646
  31. package/dist/FileManager.js.map +0 -1
  32. package/dist/TableConfig.d.ts +0 -267
  33. package/dist/TableConfig.d.ts.map +0 -1
  34. package/dist/TableConfig.js +0 -463
  35. package/dist/TableConfig.js.map +0 -1
  36. package/dist/validation.d.ts +0 -126
  37. package/dist/validation.d.ts.map +0 -1
  38. package/dist/validation.js +0 -405
  39. package/dist/validation.js.map +0 -1
  40. package/lib/AuthHandler.d.ts +0 -187
  41. package/lib/AuthHandler.d.ts.map +0 -1
  42. package/lib/AuthHandler.js +0 -478
  43. package/lib/DBEventsManager.d.ts +0 -38
  44. package/lib/DBEventsManager.d.ts.map +0 -1
  45. package/lib/DBEventsManager.js +0 -140
  46. package/lib/DBSchemaBuilder.d.ts +0 -13
  47. package/lib/DBSchemaBuilder.d.ts.map +0 -1
  48. package/lib/DBSchemaBuilder.js +0 -145
  49. package/lib/DboBuilder/QueryBuilder/Functions.d.ts +0 -64
  50. package/lib/DboBuilder/QueryBuilder/Functions.d.ts.map +0 -1
  51. package/lib/DboBuilder/QueryBuilder/Functions.js +0 -984
  52. package/lib/DboBuilder/QueryBuilder/QueryBuilder.d.ts +0 -73
  53. package/lib/DboBuilder/QueryBuilder/QueryBuilder.d.ts.map +0 -1
  54. package/lib/DboBuilder/QueryBuilder/QueryBuilder.js +0 -335
  55. package/lib/DboBuilder/QueryBuilder/makeSelectQuery.d.ts +0 -8
  56. package/lib/DboBuilder/QueryBuilder/makeSelectQuery.d.ts.map +0 -1
  57. package/lib/DboBuilder/QueryBuilder/makeSelectQuery.js +0 -227
  58. package/lib/DboBuilder/TableHandler.d.ts +0 -37
  59. package/lib/DboBuilder/TableHandler.d.ts.map +0 -1
  60. package/lib/DboBuilder/TableHandler.js +0 -213
  61. package/lib/DboBuilder/ViewHandler.d.ts +0 -119
  62. package/lib/DboBuilder/ViewHandler.d.ts.map +0 -1
  63. package/lib/DboBuilder/ViewHandler.js +0 -1023
  64. package/lib/DboBuilder/delete.d.ts +0 -6
  65. package/lib/DboBuilder/delete.d.ts.map +0 -1
  66. package/lib/DboBuilder/delete.js +0 -128
  67. package/lib/DboBuilder/find.d.ts +0 -8
  68. package/lib/DboBuilder/find.d.ts.map +0 -1
  69. package/lib/DboBuilder/find.js +0 -91
  70. package/lib/DboBuilder/getColumns.d.ts +0 -12
  71. package/lib/DboBuilder/getColumns.d.ts.map +0 -1
  72. package/lib/DboBuilder/getColumns.js +0 -92
  73. package/lib/DboBuilder/getCondition.d.ts +0 -22
  74. package/lib/DboBuilder/getCondition.d.ts.map +0 -1
  75. package/lib/DboBuilder/getCondition.js +0 -236
  76. package/lib/DboBuilder/getSubscribeRelatedTables.d.ts +0 -20
  77. package/lib/DboBuilder/getSubscribeRelatedTables.d.ts.map +0 -1
  78. package/lib/DboBuilder/getSubscribeRelatedTables.js +0 -152
  79. package/lib/DboBuilder/getTablesForSchemaPostgresSQL.d.ts +0 -3
  80. package/lib/DboBuilder/getTablesForSchemaPostgresSQL.d.ts.map +0 -1
  81. package/lib/DboBuilder/getTablesForSchemaPostgresSQL.js +0 -207
  82. package/lib/DboBuilder/insert.d.ts +0 -6
  83. package/lib/DboBuilder/insert.d.ts.map +0 -1
  84. package/lib/DboBuilder/insert.js +0 -180
  85. package/lib/DboBuilder/insertDataParse.d.ts +0 -12
  86. package/lib/DboBuilder/insertDataParse.d.ts.map +0 -1
  87. package/lib/DboBuilder/insertDataParse.js +0 -253
  88. package/lib/DboBuilder/parseUpdateRules.d.ts +0 -18
  89. package/lib/DboBuilder/parseUpdateRules.d.ts.map +0 -1
  90. package/lib/DboBuilder/parseUpdateRules.js +0 -123
  91. package/lib/DboBuilder/runSQL.d.ts +0 -7
  92. package/lib/DboBuilder/runSQL.d.ts.map +0 -1
  93. package/lib/DboBuilder/runSQL.js +0 -135
  94. package/lib/DboBuilder/subscribe.d.ts +0 -20
  95. package/lib/DboBuilder/subscribe.d.ts.map +0 -1
  96. package/lib/DboBuilder/subscribe.js +0 -90
  97. package/lib/DboBuilder/update.d.ts +0 -6
  98. package/lib/DboBuilder/update.d.ts.map +0 -1
  99. package/lib/DboBuilder/update.js +0 -151
  100. package/lib/DboBuilder/uploadFile.d.ts +0 -7
  101. package/lib/DboBuilder/uploadFile.d.ts.map +0 -1
  102. package/lib/DboBuilder/uploadFile.js +0 -53
  103. package/lib/DboBuilder.d.ts +0 -306
  104. package/lib/DboBuilder.d.ts.map +0 -1
  105. package/lib/DboBuilder.js +0 -745
  106. package/lib/Event_Trigger_Tags.d.ts +0 -4
  107. package/lib/Event_Trigger_Tags.d.ts.map +0 -1
  108. package/lib/Event_Trigger_Tags.js +0 -116
  109. package/lib/FileManager/FileManager.d.ts +0 -135
  110. package/lib/FileManager/FileManager.d.ts.map +0 -1
  111. package/lib/FileManager/FileManager.js +0 -303
  112. package/lib/FileManager/initFileManager.d.ts +0 -4
  113. package/lib/FileManager/initFileManager.d.ts.map +0 -1
  114. package/lib/FileManager/initFileManager.js +0 -231
  115. package/lib/FileManager/parseFile.d.ts +0 -15
  116. package/lib/FileManager/parseFile.d.ts.map +0 -1
  117. package/lib/FileManager/parseFile.js +0 -58
  118. package/lib/FileManager/upload.d.ts +0 -6
  119. package/lib/FileManager/upload.d.ts.map +0 -1
  120. package/lib/FileManager/upload.js +0 -98
  121. package/lib/FileManager/uploadStream.d.ts +0 -5
  122. package/lib/FileManager/uploadStream.d.ts.map +0 -1
  123. package/lib/FileManager/uploadStream.js +0 -92
  124. package/lib/Filtering.d.ts +0 -15
  125. package/lib/Filtering.d.ts.map +0 -1
  126. package/lib/Filtering.js +0 -336
  127. package/lib/JSONBValidation/validate_jsonb_schema_sql.d.ts +0 -4
  128. package/lib/JSONBValidation/validate_jsonb_schema_sql.d.ts.map +0 -1
  129. package/lib/JSONBValidation/validate_jsonb_schema_sql.js +0 -500
  130. package/lib/JSONBValidation/validation.d.ts +0 -9
  131. package/lib/JSONBValidation/validation.d.ts.map +0 -1
  132. package/lib/JSONBValidation/validation.js +0 -131
  133. package/lib/PostgresNotifListenManager.d.ts +0 -28
  134. package/lib/PostgresNotifListenManager.d.ts.map +0 -1
  135. package/lib/PostgresNotifListenManager.js +0 -134
  136. package/lib/Prostgles.d.ts +0 -289
  137. package/lib/Prostgles.d.ts.map +0 -1
  138. package/lib/Prostgles.js +0 -685
  139. package/lib/PubSubManager/PubSubManager.d.ts +0 -175
  140. package/lib/PubSubManager/PubSubManager.d.ts.map +0 -1
  141. package/lib/PubSubManager/PubSubManager.js +0 -452
  142. package/lib/PubSubManager/addSub.d.ts +0 -8
  143. package/lib/PubSubManager/addSub.d.ts.map +0 -1
  144. package/lib/PubSubManager/addSub.js +0 -166
  145. package/lib/PubSubManager/addSync.d.ts +0 -8
  146. package/lib/PubSubManager/addSync.d.ts.map +0 -1
  147. package/lib/PubSubManager/addSync.js +0 -109
  148. package/lib/PubSubManager/getInitQuery.d.ts +0 -9
  149. package/lib/PubSubManager/getInitQuery.d.ts.map +0 -1
  150. package/lib/PubSubManager/getInitQuery.js +0 -552
  151. package/lib/PubSubManager/initPubSubManager.d.ts +0 -3
  152. package/lib/PubSubManager/initPubSubManager.d.ts.map +0 -1
  153. package/lib/PubSubManager/initPubSubManager.js +0 -116
  154. package/lib/PubSubManager/notifListener.d.ts +0 -5
  155. package/lib/PubSubManager/notifListener.d.ts.map +0 -1
  156. package/lib/PubSubManager/notifListener.js +0 -100
  157. package/lib/PubSubManager/pushSubData.d.ts +0 -3
  158. package/lib/PubSubManager/pushSubData.d.ts.map +0 -1
  159. package/lib/PubSubManager/pushSubData.js +0 -51
  160. package/lib/PublishParser.d.ts +0 -284
  161. package/lib/PublishParser.d.ts.map +0 -1
  162. package/lib/PublishParser.js +0 -421
  163. package/lib/SchemaWatch.d.ts +0 -13
  164. package/lib/SchemaWatch.d.ts.map +0 -1
  165. package/lib/SchemaWatch.js +0 -35
  166. package/lib/SyncReplication.d.ts +0 -34
  167. package/lib/SyncReplication.d.ts.map +0 -1
  168. package/lib/SyncReplication.js +0 -412
  169. package/lib/TableConfig/TableConfig.d.ts +0 -284
  170. package/lib/TableConfig/TableConfig.d.ts.map +0 -1
  171. package/lib/TableConfig/TableConfig.js +0 -437
  172. package/lib/TableConfig/getColumnDefinitionQuery.d.ts +0 -27
  173. package/lib/TableConfig/getColumnDefinitionQuery.d.ts.map +0 -1
  174. package/lib/TableConfig/getColumnDefinitionQuery.js +0 -87
  175. package/lib/TableConfig/getConstraintDefinitionQueries.d.ts +0 -34
  176. package/lib/TableConfig/getConstraintDefinitionQueries.d.ts.map +0 -1
  177. package/lib/TableConfig/getConstraintDefinitionQueries.js +0 -65
  178. package/lib/TableConfig/getFutureTableSchema.d.ts +0 -15
  179. package/lib/TableConfig/getFutureTableSchema.d.ts.map +0 -1
  180. package/lib/TableConfig/getFutureTableSchema.js +0 -43
  181. package/lib/TableConfig/getTableColumnQueries.d.ts +0 -16
  182. package/lib/TableConfig/getTableColumnQueries.d.ts.map +0 -1
  183. package/lib/TableConfig/getTableColumnQueries.js +0 -107
  184. package/lib/index.d.ts +0 -5
  185. package/lib/index.d.ts.map +0 -1
  186. package/lib/index.js +0 -7
  187. package/lib/shortestPath.d.ts +0 -10
  188. package/lib/shortestPath.d.ts.map +0 -1
  189. package/lib/shortestPath.js +0 -111
  190. package/lib/utils.d.ts +0 -3
  191. package/lib/utils.d.ts.map +0 -1
  192. package/lib/utils.js +0 -12
  193. package/tests/client/index.d.ts +0 -2
  194. package/tests/client/index.d.ts.map +0 -1
  195. package/tests/client/index.js +0 -80
  196. package/tests/client/index.js.map +0 -1
  197. package/tests/client_only_queries.d.ts +0 -4
  198. package/tests/client_only_queries.d.ts.map +0 -1
  199. package/tests/client_only_queries.js +0 -282
  200. package/tests/config_test/DBoGenerated.d.ts +0 -388
  201. package/tests/config_test/index.js +0 -174
  202. package/tests/config_test/index.js.map +0 -1
  203. package/tests/isomorphic_queries.d.ts +0 -9
  204. package/tests/isomorphic_queries.d.ts.map +0 -1
  205. package/tests/isomorphic_queries.js +0 -773
  206. package/tests/manual_test/DBoGenerated.d.ts +0 -398
  207. package/tests/manual_test/index.d.ts +0 -2
  208. package/tests/manual_test/index.d.ts.map +0 -1
  209. package/tests/manual_test/index.js +0 -65
  210. package/tests/server/dboTypeCheck.d.ts +0 -2
  211. package/tests/server/dboTypeCheck.d.ts.map +0 -1
  212. package/tests/server/dboTypeCheck.js +0 -27
  213. package/tests/server/index.d.ts +0 -2
  214. package/tests/server/index.d.ts.map +0 -1
  215. package/tests/server/index.js +0 -507
  216. package/tests/server/publishTypeCheck.d.ts +0 -2
  217. package/tests/server/publishTypeCheck.d.ts.map +0 -1
  218. package/tests/server/publishTypeCheck.js +0 -130
  219. package/tests/server_only_queries.d.ts +0 -2
  220. package/tests/server_only_queries.d.ts.map +0 -1
  221. package/tests/server_only_queries.js +0 -19
@@ -1,507 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const path_1 = __importDefault(require("path"));
7
- const express_1 = __importDefault(require("express"));
8
- const prostgles_server_1 = __importDefault(require("prostgles-server"));
9
- const app = (0, express_1.default)();
10
- const http = require('http').createServer(app);
11
- const { exec } = require('child_process');
12
- const publishTypeCheck_1 = require("./publishTypeCheck");
13
- const dboTypeCheck_1 = require("./dboTypeCheck");
14
- (0, dboTypeCheck_1.testDboTypes)();
15
- (0, publishTypeCheck_1.testPublishTypes)();
16
- const clientTest = (process.env.TEST_TYPE === "client");
17
- const io = !clientTest ? undefined : require("socket.io")(http, { path: "/teztz/s" });
18
- http.listen(3001);
19
- const isomorphic_queries_1 = __importDefault(require("../isomorphic_queries"));
20
- const server_only_queries_1 = __importDefault(require("../server_only_queries"));
21
- const log = (msg, extra, trace) => {
22
- const msgs = ["(server): " + msg, extra].filter(v => v);
23
- if (trace) {
24
- console.trace(...msgs);
25
- }
26
- else {
27
- console.log(...msgs);
28
- }
29
- };
30
- const stopTest = (err) => {
31
- log("Stopping server ...");
32
- if (err) {
33
- console.trace(err);
34
- }
35
- process.exit(err ? 1 : 0);
36
- };
37
- const sessions = [];
38
- const users = [{ id: "1a", username: "john", password: "secret", type: "default" }];
39
- process.on('unhandledRejection', (reason, p) => {
40
- console.trace('Unhandled Rejection at:', p, 'reason:', reason);
41
- process.exit(1);
42
- });
43
- /**
44
- * To create a superuser in linux:
45
- * sudo su - postgres
46
- * createuser api -s -P
47
- */
48
- const dbConnection = {
49
- host: process.env.POSTGRES_HOST || "localhost",
50
- port: +process.env.POSTGRES_PORT || 5432,
51
- database: process.env.POSTGRES_DB || "postgres",
52
- user: process.env.POSTGRES_USER || "api",
53
- password: process.env.POSTGRES_PASSWORD || "api",
54
- // user: "usr",
55
- // password: "usr",
56
- };
57
- function dd() {
58
- const dbo = 1;
59
- if (!dbo)
60
- return;
61
- dbo.tbl.find;
62
- }
63
- (async () => {
64
- log("created prostgles");
65
- const tableConfig = {
66
- tr2: {
67
- // dropIfExists: true,
68
- columns: {
69
- t1: { label: { fr: "fr_t1" }, info: { hint: "hint...", min: "a", max: "b" } },
70
- t2: { label: { en: "en_t2" } },
71
- },
72
- triggers: {
73
- atLeastOneA: {
74
- actions: ["delete", "update"],
75
- forEach: "statement",
76
- type: "after",
77
- query: `
78
- DECLARE
79
- x_rec record;
80
- BEGIN
81
-
82
- IF NOT EXISTS(SELECT * FROM tr2 WHERE t1 = 'a' AND t2 = 'b') THEN
83
- RAISE EXCEPTION 'Must have at least one row with t1 = a AND t2 = b';
84
- END IF;
85
-
86
- RETURN NULL;
87
- END;
88
- `
89
- }
90
- }
91
- },
92
- users: {
93
- dropIfExists: true,
94
- columns: {
95
- id: { sqlDefinition: `SERIAL PRIMARY KEY ` },
96
- email: { sqlDefinition: `TEXT NOT NULL` },
97
- status: { enum: ["active", "disabled", "pending"] },
98
- preferences: {
99
- jsonbSchemaType: {
100
- showIntro: { type: "boolean", optional: true },
101
- theme: { enum: ["light", "dark", "auto"], optional: true },
102
- others: { type: "any[]" }
103
- }
104
- },
105
- }
106
- },
107
- tjson: {
108
- dropIfExists: true,
109
- columns: {
110
- json: { jsonbSchemaType: {
111
- a: { type: "boolean" },
112
- arr: { enum: ["1", "2", "3"] },
113
- arr1: { enum: [1, 2, 3] },
114
- arr2: { type: "integer[]" },
115
- arrStr: { type: "string[]", optional: true, nullable: true },
116
- o: { optional: true, nullable: true, oneOfType: [
117
- { o1: "integer" },
118
- { o2: "boolean" }
119
- ] },
120
- }
121
- },
122
- colOneOf: { enum: ["a", "b", "c"] },
123
- status: {
124
- nullable: true,
125
- jsonbSchema: {
126
- oneOfType: [
127
- { ok: { type: "string" } },
128
- { err: { type: "string" } },
129
- {
130
- loading: { type: {
131
- loaded: { type: "number" },
132
- total: { type: "number" }
133
- }
134
- }
135
- }
136
- ]
137
- }
138
- },
139
- jsonOneOf: {
140
- nullable: true,
141
- jsonbSchema: {
142
- oneOfType: [
143
- { command: { enum: ["a"] } },
144
- {
145
- command: { enum: ["b"] },
146
- option: { type: "integer[]" }
147
- }
148
- ]
149
- }
150
- },
151
- table_config: { nullable: true, jsonbSchemaType: {
152
- referencedTables: { optional: true, arrayOfType: { name: "string", minFiles: "number" } },
153
- recType: {
154
- nullable: true, optional: true, record: { keysEnum: ["a", "b"], values: { type: { bools: "boolean[]" } } }
155
- }
156
- }
157
- }
158
- }
159
- },
160
- lookup_col1: {
161
- dropIfExistsCascade: true,
162
- isLookupTable: {
163
- values: {
164
- a: {},
165
- b: {}
166
- },
167
- }
168
- },
169
- uuid_text: {
170
- columns: {
171
- id: "UUID",
172
- col1: {
173
- references: {
174
- tableName: "lookup_col1",
175
- nullable: true,
176
- }
177
- },
178
- col2: {
179
- references: {
180
- tableName: "lookup_col1",
181
- nullable: true,
182
- }
183
- }
184
- }
185
- },
186
- // uuid_text: {
187
- // columns: {id: "UUID"}
188
- // },
189
- rec_ref: {
190
- columns: {
191
- id: "SERIAL PRIMARY KEY",
192
- }
193
- },
194
- rec: {
195
- columns: {
196
- id: "SERIAL PRIMARY KEY",
197
- parent_id: "INTEGER REFERENCES rec",
198
- recf: "INTEGER REFERENCES rec_ref",
199
- }
200
- }
201
- };
202
- // ProstglesInitOptions<DBSchemaGenerated>
203
- let prgl = await (0, prostgles_server_1.default)({
204
- dbConnection,
205
- sqlFilePath: path_1.default.join(__dirname + '/init.sql'),
206
- io,
207
- tsGeneratedTypesDir: path_1.default.join(__dirname + '/'),
208
- // watchSchema: true,
209
- transactions: true,
210
- // DEBUG_MODE: true,
211
- // onNotice: console.log,
212
- tableConfig,
213
- fileTable: {
214
- // awsS3Config: {
215
- // accessKeyId: process.env.S3_KEY,
216
- // bucket: process.env.S3_BUCKET,
217
- // region: process.env.S3_REGION,
218
- // secretAccessKey: process.env.S3_SECRET,
219
- // },
220
- referencedTables: {
221
- items_with_one_media: "one",
222
- items_with_media: "many",
223
- },
224
- localConfig: {
225
- localFolderPath: path_1.default.join(__dirname + '/media'),
226
- },
227
- expressApp: app,
228
- },
229
- onSocketDisconnect: ({ socket, db }) => {
230
- log("onSocketDisconnect");
231
- console.trace("onSocketDisconnect");
232
- // const c: DBOFullyTyped<DBSchemaGenerated> = 1 as any;
233
- // c["*"].
234
- },
235
- onSocketConnect: ({ socket, db }) => {
236
- log("onSocketConnect");
237
- if (clientTest) {
238
- log("Client connected -> CLIENT ERRORS ARE NOT LOGGED HERE!");
239
- socket.emit("start-test", { server_id: Math.random() });
240
- socket.on("stop-test", async (err, cb) => {
241
- cb();
242
- if (!err) {
243
- console.log("Client test successful!");
244
- }
245
- // console.log("Destroying prgl");
246
- // await db.items.subscribe({}, {}, () => {});
247
- // await prgl.destroy();
248
- // console.log("Recreating prgl")
249
- // prgl = await prostgles({
250
- // dbConnection,
251
- // onReady: async (dbo) => {
252
- // console.warn("onReady", await dbo.items.count())
253
- // // await tout(2)
254
- // await prgl.destroy();
255
- // console.log("Recreating prgl")
256
- // prgl = await prostgles({
257
- // dbConnection,
258
- // onReady: async (dbo) => {
259
- // console.warn("onReady", await dbo.items.count())
260
- // }
261
- // });
262
- // }
263
- // });
264
- stopTest(err);
265
- });
266
- }
267
- },
268
- publishRawSQL: async (params) => {
269
- return true; // Boolean(user && user.type === "admin")
270
- },
271
- auth: {
272
- sidKeyName: "token",
273
- getUser: async (sid) => {
274
- if (sid) {
275
- const s = sessions.find(s => s.id === sid);
276
- if (s) {
277
- const user = users.find(u => s && s.user_id === u.id);
278
- if (user) {
279
- return { sid: s.id, user, clientUser: { sid: s.id, uid: user.id } };
280
- }
281
- }
282
- }
283
- return undefined;
284
- },
285
- login: async ({ username, password } = {}) => {
286
- const u = users.find(u => u.username === username && u.password === password);
287
- if (!u)
288
- throw "something went wrong: " + JSON.stringify({ username, password });
289
- let s = sessions.find(s => s.user_id === u.id);
290
- if (!s) {
291
- s = { id: "SID" + Date.now(), user_id: u.id };
292
- sessions.push(s);
293
- }
294
- log("Logged in!");
295
- return { sid: s.id, expires: Infinity, onExpiration: "redirect" };
296
- },
297
- cacheSession: {
298
- getSession: async (sid) => {
299
- const s = sessions.find(s => s.id === sid);
300
- return s ? { sid: s.id, expires: Infinity, onExpiration: "redirect" } : undefined;
301
- }
302
- },
303
- },
304
- publishMethods: async (params) => {
305
- return {
306
- get: () => 222
307
- };
308
- },
309
- publish: async ({ user }) => {
310
- const res = {
311
- shapes: "*",
312
- items: "*",
313
- items2: "*",
314
- items3: "*",
315
- items4a: "*",
316
- tjson: "*",
317
- // items_with_media_cols: "*",
318
- items_multi: "*",
319
- v_items: "*",
320
- various: "*",
321
- tr1: "*",
322
- tr2: "*",
323
- planes: {
324
- select: "*",
325
- update: "*",
326
- insert: "*",
327
- delete: "*",
328
- sync: {
329
- id_fields: ["id"],
330
- synced_field: "last_updated"
331
- }
332
- },
333
- items4: {
334
- select: user ? "*" : {
335
- fields: { name: 0 },
336
- orderByFields: { added: 1 },
337
- forcedFilter: { name: "abc" }
338
- },
339
- insert: "*",
340
- update: "*",
341
- delete: "*"
342
- },
343
- items4_pub: "*",
344
- "*": {
345
- select: { fields: { "*": 0 } },
346
- insert: "*",
347
- update: "*",
348
- },
349
- [`"*"`]: {
350
- select: { fields: { [`"*"`]: 0 } },
351
- insert: "*",
352
- update: "*",
353
- },
354
- obj_table: "*",
355
- media: "*",
356
- items_with_one_media: "*",
357
- items_with_media: "*",
358
- prostgles_lookup_media_items_with_one_media: "*",
359
- prostgles_lookup_media_items_with_media: "*",
360
- insert_rules: {
361
- select: "*",
362
- insert: {
363
- fields: "*",
364
- returningFields: { name: 1 },
365
- validate: async (row) => {
366
- if (row.name === "a")
367
- row.name = "b";
368
- return row;
369
- },
370
- postValidate: async (row, dboTx) => {
371
- /** Records must exist in this transaction */
372
- log(JSON.stringify(row));
373
- const exists = await dboTx.sql("SELECT * FROM insert_rules WHERE id = ${id}", row, { returnType: "row" });
374
- const existsd = await dboTx.insert_rules.findOne({ id: row.id });
375
- if (row.id !== exists.id || row.id !== existsd.id) {
376
- console.error("postValidate failed");
377
- // process.exit(1)
378
- }
379
- if (row.name === "fail")
380
- throw "Failed";
381
- return undefined;
382
- }
383
- }
384
- },
385
- uuid_text: {
386
- insert: {
387
- fields: "*",
388
- forcedData: {
389
- id: 'c81089e1-c4c1-45d7-a73d-e2d613cb7c3e'
390
- }
391
- },
392
- update: {
393
- fields: [],
394
- dynamicFields: [{
395
- fields: { id: 1 },
396
- filter: {
397
- id: 'c81089e1-c4c1-45d7-a73d-e2d613cb7c3e'
398
- }
399
- }]
400
- }
401
- }
402
- };
403
- return res;
404
- },
405
- // joins: "inferred",
406
- joins: [
407
- {
408
- tables: ["items", "items2"],
409
- on: [{ name: "name" }],
410
- type: "many-many"
411
- },
412
- {
413
- tables: ["items2", "items3"],
414
- on: [{ name: "name" }],
415
- type: "many-many"
416
- },
417
- {
418
- tables: ["items4a", "items"],
419
- on: [{ items_id: "id" }],
420
- type: "many-many"
421
- },
422
- {
423
- tables: ["items4a", "items2"],
424
- on: [{ items2_id: "id" }],
425
- type: "many-many"
426
- },
427
- {
428
- tables: ["items_multi", "items"],
429
- on: [
430
- { items0_id: "id" },
431
- { items1_id: "id" },
432
- { items2_id: "id" },
433
- { items3_id: "id" },
434
- ],
435
- type: "many-many"
436
- }
437
- ],
438
- onReady: async (db, _db) => {
439
- log("prostgles onReady");
440
- app.get('*', function (req, res) {
441
- log(req.originalUrl);
442
- res.sendFile(path_1.default.join(__dirname + '/index.html'));
443
- });
444
- try {
445
- if (process.env.TEST_TYPE === "client") {
446
- const clientPath = `cd ${__dirname}/../client && npm test`;
447
- log("EXEC CLIENT PROCESS");
448
- const proc = exec(clientPath, console.log);
449
- log("Waiting for client...");
450
- proc.stdout.on('data', function (data) {
451
- console.log(data);
452
- });
453
- proc.stderr.on('data', function (data) {
454
- console.error(data);
455
- });
456
- }
457
- else if (process.env.TEST_TYPE === "server") {
458
- await (0, isomorphic_queries_1.default)(db);
459
- log("Server isomorphic tests successful");
460
- await (0, server_only_queries_1.default)(db);
461
- log("Server-only query tests successful");
462
- stopTest();
463
- }
464
- else {
465
- // await db.items4.delete();
466
- // await db.items4.insert([
467
- // { name: "abc", public: "public data", added: new Date('04 Dec 1995 00:12:00 GMT') },
468
- // { name: "abc", public: "public data", added: new Date('04 Dec 1995 00:12:00 GMT') },
469
- // { name: "abcd", public: "public data d", added: new Date('04 Dec 1996 00:12:00 GMT') }
470
- // ]);
471
- // const v1 = await db.items.insert([{ name: "a" }, { name: "z" }, { name: "b" }]);
472
- // await db.items2.insert([{ name: "a", items_id: 1 }]);
473
- // await db.items2.insert([{ name: "a", items_id: 1 }]);
474
- // await db.items2.insert([{ name: "b", items_id: 2 }]);
475
- // await db.items2.insert([{ name: "b", items_id: 2 }]);
476
- // await db.items2.insert([{ name: "b", items_id: 2 }]);
477
- // await db.items3.insert([{ name: "a" }, { name: "za123" }]);
478
- // const MonAgg = await db.items.find({}, { select: {
479
- // name: 1,
480
- // items2: { count: { $count: ["id"] } } ,
481
- // } });
482
- // console.log(JSON.stringify(MonAgg, null, 2));
483
- // await _db.any("DROP TABLE IF EXISTS tt; ")
484
- // await _db.any("DROP TABLE IF EXISTS tt; CREATE TABLE tt(id serial);")
485
- // await _db.any("DROP EXTENSION IF EXISTS pgcrypto; CREATE EXTENSION pgcrypto;")
486
- // console.log(await db.items4.findOne({}, { select: { public: { "$ts_headline": ["public", "public"] } } }))
487
- }
488
- }
489
- catch (err) {
490
- console.trace(err);
491
- if (process.env.TEST_TYPE) {
492
- stopTest(err);
493
- }
494
- }
495
- },
496
- });
497
- })();
498
- function randElem(items) {
499
- return items[Math.floor(Math.random() * items.length)];
500
- }
501
- async function tout(millis) {
502
- return new Promise((re, rj) => {
503
- setTimeout(() => {
504
- re(true);
505
- }, millis);
506
- });
507
- }
@@ -1,2 +0,0 @@
1
- export declare const testPublishTypes: () => void;
2
- //# sourceMappingURL=publishTypeCheck.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"publishTypeCheck.d.ts","sourceRoot":"","sources":["publishTypeCheck.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,gBAAgB,YAqI5B,CAAA"}
@@ -1,130 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.testPublishTypes = void 0;
4
- const testPublishTypes = () => {
5
- (() => {
6
- const p1 = {
7
- items: {
8
- delete: "*",
9
- select: {
10
- fields: { h: 1, id: 1 },
11
- forcedFilter: { $and: [
12
- { h: { $overlaps: ["23", "32"] } },
13
- { $existsJoined: { items: { "h.$eq": [] } } }
14
- ] }
15
- }
16
- },
17
- items3: "*"
18
- };
19
- const p2 = "*";
20
- const p11 = {
21
- items: {
22
- delete: "*",
23
- select: {
24
- fields: { h: 1, id: 1 },
25
- forcedFilter: {
26
- $and: [
27
- { h: { $overlaps: ["23", "32"] } },
28
- { $existsJoined: { items: { "h.$eq": [] } } }
29
- ]
30
- }
31
- }
32
- },
33
- items3: "*"
34
- };
35
- const p123 = p11;
36
- const p1234 = p1;
37
- const p12 = "*";
38
- const res = {
39
- shapes: "*",
40
- items: "*",
41
- items2: "*",
42
- items3: "*",
43
- v_items: "*",
44
- various: "*",
45
- tr1: "*",
46
- tr2: "*",
47
- planes: {
48
- select: "*",
49
- update: "*",
50
- insert: "*",
51
- delete: "*",
52
- sync: {
53
- id_fields: ["id"],
54
- synced_field: "last_updated"
55
- }
56
- },
57
- items4: {
58
- select: Math.random() ? "*" : {
59
- fields: { name: 0 },
60
- forcedFilter: { name: "abc" }
61
- },
62
- insert: "*",
63
- update: "*",
64
- delete: "*"
65
- },
66
- items4_pub: "*",
67
- "*": {
68
- select: { fields: { "*": 0 } },
69
- insert: "*",
70
- update: "*",
71
- },
72
- [`"*"`]: {
73
- select: { fields: { [`"*"`]: 0 } },
74
- insert: "*",
75
- update: "*",
76
- },
77
- obj_table: "*",
78
- media: "*",
79
- items_with_one_media: "*",
80
- items_with_media: "*",
81
- prostgles_lookup_media_items_with_one_media: "*",
82
- prostgles_lookup_media_items_with_media: "*",
83
- insert_rules: {
84
- insert: {
85
- fields: "*",
86
- returningFields: { name: 1 },
87
- validate: async (row) => {
88
- if (row.name === "a")
89
- row.name = "b";
90
- return row;
91
- }
92
- }
93
- },
94
- uuid_text: {
95
- insert: {
96
- fields: "*",
97
- forcedData: {
98
- id: 'c81089e1-c4c1-45d7-a73d-e2d613cb7c3e'
99
- }
100
- },
101
- update: {
102
- fields: [],
103
- dynamicFields: [{
104
- fields: { id: 1 },
105
- filter: {
106
- id: 'c81089e1-c4c1-45d7-a73d-e2d613cb7c3e'
107
- }
108
- }]
109
- }
110
- }
111
- };
112
- const res2 = res;
113
- const res3 = {
114
- items: {
115
- select: {
116
- fields: {
117
- h: 1
118
- },
119
- forcedFilter: {
120
- // "h.$eq": ["2"]
121
- $and: [
122
- { "h.$eq": ["2"] }
123
- ]
124
- }
125
- }
126
- }
127
- };
128
- });
129
- };
130
- exports.testPublishTypes = testPublishTypes;
@@ -1,2 +0,0 @@
1
- export default function f(db: any): Promise<void>;
2
- //# sourceMappingURL=server_only_queries.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"server_only_queries.d.ts","sourceRoot":"","sources":["server_only_queries.ts"],"names":[],"mappings":"AAAA,wBAA8B,CAAC,CAAC,EAAE,EAAE,GAAG,iBAiBtC"}
@@ -1,19 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- async function f(db) {
4
- /** Self reference recursion bug */
5
- await db.rec.findOne({ id: 1 }, { select: { "*": 1, rec_ref: "*" } });
6
- /* Transaction example */
7
- await db.tx(async (t) => {
8
- await t.items.insert({ name: "tx_" });
9
- const expect1 = await t.items.count({ name: "tx_" });
10
- const expect0 = await db.items.count({ name: "tx_" });
11
- if (expect0 !== 0 || expect1 !== 1)
12
- throw "db.tx failed";
13
- //throw "err"; // Any errors will revert all data-changing commands using the transaction object ( t )
14
- });
15
- const expect1 = await db.items.count({ name: "tx_" });
16
- if (expect1 !== 1)
17
- throw "db.tx failed";
18
- }
19
- exports.default = f;