@saltcorn/data 0.7.4-beta.3 → 0.8.0-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 (203) hide show
  1. package/dist/base-plugin/actions.d.ts.map +1 -1
  2. package/dist/base-plugin/actions.js +3 -0
  3. package/dist/base-plugin/actions.js.map +1 -1
  4. package/dist/base-plugin/fieldviews.d.ts.map +1 -1
  5. package/dist/base-plugin/fieldviews.js +23 -4
  6. package/dist/base-plugin/fieldviews.js.map +1 -1
  7. package/dist/base-plugin/fileviews.d.ts +29 -7
  8. package/dist/base-plugin/fileviews.d.ts.map +1 -1
  9. package/dist/base-plugin/fileviews.js +54 -20
  10. package/dist/base-plugin/fileviews.js.map +1 -1
  11. package/dist/base-plugin/index.d.ts +20 -9
  12. package/dist/base-plugin/index.d.ts.map +1 -1
  13. package/dist/base-plugin/types.d.ts +142 -130
  14. package/dist/base-plugin/types.d.ts.map +1 -1
  15. package/dist/base-plugin/types.js +33 -8
  16. package/dist/base-plugin/types.js.map +1 -1
  17. package/dist/base-plugin/viewtemplates/edit.d.ts +7 -3
  18. package/dist/base-plugin/viewtemplates/edit.d.ts.map +1 -1
  19. package/dist/base-plugin/viewtemplates/edit.js +107 -21
  20. package/dist/base-plugin/viewtemplates/edit.js.map +1 -1
  21. package/dist/base-plugin/viewtemplates/feed.d.ts.map +1 -1
  22. package/dist/base-plugin/viewtemplates/feed.js +71 -57
  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 +13 -7
  26. package/dist/base-plugin/viewtemplates/filter.js.map +1 -1
  27. package/dist/base-plugin/viewtemplates/list.d.ts +3 -3
  28. package/dist/base-plugin/viewtemplates/list.d.ts.map +1 -1
  29. package/dist/base-plugin/viewtemplates/list.js +134 -120
  30. package/dist/base-plugin/viewtemplates/list.js.map +1 -1
  31. package/dist/base-plugin/viewtemplates/listshowlist.d.ts +0 -2
  32. package/dist/base-plugin/viewtemplates/listshowlist.d.ts.map +1 -1
  33. package/dist/base-plugin/viewtemplates/listshowlist.js +4 -23
  34. package/dist/base-plugin/viewtemplates/listshowlist.js.map +1 -1
  35. package/dist/base-plugin/viewtemplates/show.d.ts +2 -2
  36. package/dist/base-plugin/viewtemplates/show.d.ts.map +1 -1
  37. package/dist/base-plugin/viewtemplates/show.js +30 -11
  38. package/dist/base-plugin/viewtemplates/show.js.map +1 -1
  39. package/dist/base-plugin/viewtemplates/viewable_fields.d.ts +1 -1
  40. package/dist/base-plugin/viewtemplates/viewable_fields.d.ts.map +1 -1
  41. package/dist/base-plugin/viewtemplates/viewable_fields.js +34 -11
  42. package/dist/base-plugin/viewtemplates/viewable_fields.js.map +1 -1
  43. package/dist/contracts.d.ts.map +1 -1
  44. package/dist/contracts.js +0 -1
  45. package/dist/contracts.js.map +1 -1
  46. package/dist/db/state.d.ts +1 -0
  47. package/dist/db/state.d.ts.map +1 -1
  48. package/dist/db/state.js +3 -1
  49. package/dist/db/state.js.map +1 -1
  50. package/dist/diagram/cy_generate_utils.d.ts +11 -4
  51. package/dist/diagram/cy_generate_utils.d.ts.map +1 -1
  52. package/dist/diagram/cy_generate_utils.js +42 -6
  53. package/dist/diagram/cy_generate_utils.js.map +1 -1
  54. package/dist/diagram/cy_raster.d.ts +4 -2
  55. package/dist/diagram/cy_raster.d.ts.map +1 -1
  56. package/dist/diagram/cy_raster.js +146 -32
  57. package/dist/diagram/cy_raster.js.map +1 -1
  58. package/dist/diagram/node.d.ts +3 -2
  59. package/dist/diagram/node.d.ts.map +1 -1
  60. package/dist/diagram/node.js +2 -1
  61. package/dist/diagram/node.js.map +1 -1
  62. package/dist/diagram/node_extract_utils.d.ts +19 -3
  63. package/dist/diagram/node_extract_utils.d.ts.map +1 -1
  64. package/dist/diagram/node_extract_utils.js +165 -35
  65. package/dist/diagram/node_extract_utils.js.map +1 -1
  66. package/dist/diagram/nodes/dummy_node.d.ts +6 -0
  67. package/dist/diagram/nodes/dummy_node.d.ts.map +1 -0
  68. package/dist/diagram/nodes/dummy_node.js +17 -0
  69. package/dist/diagram/nodes/dummy_node.js.map +1 -0
  70. package/dist/diagram/nodes/node.d.ts +33 -0
  71. package/dist/diagram/nodes/node.d.ts.map +1 -0
  72. package/dist/diagram/nodes/node.js +42 -0
  73. package/dist/diagram/nodes/node.js.map +1 -0
  74. package/dist/diagram/nodes/page_node.d.ts +9 -0
  75. package/dist/diagram/nodes/page_node.d.ts.map +1 -0
  76. package/dist/diagram/nodes/page_node.js +20 -0
  77. package/dist/diagram/nodes/page_node.js.map +1 -0
  78. package/dist/diagram/nodes/table_node.d.ts +9 -0
  79. package/dist/diagram/nodes/table_node.d.ts.map +1 -0
  80. package/dist/diagram/nodes/table_node.js +24 -0
  81. package/dist/diagram/nodes/table_node.js.map +1 -0
  82. package/dist/diagram/nodes/trigger_node.d.ts +9 -0
  83. package/dist/diagram/nodes/trigger_node.d.ts.map +1 -0
  84. package/dist/diagram/nodes/trigger_node.js +19 -0
  85. package/dist/diagram/nodes/trigger_node.js.map +1 -0
  86. package/dist/diagram/nodes/view_node.d.ts +9 -0
  87. package/dist/diagram/nodes/view_node.d.ts.map +1 -0
  88. package/dist/diagram/nodes/view_node.js +23 -0
  89. package/dist/diagram/nodes/view_node.js.map +1 -0
  90. package/dist/migrate.js +1 -1
  91. package/dist/migrate.js.map +1 -1
  92. package/dist/migrations/202210051058.d.ts +2 -0
  93. package/dist/migrations/202210051058.d.ts.map +1 -0
  94. package/dist/migrations/202210051058.js +121 -0
  95. package/dist/migrations/202210051058.js.map +1 -0
  96. package/dist/migrations/202210101540.d.ts +2 -0
  97. package/dist/migrations/202210101540.d.ts.map +1 -0
  98. package/dist/migrations/202210101540.js +47 -0
  99. package/dist/migrations/202210101540.js.map +1 -0
  100. package/dist/migrations/202211040031.d.ts +2 -0
  101. package/dist/migrations/202211040031.d.ts.map +1 -0
  102. package/dist/migrations/202211040031.js +7 -0
  103. package/dist/migrations/202211040031.js.map +1 -0
  104. package/dist/mobile-mocks/npm/fs-xattr.d.ts +1 -0
  105. package/dist/mobile-mocks/npm/fs-xattr.d.ts.map +1 -0
  106. package/dist/mobile-mocks/npm/fs-xattr.js +2 -0
  107. package/dist/mobile-mocks/npm/fs-xattr.js.map +1 -0
  108. package/dist/models/config.d.ts.map +1 -1
  109. package/dist/models/config.js +14 -0
  110. package/dist/models/config.js.map +1 -1
  111. package/dist/models/discovery.d.ts.map +1 -1
  112. package/dist/models/discovery.js +6 -1
  113. package/dist/models/discovery.js.map +1 -1
  114. package/dist/models/disk_file.d.ts +138 -0
  115. package/dist/models/disk_file.d.ts.map +1 -0
  116. package/dist/models/disk_file.js +255 -0
  117. package/dist/models/disk_file.js.map +1 -0
  118. package/dist/models/email.d.ts +3 -1
  119. package/dist/models/email.d.ts.map +1 -1
  120. package/dist/models/email.js +14 -4
  121. package/dist/models/email.js.map +1 -1
  122. package/dist/models/expression.d.ts +1 -1
  123. package/dist/models/expression.d.ts.map +1 -1
  124. package/dist/models/expression.js +33 -7
  125. package/dist/models/expression.js.map +1 -1
  126. package/dist/models/field.d.ts +1 -0
  127. package/dist/models/field.d.ts.map +1 -1
  128. package/dist/models/field.js +56 -15
  129. package/dist/models/field.js.map +1 -1
  130. package/dist/models/file.d.ts +19 -14
  131. package/dist/models/file.d.ts.map +1 -1
  132. package/dist/models/file.js +264 -52
  133. package/dist/models/file.js.map +1 -1
  134. package/dist/models/form.d.ts +6 -3
  135. package/dist/models/form.d.ts.map +1 -1
  136. package/dist/models/form.js +7 -3
  137. package/dist/models/form.js.map +1 -1
  138. package/dist/models/index.d.ts +4 -2
  139. package/dist/models/index.d.ts.map +1 -1
  140. package/dist/models/page.d.ts +2 -0
  141. package/dist/models/page.d.ts.map +1 -1
  142. package/dist/models/page.js +27 -0
  143. package/dist/models/page.js.map +1 -1
  144. package/dist/models/scheduler.d.ts.map +1 -1
  145. package/dist/models/scheduler.js +9 -4
  146. package/dist/models/scheduler.js.map +1 -1
  147. package/dist/models/table.d.ts +8 -5
  148. package/dist/models/table.d.ts.map +1 -1
  149. package/dist/models/table.js +68 -28
  150. package/dist/models/table.js.map +1 -1
  151. package/dist/models/tag.d.ts +4 -2
  152. package/dist/models/tag.d.ts.map +1 -1
  153. package/dist/models/tag.js +11 -4
  154. package/dist/models/tag.js.map +1 -1
  155. package/dist/models/tag_entry.d.ts +2 -2
  156. package/dist/models/tag_entry.d.ts.map +1 -1
  157. package/dist/models/tag_entry.js +2 -2
  158. package/dist/models/tag_entry.js.map +1 -1
  159. package/dist/models/trigger.d.ts +12 -3
  160. package/dist/models/trigger.d.ts.map +1 -1
  161. package/dist/models/trigger.js +57 -10
  162. package/dist/models/trigger.js.map +1 -1
  163. package/dist/models/user.d.ts.map +1 -1
  164. package/dist/models/user.js +13 -1
  165. package/dist/models/user.js.map +1 -1
  166. package/dist/models/view.d.ts +2 -7
  167. package/dist/models/view.d.ts.map +1 -1
  168. package/dist/models/view.js +17 -51
  169. package/dist/models/view.js.map +1 -1
  170. package/dist/models/workflow.d.ts +2 -0
  171. package/dist/models/workflow.d.ts.map +1 -1
  172. package/dist/models/workflow.js +4 -0
  173. package/dist/models/workflow.js.map +1 -1
  174. package/dist/plugin-helper.d.ts +5 -3
  175. package/dist/plugin-helper.d.ts.map +1 -1
  176. package/dist/plugin-helper.js +144 -32
  177. package/dist/plugin-helper.js.map +1 -1
  178. package/dist/plugin-testing.js +1 -1
  179. package/dist/plugin-testing.js.map +1 -1
  180. package/dist/tests/calc.test.js +13 -0
  181. package/dist/tests/calc.test.js.map +1 -1
  182. package/dist/tests/discover.test.js +3 -0
  183. package/dist/tests/discover.test.js.map +1 -1
  184. package/dist/tests/email.test.js +156 -13
  185. package/dist/tests/email.test.js.map +1 -1
  186. package/dist/tests/exact_views.test.js +26 -34
  187. package/dist/tests/exact_views.test.js.map +1 -1
  188. package/dist/tests/field.test.js +67 -1
  189. package/dist/tests/field.test.js.map +1 -1
  190. package/dist/tests/models.test.js +10 -7
  191. package/dist/tests/models.test.js.map +1 -1
  192. package/dist/tests/table.test.js +88 -2
  193. package/dist/tests/table.test.js.map +1 -1
  194. package/dist/tests/user.test.js +56 -0
  195. package/dist/tests/user.test.js.map +1 -1
  196. package/dist/tests/view.test.js +1 -11
  197. package/dist/tests/view.test.js.map +1 -1
  198. package/dist/utils.d.ts +3 -1
  199. package/dist/utils.d.ts.map +1 -1
  200. package/dist/utils.js +27 -0
  201. package/dist/utils.js.map +1 -1
  202. package/package.json +8 -7
  203. package/webpack.config.js +1 -0
