@saltcorn/data 0.9.5-beta.8 → 0.9.5

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 (132) hide show
  1. package/dist/base-plugin/actions.d.ts +87 -41
  2. package/dist/base-plugin/actions.d.ts.map +1 -1
  3. package/dist/base-plugin/actions.js +135 -10
  4. package/dist/base-plugin/actions.js.map +1 -1
  5. package/dist/base-plugin/fieldviews.d.ts.map +1 -1
  6. package/dist/base-plugin/fieldviews.js +2 -10
  7. package/dist/base-plugin/fieldviews.js.map +1 -1
  8. package/dist/base-plugin/fileviews.js +6 -0
  9. package/dist/base-plugin/fileviews.js.map +1 -1
  10. package/dist/base-plugin/index.d.ts +107 -92
  11. package/dist/base-plugin/index.d.ts.map +1 -1
  12. package/dist/base-plugin/types.d.ts +208 -188
  13. package/dist/base-plugin/types.d.ts.map +1 -1
  14. package/dist/base-plugin/types.js +61 -13
  15. package/dist/base-plugin/types.js.map +1 -1
  16. package/dist/base-plugin/viewtemplates/edit.d.ts +1 -1
  17. package/dist/base-plugin/viewtemplates/edit.d.ts.map +1 -1
  18. package/dist/base-plugin/viewtemplates/edit.js +58 -23
  19. package/dist/base-plugin/viewtemplates/edit.js.map +1 -1
  20. package/dist/base-plugin/viewtemplates/feed.d.ts +1 -1
  21. package/dist/base-plugin/viewtemplates/feed.d.ts.map +1 -1
  22. package/dist/base-plugin/viewtemplates/feed.js +27 -11
  23. package/dist/base-plugin/viewtemplates/feed.js.map +1 -1
  24. package/dist/base-plugin/viewtemplates/filter.d.ts.map +1 -1
  25. package/dist/base-plugin/viewtemplates/filter.js +10 -4
  26. package/dist/base-plugin/viewtemplates/filter.js.map +1 -1
  27. package/dist/base-plugin/viewtemplates/list.d.ts.map +1 -1
  28. package/dist/base-plugin/viewtemplates/list.js +105 -5
  29. package/dist/base-plugin/viewtemplates/list.js.map +1 -1
  30. package/dist/base-plugin/viewtemplates/show.d.ts +1 -1
  31. package/dist/base-plugin/viewtemplates/show.d.ts.map +1 -1
  32. package/dist/base-plugin/viewtemplates/show.js +35 -18
  33. package/dist/base-plugin/viewtemplates/show.js.map +1 -1
  34. package/dist/base-plugin/viewtemplates/viewable_fields.d.ts +2 -2
  35. package/dist/base-plugin/viewtemplates/viewable_fields.d.ts.map +1 -1
  36. package/dist/base-plugin/viewtemplates/viewable_fields.js +56 -38
  37. package/dist/base-plugin/viewtemplates/viewable_fields.js.map +1 -1
  38. package/dist/db/state.d.ts +10 -1
  39. package/dist/db/state.d.ts.map +1 -1
  40. package/dist/db/state.js +105 -9
  41. package/dist/db/state.js.map +1 -1
  42. package/dist/models/config.d.ts.map +1 -1
  43. package/dist/models/config.js +58 -1
  44. package/dist/models/config.js.map +1 -1
  45. package/dist/models/email.d.ts +1 -0
  46. package/dist/models/email.d.ts.map +1 -1
  47. package/dist/models/expression.d.ts +3 -3
  48. package/dist/models/expression.d.ts.map +1 -1
  49. package/dist/models/expression.js +69 -17
  50. package/dist/models/expression.js.map +1 -1
  51. package/dist/models/field.d.ts +1 -1
  52. package/dist/models/field.d.ts.map +1 -1
  53. package/dist/models/field.js +18 -13
  54. package/dist/models/field.js.map +1 -1
  55. package/dist/models/fieldrepeat.d.ts.map +1 -1
  56. package/dist/models/fieldrepeat.js +4 -0
  57. package/dist/models/fieldrepeat.js.map +1 -1
  58. package/dist/models/file.d.ts +1 -0
  59. package/dist/models/file.d.ts.map +1 -1
  60. package/dist/models/file.js +6 -2
  61. package/dist/models/file.js.map +1 -1
  62. package/dist/models/form.d.ts +3 -1
  63. package/dist/models/form.d.ts.map +1 -1
  64. package/dist/models/form.js +2 -1
  65. package/dist/models/form.js.map +1 -1
  66. package/dist/models/index.d.ts +2 -2
  67. package/dist/models/index.d.ts.map +1 -1
  68. package/dist/models/page.d.ts.map +1 -1
  69. package/dist/models/page.js +10 -6
  70. package/dist/models/page.js.map +1 -1
  71. package/dist/models/page_group.d.ts.map +1 -1
  72. package/dist/models/page_group.js +1 -1
  73. package/dist/models/page_group.js.map +1 -1
  74. package/dist/models/plugin.d.ts.map +1 -1
  75. package/dist/models/plugin.js +1 -0
  76. package/dist/models/plugin.js.map +1 -1
  77. package/dist/models/random.d.ts.map +1 -1
  78. package/dist/models/random.js +1 -1
  79. package/dist/models/random.js.map +1 -1
  80. package/dist/models/scheduler.d.ts.map +1 -1
  81. package/dist/models/scheduler.js +4 -1
  82. package/dist/models/scheduler.js.map +1 -1
  83. package/dist/models/table.d.ts +16 -0
  84. package/dist/models/table.d.ts.map +1 -1
  85. package/dist/models/table.js +84 -9
  86. package/dist/models/table.js.map +1 -1
  87. package/dist/models/trigger.d.ts.map +1 -1
  88. package/dist/models/trigger.js +12 -1
  89. package/dist/models/trigger.js.map +1 -1
  90. package/dist/models/user.d.ts.map +1 -1
  91. package/dist/models/user.js +10 -0
  92. package/dist/models/user.js.map +1 -1
  93. package/dist/models/view.d.ts.map +1 -1
  94. package/dist/models/view.js +31 -12
  95. package/dist/models/view.js.map +1 -1
  96. package/dist/models/workflow.d.ts +2 -0
  97. package/dist/models/workflow.d.ts.map +1 -1
  98. package/dist/models/workflow.js +8 -0
  99. package/dist/models/workflow.js.map +1 -1
  100. package/dist/plugin-helper.d.ts +1 -0
  101. package/dist/plugin-helper.d.ts.map +1 -1
  102. package/dist/plugin-helper.js +8 -9
  103. package/dist/plugin-helper.js.map +1 -1
  104. package/dist/tests/calc.test.js +123 -1
  105. package/dist/tests/calc.test.js.map +1 -1
  106. package/dist/tests/edit.test.js +2 -2
  107. package/dist/tests/edit.test.js.map +1 -1
  108. package/dist/tests/exact_views.test.js +24 -24
  109. package/dist/tests/exact_views.test.js.map +1 -1
  110. package/dist/tests/file.test.d.ts +2 -0
  111. package/dist/tests/file.test.d.ts.map +1 -0
  112. package/dist/tests/file.test.js +95 -0
  113. package/dist/tests/file.test.js.map +1 -0
  114. package/dist/tests/mocks.d.ts +21 -0
  115. package/dist/tests/mocks.d.ts.map +1 -1
  116. package/dist/tests/mocks.js +35 -2
  117. package/dist/tests/mocks.js.map +1 -1
  118. package/dist/tests/models.test.js +0 -41
  119. package/dist/tests/models.test.js.map +1 -1
  120. package/dist/tests/show.test.js +6 -4
  121. package/dist/tests/show.test.js.map +1 -1
  122. package/dist/tests/table.test.js +161 -0
  123. package/dist/tests/table.test.js.map +1 -1
  124. package/dist/tests/table_history.test.js +39 -0
  125. package/dist/tests/table_history.test.js.map +1 -1
  126. package/dist/tests/view.test.js +2 -2
  127. package/dist/tests/view.test.js.map +1 -1
  128. package/dist/utils.d.ts +8 -3
  129. package/dist/utils.d.ts.map +1 -1
  130. package/dist/utils.js +56 -0
  131. package/dist/utils.js.map +1 -1
  132. package/package.json +8 -8
