@saltcorn/data 0.6.2 → 0.6.3-beta.0

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 (72) hide show
  1. package/dist/base-plugin/index.d.ts +97 -92
  2. package/dist/base-plugin/index.d.ts.map +1 -1
  3. package/dist/base-plugin/viewtemplates/edit.d.ts +1 -1
  4. package/dist/base-plugin/viewtemplates/edit.d.ts.map +1 -1
  5. package/dist/base-plugin/viewtemplates/edit.js +25 -2
  6. package/dist/base-plugin/viewtemplates/edit.js.map +1 -1
  7. package/dist/base-plugin/viewtemplates/feed.d.ts +1 -1
  8. package/dist/base-plugin/viewtemplates/feed.d.ts.map +1 -1
  9. package/dist/base-plugin/viewtemplates/feed.js +11 -1
  10. package/dist/base-plugin/viewtemplates/feed.js.map +1 -1
  11. package/dist/base-plugin/viewtemplates/list.d.ts +1 -1
  12. package/dist/base-plugin/viewtemplates/list.d.ts.map +1 -1
  13. package/dist/base-plugin/viewtemplates/list.js +23 -11
  14. package/dist/base-plugin/viewtemplates/list.js.map +1 -1
  15. package/dist/base-plugin/viewtemplates/show.d.ts +5 -0
  16. package/dist/base-plugin/viewtemplates/show.d.ts.map +1 -1
  17. package/dist/base-plugin/viewtemplates/show.js +34 -4
  18. package/dist/base-plugin/viewtemplates/show.js.map +1 -1
  19. package/dist/common_types.d.ts +28 -0
  20. package/dist/common_types.d.ts.map +1 -0
  21. package/dist/common_types.js +16 -0
  22. package/dist/common_types.js.map +1 -0
  23. package/dist/models/backup.d.ts +6 -21
  24. package/dist/models/backup.d.ts.map +1 -1
  25. package/dist/models/backup.js +48 -44
  26. package/dist/models/backup.js.map +1 -1
  27. package/dist/models/eventlog.d.ts +39 -38
  28. package/dist/models/eventlog.d.ts.map +1 -1
  29. package/dist/models/eventlog.js +14 -29
  30. package/dist/models/eventlog.js.map +1 -1
  31. package/dist/models/expression.d.ts.map +1 -1
  32. package/dist/models/expression.js +14 -3
  33. package/dist/models/expression.js.map +1 -1
  34. package/dist/models/field.d.ts +123 -120
  35. package/dist/models/field.d.ts.map +1 -1
  36. package/dist/models/field.js +129 -147
  37. package/dist/models/field.js.map +1 -1
  38. package/dist/models/form.d.ts.map +1 -1
  39. package/dist/models/form.js +2 -0
  40. package/dist/models/form.js.map +1 -1
  41. package/dist/models/library.d.ts +29 -19
  42. package/dist/models/library.d.ts.map +1 -1
  43. package/dist/models/library.js +10 -8
  44. package/dist/models/library.js.map +1 -1
  45. package/dist/models/role.d.ts +13 -9
  46. package/dist/models/role.d.ts.map +1 -1
  47. package/dist/models/role.js +10 -7
  48. package/dist/models/role.js.map +1 -1
  49. package/dist/models/table.d.ts +85 -132
  50. package/dist/models/table.d.ts.map +1 -1
  51. package/dist/models/table.js +172 -177
  52. package/dist/models/table.js.map +1 -1
  53. package/dist/models/tenant.d.ts +6 -0
  54. package/dist/models/tenant.d.ts.map +1 -1
  55. package/dist/models/tenant.js +9 -0
  56. package/dist/models/tenant.js.map +1 -1
  57. package/dist/models/trigger.d.ts +62 -66
  58. package/dist/models/trigger.d.ts.map +1 -1
  59. package/dist/models/trigger.js +7 -33
  60. package/dist/models/trigger.js.map +1 -1
  61. package/dist/tests/calc.test.js +13 -0
  62. package/dist/tests/calc.test.js.map +1 -1
  63. package/dist/tests/exact_views.test.js +214 -0
  64. package/dist/tests/exact_views.test.js.map +1 -1
  65. package/dist/tests/table.test.js +7 -0
  66. package/dist/tests/table.test.js.map +1 -1
  67. package/dist/tsconfig.ref.tsbuildinfo +1 -1
  68. package/dist/utils.d.ts +2 -0
  69. package/dist/utils.d.ts.map +1 -1
  70. package/dist/utils.js +26 -0
  71. package/dist/utils.js.map +1 -1
  72. package/package.json +8 -5
