prostgles-server 3.0.44 → 3.0.45
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/parseUpdateRules.d.ts.map +1 -1
- package/dist/DboBuilder/parseUpdateRules.js +5 -1
- package/dist/DboBuilder/parseUpdateRules.js.map +1 -1
- package/lib/DboBuilder/parseUpdateRules.d.ts.map +1 -1
- package/lib/DboBuilder/parseUpdateRules.js +5 -1
- package/lib/DboBuilder/parseUpdateRules.ts +8 -1
- package/package.json +1 -1
- package/tests/client/PID.txt +1 -1
- package/tests/server/package-lock.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parseUpdateRules.d.ts","sourceRoot":"","sources":["../../lib/DboBuilder/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,
|
|
1
|
+
{"version":3,"file":"parseUpdateRules.d.ts","sourceRoot":"","sources":["../../lib/DboBuilder/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"}
|
|
@@ -43,9 +43,13 @@ async function parseUpdateRules(filter, newData, params, tableRules, localParams
|
|
|
43
43
|
*/
|
|
44
44
|
if (testRule) {
|
|
45
45
|
for await (const [dfIndex, dfRule] of tableRules.update.dynamicFields.entries()) {
|
|
46
|
+
/**
|
|
47
|
+
* Validated filter and fields
|
|
48
|
+
*/
|
|
46
49
|
const condition = await this.prepareWhere({ filterFields: this.column_names, filter: dfRule.filter, localParams, tableRule: tableRules });
|
|
47
50
|
if (!condition.where)
|
|
48
51
|
throw "dynamicFields.filter cannot be empty: " + JSON.stringify(dfRule);
|
|
52
|
+
await this.validateViewRules({ fields: dfRule.fields, filterFields, returningFields, forcedFilter, dynamicFields: tableRules.update.dynamicFields, rule: "update" });
|
|
49
53
|
await this.find(dfRule.filter, { limit: 0 });
|
|
50
54
|
/** Ensure dynamicFields filters do not overlap */
|
|
51
55
|
for await (const [_dfIndex, _dfRule] of tableRules.update.dynamicFields.entries()) {
|
|
@@ -68,7 +72,7 @@ async function parseUpdateRules(filter, newData, params, tableRules, localParams
|
|
|
68
72
|
const match = await this.findOne({ $and: [finalUpdateFilter, dfRule.filter].filter(prostgles_types_1.isDefined) });
|
|
69
73
|
if (match) {
|
|
70
74
|
/** Ensure it doesn't overlap with other dynamicFields.filter */
|
|
71
|
-
if (matchedRule) {
|
|
75
|
+
if (matchedRule && !testRule) {
|
|
72
76
|
throw "Your update is targeting multiple tableRules.update.dynamicFields. Restrict update filter to only target one rule";
|
|
73
77
|
}
|
|
74
78
|
matchedRule = dfRule;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parseUpdateRules.js","sourceRoot":"","sources":["../../lib/DboBuilder/parseUpdateRules.ts"],"names":[],"mappings":";;;AAAA,qDAAkF;AAKlF;;;GAGG;AACI,KAAK,UAAU,gBAAgB,CAEpC,MAAc,EACd,OAAkB,EAClB,MAAqB,EACrB,UAAsB,EACtB,WAAyB;IAUzB,MAAM,EAAE,QAAQ,GAAG,KAAK,EAAE,GAAG,WAAW,IAAI,EAAE,CAAC;IAC/C,IAAI,CAAC,QAAQ,EAAE;QACb,IAAI,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE;YAC5C,MAAM,iFAAiF,CAAC;SACzF;QACD,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;KAC1B;IAED,IAAI,YAAY,GAA0B,EAAE,EAC1C,UAAU,GAA0B,EAAE,EACtC,QAAuC,EACvC,eAAe,GAAgB,GAAG,EAClC,YAAY,GAA4B,GAAG,EAC3C,MAAM,GAAgB,GAAG,CAAC;IAE5B,IAAI,iBAAiB,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;IAEtC,IAAI,UAAU,EAAE;QACd,IAAI,CAAC,UAAU,CAAC,MAAM;YAAE,MAAM,2BAA2B,GAAG,IAAI,CAAC,IAAI,CAAC;QACtE,CAAC,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;QAEnF,eAAe,GAAG,UAAU,CAAC,MAAM,CAAC,eAAe,IAAI,UAAU,EAAE,MAAM,EAAE,MAAM,IAAI,EAAE,CAAC;QAExF,IAAI,CAAC,eAAe,IAAI,MAAM,EAAE,SAAS,EAAE;YACzC,MAAM,0DAA0D,CAAA;SACjE;QAED,IAAI,CAAC,MAAM,EAAE;YACX,MAAM,6BAA6B,IAAI,CAAC,IAAI,mBAAmB,CAAC;SACjE;QACD,iBAAiB,GAAG,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;QACjI,IAAI,YAAY,EAAE;YAChB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;YACpD,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAChD,IAAI,CAAC,KAAK,IAAI,YAAY,EAAE;gBAC1B,MAAM,GAAG,EAAE,CAAC;aACb;SACF;QACD,IAAI,UAAU,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,EAAE;YAE3C;;;;eAIG;YACH,IAAI,QAAQ,EAAE;gBACZ,IAAI,KAAK,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,EAAE,EAAE;
|
|
1
|
+
{"version":3,"file":"parseUpdateRules.js","sourceRoot":"","sources":["../../lib/DboBuilder/parseUpdateRules.ts"],"names":[],"mappings":"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"}
|
|
@@ -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,
|
|
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"}
|
|
@@ -43,9 +43,13 @@ async function parseUpdateRules(filter, newData, params, tableRules, localParams
|
|
|
43
43
|
*/
|
|
44
44
|
if (testRule) {
|
|
45
45
|
for await (const [dfIndex, dfRule] of tableRules.update.dynamicFields.entries()) {
|
|
46
|
+
/**
|
|
47
|
+
* Validated filter and fields
|
|
48
|
+
*/
|
|
46
49
|
const condition = await this.prepareWhere({ filterFields: this.column_names, filter: dfRule.filter, localParams, tableRule: tableRules });
|
|
47
50
|
if (!condition.where)
|
|
48
51
|
throw "dynamicFields.filter cannot be empty: " + JSON.stringify(dfRule);
|
|
52
|
+
await this.validateViewRules({ fields: dfRule.fields, filterFields, returningFields, forcedFilter, dynamicFields: tableRules.update.dynamicFields, rule: "update" });
|
|
49
53
|
await this.find(dfRule.filter, { limit: 0 });
|
|
50
54
|
/** Ensure dynamicFields filters do not overlap */
|
|
51
55
|
for await (const [_dfIndex, _dfRule] of tableRules.update.dynamicFields.entries()) {
|
|
@@ -68,7 +72,7 @@ async function parseUpdateRules(filter, newData, params, tableRules, localParams
|
|
|
68
72
|
const match = await this.findOne({ $and: [finalUpdateFilter, dfRule.filter].filter(prostgles_types_1.isDefined) });
|
|
69
73
|
if (match) {
|
|
70
74
|
/** Ensure it doesn't overlap with other dynamicFields.filter */
|
|
71
|
-
if (matchedRule) {
|
|
75
|
+
if (matchedRule && !testRule) {
|
|
72
76
|
throw "Your update is targeting multiple tableRules.update.dynamicFields. Restrict update filter to only target one rule";
|
|
73
77
|
}
|
|
74
78
|
matchedRule = dfRule;
|
|
@@ -70,8 +70,15 @@ export async function parseUpdateRules(
|
|
|
70
70
|
*/
|
|
71
71
|
if (testRule) {
|
|
72
72
|
for await (const [dfIndex, dfRule] of tableRules.update.dynamicFields.entries()) {
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* Validated filter and fields
|
|
76
|
+
*/
|
|
73
77
|
const condition = await this.prepareWhere({ filterFields: this.column_names, filter: dfRule.filter, localParams, tableRule: tableRules });
|
|
74
78
|
if (!condition.where) throw "dynamicFields.filter cannot be empty: " + JSON.stringify(dfRule);
|
|
79
|
+
await this.validateViewRules({ fields: dfRule.fields, filterFields, returningFields, forcedFilter, dynamicFields: tableRules.update.dynamicFields, rule: "update" });
|
|
80
|
+
|
|
81
|
+
|
|
75
82
|
await this.find(dfRule.filter, { limit: 0 });
|
|
76
83
|
|
|
77
84
|
/** Ensure dynamicFields filters do not overlap */
|
|
@@ -98,7 +105,7 @@ export async function parseUpdateRules(
|
|
|
98
105
|
if (match) {
|
|
99
106
|
|
|
100
107
|
/** Ensure it doesn't overlap with other dynamicFields.filter */
|
|
101
|
-
if (matchedRule) {
|
|
108
|
+
if (matchedRule && !testRule) {
|
|
102
109
|
throw "Your update is targeting multiple tableRules.update.dynamicFields. Restrict update filter to only target one rule";
|
|
103
110
|
}
|
|
104
111
|
|
package/package.json
CHANGED
package/tests/client/PID.txt
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
229207
|