prostgles-server 2.0.178 → 2.0.179

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 (98) hide show
  1. package/dist/AuthHandler.d.ts +4 -4
  2. package/dist/AuthHandler.d.ts.map +1 -1
  3. package/dist/DBSchemaBuilder.d.ts +6 -6
  4. package/dist/DBSchemaBuilder.d.ts.map +1 -1
  5. package/dist/DBSchemaBuilder.js +25 -8
  6. package/dist/DBSchemaBuilder.js.map +1 -1
  7. package/dist/DboBuilder.d.ts +20 -21
  8. package/dist/DboBuilder.d.ts.map +1 -1
  9. package/dist/DboBuilder.js +1 -1
  10. package/dist/DboBuilder.js.map +1 -1
  11. package/dist/Prostgles.d.ts +8 -10
  12. package/dist/Prostgles.d.ts.map +1 -1
  13. package/dist/Prostgles.js.map +1 -1
  14. package/dist/PublishParser.d.ts +37 -37
  15. package/dist/PublishParser.d.ts.map +1 -1
  16. package/dist/PublishParser.js.map +1 -1
  17. package/dist/index.d.ts +2 -3
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js.map +1 -1
  20. package/lib/AuthHandler.d.ts +148 -0
  21. package/lib/AuthHandler.d.ts.map +1 -0
  22. package/lib/AuthHandler.js +411 -0
  23. package/lib/AuthHandler.ts +3 -3
  24. package/lib/DBEventsManager.d.ts +38 -0
  25. package/lib/DBEventsManager.d.ts.map +1 -0
  26. package/lib/DBEventsManager.js +136 -0
  27. package/lib/DBSchemaBuilder.d.ts +11 -0
  28. package/lib/DBSchemaBuilder.d.ts.map +1 -0
  29. package/lib/DBSchemaBuilder.js +102 -0
  30. package/lib/DBSchemaBuilder.ts +62 -27
  31. package/lib/DboBuilder.d.ts +428 -0
  32. package/lib/DboBuilder.d.ts.map +1 -0
  33. package/lib/DboBuilder.js +3078 -0
  34. package/lib/DboBuilder.ts +25 -25
  35. package/lib/FileManager.d.ts +168 -0
  36. package/lib/FileManager.d.ts.map +1 -0
  37. package/lib/FileManager.js +474 -0
  38. package/lib/Filtering.d.ts +15 -0
  39. package/lib/Filtering.d.ts.map +1 -0
  40. package/lib/Filtering.js +299 -0
  41. package/lib/PostgresNotifListenManager.d.ts +27 -0
  42. package/lib/PostgresNotifListenManager.d.ts.map +1 -0
  43. package/lib/PostgresNotifListenManager.js +122 -0
  44. package/lib/Prostgles.d.ts +193 -0
  45. package/lib/Prostgles.d.ts.map +1 -0
  46. package/lib/Prostgles.js +579 -0
  47. package/lib/Prostgles.ts +6 -6
  48. package/lib/PubSubManager.d.ts +157 -0
  49. package/lib/PubSubManager.d.ts.map +1 -0
  50. package/lib/PubSubManager.js +1400 -0
  51. package/lib/PublishParser.d.ts +262 -0
  52. package/lib/PublishParser.d.ts.map +1 -0
  53. package/lib/PublishParser.js +390 -0
  54. package/lib/PublishParser.ts +39 -38
  55. package/lib/QueryBuilder.d.ts +124 -0
  56. package/lib/QueryBuilder.d.ts.map +1 -0
  57. package/lib/QueryBuilder.js +1349 -0
  58. package/lib/SyncReplication.d.ts +34 -0
  59. package/lib/SyncReplication.d.ts.map +1 -0
  60. package/lib/SyncReplication.js +411 -0
  61. package/lib/TableConfig.d.ts +175 -0
  62. package/lib/TableConfig.d.ts.map +1 -0
  63. package/lib/TableConfig.js +231 -0
  64. package/lib/index.d.ts +10 -0
  65. package/lib/index.d.ts.map +1 -0
  66. package/lib/index.js +45 -0
  67. package/lib/index.ts +3 -4
  68. package/lib/shortestPath.d.ts +10 -0
  69. package/lib/shortestPath.d.ts.map +1 -0
  70. package/lib/shortestPath.js +111 -0
  71. package/lib/utils.d.ts +2 -0
  72. package/lib/utils.d.ts.map +1 -0
  73. package/lib/utils.js +5 -0
  74. package/package.json +3 -3
  75. package/tests/client/PID.txt +1 -1
  76. package/tests/client/index.d.ts +1 -1
  77. package/tests/client/index.d.ts.map +1 -1
  78. package/tests/client_only_queries.d.ts +4 -0
  79. package/tests/client_only_queries.d.ts.map +1 -0
  80. package/tests/isomorphic_queries.d.ts +6 -0
  81. package/tests/isomorphic_queries.d.ts.map +1 -0
  82. package/tests/server/DBoGenerated.d.ts +97 -193
  83. package/tests/server/dboTypeCheck.d.ts +2 -0
  84. package/tests/server/dboTypeCheck.d.ts.map +1 -0
  85. package/tests/server/dboTypeCheck.js +14 -0
  86. package/tests/server/dboTypeCheck.ts +17 -0
  87. package/tests/server/index.d.ts +2 -0
  88. package/tests/server/index.d.ts.map +1 -0
  89. package/tests/server/index.js +11 -11
  90. package/tests/server/index.ts +23 -16
  91. package/tests/server/package-lock.json +5 -5
  92. package/tests/server/publishTypeCheck.d.ts +2 -0
  93. package/tests/server/publishTypeCheck.d.ts.map +1 -0
  94. package/tests/server/publishTypeCheck.js +120 -0
  95. package/tests/server/publishTypeCheck.ts +129 -0
  96. package/tests/server/tsconfig.json +4 -5
  97. package/tests/server_only_queries.d.ts +2 -0
  98. package/tests/server_only_queries.d.ts.map +1 -0
