@saltcorn/data 1.1.3 → 1.1.4-alpha.1

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 (63) hide show
  1. package/dist/base-plugin/index.d.ts +3 -9
  2. package/dist/base-plugin/index.d.ts.map +1 -1
  3. package/dist/base-plugin/viewtemplates/edit.d.ts +1 -3
  4. package/dist/base-plugin/viewtemplates/edit.d.ts.map +1 -1
  5. package/dist/base-plugin/viewtemplates/edit.js +167 -158
  6. package/dist/base-plugin/viewtemplates/edit.js.map +1 -1
  7. package/dist/base-plugin/viewtemplates/filter.d.ts +1 -3
  8. package/dist/base-plugin/viewtemplates/filter.d.ts.map +1 -1
  9. package/dist/base-plugin/viewtemplates/filter.js +46 -43
  10. package/dist/base-plugin/viewtemplates/filter.js.map +1 -1
  11. package/dist/base-plugin/viewtemplates/list.d.ts.map +1 -1
  12. package/dist/base-plugin/viewtemplates/list.js +34 -35
  13. package/dist/base-plugin/viewtemplates/list.js.map +1 -1
  14. package/dist/base-plugin/viewtemplates/show.d.ts +1 -3
  15. package/dist/base-plugin/viewtemplates/show.d.ts.map +1 -1
  16. package/dist/base-plugin/viewtemplates/show.js +20 -21
  17. package/dist/base-plugin/viewtemplates/show.js.map +1 -1
  18. package/dist/db/index.d.ts.map +1 -1
  19. package/dist/db/index.js.map +1 -1
  20. package/dist/models/config.d.ts.map +1 -1
  21. package/dist/models/config.js +7 -0
  22. package/dist/models/config.js.map +1 -1
  23. package/dist/models/discovery.d.ts.map +1 -1
  24. package/dist/models/discovery.js +2 -1
  25. package/dist/models/discovery.js.map +1 -1
  26. package/dist/models/field.d.ts.map +1 -1
  27. package/dist/models/field.js +15 -14
  28. package/dist/models/field.js.map +1 -1
  29. package/dist/models/model.d.ts.map +1 -1
  30. package/dist/models/model.js +6 -2
  31. package/dist/models/model.js.map +1 -1
  32. package/dist/models/page.d.ts +1 -0
  33. package/dist/models/page.d.ts.map +1 -1
  34. package/dist/models/page.js +8 -2
  35. package/dist/models/page.js.map +1 -1
  36. package/dist/models/page_group.d.ts +2 -3
  37. package/dist/models/page_group.d.ts.map +1 -1
  38. package/dist/models/page_group.js +72 -112
  39. package/dist/models/page_group.js.map +1 -1
  40. package/dist/models/page_group_member.d.ts +4 -4
  41. package/dist/models/page_group_member.d.ts.map +1 -1
  42. package/dist/models/page_group_member.js +11 -11
  43. package/dist/models/page_group_member.js.map +1 -1
  44. package/dist/models/table.d.ts +1 -0
  45. package/dist/models/table.d.ts.map +1 -1
  46. package/dist/models/table.js +51 -56
  47. package/dist/models/table.js.map +1 -1
  48. package/dist/models/table_constraints.d.ts.map +1 -1
  49. package/dist/models/table_constraints.js +6 -3
  50. package/dist/models/table_constraints.js.map +1 -1
  51. package/dist/models/trigger.d.ts +2 -0
  52. package/dist/models/trigger.d.ts.map +1 -1
  53. package/dist/models/trigger.js +26 -4
  54. package/dist/models/trigger.js.map +1 -1
  55. package/dist/models/view.d.ts +1 -0
  56. package/dist/models/view.d.ts.map +1 -1
  57. package/dist/models/view.js +9 -3
  58. package/dist/models/view.js.map +1 -1
  59. package/dist/tests/calc.test.js +2 -3
  60. package/dist/tests/calc.test.js.map +1 -1
  61. package/dist/tests/exact_views.test.js +1 -0
  62. package/dist/tests/exact_views.test.js.map +1 -1
  63. package/package.json +8 -8
