prostgles-server 4.2.549 → 4.2.550

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 (88) hide show
  1. package/dist/DboBuilder/TableHandler/TableHandler.d.ts +18 -5
  2. package/dist/DboBuilder/TableHandler/TableHandler.d.ts.map +1 -1
  3. package/dist/DboBuilder/TableHandler/TableHandler.js +12 -6
  4. package/dist/DboBuilder/TableHandler/TableHandler.js.map +1 -1
  5. package/dist/DboBuilder/TableHandler/delete.d.ts +1 -1
  6. package/dist/DboBuilder/TableHandler/delete.d.ts.map +1 -1
  7. package/dist/DboBuilder/TableHandler/delete.js +56 -13
  8. package/dist/DboBuilder/TableHandler/delete.js.map +1 -1
  9. package/dist/DboBuilder/TableHandler/executeHooksCheckAndPostValidation.d.ts +21 -0
  10. package/dist/DboBuilder/TableHandler/executeHooksCheckAndPostValidation.d.ts.map +1 -0
  11. package/dist/DboBuilder/TableHandler/executeHooksCheckAndPostValidation.js +69 -0
  12. package/dist/DboBuilder/TableHandler/executeHooksCheckAndPostValidation.js.map +1 -0
  13. package/dist/DboBuilder/TableHandler/insert/insert.d.ts.map +1 -1
  14. package/dist/DboBuilder/TableHandler/insert/insert.js +21 -11
  15. package/dist/DboBuilder/TableHandler/insert/insert.js.map +1 -1
  16. package/dist/DboBuilder/TableHandler/insert/insertNestedRecords.d.ts.map +1 -1
  17. package/dist/DboBuilder/TableHandler/insert/insertNestedRecords.js +1 -2
  18. package/dist/DboBuilder/TableHandler/insert/insertNestedRecords.js.map +1 -1
  19. package/dist/DboBuilder/TableHandler/onDeleteFromFileTable.d.ts.map +1 -1
  20. package/dist/DboBuilder/TableHandler/onDeleteFromFileTable.js +2 -1
  21. package/dist/DboBuilder/TableHandler/onDeleteFromFileTable.js.map +1 -1
  22. package/dist/DboBuilder/TableHandler/runInsertUpdateQuery.d.ts.map +1 -1
  23. package/dist/DboBuilder/TableHandler/runInsertUpdateQuery.js +24 -95
  24. package/dist/DboBuilder/TableHandler/runInsertUpdateQuery.js.map +1 -1
  25. package/dist/DboBuilder/TableHandler/update.d.ts.map +1 -1
  26. package/dist/DboBuilder/TableHandler/update.js +20 -12
  27. package/dist/DboBuilder/TableHandler/update.js.map +1 -1
  28. package/dist/DboBuilder/TableHandler/updateBatch.d.ts.map +1 -1
  29. package/dist/DboBuilder/TableHandler/updateBatch.js +13 -1
  30. package/dist/DboBuilder/TableHandler/updateBatch.js.map +1 -1
  31. package/dist/DboBuilder/ViewHandler/ViewHandler.d.ts +1 -1
  32. package/dist/DboBuilder/ViewHandler/ViewHandler.d.ts.map +1 -1
  33. package/dist/DboBuilder/ViewHandler/ViewHandler.js +5 -5
  34. package/dist/DboBuilder/ViewHandler/ViewHandler.js.map +1 -1
  35. package/dist/DboBuilder/ViewHandler/count.d.ts.map +1 -1
  36. package/dist/DboBuilder/ViewHandler/count.js +20 -8
  37. package/dist/DboBuilder/ViewHandler/count.js.map +1 -1
  38. package/dist/DboBuilder/ViewHandler/find.d.ts +0 -12
  39. package/dist/DboBuilder/ViewHandler/find.d.ts.map +1 -1
  40. package/dist/DboBuilder/ViewHandler/find.js +27 -75
  41. package/dist/DboBuilder/ViewHandler/find.js.map +1 -1
  42. package/dist/DboBuilder/ViewHandler/getReturnTypeQuery.d.ts +14 -0
  43. package/dist/DboBuilder/ViewHandler/getReturnTypeQuery.d.ts.map +1 -0
  44. package/dist/DboBuilder/ViewHandler/getReturnTypeQuery.js +32 -0
  45. package/dist/DboBuilder/ViewHandler/getReturnTypeQuery.js.map +1 -0
  46. package/dist/DboBuilder/ViewHandler/size.d.ts.map +1 -1
  47. package/dist/DboBuilder/ViewHandler/size.js +23 -8
  48. package/dist/DboBuilder/ViewHandler/size.js.map +1 -1
  49. package/dist/DboBuilder/dboBuilderUtils.d.ts +1 -1
  50. package/dist/DboBuilder/dboBuilderUtils.d.ts.map +1 -1
  51. package/dist/DboBuilder/dboBuilderUtils.js +2 -2
  52. package/dist/DboBuilder/dboBuilderUtils.js.map +1 -1
  53. package/dist/DboBuilder/parseUpdateRules.js +1 -1
  54. package/dist/DboBuilder/parseUpdateRules.js.map +1 -1
  55. package/dist/PublishParser/publishTypesAndUtils.d.ts +34 -1
  56. package/dist/PublishParser/publishTypesAndUtils.d.ts.map +1 -1
  57. package/dist/PublishParser/publishTypesAndUtils.js.map +1 -1
  58. package/dist/TableConfig/TableConfig.d.ts +3 -15
  59. package/dist/TableConfig/TableConfig.d.ts.map +1 -1
  60. package/dist/TableConfig/TableConfig.js.map +1 -1
  61. package/dist/TableConfig/getCreateSchemaQueries.d.ts +4 -28
  62. package/dist/TableConfig/getCreateSchemaQueries.d.ts.map +1 -1
  63. package/dist/TableConfig/getTableConfigSchemaQueries.d.ts +4 -28
  64. package/dist/TableConfig/getTableConfigSchemaQueries.d.ts.map +1 -1
  65. package/dist/utils/utils.d.ts +1 -0
  66. package/dist/utils/utils.d.ts.map +1 -1
  67. package/dist/utils/utils.js +3 -1
  68. package/dist/utils/utils.js.map +1 -1
  69. package/lib/DboBuilder/TableHandler/TableHandler.ts +21 -6
  70. package/lib/DboBuilder/TableHandler/delete.ts +83 -15
  71. package/lib/DboBuilder/TableHandler/executeHooksCheckAndPostValidation.ts +88 -0
  72. package/lib/DboBuilder/TableHandler/insert/insert.ts +25 -11
  73. package/lib/DboBuilder/TableHandler/insert/insertNestedRecords.ts +1 -2
  74. package/lib/DboBuilder/TableHandler/onDeleteFromFileTable.ts +7 -5
  75. package/lib/DboBuilder/TableHandler/runInsertUpdateQuery.ts +34 -110
  76. package/lib/DboBuilder/TableHandler/update.ts +21 -12
  77. package/lib/DboBuilder/TableHandler/updateBatch.ts +15 -2
  78. package/lib/DboBuilder/ViewHandler/ViewHandler.ts +5 -5
  79. package/lib/DboBuilder/ViewHandler/count.ts +24 -9
  80. package/lib/DboBuilder/ViewHandler/find.ts +35 -96
  81. package/lib/DboBuilder/ViewHandler/getReturnTypeQuery.ts +50 -0
  82. package/lib/DboBuilder/ViewHandler/size.ts +26 -12
  83. package/lib/DboBuilder/dboBuilderUtils.ts +1 -1
  84. package/lib/DboBuilder/parseUpdateRules.ts +1 -1
  85. package/lib/PublishParser/publishTypesAndUtils.ts +42 -1
  86. package/lib/TableConfig/TableConfig.ts +4 -18
  87. package/lib/utils/utils.ts +2 -0
  88. package/package.json +1 -1
