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.
@@ -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,CAoID"}
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":"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"}
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,CAoID"}
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "prostgles-server",
3
- "version": "3.0.44",
3
+ "version": "3.0.45",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -1 +1 @@
1
- 225531
1
+ 229207
@@ -21,7 +21,7 @@
21
21
  },
22
22
  "../..": {
23
23
  "name": "prostgles-server",
24
- "version": "3.0.43",
24
+ "version": "3.0.44",
25
25
  "license": "MIT",
26
26
  "dependencies": {
27
27
  "@aws-sdk/client-s3": "^3.121.0",