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.
- package/dist/DboBuilder/getColumns.d.ts.map +1 -1
- package/dist/DboBuilder/getColumns.js +1 -13
- package/dist/DboBuilder/getColumns.js.map +1 -1
- package/dist/DboBuilder/runSQL.js +2 -2
- package/dist/DboBuilder/runSQL.js.map +1 -1
- package/dist/Prostgles.d.ts.map +1 -1
- package/dist/PubSubManager/PubSubManager.d.ts +1 -1
- package/dist/PubSubManager/PubSubManager.d.ts.map +1 -1
- package/dist/PubSubManager/PubSubManager.js +14 -1
- package/dist/PubSubManager/PubSubManager.js.map +1 -1
- package/lib/DboBuilder/getColumns.ts +1 -18
- package/lib/DboBuilder/runSQL.ts +2 -2
- package/lib/Prostgles.ts +3 -3
- package/lib/PubSubManager/PubSubManager.ts +14 -1
- package/package.json +2 -2
- package/tests/client/PID.txt +1 -1
- package/tests/client/package.json +2 -2
- package/tests/client/tsconfig.json +2 -1
- package/tests/isomorphic_queries.ts +11 -9
- package/tests/server/DBoGenerated.d.ts +1 -1
- package/tests/server/dboTypeCheck.ts +3 -3
- package/tests/server/index.ts +7 -6
- package/tests/server/package-lock.json +1 -1
- package/tests/server/package.json +3 -3
- package/tests/server/publishTypeCheck.ts +1 -1
- package/tests/server/tsconfig.json +3 -2
- package/tests/test.sh +2 -0
- package/dist/FileManager.d.ts +0 -143
- package/dist/FileManager.d.ts.map +0 -1
- package/dist/FileManager.js +0 -646
- package/dist/FileManager.js.map +0 -1
- package/dist/TableConfig.d.ts +0 -267
- package/dist/TableConfig.d.ts.map +0 -1
- package/dist/TableConfig.js +0 -463
- package/dist/TableConfig.js.map +0 -1
- package/dist/validation.d.ts +0 -126
- package/dist/validation.d.ts.map +0 -1
- package/dist/validation.js +0 -405
- package/dist/validation.js.map +0 -1
- package/lib/AuthHandler.d.ts +0 -187
- package/lib/AuthHandler.d.ts.map +0 -1
- package/lib/AuthHandler.js +0 -478
- package/lib/DBEventsManager.d.ts +0 -38
- package/lib/DBEventsManager.d.ts.map +0 -1
- package/lib/DBEventsManager.js +0 -140
- package/lib/DBSchemaBuilder.d.ts +0 -13
- package/lib/DBSchemaBuilder.d.ts.map +0 -1
- package/lib/DBSchemaBuilder.js +0 -145
- package/lib/DboBuilder/QueryBuilder/Functions.d.ts +0 -64
- package/lib/DboBuilder/QueryBuilder/Functions.d.ts.map +0 -1
- package/lib/DboBuilder/QueryBuilder/Functions.js +0 -984
- package/lib/DboBuilder/QueryBuilder/QueryBuilder.d.ts +0 -73
- package/lib/DboBuilder/QueryBuilder/QueryBuilder.d.ts.map +0 -1
- package/lib/DboBuilder/QueryBuilder/QueryBuilder.js +0 -335
- package/lib/DboBuilder/QueryBuilder/makeSelectQuery.d.ts +0 -8
- package/lib/DboBuilder/QueryBuilder/makeSelectQuery.d.ts.map +0 -1
- package/lib/DboBuilder/QueryBuilder/makeSelectQuery.js +0 -227
- package/lib/DboBuilder/TableHandler.d.ts +0 -37
- package/lib/DboBuilder/TableHandler.d.ts.map +0 -1
- package/lib/DboBuilder/TableHandler.js +0 -213
- package/lib/DboBuilder/ViewHandler.d.ts +0 -119
- package/lib/DboBuilder/ViewHandler.d.ts.map +0 -1
- package/lib/DboBuilder/ViewHandler.js +0 -1023
- package/lib/DboBuilder/delete.d.ts +0 -6
- package/lib/DboBuilder/delete.d.ts.map +0 -1
- package/lib/DboBuilder/delete.js +0 -128
- package/lib/DboBuilder/find.d.ts +0 -8
- package/lib/DboBuilder/find.d.ts.map +0 -1
- package/lib/DboBuilder/find.js +0 -91
- package/lib/DboBuilder/getColumns.d.ts +0 -12
- package/lib/DboBuilder/getColumns.d.ts.map +0 -1
- package/lib/DboBuilder/getColumns.js +0 -92
- package/lib/DboBuilder/getCondition.d.ts +0 -22
- package/lib/DboBuilder/getCondition.d.ts.map +0 -1
- package/lib/DboBuilder/getCondition.js +0 -236
- package/lib/DboBuilder/getSubscribeRelatedTables.d.ts +0 -20
- package/lib/DboBuilder/getSubscribeRelatedTables.d.ts.map +0 -1
- package/lib/DboBuilder/getSubscribeRelatedTables.js +0 -152
- package/lib/DboBuilder/getTablesForSchemaPostgresSQL.d.ts +0 -3
- package/lib/DboBuilder/getTablesForSchemaPostgresSQL.d.ts.map +0 -1
- package/lib/DboBuilder/getTablesForSchemaPostgresSQL.js +0 -207
- package/lib/DboBuilder/insert.d.ts +0 -6
- package/lib/DboBuilder/insert.d.ts.map +0 -1
- package/lib/DboBuilder/insert.js +0 -180
- package/lib/DboBuilder/insertDataParse.d.ts +0 -12
- package/lib/DboBuilder/insertDataParse.d.ts.map +0 -1
- package/lib/DboBuilder/insertDataParse.js +0 -253
- package/lib/DboBuilder/parseUpdateRules.d.ts +0 -18
- package/lib/DboBuilder/parseUpdateRules.d.ts.map +0 -1
- package/lib/DboBuilder/parseUpdateRules.js +0 -123
- package/lib/DboBuilder/runSQL.d.ts +0 -7
- package/lib/DboBuilder/runSQL.d.ts.map +0 -1
- package/lib/DboBuilder/runSQL.js +0 -135
- package/lib/DboBuilder/subscribe.d.ts +0 -20
- package/lib/DboBuilder/subscribe.d.ts.map +0 -1
- package/lib/DboBuilder/subscribe.js +0 -90
- package/lib/DboBuilder/update.d.ts +0 -6
- package/lib/DboBuilder/update.d.ts.map +0 -1
- package/lib/DboBuilder/update.js +0 -151
- package/lib/DboBuilder/uploadFile.d.ts +0 -7
- package/lib/DboBuilder/uploadFile.d.ts.map +0 -1
- package/lib/DboBuilder/uploadFile.js +0 -53
- package/lib/DboBuilder.d.ts +0 -306
- package/lib/DboBuilder.d.ts.map +0 -1
- package/lib/DboBuilder.js +0 -745
- package/lib/Event_Trigger_Tags.d.ts +0 -4
- package/lib/Event_Trigger_Tags.d.ts.map +0 -1
- package/lib/Event_Trigger_Tags.js +0 -116
- package/lib/FileManager/FileManager.d.ts +0 -135
- package/lib/FileManager/FileManager.d.ts.map +0 -1
- package/lib/FileManager/FileManager.js +0 -303
- package/lib/FileManager/initFileManager.d.ts +0 -4
- package/lib/FileManager/initFileManager.d.ts.map +0 -1
- package/lib/FileManager/initFileManager.js +0 -231
- package/lib/FileManager/parseFile.d.ts +0 -15
- package/lib/FileManager/parseFile.d.ts.map +0 -1
- package/lib/FileManager/parseFile.js +0 -58
- package/lib/FileManager/upload.d.ts +0 -6
- package/lib/FileManager/upload.d.ts.map +0 -1
- package/lib/FileManager/upload.js +0 -98
- package/lib/FileManager/uploadStream.d.ts +0 -5
- package/lib/FileManager/uploadStream.d.ts.map +0 -1
- package/lib/FileManager/uploadStream.js +0 -92
- package/lib/Filtering.d.ts +0 -15
- package/lib/Filtering.d.ts.map +0 -1
- package/lib/Filtering.js +0 -336
- package/lib/JSONBValidation/validate_jsonb_schema_sql.d.ts +0 -4
- package/lib/JSONBValidation/validate_jsonb_schema_sql.d.ts.map +0 -1
- package/lib/JSONBValidation/validate_jsonb_schema_sql.js +0 -500
- package/lib/JSONBValidation/validation.d.ts +0 -9
- package/lib/JSONBValidation/validation.d.ts.map +0 -1
- package/lib/JSONBValidation/validation.js +0 -131
- package/lib/PostgresNotifListenManager.d.ts +0 -28
- package/lib/PostgresNotifListenManager.d.ts.map +0 -1
- package/lib/PostgresNotifListenManager.js +0 -134
- package/lib/Prostgles.d.ts +0 -289
- package/lib/Prostgles.d.ts.map +0 -1
- package/lib/Prostgles.js +0 -685
- package/lib/PubSubManager/PubSubManager.d.ts +0 -175
- package/lib/PubSubManager/PubSubManager.d.ts.map +0 -1
- package/lib/PubSubManager/PubSubManager.js +0 -452
- package/lib/PubSubManager/addSub.d.ts +0 -8
- package/lib/PubSubManager/addSub.d.ts.map +0 -1
- package/lib/PubSubManager/addSub.js +0 -166
- package/lib/PubSubManager/addSync.d.ts +0 -8
- package/lib/PubSubManager/addSync.d.ts.map +0 -1
- package/lib/PubSubManager/addSync.js +0 -109
- package/lib/PubSubManager/getInitQuery.d.ts +0 -9
- package/lib/PubSubManager/getInitQuery.d.ts.map +0 -1
- package/lib/PubSubManager/getInitQuery.js +0 -552
- package/lib/PubSubManager/initPubSubManager.d.ts +0 -3
- package/lib/PubSubManager/initPubSubManager.d.ts.map +0 -1
- package/lib/PubSubManager/initPubSubManager.js +0 -116
- package/lib/PubSubManager/notifListener.d.ts +0 -5
- package/lib/PubSubManager/notifListener.d.ts.map +0 -1
- package/lib/PubSubManager/notifListener.js +0 -100
- package/lib/PubSubManager/pushSubData.d.ts +0 -3
- package/lib/PubSubManager/pushSubData.d.ts.map +0 -1
- package/lib/PubSubManager/pushSubData.js +0 -51
- package/lib/PublishParser.d.ts +0 -284
- package/lib/PublishParser.d.ts.map +0 -1
- package/lib/PublishParser.js +0 -421
- package/lib/SchemaWatch.d.ts +0 -13
- package/lib/SchemaWatch.d.ts.map +0 -1
- package/lib/SchemaWatch.js +0 -35
- package/lib/SyncReplication.d.ts +0 -34
- package/lib/SyncReplication.d.ts.map +0 -1
- package/lib/SyncReplication.js +0 -412
- package/lib/TableConfig/TableConfig.d.ts +0 -284
- package/lib/TableConfig/TableConfig.d.ts.map +0 -1
- package/lib/TableConfig/TableConfig.js +0 -437
- package/lib/TableConfig/getColumnDefinitionQuery.d.ts +0 -27
- package/lib/TableConfig/getColumnDefinitionQuery.d.ts.map +0 -1
- package/lib/TableConfig/getColumnDefinitionQuery.js +0 -87
- package/lib/TableConfig/getConstraintDefinitionQueries.d.ts +0 -34
- package/lib/TableConfig/getConstraintDefinitionQueries.d.ts.map +0 -1
- package/lib/TableConfig/getConstraintDefinitionQueries.js +0 -65
- package/lib/TableConfig/getFutureTableSchema.d.ts +0 -15
- package/lib/TableConfig/getFutureTableSchema.d.ts.map +0 -1
- package/lib/TableConfig/getFutureTableSchema.js +0 -43
- package/lib/TableConfig/getTableColumnQueries.d.ts +0 -16
- package/lib/TableConfig/getTableColumnQueries.d.ts.map +0 -1
- package/lib/TableConfig/getTableColumnQueries.js +0 -107
- package/lib/index.d.ts +0 -5
- package/lib/index.d.ts.map +0 -1
- package/lib/index.js +0 -7
- package/lib/shortestPath.d.ts +0 -10
- package/lib/shortestPath.d.ts.map +0 -1
- package/lib/shortestPath.js +0 -111
- package/lib/utils.d.ts +0 -3
- package/lib/utils.d.ts.map +0 -1
- package/lib/utils.js +0 -12
- package/tests/client/index.d.ts +0 -2
- package/tests/client/index.d.ts.map +0 -1
- package/tests/client/index.js +0 -80
- package/tests/client/index.js.map +0 -1
- package/tests/client_only_queries.d.ts +0 -4
- package/tests/client_only_queries.d.ts.map +0 -1
- package/tests/client_only_queries.js +0 -282
- package/tests/config_test/DBoGenerated.d.ts +0 -388
- package/tests/config_test/index.js +0 -174
- package/tests/config_test/index.js.map +0 -1
- package/tests/isomorphic_queries.d.ts +0 -9
- package/tests/isomorphic_queries.d.ts.map +0 -1
- package/tests/isomorphic_queries.js +0 -773
- package/tests/manual_test/DBoGenerated.d.ts +0 -398
- package/tests/manual_test/index.d.ts +0 -2
- package/tests/manual_test/index.d.ts.map +0 -1
- package/tests/manual_test/index.js +0 -65
- package/tests/server/dboTypeCheck.d.ts +0 -2
- package/tests/server/dboTypeCheck.d.ts.map +0 -1
- package/tests/server/dboTypeCheck.js +0 -27
- package/tests/server/index.d.ts +0 -2
- package/tests/server/index.d.ts.map +0 -1
- package/tests/server/index.js +0 -507
- package/tests/server/publishTypeCheck.d.ts +0 -2
- package/tests/server/publishTypeCheck.d.ts.map +0 -1
- package/tests/server/publishTypeCheck.js +0 -130
- package/tests/server_only_queries.d.ts +0 -2
- package/tests/server_only_queries.d.ts.map +0 -1
- package/tests/server_only_queries.js +0 -19
|
@@ -1,282 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const assert_1 = require("assert");
|
|
4
|
-
// import { DBSchemaTable, isDefined } from "./client/node_modules/prostgles-types/dist";
|
|
5
|
-
const prostgles_types_1 = require("prostgles-types");
|
|
6
|
-
const isomorphic_queries_1 = require("./isomorphic_queries");
|
|
7
|
-
async function client_only(db, auth, log, methods, tableSchema) {
|
|
8
|
-
/**
|
|
9
|
-
* onReady(dbo, methodsObj, tableSchema, _auth)
|
|
10
|
-
* tableSchema must contan an array of all tables and their columns that have getInfo and getColumns allowed
|
|
11
|
-
*/
|
|
12
|
-
await (0, isomorphic_queries_1.tryRun)("Check tableSchema", async () => {
|
|
13
|
-
const dbTables = Object.keys(db).map(k => {
|
|
14
|
-
const h = db[k];
|
|
15
|
-
return !!(h.getColumns && h.getInfo) ? k : undefined;
|
|
16
|
-
}).filter(prostgles_types_1.isDefined);
|
|
17
|
-
const missingTbl = dbTables.find(t => !tableSchema.some(st => st.name === t));
|
|
18
|
-
if (missingTbl)
|
|
19
|
-
throw `${missingTbl} is missing from tableSchema: ${JSON.stringify(tableSchema)}`;
|
|
20
|
-
const missingscTbl = tableSchema.find(t => !dbTables.includes(t.name));
|
|
21
|
-
if (missingscTbl)
|
|
22
|
-
throw `${missingscTbl} is missing from db`;
|
|
23
|
-
await Promise.all(tableSchema.map(async (tbl) => {
|
|
24
|
-
const cols = await db[tbl.name]?.getColumns();
|
|
25
|
-
const info = await db[tbl.name]?.getInfo();
|
|
26
|
-
assert_1.strict.deepStrictEqual(tbl.columns, cols);
|
|
27
|
-
assert_1.strict.deepStrictEqual(tbl.info, info);
|
|
28
|
-
}));
|
|
29
|
-
});
|
|
30
|
-
const testRealtime = () => {
|
|
31
|
-
return new Promise(async (resolve, reject) => {
|
|
32
|
-
try {
|
|
33
|
-
/* METHODS */
|
|
34
|
-
const t222 = await methods.get();
|
|
35
|
-
assert_1.strict.equal(t222, 222, "methods.get() failed");
|
|
36
|
-
/* RAWSQL */
|
|
37
|
-
await (0, isomorphic_queries_1.tryRun)("SQL Full result", async () => {
|
|
38
|
-
const sqlStatement = await db.sql("SELECT $1", [1], { returnType: "statement" });
|
|
39
|
-
assert_1.strict.equal(sqlStatement, "SELECT 1", "db.sql statement query failed");
|
|
40
|
-
await db.sql("SELECT 1 -- ${param}", {}, { hasParams: false });
|
|
41
|
-
const arrayMode = await db.sql("SELECT 1 as a, 2 as a", undefined, { returnType: "arrayMode" });
|
|
42
|
-
assert_1.strict.equal(arrayMode.rows?.[0].join("."), "1.2", "db.sql statement arrayMode failed");
|
|
43
|
-
assert_1.strict.equal(arrayMode.fields?.map(f => f.name).join("."), "a.a", "db.sql statement arrayMode failed");
|
|
44
|
-
const select1 = await db.sql("SELECT $1 as col1", [1], { returnType: "rows" });
|
|
45
|
-
assert_1.strict.deepStrictEqual(select1[0], { col1: 1 }, "db.sql justRows query failed");
|
|
46
|
-
const fullResult = await db.sql("SELECT $1 as col1", [1]);
|
|
47
|
-
// console.log(fullResult)
|
|
48
|
-
assert_1.strict.deepStrictEqual(fullResult.rows[0], { col1: 1 }, "db.sql query failed");
|
|
49
|
-
assert_1.strict.deepStrictEqual(fullResult.fields, [{
|
|
50
|
-
name: 'col1',
|
|
51
|
-
tableID: 0,
|
|
52
|
-
columnID: 0,
|
|
53
|
-
dataTypeID: 23,
|
|
54
|
-
dataTypeSize: 4,
|
|
55
|
-
dataTypeModifier: -1,
|
|
56
|
-
format: 'text',
|
|
57
|
-
dataType: 'int4',
|
|
58
|
-
udt_name: 'int4',
|
|
59
|
-
tsDataType: "number"
|
|
60
|
-
}], "db.sql query failed");
|
|
61
|
-
});
|
|
62
|
-
await (0, isomorphic_queries_1.tryRunP)("sql LISTEN NOTIFY events", async (resolve, reject) => {
|
|
63
|
-
try {
|
|
64
|
-
const sub = await db.sql("LISTEN chnl ", {}, { allowListen: true, returnType: "arrayMode" });
|
|
65
|
-
if (!("addListener" in sub)) {
|
|
66
|
-
reject("addListener missing");
|
|
67
|
-
return;
|
|
68
|
-
}
|
|
69
|
-
sub.addListener(notif => {
|
|
70
|
-
const expected = "hello";
|
|
71
|
-
if (notif === expected)
|
|
72
|
-
resolve(true);
|
|
73
|
-
else
|
|
74
|
-
reject(`Notif value is not what we expect: ${JSON.stringify(notif)} is not ${JSON.stringify(expected)} (expected) `);
|
|
75
|
-
});
|
|
76
|
-
db.sql("NOTIFY chnl , 'hello'; ");
|
|
77
|
-
}
|
|
78
|
-
catch (e) {
|
|
79
|
-
reject(e);
|
|
80
|
-
}
|
|
81
|
-
});
|
|
82
|
-
await (0, isomorphic_queries_1.tryRunP)("sql NOTICE events", async (resolve, reject) => {
|
|
83
|
-
const sub = await db.sql("", {}, { returnType: "noticeSubscription" });
|
|
84
|
-
sub.addListener(notice => {
|
|
85
|
-
const expected = "hello2";
|
|
86
|
-
if (notice.message === expected)
|
|
87
|
-
resolve(true);
|
|
88
|
-
else
|
|
89
|
-
reject(`Notice value is not what we expect: ${JSON.stringify(notice)} is not ${JSON.stringify(expected)} (expected) `);
|
|
90
|
-
});
|
|
91
|
-
db.sql(`
|
|
92
|
-
DO $$
|
|
93
|
-
BEGIN
|
|
94
|
-
|
|
95
|
-
RAISE NOTICE 'hello2';
|
|
96
|
-
|
|
97
|
-
END $$;
|
|
98
|
-
`);
|
|
99
|
-
}, { log });
|
|
100
|
-
/* REPLICATION */
|
|
101
|
-
log("Started testRealtime");
|
|
102
|
-
const start = Date.now();
|
|
103
|
-
await db.planes.delete();
|
|
104
|
-
let inserts = new Array(100).fill(null).map((d, i) => ({ id: i, flight_number: `FN${i}`, x: Math.random(), y: i }));
|
|
105
|
-
await db.planes.insert(inserts);
|
|
106
|
-
const CLOCK_DRIFT = 2000;
|
|
107
|
-
if ((await db.planes.count()) !== 100)
|
|
108
|
-
throw "Not 100 planes";
|
|
109
|
-
/**
|
|
110
|
-
* Two listeners are added at the same time to dbo.planes (which has 100 records):
|
|
111
|
-
* subscribe({ x: 10 }
|
|
112
|
-
* sync({}
|
|
113
|
-
*
|
|
114
|
-
* Then sync starts updating x to 10 for each record
|
|
115
|
-
* subscribe waits for 100 records of x=10 and then updates everything to x=20
|
|
116
|
-
* sync waits for 100 records of x=20 and finishes the test
|
|
117
|
-
*/
|
|
118
|
-
/* After all sync records are updated to x10 here we'll update them to x20 */
|
|
119
|
-
const sP = await db.planes.subscribe({ x: 10 }, {}, async (planes) => {
|
|
120
|
-
const p10 = planes.filter(p => p.x == 10);
|
|
121
|
-
log(Date.now() + ": sub stats: x10 -> " + p10.length + " x20 ->" + planes.filter(p => p.x == 20).length);
|
|
122
|
-
if (p10.length === 100) {
|
|
123
|
-
/** 2 second delay to account for client-server clock drift */
|
|
124
|
-
setTimeout(async () => {
|
|
125
|
-
// db.planes.findOne({}, { select: { last_updated: "$max"}}).then(log);
|
|
126
|
-
await sP.unsubscribe();
|
|
127
|
-
log(Date.now() + ": sub: db.planes.update({}, { x: 20, last_updated });");
|
|
128
|
-
const dLastUpdated = Math.max(...p10.map(v => +v.last_updated));
|
|
129
|
-
const last_updated = Date.now();
|
|
130
|
-
if (dLastUpdated >= last_updated)
|
|
131
|
-
throw "dLastUpdated >= last_updated should not happen";
|
|
132
|
-
await db.planes.update({}, { x: 20, last_updated });
|
|
133
|
-
log(Date.now() + ": sub: Updated to x20", await db.planes.count({ x: 20 }));
|
|
134
|
-
// db.planes.findOne({}, { select: { last_updated: "$max"}}).then(log)
|
|
135
|
-
}, CLOCK_DRIFT);
|
|
136
|
-
}
|
|
137
|
-
});
|
|
138
|
-
let updt = 0;
|
|
139
|
-
const sync = await db.planes.sync({}, { handlesOnData: true, patchText: true, }, (planes, deltas) => {
|
|
140
|
-
const x20 = planes.filter(p => p.x == 20).length;
|
|
141
|
-
const x10 = planes.filter(p => p.x == 10);
|
|
142
|
-
log(Date.now() + `: sync stats: x10 -> ${x10.length} x20 -> ${x20}`);
|
|
143
|
-
let update = false;
|
|
144
|
-
planes.map(p => {
|
|
145
|
-
// if(p.y === 1) window.up = p;
|
|
146
|
-
if (typeof p.x !== "number")
|
|
147
|
-
log(typeof p.x);
|
|
148
|
-
if (+p.x < 10) {
|
|
149
|
-
updt++;
|
|
150
|
-
update = true;
|
|
151
|
-
p.$update({ x: 10 });
|
|
152
|
-
log(Date.now() + `: sync: p.$update({ x: 10 }); (id: ${p.id})`);
|
|
153
|
-
}
|
|
154
|
-
});
|
|
155
|
-
// if(update) log("$update({ x: 10 })", updt)
|
|
156
|
-
if (x20 === 100) {
|
|
157
|
-
// log(22)
|
|
158
|
-
// console.timeEnd("test")
|
|
159
|
-
log(Date.now() + ": sync end: Finished replication test. Inserting 100 rows then updating two times took: " + (Date.now() - start - CLOCK_DRIFT) + "ms");
|
|
160
|
-
resolve(true);
|
|
161
|
-
}
|
|
162
|
-
});
|
|
163
|
-
const msLimit = 20000;
|
|
164
|
-
setTimeout(async () => {
|
|
165
|
-
const dbCounts = {
|
|
166
|
-
x10: await db.planes.count({ x: 10 }),
|
|
167
|
-
x20: await db.planes.count({ x: 20 }),
|
|
168
|
-
latest: await db.planes.findOne({}, { orderBy: { last_updated: -1 } }),
|
|
169
|
-
};
|
|
170
|
-
const syncCounts = {
|
|
171
|
-
x10: sync?.getItems().filter(d => d.x == 10).length,
|
|
172
|
-
x20: sync?.getItems().filter(d => d.x == 20).length,
|
|
173
|
-
latest: sync?.getItems()?.sort((a, b) => +b.last_updated - +a.last_updated)[0],
|
|
174
|
-
};
|
|
175
|
-
const msg = "Replication test failed due to taking longer than " + msLimit + "ms \n " + JSON.stringify({ dbCounts, syncCounts }, null, 2);
|
|
176
|
-
log(msg);
|
|
177
|
-
reject(msg);
|
|
178
|
-
}, msLimit);
|
|
179
|
-
}
|
|
180
|
-
catch (err) {
|
|
181
|
-
log(JSON.stringify(err));
|
|
182
|
-
await tout(1000);
|
|
183
|
-
throw err;
|
|
184
|
-
}
|
|
185
|
-
});
|
|
186
|
-
};
|
|
187
|
-
/* TODO: SECURITY */
|
|
188
|
-
log("auth.user:", auth.user);
|
|
189
|
-
if (!auth.user) {
|
|
190
|
-
log("Checking public data");
|
|
191
|
-
// Public data
|
|
192
|
-
await (0, isomorphic_queries_1.tryRun)("Security rules example", async () => {
|
|
193
|
-
const vQ = await db.items4.find({}, { select: { added: 0 } });
|
|
194
|
-
assert_1.strict.deepStrictEqual(vQ, [
|
|
195
|
-
{ id: 1, public: 'public data' },
|
|
196
|
-
{ id: 2, public: 'public data' }
|
|
197
|
-
]);
|
|
198
|
-
const cols = await db.insert_rules.getColumns();
|
|
199
|
-
assert_1.strict.equal(cols.filter(({ insert, update: u, select: s, delete: d }) => insert && !u && s && !d).length, 3, "Validated getColumns failed");
|
|
200
|
-
/* Validated insert */
|
|
201
|
-
const expectB = await db.insert_rules.insert({ name: "a" }, { returning: "*" });
|
|
202
|
-
assert_1.strict.deepStrictEqual(expectB, { name: "b" }, "Validated insert failed");
|
|
203
|
-
/* forced UUID insert */
|
|
204
|
-
const row = await db.uuid_text.insert({}, { returning: "*" });
|
|
205
|
-
assert_1.strict.equal(row.id, 'c81089e1-c4c1-45d7-a73d-e2d613cb7c3e');
|
|
206
|
-
try {
|
|
207
|
-
await db.insert_rules.insert({ name: "notfail" }, { returning: "*" });
|
|
208
|
-
await db.insert_rules.insert({ name: "fail" }, { returning: "*" });
|
|
209
|
-
}
|
|
210
|
-
catch (err) {
|
|
211
|
-
}
|
|
212
|
-
assert_1.strict.equal(0, +(await db.insert_rules.count({ name: "fail" })), "postValidation failed");
|
|
213
|
-
assert_1.strict.equal(1, +(await db.insert_rules.count({ name: "notfail" })), "postValidation failed");
|
|
214
|
-
});
|
|
215
|
-
// await tryRun("Duplicate subscription", async () => {
|
|
216
|
-
// return new Promise(async (resolve, reject) => {
|
|
217
|
-
// let data1 = [], data2 = [], cntr = 0;
|
|
218
|
-
// function check(){
|
|
219
|
-
// cntr++;
|
|
220
|
-
// if(cntr === 2){
|
|
221
|
-
// assert.equal(data1.length, data2.length);
|
|
222
|
-
// console.error(data1, data2)
|
|
223
|
-
// reject( data1);
|
|
224
|
-
// resolve(data1)
|
|
225
|
-
// }
|
|
226
|
-
// }
|
|
227
|
-
// const sub1 = await db.planes.subscribe({}, {}, data => {
|
|
228
|
-
// data1 = data;
|
|
229
|
-
// check()
|
|
230
|
-
// });
|
|
231
|
-
// const sub2 = await db.planes.subscribe({}, {}, data => {
|
|
232
|
-
// data2 = data;
|
|
233
|
-
// check()
|
|
234
|
-
// });
|
|
235
|
-
// })
|
|
236
|
-
// })
|
|
237
|
-
await testRealtime();
|
|
238
|
-
// auth.login({ username: "john", password: "secret" });
|
|
239
|
-
// await tout();
|
|
240
|
-
}
|
|
241
|
-
else {
|
|
242
|
-
log("Checking User data");
|
|
243
|
-
// User data
|
|
244
|
-
await (0, isomorphic_queries_1.tryRun)("Security rules example", async () => {
|
|
245
|
-
const vQ = await db.items4.find();
|
|
246
|
-
assert_1.strict.deepStrictEqual(vQ, [
|
|
247
|
-
{ id: 1, public: 'public data' },
|
|
248
|
-
{ id: 2, public: 'public data' }
|
|
249
|
-
]);
|
|
250
|
-
await db.items4.find({}, { select: { id: 1 }, orderBy: { added: 1 } });
|
|
251
|
-
const dynamicCols = await db.uuid_text.getColumns(undefined, {
|
|
252
|
-
rule: "update",
|
|
253
|
-
filter: {
|
|
254
|
-
id: 'c81089e1-c4c1-45d7-a73d-e2d613cb7c3e'
|
|
255
|
-
},
|
|
256
|
-
data: {
|
|
257
|
-
id: "dwadwa"
|
|
258
|
-
}
|
|
259
|
-
});
|
|
260
|
-
assert_1.strict.equal(dynamicCols.length, 1);
|
|
261
|
-
assert_1.strict.equal(dynamicCols[0].name, "id");
|
|
262
|
-
const defaultCols = await db.uuid_text.getColumns(undefined, {
|
|
263
|
-
rule: "update",
|
|
264
|
-
filter: {
|
|
265
|
-
id: 'not matching'
|
|
266
|
-
},
|
|
267
|
-
data: {
|
|
268
|
-
id: "dwadwa"
|
|
269
|
-
}
|
|
270
|
-
});
|
|
271
|
-
throw defaultCols.map(c => c.name);
|
|
272
|
-
}, log);
|
|
273
|
-
}
|
|
274
|
-
}
|
|
275
|
-
exports.default = client_only;
|
|
276
|
-
const tout = (t = 3000) => {
|
|
277
|
-
return new Promise(async (resolve, reject) => {
|
|
278
|
-
setTimeout(() => {
|
|
279
|
-
resolve(true);
|
|
280
|
-
}, t);
|
|
281
|
-
});
|
|
282
|
-
};
|
|
@@ -1,388 +0,0 @@
|
|
|
1
|
-
/* This file was generated by Prostgles
|
|
2
|
-
*/
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
import { ViewHandler, TableHandler, JoinMaker } from "prostgles-types";
|
|
7
|
-
|
|
8
|
-
export type TxCB = {
|
|
9
|
-
(t: DBObj): (any | void | Promise<(any | void)>)
|
|
10
|
-
};
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
/* SCHEMA DEFINITON. Table names have been altered to work with Typescript */
|
|
14
|
-
export type D_34_42_34 = {
|
|
15
|
-
"\"*\""?: string;
|
|
16
|
-
"id"?: number;
|
|
17
|
-
}
|
|
18
|
-
export type D_42 = {
|
|
19
|
-
"*"?: string;
|
|
20
|
-
"id"?: number;
|
|
21
|
-
}
|
|
22
|
-
export type Ex_j_ins = {
|
|
23
|
-
"added"?: Date;
|
|
24
|
-
"id"?: number;
|
|
25
|
-
"name"?: string;
|
|
26
|
-
"public"?: string;
|
|
27
|
-
}
|
|
28
|
-
export type Insert_rules = {
|
|
29
|
-
"added"?: Date;
|
|
30
|
-
"id"?: number;
|
|
31
|
-
"name"?: string;
|
|
32
|
-
}
|
|
33
|
-
export type Item_children = {
|
|
34
|
-
"id"?: number;
|
|
35
|
-
"item_id"?: number;
|
|
36
|
-
"name"?: string;
|
|
37
|
-
"tst"?: Date;
|
|
38
|
-
}
|
|
39
|
-
export type Items = {
|
|
40
|
-
"h"?: Array<string>;
|
|
41
|
-
"id"?: number;
|
|
42
|
-
"name"?: string;
|
|
43
|
-
}
|
|
44
|
-
export type Items2 = {
|
|
45
|
-
"hh"?: Array<string>;
|
|
46
|
-
"id"?: number;
|
|
47
|
-
"items_id"?: number;
|
|
48
|
-
"name"?: string;
|
|
49
|
-
}
|
|
50
|
-
export type Items3 = {
|
|
51
|
-
"h"?: Array<string>;
|
|
52
|
-
"id"?: number;
|
|
53
|
-
"name"?: string;
|
|
54
|
-
}
|
|
55
|
-
export type Items4 = {
|
|
56
|
-
"added"?: Date;
|
|
57
|
-
"id"?: number;
|
|
58
|
-
"name"?: string;
|
|
59
|
-
"public"?: string;
|
|
60
|
-
}
|
|
61
|
-
export type Items4_pub = {
|
|
62
|
-
"added"?: Date;
|
|
63
|
-
"id"?: number;
|
|
64
|
-
"name"?: string;
|
|
65
|
-
"public"?: string;
|
|
66
|
-
}
|
|
67
|
-
export type Items_m1 = {
|
|
68
|
-
"id"?: number;
|
|
69
|
-
"name"?: string;
|
|
70
|
-
}
|
|
71
|
-
export type Items_with_media = {
|
|
72
|
-
"id"?: number;
|
|
73
|
-
"name"?: string;
|
|
74
|
-
}
|
|
75
|
-
export type Items_with_one_media = {
|
|
76
|
-
"id"?: number;
|
|
77
|
-
"items_m1_id"?: number;
|
|
78
|
-
"name"?: string;
|
|
79
|
-
}
|
|
80
|
-
export type Lookup_col1 = {
|
|
81
|
-
"id"?: string;
|
|
82
|
-
}
|
|
83
|
-
export type Lookup_items_m1_name_type = {
|
|
84
|
-
"en"?: string;
|
|
85
|
-
"id"?: string;
|
|
86
|
-
"ro"?: string;
|
|
87
|
-
}
|
|
88
|
-
export type Lookup_uuid_text_col1 = {
|
|
89
|
-
"id"?: string;
|
|
90
|
-
}
|
|
91
|
-
export type Lookup_uuid_text_col2 = {
|
|
92
|
-
"id"?: string;
|
|
93
|
-
}
|
|
94
|
-
export type Media = {
|
|
95
|
-
"content_type"?: string;
|
|
96
|
-
"description"?: string;
|
|
97
|
-
"etag"?: string;
|
|
98
|
-
"extension"?: string;
|
|
99
|
-
"id"?: string;
|
|
100
|
-
"name"?: string;
|
|
101
|
-
"original_name"?: string;
|
|
102
|
-
"s3_url"?: string;
|
|
103
|
-
"signed_url"?: string;
|
|
104
|
-
"signed_url_expires"?: number;
|
|
105
|
-
"url"?: string;
|
|
106
|
-
}
|
|
107
|
-
export type Planes = {
|
|
108
|
-
"flight_number"?: string;
|
|
109
|
-
"id"?: number;
|
|
110
|
-
"last_updated"?: number;
|
|
111
|
-
"x"?: number;
|
|
112
|
-
"y"?: number;
|
|
113
|
-
}
|
|
114
|
-
export type Prgll = {
|
|
115
|
-
"foreign_id"?: number;
|
|
116
|
-
"media_id"?: string;
|
|
117
|
-
}
|
|
118
|
-
export type Prostgles_lookup_media_items_m1 = {
|
|
119
|
-
"foreign_id"?: number;
|
|
120
|
-
"media_id"?: string;
|
|
121
|
-
}
|
|
122
|
-
export type Prostgles_lookup_media_items_with_media = {
|
|
123
|
-
"foreign_id"?: number;
|
|
124
|
-
"media_id"?: string;
|
|
125
|
-
}
|
|
126
|
-
export type Prostgles_lookup_media_items_with_one_media = {
|
|
127
|
-
"foreign_id"?: number;
|
|
128
|
-
"media_id"?: string;
|
|
129
|
-
}
|
|
130
|
-
export type Prostgles_lookup_media_skills = {
|
|
131
|
-
"foreign_id"?: string;
|
|
132
|
-
"media_id"?: string;
|
|
133
|
-
}
|
|
134
|
-
export type Prostgles_lookup_media_various = {
|
|
135
|
-
"foreign_id"?: number;
|
|
136
|
-
"media_id"?: string;
|
|
137
|
-
}
|
|
138
|
-
export type Skills = {
|
|
139
|
-
"id"?: string;
|
|
140
|
-
"registration_id"?: string;
|
|
141
|
-
"type"?: string;
|
|
142
|
-
"years"?: number;
|
|
143
|
-
}
|
|
144
|
-
export type T = {
|
|
145
|
-
"t"?: string;
|
|
146
|
-
}
|
|
147
|
-
export type Test = {
|
|
148
|
-
"id"?: number;
|
|
149
|
-
"parent"?: number;
|
|
150
|
-
}
|
|
151
|
-
export type Tr1 = {
|
|
152
|
-
"id"?: number;
|
|
153
|
-
"t1"?: string;
|
|
154
|
-
}
|
|
155
|
-
export type Tr2 = {
|
|
156
|
-
"id"?: number;
|
|
157
|
-
"t1"?: string;
|
|
158
|
-
"t2"?: string;
|
|
159
|
-
"tr1_id"?: number;
|
|
160
|
-
}
|
|
161
|
-
export type Tt = {
|
|
162
|
-
"id"?: number;
|
|
163
|
-
"t1"?: string;
|
|
164
|
-
"t2"?: string;
|
|
165
|
-
}
|
|
166
|
-
export type Tt1 = {
|
|
167
|
-
"id"?: number;
|
|
168
|
-
"t1"?: string;
|
|
169
|
-
"t2"?: string;
|
|
170
|
-
}
|
|
171
|
-
export type Tttt = {
|
|
172
|
-
"t"?: string;
|
|
173
|
-
}
|
|
174
|
-
export type Usr = {
|
|
175
|
-
"added"?: Date;
|
|
176
|
-
"age"?: number;
|
|
177
|
-
"id"?: number;
|
|
178
|
-
"is_active"?: boolean;
|
|
179
|
-
"msg"?: string;
|
|
180
|
-
"status"?: string;
|
|
181
|
-
}
|
|
182
|
-
export type Uuid_text = {
|
|
183
|
-
"id"?: string;
|
|
184
|
-
"name"?: string;
|
|
185
|
-
}
|
|
186
|
-
export type V_items = {
|
|
187
|
-
"id"?: number;
|
|
188
|
-
"name"?: string;
|
|
189
|
-
}
|
|
190
|
-
export type Various = {
|
|
191
|
-
"added"?: Date;
|
|
192
|
-
"h"?: Array<string>;
|
|
193
|
-
"id"?: number;
|
|
194
|
-
"jsn"?: Object;
|
|
195
|
-
"name"?: string;
|
|
196
|
-
"tsv"?: any;
|
|
197
|
-
}
|
|
198
|
-
export type Various_nested = {
|
|
199
|
-
"various_id"?: number;
|
|
200
|
-
}
|
|
201
|
-
|
|
202
|
-
export type JoinMakerTables = {
|
|
203
|
-
"items": JoinMaker<Items>;
|
|
204
|
-
"items2": JoinMaker<Items2>;
|
|
205
|
-
"items_m1": JoinMaker<Items_m1>;
|
|
206
|
-
"items_with_media": JoinMaker<Items_with_media>;
|
|
207
|
-
"items_with_one_media": JoinMaker<Items_with_one_media>;
|
|
208
|
-
"media": JoinMaker<Media>;
|
|
209
|
-
"prostgles_lookup_media_items_m1": JoinMaker<Prostgles_lookup_media_items_m1>;
|
|
210
|
-
"prostgles_lookup_media_items_with_media": JoinMaker<Prostgles_lookup_media_items_with_media>;
|
|
211
|
-
"prostgles_lookup_media_items_with_one_media": JoinMaker<Prostgles_lookup_media_items_with_one_media>;
|
|
212
|
-
"prostgles_lookup_media_skills": JoinMaker<Prostgles_lookup_media_skills>;
|
|
213
|
-
"prostgles_lookup_media_various": JoinMaker<Prostgles_lookup_media_various>;
|
|
214
|
-
"skills": JoinMaker<Skills>;
|
|
215
|
-
"tr1": JoinMaker<Tr1>;
|
|
216
|
-
"tr2": JoinMaker<Tr2>;
|
|
217
|
-
"tt": JoinMaker<Tt>;
|
|
218
|
-
"tt1": JoinMaker<Tt1>;
|
|
219
|
-
"various": JoinMaker<Various>;
|
|
220
|
-
};
|
|
221
|
-
|
|
222
|
-
/* DBO Definition. Isomorphic */
|
|
223
|
-
export type DBObj = {
|
|
224
|
-
"\"*\"": TableHandler<D_34_42_34>
|
|
225
|
-
"*": TableHandler<D_42>
|
|
226
|
-
"ex_j_ins": TableHandler<Ex_j_ins>
|
|
227
|
-
"insert_rules": TableHandler<Insert_rules>
|
|
228
|
-
"item_children": TableHandler<Item_children>
|
|
229
|
-
"items": TableHandler<Items>
|
|
230
|
-
"items2": TableHandler<Items2>
|
|
231
|
-
"items3": TableHandler<Items3>
|
|
232
|
-
"items4": TableHandler<Items4>
|
|
233
|
-
"items4_pub": TableHandler<Items4_pub>
|
|
234
|
-
"items_m1": TableHandler<Items_m1>
|
|
235
|
-
"items_with_media": TableHandler<Items_with_media>
|
|
236
|
-
"items_with_one_media": TableHandler<Items_with_one_media>
|
|
237
|
-
"lookup_col1": TableHandler<Lookup_col1>
|
|
238
|
-
"lookup_items_m1_name_type": TableHandler<Lookup_items_m1_name_type>
|
|
239
|
-
"lookup_uuid_text_col1": TableHandler<Lookup_uuid_text_col1>
|
|
240
|
-
"lookup_uuid_text_col2": TableHandler<Lookup_uuid_text_col2>
|
|
241
|
-
"media": TableHandler<Media>
|
|
242
|
-
"planes": TableHandler<Planes>
|
|
243
|
-
"prgll": TableHandler<Prgll>
|
|
244
|
-
"prostgles_lookup_media_items_m1": TableHandler<Prostgles_lookup_media_items_m1>
|
|
245
|
-
"prostgles_lookup_media_items_with_media": TableHandler<Prostgles_lookup_media_items_with_media>
|
|
246
|
-
"prostgles_lookup_media_items_with_one_media": TableHandler<Prostgles_lookup_media_items_with_one_media>
|
|
247
|
-
"prostgles_lookup_media_skills": TableHandler<Prostgles_lookup_media_skills>
|
|
248
|
-
"prostgles_lookup_media_various": TableHandler<Prostgles_lookup_media_various>
|
|
249
|
-
"skills": TableHandler<Skills>
|
|
250
|
-
"t": TableHandler<T>
|
|
251
|
-
"test": TableHandler<Test>
|
|
252
|
-
"tr1": TableHandler<Tr1>
|
|
253
|
-
"tr2": TableHandler<Tr2>
|
|
254
|
-
"tt": TableHandler<Tt>
|
|
255
|
-
"tt1": TableHandler<Tt1>
|
|
256
|
-
"tttt": TableHandler<Tttt>
|
|
257
|
-
"usr": TableHandler<Usr>
|
|
258
|
-
"uuid_text": TableHandler<Uuid_text>
|
|
259
|
-
"v_items": ViewHandler<V_items>
|
|
260
|
-
"various": TableHandler<Various>
|
|
261
|
-
"various_nested": TableHandler<Various_nested>
|
|
262
|
-
leftJoin: JoinMakerTables;
|
|
263
|
-
innerJoin: JoinMakerTables;
|
|
264
|
-
leftJoinOne: JoinMakerTables;
|
|
265
|
-
innerJoinOne: JoinMakerTables;
|
|
266
|
-
tx: (t: TxCB) => Promise<any | void> ;
|
|
267
|
-
};
|
|
268
|
-
|
|
269
|
-
type DeepPartial<T> = { [P in keyof T]?: DeepPartial<T[P]>; };
|
|
270
|
-
export type I18N_DBO_CONFIG<LANG_IDS = { en: 1, fr: 1 }> = {
|
|
271
|
-
fallbackLang: keyof LANG_IDS;
|
|
272
|
-
column_labels?: DeepPartial<{
|
|
273
|
-
"\"*\"": {
|
|
274
|
-
[key in "\"*\"" | "id"]: { [lang_id in keyof LANG_IDS]: string };
|
|
275
|
-
};
|
|
276
|
-
"*": {
|
|
277
|
-
[key in "*" | "id"]: { [lang_id in keyof LANG_IDS]: string };
|
|
278
|
-
};
|
|
279
|
-
"ex_j_ins": {
|
|
280
|
-
[key in "added" | "id" | "name" | "public"]: { [lang_id in keyof LANG_IDS]: string };
|
|
281
|
-
};
|
|
282
|
-
"insert_rules": {
|
|
283
|
-
[key in "added" | "id" | "name"]: { [lang_id in keyof LANG_IDS]: string };
|
|
284
|
-
};
|
|
285
|
-
"item_children": {
|
|
286
|
-
[key in "id" | "item_id" | "name" | "tst"]: { [lang_id in keyof LANG_IDS]: string };
|
|
287
|
-
};
|
|
288
|
-
"items": {
|
|
289
|
-
[key in "h" | "id" | "name"]: { [lang_id in keyof LANG_IDS]: string };
|
|
290
|
-
};
|
|
291
|
-
"items2": {
|
|
292
|
-
[key in "hh" | "id" | "items_id" | "name"]: { [lang_id in keyof LANG_IDS]: string };
|
|
293
|
-
};
|
|
294
|
-
"items3": {
|
|
295
|
-
[key in "h" | "id" | "name"]: { [lang_id in keyof LANG_IDS]: string };
|
|
296
|
-
};
|
|
297
|
-
"items4": {
|
|
298
|
-
[key in "added" | "id" | "name" | "public"]: { [lang_id in keyof LANG_IDS]: string };
|
|
299
|
-
};
|
|
300
|
-
"items4_pub": {
|
|
301
|
-
[key in "added" | "id" | "name" | "public"]: { [lang_id in keyof LANG_IDS]: string };
|
|
302
|
-
};
|
|
303
|
-
"items_m1": {
|
|
304
|
-
[key in "id" | "name"]: { [lang_id in keyof LANG_IDS]: string };
|
|
305
|
-
};
|
|
306
|
-
"items_with_media": {
|
|
307
|
-
[key in "id" | "name"]: { [lang_id in keyof LANG_IDS]: string };
|
|
308
|
-
};
|
|
309
|
-
"items_with_one_media": {
|
|
310
|
-
[key in "id" | "items_m1_id" | "name"]: { [lang_id in keyof LANG_IDS]: string };
|
|
311
|
-
};
|
|
312
|
-
"lookup_col1": {
|
|
313
|
-
[key in "id"]: { [lang_id in keyof LANG_IDS]: string };
|
|
314
|
-
};
|
|
315
|
-
"lookup_items_m1_name_type": {
|
|
316
|
-
[key in "en" | "id" | "ro"]: { [lang_id in keyof LANG_IDS]: string };
|
|
317
|
-
};
|
|
318
|
-
"lookup_uuid_text_col1": {
|
|
319
|
-
[key in "id"]: { [lang_id in keyof LANG_IDS]: string };
|
|
320
|
-
};
|
|
321
|
-
"lookup_uuid_text_col2": {
|
|
322
|
-
[key in "id"]: { [lang_id in keyof LANG_IDS]: string };
|
|
323
|
-
};
|
|
324
|
-
"media": {
|
|
325
|
-
[key in "content_type" | "description" | "etag" | "extension" | "id" | "name" | "original_name" | "s3_url" | "signed_url" | "signed_url_expires" | "url"]: { [lang_id in keyof LANG_IDS]: string };
|
|
326
|
-
};
|
|
327
|
-
"planes": {
|
|
328
|
-
[key in "flight_number" | "id" | "last_updated" | "x" | "y"]: { [lang_id in keyof LANG_IDS]: string };
|
|
329
|
-
};
|
|
330
|
-
"prgll": {
|
|
331
|
-
[key in "foreign_id" | "media_id"]: { [lang_id in keyof LANG_IDS]: string };
|
|
332
|
-
};
|
|
333
|
-
"prostgles_lookup_media_items_m1": {
|
|
334
|
-
[key in "foreign_id" | "media_id"]: { [lang_id in keyof LANG_IDS]: string };
|
|
335
|
-
};
|
|
336
|
-
"prostgles_lookup_media_items_with_media": {
|
|
337
|
-
[key in "foreign_id" | "media_id"]: { [lang_id in keyof LANG_IDS]: string };
|
|
338
|
-
};
|
|
339
|
-
"prostgles_lookup_media_items_with_one_media": {
|
|
340
|
-
[key in "foreign_id" | "media_id"]: { [lang_id in keyof LANG_IDS]: string };
|
|
341
|
-
};
|
|
342
|
-
"prostgles_lookup_media_skills": {
|
|
343
|
-
[key in "foreign_id" | "media_id"]: { [lang_id in keyof LANG_IDS]: string };
|
|
344
|
-
};
|
|
345
|
-
"prostgles_lookup_media_various": {
|
|
346
|
-
[key in "foreign_id" | "media_id"]: { [lang_id in keyof LANG_IDS]: string };
|
|
347
|
-
};
|
|
348
|
-
"skills": {
|
|
349
|
-
[key in "id" | "registration_id" | "type" | "years"]: { [lang_id in keyof LANG_IDS]: string };
|
|
350
|
-
};
|
|
351
|
-
"t": {
|
|
352
|
-
[key in "t"]: { [lang_id in keyof LANG_IDS]: string };
|
|
353
|
-
};
|
|
354
|
-
"test": {
|
|
355
|
-
[key in "id" | "parent"]: { [lang_id in keyof LANG_IDS]: string };
|
|
356
|
-
};
|
|
357
|
-
"tr1": {
|
|
358
|
-
[key in "id" | "t1"]: { [lang_id in keyof LANG_IDS]: string };
|
|
359
|
-
};
|
|
360
|
-
"tr2": {
|
|
361
|
-
[key in "id" | "t1" | "t2" | "tr1_id"]: { [lang_id in keyof LANG_IDS]: string };
|
|
362
|
-
};
|
|
363
|
-
"tt": {
|
|
364
|
-
[key in "id" | "t1" | "t2"]: { [lang_id in keyof LANG_IDS]: string };
|
|
365
|
-
};
|
|
366
|
-
"tt1": {
|
|
367
|
-
[key in "id" | "t1" | "t2"]: { [lang_id in keyof LANG_IDS]: string };
|
|
368
|
-
};
|
|
369
|
-
"tttt": {
|
|
370
|
-
[key in "t"]: { [lang_id in keyof LANG_IDS]: string };
|
|
371
|
-
};
|
|
372
|
-
"usr": {
|
|
373
|
-
[key in "added" | "age" | "id" | "is_active" | "msg" | "status"]: { [lang_id in keyof LANG_IDS]: string };
|
|
374
|
-
};
|
|
375
|
-
"uuid_text": {
|
|
376
|
-
[key in "id" | "name"]: { [lang_id in keyof LANG_IDS]: string };
|
|
377
|
-
};
|
|
378
|
-
"v_items": {
|
|
379
|
-
[key in "id" | "name"]: { [lang_id in keyof LANG_IDS]: string };
|
|
380
|
-
};
|
|
381
|
-
"various": {
|
|
382
|
-
[key in "added" | "h" | "id" | "jsn" | "name" | "tsv"]: { [lang_id in keyof LANG_IDS]: string };
|
|
383
|
-
};
|
|
384
|
-
"various_nested": {
|
|
385
|
-
[key in "various_id"]: { [lang_id in keyof LANG_IDS]: string };
|
|
386
|
-
};
|
|
387
|
-
}>
|
|
388
|
-
}
|