@@ -171,7 +171,7 @@ export async function parseUpdateRules(
171
171
  rows: [data],
172
172
  allowedCols,
173
173
  dbTx: this.tx?.dbTX || this.dboBuilder.dbo,
174
- tx: localParams?.tx?.t || this.tx?.t || this.db,
174
+ tx: this.getTransaction(localParams)?.t || this.db,
175
175
  validationOptions: {
176
176
  validate: updateValidate,
177
177
  localParams,
@@ -60,6 +60,10 @@ export type ValidateRowArgsCommon<R = AnyObject, DBX = DBHandlerServer> = {
60
60
  dbx: DBX;
61
61
  tx: pgPromise.ITask<{}> | DB;
62
62
  } & (
63
+ | {
64
+ command: "delete";
65
+ data: unknown;
66
+ }
63
67
  | {
64
68
  command: "insert";
65
69
  data: R;
@@ -70,21 +74,57 @@ export type ValidateRowArgsCommon<R = AnyObject, DBX = DBHandlerServer> = {
70
74
  }
71
75
  );
72
76
 
77
+ export type AfterEachTsTrigger<R, DBX> = {
78
+ commands: Partial<Record<"insert" | "update" | "delete", 1>>;
79
+ changedFields?: string[];
80
+ validate: (
81
+ params: ValidateRowArgsCommon<R, DBX> & {
82
+ localParams: undefined | LocalParams;
83
+ },
84
+ ) => Promise<void>;
85
+ };
86
+
73
87
  export type ValidateRowsArgsCommon<R = AnyObject, DBX = DBHandlerServer> = {
88
+ /**
89
+ * The rows that were inserted/updated/deleted
90
+ * For delete the rows are the ones that were deleted (before delete)
91
+ * For insert the rows are the ones that were inserted (after insert)
92
+ * For update the rows are the ones that were updated (after update)
93
+ */
74
94
  rows: R[];
75
95
  dbx: DBX;
76
96
  tx: pgPromise.ITask<{}> | DB;
77
97
  } & (
98
+ | {
99
+ command: "delete";
100
+ data: unknown;
101
+ }
78
102
  | {
79
103
  command: "insert";
104
+ /**
105
+ * The data that was used to insert the rows.
106
+ */
80
107
  data: R[];
81
108
  }
82
109
  | {
83
110
  command: "update";
111
+ /**
112
+ * The data that was used to update the rows.
113
+ */
84
114
  data: Partial<R>[];
85
115
  }
86
116
  );
87
117
 
118
+ export type AfterAllTsTrigger<R, DBX> = {
119
+ commands: Partial<Record<"insert" | "update" | "delete", 1>>;
120
+ changedFields?: string[];
121
+ validate: (
122
+ params: ValidateRowsArgsCommon<R, DBX> & {
123
+ localParams: undefined | LocalParams;
124
+ },
125
+ ) => Promise<void>;
126
+ };
127
+
88
128
  export type ValidateRowArgs<R = AnyObject, DBX = DBHandlerServer> = ValidateRowArgsCommon<
89
129
  R,
90
130
  DBX
@@ -187,7 +227,8 @@ export type InsertRule<
187
227
  preValidate?: S extends DBSchema ? ValidateRow<Cols, S> : ValidateRowBasic;
188
228
 
189
229
  /**
190
- * Validation logic to check/update data for each request. Happens after publish rule checks (for fields, forcedData/forcedFilter)
230
+ * Validation logic to check/update data for each request.
231
+ * Happens after publish rule checks (for fields, forcedData/forcedFilter) but before insert.
191
232
  */
192
233
  validate?: S extends DBSchema ? ValidateRow<Cols, S> : ValidateRowBasic;
193
234
 
@@ -14,6 +14,8 @@ import { uploadFile } from "../DboBuilder/uploadFile";
14
14
  import type { DBOFullyTyped } from "../DBSchemaBuilder/DBSchemaBuilder";
15
15
  import type { DB, DBHandlerServer, Prostgles } from "../Prostgles";
16
16
  import type {
17
+ AfterAllTsTrigger,
18
+ AfterEachTsTrigger,
17
19
  InsertRule,
18
20
  SyncConfig,
19
21
  ValidateRowArgsCommon,
@@ -66,24 +68,8 @@ type BaseTableDefinition<R = AnyObject, DBX = DBHandlerServer> = {
66
68
  getPreInsertRow?: (
67
69
  args: GetPreInsertRowArgs,
68
70
  ) => Promise<{ row: AnyObject; onInserted: Promise<void> }>;
69
- afterEach?: {
70
- commands: Partial<Record<"insert" | "update", 1>>;
71
- changedFields?: string[];
72
- validate: (
73
- params: ValidateRowArgsCommon<R, DBX> & {
74
- localParams: undefined | LocalParams;
75
- },
76
- ) => Promise<void>;
77
- }[];
78
- afterAll?: {
79
- commands: Partial<Record<"insert" | "update", 1>>;
80
- changedFields?: string[];
81
- validate: (
82
- params: ValidateRowsArgsCommon<R, DBX> & {
83
- localParams: undefined | LocalParams;
84
- },
85
- ) => Promise<void>;
86
- }[];
71
+ afterEach?: AfterEachTsTrigger<R, DBX>[];
72
+ afterAll?: AfterAllTsTrigger<R, DBX>[];
87
73
  };
88
74
  triggers?: {
89
75
  [triggerName: string]: {
@@ -25,3 +25,5 @@ const canBeUsedAsIsInTypescript = (str: string): boolean => {
25
25
  const startsWithCharOrUnderscore = str[0]?.match(/^[a-z_]+$/i);
26
26
  return Boolean(isAlphaNumericOrUnderline && startsWithCharOrUnderscore);
27
27
  };
28
+
29
+ export const isArray = <T>(data: T): data is Extract<T, readonly unknown[]> => Array.isArray(data);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "prostgles-server",
3
- "version": "4.2.549",
3
+ "version": "4.2.550",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",