prostgles-server 4.0.16 → 4.0.18

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 (135) hide show
  1. package/dist/AuthHandler.js +214 -210
  2. package/dist/AuthHandler.js.map +1 -1
  3. package/dist/DBEventsManager.js +34 -31
  4. package/dist/DBEventsManager.js.map +1 -1
  5. package/dist/DBSchemaBuilder.js +3 -2
  6. package/dist/DBSchemaBuilder.js.map +1 -1
  7. package/dist/DboBuilder/QueryBuilder/QueryBuilder.d.ts +19 -14
  8. package/dist/DboBuilder/QueryBuilder/QueryBuilder.d.ts.map +1 -1
  9. package/dist/DboBuilder/QueryBuilder/QueryBuilder.js +159 -151
  10. package/dist/DboBuilder/QueryBuilder/QueryBuilder.js.map +1 -1
  11. package/dist/DboBuilder/TableHandler.d.ts +9 -14
  12. package/dist/DboBuilder/TableHandler.d.ts.map +1 -1
  13. package/dist/DboBuilder/TableHandler.js +21 -41
  14. package/dist/DboBuilder/TableHandler.js.map +1 -1
  15. package/dist/DboBuilder/ViewHandler.d.ts +3 -3
  16. package/dist/DboBuilder/ViewHandler.d.ts.map +1 -1
  17. package/dist/DboBuilder/ViewHandler.js +24 -9
  18. package/dist/DboBuilder/ViewHandler.js.map +1 -1
  19. package/dist/DboBuilder/getSubscribeRelatedTables.d.ts +1 -1
  20. package/dist/DboBuilder/getSubscribeRelatedTables.d.ts.map +1 -1
  21. package/dist/DboBuilder/parseUpdateRules.d.ts.map +1 -1
  22. package/dist/DboBuilder/parseUpdateRules.js.map +1 -1
  23. package/dist/DboBuilder/runSQL.js +5 -5
  24. package/dist/DboBuilder/runSQL.js.map +1 -1
  25. package/dist/DboBuilder.d.ts.map +1 -1
  26. package/dist/DboBuilder.js +85 -78
  27. package/dist/DboBuilder.js.map +1 -1
  28. package/dist/FileManager/FileManager.d.ts +143 -0
  29. package/dist/FileManager/FileManager.d.ts.map +1 -0
  30. package/dist/FileManager/FileManager.js +278 -0
  31. package/dist/FileManager/FileManager.js.map +1 -0
  32. package/dist/FileManager/initFileManager.d.ts +4 -0
  33. package/dist/FileManager/initFileManager.d.ts.map +1 -0
  34. package/dist/FileManager/initFileManager.js +209 -0
  35. package/dist/FileManager/initFileManager.js.map +1 -0
  36. package/dist/FileManager/parseFile.d.ts +15 -0
  37. package/dist/FileManager/parseFile.d.ts.map +1 -0
  38. package/dist/FileManager/parseFile.js +59 -0
  39. package/dist/FileManager/parseFile.js.map +1 -0
  40. package/dist/FileManager/upload.d.ts +6 -0
  41. package/dist/FileManager/upload.d.ts.map +1 -0
  42. package/dist/FileManager/upload.js +76 -0
  43. package/dist/FileManager/upload.js.map +1 -0
  44. package/dist/FileManager/uploadStream.d.ts +5 -0
  45. package/dist/FileManager/uploadStream.d.ts.map +1 -0
  46. package/dist/FileManager/uploadStream.js +70 -0
  47. package/dist/FileManager/uploadStream.js.map +1 -0
  48. package/dist/Filtering.d.ts +1 -1
  49. package/dist/Filtering.d.ts.map +1 -1
  50. package/dist/PostgresNotifListenManager.js +26 -20
  51. package/dist/PostgresNotifListenManager.js.map +1 -1
  52. package/dist/Prostgles.d.ts +2 -2
  53. package/dist/Prostgles.d.ts.map +1 -1
  54. package/dist/Prostgles.js +192 -172
  55. package/dist/Prostgles.js.map +1 -1
  56. package/dist/PubSubManager/PubSubManager.d.ts +3 -3
  57. package/dist/PubSubManager/PubSubManager.js +164 -154
  58. package/dist/PubSubManager/PubSubManager.js.map +1 -1
  59. package/dist/PublishParser.d.ts +13 -13
  60. package/dist/PublishParser.d.ts.map +1 -1
  61. package/dist/PublishParser.js +8 -2
  62. package/dist/PublishParser.js.map +1 -1
  63. package/dist/SchemaWatch.js +2 -1
  64. package/dist/SchemaWatch.js.map +1 -1
  65. package/dist/TableConfig/TableConfig.d.ts.map +1 -1
  66. package/dist/TableConfig/TableConfig.js +100 -92
  67. package/dist/TableConfig/TableConfig.js.map +1 -1
  68. package/lib/AuthHandler.js +1 -1
  69. package/lib/AuthHandler.ts +1 -1
  70. package/lib/DBSchemaBuilder.js +3 -2
  71. package/lib/DBSchemaBuilder.ts +3 -2
  72. package/lib/DboBuilder/TableHandler.d.ts +4 -9
  73. package/lib/DboBuilder/TableHandler.d.ts.map +1 -1
  74. package/lib/DboBuilder/TableHandler.js +1 -22
  75. package/lib/DboBuilder/TableHandler.ts +3 -31
  76. package/lib/DboBuilder/ViewHandler.ts +1 -1
  77. package/lib/DboBuilder/getSubscribeRelatedTables.d.ts +1 -1
  78. package/lib/DboBuilder/getSubscribeRelatedTables.d.ts.map +1 -1
  79. package/lib/DboBuilder/getSubscribeRelatedTables.ts +1 -1
  80. package/lib/DboBuilder/parseUpdateRules.d.ts.map +1 -1
  81. package/lib/DboBuilder/parseUpdateRules.ts +2 -2
  82. package/lib/DboBuilder.d.ts.map +1 -1
  83. package/lib/DboBuilder.js +0 -13
  84. package/lib/DboBuilder.ts +1 -16
  85. package/lib/{FileManager.d.ts → FileManager/FileManager.d.ts} +12 -20
  86. package/lib/FileManager/FileManager.d.ts.map +1 -0
  87. package/lib/FileManager/FileManager.js +303 -0
  88. package/lib/FileManager/FileManager.ts +378 -0
  89. package/lib/FileManager/initFileManager.d.ts +4 -0
  90. package/lib/FileManager/initFileManager.d.ts.map +1 -0
  91. package/lib/FileManager/initFileManager.js +231 -0
  92. package/lib/FileManager/initFileManager.ts +236 -0
  93. package/lib/FileManager/parseFile.d.ts +15 -0
  94. package/lib/FileManager/parseFile.d.ts.map +1 -0
  95. package/lib/FileManager/parseFile.js +58 -0
  96. package/lib/FileManager/parseFile.ts +69 -0
  97. package/lib/FileManager/upload.d.ts +6 -0
  98. package/lib/FileManager/upload.d.ts.map +1 -0
  99. package/lib/FileManager/upload.js +98 -0
  100. package/lib/FileManager/upload.ts +83 -0
  101. package/lib/FileManager/uploadStream.d.ts +5 -0
  102. package/lib/FileManager/uploadStream.d.ts.map +1 -0
  103. package/lib/FileManager/uploadStream.js +92 -0
  104. package/lib/FileManager/uploadStream.ts +80 -0
  105. package/lib/Filtering.d.ts +1 -1
  106. package/lib/Filtering.d.ts.map +1 -1
  107. package/lib/Filtering.ts +1 -1
  108. package/lib/JSONBValidation/validate_jsonb_schema_sql.ts +1 -1
  109. package/lib/Prostgles.d.ts +2 -2
  110. package/lib/Prostgles.d.ts.map +1 -1
  111. package/lib/Prostgles.js +8 -5
  112. package/lib/Prostgles.ts +10 -6
  113. package/lib/PublishParser.d.ts +13 -13
  114. package/lib/PublishParser.d.ts.map +1 -1
  115. package/lib/PublishParser.js +1 -0
  116. package/lib/PublishParser.ts +13 -12
  117. package/lib/TableConfig/TableConfig.d.ts.map +1 -1
  118. package/lib/TableConfig/TableConfig.js +12 -7
  119. package/lib/TableConfig/TableConfig.ts +13 -8
  120. package/package.json +3 -3
  121. package/tests/client/PID.txt +1 -1
  122. package/tests/client/index.d.ts.map +1 -1
  123. package/tests/client/index.ts +1 -3
  124. package/tests/client/package-lock.json +31 -4561
  125. package/tests/client/package.json +2 -2
  126. package/tests/client/tsconfig.json +1 -0
  127. package/tests/isomorphic_queries.d.ts.map +1 -1
  128. package/tests/isomorphic_queries.ts +3 -3
  129. package/tests/server/package-lock.json +13 -13
  130. package/tests/server/package.json +1 -1
  131. package/tests/server/tsconfig.json +1 -0
  132. package/tsconfig.json +3 -2
  133. package/lib/FileManager.d.ts.map +0 -1
  134. package/lib/FileManager.js +0 -676
  135. package/lib/FileManager.ts +0 -811