@@ -5,7 +5,9 @@ import prostgles from "prostgles-server";
5
5
  const app = express();
6
6
  const http = require('http').createServer(app);
7
7
  const { exec } = require('child_process');
8
+ import { testPublishTypes } from "./publishTypeCheck";
8
9
 
10
+ import { testDboTypes } from "./dboTypeCheck"
9
11
 
10
12
  const clientTest = (process.env.TEST_TYPE === "client");
11
13
  const io = !clientTest? undefined : require("socket.io")(http, { path: "/teztz/s" });
@@ -15,10 +17,13 @@ http.listen(3001);
15
17
  import isomorphic from "../isomorphic_queries";
16
18
  import server_only_queries from "../server_only_queries";
17
19
 
18
- import { DBObj, DBSchema } from "./DBoGenerated";
20
+ import { DBSchemaGenerated } from "./DBoGenerated";
19
21
  // type DBObj = any;
20
22
 
21
23
  import { TableConfig } from '../../dist/TableConfig';
24
+ import { DBOFullyTyped } from "../../lib/DBSchemaBuilder";
25
+ import { ProstglesInitOptions } from "../../dist/Prostgles";
26
+ import { PublishFullyTyped } from "../../dist/DBSchemaBuilder";
22
27
 
23
28
  const log = (msg: string, extra?: any, trace?: boolean) => {
24
29
  const msgs = ["(server): " + msg, extra].filter(v => v);
@@ -59,6 +64,14 @@ const dbConnection = {
59
64
  // password: "usr",
60
65
  };
61
66
 
67
+ function dd(){
68
+
69
+ const dbo: DBOFullyTyped<{ tbl: { is_view: true; columns: { col1: { type: number } } }}> = 1 as any
70
+ if(!dbo) return;
71
+ dbo.tbl.find
72
+
73
+ }
74
+
62
75
  (async () => {
63
76
 
64
77
 
@@ -96,8 +109,9 @@ const dbConnection = {
96
109
  }
97
110
  }
98
111
  }
99
- }
100
- let prgl = await prostgles<DBSchema>({
112
+ }
113
+ // ProstglesInitOptions<DBSchemaGenerated>
114
+ let prgl = await prostgles<DBSchemaGenerated>({
101
115
  dbConnection,
102
116
  sqlFilePath: path.join(__dirname+'/init.sql'),
103
117
  io,
@@ -127,7 +141,9 @@ const dbConnection = {
127
141
 
128
142
  onSocketDisconnect: (socket, db) => {
129
143
  log("onSocketDisconnect")
130
- console.trace("onSocketDisconnect")
144
+ console.trace("onSocketDisconnect");
145
+ // const c: DBOFullyTyped<DBSchemaGenerated> = 1 as any;
146
+ // c["*"].
131
147
  },
132
148
 
133
149
  onSocketConnect: (socket, db) => {
@@ -210,7 +226,7 @@ const dbConnection = {
210
226
  }
211
227
  },
212
228
  publish: async ({ user }) => {
213
- return {
229
+ const res: PublishFullyTyped<DBSchemaGenerated> = {
214
230
  shapes: "*",
215
231
  items: "*",
216
232
  items2: "*",
@@ -286,16 +302,7 @@ const dbConnection = {
286
302
  }
287
303
  };
288
304
 
289
- // return {
290
- // items: {
291
- // select: {
292
- // fields: "*",
293
- // forcedFilter: {
294
- // $exists: { items3: { name: "a" } }
295
- // }
296
- // }
297
- // }
298
- // };
305
+ return res;
299
306
  },
300
307
  // joins: "inferred",
301
308
  joins: [
@@ -388,4 +395,4 @@ async function tout(millis){
388
395
  re(true);
389
396
  }, millis)
390
397
  })
391
- }
398
+ }
@@ -21,7 +21,7 @@
21
21
  },