@@ -1,82 +1,67 @@
1
- export = Field;
1
+ /**
2
+ * Field Data Access Layer
3
+ * @category saltcorn-data
4
+ * @module models/field
5
+ * @subcategory models
6
+ */
7
+ import type { Where, SelectOptions, Row } from "@saltcorn/db-common/internal";
8
+ import type { ResultMessage, TypeObj } from "../common_types";
9
+ import type Table from "./table";
2
10
  /**
3
11
  * Field Class
4
12
  * @category saltcorn-data
5
13
  */
6
14
  declare class Field {
7
- /**
8
- * Label 2 Name
9
- * @param {string} label
10
- * @returns {string}
11
- */
12
- static labelToName(label: string): string;
13
- /**
14
- *
15
- * @param {object} where
16
- * @param {object} [selectopts]
17
- * @returns {Field[]}
18
- */
19
- static find(where: object, selectopts?: object | undefined): Field[];
20
- /**
21
- * @param {object} where
22
- * @returns {Promise<Field>}
23
- */
24
- static findOne(where: object): Promise<Field>;
25
- /**
26
- * @param {object} fld
27
- * @param {boolean} [bare = false]
28
- * @returns {Promise<Field>}
29
- */
30
- static create(fld: object, bare?: boolean | undefined): Promise<Field>;
31
- /**
32
- * @param {function|object[]} [typeattribs]
33
- * @param {number} [table_id]
34
- * @returns {*}
35
- */
36
- static getTypeAttributes(typeattribs?: Function | object[] | undefined, table_id?: number | undefined): any;
37
- /**
38
- * Constructor
39
- * @param o
40
- */
41
- constructor(o: any);
42
- label: any;
43
- name: any;
44
- fieldview: any;
45
- validator: any;
46
- showIf: any;
47
- parent_field: any;
48
- postText: any;
49
- class: any;
50
- id: any;
51
- default: any;
52
- sublabel: any;
53
- description: any;
54
- type: any;
55
- typename: any;
56
- options: any;
15
+ label: string;
16
+ name: string;
17
+ fieldview?: string;
18
+ validator: Function;
19
+ showIf?: boolean;
20
+ parent_field?: string;
21
+ postText?: string;
22
+ class: string;
23
+ id?: number;
24
+ default?: string;
25
+ sublabel?: string;
26
+ description?: string;
27
+ type?: string | TypeObj;
28
+ typename?: string;
29
+ options?: any;
57
30
  required: boolean;
58
31
  is_unique: boolean;
59
- hidden: any;
32
+ hidden: boolean;
60
33
  disabled: boolean;
61
34
  calculated: boolean;
62
35
  primary_key: boolean;
63
36
  stored: boolean;
64
- expression: any;
65
- sourceURL: any;
66
- is_fkey: any;
67
- input_type: any;
68
- reftable_name: any;
69
- reftype: any;
70
- refname: any;
71
- reftable: any;
37
+ expression?: string;
38
+ sourceURL?: string;
39
+ is_fkey: boolean;
40
+ input_type: string;
41
+ reftable_name?: string;
42
+ reftype?: string;
43
+ refname: string;
44
+ reftable?: Table;
72
45
  attributes: any;
73
- table_id: any;
74
- table: any;
46
+ table_id?: number;
47
+ table?: Table;
48
+ [key: string]: any;
49
+ /**
50
+ * Constructor
51
+ * @param o
52
+ */
53
+ constructor(o: FieldCfg | Field);
75
54
  /**
76
55
  * To Json
77
56
  * @type {object}
78
57
  */
79
- get toJson(): object;
58
+ get toJson(): any;
59
+ /**
60
+ * Label 2 Name
61
+ * @param {string} label
62
+ * @returns {string}
63
+ */
64
+ static labelToName(label: string): string | undefined;
80
65
  /**
81
66
  * ???
82
67
  * @returns {string}
@@ -88,13 +73,17 @@ declare class Field {
88
73
  * @param {object} where
89
74
  * @returns {Promise<void>}
90
75
  */
91
- fill_fkey_options(force_allow_none?: boolean | undefined, where0: any, extraCtx: any): Promise<void>;
76
+ fill_fkey_options(force_allow_none: boolean | undefined, where0: Where, extraCtx?: any): Promise<void>;
92
77
  /**
93
78
  * Distinct Values
94
79
  * @param {object} [req]
95
80
  * @returns {Promise<void>}
96
81
  */
97
- distinct_values(req?: object | undefined, where: any): Promise<void>;
82
+ distinct_values(req: any, where: Where): Promise<{
83
+ label: string;
84
+ value: string;
85
+ jsvalue?: boolean;
86
+ }[]>;
98
87
  /**
99
88
  * @type {string}
100
89
  */
@@ -115,7 +104,19 @@ declare class Field {
115
104
  * @param {object} whole_rec
116
105
  * @returns {object}
117
106
  */
118
- validate(whole_rec: object): object;
107
+ validate(whole_rec: any): ResultMessage;
108
+ /**
109
+ *
110
+ * @param {object} where
111
+ * @param {object} [selectopts]
112
+ * @returns {Field[]}
113
+ */
114
+ static find(where?: Where, selectopts?: SelectOptions): Promise<Field[]>;
115
+ /**
116
+ * @param {object} where
117
+ * @returns {Promise<Field>}
118
+ */
119
+ static findOne(where: Where): Promise<Field>;
119
120
  /**
120
121
  * @returns {Promise<void>}
121
122
  */
@@ -134,7 +135,7 @@ declare class Field {
134
135
  * @param {object} new_field
135
136
  * @returns {Promise<void>}
136
137
  */
137
- alter_sql_type(new_field: object): Promise<void>;
138
+ alter_sql_type(new_field: Field): Promise<void>;
138
139
  /**
139
140
  * @returns {Promise<void>}
140
141
  */
@@ -143,15 +144,19 @@ declare class Field {
143
144
  * @param {object} v
144
145
  * @returns {Promise<void>}
145
146
  */
146
- update(v: object): Promise<void>;
147
+ update(v: Row): Promise<void>;
147
148
  /**
148
149
  * @type {string}
149
150
  */
150
- get listKey(): string;
151
+ get listKey(): any;
151
152
  /**
152
153
  * @type {object}
153
154
  */
154
- get presets(): object;
155
+ get presets(): {
156
+ LoggedIn: ({ user }: {
157
+ user: any;
158
+ }) => boolean;
159
+ } | null;
155
160
  /**
156
161
  * @throws {InvalidAdminAction}
157
162
  * @returns {Promise<void>}
@@ -161,57 +166,55 @@ declare class Field {
161
166
  * @param {object} table
162
167
  * @returns {Promise<void>}
163
168
  */
164
- enable_fkey_constraint(table: object): Promise<void>;
169
+ enable_fkey_constraint(table: Table): Promise<void>;
170
+ /**
171
+ * @param {object} fld
172
+ * @param {boolean} [bare = false]
173
+ * @returns {Promise<Field>}
174
+ */
175
+ static create(fld: Field, bare?: boolean): Promise<Field>;
176
+ /**
177
+ * @param {function|object[]} [typeattribs]
178
+ * @param {number} [table_id]
179
+ * @returns {*}
180
+ */
181
+ static getTypeAttributes(typeattribs: Function | any, table_id?: number): any;
165
182
  }
166
183
  declare namespace Field {
167
- namespace contract {
168
- namespace variables {
169
- export const name: any;
170
- export const label: any;
171
- const _class: any;
172
- export { _class as class };
173
- export const postText: any;
174
- export const sublabel: any;
175
- export const fieldview: any;
176
- export const parent_field: any;
177
- export const reftable_name: any;
178
- export const validator: any;
179
- export const type: any;
180
- export const input_type: any;
181
- export const is_fkey: any;
182
- export const is_unique: any;
183
- export const required: any;
184
- export const disabled: any;
185
- export const id: any;
186
- export const attributes: any;
187
- export const table_id: any;
188
- }
189
- const instance_check: any;
190
- namespace methods {
191
- export const validate: any;
192
- export const toJson: any;
193
- export const sql_type: any;
194
- export const sql_bare_type: any;
195
- export const form_name: any;
196
- export const listKey: any;
197
- export const presets: any;
198
- const _delete: any;
199
- export { _delete as delete };
200
- export const generate: any;
201
- export const add_unique_constraint: any;
202
- export const remove_unique_constraint: any;
203
- export const toggle_not_null: any;
204
- export const fill_table: any;
205
- export const update: any;
206
- export const fill_fkey_options: any;
207
- export const distinct_values: any;
208
- }
209
- namespace static_methods {
210
- const find: any;
211
- const findOne: any;
212
- const create: any;
213
- const labelToName: any;
214
- }
215
- }
184
+ type FieldCfg = {
185
+ label?: string;
186
+ name?: string;
187
+ fieldview?: string;
188
+ validator?: (arg0: any) => boolean;
189
+ showIf?: boolean;
190
+ parent_field?: string;
191
+ postText?: string;
192
+ class?: string;
193
+ id?: number;
194
+ default?: string;
195
+ sublabel?: string;
196
+ description?: string;
197
+ type?: string | TypeObj;
198
+ options?: any;
199
+ required?: boolean;
200
+ is_unique?: boolean;
201
+ hidden?: boolean;
202
+ disabled?: boolean;
203
+ calculated?: boolean;
204
+ primary_key?: boolean;
205
+ stored?: boolean;
206
+ expression?: string;
207
+ sourceURL?: string;
208
+ input_type?: "hidden" | "file" | "select" | "fromtype" | "search" | "text" | "password" | "section_header" | "textarea" | "custom_html" | "code";
209
+ reftable_name?: string;
210
+ reftable?: Table;
211
+ attributes?: string;
212
+ table_id?: number;
213
+ reftype?: string;
214
+ refname?: string;
215
+ table?: Table;
216
+ };
216
217
  }
218
+ declare type FieldCfg = Field.FieldCfg;
219
+ export = Field;
217
220
  //# sourceMappingURL=field.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"field.d.ts","sourceRoot":"","sources":["../../models/field.js"],"names":[],"mappings":";AAwBA;;;GAGG;AACH;IAqGE;;;;OAIG;IAGH,0BALW,MAAM,GACJ,MAAM,CAMlB;IAyLD;;;;;OAKG;IACH,mBAJW,MAAM,oCAEJ,KAAK,EAAE,CAKnB;IAED;;;OAGG;IACH,sBAHW,MAAM,GACJ,QAAQ,KAAK,CAAC,CAK1B;IAgND;;;;OAIG;IACH,mBAJW,MAAM,+BAEJ,QAAQ,KAAK,CAAC,CAgG1B;IAED;;;;OAIG;IACH,4GASC;IA3nBD;;;OAGG;IACH,oBAmEC;IAhEC,WAA8B;IAC9B,UAAgD;IAChD,eAA4B;IAC5B,eAA4C;IAC5C,YAAsB;IACtB,kBAAkC;IAClC,cAA0B;IAC1B,WAA0B;IAC1B,QAAc;IACd,aAAwB;IACxB,cAA0B;IAC1B,iBAAgC;IAGhC,UAA0E;IAC1D,cAAsB;IACtC,aAAwB;IACxB,kBAAyC;IACzC,mBAA2C;IAC3C,YAA+B;IAC/B,kBAA4B;IAC5B,oBAAgC;IAChC,qBAAkC;IAClC,gBAAwB;IACxB,gBAA8B;IAC9B,eAA4B;IAE5B,aAG6D;IAG3D,gBAA4C;IAI5C,mBAAgC;IAChC,aAAwB;IACxB,aAAmB;IAMnB,cAA0B;IAQ5B,gBAGwB;IACR,cAA0B;IAGxC,WAAoB;IAMxB;;;OAGG;IACH,qBAqBC;IAaD;;;OAGG;IACH,wBAGC;IAED;;;;;OAKG;IACH,uFAFa,QAAQ,IAAI,CAAC,CAgCzB;IAED;;;;OAIG;IACH,uDAFa,QAAQ,IAAI,CAAC,CA8CzB;IAED;;OAEG;IACH,uBAaC;IAED;;OAEG;IACH,0BAIC;IAED;;OAEG;IACH,4BAQC;IAED;;OAEG;IACH,YAFa,QAAQ,GAAG,CAAC,CAcxB;IAED;;;OAGG;IACH,oBAHW,MAAM,GACJ,MAAM,CAwBlB;IAsBD;;OAEG;IACH,yBAFa,QAAQ,IAAI,CAAC,CAKzB;IAED;;OAEG;IACH,4BAFa,QAAQ,IAAI,CAAC,CAKzB;IAED;;;;OAIG;IACH,0BAHW,OAAO,GACL,QAAQ,IAAI,CAAC,CAazB;IAED;;;OAGG;IACH,0BAHW,MAAM,GACJ,QAAQ,IAAI,CAAC,CAqCzB;IAED;;OAEG;IACH,cAFa,QAAQ,IAAI,CAAC,CAOzB;IAED;;;OAGG;IACH,UAHW,MAAM,GACJ,QAAQ,IAAI,CAAC,CAkCzB;IAED;;OAEG;IACH,sBAMC;IAED;;OAEG;IACH,sBAOC;IAED;;;OAGG;IACH,UAFa,QAAQ,IAAI,CAAC,CAqCzB;IAED;;;OAGG;IACH,8BAHW,MAAM,GACJ,QAAQ,IAAI,CAAC,CAezB;CAsHF"}
1
+ {"version":3,"file":"field.d.ts","sourceRoot":"","sources":["../../models/field.ts"],"names":[],"mappings":"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"}