@@ -1 +1 @@
1
- {"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../models/table.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../models/table.ts"],"names":[],"mappings":"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"}
@@ -190,6 +190,21 @@ class Table {
190
190
  this.provider_name = o.provider_name;
191
191
  this.fields = o.fields.map((f) => new field_1.default(f));
192
192
  }
193
+ get to_json() {
194
+ return {
195
+ name: this.name,
196
+ id: this.id,
197
+ min_role_read: this.min_role_read,
198
+ min_role_write: this.min_role_write,
199
+ provider_name: this.provider_name,
200
+ ownership_formula: this.ownership_formula,
201
+ ownership_field_id: this.ownership_field_id,
202
+ provider_cfg: this.provider_cfg,
203
+ external: this.external,
204
+ versioned: this.versioned,
205
+ fields: this.fields.map((f) => f.toJson),
206
+ };
207
+ }
193
208
  to_provided_table() {
194
209
  const tbl = this;
195
210
  if (!tbl.provider_name)
@@ -838,7 +853,7 @@ class Table {
838
853
  else
839
854
  return null; //no ownership
840
855
  }
841
- return apply_calculated_fields([this.readFromDB(row)], this.fields)[0];
856
+ return apply_calculated_fields([this.readFromDB(this.parse_json_fields(row))], this.fields)[0];
842
857
  }