@@ -222,13 +222,17 @@ class Table {
222
222
  t.update = async (upd_rec) => {
223
223
  const { fields, constraints, ...updDB } = upd_rec;
224
224
  await db_1.default.update("_sc_tables", updDB, tbl.id);
225
- await require("../db/state").getState().refresh_tables();
225
+ //limited refresh if we do not have a client
226
+ if (!db_1.default.getRequestContext()?.client)
227
+ await require("../db/state").getState().refresh_tables(true);
226
228
  };
227
229
  t.delete = async (upd_rec) => {
228
230
  const schema = db_1.default.getTenantSchemaPrefix();
229
231
  await db_1.default.deleteWhere("_sc_tag_entries", { table_id: this.id });
230
232
  await db_1.default.query(`delete FROM ${schema}_sc_tables WHERE id = $1`, [tbl.id]);
231
- await require("../db/state").getState().refresh_tables();
233
+ //limited refresh if we do not have a client
234
+ if (!db_1.default.getRequestContext()?.client)
235
+ await require("../db/state").getState().refresh_tables(true);
232
236
  };
233
237
  return t;
234
238
  }
@@ -609,7 +613,9 @@ class Table {
609
613
  if (table.has_sync_info)
610
614
  await table.create_sync_info_table();
611
615
  // refresh tables cache
612
- await require("../db/state").getState().refresh_tables();
616
+ //limited refresh if we do not have a client
617
+ if (!db_1.default.getRequestContext()?.client)
618
+ await require("../db/state").getState().refresh_tables(true);
613
619
  return table;
614
620
  }
