prostgles-server 4.2.567 → 4.2.569

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 (223) hide show
  1. package/dist/Auth/AuthTypes.d.ts +5 -5
  2. package/dist/Auth/AuthTypes.d.ts.map +1 -1
  3. package/dist/Auth/AuthTypes.js.map +1 -1
  4. package/dist/Auth/endpoints/setCatchAllRequestHandler.d.ts.map +1 -1
  5. package/dist/Auth/endpoints/setCatchAllRequestHandler.js +2 -2
  6. package/dist/Auth/endpoints/setCatchAllRequestHandler.js.map +1 -1
  7. package/dist/DBSchemaBuilder/getColumnTypescriptDefinition.d.ts +1 -1
  8. package/dist/DBSchemaBuilder/getColumnTypescriptDefinition.d.ts.map +1 -1
  9. package/dist/DBSchemaBuilder/getDBGeneratedSchema.d.ts +1 -1
  10. package/dist/DBSchemaBuilder/getDBGeneratedSchema.d.ts.map +1 -1
  11. package/dist/DboBuilder/DboBuilder.js +4 -4
  12. package/dist/DboBuilder/DboBuilder.js.map +1 -1
  13. package/dist/DboBuilder/DboBuilderTypes.d.ts +2 -18
  14. package/dist/DboBuilder/DboBuilderTypes.d.ts.map +1 -1
  15. package/dist/DboBuilder/DboBuilderTypes.js.map +1 -1
  16. package/dist/DboBuilder/TableHandler/TableHandler.d.ts +15 -5
  17. package/dist/DboBuilder/TableHandler/TableHandler.d.ts.map +1 -1
  18. package/dist/DboBuilder/TableHandler/TableHandler.js +4 -3
  19. package/dist/DboBuilder/TableHandler/TableHandler.js.map +1 -1
  20. package/dist/DboBuilder/TableHandler/delete.d.ts.map +1 -1
  21. package/dist/DboBuilder/TableHandler/delete.js +17 -14
  22. package/dist/DboBuilder/TableHandler/delete.js.map +1 -1
  23. package/dist/DboBuilder/TableHandler/insert/insert.d.ts.map +1 -1
  24. package/dist/DboBuilder/TableHandler/insert/insert.js +3 -12
  25. package/dist/DboBuilder/TableHandler/insert/insert.js.map +1 -1
  26. package/dist/DboBuilder/TableHandler/insert/insertNestedRecords.d.ts.map +1 -1
  27. package/dist/DboBuilder/TableHandler/insert/insertNestedRecords.js +10 -15
  28. package/dist/DboBuilder/TableHandler/insert/insertNestedRecords.js.map +1 -1
  29. package/dist/DboBuilder/TableHandler/insert/insertRowWithNestedRecords.js +1 -1
  30. package/dist/DboBuilder/TableHandler/insert/insertRowWithNestedRecords.js.map +1 -1
  31. package/dist/DboBuilder/TableHandler/onDeleteFromFileTable.d.ts +8 -6
  32. package/dist/DboBuilder/TableHandler/onDeleteFromFileTable.d.ts.map +1 -1
  33. package/dist/DboBuilder/TableHandler/onDeleteFromFileTable.js +30 -48
  34. package/dist/DboBuilder/TableHandler/onDeleteFromFileTable.js.map +1 -1
  35. package/dist/DboBuilder/TableHandler/update.d.ts +1 -1
  36. package/dist/DboBuilder/TableHandler/update.d.ts.map +1 -1
  37. package/dist/DboBuilder/TableHandler/update.js +8 -18
  38. package/dist/DboBuilder/TableHandler/update.js.map +1 -1
  39. package/dist/DboBuilder/TableHandler/updateFile.d.ts +2 -3
  40. package/dist/DboBuilder/TableHandler/updateFile.d.ts.map +1 -1
  41. package/dist/DboBuilder/TableHandler/updateFile.js +8 -28
  42. package/dist/DboBuilder/TableHandler/updateFile.js.map +1 -1
  43. package/dist/DboBuilder/ViewHandler/ViewHandler.d.ts +2 -2
  44. package/dist/DboBuilder/ViewHandler/ViewHandler.d.ts.map +1 -1
  45. package/dist/DboBuilder/ViewHandler/getInfo.d.ts +1 -1
  46. package/dist/DboBuilder/ViewHandler/getInfo.d.ts.map +1 -1
  47. package/dist/DboBuilder/ViewHandler/getInfo.js +12 -1
  48. package/dist/DboBuilder/ViewHandler/getInfo.js.map +1 -1
  49. package/dist/DboBuilder/getColumns.d.ts.map +1 -1
  50. package/dist/DboBuilder/getColumns.js +29 -4
  51. package/dist/DboBuilder/getColumns.js.map +1 -1
  52. package/dist/DboBuilder/schema/getTablesForSchemaPostgresSQL.d.ts +2 -2
  53. package/dist/DboBuilder/uploadFile.d.ts +5 -6
  54. package/dist/DboBuilder/uploadFile.d.ts.map +1 -1
  55. package/dist/DboBuilder/uploadFile.js +28 -42
  56. package/dist/DboBuilder/uploadFile.js.map +1 -1
  57. package/dist/FileManager/FileManager.d.ts +22 -78
  58. package/dist/FileManager/FileManager.d.ts.map +1 -1
  59. package/dist/FileManager/FileManager.js +1 -219
  60. package/dist/FileManager/FileManager.js.map +1 -1
  61. package/dist/FileManager/getFileTableConfig.d.ts +26 -0
  62. package/dist/FileManager/getFileTableConfig.d.ts.map +1 -0
  63. package/dist/FileManager/getFileTableConfig.js +115 -0
  64. package/dist/FileManager/getFileTableConfig.js.map +1 -0
  65. package/dist/FileManager/getLocalStorageClient.d.ts +3 -0
  66. package/dist/FileManager/getLocalStorageClient.d.ts.map +1 -0
  67. package/dist/FileManager/getLocalStorageClient.js +105 -0
  68. package/dist/FileManager/getLocalStorageClient.js.map +1 -0
  69. package/dist/FileManager/getValidatedFileType.d.ts +2 -2
  70. package/dist/FileManager/getValidatedFileType.d.ts.map +1 -1
  71. package/dist/FileManager/getValidatedFileType.js +7 -9
  72. package/dist/FileManager/getValidatedFileType.js.map +1 -1
  73. package/dist/FileManager/setupFileServeHandler.d.ts +9 -0
  74. package/dist/FileManager/setupFileServeHandler.d.ts.map +1 -0
  75. package/dist/FileManager/setupFileServeHandler.js +114 -0
  76. package/dist/FileManager/setupFileServeHandler.js.map +1 -0
  77. package/dist/Filtering/Filtering.d.ts +1 -1
  78. package/dist/Logging.d.ts +1 -1
  79. package/dist/Logging.d.ts.map +1 -1
  80. package/dist/Prostgles.d.ts +52 -6
  81. package/dist/Prostgles.d.ts.map +1 -1
  82. package/dist/Prostgles.js +8 -47
  83. package/dist/Prostgles.js.map +1 -1
  84. package/dist/ProstglesTypes.d.ts +23 -21
  85. package/dist/ProstglesTypes.d.ts.map +1 -1
  86. package/dist/ProstglesTypes.js.map +1 -1
  87. package/dist/PubSubManager/notifListener.d.ts.map +1 -1
  88. package/dist/PubSubManager/notifListener.js +0 -1
  89. package/dist/PubSubManager/notifListener.js.map +1 -1
  90. package/dist/PublishParser/getDBSchemaTable.d.ts +2 -2
  91. package/dist/PublishParser/getDBSchemaTable.d.ts.map +1 -1
  92. package/dist/PublishParser/getDBSchemaTable.js +5 -3
  93. package/dist/PublishParser/getDBSchemaTable.js.map +1 -1
  94. package/dist/PublishParser/getSchemaFromPublish.d.ts.map +1 -1
  95. package/dist/PublishParser/getSchemaFromPublish.js +2 -2
  96. package/dist/PublishParser/getSchemaFromPublish.js.map +1 -1
  97. package/dist/PublishParser/publishTypesAndUtils.d.ts +1 -0
  98. package/dist/PublishParser/publishTypesAndUtils.d.ts.map +1 -1
  99. package/dist/PublishParser/publishTypesAndUtils.js.map +1 -1
  100. package/dist/RestApi.d.ts +1 -5
  101. package/dist/RestApi.d.ts.map +1 -1
  102. package/dist/RestApi.js +10 -5
  103. package/dist/RestApi.js.map +1 -1
  104. package/dist/TableConfig/{TableConfig.d.ts → TableConfigTypes.d.ts} +19 -64
  105. package/dist/TableConfig/TableConfigTypes.d.ts.map +1 -0
  106. package/dist/TableConfig/TableConfigTypes.js +3 -0
  107. package/dist/TableConfig/TableConfigTypes.js.map +1 -0
  108. package/dist/TableConfig/TableConfigurator.d.ts +104 -0
  109. package/dist/TableConfig/TableConfigurator.d.ts.map +1 -0
  110. package/dist/TableConfig/{TableConfig.js → TableConfigurator.js} +31 -44
  111. package/dist/TableConfig/TableConfigurator.js.map +1 -0
  112. package/dist/TableConfig/applyTableConfig.d.ts.map +1 -1
  113. package/dist/TableConfig/applyTableConfig.js +0 -1
  114. package/dist/TableConfig/applyTableConfig.js.map +1 -1
  115. package/dist/TableConfig/getColumnConfig.d.ts +1 -1
  116. package/dist/TableConfig/getColumnConfig.d.ts.map +1 -1
  117. package/dist/TableConfig/getColumnSQLDefinitionQuery.d.ts +1 -1
  118. package/dist/TableConfig/getColumnSQLDefinitionQuery.d.ts.map +1 -1
  119. package/dist/TableConfig/getColumnSQLDefinitionQuery.js +1 -1
  120. package/dist/TableConfig/getColumnSQLDefinitionQuery.js.map +1 -1
  121. package/dist/TableConfig/getConstraintDefinitionQueries.d.ts +1 -1
  122. package/dist/TableConfig/getConstraintDefinitionQueries.d.ts.map +1 -1
  123. package/dist/TableConfig/getCreateSchemaQueries.d.ts +26 -8
  124. package/dist/TableConfig/getCreateSchemaQueries.d.ts.map +1 -1
  125. package/dist/TableConfig/getSchemaDiffQueries.d.ts.map +1 -1
  126. package/dist/TableConfig/getSchemaDiffQueries.js +12 -8
  127. package/dist/TableConfig/getSchemaDiffQueries.js.map +1 -1
  128. package/dist/TableConfig/getTableColumnQueries.d.ts +1 -1
  129. package/dist/TableConfig/getTableColumnQueries.d.ts.map +1 -1
  130. package/dist/TableConfig/getTableColumnQueries.js +19 -19
  131. package/dist/TableConfig/getTableColumnQueries.js.map +1 -1
  132. package/dist/TableConfig/getTableConfigSchemaQueries.d.ts +26 -10
  133. package/dist/TableConfig/getTableConfigSchemaQueries.d.ts.map +1 -1
  134. package/dist/TableConfig/getTableConfigSchemaQueries.js +8 -10
  135. package/dist/TableConfig/getTableConfigSchemaQueries.js.map +1 -1
  136. package/dist/TableConfig/indexes/getIndexesQueries.d.ts +1 -1
  137. package/dist/TableConfig/indexes/getIndexesQueries.d.ts.map +1 -1
  138. package/dist/TableConfig/initTableConfig.d.ts +1 -1
  139. package/dist/TableConfig/initTableConfig.d.ts.map +1 -1
  140. package/dist/TableConfig/initTableConfig.js +6 -3
  141. package/dist/TableConfig/initTableConfig.js.map +1 -1
  142. package/dist/WebsocketAPI/getClientSchema.d.ts.map +1 -1
  143. package/dist/WebsocketAPI/getClientSchema.js +6 -1
  144. package/dist/WebsocketAPI/getClientSchema.js.map +1 -1
  145. package/dist/index.d.ts +3 -2
  146. package/dist/index.d.ts.map +1 -1
  147. package/dist/index.js +1 -0
  148. package/dist/index.js.map +1 -1
  149. package/dist/initProstgles.d.ts.map +1 -1
  150. package/dist/initProstgles.js +2 -5
  151. package/dist/initProstgles.js.map +1 -1
  152. package/dist/runClientRequest.js +1 -1
  153. package/dist/runClientRequest.js.map +1 -1
  154. package/dist/updateConfiguration.d.ts.map +1 -1
  155. package/dist/updateConfiguration.js +0 -3
  156. package/dist/updateConfiguration.js.map +1 -1
  157. package/eslint.config.mjs +0 -3
  158. package/lib/Auth/AuthTypes.ts +6 -7
  159. package/lib/Auth/endpoints/setCatchAllRequestHandler.ts +6 -2
  160. package/lib/DBSchemaBuilder/getColumnTypescriptDefinition.ts +1 -1
  161. package/lib/DBSchemaBuilder/getDBGeneratedSchema.ts +1 -1
  162. package/lib/DboBuilder/DboBuilder.ts +4 -4
  163. package/lib/DboBuilder/DboBuilderTypes.ts +7 -20
  164. package/lib/DboBuilder/TableHandler/TableHandler.ts +7 -4
  165. package/lib/DboBuilder/TableHandler/delete.ts +23 -17
  166. package/lib/DboBuilder/TableHandler/insert/insert.ts +3 -12
  167. package/lib/DboBuilder/TableHandler/insert/insertNestedRecords.ts +13 -17
  168. package/lib/DboBuilder/TableHandler/insert/insertRowWithNestedRecords.ts +1 -1
  169. package/lib/DboBuilder/TableHandler/onDeleteFromFileTable.ts +41 -54
  170. package/lib/DboBuilder/TableHandler/update.ts +8 -19
  171. package/lib/DboBuilder/TableHandler/updateFile.ts +20 -42
  172. package/lib/DboBuilder/ViewHandler/ViewHandler.ts +1 -1
  173. package/lib/DboBuilder/ViewHandler/getInfo.ts +19 -2
  174. package/lib/DboBuilder/getColumns.ts +40 -4
  175. package/lib/DboBuilder/uploadFile.ts +34 -50
  176. package/lib/FileManager/FileManager.ts +23 -249
  177. package/lib/FileManager/getFileTableConfig.ts +142 -0
  178. package/lib/FileManager/getLocalStorageClient.ts +118 -0
  179. package/lib/FileManager/getValidatedFileType.ts +14 -22
  180. package/lib/FileManager/setupFileServeHandler.ts +102 -0
  181. package/lib/Logging.ts +0 -3
  182. package/lib/Prostgles.ts +9 -44
  183. package/lib/ProstglesTypes.ts +34 -23
  184. package/lib/PubSubManager/notifListener.ts +0 -2
  185. package/lib/PublishParser/getDBSchemaTable.ts +6 -3
  186. package/lib/PublishParser/getSchemaFromPublish.ts +2 -1
  187. package/lib/PublishParser/publishTypesAndUtils.ts +1 -0
  188. package/lib/RestApi.ts +12 -12
  189. package/lib/TableConfig/{TableConfig.ts → TableConfigTypes.ts} +18 -217
  190. package/lib/TableConfig/TableConfigurator.ts +191 -0
  191. package/lib/TableConfig/applyTableConfig.ts +2 -3
  192. package/lib/TableConfig/getColumnConfig.ts +2 -2
  193. package/lib/TableConfig/getColumnSQLDefinitionQuery.ts +2 -2
  194. package/lib/TableConfig/getConstraintDefinitionQueries.ts +1 -1
  195. package/lib/TableConfig/getCreateSchemaQueries.ts +1 -1
  196. package/lib/TableConfig/getSchemaDiffQueries.ts +14 -11
  197. package/lib/TableConfig/getTableColumnQueries.ts +22 -20
  198. package/lib/TableConfig/getTableConfigSchemaQueries.ts +20 -22
  199. package/lib/TableConfig/indexes/getIndexesQueries.ts +1 -1
  200. package/lib/TableConfig/initTableConfig.ts +7 -6
  201. package/lib/WebsocketAPI/getClientSchema.ts +7 -1
  202. package/lib/index.ts +3 -2
  203. package/lib/initProstgles.ts +2 -6
  204. package/lib/runClientRequest.ts +1 -1
  205. package/lib/updateConfiguration.ts +0 -3
  206. package/package.json +2 -3
  207. package/dist/FileManager/initFileManager.d.ts +0 -18
  208. package/dist/FileManager/initFileManager.d.ts.map +0 -1
  209. package/dist/FileManager/initFileManager.js +0 -257
  210. package/dist/FileManager/initFileManager.js.map +0 -1
  211. package/dist/FileManager/upload.d.ts +0 -4
  212. package/dist/FileManager/upload.d.ts.map +0 -1
  213. package/dist/FileManager/upload.js +0 -90
  214. package/dist/FileManager/upload.js.map +0 -1
  215. package/dist/FileManager/uploadStream.d.ts +0 -4
  216. package/dist/FileManager/uploadStream.d.ts.map +0 -1
  217. package/dist/FileManager/uploadStream.js +0 -100
  218. package/dist/FileManager/uploadStream.js.map +0 -1
  219. package/dist/TableConfig/TableConfig.d.ts.map +0 -1
  220. package/dist/TableConfig/TableConfig.js.map +0 -1
  221. package/lib/FileManager/initFileManager.ts +0 -254
  222. package/lib/FileManager/upload.ts +0 -59
  223. package/lib/FileManager/uploadStream.ts +0 -76