843
858
  /**
844
859
  * Get all matching rows from the table in the database.
@@ -889,7 +904,7 @@ class Table {
889
904
  else
890
905
  return []; //no ownership
891
906
  }
892
- return apply_calculated_fields(rows.map((r) => this.readFromDB(r)), this.fields, !!selopts.ignore_errors);
907
+ return apply_calculated_fields(rows.map((r) => this.readFromDB(this.parse_json_fields(r))), this.fields, !!selopts.ignore_errors);
893
908
  }
894
909
  processSelectOptions(selopts = {}) {
895
910
  if (typeof selopts?.orderBy === "object" &&
@@ -995,6 +1010,7 @@ class Table {
995
1010
  const pk_name = this.pk_name;
996
1011
  const role = user?.role_id;
997
1012
  const state = require("../db/state").getState();
1013
+ let stringified = false;
998
1014
  if (typeof id === "undefined")
999
1015
  throw new Error(this.name + " updateRow called without primary key value");
1000
1016
  if (id === null)
@@ -1090,6 +1106,9 @@ class Table {
1090
1106
  });
1091
1107
  let updated;
1092
1108
  if (need_to_update) {
1109
+ state.log(6, `Updating ${this.name} because calculated fields: ${JSON.stringify(v)}, id=${id}`);
1110
+ this.stringify_json_fields(v);
1111
+ stringified = true;
1093
1112
  await db_1.default.update(this.name, v, id, { pk_name });
1094
1113
  updated = await this.getJoinedRow({
1095
1114
  where: { [pk_name]: id },
@@ -1099,7 +1118,7 @@ class Table {
1099
1118
  }
1100
1119
  let calced = await apply_calculated_fields_stored(need_to_update ? updated : { ...existing, ...v_in },
1101
1120
  // @ts-ignore TODO ch throw ?
1102
- this.fields);
1121
+ this.fields, this);
1103
1122
  for (const f of fields)
1104
1123
  if (f.calculated && f.stored)
1105
1124
  v[f.name] = calced[f.name];
@@ -1129,6 +1148,9 @@ class Table {
1129
1148
  joinFields,
1130
1149
  });
1131
1150
  }
1151
+ state.log(6, `Updating ${this.name}: ${JSON.stringify(v)}, id=${id}`);
1152
+ if (!stringified)
1153
+ this.stringify_json_fields(v);
1132
1154
  await db_1.default.update(this.name, v, id, { pk_name });
1133
1155
  if (this.has_sync_info) {
1134
1156
  const oldInfo = await this.latestSyncInfo(id);
@@ -1154,6 +1176,7 @@ class Table {
1154
1176
  calcFields.forEach((f) => {
1155
1177
  // delete v1[f.name];
1156
1178
  });
1179
+ this.stringify_json_fields(v1);
1157
1180
  if (retry < 3) {
1158
1181
  try {
1159
1182
  await db_1.default.insert(this.name + "__history", v1);
@@ -1276,7 +1299,7 @@ class Table {
1276
1299
  .filter((c) => c.type === "Formula")
1277
1300
  .map((c) => c.configuration);
1278
1301
  for (const { formula, errormsg } of fmls) {
1279
- if (!eval_expression(formula, row))
1302
+ if (!eval_expression(formula, row, undefined, "Contraint formula"))
1280
1303
  return errormsg;
1281
1304
  }
1282
1305
  return undefined;
@@ -1354,7 +1377,10 @@ class Table {
1354
1377
  return valResCollector; //???
1355
1378
  if ("set_fields" in valResCollector)
1356
1379
  Object.assign(v_in, valResCollector.set_fields);
1357
- if (Object.keys(joinFields).length > 0) {
1380
+ if (Object.keys(joinFields).length > 0 ||
1381
+ fields.some((f) => f.expression === "__aggregation")) {
1382
+ state.log(6, `Inserting ${this.name} because join fields: ${JSON.stringify(v_in)}`);
1383
+ this.stringify_json_fields(v_in);
1358
1384
  id = await db_1.default.insert(this.name, v_in, { pk_name });
1359
1385
  let existing = await this.getJoinedRows({
1360
1386
  where: { [pk_name]: id },
@@ -1368,15 +1394,18 @@ class Table {
1368
1394
  state.log(4, `Not authorized to insertRow in table ${this.name}. Inserted row not retrieved.`);
1369
1395
  return;
1370
1396
  }
1371
- let calced = await apply_calculated_fields_stored(existing[0], fields);
1397
+ let calced = await apply_calculated_fields_stored(existing[0], fields, this);
1372
1398
  v = { ...v_in };
1373
1399
  for (const f of fields)
1374
1400
  if (f.calculated && f.stored)
1375
1401
  v[f.name] = calced[f.name];
1402
+ state.log(6, `Updating ${this.name} because join fields: ${JSON.stringify(v_in)}`);
1376
1403
  await db_1.default.update(this.name, v, id, { pk_name });
1377
1404
  }
1378
1405
  else {
1379
- v = await apply_calculated_fields_stored(v_in, fields);
1406
+ v = await apply_calculated_fields_stored(v_in, fields, this);
1407
+ this.stringify_json_fields(v);
1408
+ state.log(6, `Inserting ${this.name} row: ${JSON.stringify(v)}`);
1380
1409
  id = await db_1.default.insert(this.name, v, { pk_name });
1381
1410
  }
1382
1411
  if (user && user.role_id > this.min_role_write && this.ownership_formula) {
@@ -1637,6 +1666,21 @@ class Table {
1637
1666
  }
1638
1667
  }
1639
1668
  }
1669
+ async compress_history(interval_secs) {
1670
+ if (typeof interval_secs !== "number" || interval_secs < 0.199)
1671
+ throw new Error("compress_history mush be called with a number greater than 0.2 seconds");
1672
+ const schemaPrefix = db_1.default.getTenantSchemaPrefix();
1673
+ await db_1.default.query(`
1674
+ delete from ${schemaPrefix}"${(0, internal_1.sqlsanitize)(this.name)}__history"
1675
+ where (${(0, internal_1.sqlsanitize)(this.pk_name)}, _version) in (
1676
+ select h1.${(0, internal_1.sqlsanitize)(this.pk_name)}, h1._version
1677
+ FROM ${schemaPrefix}"${(0, internal_1.sqlsanitize)(this.name)}__history" h1
1678
+ JOIN ${schemaPrefix}"${(0, internal_1.sqlsanitize)(this.name)}__history" h2 ON h1.${(0, internal_1.sqlsanitize)(this.pk_name)} = h2.${(0, internal_1.sqlsanitize)(this.pk_name)}
1679
+ AND h1._version < h2._version
1680
+ AND h1._time < h2._time
1681
+ AND h2._time - h1._time <= INTERVAL '${+interval_secs} seconds'
1682
+ );`);
1683
+ }
1640
1684
  /**
1641
1685
  * Drop history table
1642
1686
  * @returns {Promise<void>}
@@ -1662,7 +1706,7 @@ class Table {
1662
1706
  //rename table
1663
1707
  await db_1.default.query(`alter table ${schemaPrefix}"${(0, internal_1.sqlsanitize)(this.name)}" rename to "${(0, internal_1.sqlsanitize)(new_name)}";`);
1664
1708
  //change refs
1665
- await db_1.default.query(`update ${schemaPrefix}_sc_fields set reftable_name=$1 where reftable_name=$2`, [(0, internal_1.sqlsanitize)(new_name), (0, internal_1.sqlsanitize)(this.name)]);
1709
+ await db_1.default.query(`update ${schemaPrefix}_sc_fields set reftable_name=$1 where reftable_name=$2`, [new_name, this.name]);
1666
1710
  //rename history
1667
1711
  if (this.versioned)
1668
1712
  await db_1.default.query(`alter table ${schemaPrefix}"${(0, internal_1.sqlsanitize)(this.name)}__history" rename to "${(0, internal_1.sqlsanitize)(new_name)}__history";`);
@@ -1887,6 +1931,7 @@ class Table {
1887
1931
  const renames = [];
1888
1932
  const fkey_fields = [];
1889
1933
  const json_schema_fields = [];
1934
+ const state = require("../db/state").getState();
1890
1935
  for (const f of fields) {
1891
1936
  if (headers.includes(f.name))
1892
1937
  okHeaders[f.name] = f;
@@ -2103,6 +2148,8 @@ class Table {
2103
2148
  error: `Error processing CSV file: ${!e ? e : e.error || e.message || e}`,
2104
2149
  };
2105
2150
  }
2151
+ if (rejectDetails)
2152
+ state.log(6, `CSV import rejectDetails: ` + rejectDetails);
2106
2153
  // stop sql transaction
2107
2154
  await client.query("COMMIT");
2108
2155
  if (!db_1.default.isSQLite)
@@ -2128,6 +2175,29 @@ class Table {
2128
2175
  success: `Imported ${i > 1 ? i - 1 - rejects : ""} rows into table ${this.name}` + (rejects ? `. Rejected ${rejects} rows.` : ""),
2129
2176
  };
2130
2177
  }
2178
+ stringify_json_fields(v1) {
2179
+ if (db_1.default.isSQLite)
2180
+ return;
2181
+ this.fields
2182
+ .filter((f) => typeof f.type !== "string" && f?.type?.name === "JSON")
2183
+ .forEach((f) => {
2184
+ if (typeof v1[f.name] !== "undefined")
2185
+ v1[f.name] = JSON.stringify(v1[f.name]);
2186
+ });
2187
+ }
2188
+ parse_json_fields(v1) {
2189
+ if (db_1.default.isSQLite)
2190
+ this.fields
2191
+ .filter((f) => typeof f.type !== "string" && f?.type?.name === "JSON")
2192
+ .forEach((f) => {
2193
+ if (typeof v1[f.name] === "string")
2194
+ try {
2195
+ v1[f.name] = JSON.parse(v1[f.name]);
2196
+ }
2197
+ catch (e) { }
2198
+ });
2199
+ return v1;
2200
+ }
2131
2201
  /**
2132
2202
  * Import JSON table description
2133
2203
  * @param filePath
@@ -2140,6 +2210,7 @@ class Table {
2140
2210
  const fields = this.fields;
2141
2211
  const pk_name = this.pk_name;
2142
2212
  const { readState } = require("../plugin-helper");
2213
+ const jsonFields = fields.filter((f) => typeof f.type !== "string" && f?.type?.name === "JSON");
2143
2214
  let i = 1;
2144
2215
  const client = db_1.default.isSQLite ? db_1.default : await db_1.default.getClient();
2145
2216
  await client.query("BEGIN");
@@ -2156,6 +2227,10 @@ class Table {
2156
2227
  });
2157
2228
  try {
2158
2229
  readState(rec, fields);
2230
+ jsonFields.forEach((f) => {
2231
+ if (!db_1.default.isSQLite && typeof rec[f.name] !== "undefined")
2232
+ rec[f.name] = JSON.stringify(rec[f.name]);
2233
+ });
2159
2234
  if (this.name === "users" && rec.role_id < 11 && rec.role_id > 1)
2160
2235
  rec.role_id = rec.role_id * 10;
2161
2236
  await db_1.default.insert(this.name, rec, { noid: true, client, pk_name });
@@ -2611,7 +2686,7 @@ class Table {
2611
2686
  const res = await db_1.default.query(sql, values);
2612
2687
  if (res.length === 0)
2613
2688
  return res; // check
2614
- let calcRow = apply_calculated_fields(res.rows, fields, !!opts?.ignore_errors);
2689
+ let calcRow = apply_calculated_fields(res.rows.map((row) => this.parse_json_fields(row)), fields, !!opts?.ignore_errors);
2615
2690
  //rename joinfields
2616
2691
  if (Object.values(joinFields || {}).some((jf) => jf.rename_object)) {
2617
2692
  let f = (x) => x;