615
621
  /**
@@ -653,34 +659,23 @@ class Table {
653
659
  const schema = db_1.default.getTenantSchemaPrefix();
654
660
  const is_sqlite = db_1.default.isSQLite;
655
661
  await this.update({ ownership_field_id: null });
656
- const client = is_sqlite ? db_1.default : await db_1.default.getClient();
657
- await client.query(`BEGIN`);
658
- try {
659
- // drop table
660
- if (!only_forget)
661
- await client.query(`drop table if exists ${schema}"${(0, internal_1.sqlsanitize)(this.name)}"`);
662
- // delete tag entries from _sc_tag_entries
663
- await db_1.default.deleteWhere("_sc_tag_entries", { table_id: this.id });
664
- // delete fields
665
- await client.query(`delete FROM ${schema}_sc_fields WHERE table_id = $1`, [this.id]);
666
- // delete table description
667
- await client.query(`delete FROM ${schema}_sc_tables WHERE id = $1`, [
668
- this.id,
669
- ]);
670
- // delete versioned table
671
- if (this.versioned)
672
- await client.query(`drop table if exists ${schema}"${(0, internal_1.sqlsanitize)(this.name)}__history"`);
673
- await client.query(`COMMIT`);
674
- }
675
- catch (e) {
676
- await client.query(`ROLLBACK`);
677
- if (!is_sqlite)
678
- client.release(true);
679
- throw e;
680
- }
681
- if (!is_sqlite)
682
- client.release(true);
683
- await require("../db/state").getState().refresh_tables();
662
+ // drop table
663
+ if (!only_forget)
664
+ await db_1.default.query(`drop table if exists ${schema}"${(0, internal_1.sqlsanitize)(this.name)}"`);
665
+ // delete tag entries from _sc_tag_entries
666
+ await db_1.default.deleteWhere("_sc_tag_entries", { table_id: this.id });
667
+ // delete fields
668
+ await db_1.default.query(`delete FROM ${schema}_sc_fields WHERE table_id = $1`, [
669
+ this.id,
670
+ ]);
671
+ // delete table description
672
+ await db_1.default.query(`delete FROM ${schema}_sc_tables WHERE id = $1`, [this.id]);
673
+ // delete versioned table
674
+ if (this.versioned)
675
+ await db_1.default.query(`drop table if exists ${schema}"${(0, internal_1.sqlsanitize)(this.name)}__history"`);
676
+ //limited refresh if we do not have a client
677
+ if (!db_1.default.getRequestContext()?.client)
678
+ await require("../db/state").getState().refresh_tables(true);
684
679
  }
685
680
  /***
686
681
  * Get Table SQL Name
@@ -1958,27 +1953,18 @@ class Table {
1958
1953
  if (db_1.default.isSQLite)
1959
1954
  throw new InvalidAdminAction("Cannot rename table on SQLite");
1960
1955
  const schemaPrefix = db_1.default.getTenantSchemaPrefix();
1961
- const client = await db_1.default.getClient();
1962
- await client.query(`BEGIN`);
1963
- try {
1964
- //rename table
1965
- await db_1.default.query(`alter table ${schemaPrefix}"${(0, internal_1.sqlsanitize)(this.name)}" rename to "${(0, internal_1.sqlsanitize)(new_name)}";`);
1966
- //change refs
1967
- await db_1.default.query(`update ${schemaPrefix}_sc_fields set reftable_name=$1 where reftable_name=$2`, [new_name, this.name]);
1968
- //rename history
1969
- if (this.versioned)
1970
- await db_1.default.query(`alter table ${schemaPrefix}"${(0, internal_1.sqlsanitize)(this.name)}__history" rename to "${(0, internal_1.sqlsanitize)(new_name)}__history";`);
1971
- //1. change record
1972
- await this.update({ name: new_name });
1973
- await client.query(`COMMIT`);
1974
- }
1975
- catch (e) {
1976
- await client.query(`ROLLBACK`);
1977
- client.release(true);
1978
- throw e;
1979
- }
1980
- client.release(true);
1981
- await require("../db/state").getState().refresh_tables();
1956
+ //rename table
1957
+ await db_1.default.query(`alter table ${schemaPrefix}"${(0, internal_1.sqlsanitize)(this.name)}" rename to "${(0, internal_1.sqlsanitize)(new_name)}";`);
1958
+ //change refs
1959
+ await db_1.default.query(`update ${schemaPrefix}_sc_fields set reftable_name=$1 where reftable_name=$2`, [new_name, this.name]);
1960
+ //rename history
1961
+ if (this.versioned)
1962
+ await db_1.default.query(`alter table ${schemaPrefix}"${(0, internal_1.sqlsanitize)(this.name)}__history" rename to "${(0, internal_1.sqlsanitize)(new_name)}__history";`);
1963
+ //1. change record
1964
+ await this.update({ name: new_name });
1965
+ //limited refresh if we do not have a client
1966
+ if (!db_1.default.getRequestContext()?.client)
1967
+ await require("../db/state").getState().refresh_tables(true);
1982
1968
  }
1983
1969
  /**
1984
1970
  * Update Table description in _sc_table
@@ -1995,8 +1981,10 @@ class Table {
1995
1981
  }
1996
1982
  const { external, fields, constraints, ...upd_rec } = new_table_rec;
1997
1983
  await db_1.default.update("_sc_tables", upd_rec, this.id);
1998
- await require("../db/state").getState().refresh_tables();
1999
- const new_table = Table.findOne({ id: this.id });
1984
+ //limited refresh if we do not have a client
1985
+ if (!db_1.default.getRequestContext()?.client)
1986
+ await require("../db/state").getState().refresh_tables(true);
1987
+ const new_table = new Table({ ...this, ...upd_rec });
2000
1988
  if (!new_table) {
2001
1989
  throw new Error(`Unable to find table with id: ${this.id}`);
2002
1990
  }
@@ -2016,6 +2004,9 @@ class Table {
2016
2004
  Object.assign(this, new_table_rec);
2017
2005
  }
2018
2006
  }
2007
+ static async state_refresh() {
2008
+ await require("../db/state").getState().refresh_tables();
2009
+ }
2019
2010
  /**
2020
2011
  * Get table history data
2021
2012
  * @param id
@@ -2116,7 +2107,9 @@ class Table {
2116
2107
  return { error: parse_res.error };
2117
2108
  }
2118
2109
  parse_res.table = table;
2119
- await require("../db/state").getState().refresh_tables();
2110
+ //limited refresh if we do not have a client
2111
+ if (!db_1.default.getRequestContext()?.client)
2112
+ await require("../db/state").getState().refresh_tables(true);
2120
2113
  return parse_res;
2121
2114
  }
2122
2115
  /**
@@ -3198,7 +3191,9 @@ where table_schema = '${db_1.default.getTenantSchema() || "public"}'
3198
3191
  delete attrs.NonSerial;
3199
3192
  await pk.update({ attributes: attrs });
3200
3193
  }
3201
- await require("../db/state").getState().refresh_tables();
3194
+ //limited refresh if we do not have a client
3195
+ if (!db_1.default.getRequestContext()?.client)
3196
+ await require("../db/state").getState().refresh_tables(true);
3202
3197
  }
3203
3198
  async move_include_fts_to_search_context() {
3204
3199
  const include_fts_fields = this.fields.filter((f) => f.attributes?.include_fts);