@@ -21,45 +21,17 @@ type ValidatedParams = {
21
21
  fixIssues: boolean;
22
22
  }
23
23
 
24
- export class TableHandler extends ViewHandler {
25
- io_stats: {
26
- throttle_queries_per_sec: number;
27
- since: number,
28
- queries: number,
29
- batching: string[] | null
30
- }
24
+ export class TableHandler extends ViewHandler {
31
25
 
32
26
  constructor(db: DB, tableOrViewInfo: TableSchema, dboBuilder: DboBuilder, t?: pgPromise.ITask<{}>, dbTX?: TableHandlers, joinPaths?: JoinPaths) {
33
27
  super(db, tableOrViewInfo, dboBuilder, t, dbTX, joinPaths);
34
28
 
35
29
  this.remove = this.delete;
36
30
 
37
- this.io_stats = {
38
- since: Date.now(),
39
- queries: 0,
40
- throttle_queries_per_sec: 500,
41
- batching: null
42
- };
43
31
  this.is_view = false;
44
32
  this.is_media = dboBuilder.prostgles.isMedia(this.name)
45
33
  }
46
34
 
47
- /* TO DO: Maybe finished query batching */
48
- willBatch(query: string) {
49
- const now = Date.now();
50
- if (this.io_stats.since < Date.now()) {
51
- this.io_stats.since = Date.now();
52
- this.io_stats.queries = 0;
53
- } else {
54
- this.io_stats.queries++;
55
- }
56
-
57
- if (this.io_stats.queries > this.io_stats.throttle_queries_per_sec) {
58
-
59
- return true;
60
- }
61
- }
62
-
63
35
 
64
36
  async updateBatch(data: [Filter, AnyObject][], params?: UpdateParams, tableRules?: TableRule, localParams?: LocalParams): Promise<any> {
65
37
  try {
@@ -181,7 +153,7 @@ export class TableHandler extends ViewHandler {
181
153
  }
182
154
 
183
155
  /* External request. Cannot sync from server */
184
- async sync(filter: Filter, params: SelectParams, param3_unused: undefined, table_rules: TableRule, localParams: LocalParams) {
156
+ async sync(filter: Filter, params: { select?: FieldFilter }, param3_unused: undefined, table_rules: TableRule, localParams: LocalParams) {
185
157
  if (!localParams) throw "Sync not allowed within the same server code";
186
158
  const { socket } = localParams;
187
159
  if (!socket) throw "INTERNAL ERROR: socket missing";
@@ -214,7 +186,7 @@ export class TableHandler extends ViewHandler {
214
186
  throw `INTERNAL ERROR: sync field missing from publish.${this.name}.select.fields`;
215
187
  }
216
188
  const select = this.getAllowedSelectFields(
217
- (params || {})?.select || "*",
189
+ params?.select ?? "*",
218
190
  allowedSelect,
219
191
  false
220
192
  );
@@ -1293,4 +1293,4 @@ function validateObj<T extends Record<string, any>>(obj: T, allowedKeys: string[
1293
1293
  }
1294
1294
 
1295
1295
  return obj;
1296
- }
1296
+ }
@@ -4,7 +4,7 @@ import { TableRule } from "../PublishParser";
4
4
  import { ViewSubscriptionOptions } from "../PubSubManager/PubSubManager";
5
5
  import { ViewHandler } from "./ViewHandler";
6
6
  type Args = {
7
- selectParams: Omit<SubscribeParams<any>, "throttle">;
7
+ selectParams: Omit<SubscribeParams, "throttle">;
8
8
  filter: Filter;
9
9
  table_rules: TableRule<AnyObject, void> | undefined;
10
10
  localParams: LocalParams | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"getSubscribeRelatedTables.d.ts","sourceRoot":"","sources":["getSubscribeRelatedTables.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAU,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,EAAE,WAAW,EAAwB,MAAM,eAAe,CAAC;AAC9F,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAO,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAE9E,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,KAAK,IAAI,GAAG;IACV,YAAY,EAAE,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,UAAU,CAAC,CAAC;IACrD,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,SAAS,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC;IACpD,WAAW,EAAE,WAAW,GAAG,SAAS,CAAC;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE;QACV,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,SAAS,CAAC;QAClB,MAAM,EAAE,kBAAkB,EAAE,CAAC;KAC9B,CAAC;CACH,CAAA;AACD,wBAAsB,yBAAyB,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE,IAAI,oCAmKjJ"}
1
+ {"version":3,"file":"getSubscribeRelatedTables.d.ts","sourceRoot":"","sources":["getSubscribeRelatedTables.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAU,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,EAAE,WAAW,EAAwB,MAAM,eAAe,CAAC;AAC9F,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAO,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAE9E,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,KAAK,IAAI,GAAG;IACV,YAAY,EAAE,IAAI,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;IAChD,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,SAAS,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC;IACpD,WAAW,EAAE,WAAW,GAAG,SAAS,CAAC;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE;QACV,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,SAAS,CAAC;QAClB,MAAM,EAAE,kBAAkB,EAAE,CAAC;KAC9B,CAAC;CACH,CAAA;AACD,wBAAsB,yBAAyB,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE,IAAI,oCAmKjJ"}
@@ -6,7 +6,7 @@ import { NewQuery } from "./QueryBuilder/QueryBuilder";
6
6
  import { ViewHandler } from "./ViewHandler";
7
7
 
8
8
  type Args = {
9
- selectParams: Omit<SubscribeParams<any>, "throttle">;
9
+ selectParams: Omit<SubscribeParams, "throttle">;
10
10
  filter: Filter;
11
11
  table_rules: TableRule<AnyObject, void> | undefined;
12
12
  localParams: LocalParams | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"parseUpdateRules.d.ts","sourceRoot":"","sources":["parseUpdateRules.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAa,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAClF,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,SAAS,EAAc,WAAW,EAAqB,MAAM,kBAAkB,CAAC;AACzF,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,YAAY,EAClB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,SAAS,EAClB,MAAM,CAAC,EAAE,YAAY,EACrB,UAAU,CAAC,EAAE,SAAS,EACtB,WAAW,CAAC,EAAE,WAAW,GACxB,OAAO,CAAC;IACT,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,iBAAiB,EAAE,SAAS,CAAC;IAC7B,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,eAAe,EAAE,WAAW,CAAC;IAC7B,YAAY,CAAC,EAAE,WAAW,CAAC;CAC5B,CAAC,CA2ID"}
1
+ {"version":3,"file":"parseUpdateRules.d.ts","sourceRoot":"","sources":["parseUpdateRules.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAyB,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC9F,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,SAAS,EAAc,WAAW,EAAqB,MAAM,kBAAkB,CAAC;AACzF,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,YAAY,EAClB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,SAAS,EAClB,MAAM,CAAC,EAAE,YAAY,EACrB,UAAU,CAAC,EAAE,SAAS,EACtB,WAAW,CAAC,EAAE,WAAW,GACxB,OAAO,CAAC;IACT,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,iBAAiB,EAAE,SAAS,CAAC;IAC7B,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,eAAe,EAAE,WAAW,CAAC;IAC7B,YAAY,CAAC,EAAE,WAAW,CAAC;CAC5B,CAAC,CA2ID"}
@@ -1,4 +1,4 @@
1
- import { AnyObject, FieldFilter, isDefined, UpdateParams } from "prostgles-types";
1
+ import { AnyObject, FieldFilter, FullFilter, isDefined, UpdateParams } from "prostgles-types";
2
2
  import { Filter, LocalParams } from "../DboBuilder";
3
3
  import { TableRule, UpdateRule, ValidateRow, ValidateUpdateRow } from "../PublishParser";
4
4
  import { TableHandler } from "./TableHandler";
@@ -100,7 +100,7 @@ export async function parseUpdateRules(
100
100
  /** Pick dynamicFields.fields if matching filter */
101
101
  let matchedRule: Required<UpdateRule>["dynamicFields"][number] | undefined;
102
102
  for await (const dfRule of tableRules.update.dynamicFields) {
103
- const match = await this.findOne({ $and: [finalUpdateFilter, dfRule.filter].filter(isDefined) });
103
+ const match = await this.findOne({ $and: ([finalUpdateFilter, dfRule.filter] as AnyObject[]).filter(isDefined) });
104
104
 
105
105
  if (match) {
106
106
 
@@ -1 +1 @@
1
- {"version":3,"file":"DboBuilder.d.ts","sourceRoot":"","sources":["DboBuilder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DboBuilder.d.ts","sourceRoot":"","sources":["DboBuilder.ts"],"names":[],"mappings":"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"}
package/lib/DboBuilder.js CHANGED
@@ -32,19 +32,6 @@ const Bluebird = __importStar(require("bluebird"));
32
32
  const pgPromise = __importStar(require("pg-promise"));
33
33
  const runSQL_1 = require("./DboBuilder/runSQL");
34
34
  const prostgles_types_1 = require("prostgles-types");
35
- // export const getFilterFields = (f: Filter | any, $and_key: string, $or_key: string, prevFields: string[] = []): string[] => {
36
- // if(Array.isArray(f)){
37
- // return f.flatMap(_f => getFilterFields(_f, $and_key, $or_key, prevFields) );
38
- // }
39
- // if($and_key in f && Array.isArray(f[$and_key]) ){
40
- // return f[$and_key].flatMap((_f: any) => getFilterFields(_f, $and_key, $or_key, prevFields) );
41
- // } else if($or_key in f && Array.isArray(f[$or_key]) ){
42
- // return f[$or_key].flatMap((_f: any) => getFilterFields(_f, $and_key, $or_key, prevFields) );
43
- // } else if(isObject(f)){
44
- // const filter:
45
- // }
46
- // return []
47
- // }
48
35
  const utils_1 = require("./utils");
49
36
  const PubSubManager_1 = require("./PubSubManager/PubSubManager");
50
37
  const ViewHandler_1 = require("./DboBuilder/ViewHandler");
package/lib/DboBuilder.ts CHANGED
@@ -69,22 +69,7 @@ export type DBHandlerServer<TH = TableHandlers> =
69
69
  } & {
70
70
  tx?: TX<TH>
71
71
  }
72
-
73
- // export const getFilterFields = (f: Filter | any, $and_key: string, $or_key: string, prevFields: string[] = []): string[] => {
74
- // if(Array.isArray(f)){
75
- // return f.flatMap(_f => getFilterFields(_f, $and_key, $or_key, prevFields) );
76
- // }
77
- // if($and_key in f && Array.isArray(f[$and_key]) ){
78
- // return f[$and_key].flatMap((_f: any) => getFilterFields(_f, $and_key, $or_key, prevFields) );
79
- // } else if($or_key in f && Array.isArray(f[$or_key]) ){
80
- // return f[$or_key].flatMap((_f: any) => getFilterFields(_f, $and_key, $or_key, prevFields) );
81
- // } else if(isObject(f)){
82
- // const filter:
83
- // }
84
-
85
- // return []
86
- // }
87
-
72
+
88
73
 
89
74
  import { clone } from "./utils";
90
75
  import { FieldSpec, } from "./DboBuilder/QueryBuilder/Functions";
@@ -2,10 +2,12 @@
2
2
  /// <reference types="node" />
3
3
  import { S3 } from 'aws-sdk';
4
4
  import * as stream from 'stream';
5
- import { DB, DBHandlerServer, ExpressApp, Prostgles } from './Prostgles';
5
+ import { DB, DBHandlerServer, ExpressApp, Prostgles } from '../Prostgles';
6
6
  import { ALLOWED_CONTENT_TYPE, ALLOWED_EXTENSION, ValidatedColumnInfo } from 'prostgles-types';
7
+ import AWS from 'aws-sdk';
8
+ export declare const HOUR: number;
7
9
  export declare const asSQLIdentifier: (name: string, db: DB) => Promise<string>;
8
- type OnProgress = (progress: S3.ManagedUpload.Progress) => void;
10
+ export type OnProgress = (progress: S3.ManagedUpload.Progress) => void;
9
11
  export type ImageOptions = {
10
12
  keepMetadata?: boolean;
11
13
  compression?:
@@ -65,8 +67,7 @@ export type UploadedItem = {
65
67
  */
66
68
  content_length: number;
67
69
  };
68
- import AWS from 'aws-sdk';
69
- export default class FileManager {
70
+ export declare class FileManager {
70
71
  static testCredentials: (accessKeyId: string, secretAccessKey: string) => Promise<import("aws-sdk/lib/request").PromiseResult<AWS.STS.GetCallerIdentityResponse, AWS.AWSError>>;
71
72
  s3Client?: S3;
72
73
  config: S3Config | LocalConfig;
@@ -75,25 +76,17 @@ export default class FileManager {
75
76
  get dbo(): DBHandlerServer;
76
77
  get db(): DB;
77
78
  tableName?: string;
78
- private fileRoute?;
79
+ fileRoute?: string;
79
80
  get fileRouteExpress(): string;
80
81
  private checkInterval?;
81
82
  constructor(config: FileManager["config"], imageOptions?: ImageOptions);
82
83
  getFileStream(name: string): Promise<stream.Readable>;
83
84
  deleteFile(name: string): Promise<true | import("aws-sdk/lib/request").PromiseResult<S3.DeleteObjectOutput, AWS.AWSError>>;
84
- parseFile(args: {
85
- file: Buffer | string;
86
- fileName: string;
87
- colName?: string;
88
- tableName?: string;
89
- }): Promise<{
90
- mime: string | ALLOWED_CONTENT_TYPE;
91
- ext: string | ALLOWED_EXTENSION;
92
- }>;
93
- getFileUrl: (name: string) => string;
85
+ parseFile: any;
86
+ getLocalFileUrl: (name: string) => string;
94
87
  checkFreeSpace: (folderPath: string, fileSize?: number) => Promise<void>;
95
- uploadStream: (name: string, mime: string, onProgress?: OnProgress, onError?: (error: any) => void, onEnd?: (item: UploadedItem) => void, expectedSizeBytes?: number) => stream.PassThrough;
96
- private upload;
88
+ uploadStream: any;
89
+ upload: any;
97
90
  uploadAsMedia: (params: {
98
91
  item: UploadItem;
99
92
  allowedExtensions?: Array<ALLOWED_EXTENSION>;
@@ -101,12 +94,12 @@ export default class FileManager {
101
94
  imageOptions?: ImageOptions;
102
95
  }) => Promise<UploadedItem>;
103
96
  getFileS3URL(fileName: string, expiresInSeconds?: number): Promise<string>;
104
- private parseSQLIdentifier;
97
+ parseSQLIdentifier: (name: string) => Promise<string>;
105
98
  getColInfo: (args: {
106
99
  tableName: string;
107
100
  colName: string;
108
101
  }) => ValidatedColumnInfo["file"] | undefined;
109
- init: (prg: Prostgles) => Promise<void>;
102
+ init: any;
110
103
  destroy: () => void;
111
104
  }
112
105
  export declare const removeExpressRoute: (app: ExpressApp | undefined, routePaths: (string | undefined)[]) => void;
@@ -119,7 +112,6 @@ export declare const getFileType: (file: Buffer | string, fileName: string) => P
119
112
  ext: ALLOWED_EXTENSION;
120
113
  }>;
121
114
  export declare function bytesToSize(bytes: number): string;
122
- export {};
123
115
  /**
124
116
  *
125
117
 
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileManager.d.ts","sourceRoot":"","sources":["FileManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,303 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.bytesToSize = exports.getFileType = exports.getFileTypeFromFilename = exports.removeExpressRoute = exports.FileManager = exports.asSQLIdentifier = exports.HOUR = void 0;
30
+ const aws_sdk_1 = require("aws-sdk");
31
+ // import { PutObjectCommand, S3 } from "@aws-sdk/client-s3";
32
+ const fs = __importStar(require("fs"));
33
+ const sharp = __importStar(require("sharp"));
34
+ const check_disk_space_1 = __importDefault(require("check-disk-space"));
35
+ const prostgles_types_1 = require("prostgles-types");
36
+ const aws_sdk_2 = __importDefault(require("aws-sdk"));
37
+ const path = __importStar(require("path"));
38
+ const initFileManager_1 = require("./initFileManager");
39
+ const parseFile_1 = require("./parseFile");
40
+ const upload_1 = require("./upload");
41
+ const uploadStream_1 = require("./uploadStream");
42
+ exports.HOUR = 3600 * 1000;
43
+ const asSQLIdentifier = async (name, db) => {
44
+ return (await db.one("select format('%I', $1) as name", [name]))?.name;
45
+ };
46
+ exports.asSQLIdentifier = asSQLIdentifier;
47
+ class FileManager {
48
+ static testCredentials = async (accessKeyId, secretAccessKey) => {
49
+ const sts = new aws_sdk_2.default.STS();
50
+ aws_sdk_2.default.config.credentials = {
51
+ accessKeyId,
52
+ secretAccessKey
53
+ };
54
+ const ident = await sts.getCallerIdentity({}).promise();
55
+ return ident;
56
+ };
57
+ s3Client;
58
+ config;
59
+ imageOptions;
60
+ prostgles;
61
+ get dbo() {
62
+ if (!this.prostgles?.dbo) {
63
+ // this.prostgles?.refreshDBO();
64
+ throw "this.prostgles.dbo missing";
65
+ }
66
+ return this.prostgles.dbo;
67
+ }
68
+ get db() {
69
+ if (!this.prostgles?.db)
70
+ throw "this.prostgles.db missing";
71
+ return this.prostgles.db;
72
+ }
73
+ tableName;
74
+ fileRoute;
75
+ get fileRouteExpress() {
76
+ return this.fileRoute + "/:name";
77
+ }
78
+ checkInterval;
79
+ constructor(config, imageOptions) {
80
+ this.config = config;
81
+ this.imageOptions = imageOptions;
82
+ if ("region" in config) {
83
+ const { region, accessKeyId, secretAccessKey } = config;
84
+ this.s3Client = new aws_sdk_1.S3({
85
+ region,
86
+ credentials: { accessKeyId, secretAccessKey },
87
+ });
88
+ }
89
+ const fullConfig = this.prostgles?.opts.fileTable;
90
+ if (fullConfig?.delayedDelete) {
91
+ this.checkInterval = setInterval(async () => {
92
+ const fileTable = fullConfig.tableName;
93
+ const daysDelay = fullConfig.delayedDelete?.deleteAfterNDays ?? 0;
94
+ if (fileTable && this.dbo[fileTable]?.delete && daysDelay) {
95
+ const filesToDelete = await this.dbo[fileTable]?.find?.({ deleted_from_storage: null, deleted: { ">": Date.now() - (daysDelay * exports.HOUR * 24) } }) ?? [];
96
+ for await (const file of filesToDelete) {
97
+ await this.deleteFile(file.name);
98
+ }
99
+ }
100
+ else {
101
+ console.error("FileManager checkInterval delayedDelete FAIL: Could not access file table tableHandler.delete()");
102
+ }
103
+ }, Math.max(10000, (fullConfig.delayedDelete.checkIntervalHours || 0) * exports.HOUR));
104
+ }
105
+ }
106
+ async getFileStream(name) {
107
+ if ("bucket" in this.config && this.s3Client) {
108
+ return this.s3Client.getObject({ Key: name, Bucket: this.config.bucket }).createReadStream();
109
+ }
110
+ else if ("localFolderPath" in this.config) {
111
+ const filePath = path.resolve(`${this.config.localFolderPath}/${name}`);
112
+ if (!fs.existsSync(filePath)) {
113
+ throw `File ${filePath} could not be found`;
114
+ }
115
+ return fs.createReadStream(filePath, { encoding: undefined });
116
+ }
117
+ else
118
+ throw new Error("Not expected");
119
+ }
120
+ async deleteFile(name) {
121
+ if ("bucket" in this.config && this.s3Client) {
122
+ const res = await this.s3Client?.deleteObject({ Bucket: this.config.bucket, Key: name }).promise();
123
+ return res;
124
+ }
125
+ else if ("localFolderPath" in this.config) {
126
+ const path = `${this.config.localFolderPath}/${name}`;
127
+ if (!fs.existsSync(path)) {
128
+ throw `File ${path} could not be found`;
129
+ }
130
+ fs.unlinkSync(path);
131
+ if (fs.existsSync(path))
132
+ throw new Error("Could not delete file");
133
+ }
134
+ return true;
135
+ }
136
+ parseFile = parseFile_1.parseFile.bind(this);
137
+ getLocalFileUrl = (name) => this.fileRoute ? `${this.fileRoute}/${name}` : "";
138
+ checkFreeSpace = async (folderPath, fileSize = 0) => {
139
+ if (!this.s3Client && "localFolderPath" in this.config) {
140
+ const { minFreeBytes = 1.048e6 } = this.config;
141
+ const required = Math.max(fileSize, minFreeBytes);
142
+ if (required) {
143
+ const diskSpace = await (0, check_disk_space_1.default)(folderPath);
144
+ if (diskSpace.free < required) {
145
+ const err = `There is not enough space on the server to save files.\nTotal: ${bytesToSize(diskSpace.size)} \nRemaning: ${bytesToSize(diskSpace.free)} \nRequired: ${bytesToSize(required)}`;
146
+ throw new Error(err);
147
+ }
148
+ }
149
+ }
150
+ };
151
+ uploadStream = uploadStream_1.uploadStream.bind(this);
152
+ upload = upload_1.upload.bind(this);
153
+ uploadAsMedia = async (params) => {
154
+ const { item, imageOptions } = params;
155
+ const { name, data, content_type, extension } = item;
156
+ if (!data)
157
+ throw "No file provided";
158
+ if (!name || typeof name !== "string")
159
+ throw "Expecting a string name";
160
+ // const type = await this.getMIME(data, name, allowedExtensions, dissallowedExtensions);
161
+ let _data = data;
162
+ /** Resize/compress/remove exif from photos */
163
+ if (content_type.startsWith("image") && extension.toLowerCase() !== "gif") {
164
+ const compression = imageOptions?.compression;
165
+ if (compression) {
166
+ console.log("Resizing image");
167
+ let opts;
168
+ if ("contain" in compression) {
169
+ opts = {
170
+ fit: sharp.fit.contain,
171
+ ...compression.contain
172
+ };
173
+ }
174
+ else if ("inside" in compression) {
175
+ opts = {
176
+ fit: sharp.fit.inside,
177
+ ...compression.inside
178
+ };
179
+ }
180
+ _data = await sharp(data)
181
+ .resize(opts)
182
+ .withMetadata(Boolean(imageOptions?.keepMetadata))
183
+ // .jpeg({ quality: 80 })
184
+ .toBuffer();
185
+ }
186
+ else if (!imageOptions?.keepMetadata) {
187
+ /**
188
+ * Remove exif
189
+ */
190
+ // const metadata = await simg.metadata();
191
+ // const simg = await sharp(data);
192
+ _data = await sharp(data).clone().withMetadata({
193
+ exif: {}
194
+ })
195
+ .toBuffer();
196
+ }
197
+ }
198
+ const res = await this.upload(_data, name, content_type);
199
+ return res;
200
+ };
201
+ async getFileS3URL(fileName, expiresInSeconds = 30 * 60) {
202
+ const params = {
203
+ Bucket: this.config.bucket,
204
+ Key: fileName,
205
+ Expires: Math.round(expiresInSeconds || 30 * 60) // Error if float
206
+ };
207
+ return await this.s3Client?.getSignedUrlPromise("getObject", params);
208
+ }
209
+ parseSQLIdentifier = async (name) => (0, exports.asSQLIdentifier)(name, this.prostgles.db); // this.prostgles.dbo.sql<"value">("select format('%I', $1)", [name], { returnType: "value" } )
210
+ getColInfo = (args) => {
211
+ const { colName, tableName } = args;
212
+ const tableConfig = this.prostgles?.opts.fileTable?.referencedTables?.[tableName];
213
+ const isReferencingFileTable = this.dbo[tableName]?.columns?.some(c => c.name === colName && c.references && c.references?.some(({ ftable }) => ftable === this.tableName));
214
+ if (isReferencingFileTable) {
215
+ if (tableConfig && typeof tableConfig !== "string") {
216
+ return tableConfig.referenceColumns[colName];
217
+ }
218
+ return { acceptedContent: "*" };
219
+ }
220
+ return undefined;
221
+ };
222
+ init = initFileManager_1.initFileManager.bind(this);
223
+ destroy = () => {
224
+ (0, exports.removeExpressRoute)(this.prostgles?.opts.fileTable?.expressApp, [this.fileRouteExpress]);
225
+ };
226
+ }
227
+ exports.FileManager = FileManager;
228
+ const removeExpressRoute = (app, routePaths) => {
229
+ const routes = app?._router?.stack;
230
+ if (routes) {
231
+ routes.forEach((route, i) => {
232
+ if (routePaths.filter(prostgles_types_1.isDefined).includes(route.route?.path)) {
233
+ routes.splice(i, 1);
234
+ }
235
+ });
236
+ }
237
+ };
238
+ exports.removeExpressRoute = removeExpressRoute;
239
+ const getFileTypeFromFilename = (fileName) => {
240
+ const nameParts = fileName.split(".");
241
+ if (nameParts.length < 2)
242
+ return undefined;
243
+ const nameExt = nameParts.at(-1).toLowerCase(), mime = (0, prostgles_types_1.getKeys)(prostgles_types_1.CONTENT_TYPE_TO_EXT).find(k => prostgles_types_1.CONTENT_TYPE_TO_EXT[k].includes(nameExt));
244
+ if (!mime)
245
+ return undefined;
246
+ return {
247
+ mime,
248
+ ext: nameExt,
249
+ };
250
+ };
251
+ exports.getFileTypeFromFilename = getFileTypeFromFilename;
252
+ // const fileType = require("file-type");
253
+ // const res = await fileType.fromBuffer(typeof file === "string"? Buffer.from(file, 'utf8') : file);
254
+ const getFileType = async (file, fileName) => {
255
+ const { fileTypeFromBuffer } = await eval('import("file-type")');
256
+ const fileNameMime = (0, exports.getFileTypeFromFilename)(fileName);
257
+ if (!fileNameMime?.ext)
258
+ throw new Error("File name must contain extenion");
259
+ const res = await fileTypeFromBuffer(typeof file === "string" ? Buffer.from(file, 'utf8') : file);
260
+ if (!res) {
261
+ /* Set correct/missing extension */
262
+ const nameExt = fileNameMime?.ext;
263
+ if (["xml", "txt", "csv", "tsv", "svg", "sql"].includes(nameExt) && fileNameMime.mime) {
264
+ return fileNameMime;
265
+ }
266
+ throw new Error("Could not get the file type from file buffer");
267
+ }
268
+ else {
269
+ if (!res.ext || fileNameMime?.ext.toLowerCase() !== res.ext.toLowerCase()) {
270
+ throw new Error(`There is a mismatch between file name extension and actual buffer extension: ${fileNameMime?.ext} vs ${res.ext}`);
271
+ }
272
+ }
273
+ return res;
274
+ };
275
+ exports.getFileType = getFileType;
276
+ function bytesToSize(bytes) {
277
+ const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB'];
278
+ if (bytes == 0)
279
+ return '0 Byte';
280
+ const i = parseInt(Math.floor(Math.log(bytes) / Math.log(1024)) + "");
281
+ return (bytes / Math.pow(1024, i)).toFixed(1) + ' ' + sizes[i];
282
+ }
283
+ exports.bytesToSize = bytesToSize;
284
+ /**
285
+ *
286
+
287
+
288
+ // if(content_type && typeof content_type !== "string") throw "Invalid content_type provided";
289
+ // if(title && typeof title !== "string") throw "Invalid title provided";
290
+ // let fExt = name.split(".").pop()
291
+ // if(content_type && name.split(".").length > 1 && fExt && fExt.length <= 4){
292
+ // type = {
293
+ // mime: content_type,
294
+ // ext: fExt,
295
+ // fileName: name,
296
+ // }
297
+ // } else {
298
+ // type = await this.getMIME(data, name);//, ["png", "jpg", "ogg", "webm", "pdf", "doc"]);
299
+ // }
300
+
301
+
302
+
303
+ */