22
22
  "../..": {
23
23
  "name": "prostgles-server",
24
- "version": "2.0.177",
24
+ "version": "2.0.178",
25
25
  "license": "MIT",
26
26
  "dependencies": {
27
27
  "@aws-sdk/client-s3": "^3.95.0",
@@ -29,7 +29,7 @@
29
29
  "bluebird": "^3.7.2",
30
30
  "file-type": "^16.5.3",
31
31
  "pg-promise": "^10.11.1",
32
- "prostgles-types": "^1.5.153",
32
+ "prostgles-types": "^1.5.155",
33
33
  "sharp": "^0.30.5"
34
34
  },
35
35
  "devDependencies": {
@@ -37,7 +37,7 @@
37
37
  "@types/bluebird": "^3.5.36",
38
38
  "@types/node": "^14.14.35",
39
39
  "@types/sharp": "^0.30.2",
40
- "typescript": "^4.7.2"
40
+ "typescript": "^4.7.3"
41
41
  }
42
42
  },
43
43
  "node_modules/@types/component-emitter": {
@@ -1371,9 +1371,9 @@
1371
1371
  "bluebird": "^3.7.2",
1372
1372
  "file-type": "^16.5.3",
1373
1373
  "pg-promise": "^10.11.1",
1374
- "prostgles-types": "^1.5.153",
1374
+ "prostgles-types": "^1.5.155",
1375
1375
  "sharp": "^0.30.5",
1376
- "typescript": "^4.7.2"
1376
+ "typescript": "^4.7.3"
1377
1377
  }
1378
1378
  },
