prostgles-server 4.2.549 → 4.2.551
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/TableHandler/TableHandler.d.ts +14 -6
- package/dist/DboBuilder/TableHandler/TableHandler.d.ts.map +1 -1
- package/dist/DboBuilder/TableHandler/TableHandler.js +9 -9
- package/dist/DboBuilder/TableHandler/TableHandler.js.map +1 -1
- package/dist/DboBuilder/TableHandler/delete.d.ts +1 -1
- package/dist/DboBuilder/TableHandler/delete.d.ts.map +1 -1
- package/dist/DboBuilder/TableHandler/delete.js +56 -13
- package/dist/DboBuilder/TableHandler/delete.js.map +1 -1
- package/dist/DboBuilder/TableHandler/executeHooksCheckAndPostValidation.d.ts +21 -0
- package/dist/DboBuilder/TableHandler/executeHooksCheckAndPostValidation.d.ts.map +1 -0
- package/dist/DboBuilder/TableHandler/executeHooksCheckAndPostValidation.js +69 -0
- package/dist/DboBuilder/TableHandler/executeHooksCheckAndPostValidation.js.map +1 -0
- package/dist/DboBuilder/TableHandler/insert/insert.d.ts.map +1 -1
- package/dist/DboBuilder/TableHandler/insert/insert.js +30 -17
- package/dist/DboBuilder/TableHandler/insert/insert.js.map +1 -1
- package/dist/DboBuilder/TableHandler/insert/insertNestedRecords.d.ts.map +1 -1
- package/dist/DboBuilder/TableHandler/insert/insertNestedRecords.js +1 -2
- package/dist/DboBuilder/TableHandler/insert/insertNestedRecords.js.map +1 -1
- package/dist/DboBuilder/TableHandler/onDeleteFromFileTable.d.ts.map +1 -1
- package/dist/DboBuilder/TableHandler/onDeleteFromFileTable.js +2 -1
- package/dist/DboBuilder/TableHandler/onDeleteFromFileTable.js.map +1 -1
- package/dist/DboBuilder/TableHandler/runInsertUpdateQuery.d.ts.map +1 -1
- package/dist/DboBuilder/TableHandler/runInsertUpdateQuery.js +24 -95
- package/dist/DboBuilder/TableHandler/runInsertUpdateQuery.js.map +1 -1
- package/dist/DboBuilder/TableHandler/update.d.ts.map +1 -1
- package/dist/DboBuilder/TableHandler/update.js +21 -13
- package/dist/DboBuilder/TableHandler/update.js.map +1 -1
- package/dist/DboBuilder/TableHandler/updateBatch.d.ts.map +1 -1
- package/dist/DboBuilder/TableHandler/updateBatch.js +13 -1
- package/dist/DboBuilder/TableHandler/updateBatch.js.map +1 -1
- package/dist/DboBuilder/TableHandler/upsert.js +2 -2
- package/dist/DboBuilder/TableHandler/upsert.js.map +1 -1
- package/dist/DboBuilder/ViewHandler/ViewHandler.d.ts +6 -1
- package/dist/DboBuilder/ViewHandler/ViewHandler.d.ts.map +1 -1
- package/dist/DboBuilder/ViewHandler/ViewHandler.js +11 -5
- package/dist/DboBuilder/ViewHandler/ViewHandler.js.map +1 -1
- package/dist/DboBuilder/ViewHandler/count.d.ts.map +1 -1
- package/dist/DboBuilder/ViewHandler/count.js +20 -8
- package/dist/DboBuilder/ViewHandler/count.js.map +1 -1
- package/dist/DboBuilder/ViewHandler/find.d.ts +0 -12
- package/dist/DboBuilder/ViewHandler/find.d.ts.map +1 -1
- package/dist/DboBuilder/ViewHandler/find.js +28 -75
- package/dist/DboBuilder/ViewHandler/find.js.map +1 -1
- package/dist/DboBuilder/ViewHandler/getReturnTypeQuery.d.ts +14 -0
- package/dist/DboBuilder/ViewHandler/getReturnTypeQuery.d.ts.map +1 -0
- package/dist/DboBuilder/ViewHandler/getReturnTypeQuery.js +32 -0
- package/dist/DboBuilder/ViewHandler/getReturnTypeQuery.js.map +1 -0
- package/dist/DboBuilder/ViewHandler/size.d.ts.map +1 -1
- package/dist/DboBuilder/ViewHandler/size.js +23 -8
- package/dist/DboBuilder/ViewHandler/size.js.map +1 -1
- package/dist/DboBuilder/dboBuilderUtils.d.ts +1 -1
- package/dist/DboBuilder/dboBuilderUtils.d.ts.map +1 -1
- package/dist/DboBuilder/dboBuilderUtils.js +2 -2
- package/dist/DboBuilder/dboBuilderUtils.js.map +1 -1
- package/dist/DboBuilder/parseUpdateRules.js +1 -1
- package/dist/DboBuilder/parseUpdateRules.js.map +1 -1
- package/dist/PublishParser/publishTypesAndUtils.d.ts +34 -1
- package/dist/PublishParser/publishTypesAndUtils.d.ts.map +1 -1
- package/dist/PublishParser/publishTypesAndUtils.js.map +1 -1
- package/dist/TableConfig/TableConfig.d.ts +3 -15
- package/dist/TableConfig/TableConfig.d.ts.map +1 -1
- package/dist/TableConfig/TableConfig.js.map +1 -1
- package/dist/TableConfig/getCreateSchemaQueries.d.ts +4 -28
- package/dist/TableConfig/getCreateSchemaQueries.d.ts.map +1 -1
- package/dist/TableConfig/getTableConfigSchemaQueries.d.ts +4 -28
- package/dist/TableConfig/getTableConfigSchemaQueries.d.ts.map +1 -1
- package/dist/utils/utils.d.ts +1 -0
- package/dist/utils/utils.d.ts.map +1 -1
- package/dist/utils/utils.js +3 -1
- package/dist/utils/utils.js.map +1 -1
- package/lib/DboBuilder/TableHandler/TableHandler.ts +17 -10
- package/lib/DboBuilder/TableHandler/delete.ts +83 -15
- package/lib/DboBuilder/TableHandler/executeHooksCheckAndPostValidation.ts +88 -0
- package/lib/DboBuilder/TableHandler/insert/insert.ts +36 -17
- package/lib/DboBuilder/TableHandler/insert/insertNestedRecords.ts +1 -2
- package/lib/DboBuilder/TableHandler/onDeleteFromFileTable.ts +7 -5
- package/lib/DboBuilder/TableHandler/runInsertUpdateQuery.ts +34 -110
- package/lib/DboBuilder/TableHandler/update.ts +28 -13
- package/lib/DboBuilder/TableHandler/updateBatch.ts +15 -2
- package/lib/DboBuilder/TableHandler/upsert.ts +2 -2
- package/lib/DboBuilder/ViewHandler/ViewHandler.ts +13 -5
- package/lib/DboBuilder/ViewHandler/count.ts +24 -9
- package/lib/DboBuilder/ViewHandler/find.ts +36 -96
- package/lib/DboBuilder/ViewHandler/getReturnTypeQuery.ts +50 -0
- package/lib/DboBuilder/ViewHandler/size.ts +26 -12
- package/lib/DboBuilder/dboBuilderUtils.ts +1 -1
- package/lib/DboBuilder/parseUpdateRules.ts +1 -1
- package/lib/PublishParser/publishTypesAndUtils.ts +42 -1
- package/lib/TableConfig/TableConfig.ts +4 -18
- package/lib/utils/utils.ts +2 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableConfig.js","sourceRoot":"","sources":["../../lib/TableConfig/TableConfig.ts"],"names":[],"mappings":";;;AASA,qDAA2C;AAG3C,yDAAsD;
|
|
1
|
+
{"version":3,"file":"TableConfig.js","sourceRoot":"","sources":["../../lib/TableConfig/TableConfig.ts"],"names":[],"mappings":";;;AASA,qDAA2C;AAG3C,yDAAsD;AAWtD,4EAG6C;AAC7C,uDAAoD;AAU7C,MAAM,SAAS,GAAG,CAAmC,MAK3D,EAAsB,EAAE;IACvB,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,MAAM,CAAC;IAC3D,IAAI,MAAM,EAAE,CAAC;QACX,IAAI,IAAA,0BAAQ,EAAC,MAAM,CAAC,EAAE,CAAC;YACrB,OAAO,MAAM,CAAC,IAAI,IAAI,WAAW,CAAC,IAAI,MAAM,CAAC,WAAW,CAAC,CAAC;QAC5D,CAAC;aAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YACtC,OAAO,MAAM,CAAC;QAChB,CAAC;IACH,CAAC;IAED,OAAO,YAAY,CAAC;AACtB,CAAC,CAAC;AAhBW,QAAA,SAAS,aAgBpB;AA6SF;;GAEG;AACH,MAAqB,iBAAiB;IACpC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;IAExC,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC;IAC/C,CAAC;IACD,IAAI,GAAG;QACL,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG;YAAE,MAAM,4BAA4B,CAAC;QAC5D,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;IAC5B,CAAC;IACD,IAAI,EAAE;QACJ,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;YAAE,MAAM,2BAA2B,CAAC;QAC1D,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;IAC3B,CAAC;IACD,SAAS,CAAY;IAErB,YAAY,SAAoB;QAC9B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED,OAAO,GAAG,KAAK,IAAI,EAAE;QACnB,KAAK,MAAM,EAAE,SAAS,EAAE,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;YAC9D,IAAI,CAAC;gBACH,MAAM,SAAS,EAAE,CAAC;YACpB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACvB,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IAEF,aAAa,GAA8D,EAAE,CAAC;IAC9E,gBAAgB,GAAG,KAAK,IAAI,EAAE;QAC5B,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,KAAK,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YACnE,IAAI,SAAS,IAAI,WAAW,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;gBACpD,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC;oBACxC,GAAG,EAAE,IAAI,CAAC,GAAG;oBACb,GAAG,EAAE,IAAI,CAAC,EAAE;iBACb,CAAC,CAAC;gBACH,IAAI,OAAO,EAAE,CAAC;oBACZ,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC;gBAC1C,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IAEF,eAAe,GAAG,CAAC,SAAiB,EAAE,OAAe,EAA4B,EAAE;QACjF,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACrC,IAAI,KAAK,IAAI,SAAS,IAAI,KAAK,EAAE,CAAC;YAChC,OAAO,KAAK,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC;QAClC,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC;IAEF,kBAAkB,GAAG,CAAC,SAAiB,EAAE,EAAE;QACzC,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,UAAU,CAAC;QACtD,OAAO,CACL,UAAU,IAAI;YACZ,GAAG,UAAU;YACb,UAAU,EAAE,UAAU,CAAC,UAAU,IAAI,4CAAuB;YAC5D,QAAQ,EAAE,UAAU,CAAC,QAAQ,IAAI,0CAAqB;SACvD,CACF,CAAC;IACJ,CAAC,CAAC;IAEF,aAAa,GAAG,CAAC,MAA4C,EAAE,EAAE;QAC/D,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAE5C,OAAO,IAAA,iBAAS,EAAC;YACf,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK;YAC1B,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,WAAW,EAAE,IAAI;YACjB,YAAY,EAAE,MAAM,CAAC,SAAS;SAC/B,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,UAAU,GAAG,CAAC,MAIb,EAAqF,EAAE;QACtF,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;QAC/D,IAAI,MAAM,GAAgD,SAAS,CAAC;QACpE,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,IAAA,0BAAQ,EAAC,OAAO,CAAC,EAAE,CAAC;gBACtB,MAAM,EAAE,WAAW,EAAE,eAAe,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;gBACvD,MAAM,GAAG;oBACP,GAAG,IAAI;oBACP,GAAG,CAAC,CAAC,WAAW,IAAI,eAAe,CAAC,IAAI;wBACtC,WAAW,EAAE;4BACX,QAAQ,EAAE,OAAO,CAAC,QAAQ;4BAC1B,GAAG,CAAC,WAAW,IAAI,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC;yBAC9C;qBACF,CAAC;iBACH,CAAC;gBAEF;;mBAEG;gBACH,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;oBAClB,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;oBACxB,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC;oBAC1B,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC;wBAC9C,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;4BAC5B,MAAM,KAAK,EAAE,CAAC;4BACd,MAAM,CAAC,KAAK,GAAG,GAAG,CAAC;wBACrB,CAAC;6BAAM,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,IAAY,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;4BACjD,MAAM,KAAK,EAAE,CAAC;4BACd,MAAM,CAAC,KAAK,GAAG,GAAG,CAAC,IAAY,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;wBAC7C,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;IAEF,WAAW,GAAG,CAAC,MAA+D,EAAQ,EAAE;QACtF,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACrC,IAAI,IAAI,EAAE,CAAC;YACT,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;YACzB,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;YAC1B,IAAI,GAAG,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,GAAG,GAAG;gBACzD,MAAM,GAAG,MAAM,CAAC,GAAG,yBAAyB,GAAG,EAAE,CAAC;YACpD,IAAI,GAAG,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,GAAG,GAAG;gBACzD,MAAM,GAAG,MAAM,CAAC,GAAG,sBAAsB,GAAG,EAAE,CAAC;QACnD,CAAC;IACH,CAAC,CAAC;IAEF,WAAW,GAAG,CAAC,WAAmB,EAAE,WAAmB,EAAwB,EAAE;QAC/E,IACE,WAAW,IAAI,IAAI,CAAC,MAAM;YAC1B,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;YACxB,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,EACrC,CAAC;YACD,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YACpC,IAAI,SAAS,IAAI,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC;gBACjD,MAAM,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;gBACnC,IAAI,IAAA,0BAAQ,EAAC,EAAE,CAAC,IAAI,SAAS,IAAI,EAAE,EAAE,CAAC;oBACpC,IAAI,CAAC,EAAE,CAAC,OAAO;wBAAE,MAAM,oBAAoB,CAAC;oBAC5C,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;oBACvB,MAAM,GAAG,GAAa;wBACpB,SAAS,EAAE,KAAK;wBAChB,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;4BAC/D,MAAM,EAAE,WAAW;4BACnB,MAAM,EAAE,WAAW;4BACnB,KAAK;4BACL,EAAE;yBACH,CAAC,CAAC;qBACJ,CAAC;oBAEF,OAAO,GAAG,CAAC;gBACb,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC;IAEF,eAAe,GAAG,KAAK,EACrB,YAA0B,EAC1B,IAGC,EACmB,EAAE;QACtB,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,eAAe,CAAC;QACzE,IAAI,YAAY,CAAC,QAAQ,EAAE,CAAC;YAC1B,OAAO,uBAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC;QAC7C,CAAC;QACD,IAAI,SAAS,EAAE,CAAC;YACd,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC;QAED,OAAO,IAAI,CAAC,GAAG,CAAC;IAClB,CAAC,CAAC;IAEF,oBAAoB,CAAY;IAChC,YAAY,GAAG,KAAK,CAAC;IACrB,IAAI,GAAG,iCAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;CACnC;AApLD,oCAoLC"}
|
|
@@ -26,20 +26,8 @@ export declare const tableConfigWithMigrations: (db: DB, { tableConfig, tableCon
|
|
|
26
26
|
row: import("prostgles-types").AnyObject;
|
|
27
27
|
onInserted: Promise<void>;
|
|
28
28
|
}>;
|
|
29
|
-
afterEach?:
|
|
30
|
-
|
|
31
|
-
changedFields?: string[];
|
|
32
|
-
validate: (params: import("../PublishParser/publishTypesAndUtils").ValidateRowArgsCommon<import("prostgles-types").AnyObject, import("..").DBHandlerServer> & {
|
|
33
|
-
localParams: undefined | import("../DboBuilder/DboBuilderTypes").LocalParams;
|
|
34
|
-
}) => Promise<void>;
|
|
35
|
-
}[] | undefined;
|
|
36
|
-
afterAll?: {
|
|
37
|
-
commands: Partial<Record<"insert" | "update", 1>>;
|
|
38
|
-
changedFields?: string[];
|
|
39
|
-
validate: (params: import("../PublishParser/publishTypesAndUtils").ValidateRowsArgsCommon<import("prostgles-types").AnyObject, import("..").DBHandlerServer> & {
|
|
40
|
-
localParams: undefined | import("../DboBuilder/DboBuilderTypes").LocalParams;
|
|
41
|
-
}) => Promise<void>;
|
|
42
|
-
}[] | undefined;
|
|
29
|
+
afterEach?: import("../PublishParser/publishTypesAndUtils").AfterEachTsTrigger<import("prostgles-types").AnyObject, import("..").DBHandlerServer>[] | undefined;
|
|
30
|
+
afterAll?: import("../PublishParser/publishTypesAndUtils").AfterAllTsTrigger<import("prostgles-types").AnyObject, import("..").DBHandlerServer>[] | undefined;
|
|
43
31
|
} | undefined;
|
|
44
32
|
triggers?: {
|
|
45
33
|
[triggerName: string]: {
|
|
@@ -82,20 +70,8 @@ export declare const tableConfigWithMigrations: (db: DB, { tableConfig, tableCon
|
|
|
82
70
|
row: import("prostgles-types").AnyObject;
|
|
83
71
|
onInserted: Promise<void>;
|
|
84
72
|
}>;
|
|
85
|
-
afterEach?:
|
|
86
|
-
|
|
87
|
-
changedFields?: string[];
|
|
88
|
-
validate: (params: import("../PublishParser/publishTypesAndUtils").ValidateRowArgsCommon<import("prostgles-types").AnyObject, import("..").DBHandlerServer> & {
|
|
89
|
-
localParams: undefined | import("../DboBuilder/DboBuilderTypes").LocalParams;
|
|
90
|
-
}) => Promise<void>;
|
|
91
|
-
}[] | undefined;
|
|
92
|
-
afterAll?: {
|
|
93
|
-
commands: Partial<Record<"insert" | "update", 1>>;
|
|
94
|
-
changedFields?: string[];
|
|
95
|
-
validate: (params: import("../PublishParser/publishTypesAndUtils").ValidateRowsArgsCommon<import("prostgles-types").AnyObject, import("..").DBHandlerServer> & {
|
|
96
|
-
localParams: undefined | import("../DboBuilder/DboBuilderTypes").LocalParams;
|
|
97
|
-
}) => Promise<void>;
|
|
98
|
-
}[] | undefined;
|
|
73
|
+
afterEach?: import("../PublishParser/publishTypesAndUtils").AfterEachTsTrigger<import("prostgles-types").AnyObject, import("..").DBHandlerServer>[] | undefined;
|
|
74
|
+
afterAll?: import("../PublishParser/publishTypesAndUtils").AfterAllTsTrigger<import("prostgles-types").AnyObject, import("..").DBHandlerServer>[] | undefined;
|
|
99
75
|
} | undefined;
|
|
100
76
|
triggers?: {
|
|
101
77
|
[triggerName: string]: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getCreateSchemaQueries.d.ts","sourceRoot":"","sources":["../../lib/TableConfig/getCreateSchemaQueries.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,SAAS,MAAM,YAAY,CAAC;AAExC,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,KAAK,EAAE,oBAAoB,EAAyB,MAAM,mBAAmB,CAAC;AAGrF,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI;KAChC,CAAC,IAAI,MAAM,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAC/B,CAAC;AACF,MAAM,MAAM,oBAAoB,GAAG,IAAI,CACrC,iBAAiB,CAAC,oBAAoB,CAAC,EACvC,uBAAuB,GAAG,aAAa,GAAG,WAAW,GAAG,aAAa,GAAG,OAAO,CAChF,CAAC;AAEF,eAAO,MAAM,yBAAyB,GACpC,IAAI,EAAE,EACN,wCAAwC,oBAAoB,EAC5D,mBAAmB,MAAM;;;;;;
|
|
1
|
+
{"version":3,"file":"getCreateSchemaQueries.d.ts","sourceRoot":"","sources":["../../lib/TableConfig/getCreateSchemaQueries.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,SAAS,MAAM,YAAY,CAAC;AAExC,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,KAAK,EAAE,oBAAoB,EAAyB,MAAM,mBAAmB,CAAC;AAGrF,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI;KAChC,CAAC,IAAI,MAAM,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAC/B,CAAC;AACF,MAAM,MAAM,oBAAoB,GAAG,IAAI,CACrC,iBAAiB,CAAC,oBAAoB,CAAC,EACvC,uBAAuB,GAAG,aAAa,GAAG,WAAW,GAAG,aAAa,GAAG,OAAO,CAChF,CAAC;AAEF,eAAO,MAAM,yBAAyB,GACpC,IAAI,EAAE,EACN,wCAAwC,oBAAoB,EAC5D,mBAAmB,MAAM;;;;;;qBAqCK,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAAD,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0BAgDT,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;;;;;0BAUb,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;;;;;;EA9DhD,CAAC"}
|
|
@@ -21,20 +21,8 @@ export declare const getTableConfigSchemaQueries: (opts: SchemaRelatedOptions, {
|
|
|
21
21
|
row: import("prostgles-types").AnyObject;
|
|
22
22
|
onInserted: Promise<void>;
|
|
23
23
|
}>;
|
|
24
|
-
afterEach?:
|
|
25
|
-
|
|
26
|
-
changedFields?: string[];
|
|
27
|
-
validate: (params: import("../PublishParser/publishTypesAndUtils").ValidateRowArgsCommon<import("prostgles-types").AnyObject, import("..").DBHandlerServer> & {
|
|
28
|
-
localParams: undefined | import("../DboBuilder/DboBuilderTypes").LocalParams;
|
|
29
|
-
}) => Promise<void>;
|
|
30
|
-
}[] | undefined;
|
|
31
|
-
afterAll?: {
|
|
32
|
-
commands: Partial<Record<"insert" | "update", 1>>;
|
|
33
|
-
changedFields?: string[];
|
|
34
|
-
validate: (params: import("../PublishParser/publishTypesAndUtils").ValidateRowsArgsCommon<import("prostgles-types").AnyObject, import("..").DBHandlerServer> & {
|
|
35
|
-
localParams: undefined | import("../DboBuilder/DboBuilderTypes").LocalParams;
|
|
36
|
-
}) => Promise<void>;
|
|
37
|
-
}[] | undefined;
|
|
24
|
+
afterEach?: import("../PublishParser/publishTypesAndUtils").AfterEachTsTrigger<import("prostgles-types").AnyObject, import("..").DBHandlerServer>[] | undefined;
|
|
25
|
+
afterAll?: import("../PublishParser/publishTypesAndUtils").AfterAllTsTrigger<import("prostgles-types").AnyObject, import("..").DBHandlerServer>[] | undefined;
|
|
38
26
|
} | undefined;
|
|
39
27
|
triggers?: {
|
|
40
28
|
[triggerName: string]: {
|
|
@@ -84,20 +72,8 @@ export declare const getTableConfigSchemaQueries: (opts: SchemaRelatedOptions, {
|
|
|
84
72
|
row: import("prostgles-types").AnyObject;
|
|
85
73
|
onInserted: Promise<void>;
|
|
86
74
|
}>;
|
|
87
|
-
afterEach?:
|
|
88
|
-
|
|
89
|
-
changedFields?: string[];
|
|
90
|
-
validate: (params: import("../PublishParser/publishTypesAndUtils").ValidateRowArgsCommon<import("prostgles-types").AnyObject, import("..").DBHandlerServer> & {
|
|
91
|
-
localParams: undefined | import("../DboBuilder/DboBuilderTypes").LocalParams;
|
|
92
|
-
}) => Promise<void>;
|
|
93
|
-
}[] | undefined;
|
|
94
|
-
afterAll?: {
|
|
95
|
-
commands: Partial<Record<"insert" | "update", 1>>;
|
|
96
|
-
changedFields?: string[];
|
|
97
|
-
validate: (params: import("../PublishParser/publishTypesAndUtils").ValidateRowsArgsCommon<import("prostgles-types").AnyObject, import("..").DBHandlerServer> & {
|
|
98
|
-
localParams: undefined | import("../DboBuilder/DboBuilderTypes").LocalParams;
|
|
99
|
-
}) => Promise<void>;
|
|
100
|
-
}[] | undefined;
|
|
75
|
+
afterEach?: import("../PublishParser/publishTypesAndUtils").AfterEachTsTrigger<import("prostgles-types").AnyObject, import("..").DBHandlerServer>[] | undefined;
|
|
76
|
+
afterAll?: import("../PublishParser/publishTypesAndUtils").AfterAllTsTrigger<import("prostgles-types").AnyObject, import("..").DBHandlerServer>[] | undefined;
|
|
101
77
|
} | undefined;
|
|
102
78
|
triggers?: {
|
|
103
79
|
[triggerName: string]: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getTableConfigSchemaQueries.d.ts","sourceRoot":"","sources":["../../lib/TableConfig/getTableConfigSchemaQueries.ts"],"names":[],"mappings":"AAMA,OAAO,EAA6B,KAAK,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAEhG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE/D,eAAO,MAAM,2BAA2B,GACtC,MAAM,oBAAoB,EAC1B,gBAAgB,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;;;;;;
|
|
1
|
+
{"version":3,"file":"getTableConfigSchemaQueries.d.ts","sourceRoot":"","sources":["../../lib/TableConfig/getTableConfigSchemaQueries.ts"],"names":[],"mappings":"AAMA,OAAO,EAA6B,KAAK,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAEhG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE/D,eAAO,MAAM,2BAA2B,GACtC,MAAM,oBAAoB,EAC1B,gBAAgB,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;;;;;;qBAwBlD,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAAD,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmDjC,CAAC"}
|
package/dist/utils/utils.d.ts
CHANGED
|
@@ -2,4 +2,5 @@ export { get } from "prostgles-types";
|
|
|
2
2
|
export declare const clone: <T extends any[] | Record<string, any>>(obj: T) => T;
|
|
3
3
|
export declare const sleep: (ms: number) => Promise<unknown>;
|
|
4
4
|
export declare const escapeTSNames: (str: string, capitalize?: boolean) => string;
|
|
5
|
+
export declare const isArray: <T>(data: T) => data is Extract<T, readonly unknown[]>;
|
|
5
6
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../lib/utils/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AACtC,eAAO,MAAM,KAAK,GAAI,CAAC,SAAS,GAAG,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,CAAC,KAAG,CAMrE,CAAC;AAEF,eAAO,MAAM,KAAK,GAAa,IAAI,MAAM,qBAIxC,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,KAAK,MAAM,EAAE,oBAAkB,WAK5D,CAAC"}
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../lib/utils/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AACtC,eAAO,MAAM,KAAK,GAAI,CAAC,SAAS,GAAG,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,CAAC,KAAG,CAMrE,CAAC;AAEF,eAAO,MAAM,KAAK,GAAa,IAAI,MAAM,qBAIxC,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,KAAK,MAAM,EAAE,oBAAkB,WAK5D,CAAC;AAQF,eAAO,MAAM,OAAO,GAAI,CAAC,EAAE,MAAM,CAAC,KAAG,IAAI,IAAI,OAAO,CAAC,CAAC,EAAE,SAAS,OAAO,EAAE,CAAwB,CAAC"}
|
package/dist/utils/utils.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.escapeTSNames = exports.sleep = exports.clone = exports.get = void 0;
|
|
3
|
+
exports.isArray = exports.escapeTSNames = exports.sleep = exports.clone = exports.get = void 0;
|
|
4
4
|
var prostgles_types_1 = require("prostgles-types");
|
|
5
5
|
Object.defineProperty(exports, "get", { enumerable: true, get: function () { return prostgles_types_1.get; } });
|
|
6
6
|
const clone = (obj) => {
|
|
@@ -31,4 +31,6 @@ const canBeUsedAsIsInTypescript = (str) => {
|
|
|
31
31
|
const startsWithCharOrUnderscore = str[0]?.match(/^[a-z_]+$/i);
|
|
32
32
|
return Boolean(isAlphaNumericOrUnderline && startsWithCharOrUnderscore);
|
|
33
33
|
};
|
|
34
|
+
const isArray = (data) => Array.isArray(data);
|
|
35
|
+
exports.isArray = isArray;
|
|
34
36
|
//# sourceMappingURL=utils.js.map
|
package/dist/utils/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../lib/utils/utils.ts"],"names":[],"mappings":";;;AAAA,mDAAsC;AAA7B,sGAAA,GAAG,OAAA;AACL,MAAM,KAAK,GAAG,CAAwC,GAAM,EAAK,EAAE;IACxE,IAAI,OAAO,eAAe,KAAK,WAAW,EAAE,CAAC;QAC3C,OAAO,eAAe,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;IAED,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAM,CAAC;AAC9C,CAAC,CAAC;AANW,QAAA,KAAK,SAMhB;AAEK,MAAM,KAAK,GAAG,UAAU,EAAU;IACvC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAJW,QAAA,KAAK,SAIhB;AAEK,MAAM,aAAa,GAAG,CAAC,GAAW,EAAE,UAAU,GAAG,KAAK,EAAE,EAAE;IAC/D,IAAI,GAAG,GAAG,GAAG,CAAC;IACd,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnE,IAAI,yBAAyB,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,CAAC;IAC/C,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;AAC7B,CAAC,CAAC;AALW,QAAA,aAAa,iBAKxB;AACF,MAAM,yBAAyB,GAAG,CAAC,GAAW,EAAW,EAAE;IACzD,IAAI,CAAC,GAAG;QAAE,OAAO,KAAK,CAAC;IACvB,MAAM,yBAAyB,GAAG,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IAC7D,MAAM,0BAA0B,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;IAC/D,OAAO,OAAO,CAAC,yBAAyB,IAAI,0BAA0B,CAAC,CAAC;AAC1E,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../lib/utils/utils.ts"],"names":[],"mappings":";;;AAAA,mDAAsC;AAA7B,sGAAA,GAAG,OAAA;AACL,MAAM,KAAK,GAAG,CAAwC,GAAM,EAAK,EAAE;IACxE,IAAI,OAAO,eAAe,KAAK,WAAW,EAAE,CAAC;QAC3C,OAAO,eAAe,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;IAED,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAM,CAAC;AAC9C,CAAC,CAAC;AANW,QAAA,KAAK,SAMhB;AAEK,MAAM,KAAK,GAAG,UAAU,EAAU;IACvC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAJW,QAAA,KAAK,SAIhB;AAEK,MAAM,aAAa,GAAG,CAAC,GAAW,EAAE,UAAU,GAAG,KAAK,EAAE,EAAE;IAC/D,IAAI,GAAG,GAAG,GAAG,CAAC;IACd,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnE,IAAI,yBAAyB,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,CAAC;IAC/C,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;AAC7B,CAAC,CAAC;AALW,QAAA,aAAa,iBAKxB;AACF,MAAM,yBAAyB,GAAG,CAAC,GAAW,EAAW,EAAE;IACzD,IAAI,CAAC,GAAG;QAAE,OAAO,KAAK,CAAC;IACvB,MAAM,yBAAyB,GAAG,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IAC7D,MAAM,0BAA0B,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;IAC/D,OAAO,OAAO,CAAC,yBAAyB,IAAI,0BAA0B,CAAC,CAAC;AAC1E,CAAC,CAAC;AAEK,MAAM,OAAO,GAAG,CAAI,IAAO,EAA0C,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAAtF,QAAA,OAAO,WAA+E"}
|
|
@@ -10,7 +10,12 @@ import type {
|
|
|
10
10
|
} from "prostgles-types";
|
|
11
11
|
import { asName, isDefined } from "prostgles-types";
|
|
12
12
|
import type { DB } from "../../Prostgles";
|
|
13
|
-
import type {
|
|
13
|
+
import type {
|
|
14
|
+
DeleteRule,
|
|
15
|
+
InsertRule,
|
|
16
|
+
ParsedTableRule,
|
|
17
|
+
UpdateRule,
|
|
18
|
+
} from "../../PublishParser/PublishParser";
|
|
14
19
|
import { getSyncBatchOptions } from "../../PubSubManager/SyncReplication/getSyncBatchOptions";
|
|
15
20
|
import type TableConfigurator from "../../TableConfig/TableConfig";
|
|
16
21
|
import type { TableDefinition } from "../../TableConfig/TableConfig";
|
|
@@ -66,16 +71,17 @@ export class TableHandler extends ViewHandler {
|
|
|
66
71
|
this.is_media = dboBuilder.prostgles.isMedia(this.name);
|
|
67
72
|
}
|
|
68
73
|
|
|
69
|
-
getFinalDBtx = (localParams: LocalParams | undefined) => {
|
|
70
|
-
return localParams?.tx?.dbTX ?? this.tx?.dbTX;
|
|
71
|
-
};
|
|
72
|
-
|
|
73
74
|
getHooksAndChecks = (
|
|
74
75
|
command:
|
|
76
|
+
| { name: "delete"; rule: undefined | DeleteRule }
|
|
75
77
|
| { name: "update"; rule: undefined | UpdateRule }
|
|
76
78
|
| { name: "insert"; rule: undefined | InsertRule },
|
|
79
|
+
localParams: LocalParams | undefined,
|
|
77
80
|
) => {
|
|
78
|
-
const {
|
|
81
|
+
const { postValidate, checkFilter } = command.name === "delete" ? {} : (command.rule ?? {});
|
|
82
|
+
if (postValidate && !localParams) {
|
|
83
|
+
throw new Error("Unexpected: no localParams for postValidate");
|
|
84
|
+
}
|
|
79
85
|
const afterEachHooks = this.config?.hooks?.afterEach
|
|
80
86
|
?.map((hook) => {
|
|
81
87
|
const { commands } = hook;
|
|
@@ -110,16 +116,17 @@ export class TableHandler extends ViewHandler {
|
|
|
110
116
|
};
|
|
111
117
|
shouldWrapInTx = (
|
|
112
118
|
command:
|
|
119
|
+
| { name: "delete"; rule: undefined | DeleteRule }
|
|
113
120
|
| { name: "update"; rule: undefined | UpdateRule }
|
|
114
121
|
| { name: "insert"; rule: undefined | InsertRule },
|
|
115
122
|
localParams: LocalParams | undefined,
|
|
116
123
|
) => {
|
|
117
|
-
const
|
|
118
|
-
const hasAfterChecks = this.getHooksAndChecks(command).length > 0;
|
|
119
|
-
return !
|
|
124
|
+
const transaction = this.getTransaction(localParams);
|
|
125
|
+
const hasAfterChecks = this.getHooksAndChecks(command, localParams).length > 0;
|
|
126
|
+
return { shouldWrap: !transaction && hasAfterChecks, hasAfterChecks };
|
|
120
127
|
};
|
|
121
128
|
getFinalDbo = (localParams: LocalParams | undefined) => {
|
|
122
|
-
return this.
|
|
129
|
+
return this.getTransaction(localParams)?.dbTX ?? this.dboBuilder.dbo;
|
|
123
130
|
};
|
|
124
131
|
|
|
125
132
|
parseUpdateRules = parseUpdateRules.bind(this);
|
|
@@ -1,11 +1,17 @@
|
|
|
1
1
|
import type pgPromise from "pg-promise";
|
|
2
|
-
import type
|
|
2
|
+
import { includes, type AnyObject, type DeleteParams, type FieldFilter } from "prostgles-types";
|
|
3
3
|
import type { DeleteRule, ParsedTableRule } from "../../PublishParser/PublishParser";
|
|
4
4
|
import type { Filter, LocalParams } from "../DboBuilder";
|
|
5
|
-
import {
|
|
6
|
-
|
|
5
|
+
import {
|
|
6
|
+
getErrorAsObject,
|
|
7
|
+
getSerializedClientErrorFromPGError,
|
|
8
|
+
rejectWithPGClientError,
|
|
9
|
+
withUserRLS,
|
|
10
|
+
} from "../DboBuilder";
|
|
7
11
|
import type { TableHandler } from "./TableHandler";
|
|
8
12
|
import { onDeleteFromFileTable } from "./onDeleteFromFileTable";
|
|
13
|
+
import { getReturnTypeQuery } from "../ViewHandler/getReturnTypeQuery";
|
|
14
|
+
import { executeHooksCheckAndPostValidation } from "./executeHooksCheckAndPostValidation";
|
|
9
15
|
|
|
10
16
|
export async function _delete(
|
|
11
17
|
this: TableHandler,
|
|
@@ -21,12 +27,26 @@ export async function _delete(
|
|
|
21
27
|
filter = filter || {};
|
|
22
28
|
this.checkFilter(filter);
|
|
23
29
|
|
|
30
|
+
const operation = { name: "delete", rule: tableRules?.delete } as const;
|
|
31
|
+
const { hasAfterChecks, shouldWrap } = this.shouldWrapInTx(operation, localParams);
|
|
32
|
+
if (shouldWrap) {
|
|
33
|
+
return this.dboBuilder.getTX((t) =>
|
|
34
|
+
(t[this.name] as Partial<typeof this> | undefined)?.delete?.(
|
|
35
|
+
filter,
|
|
36
|
+
params,
|
|
37
|
+
param3_unused,
|
|
38
|
+
tableRules,
|
|
39
|
+
localParams,
|
|
40
|
+
),
|
|
41
|
+
);
|
|
42
|
+
}
|
|
43
|
+
|
|
24
44
|
let forcedFilter: AnyObject | undefined = {},
|
|
25
45
|
filterFields: FieldFilter | undefined = "*",
|
|
26
46
|
returningFields: FieldFilter | undefined = "*",
|
|
27
47
|
validate: DeleteRule["validate"];
|
|
28
48
|
|
|
29
|
-
const { testRule = false
|
|
49
|
+
const { testRule = false } = localParams || {};
|
|
30
50
|
if (tableRules) {
|
|
31
51
|
if (!tableRules.delete) throw "delete rules missing";
|
|
32
52
|
forcedFilter = tableRules.delete.forcedFilter;
|
|
@@ -78,16 +98,24 @@ export async function _delete(
|
|
|
78
98
|
queryWithoutRLS += filterOpts.where;
|
|
79
99
|
await validate?.(filterOpts.filter);
|
|
80
100
|
|
|
101
|
+
const FULL_ROW_KEY = "_prostgles_full_row" as const;
|
|
102
|
+
const fullRowReturning =
|
|
103
|
+
hasAfterChecks ? `to_jsonb(${this.escapedName}) as ${FULL_ROW_KEY}` : undefined;
|
|
81
104
|
let returningQuery = "";
|
|
82
105
|
if (returning !== undefined) {
|
|
83
106
|
queryType = "any";
|
|
84
107
|
if (!returningFields) {
|
|
85
|
-
throw "Returning
|
|
108
|
+
throw "Returning disallowed";
|
|
86
109
|
}
|
|
87
110
|
returningQuery = this.makeReturnQuery(
|
|
88
111
|
await this.prepareReturning(returning, this.parseFieldFilter(returningFields)),
|
|
89
112
|
);
|
|
113
|
+
if (hasAfterChecks) {
|
|
114
|
+
returningQuery += `, ${fullRowReturning}`;
|
|
115
|
+
}
|
|
90
116
|
queryWithoutRLS += returningQuery;
|
|
117
|
+
} else if (hasAfterChecks) {
|
|
118
|
+
queryWithoutRLS += ` RETURNING ${fullRowReturning}`;
|
|
91
119
|
}
|
|
92
120
|
|
|
93
121
|
// TODO - delete orphaned files
|
|
@@ -99,7 +127,18 @@ export async function _delete(
|
|
|
99
127
|
// }
|
|
100
128
|
|
|
101
129
|
const queryWithRLS = withUserRLS(localParams, queryWithoutRLS);
|
|
102
|
-
|
|
130
|
+
|
|
131
|
+
const queryToReturn = await getReturnTypeQuery({
|
|
132
|
+
handler: this,
|
|
133
|
+
localParams,
|
|
134
|
+
queryWithoutRLS,
|
|
135
|
+
queryWithRLS,
|
|
136
|
+
returnType: params?.returnType,
|
|
137
|
+
newQuery: undefined,
|
|
138
|
+
});
|
|
139
|
+
if (queryToReturn) {
|
|
140
|
+
return queryToReturn as unknown[];
|
|
141
|
+
}
|
|
103
142
|
|
|
104
143
|
/**
|
|
105
144
|
* Delete file
|
|
@@ -120,21 +159,50 @@ export async function _delete(
|
|
|
120
159
|
return result;
|
|
121
160
|
}
|
|
122
161
|
|
|
123
|
-
const
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
162
|
+
const dbHandler = this.getTransaction(localParams)?.t ?? this.db;
|
|
163
|
+
|
|
164
|
+
const isOneOrNone = includes(["row", "value"], params?.returnType);
|
|
165
|
+
const queryPromise =
|
|
166
|
+
isOneOrNone ?
|
|
167
|
+
dbHandler.oneOrNone<AnyObject>(queryWithRLS).then((data) => (data ? [data] : []))
|
|
168
|
+
: dbHandler.any<AnyObject>(queryWithRLS);
|
|
169
|
+
|
|
170
|
+
const deletedRows = await queryPromise.catch((err) =>
|
|
171
|
+
rejectWithPGClientError(err, {
|
|
172
|
+
type: "tableMethod",
|
|
173
|
+
localParams,
|
|
174
|
+
view: this,
|
|
175
|
+
prostgles: this.dboBuilder.prostgles,
|
|
176
|
+
}),
|
|
177
|
+
);
|
|
178
|
+
|
|
179
|
+
if (hasAfterChecks) {
|
|
180
|
+
const fullRows = deletedRows.map((d) => {
|
|
181
|
+
const fullRow = d[FULL_ROW_KEY] as AnyObject | undefined;
|
|
182
|
+
if (!fullRow) throw "Missing full row for after checks";
|
|
183
|
+
return fullRow;
|
|
184
|
+
});
|
|
185
|
+
|
|
186
|
+
await executeHooksCheckAndPostValidation({
|
|
187
|
+
tableHandler: this,
|
|
188
|
+
operation,
|
|
189
|
+
localParams,
|
|
190
|
+
rows: fullRows,
|
|
191
|
+
data: [],
|
|
192
|
+
});
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
const originalReturnRows = deletedRows.map(
|
|
196
|
+
({ [FULL_ROW_KEY]: _, ...originalReturn }) => originalReturn,
|
|
197
|
+
);
|
|
198
|
+
|
|
131
199
|
await this._log({
|
|
132
200
|
command: "delete",
|
|
133
201
|
localParams,
|
|
134
202
|
data: { filter, params },
|
|
135
203
|
duration: Date.now() - start,
|
|
136
204
|
});
|
|
137
|
-
return
|
|
205
|
+
return isOneOrNone ? originalReturnRows[0] : originalReturnRows;
|
|
138
206
|
} catch (e) {
|
|
139
207
|
await this._log({
|
|
140
208
|
command: "delete",
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import type { AnyObject } from "prostgles-types";
|
|
2
|
+
import type { DeleteRule, InsertRule, UpdateRule } from "../../PublishParser/PublishParser";
|
|
3
|
+
import { isArray } from "../../utils/utils";
|
|
4
|
+
import type { LocalParams } from "../DboBuilder";
|
|
5
|
+
import type { TableHandler } from "./TableHandler";
|
|
6
|
+
|
|
7
|
+
export const executeHooksCheckAndPostValidation = async ({
|
|
8
|
+
tableHandler,
|
|
9
|
+
operation,
|
|
10
|
+
data,
|
|
11
|
+
localParams,
|
|
12
|
+
rows,
|
|
13
|
+
}: {
|
|
14
|
+
tableHandler: TableHandler;
|
|
15
|
+
operation:
|
|
16
|
+
| { name: "delete"; rule: undefined | DeleteRule }
|
|
17
|
+
| { name: "update"; rule: undefined | UpdateRule }
|
|
18
|
+
| { name: "insert"; rule: undefined | InsertRule };
|
|
19
|
+
localParams: LocalParams | undefined;
|
|
20
|
+
data: AnyObject | AnyObject[];
|
|
21
|
+
rows: AnyObject[];
|
|
22
|
+
}) => {
|
|
23
|
+
const command = operation.name;
|
|
24
|
+
const transaction = tableHandler.getTransaction(localParams);
|
|
25
|
+
const hooks = tableHandler.getHooksAndChecks(operation, localParams);
|
|
26
|
+
let changedFieldsSet = undefined as undefined | Set<string>;
|
|
27
|
+
const getChangedFieldsSet = () => {
|
|
28
|
+
changedFieldsSet ??= new Set<string>(
|
|
29
|
+
(isArray(data) ? data : [data]).map((row) => Object.keys(row)).flat(),
|
|
30
|
+
);
|
|
31
|
+
return changedFieldsSet;
|
|
32
|
+
};
|
|
33
|
+
const applicableHooks = hooks.filter((hook) => {
|
|
34
|
+
if (hook.type === "checkFilter") return false;
|
|
35
|
+
if (hook.type === "postValidate") return true;
|
|
36
|
+
const { commands, changedFields } = hook;
|
|
37
|
+
return (
|
|
38
|
+
commands[command] &&
|
|
39
|
+
(!changedFields || changedFields.some((f) => getChangedFieldsSet().has(f)))
|
|
40
|
+
);
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
if (applicableHooks.length) {
|
|
44
|
+
if (!transaction) {
|
|
45
|
+
throw new Error("Unexpected: hooks/postValidate require a transaction dbo handler");
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
const txParams = {
|
|
49
|
+
tx: transaction.t,
|
|
50
|
+
dbx: transaction.dbTX,
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
for (const row of rows) {
|
|
54
|
+
const commonParams = {
|
|
55
|
+
row: row,
|
|
56
|
+
...txParams,
|
|
57
|
+
command,
|
|
58
|
+
data,
|
|
59
|
+
} as const;
|
|
60
|
+
for (const hook of applicableHooks) {
|
|
61
|
+
if (hook.type === "afterEach") {
|
|
62
|
+
await hook.validate({
|
|
63
|
+
...commonParams,
|
|
64
|
+
localParams,
|
|
65
|
+
});
|
|
66
|
+
} else if (hook.type === "postValidate") {
|
|
67
|
+
if (!localParams) throw new Error("Unexpected: no localParams for postValidate");
|
|
68
|
+
await hook.validate({
|
|
69
|
+
...commonParams,
|
|
70
|
+
localParams,
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
for (const hook of applicableHooks) {
|
|
77
|
+
if (hook.type === "afterAll") {
|
|
78
|
+
await hook.validate({
|
|
79
|
+
...txParams,
|
|
80
|
+
command,
|
|
81
|
+
data: Array.isArray(data) ? data : [data],
|
|
82
|
+
rows,
|
|
83
|
+
localParams,
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
};
|
|
@@ -13,6 +13,7 @@ import type { TableHandler } from "../TableHandler";
|
|
|
13
13
|
import { insertTest } from "../insertTest";
|
|
14
14
|
import { runInsertUpdateQuery } from "../runInsertUpdateQuery";
|
|
15
15
|
import { insertNestedRecords } from "./insertNestedRecords";
|
|
16
|
+
import { getReturnTypeQuery } from "../../ViewHandler/getReturnTypeQuery";
|
|
16
17
|
|
|
17
18
|
export async function insert(
|
|
18
19
|
this: TableHandler,
|
|
@@ -26,16 +27,16 @@ export async function insert(
|
|
|
26
27
|
const start = Date.now();
|
|
27
28
|
try {
|
|
28
29
|
const { removeDisallowedFields = false } = insertParams ?? {};
|
|
29
|
-
const {
|
|
30
|
+
const { nestedInsert } = localParams ?? {};
|
|
30
31
|
|
|
31
32
|
const rule = tableRules?.[ACTION];
|
|
32
33
|
const { validate, allowedNestedInserts, requiredNestedInserts } = rule ?? {};
|
|
33
34
|
|
|
34
|
-
const finalDBtx = this.
|
|
35
|
-
/** Post validate and checkFilter require a transaction dbo handler because they
|
|
36
|
-
if (this.shouldWrapInTx({ name: ACTION, rule }, localParams)) {
|
|
37
|
-
return this.dboBuilder.getTX((
|
|
38
|
-
|
|
35
|
+
const finalDBtx = this.getTransaction(localParams);
|
|
36
|
+
/** Post validate and checkFilter require a transaction dbo handler because they need the action result */
|
|
37
|
+
if (this.shouldWrapInTx({ name: ACTION, rule }, localParams).shouldWrap) {
|
|
38
|
+
return this.dboBuilder.getTX((t) =>
|
|
39
|
+
t[this.name]?.[ACTION](rowOrRows, insertParams, param3_unused, tableRules, localParams),
|
|
39
40
|
);
|
|
40
41
|
}
|
|
41
42
|
|
|
@@ -84,7 +85,10 @@ export async function insert(
|
|
|
84
85
|
|
|
85
86
|
validateInsertParams(insertParams);
|
|
86
87
|
|
|
87
|
-
const tx = localParams?.tx?.t || this.tx?.t;
|
|
88
|
+
// const tx = localParams?.tx?.t || this.tx?.t;
|
|
89
|
+
const transaction = this.getTransaction(localParams);
|
|
90
|
+
const tx = transaction?.t || this.db;
|
|
91
|
+
|
|
88
92
|
const preValidatedRows = await Promise.all(
|
|
89
93
|
rows.map(async (nonValidated) => {
|
|
90
94
|
const { preValidate, validate } = rule ?? {};
|
|
@@ -95,16 +99,18 @@ export async function insert(
|
|
|
95
99
|
validate,
|
|
96
100
|
localParams,
|
|
97
101
|
row: nonValidated,
|
|
98
|
-
tx
|
|
102
|
+
tx,
|
|
99
103
|
command: "insert",
|
|
100
104
|
data: nonValidated,
|
|
101
105
|
});
|
|
102
106
|
if (preValidate) {
|
|
103
|
-
if (!localParams)
|
|
107
|
+
if (!localParams) {
|
|
108
|
+
throw "localParams missing for insert preValidate";
|
|
109
|
+
}
|
|
104
110
|
row = await preValidate({
|
|
105
111
|
row,
|
|
106
|
-
tx
|
|
107
|
-
dbx:
|
|
112
|
+
tx,
|
|
113
|
+
dbx: transaction?.dbTX || this.dboBuilder.dbo,
|
|
108
114
|
localParams,
|
|
109
115
|
command: "insert",
|
|
110
116
|
data: row,
|
|
@@ -114,14 +120,14 @@ export async function insert(
|
|
|
114
120
|
return row;
|
|
115
121
|
}),
|
|
116
122
|
);
|
|
117
|
-
const
|
|
123
|
+
const preValidatedRowOrRows = isMultiInsert ? preValidatedRows : preValidatedRows[0]!;
|
|
118
124
|
|
|
119
125
|
/**
|
|
120
126
|
* If media it will: upload file and continue insert
|
|
121
127
|
* If nested insert it will: make separate inserts and not continue main insert
|
|
122
128
|
*/
|
|
123
129
|
const mediaOrNestedInsert = await insertNestedRecords.bind(this)({
|
|
124
|
-
data:
|
|
130
|
+
data: preValidatedRowOrRows,
|
|
125
131
|
insertParams,
|
|
126
132
|
tableRules,
|
|
127
133
|
localParams,
|
|
@@ -156,7 +162,7 @@ export async function insert(
|
|
|
156
162
|
|
|
157
163
|
const validatedRows = validatedData.map((d) => d.validatedRow);
|
|
158
164
|
const allowedCols = Array.from(new Set(validatedData.flatMap((d) => d.allowedCols)));
|
|
159
|
-
const dbTx = finalDBtx || this.dboBuilder.dbo;
|
|
165
|
+
const dbTx = finalDBtx?.dbTX || this.dboBuilder.dbo;
|
|
160
166
|
const validationOptions = {
|
|
161
167
|
validate: validate as ValidateRowBasic,
|
|
162
168
|
localParams,
|
|
@@ -169,7 +175,7 @@ export async function insert(
|
|
|
169
175
|
allowedCols,
|
|
170
176
|
dbTx,
|
|
171
177
|
validationOptions,
|
|
172
|
-
tx
|
|
178
|
+
tx,
|
|
173
179
|
})
|
|
174
180
|
).getQuery();
|
|
175
181
|
const { onConflict } = insertParams ?? {};
|
|
@@ -227,7 +233,18 @@ export async function insert(
|
|
|
227
233
|
|
|
228
234
|
const queryWithoutUserRLS = query;
|
|
229
235
|
const queryWithRLS = withUserRLS(localParams, query);
|
|
230
|
-
|
|
236
|
+
|
|
237
|
+
const queryToReturn = await getReturnTypeQuery({
|
|
238
|
+
handler: this,
|
|
239
|
+
localParams,
|
|
240
|
+
queryWithoutRLS: queryWithoutUserRLS,
|
|
241
|
+
queryWithRLS,
|
|
242
|
+
returnType: insertParams?.returnType,
|
|
243
|
+
newQuery: undefined,
|
|
244
|
+
});
|
|
245
|
+
if (queryToReturn) {
|
|
246
|
+
return queryToReturn as unknown[];
|
|
247
|
+
}
|
|
231
248
|
|
|
232
249
|
if (this.dboBuilder.prostgles.opts.DEBUG_MODE) {
|
|
233
250
|
console.log(this.tx?.t.ctx.start, "insert in " + this.name, data);
|
|
@@ -239,18 +256,20 @@ export async function insert(
|
|
|
239
256
|
queryWithoutUserRLS,
|
|
240
257
|
tableHandler: this,
|
|
241
258
|
returningFields,
|
|
242
|
-
data:
|
|
259
|
+
data: preValidatedRowOrRows,
|
|
243
260
|
fields,
|
|
244
261
|
params: insertParams,
|
|
245
262
|
command: "insert",
|
|
246
263
|
isMultiInsert,
|
|
247
264
|
});
|
|
265
|
+
|
|
248
266
|
await this._log({
|
|
249
267
|
command: "insert",
|
|
250
268
|
localParams,
|
|
251
269
|
data: { rowOrRows, param2: insertParams },
|
|
252
270
|
duration: Date.now() - start,
|
|
253
271
|
});
|
|
272
|
+
|
|
254
273
|
return result;
|
|
255
274
|
} catch (e) {
|
|
256
275
|
await this._log({
|
|
@@ -70,8 +70,7 @@ export async function insertNestedRecords(
|
|
|
70
70
|
/**
|
|
71
71
|
* Make sure nested insert uses a transaction
|
|
72
72
|
*/
|
|
73
|
-
const dbTX = this.
|
|
74
|
-
const t = localParams?.tx?.t || this.tx?.t;
|
|
73
|
+
const { dbTX, t } = this.getTransaction(localParams) ?? {};
|
|
75
74
|
if (hasNestedInserts && (!dbTX || !t)) {
|
|
76
75
|
return {
|
|
77
76
|
insertResult: await this.dboBuilder.getTX((dbTX, _t) =>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { AnyObject} from "prostgles-types";
|
|
1
|
+
import type { AnyObject } from "prostgles-types";
|
|
2
2
|
import { asName, pickKeys } from "prostgles-types";
|
|
3
|
-
import type { LocalParams} from "../DboBuilder";
|
|
3
|
+
import type { LocalParams } from "../DboBuilder";
|
|
4
4
|
import { type Media } from "../DboBuilder";
|
|
5
5
|
import type { TableHandler } from "./TableHandler";
|
|
6
6
|
|
|
@@ -15,12 +15,14 @@ type OnDeleteFromFileTableArgs = {
|
|
|
15
15
|
};
|
|
16
16
|
export async function onDeleteFromFileTable(
|
|
17
17
|
this: TableHandler,
|
|
18
|
-
{ localParams, queryType, returningQuery, filterOpts }: OnDeleteFromFileTableArgs
|
|
18
|
+
{ localParams, queryType, returningQuery, filterOpts }: OnDeleteFromFileTableArgs,
|
|
19
19
|
) {
|
|
20
|
-
if (!this.dboBuilder.prostgles.fileManager)
|
|
20
|
+
if (!this.dboBuilder.prostgles.fileManager) {
|
|
21
|
+
throw new Error("fileManager missing");
|
|
22
|
+
}
|
|
21
23
|
if (this.dboBuilder.prostgles.opts.fileTable?.delayedDelete) {
|
|
22
24
|
return this.dbHandler[queryType]<void>(
|
|
23
|
-
`UPDATE ${asName(this.name)} SET deleted = now() ${filterOpts.where} ${returningQuery ?? ""}
|
|
25
|
+
`UPDATE ${asName(this.name)} SET deleted = now() ${filterOpts.where} ${returningQuery ?? ""};`,
|
|
24
26
|
);
|
|
25
27
|
} else {
|
|
26
28
|
const txDelete = async (tbl: TableHandler) => {
|