@@ -15,8 +15,11 @@ const { asyncMap } = require("../utils");
15
15
  const promises_1 = require("fs/promises");
16
16
  const axios_1 = __importDefault(require("axios"));
17
17
  const form_data_1 = __importDefault(require("form-data"));
18
- const fs_1 = require("fs");
19
18
  const mime_types_1 = require("mime-types");
19
+ const path = require("path");
20
+ const fsp = require("fs").promises;
21
+ const fs = require("fs");
22
+ const xattr = require("fs-xattr");
20
23
  /**
21
24
  * File Descriptor class
22
25
  *
@@ -47,6 +50,7 @@ class File {
47
50
  this.mime_sub = o.mime_sub;
48
51
  this.min_role_read = o.min_role_read;
49
52
  this.s3_store = !!o.s3_store;
53
+ this.isDirectory = !!o.isDirectory;
50
54
  // TBD add checksum this.checksum = o.checksum;
51
55
  }
52
56
  /**
@@ -56,14 +60,118 @@ class File {
56
60
  * @returns {Promise<*>}
57
61
  */
58
62
  static async find(where, selectopts = {}) {
59
- if (selectopts.cached) {
60
- const { getState } = require("../db/state");
61
- // TODO ch migrate State and replace any
62
- const files = Object.values(getState().files).sort((a, b) => a.filename > b.filename ? 1 : -1);
63
- return files.map((t) => new File(t));
63
+ const { getState } = require("../db/state");
64
+ const state = getState();
65
+ const useS3 = state?.getConfig("storage_s3_enabled");
66
+ if (useS3 || where?.inDB) {
67
+ if (selectopts.cached) {
68
+ // TODO ch migrate State and replace any
69
+ const files = Object.values(getState().files).sort((a, b) => a.filename > b.filename ? 1 : -1);
70
+ return files.map((t) => new File(t));
71
+ }
72
+ if (where?.inDB)
73
+ delete where.inDB;
74
+ const db_flds = await db_1.default.select("_sc_files", where, selectopts);
75
+ return db_flds.map((dbf) => new File(dbf));
76
+ }
77
+ else {
78
+ const relativeSearchFolder = where?.folder || "/";
79
+ const tenant = db_1.default.getTenantSchema();
80
+ const safeDir = File.normalise(relativeSearchFolder);
81
+ const absoluteFolder = path.join(db_1.default.connectObj.file_store, tenant, safeDir);
82
+ const files = [];
83
+ if (where?.filename) {
84
+ files.push(await File.from_file_on_disk(where?.filename, absoluteFolder));
85
+ }
86
+ else {
87
+ let fileNms;
88
+ try {
89
+ fileNms = await fsp.readdir(absoluteFolder);
90
+ }
91
+ catch (e) {
92
+ fileNms = [];
93
+ }
94
+ for (const name of fileNms) {
95
+ if (name[0] === "." || name.startsWith("_resized_"))
96
+ continue;
97
+ files.push(await File.from_file_on_disk(name, absoluteFolder));
98
+ }
99
+ }
100
+ let pred = (f) => true;
101
+ const addPred = (p) => {
102
+ const oldPred = pred;
103
+ pred = (f) => oldPred(f) && p(f);
104
+ };
105
+ if (where?.mime_super)
106
+ addPred((f) => f.mime_super === where?.mime_super);
107
+ if (where?.mime_sub)
108
+ addPred((f) => f.mime_sub === where?.mime_sub);
109
+ if (where?.isDirectory)
110
+ addPred((f) => !!f.isDirectory === !!where?.isDirectory);
111
+ return files.filter(pred);
64
112
  }
65
- const db_flds = await db_1.default.select("_sc_files", where, selectopts);
66
- return db_flds.map((dbf) => new File(dbf));
113
+ }
114
+ static normalise(fpath) {
115
+ return path.normalize(fpath).replace(/^(\.\.(\/|\\|$))+/, "");
116
+ }
117
+ static async rootFolder() {
118
+ const tenant = db_1.default.getTenantSchema();
119
+ return await File.from_file_on_disk("/", path.join(db_1.default.connectObj.file_store, tenant));
120
+ }
121
+ static absPathToServePath(absPath) {
122
+ if (typeof absPath === "number")
123
+ return `${absPath}`;
124
+ const tenant = db_1.default.getTenantSchema();
125
+ const s = absPath.replace(path.join(db_1.default.connectObj.file_store, tenant), "");
126
+ return s[0] === "/" ? s.substring(1) : s;
127
+ }
128
+ static async allDirectories() {
129
+ const allDirs = [await File.rootFolder()];
130
+ const iterFolder = async (folder) => {
131
+ const files = await File.find(folder ? { folder } : {});
132
+ for (const f of files) {
133
+ if (f.isDirectory) {
134
+ allDirs.push(f);
135
+ await iterFolder(f.path_to_serve);
136
+ }
137
+ }
138
+ };
139
+ await iterFolder();
140
+ return allDirs;
141
+ }
142
+ static async from_file_on_disk(name, absoluteFolder) {
143
+ let stat;
144
+ try {
145
+ stat = await fsp.stat(path.join(absoluteFolder, name));
146
+ }
147
+ catch (e) {
148
+ throw new Error("File.from_file_on_disk: File not found: " + name);
149
+ }
150
+ let min_role_read, user_id;
151
+ try {
152
+ min_role_read = +(await xattr.get(path.join(absoluteFolder, name), "user.saltcorn.min_role_read"));
153
+ }
154
+ catch (e) {
155
+ min_role_read = 10;
156
+ }
157
+ try {
158
+ user_id = +(await xattr.get(path.join(absoluteFolder, name), "user.saltcorn.user_id"));
159
+ }
160
+ catch (e) { }
161
+ const isDirectory = stat.isDirectory();
162
+ const mimetype = (0, mime_types_1.lookup)(name);
163
+ const [mime_super, mime_sub] = mimetype ? mimetype.split("/") : ["", ""];
164
+ return new File({
165
+ filename: name,
166
+ location: path.join(absoluteFolder, name),
167
+ size_kb: Math.round(stat.size / 1024),
168
+ uploaded_at: stat.birthtime,
169
+ mime_super,
170
+ mime_sub,
171
+ user_id,
172
+ isDirectory,
173
+ min_role_read,
174
+ });
67
175
  }
68
176
  /**
69
177
  * Select one file descriptor
@@ -72,14 +180,58 @@ class File {
72
180
  * @returns {Promise<File|null>}
73
181
  */
74
182
  static async findOne(where) {
75
- if (where.id) {
183
+ if (typeof where === "string") {
76
184
  const { getState } = require("../db/state");
77
- const cf = getState().files[+where.id];
78
- if (cf)
79
- return new File(cf);
185
+ const state = getState();
186
+ const useS3 = state?.getConfig("storage_s3_enabled");
187
+ //legacy serving ids
188
+ if (/^\d+$/.test(where)) {
189
+ const legacy_file_id_locations = state?.getConfig("legacy_file_id_locations");
190
+ //console.log("lfil", legacy_file_id_locations);
191
+ if (legacy_file_id_locations?.[where]) {
192
+ const legacy_file = await File.findOne(legacy_file_id_locations?.[where]);
193
+ return legacy_file;
194
+ }
195
+ }
196
+ if (useS3) {
197
+ const files = await File.find({ id: +where });
198
+ return files[0];
199
+ }
200
+ else {
201
+ const tenant = db_1.default.getTenantSchema();
202
+ const safeDir = path.normalize(where).replace(/^(\.\.(\/|\\|$))+/, "");
203
+ const absoluteFolder = path.join(db_1.default.connectObj.file_store, tenant, safeDir);
204
+ const name = path.basename(absoluteFolder);
205
+ const dir = path.dirname(absoluteFolder);
206
+ try {
207
+ return await File.from_file_on_disk(name, dir);
208
+ }
209
+ catch (e) {
210
+ state?.log(2, e?.toString ? e.toString() : e);
211
+ return null;
212
+ }
213
+ }
80
214
  }
81
- const f = await db_1.default.selectMaybeOne("_sc_files", where);
82
- return f ? new File(f) : null;
215
+ const files = await File.find(where);
216
+ return files.length > 0 ? new File(files[0]) : null;
217
+ }
218
+ static async new_folder(name, inFolder = "") {
219
+ const tenant = db_1.default.getTenantSchema();
220
+ const safeDir = path.normalize(name).replace(/^(\.\.(\/|\\|$))+/, "");
221
+ const safeInDir = path.normalize(inFolder).replace(/^(\.\.(\/|\\|$))+/, "");
222
+ const absoluteFolder = path.join(db_1.default.connectObj.file_store, tenant, safeInDir, safeDir);
223
+ await (0, promises_1.mkdir)(absoluteFolder, { recursive: true });
224
+ return;
225
+ }
226
+ get path_to_serve() {
227
+ if (this.s3_store && this.id)
228
+ return this.id;
229
+ const tenant = db_1.default.getTenantSchema();
230
+ const s = this.location.replace(path.join(db_1.default.connectObj.file_store, tenant), "");
231
+ return s[0] === "/" ? s.substring(1) : s;
232
+ }
233
+ get current_folder() {
234
+ return path.dirname(this.path_to_serve);
83
235
  }
84
236
  /**
85
237
  * Update File descriptor
@@ -92,19 +244,85 @@ class File {
92
244
  await db_1.default.update("_sc_files", row, id);
93
245
  await require("../db/state").getState().refresh_files();
94
246
  }
247
+ async set_role(min_role_read) {
248
+ // const fsx = await import("fs-xattr");
249
+ if (this.id) {
250
+ await File.update(this.id, { min_role_read });
251
+ }
252
+ else {
253
+ await xattr.set(this.location, "user.saltcorn.min_role_read", `${min_role_read}`);
254
+ }
255
+ }
256
+ async set_user(user_id) {
257
+ // const fsx = await import("fs-xattr");
258
+ if (this.id) {
259
+ await File.update(this.id, { user_id });
260
+ }
261
+ else {
262
+ await xattr.set(this.location, "user.saltcorn.user_id", `${user_id}`);
263
+ }
264
+ }
265
+ async rename(filenameIn) {
266
+ const filename = File.normalise(filenameIn);
267
+ if (this.id) {
268
+ await File.update(this.id, { filename });
269
+ }
270
+ else {
271
+ const newPath = path.join(path.dirname(this.location), filename);
272
+ await fsp.rename(this.location, newPath);
273
+ await File.update_table_references(this.path_to_serve, path.join(path.dirname(this.path_to_serve), filename));
274
+ this.location = newPath;
275
+ this.filename = filename;
276
+ }
277
+ }
278
+ static async update_table_references(from, to) {
279
+ const Field = require("./field");
280
+ const Table = require("./table");
281
+ const fileFields = await Field.find({ type: "File" });
282
+ const schema = db_1.default.getTenantSchemaPrefix();
283
+ for (const field of fileFields) {
284
+ const table = Table.findOne({ id: field.table_id });
285
+ await db_1.default.query(`update ${schema}"${table.name}" set "${field.name}" = $1 where "${field.name}" = $2`, [to, from]);
286
+ }
287
+ }
288
+ async move_to_dir(newFolder) {
289
+ const newFolderNormd = File.normalise(newFolder);
290
+ const tenant = db_1.default.getTenantSchema();
291
+ const file_store = db_1.default.connectObj.file_store;
292
+ const newPath = path.join(file_store, tenant, newFolderNormd, this.filename);
293
+ await fsp.rename(this.location, newPath);
294
+ await File.update_table_references(this.path_to_serve, path.join(newFolderNormd, this.filename));
295
+ this.location = newPath;
296
+ }
95
297
  /**
96
298
  * Get absolute path to new file in db.connectObj.file_store.
97
299
  *
98
300
  * @param suggest - path to file inside file store. If undefined that autogenerated uudv4 is used.
99
301
  * @returns {string} - path to file
100
302
  */
101
- static get_new_path(suggest) {
303
+ static get_new_path(suggest, renameIfExisting) {
102
304
  const { getState } = require("../db/state");
305
+ const state = getState();
103
306
  // Check if it uses S3, then use a default "saltcorn" folder
104
- const useS3 = getState().getConfig("storage_s3_enabled");
307
+ const useS3 = state?.getConfig("storage_s3_enabled");
308
+ const tenant = db_1.default.getTenantSchema();
105
309
  const file_store = !useS3 ? db_1.default.connectObj.file_store : "saltcorn/";
106
310
  const newFnm = suggest || (0, uuid_1.v4)();
107
- const newPath = (0, path_1.join)(file_store, newFnm);
311
+ let newPath = (0, path_1.join)(file_store, tenant, newFnm);
312
+ if (renameIfExisting) {
313
+ for (let i = 0; i < 5000; i++) {
314
+ let newbase = newFnm;
315
+ if (i) {
316
+ const ext = path.extname(newFnm);
317
+ const filenoext = path.basename(newFnm, ext);
318
+ newbase = path.join(path.dirname(newFnm), `${filenoext}_${i}${ext}`);
319
+ }
320
+ newPath = File.get_new_path(newbase, false);
321
+ if (!fs.existsSync(newPath)) {
322
+ break;
323
+ }
324
+ }
325
+ }
108
326
  return newPath;
109
327
  }
110
328
  /**
@@ -114,11 +332,19 @@ class File {
114
332
  * @returns {Promise<void>}
115
333
  */
116
334
  // TBD fs errors handling
117
- static async ensure_file_store() {
118
- const { getState } = require("../db/state");
119
- if (!getState().getConfig("storage_s3_enabled")) {
120
- const file_store = db_1.default.connectObj.file_store;
335
+ static async ensure_file_store(tenant_name) {
336
+ const { getState, getAllTenants } = require("../db/state");
337
+ const file_store = db_1.default.connectObj.file_store;
338
+ if (tenant_name) {
339
+ await (0, promises_1.mkdir)(path.join(file_store, tenant_name), { recursive: true });
340
+ return;
341
+ }
342
+ if (!getState()?.getConfig("storage_s3_enabled")) {
121
343
  await (0, promises_1.mkdir)(file_store, { recursive: true });
344
+ const tenants = getAllTenants();
345
+ for (const tenant of Object.keys(tenants)) {
346
+ await (0, promises_1.mkdir)(path.join(file_store, tenant), { recursive: true });
347
+ }
122
348
  }
123
349
  }
124
350
  /**
@@ -128,13 +354,13 @@ class File {
128
354
  * @param min_role_read
129
355
  * @returns
130
356
  */
131
- static async from_req_files(file, user_id, min_role_read = 1) {
357
+ static async from_req_files(file, user_id, min_role_read = 1, folder = "/") {
132
358
  if (Array.isArray(file)) {
133
- return await asyncMap(file, (f) => File.from_req_files(f, user_id, min_role_read));
359
+ return await asyncMap(file, (f) => File.from_req_files(f, user_id, min_role_read, folder));
134
360
  }
135
361
  else {
136
362
  // get path to file
137
- const newPath = File.get_new_path();
363
+ const newPath = File.get_new_path(path.join(folder, file.name), true);
138
364
  // set mime type
139
365
  const [mime_super, mime_sub] = file.mimetype.split("/");
140
366
  // move file in file system to newPath
@@ -153,29 +379,6 @@ class File {
153
379
  });
154
380
  }
155
381
  }
156
- /**
157
- * create a '_sc_files' entry from an existing file.
158
- * The old file will be moved to a new location.
159
- *
160
- * @param directory directory of existing file
161
- * @param name name of existing file
162
- * @param userId id of creating user
163
- * @returns the new File object
164
- */
165
- static async from_existing_file(directory, name, userId) {
166
- const fullPath = (0, path_1.join)(directory, name);
167
- if (!(0, fs_1.existsSync)(fullPath))
168
- return null;
169
- const file = {
170
- mimetype: (0, mime_types_1.lookup)(fullPath),
171
- name: name,
172
- mv: (newPath) => {
173
- (0, fs_1.renameSync)(fullPath, newPath);
174
- },
175
- size: (0, fs_1.statSync)(fullPath).size,
176
- };
177
- return await File.from_req_files(file, userId);
178
- }
179
382
  /**
180
383
  * Delete file
181
384
  * @returns {Promise<{error}>}
@@ -183,10 +386,13 @@ class File {
183
386
  async delete(unlinker) {
184
387
  try {
185
388
  // delete file from database
186
- await db_1.default.deleteWhere("_sc_files", { id: this.id });
389
+ if (this.id)
390
+ await db_1.default.deleteWhere("_sc_files", { id: this.id });
187
391
  // delete name and possible file from file system
188
392
  if (unlinker)
189
393
  await unlinker(this);
394
+ else if (this.isDirectory)
395
+ await fsp.rmdir(this.location);
190
396
  else
191
397
  await (0, promises_1.unlink)(this.location);
192
398
  if (db_1.default.reset_sequence)
@@ -203,7 +409,10 @@ class File {
203
409
  * @type {string}
204
410
  */
205
411
  get mimetype() {
206
- return `${this.mime_super}/${this.mime_sub}`;
412
+ if (this.mime_super && this.mime_sub)
413
+ return `${this.mime_super}/${this.mime_sub}`;
414
+ else
415
+ return "";
207
416
  }
208
417
  /**
209
418
  * Create file
@@ -212,11 +421,14 @@ class File {
212
421
  */
213
422
  static async create(f) {
214
423
  const file = new File(f);
215
- const { id, ...rest } = file;
424
+ //const { id, ...rest } = file;
216
425
  // insert file descriptor row to database
217
- file.id = await db_1.default.insert("_sc_files", rest);
426
+ //file.id = await db.insert("_sc_files", rest);
218
427
  // refresh file list cache
219
- await require("../db/state").getState().refresh_files();
428
+ //await require("../db/state").getState().refresh_files();
429
+ await file.set_role(file.min_role_read);
430
+ if (file.user_id)
431
+ await file.set_user(file.user_id);
220
432
  return file;
221
433
  }
222
434
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"file.js","sourceRoot":"","sources":["../../models/file.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"file.js","sourceRoot":"","sources":["../../models/file.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@
7
7
  import { AbstractForm, AdditionalButton as _AdditionalButton } from "@saltcorn/types/model-abstracts/abstract_form";
8
8
  import type { FieldLike } from "@saltcorn/types/base_types";
9
9
  import Field from "./field";
10
+ import User from "./user";
10
11
  import FieldRepeat from "./fieldrepeat";
11
12
  import type { Layout } from "@saltcorn/types/base_types";
12
13
  /**
@@ -22,7 +23,6 @@ declare class Form implements AbstractForm {
22
23
  id?: string;
23
24
  labelCols?: number;
24
25
  collapsedSummary?: string;
25
- isStateForm: boolean;
26
26
  formStyle: string;
27
27
  class?: string;
28
28
  methodGET: boolean;
@@ -35,6 +35,8 @@ declare class Form implements AbstractForm {
35
35
  validator?: (arg0: any) => any;
36
36
  hasErrors: boolean;
37
37
  xhrSubmit: boolean;
38
+ splitPaste: boolean;
39
+ isOwner: boolean;
38
40
  onSubmit?: string;
39
41
  req: any;
40
42
  __?: any;
@@ -50,7 +52,7 @@ declare class Form implements AbstractForm {
50
52
  /**
51
53
  * @param {boolean} [force_allow_none = false]
52
54
  */
53
- fill_fkey_options(force_allow_none?: boolean, optionsQuery?: any): Promise<void>;
55
+ fill_fkey_options(force_allow_none?: boolean, optionsQuery?: any, user?: User): Promise<void>;
54
56
  /**
55
57
  * @returns {Promise<object>}
56
58
  */
@@ -79,7 +81,6 @@ declare namespace Form {
79
81
  id?: string;
80
82
  labelCols?: number;
81
83
  collapsedSummary?: string;
82
- isStateForm?: boolean;
83
84
  formStyle?: string;
84
85
  class?: string;
85
86
  methodGET?: boolean;
@@ -91,6 +92,8 @@ declare namespace Form {
91
92
  onChange?: string;
92
93
  validator?: (arg0: any) => any;
93
94
  xhrSubmit?: boolean;
95
+ splitPaste?: boolean;
96
+ isOwner?: boolean;
94
97
  onSubmit?: string;
95
98
  req?: any;
96
99
  validate?: any;
@@ -1 +1 @@
1
- {"version":3,"file":"form.d.ts","sourceRoot":"","sources":["../../models/form.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"form.d.ts","sourceRoot":"","sources":["../../models/form.ts"],"names":[],"mappings":"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"}
@@ -28,7 +28,6 @@ class Form {
28
28
  this.id = o.id;
29
29
  this.labelCols = o.labelCols;
30
30
  this.collapsedSummary = o.collapsedSummary;
31
- this.isStateForm = !!o.isStateForm;
32
31
  this.formStyle = o.formStyle || "horiz";
33
32
  this.class = o.class;
34
33
  this.methodGET = !!o.methodGET;
@@ -41,7 +40,9 @@ class Form {
41
40
  this.validator = o.validator;
42
41
  this.hasErrors = false;
43
42
  this.xhrSubmit = !!o.xhrSubmit;
43
+ this.splitPaste = !!o.splitPaste;
44
44
  this.onSubmit = o.onSubmit;
45
+ this.isOwner = !!o.isOwner;
45
46
  this.req = o.req;
46
47
  this.__ = o.__ || (o.req && o.req.__);
47
48
  if (o.validate)
@@ -62,15 +63,18 @@ class Form {
62
63
  /**
63
64
  * @param {boolean} [force_allow_none = false]
64
65
  */
65
- async fill_fkey_options(force_allow_none = false, optionsQuery) {
66
+ async fill_fkey_options(force_allow_none = false, optionsQuery, user) {
66
67
  //console.log(this.fields);
67
68
  const formFieldNames = this.fields
68
69
  // @ts-ignore
69
70
  .filter((f) => f?.input_type !== "hidden")
70
71
  .map((f) => f.name);
72
+ const extraCtx = { ...this.values };
73
+ if (user && !extraCtx.user_id)
74
+ extraCtx.user_id = user.id;
71
75
  for (const f of this.fields) {
72
76
  if (hasFieldMembers(f))
73
- await f.fill_fkey_options(force_allow_none, undefined, this.values, optionsQuery, formFieldNames);
77
+ await f.fill_fkey_options(force_allow_none, undefined, extraCtx, optionsQuery, formFieldNames);
74
78
  }
75
79
  }
76
80
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"form.js","sourceRoot":"","sources":["../../models/form.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"form.js","sourceRoot":"","sources":["../../models/form.ts"],"names":[],"mappings":"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"}
@@ -44,13 +44,15 @@ export declare namespace discovery {
44
44
  }) => Promise<void>, get_existing_views: (schema0?: string | undefined) => Promise<import("@saltcorn/db-common/internal").Row[]>;
45
45
  }
46
46
  export declare namespace email {
47
- const getMailTransport: () => import("nodemailer").Transporter<any>, viewToEmailHtml: (view: any, state: any) => Promise<string>, send_verification_email: (user: User, req: any) => Promise<any>;
47
+ const getMailTransport: () => import("nodemailer").Transporter<any>, viewToEmailHtml: (view: any, state: any) => Promise<string>, send_verification_email: (user: User, req: any, opts?: {
48
+ new_verification_token?: string | undefined;
49
+ } | undefined) => Promise<any>;
48
50
  }
49
51
  export declare namespace expression {
50
52
  const expressionValidator: (s: string) => string | true, apply_calculated_fields: (rows: import("@saltcorn/db-common/internal").Row[], fields: Field[]) => import("@saltcorn/db-common/internal").Row[], get_async_expression_function: (expression: string, fields: Field[], extraContext?: {}) => any, get_expression_function: (expression: string, fields: Field[]) => Function, eval_expression: (expression: string, row: any, user?: any) => any, recalculate_for_stored: (table: Table) => Promise<void>, transform_for_async: (expression: string, statefuns: Record<string, import("@saltcorn/types/base_types").PluginFunction>) => {
51
53
  isAsync: boolean;
52
54
  expr_string: string;
53
- }, apply_calculated_fields_stored: (row: import("@saltcorn/db-common/internal").Row, fields: Field[]) => Promise<import("@saltcorn/db-common/internal").Row>, jsexprToWhere: (expression: string, extraCtx?: any) => import("@saltcorn/db-common/internal").Where;
55
+ }, apply_calculated_fields_stored: (row: import("@saltcorn/db-common/internal").Row, fields: Field[]) => Promise<import("@saltcorn/db-common/internal").Row>, jsexprToWhere: (expression: string, extraCtx?: any, fields?: Field[]) => import("@saltcorn/db-common/internal").Where;
54
56
  }
55
57
  export declare namespace layout {
56
58
  const eachView: (layout: import("@saltcorn/types/base_types").Layout, f: any) => Promise<void>, getViews: (layout: import("@saltcorn/types/base_types").Layout) => Promise<any[]>, traverse: (layout: import("@saltcorn/types/base_types").Layout, visitors: {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../models/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAAO,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAAO,eAAe,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAAO,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAAO,QAAQ,MAAM,YAAY,CAAC;AAElC,OAAO,EACL,KAAK,EACL,QAAQ,EACR,KAAK,EACL,WAAW,EACX,IAAI,EACJ,IAAI,EACJ,OAAO,EACP,IAAI,EACJ,MAAM,EACN,IAAI,EACJ,eAAe,EACf,KAAK,EACL,OAAO,EACP,IAAI,EACJ,IAAI,EACJ,QAAQ,GACT,CAAC;AAEF,OAAO,YAAY,MAAM,UAAU,CAAC;AACpC,yBAAiB,MAAM,CAAC;IACf,MACL,SAAS,4CACT,YAAY,kDACZ,SAAS,8CACT,sBAAsB,2CACtB,YAAY,kCACZ,WAAW,4BACX,gBAAgB;;;yBAChB,mBAAmB;;;;;;;;;;;;;;OACnB,aAAa,4BACb,sBAAsB,oCACtB,YAAY,yBACZ,eAAe,wCACf,gBAAgB,4BACF,CAAC;CAClB;AAGD,yBAAiB,SAAS,CAAC;IAClB,MACL,mBAAmB,2FACnB,eAAe;;QACf,mBAAmB;;yBACnB,kBAAkB,yFACD,CAAC;CACrB;AAGD,yBAAiB,KAAK,CAAC;IACd,MACL,gBAAgB,+CAChB,eAAe,8CACf,uBAAuB,wCACV,CAAC;CACjB;AAGD,yBAAiB,UAAU,CAAC;IACnB,MACL,mBAAmB,gCACnB,uBAAuB,yHACvB,6BAA6B,mEAC7B,uBAAuB,qDACvB,eAAe,qDACf,sBAAsB,mCACtB,mBAAmB;;;OACnB,8BAA8B,6HAC9B,aAAa,sFACK,CAAC;CACtB;AAGD,yBAAiB,MAAM,CAAC;IACf,MACL,QAAQ,kFACR,QAAQ,2EACR,QAAQ;;yBACR,YAAY;;gBACZ,iBAAiB,qEACjB,eAAe,+EACD,CAAC;CAClB;AAGD,yBAAiB,MAAM,CAAC;IACf,MACL,YAAY,4EACZ,cAAc,mCACd,YAAY,yDACZ,SAAS;;;;MACK,CAAC;CAClB;AAGD,yBAAiB,SAAS,CAAC;IAClB,MAAM,YAAY,uIAAkB,CAAC;CAC7C"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../models/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAAO,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAAO,eAAe,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAAO,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAAO,QAAQ,MAAM,YAAY,CAAC;AAElC,OAAO,EACL,KAAK,EACL,QAAQ,EACR,KAAK,EACL,WAAW,EACX,IAAI,EACJ,IAAI,EACJ,OAAO,EACP,IAAI,EACJ,MAAM,EACN,IAAI,EACJ,eAAe,EACf,KAAK,EACL,OAAO,EACP,IAAI,EACJ,IAAI,EACJ,QAAQ,GACT,CAAC;AAEF,OAAO,YAAY,MAAM,UAAU,CAAC;AACpC,yBAAiB,MAAM,CAAC;IACf,MACL,SAAS,4CACT,YAAY,kDACZ,SAAS,8CACT,sBAAsB,2CACtB,YAAY,kCACZ,WAAW,4BACX,gBAAgB;;;yBAChB,mBAAmB;;;;;;;;;;;;;;OACnB,aAAa,4BACb,sBAAsB,oCACtB,YAAY,yBACZ,eAAe,wCACf,gBAAgB,4BACF,CAAC;CAClB;AAGD,yBAAiB,SAAS,CAAC;IAClB,MACL,mBAAmB,2FACnB,eAAe;;QACf,mBAAmB;;yBACnB,kBAAkB,yFACD,CAAC;CACrB;AAGD,yBAAiB,KAAK,CAAC;IACd,MACL,gBAAgB,+CAChB,eAAe,8CACf,uBAAuB;;kCACV,CAAC;CACjB;AAGD,yBAAiB,UAAU,CAAC;IACnB,MACL,mBAAmB,gCACnB,uBAAuB,yHACvB,6BAA6B,mEAC7B,uBAAuB,qDACvB,eAAe,qDACf,sBAAsB,mCACtB,mBAAmB;;;OACnB,8BAA8B,6HAC9B,aAAa,wGACK,CAAC;CACtB;AAGD,yBAAiB,MAAM,CAAC;IACf,MACL,QAAQ,kFACR,QAAQ,2EACR,QAAQ;;yBACR,YAAY;;gBACZ,iBAAiB,qEACjB,eAAe,+EACD,CAAC;CAClB;AAGD,yBAAiB,MAAM,CAAC;IACf,MACL,YAAY,4EACZ,cAAc,mCACd,YAAY,yDACZ,SAAS;;;;MACK,CAAC;CAClB;AAGD,yBAAiB,SAAS,CAAC;IAClB,MAAM,YAAY,uIAAkB,CAAC;CAC7C"}
@@ -1,6 +1,7 @@
1
1
  import type { Layout, RunExtra, ConnectedObjects } from "@saltcorn/types/base_types";
2
2
  import { Row, SelectOptions, Where } from "@saltcorn/db-common/internal";
3
3
  import type { AbstractPage, PageCfg, PagePack } from "@saltcorn/types/model-abstracts/abstract_page";
4
+ import { AbstractTag } from "@saltcorn/types/model-abstracts/abstract_tag";
4
5
  /**
5
6
  * Page Class
6
7
  * @category saltcorn-data
@@ -72,6 +73,7 @@ declare class Page implements AbstractPage {
72
73
  */
73
74
  run(querystate: any, extraArgs: RunExtra): Promise<Layout>;
74
75
  connected_objects(): ConnectedObjects;
76
+ getTags(): Promise<Array<AbstractTag>>;
75
77
  }
76
78
  export = Page;
77
79
  //# sourceMappingURL=page.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"page.d.ts","sourceRoot":"","sources":["../../models/page.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EACV,MAAM,EACN,QAAQ,EACR,gBAAgB,EACjB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAC;AAEzE,OAAO,KAAK,EACV,YAAY,EACZ,OAAO,EACP,QAAQ,EACT,MAAM,+CAA+C,CAAC;AAmBvD;;;GAGG;AACH,cAAM,IAAK,YAAW,YAAY;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,GAAG,CAAC;IAElB;;OAEG;gBACS,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,IAAI;IAcxC;;;;;OAKG;WACU,IAAI,CACf,KAAK,CAAC,EAAE,KAAK,EACb,UAAU,GAAE,aAAiD,GAC5D,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IASvB;;;;OAIG;IACH,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAkBlC;;;;;OAKG;WACU,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxD,iBAAiB;IAGjB;;;;OAIG;WACU,MAAM,CAAC,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAUzD;;;OAGG;IACG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAW7B;;;OAGG;IACG,sBAAsB,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAYtD;;;OAGG;IACH,IAAI,UAAU,IAAI,MAAM,GAAG,SAAS,CAKnC;IAED;;;OAGG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAgB5B;;;;;OAKG;IACG,GAAG,CAAC,UAAU,EAAE,GAAG,EAAE,SAAS,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;IAyEhE,iBAAiB,IAAI,gBAAgB;CAGtC;AAED,SAAS,IAAI,CAAC"}
1
+ {"version":3,"file":"page.d.ts","sourceRoot":"","sources":["../../models/page.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EACV,MAAM,EACN,QAAQ,EACR,gBAAgB,EACjB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAC;AAEzE,OAAO,KAAK,EACV,YAAY,EACZ,OAAO,EACP,QAAQ,EACT,MAAM,+CAA+C,CAAC;AAmBvD,OAAO,EAAE,WAAW,EAAE,MAAM,8CAA8C,CAAC;AAE3E;;;GAGG;AACH,cAAM,IAAK,YAAW,YAAY;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,GAAG,CAAC;IAElB;;OAEG;gBACS,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,IAAI;IAcxC;;;;;OAKG;WACU,IAAI,CACf,KAAK,CAAC,EAAE,KAAK,EACb,UAAU,GAAE,aAAiD,GAC5D,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IASvB;;;;OAIG;IACH,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAkBlC;;;;;OAKG;WACU,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxD,iBAAiB;IAGjB;;;;OAIG;WACU,MAAM,CAAC,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAUzD;;;OAGG;IACG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAW7B;;;OAGG;IACG,sBAAsB,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAYtD;;;OAGG;IACH,IAAI,UAAU,IAAI,MAAM,GAAG,SAAS,CAKnC;IAED;;;OAGG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAgB5B;;;;;OAKG;IACG,GAAG,CAAC,UAAU,EAAE,GAAG,EAAE,SAAS,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;IAyEhE,iBAAiB,IAAI,gBAAgB;IAI/B,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;CAI7C;AAED,SAAS,IAAI,CAAC"}