@@ -3,7 +3,7 @@ import { CREATE_VALIDATE_SCHEMA_FUNCTION_SQL } from "../JSONBSchemaValidation/va
3
3
  import type { DB, DBHandlerServer } from "../Prostgles";
4
4
  import { getColumnSQLDefinitionQuery, getTableColumns } from "./getColumnSQLDefinitionQuery";
5
5
  import { getFutureTableSchema } from "./getFutureTableSchema";
6
- import type { TableConfig } from "./TableConfig";
6
+ import type { TableConfig } from "./TableConfigTypes";
7
7
 
8
8
  type Args = {
9
9
  db: DB;
@@ -30,7 +30,7 @@ export const getTableColumnQueries = async ({
30
30
  isCreate: boolean;
31
31
  }
32
32
  > => {
33
- let newColumnDefs: string[] = [];
33
+ const newColumnDefinitions: string[] = [];
34
34
  const droppedColNames: string[] = [];
35
35
  const alteredColQueries: string[] = [];
36
36
  let fullQuery = "";
@@ -62,7 +62,7 @@ export const getTableColumnQueries = async ({
62
62
  return typeof colDef === "string" || !("joinDef" in colDef);
63
63
  });
64
64
 
65
- const colDefs: { name: string; def: string }[] = [];
65
+ const columnDefinitions: { name: string; def: string }[] = [];
66
66
 
67
67
  for (const [colName, colConf] of columns) {
68
68
  /* Get column definition */
@@ -73,25 +73,25 @@ export const getTableColumnQueries = async ({
73
73
  table: tableName,
74
74
  });
75
75
  if (colDef) {
76
- colDefs.push({ name: colName.toString(), def: colDef });
76
+ columnDefinitions.push({ name: colName.toString(), def: colDef });
77
77
  }
78
78
  }
79
- const columnDefs = colDefs.map((c) => c.def);
79
+ const columnDefs = columnDefinitions.map((c) => c.def);
80
80
 
81
- if (!colDefs.length) {
81
+ if (!columnDefinitions.length) {
82
82
  return undefined;
83
83
  }
84
84
 
85
- const ALTERQ = `ALTER TABLE ${asName(tableName)}`;
85
+ const alterTableQuery = `ALTER TABLE ${asName(tableName)}`;
86
86
  if (!tableHandler) {
87
- newColumnDefs.push(...colDefs.map((c) => c.def));
87
+ columnDefinitions.map((c) => newColumnDefinitions.push(c.def));
88
88
  } else {
89
89
  const currCols = await getTableColumns({ db, table: tableName });
90
90
 
91
91
  /** Add new columns */
92
- newColumnDefs = colDefs
92
+ columnDefinitions
93
93
  .filter((nc) => !tableHandler.columns.some((c) => nc.name === c.name))
94
- .map((c) => c.def);
94
+ .forEach((c) => newColumnDefinitions.push(c.def));
95
95
 
96
96
  /** Altered/Dropped columns */
97
97
  const { cols: futureCols } = await getFutureTableSchema({
@@ -106,14 +106,14 @@ export const getTableColumnQueries = async ({
106
106
  droppedColNames.push(c.column_name);
107
107
  } else if (newCol.nullable !== c.nullable) {
108
108
  alteredColQueries.push(
109
- `${ALTERQ} ALTER COLUMN ${asName(c.column_name)} ${newCol.nullable ? "DROP" : "SET"} NOT NULL;`,
109
+ `${alterTableQuery} ALTER COLUMN ${asName(c.column_name)} ${newCol.nullable ? "DROP" : "SET"} NOT NULL;`,
110
110
  );
111
111
  } else if (newCol.udt_name !== c.udt_name) {
112
112
  alteredColQueries.push(
113
- `${ALTERQ} ALTER COLUMN ${asName(c.column_name)} TYPE ${newCol.udt_name} USING ${asName(c.column_name)}::${newCol.udt_name};`,
113
+ `${alterTableQuery} ALTER COLUMN ${asName(c.column_name)} TYPE ${newCol.udt_name} USING ${asName(c.column_name)}::${newCol.udt_name};`,
114
114
  );
115
115
  } else if (newCol.column_default !== c.column_default) {
116
- const colConfig = colDefs.find((cd) => cd.name === c.column_name);
116
+ const colConfig = columnDefinitions.find((cd) => cd.name === c.column_name);
117
117
  if (
118
118
  ["serial", "bigserial"].some((t) => colConfig?.def.toLowerCase().includes(` ${t}`)) &&
119
119
  c.column_default?.toLowerCase().includes("nextval")
@@ -121,7 +121,7 @@ export const getTableColumnQueries = async ({
121
121
  /** Ignore SERIAL/BIGSERIAL <> nextval mismatch */
122
122
  } else {
123
123
  alteredColQueries.push(
124
- `${ALTERQ} ALTER COLUMN ${asName(c.column_name)} ${newCol.column_default === null ? "DROP DEFAULT" : `SET DEFAULT ${newCol.column_default}`};`,
124
+ `${alterTableQuery} ALTER COLUMN ${asName(c.column_name)} ${newCol.column_default === null ? "DROP DEFAULT" : `SET DEFAULT ${newCol.column_default}`};`,
125
125
  );
126
126
  }
127
127
  }
@@ -130,10 +130,10 @@ export const getTableColumnQueries = async ({
130
130
 
131
131
  if (!tableHandler || tableConf.dropIfExists || tableConf.dropIfExistsCascade) {
132
132
  isCreate = true;
133
- const DROPQ = `DROP TABLE IF EXISTS ${asName(tableName)}`;
133
+ const dropTableQuery = `DROP TABLE IF EXISTS ${asName(tableName)}`;
134
134
  fullQuery = [
135
- ...(tableConf.dropIfExists ? [`${DROPQ};`]
136
- : tableConf.dropIfExistsCascade ? [`${DROPQ} CASCADE;`]
135
+ ...(tableConf.dropIfExists ? [`${dropTableQuery};`]
136
+ : tableConf.dropIfExistsCascade ? [`${dropTableQuery} CASCADE;`]
137
137
  : []),
138
138
  `CREATE TABLE ${asName(tableName)} (`,
139
139
  columnDefs.join(", \n"),
@@ -141,8 +141,10 @@ export const getTableColumnQueries = async ({
141
141
  ].join("\n");
142
142
  } else {
143
143
  fullQuery = [
144
- ...droppedColNames.map((c) => `${ALTERQ} DROP COLUMN ${asName(c)};`),
145
- ...newColumnDefs.map((c) => `${ALTERQ} ADD COLUMN ${c};`),
144
+ // ...droppedColNames.map((c) => `${alterTableQuery} DROP COLUMN ${asName(c)};`),
145
+ ...newColumnDefinitions.map(
146
+ (columnDefinition) => `${alterTableQuery} ADD COLUMN ${columnDefinition};`,
147
+ ),
146
148
  ...alteredColQueries,
147
149
  ].join("\n");
148
150
  }
@@ -151,6 +153,6 @@ export const getTableColumnQueries = async ({
151
153
  fullQuery,
152
154
  columnDefs,
153
155
  isCreate,
154
- newColumnDefs,
156
+ newColumnDefs: newColumnDefinitions,
155
157
  };
156
158
  };
@@ -1,32 +1,31 @@
1
1
  import { as } from "pg-promise";
2
2
  import { isDefined } from "prostgles-types";
3
- import { getFileManagerSchema } from "../FileManager/initFileManager";
4
3
  import type { DB } from "../initProstgles";
5
4
  import { getColumnSQLDefinitionQuery } from "./getColumnSQLDefinitionQuery";
6
5
  import { getConstraintDefinitionQueries } from "./getConstraintDefinitionQueries";
7
6
  import { tableConfigWithMigrations, type SchemaRelatedOptions } from "./getCreateSchemaQueries";
8
- import type { TableConfig } from "./TableConfig";
7
+ import type { TableConfig } from "./TableConfigTypes";
9
8
  import type { getSchemaUtils } from "./tableConfigSchemaUtils";
10
9
 
11
10
  export const getTableConfigSchemaQueries = async (
12
11
  opts: SchemaRelatedOptions,
13
- { asName, db }: Pick<Awaited<ReturnType<typeof getSchemaUtils>>, "asName" | "db">
12
+ { asName, db }: Pick<Awaited<ReturnType<typeof getSchemaUtils>>, "asName" | "db">,
14
13
  ) => {
15
- const fileTableSchema = getFileManagerSchema(opts);
16
- const fileTableSchemaQuery = fileTableSchema?.queries.join("\n") ?? "";
17
- const migrations = await tableConfigWithMigrations(db, opts, fileTableSchemaQuery);
14
+ // const fileTableSchema = getFileTableConfig(opts);
15
+ // const fileTableSchemaQuery = fileTableSchema?.queries.join("\n") ?? "";
16
+ const migrations = await tableConfigWithMigrations(db, opts, "");
18
17
 
19
18
  const config: TableConfig = migrations.config ?? {};
20
19
 
21
20
  const uniqueColumnAndTableNames = Array.from(
22
21
  new Set(
23
- Object.entries(config).flatMap(([tname, tableConf]) => {
22
+ Object.entries(config).flatMap(([tableName, tableConf]) => {
24
23
  if ("columns" in tableConf && tableConf.columns) {
25
- return [tname, ...Object.keys(tableConf.columns)];
24
+ return [tableName, ...Object.keys(tableConf.columns)];
26
25
  }
27
- return [tname];
28
- })
29
- )
26
+ return [tableName];
27
+ }),
28
+ ),
30
29
  );
31
30
 
32
31
  /** Avoid using double quotes when not required to ensure the jsonb validation checks do not include unnecessary quotes */
@@ -34,10 +33,10 @@ export const getTableConfigSchemaQueries = async (
34
33
  escapedTableNameMapObj: Record<string, string>;
35
34
  }>(
36
35
  `
37
- SELECT jsonb_object_agg(tblname, quote_ident(tblname)) as "escapedTableNameMapObj"
38
- FROM unnest(ARRAY[\${keys:csv}]) as tblname
36
+ SELECT jsonb_object_agg(table_name, quote_ident(table_name)) as "escapedTableNameMapObj"
37
+ FROM unnest(ARRAY[\${keys:csv}]) as table_name
39
38
  `,
40
- { keys: uniqueColumnAndTableNames.concat("prevent_empty_array_error") }
39
+ { keys: uniqueColumnAndTableNames.concat("prevent_empty_array_error") },
41
40
  );
42
41
 
43
42
  let triggerQueries: string[] = [];
@@ -55,7 +54,7 @@ export const getTableConfigSchemaQueries = async (
55
54
  tableConf,
56
55
  asName,
57
56
  escapedTableNameMapObj,
58
- db
57
+ db,
59
58
  );
60
59
  if (_tableQueries) {
61
60
  tableQueries = [...tableQueries, ..._tableQueries.queries];
@@ -77,7 +76,6 @@ export const getTableConfigSchemaQueries = async (
77
76
 
78
77
  return {
79
78
  dropTableQueries,
80
- fileTableSchemaQuery,
81
79
  tableQueries,
82
80
  constraintQueries,
83
81
  indexQueries,
@@ -91,7 +89,7 @@ const getTableQueries = async (
91
89
  tableConf: TableConfig[string],
92
90
  asName: (v: string) => string,
93
91
  escapedTableNameMapObj: Record<string, string>,
94
- db: DB
92
+ db: DB,
95
93
  ) => {
96
94
  if ("isLookupTable" in tableConf && Object.keys(tableConf.isLookupTable.values).length) {
97
95
  const { isLookupTable } = tableConf;
@@ -100,7 +98,7 @@ const getTableQueries = async (
100
98
  ([id, otherColumns]) => ({
101
99
  id,
102
100
  ...otherColumns,
103
- })
101
+ }),
104
102
  );
105
103
 
106
104
  const allColumns = Object.keys(rows[0]!);
@@ -122,7 +120,7 @@ const getTableQueries = async (
122
120
  return as.format(
123
121
  `INSERT INTO ${tableName} (${allColumns.map((t) => asName(t)).join(", ")}) ` +
124
122
  " VALUES (${values:csv}) ON CONFLICT DO NOTHING;",
125
- { values }
123
+ { values },
126
124
  );
127
125
  });
128
126
  const queries = [createQuery, ...dataQuerys];
@@ -169,7 +167,7 @@ const getConstraintQueries = (tableName: string, tableConf: TableConfig[string])
169
167
  const getIndexQueries = (
170
168
  tableName: string,
171
169
  tableConf: TableConfig[string],
172
- asName: (v: string) => string
170
+ asName: (v: string) => string,
173
171
  ) => {
174
172
  if ("indexes" in tableConf && tableConf.indexes) {
175
173
  /*
@@ -199,7 +197,7 @@ const getIndexQueries = (
199
197
  return [`DROP INDEX IF EXISTS ${asName(indexName)};`, query];
200
198
  }
201
199
  return [query];
202
- }
200
+ },
203
201
  );
204
202
  }
205
203
  return [];
@@ -207,7 +205,7 @@ const getIndexQueries = (
207
205
  const getTriggerQueries = (
208
206
  tableName: string,
209
207
  tableConfig: TableConfig[string],
210
- asName: (v: string) => string
208
+ asName: (v: string) => string,
211
209
  ) => {
212
210
  const { triggers } = tableConfig;
213
211
  if (!triggers) return [];
@@ -4,7 +4,7 @@ import type { DB } from "../../initProstgles";
4
4
  import { asValue } from "../../PubSubManager/PubSubManagerUtils";
5
5
  import { executeSqlWithRollback } from "../getFutureTableSchema";
6
6
  import { getPGIndexes } from "../getPGIndexes";
7
- import type { TableConfig } from "../TableConfig";
7
+ import type { TableConfig } from "../TableConfigTypes";
8
8
 
9
9
  /**
10
10
  * Keep Postgres indexes in sync with table configuration
@@ -5,15 +5,13 @@ import {
5
5
  log,
6
6
  } from "../PubSubManager/PubSubManagerUtils";
7
7
  import type { OnReadyCallbackBasic } from "../initProstgles";
8
- import type TableConfigurator from "./TableConfig";
9
- import { getConstraintDefinitionQueries } from "./getConstraintDefinitionQueries";
10
8
  import { fetchTableConstraints } from "./fetchTableConstraints";
9
+ import { getConstraintDefinitionQueries } from "./getConstraintDefinitionQueries";
11
10
  import { getFutureTableSchema } from "./getFutureTableSchema";
12
- import { getPGIndexes } from "./getPGIndexes";
13
11
  import { getTableColumnQueries } from "./getTableColumnQueries";
14
- import { runMigrations } from "./runMigrations";
15
- import { md5 } from "prostgles-types/dist/md5";
16
12
  import { getIndexesQueries } from "./indexes/getIndexesQueries";
13
+ import { runMigrations } from "./runMigrations";
14
+ import type { TableConfigurator } from "./TableConfigurator";
17
15
 
18
16
  export const initTableConfig = async function (this: TableConfigurator) {
19
17
  this.initialising = true;
@@ -86,8 +84,9 @@ export const initTableConfig = async function (this: TableConfigurator) {
86
84
  const MAX_IDENTIFIER_LENGTH = +(
87
85
  await this.db.one<{ max_identifier_length: number }>("SHOW max_identifier_length;")
88
86
  ).max_identifier_length;
89
- if (!Number.isFinite(MAX_IDENTIFIER_LENGTH))
87
+ if (!Number.isFinite(MAX_IDENTIFIER_LENGTH)) {
90
88
  throw `Could not obtain a valid max_identifier_length`;
89
+ }
91
90
  const asName = (v: string) => {
92
91
  if (v.length > MAX_IDENTIFIER_LENGTH) {
93
92
  throw `The identifier name provided (${v}) is longer than the allowed limit (max_identifier_length = ${MAX_IDENTIFIER_LENGTH} characters )\n Longest allowed: ${_asName(v.slice(0, MAX_IDENTIFIER_LENGTH))} `;
@@ -351,4 +350,6 @@ export const initTableConfig = async function (this: TableConfigurator) {
351
350
 
352
351
  await this.prostgles.refreshDBO();
353
352
  await this.setTableOnMounts();
353
+ /** Needed in case some onMounts change schema */
354
+ await this.prostgles.refreshDBO();
354
355
  };
@@ -42,7 +42,13 @@ export async function getClientSchema(
42
42
  const tablesWithSelectRules = new Set(
43
43
  fullSchema?.tables.filter((t) => t.publishInfo.select).map((t) => t.name) ?? [],
44
44
  );
45
- const { tables = [], tableSchemaErrors = {} } = fullSchema ?? {};
45
+ const { tables: rawTables = [] } = fullSchema ?? {};
46
+ const { tableSchemaErrors = {} } = fullSchema ?? {};
47
+ const { modifyClientSchema } = this.opts;
48
+ const tables =
49
+ modifyClientSchema ?
50
+ await Promise.all(rawTables.map(async (t) => modifyClientSchema(t, userData)))
51
+ : rawTables;
46
52
  const joinTables2: string[][] = [];
47
53
  if (this.opts.joins) {
48
54
  const _joinTables2 = this.dboBuilder
package/lib/index.ts CHANGED
@@ -16,9 +16,10 @@ export * from "./Auth/AuthTypes";
16
16
  export type { PublishParams } from "./PublishParser/publishTypesAndUtils";
17
17
  export type { DBOFullyTyped } from "./DBSchemaBuilder/DBSchemaBuilder";
18
18
  export type { DBHandlerServer } from "./Prostgles";
19
- export type { CloudClient, LocalConfig } from "./FileManager/FileManager";
19
+ export type { StorageClient as CloudClient, LocalConfig } from "./FileManager/FileManager";
20
+ export * from "./FileManager/getLocalStorageClient";
20
21
  export type { DB } from "./initProstgles";
21
- export type * from "./TableConfig/TableConfig";
22
+ export type * from "./TableConfig/TableConfigTypes";
22
23
  export * from "./Auth/utils/upsertNamedExpressMiddleware";
23
24
  export type { RequestWithUser } from "./Auth/middleware/userContextMiddleware";
24
25
  export default prostgles;
@@ -111,10 +111,7 @@ export const initProstgles = async function (
111
111
  reason: OnInitReason,
112
112
  ): Promise<InitResult> {
113
113
  this.loaded = false;
114
- const expressApp =
115
- this.opts.fileTable?.expressApp ??
116
- this.opts.restApi?.expressApp ??
117
- this.opts.auth?.loginSignupConfig?.app;
114
+ const expressApp = this.opts.expressApp ?? this.opts.auth?.loginSignupConfig?.app;
118
115
 
119
116
  /** Crucial in ensuring the runtime version of express works as expected */
120
117
  if (expressApp) {
@@ -193,7 +190,7 @@ export const initProstgles = async function (
193
190
  await runSQLFile(this);
194
191
  await this.refreshDBO();
195
192
  await this.initTableConfig(reason);
196
- await this.initFileTable();
193
+ await this.refreshDBO();
197
194
  this.initRestApi();
198
195
 
199
196
  this.schemaWatch = await SchemaWatch.create(this.dboBuilder);
@@ -274,7 +271,6 @@ export const initProstgles = async function (
274
271
  this.opts.io.engine.close();
275
272
  }
276
273
  }
277
- this.fileManager?.destroy();
278
274
  await this.dboBuilder.destroy();
279
275
  this.authHandler.destroy();
280
276
  await this.tableConfigurator?.destroy();
@@ -132,7 +132,7 @@ export const runClientRequest = async function (
132
132
  );
133
133
  const localParams: LocalParams = {
134
134
  clientReq,
135
- isRemoteRequest: { user: sessionUser },
135
+ isRemoteRequest: { user: sessionUser, clientInfo },
136
136
  scope,
137
137
  };
138
138
 
@@ -24,9 +24,6 @@ export const updateConfiguration = async <DBSchema, UserSchema extends SessionUs
24
24
  return;
25
25
  }
26
26
 
27
- if (includes(optionsThatChanged, "fileTable")) {
28
- await prgl.initFileTable();
29
- }
30
27
  if (includes(optionsThatChanged, "restApi")) {
31
28
  prgl.initRestApi();
32
29
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "prostgles-server",
3
- "version": "4.2.567",
3
+ "version": "4.2.569",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -57,7 +57,7 @@
57
57
  "pg": "^8.21.0",
58
58
  "pg-cursor": "^2.21.0",
59
59
  "pg-promise": "^12.7.0",
60
- "prostgles-types": "^4.0.271"
60
+ "prostgles-types": "^4.0.273"
61
61
  },
62
62
  "devDependencies": {
63
63
  "@eslint/js": "^9.22.0",
@@ -69,7 +69,6 @@
69
69
  "@types/pg-cursor": "^2.7.2",
70
70
  "@types/sharp": "^0.30.5",
71
71
  "eslint": "^9.39.5",
72
- "eslint-plugin-security": "^3.0.1",
73
72
  "prettier": "^3.9.5",
74
73
  "socket.io": "^4.8.3",
75
74
  "typescript": "^5.9.3",
@@ -1,18 +0,0 @@
1
- import type { Prostgles } from "../Prostgles";
2
- import type { SchemaRelatedOptions } from "../TableConfig/getCreateSchemaQueries";
3
- import type { FileManager } from "./FileManager";
4
- export declare const getFileManagerSchema: ({ fileTable, tableConfig, }: Pick<SchemaRelatedOptions, "fileTable" | "tableConfig">) => {
5
- fileTable: import("../ProstglesTypes").FileTableConfig;
6
- fileTableName: string;
7
- fileTableQuery: string;
8
- referencedTables: {
9
- [tableName: string]: {
10
- type: "column";
11
- referenceColumns: Record<string, import("prostgles-types").FileColumnConfig>;
12
- };
13
- };
14
- referencedTablesQueries: string[];
15
- queries: string[];
16
- } | undefined;
17
- export declare function initFileManager(this: FileManager, prg: Prostgles): Promise<void>;
18
- //# sourceMappingURL=initFileManager.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"initFileManager.d.ts","sourceRoot":"","sources":["../../lib/FileManager/initFileManager.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAElF,OAAO,KAAK,EAAE,WAAW,EAAe,MAAM,eAAe,CAAC;AAI9D,eAAO,MAAM,oBAAoB,GAAI,6BAGlC,IAAI,CAAC,oBAAoB,EAAE,WAAW,GAAG,aAAa,CAAC;;;;;;;;;;;;aAsDzD,CAAC;AAEF,wBAAsB,eAAe,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,SAAS,iBAqLtE"}