1379
1379
  "proxy-addr": {
@@ -0,0 +1,2 @@
1
+ export declare const testPublishTypes: () => void;
2
+ //# sourceMappingURL=publishTypeCheck.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publishTypeCheck.d.ts","sourceRoot":"","sources":["publishTypeCheck.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,gBAAgB,YA2H5B,CAAA"}
@@ -0,0 +1,120 @@
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: { h: { $overlaps: ["23", "32"] } }
12
+ }
13
+ },
14
+ items3: "*"
15
+ };
16
+ const p2 = "*";
17
+ const p11 = {
18
+ items: {
19
+ delete: "*",
20
+ select: {
21
+ fields: { h: 1, id: 1 },
22
+ forcedFilter: { h: { $overlaps: ["23", "32"] } }
23
+ }
24
+ },
25
+ items3: "*"
26
+ };
27
+ const p12 = "*";
28
+ const res = {
29
+ shapes: "*",
30
+ items: "*",
31
+ items2: "*",
32
+ items3: "*",
33
+ v_items: "*",
34
+ various: "*",
35
+ tr1: "*",
36
+ tr2: "*",
37
+ planes: {
38
+ select: "*",
39
+ update: "*",
40
+ insert: "*",
41
+ delete: "*",
42
+ sync: {
43
+ id_fields: ["id"],
44
+ synced_field: "last_updated"
45
+ }
46
+ },
47
+ items4: {
48
+ select: Math.random() ? "*" : {
49
+ fields: { name: 0 },
50
+ forcedFilter: { name: "abc" }
51
+ },
52
+ insert: "*",
53
+ update: "*",
54
+ delete: "*"
55
+ },
56
+ items4_pub: "*",
57
+ "*": {
58
+ select: { fields: { "*": 0 } },
59
+ insert: "*",
60
+ update: "*",
61
+ },
62
+ [`"*"`]: {
63
+ select: { fields: { [`"*"`]: 0 } },
64
+ insert: "*",
65
+ update: "*",
66
+ },
67
+ obj_table: "*",
68
+ media: "*",
69
+ items_with_one_media: "*",
70
+ items_with_media: "*",
71
+ prostgles_lookup_media_items_with_one_media: "*",
72
+ prostgles_lookup_media_items_with_media: "*",
73
+ insert_rules: {
74
+ insert: {
75
+ fields: "*",
76
+ returningFields: { name: 1 },
77
+ validate: async (row) => {
78
+ if (row.name === "a")
79
+ row.name = "b";
80
+ return row;
81
+ }
82
+ }
83
+ },
84
+ uuid_text: {
85
+ insert: {
86
+ fields: "*",
87
+ forcedData: {
88
+ id: 'c81089e1-c4c1-45d7-a73d-e2d613cb7c3e'
89
+ }
90
+ },
91
+ update: {
92
+ fields: [],
93
+ dynamicFields: [{
94
+ fields: { id: 1 },
95
+ filter: {
96
+ id: 'c81089e1-c4c1-45d7-a73d-e2d613cb7c3e'
97
+ }
98
+ }]
99
+ }
100
+ }
101
+ };
102
+ const res2 = res;
103
+ const res3 = {
104
+ items: {
105
+ select: {
106
+ fields: {
107
+ h: 1
108
+ },
109
+ forcedFilter: {
110
+ // "h.$eq": ["2"]
111
+ $and: [
112
+ { "h.$eq": ["2"] }
113
+ ]
114
+ }
115
+ }
116
+ }
117
+ };
118
+ });
119
+ };
120
+ exports.testPublishTypes = testPublishTypes;
@@ -0,0 +1,129 @@
1
+
2
+ import { DBSchemaGenerated } from "./DBoGenerated";
3
+
4
+ import { PublishFullyTyped } from "../../dist/DBSchemaBuilder";
5
+ import { FullFilter } from "prostgles-types";
6
+ export const testPublishTypes = () => {
7
+ (() => {
8
+ const p1: PublishFullyTyped<DBSchemaGenerated> = {
9
+ items: {
10
+ delete: "*",
11
+ select: {
12
+ fields: { h: 1, id: 1 },
13
+ forcedFilter: { h: { $overlaps: ["23", "32"]} }
14
+ }
15
+ },
16
+ items3: "*"
17
+ }
18
+ const p2: PublishFullyTyped<DBSchemaGenerated> = "*"
19
+
20
+ const p11: PublishFullyTyped = {
21
+ items: {
22
+ delete: "*",
23
+ select: {
24
+ fields: { h: 1, id: 1 },
25
+ forcedFilter: { h: { $overlaps: ["23", "32"]} }
26
+ }
27
+ },
28
+ items3: "*"
29
+ };
30
+
31
+ const p12: PublishFullyTyped = "*";
32
+
33
+
34
+
35
+ const res: PublishFullyTyped = {
36
+ shapes: "*",
37
+ items: "*",
38
+ items2: "*",
39
+ items3: "*",
40
+ v_items: "*",
41
+ various: "*",
42
+ tr1: "*",
43
+ tr2: "*",
44
+ planes: {
45
+ select: "*",
46
+ update: "*",
47
+ insert: "*",
48
+ delete: "*",
49
+ sync: {
50
+ id_fields: ["id"],
51
+ synced_field: "last_updated"
52
+ }
53
+ },
54
+
55
+ items4: {
56
+ select: Math.random()? "*" : {
57
+ fields: { name: 0 },
58
+ forcedFilter: { name: "abc" }
59
+ },
60
+ insert: "*",
61
+ update: "*",
62
+ delete: "*"
63
+ },
64
+
65
+ items4_pub: "*",
66
+ "*": {
67
+ select: { fields: { "*": 0 }},
68
+ insert: "*",
69
+ update: "*",
70
+ },
71
+ [`"*"`]: {
72
+ select: { fields: { [`"*"`]: 0 }},
73
+ insert: "*",
74
+ update: "*",
75
+ },
76
+ obj_table: "*",
77
+ media: "*",
78
+ items_with_one_media: "*",
79
+ items_with_media: "*",
80
+ prostgles_lookup_media_items_with_one_media: "*",
81
+ prostgles_lookup_media_items_with_media: "*",
82
+ insert_rules: {
83
+ insert: {
84
+ fields: "*",
85
+ returningFields: { name: 1 },
86
+ validate: async (row) => {
87
+ if(row.name === "a") row.name = "b"
88
+ return row
89
+ }
90
+ }
91
+ },
92
+ uuid_text: {
93
+ insert: {
94
+ fields: "*",
95
+ forcedData: {
96
+ id: 'c81089e1-c4c1-45d7-a73d-e2d613cb7c3e'
97
+ }
98
+ },
99
+ update: {
100
+ fields: [],
101
+ dynamicFields: [{
102
+ fields: { id: 1 },
103
+ filter: {
104
+ id: 'c81089e1-c4c1-45d7-a73d-e2d613cb7c3e'
105
+ }
106
+ }]
107
+ }
108
+ }
109
+ };
110
+
111
+ const res2: PublishFullyTyped<DBSchemaGenerated> = res;
112
+ const res3: PublishFullyTyped<DBSchemaGenerated> = {
113
+ items: {
114
+ select: {
115
+ fields: {
116
+ h: 1
117
+ },
118
+ forcedFilter: {
119
+ // "h.$eq": ["2"]
120
+ $and: [
121
+ { "h.$eq": ["2"] }
122
+ ]
123
+ }
124
+ }
125
+ }
126
+ };
127
+
128
+ })
129
+ }
@@ -1,17 +1,16 @@
1
1
  {
2
2
  "files": ["./index.ts"],
3
3
  "compilerOptions": {
4
- // "outDir": "dist",
5
4
  "target": "es2020",
6
5
  "lib": [ "es2020" ],
7
6
  "esModuleInterop" : true,
8
7
  "allowSyntheticDefaultImports": true,
8
+ "resolveJsonModule": true,
9
9
  "allowJs": true,
10
10
  "module": "commonjs",
11
- // "sourceMap": true,
12
- // "rootDir": ".",
13
- // "declaration": true,
14
- // "declarationMap": true,
11
+ "moduleResolution": "node",
12
+ "declaration": true,
13
+ "declarationMap": true,
15
14
  "keyofStringsOnly": true
16
15
  },
17
16
  "exclude": [
@@ -0,0 +1,2 @@
1
+ export default function f(db: any): Promise<void>;
2
+ //# sourceMappingURL=server_only_queries.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server_only_queries.d.ts","sourceRoot":"","sources":["server_only_queries.ts"],"names":[],"mappings":"AAAA,wBAA8B,CAAC,CAAC,EAAE,EAAE,GAAG,iBActC"}