@saltcorn/server 1.1.4-alpha.0 → 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 (396) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/docs/assets/search.js +1 -1
  3. package/docs/classes/_saltcorn_common_code.Relation.html +8 -8
  4. package/docs/classes/_saltcorn_common_code.RelationsFinder.html +5 -5
  5. package/docs/classes/_saltcorn_data.models.Crash-1.html +18 -18
  6. package/docs/classes/_saltcorn_data.models.EventLog-1.html +19 -19
  7. package/docs/classes/_saltcorn_data.models.Field.html +71 -71
  8. package/docs/classes/_saltcorn_data.models.FieldRepeat-1.html +17 -17
  9. package/docs/classes/_saltcorn_data.models.File-1.html +48 -48
  10. package/docs/classes/_saltcorn_data.models.Form-1.html +38 -38
  11. package/docs/classes/_saltcorn_data.models.Library.html +13 -13
  12. package/docs/classes/_saltcorn_data.models.Page.html +33 -23
  13. package/docs/classes/_saltcorn_data.models.PageGroup-1.html +28 -33
  14. package/docs/classes/_saltcorn_data.models.Plugin.html +25 -25
  15. package/docs/classes/_saltcorn_data.models.Role.html +9 -9
  16. package/docs/classes/_saltcorn_data.models.Table-1.html +101 -91
  17. package/docs/classes/_saltcorn_data.models.TableConstraint-1.html +14 -14
  18. package/docs/classes/_saltcorn_data.models.Trigger.html +45 -35
  19. package/docs/classes/_saltcorn_data.models.User-1.html +48 -48
  20. package/docs/classes/_saltcorn_data.models.View-1.html +61 -51
  21. package/docs/classes/_saltcorn_data.models.Workflow-1.html +17 -17
  22. package/docs/classes/_saltcorn_data.models.WorkflowRun.html +35 -35
  23. package/docs/classes/_saltcorn_data.models.WorkflowStep.html +25 -25
  24. package/docs/classes/_saltcorn_data.models.WorkflowTrace.html +18 -18
  25. package/docs/classes/_saltcorn_mobile_builder.MobileBuilder.html +36 -36
  26. package/docs/enums/_saltcorn_common_code.RelationType.html +7 -7
  27. package/docs/enums/_saltcorn_common_code.ViewDisplayType.html +4 -4
  28. package/docs/functions/_saltcorn_admin_models.backup.create_backup.html +1 -1
  29. package/docs/functions/_saltcorn_admin_models.backup.create_csv_from_rows.html +1 -1
  30. package/docs/functions/_saltcorn_admin_models.backup.restore.html +1 -1
  31. package/docs/functions/_saltcorn_admin_models.pack.add_to_menu.html +1 -1
  32. package/docs/functions/_saltcorn_admin_models.pack.can_install_pack.html +1 -1
  33. package/docs/functions/_saltcorn_admin_models.pack.fetch_available_packs.html +1 -1
  34. package/docs/functions/_saltcorn_admin_models.pack.fetch_pack_by_name.html +1 -1
  35. package/docs/functions/_saltcorn_admin_models.pack.install_pack.html +1 -1
  36. package/docs/functions/_saltcorn_admin_models.pack.library_pack.html +1 -1
  37. package/docs/functions/_saltcorn_admin_models.pack.model_instance_pack.html +1 -1
  38. package/docs/functions/_saltcorn_admin_models.pack.model_pack.html +1 -1
  39. package/docs/functions/_saltcorn_admin_models.pack.page_group_pack.html +1 -1
  40. package/docs/functions/_saltcorn_admin_models.pack.page_pack.html +1 -1
  41. package/docs/functions/_saltcorn_admin_models.pack.plugin_pack.html +1 -1
  42. package/docs/functions/_saltcorn_admin_models.pack.role_pack.html +1 -1
  43. package/docs/functions/_saltcorn_admin_models.pack.table_pack.html +1 -1
  44. package/docs/functions/_saltcorn_admin_models.pack.trigger_pack.html +1 -1
  45. package/docs/functions/_saltcorn_admin_models.pack.uninstall_pack.html +1 -1
  46. package/docs/functions/_saltcorn_admin_models.pack.view_pack.html +1 -1
  47. package/docs/functions/_saltcorn_admin_models.tenant.copy_tenant_template.html +1 -1
  48. package/docs/functions/_saltcorn_admin_models.tenant.create_tenant.html +1 -1
  49. package/docs/functions/_saltcorn_admin_models.tenant.deleteTenant.html +1 -1
  50. package/docs/functions/_saltcorn_admin_models.tenant.domain_sanitize.html +1 -1
  51. package/docs/functions/_saltcorn_admin_models.tenant.eachTenant.html +1 -1
  52. package/docs/functions/_saltcorn_admin_models.tenant.getAllTenantRows.html +1 -1
  53. package/docs/functions/_saltcorn_admin_models.tenant.getAllTenants.html +1 -1
  54. package/docs/functions/_saltcorn_admin_models.tenant.insertTenant.html +1 -1
  55. package/docs/functions/_saltcorn_admin_models.tenant.switchToTenant.html +1 -1
  56. package/docs/functions/_saltcorn_common_code.buildTableCaches.html +1 -1
  57. package/docs/functions/_saltcorn_common_code.parseLegacyRelation.html +1 -1
  58. package/docs/functions/_saltcorn_common_code.parseRelationPath.html +1 -1
  59. package/docs/functions/_saltcorn_data.models.config.check_email_mask.html +1 -1
  60. package/docs/functions/_saltcorn_data.models.config.deleteConfig.html +1 -1
  61. package/docs/functions/_saltcorn_data.models.config.getAllConfig.html +1 -1
  62. package/docs/functions/_saltcorn_data.models.config.getConfig.html +1 -1
  63. package/docs/functions/_saltcorn_data.models.config.get_base_url.html +1 -1
  64. package/docs/functions/_saltcorn_data.models.config.get_latest_npm_version.html +1 -1
  65. package/docs/functions/_saltcorn_data.models.config.remove_from_menu.html +1 -1
  66. package/docs/functions/_saltcorn_data.models.config.save_menu_items.html +1 -1
  67. package/docs/functions/_saltcorn_data.models.config.setConfig.html +1 -1
  68. package/docs/functions/_saltcorn_data.models.discovery.discover_tables.html +1 -1
  69. package/docs/functions/_saltcorn_data.models.discovery.discoverable_tables.html +1 -1
  70. package/docs/functions/_saltcorn_data.models.discovery.findType.html +1 -1
  71. package/docs/functions/_saltcorn_data.models.discovery.get_existing_views.html +1 -1
  72. package/docs/functions/_saltcorn_data.models.discovery.implement_discovery.html +1 -1
  73. package/docs/functions/_saltcorn_data.models.email.getMailTransport.html +1 -1
  74. package/docs/functions/_saltcorn_data.models.email.send_verification_email.html +1 -1
  75. package/docs/functions/_saltcorn_data.models.email.viewToEmailHtml.html +1 -1
  76. package/docs/functions/_saltcorn_data.models.expression.apply_calculated_fields.html +1 -1
  77. package/docs/functions/_saltcorn_data.models.expression.apply_calculated_fields_stored.html +1 -1
  78. package/docs/functions/_saltcorn_data.models.expression.eval_expression.html +1 -1
  79. package/docs/functions/_saltcorn_data.models.expression.expressionValidator.html +1 -1
  80. package/docs/functions/_saltcorn_data.models.expression.get_async_expression_function.html +1 -1
  81. package/docs/functions/_saltcorn_data.models.expression.get_expression_function.html +1 -1
  82. package/docs/functions/_saltcorn_data.models.expression.jsexprToWhere.html +1 -1
  83. package/docs/functions/_saltcorn_data.models.expression.recalculate_for_stored.html +1 -1
  84. package/docs/functions/_saltcorn_data.models.expression.transform_for_async.html +1 -1
  85. package/docs/functions/_saltcorn_data.models.layout.eachView.html +1 -1
  86. package/docs/functions/_saltcorn_data.models.layout.getStringsForI18n.html +1 -1
  87. package/docs/functions/_saltcorn_data.models.layout.getViews.html +1 -1
  88. package/docs/functions/_saltcorn_data.models.layout.translateLayout.html +1 -1
  89. package/docs/functions/_saltcorn_data.models.layout.traverse.html +1 -1
  90. package/docs/functions/_saltcorn_data.models.layout.traverseSync.html +1 -1
  91. package/docs/functions/_saltcorn_data.models.random.all_views.html +1 -1
  92. package/docs/functions/_saltcorn_data.models.random.fill_table_row.html +1 -1
  93. package/docs/functions/_saltcorn_data.models.random.initial_view.html +1 -1
  94. package/docs/functions/_saltcorn_data.models.random.random_table.html +1 -1
  95. package/docs/functions/_saltcorn_db_common.buildInsertBulkSql.html +2 -2
  96. package/docs/functions/_saltcorn_db_common.buildInsertSql.html +2 -2
  97. package/docs/functions/_saltcorn_db_common.doCount.html +2 -2
  98. package/docs/functions/_saltcorn_db_common.doDeleteWhere.html +2 -2
  99. package/docs/functions/_saltcorn_db_common.doListScTables.html +2 -2
  100. package/docs/functions/_saltcorn_db_common.doListTables.html +2 -2
  101. package/docs/functions/_saltcorn_db_common.doListUserDefinedTables.html +2 -2
  102. package/docs/functions/_saltcorn_db_common.do_add_index.html +2 -2
  103. package/docs/functions/_saltcorn_db_common.do_drop_index.html +2 -2
  104. package/docs/functions/_saltcorn_db_common.ftsFieldsSqlExpr.html +2 -2
  105. package/docs/functions/_saltcorn_db_common.mkSelectOptions.html +2 -2
  106. package/docs/functions/_saltcorn_db_common.mkVal.html +2 -2
  107. package/docs/functions/_saltcorn_db_common.mkWhere.html +2 -2
  108. package/docs/functions/_saltcorn_db_common.multi_tenant.enable_multi_tenant.html +3 -2
  109. package/docs/functions/{_saltcorn_db_common.single_tenant.enable_multi_tenant.html → _saltcorn_db_common.multi_tenant.getRequestContext.html} +16 -15
  110. package/docs/functions/_saltcorn_db_common.multi_tenant.getTenantSchema.html +3 -2
  111. package/docs/functions/_saltcorn_db_common.multi_tenant.init.html +3 -2
  112. package/docs/functions/_saltcorn_db_common.multi_tenant.is_it_multi_tenant.html +3 -2
  113. package/docs/functions/_saltcorn_db_common.multi_tenant.runWithTenant.html +5 -5
  114. package/docs/functions/_saltcorn_db_common.orderByIsObject.html +2 -2
  115. package/docs/functions/_saltcorn_db_common.orderByIsOperator.html +2 -2
  116. package/docs/functions/_saltcorn_db_common.prefixFieldsInWhere.html +2 -2
  117. package/docs/functions/_saltcorn_db_common.reprAsJson.html +2 -2
  118. package/docs/functions/_saltcorn_db_common.sqlBinOp.html +2 -2
  119. package/docs/functions/_saltcorn_db_common.sqlFun.html +2 -2
  120. package/docs/functions/_saltcorn_db_common.sqlsanitize.html +2 -2
  121. package/docs/functions/_saltcorn_db_common.sqlsanitizeAllowDots.html +2 -2
  122. package/docs/functions/_saltcorn_db_common.subSelectWhere.html +2 -2
  123. package/docs/functions/_saltcorn_mobile_builder.common_build_utils.androidFeatures.html +1 -1
  124. package/docs/functions/_saltcorn_mobile_builder.common_build_utils.androidPermissions.html +1 -1
  125. package/docs/functions/_saltcorn_mobile_builder.common_build_utils.buildTablesFile.html +1 -1
  126. package/docs/functions/_saltcorn_mobile_builder.common_build_utils.copyPrepopulatedDb.html +1 -1
  127. package/docs/functions/_saltcorn_mobile_builder.common_build_utils.copyServerFiles.html +1 -1
  128. package/docs/functions/_saltcorn_mobile_builder.common_build_utils.copyShareExtFiles.html +1 -1
  129. package/docs/functions/_saltcorn_mobile_builder.common_build_utils.copySiteLogo.html +1 -1
  130. package/docs/functions/_saltcorn_mobile_builder.common_build_utils.copyTranslationFiles.html +1 -1
  131. package/docs/functions/_saltcorn_mobile_builder.common_build_utils.createSqliteDb.html +1 -1
  132. package/docs/functions/_saltcorn_mobile_builder.common_build_utils.decodeProvisioningProfile.html +1 -1
  133. package/docs/functions/_saltcorn_mobile_builder.common_build_utils.extractDomain.html +1 -1
  134. package/docs/functions/_saltcorn_mobile_builder.common_build_utils.generateAndroidVersionCode.html +1 -1
  135. package/docs/functions/_saltcorn_mobile_builder.common_build_utils.modifyAndroidManifest.html +1 -1
  136. package/docs/functions/_saltcorn_mobile_builder.common_build_utils.modifyConfigXml.html +1 -1
  137. package/docs/functions/_saltcorn_mobile_builder.common_build_utils.modifyGradleConfig.html +1 -1
  138. package/docs/functions/_saltcorn_mobile_builder.common_build_utils.modifyInfoPlist.html +1 -1
  139. package/docs/functions/_saltcorn_mobile_builder.common_build_utils.modifyXcodeProjectFile.html +1 -1
  140. package/docs/functions/_saltcorn_mobile_builder.common_build_utils.prepAppIcon.html +1 -1
  141. package/docs/functions/_saltcorn_mobile_builder.common_build_utils.prepareAppIcon.html +1 -1
  142. package/docs/functions/_saltcorn_mobile_builder.common_build_utils.prepareBuildDir.html +1 -1
  143. package/docs/functions/_saltcorn_mobile_builder.common_build_utils.prepareExportOptionsPlist.html +1 -1
  144. package/docs/functions/_saltcorn_mobile_builder.common_build_utils.prepareSplashIcon.html +1 -1
  145. package/docs/functions/_saltcorn_mobile_builder.common_build_utils.prepareSplashPage.html +1 -1
  146. package/docs/functions/_saltcorn_mobile_builder.common_build_utils.writeCapacitorConfig.html +1 -1
  147. package/docs/functions/_saltcorn_mobile_builder.common_build_utils.writeCfgFile.html +1 -1
  148. package/docs/functions/_saltcorn_mobile_builder.common_build_utils.writeDataExtractionRules.html +1 -1
  149. package/docs/functions/_saltcorn_mobile_builder.common_build_utils.writeNetworkSecurityConfig.html +1 -1
  150. package/docs/functions/_saltcorn_mobile_builder.common_build_utils.writePodfile.html +1 -1
  151. package/docs/functions/_saltcorn_mobile_builder.common_build_utils.writePrivacyInfo.html +1 -1
  152. package/docs/functions/_saltcorn_mobile_builder.package_bundle_utils.bundleMobileAppCode.html +1 -1
  153. package/docs/functions/_saltcorn_mobile_builder.package_bundle_utils.bundlePackagesAndPlugins.html +1 -1
  154. package/docs/functions/_saltcorn_mobile_builder.package_bundle_utils.copyMobileAppDirs.html +1 -1
  155. package/docs/functions/_saltcorn_mobile_builder.package_bundle_utils.copyPublicDirs.html +1 -1
  156. package/docs/functions/_saltcorn_sqlite.add_index.html +3 -2
  157. package/docs/functions/_saltcorn_sqlite.add_unique_constraint.html +3 -2
  158. package/docs/functions/_saltcorn_sqlite.begin.html +3 -2
  159. package/docs/functions/_saltcorn_sqlite.changeConnection.html +3 -2
  160. package/docs/functions/_saltcorn_sqlite.close.html +3 -2
  161. package/docs/functions/_saltcorn_sqlite.commit.html +3 -2
  162. package/docs/functions/_saltcorn_sqlite.count.html +3 -2
  163. package/docs/functions/_saltcorn_sqlite.deleteWhere.html +3 -2
  164. package/docs/functions/_saltcorn_sqlite.dropTable.html +3 -2
  165. package/docs/functions/_saltcorn_sqlite.dropTables.html +3 -2
  166. package/docs/functions/_saltcorn_sqlite.drop_index.html +3 -2
  167. package/docs/functions/_saltcorn_sqlite.drop_reset_schema.html +3 -2
  168. package/docs/functions/_saltcorn_sqlite.drop_unique_constraint.html +3 -2
  169. package/docs/functions/_saltcorn_sqlite.getVersion.html +3 -2
  170. package/docs/functions/_saltcorn_sqlite.get_db_filepath.html +3 -2
  171. package/docs/functions/_saltcorn_sqlite.get_sql_logging.html +3 -2
  172. package/docs/functions/_saltcorn_sqlite.init.html +3 -2
  173. package/docs/functions/_saltcorn_sqlite.insert.html +3 -2
  174. package/docs/functions/_saltcorn_sqlite.listScTables.html +3 -2
  175. package/docs/functions/_saltcorn_sqlite.listTables.html +3 -2
  176. package/docs/functions/_saltcorn_sqlite.listUserDefinedTables.html +3 -2
  177. package/docs/functions/_saltcorn_sqlite.query.html +3 -2
  178. package/docs/functions/_saltcorn_sqlite.rollback.html +3 -2
  179. package/docs/functions/_saltcorn_sqlite.select.html +3 -2
  180. package/docs/functions/_saltcorn_sqlite.selectMaybeOne.html +3 -2
  181. package/docs/functions/_saltcorn_sqlite.selectOne.html +3 -2
  182. package/docs/functions/_saltcorn_sqlite.set_sql_logging.html +3 -2
  183. package/docs/functions/_saltcorn_sqlite.slugify.html +3 -2
  184. package/docs/functions/_saltcorn_sqlite.sql_log.html +3 -2
  185. package/docs/functions/_saltcorn_sqlite.update.html +3 -2
  186. package/docs/functions/_saltcorn_sqlite.updateWhere.html +3 -2
  187. package/docs/functions/_saltcorn_sqlite.withTransaction.html +96 -0
  188. package/docs/functions/_saltcorn_sqlite_mobile.add_index.html +1 -1
  189. package/docs/functions/_saltcorn_sqlite_mobile.add_unique_constraint.html +1 -1
  190. package/docs/functions/_saltcorn_sqlite_mobile.count.html +1 -1
  191. package/docs/functions/_saltcorn_sqlite_mobile.deleteWhere.html +1 -1
  192. package/docs/functions/_saltcorn_sqlite_mobile.drop_index.html +1 -1
  193. package/docs/functions/_saltcorn_sqlite_mobile.drop_reset_schema.html +1 -1
  194. package/docs/functions/_saltcorn_sqlite_mobile.drop_unique_constraint.html +1 -1
  195. package/docs/functions/_saltcorn_sqlite_mobile.init.html +1 -1
  196. package/docs/functions/_saltcorn_sqlite_mobile.insert.html +1 -1
  197. package/docs/functions/_saltcorn_sqlite_mobile.insertRows.html +1 -1
  198. package/docs/functions/_saltcorn_sqlite_mobile.listScTables.html +1 -1
  199. package/docs/functions/_saltcorn_sqlite_mobile.listTables.html +1 -1
  200. package/docs/functions/_saltcorn_sqlite_mobile.listUserDefinedTables.html +1 -1
  201. package/docs/functions/_saltcorn_sqlite_mobile.query.html +1 -1
  202. package/docs/functions/_saltcorn_sqlite_mobile.select.html +1 -1
  203. package/docs/functions/_saltcorn_sqlite_mobile.selectMaybeOne.html +1 -1
  204. package/docs/functions/_saltcorn_sqlite_mobile.selectOne.html +1 -1
  205. package/docs/functions/_saltcorn_sqlite_mobile.setConnectionObject.html +1 -1
  206. package/docs/functions/_saltcorn_sqlite_mobile.tableExists.html +1 -1
  207. package/docs/functions/_saltcorn_sqlite_mobile.time.html +1 -1
  208. package/docs/functions/_saltcorn_sqlite_mobile.update.html +1 -1
  209. package/docs/functions/_saltcorn_types.ModelAbstracts.abstract_field.instanceOfField.html +1 -1
  210. package/docs/functions/_saltcorn_types.ModelAbstracts.abstract_page.instanceOfPage.html +1 -1
  211. package/docs/functions/_saltcorn_types.ModelAbstracts.abstract_view.instanceOfView.html +1 -1
  212. package/docs/functions/_saltcorn_types.Types.base_types.instanceOWithHtmlFile.html +1 -1
  213. package/docs/functions/_saltcorn_types.Types.common_types.instanceOfErrorMsg.html +1 -1
  214. package/docs/functions/_saltcorn_types.Types.common_types.instanceOfSuccessMsg.html +1 -1
  215. package/docs/functions/_saltcorn_types.Types.common_types.instanceOfType.html +1 -1
  216. package/docs/functions/_saltcorn_types.generators.generateBool.html +1 -1
  217. package/docs/functions/_saltcorn_types.generators.generateString.html +1 -1
  218. package/docs/functions/_saltcorn_types.generators.num_between.html +1 -1
  219. package/docs/functions/_saltcorn_types.generators.oneOf.html +1 -1
  220. package/docs/interfaces/_saltcorn_mobile_builder.common_build_utils.ScCapacitorConfig.html +10 -10
  221. package/docs/interfaces/_saltcorn_types.ModelAbstracts.abstract_field.AbstractField.html +14 -14
  222. package/docs/interfaces/_saltcorn_types.ModelAbstracts.abstract_field.AbstractFieldRepeat.html +3 -3
  223. package/docs/interfaces/_saltcorn_types.ModelAbstracts.abstract_form.AbstractForm.html +26 -26
  224. package/docs/interfaces/_saltcorn_types.ModelAbstracts.abstract_page.AbstractPage.html +7 -7
  225. package/docs/interfaces/_saltcorn_types.ModelAbstracts.abstract_role.AbstractRole.html +3 -3
  226. package/docs/interfaces/_saltcorn_types.ModelAbstracts.abstract_table.AbstractTable.html +7 -7
  227. package/docs/interfaces/_saltcorn_types.ModelAbstracts.abstract_trigger.AbstractTrigger.html +16 -16
  228. package/docs/interfaces/_saltcorn_types.ModelAbstracts.abstract_view.AbstractView.html +10 -10
  229. package/docs/interfaces/_saltcorn_types.ModelAbstracts.abstract_workflow.AbstractWorkflow.html +13 -13
  230. package/docs/modules/_saltcorn_admin_models.backup.html +1 -1
  231. package/docs/modules/_saltcorn_admin_models.html +1 -1
  232. package/docs/modules/_saltcorn_admin_models.pack.html +1 -1
  233. package/docs/modules/_saltcorn_admin_models.tenant.html +1 -1
  234. package/docs/modules/_saltcorn_common_code.html +1 -1
  235. package/docs/modules/_saltcorn_data.html +3 -3
  236. package/docs/modules/_saltcorn_data.models.Crash.html +2 -2
  237. package/docs/modules/_saltcorn_data.models.EventLog.html +2 -2
  238. package/docs/modules/_saltcorn_data.models.FieldRepeat.html +2 -2
  239. package/docs/modules/_saltcorn_data.models.File.html +2 -2
  240. package/docs/modules/_saltcorn_data.models.Form.html +2 -2
  241. package/docs/modules/_saltcorn_data.models.PageGroup.html +2 -2
  242. package/docs/modules/_saltcorn_data.models.Table.html +2 -2
  243. package/docs/modules/_saltcorn_data.models.TableConstraint.html +2 -2
  244. package/docs/modules/_saltcorn_data.models.User.html +2 -2
  245. package/docs/modules/_saltcorn_data.models.View.html +2 -2
  246. package/docs/modules/_saltcorn_data.models.Workflow.html +2 -2
  247. package/docs/modules/_saltcorn_data.models.config.html +1 -1
  248. package/docs/modules/_saltcorn_data.models.discovery.html +1 -1
  249. package/docs/modules/_saltcorn_data.models.email.html +1 -1
  250. package/docs/modules/_saltcorn_data.models.expression.html +1 -1
  251. package/docs/modules/_saltcorn_data.models.html +1 -1
  252. package/docs/modules/_saltcorn_data.models.layout.html +1 -1
  253. package/docs/modules/_saltcorn_data.models.random.html +1 -1
  254. package/docs/modules/_saltcorn_data.models.scheduler.html +1 -1
  255. package/docs/modules/_saltcorn_data.plugin_helper.html +1 -1
  256. package/docs/modules/_saltcorn_data.utils.html +1 -1
  257. package/docs/modules/_saltcorn_db_common.html +7 -7
  258. package/docs/modules/_saltcorn_db_common.multi_tenant.html +4 -2
  259. package/docs/modules/_saltcorn_markup.html +2 -2
  260. package/docs/modules/_saltcorn_mobile_builder.common_build_utils.html +1 -1
  261. package/docs/modules/_saltcorn_mobile_builder.html +1 -1
  262. package/docs/modules/_saltcorn_mobile_builder.package_bundle_utils.html +1 -1
  263. package/docs/modules/_saltcorn_sqlite.html +4 -2
  264. package/docs/modules/_saltcorn_sqlite_mobile.html +1 -1
  265. package/docs/modules/_saltcorn_types.ModelAbstracts.abstract_field.html +1 -1
  266. package/docs/modules/_saltcorn_types.ModelAbstracts.abstract_form.html +1 -1
  267. package/docs/modules/_saltcorn_types.ModelAbstracts.abstract_library.html +1 -1
  268. package/docs/modules/_saltcorn_types.ModelAbstracts.abstract_page.html +1 -1
  269. package/docs/modules/_saltcorn_types.ModelAbstracts.abstract_plugin.html +1 -1
  270. package/docs/modules/_saltcorn_types.ModelAbstracts.abstract_role.html +1 -1
  271. package/docs/modules/_saltcorn_types.ModelAbstracts.abstract_table.html +1 -1
  272. package/docs/modules/_saltcorn_types.ModelAbstracts.abstract_trigger.html +1 -1
  273. package/docs/modules/_saltcorn_types.ModelAbstracts.abstract_view.html +1 -1
  274. package/docs/modules/_saltcorn_types.ModelAbstracts.abstract_workflow.html +1 -1
  275. package/docs/modules/_saltcorn_types.ModelAbstracts.html +1 -1
  276. package/docs/modules/_saltcorn_types.Types.base_types.html +1 -1
  277. package/docs/modules/_saltcorn_types.Types.common_types.html +1 -1
  278. package/docs/modules/_saltcorn_types.Types.html +1 -1
  279. package/docs/modules/_saltcorn_types.generators.html +1 -1
  280. package/docs/modules/_saltcorn_types.html +1 -1
  281. package/docs/types/_saltcorn_data.models.Crash.CrashCfg.html +1 -1
  282. package/docs/types/_saltcorn_data.models.EventLog.EventLogCfg.html +1 -1
  283. package/docs/types/_saltcorn_data.models.FieldRepeat.FieldRepeatCfg.html +1 -1
  284. package/docs/types/_saltcorn_data.models.File.FileCfg.html +1 -1
  285. package/docs/types/_saltcorn_data.models.Form.AdditionalButton.html +1 -1
  286. package/docs/types/_saltcorn_data.models.Form.FormCfg.html +1 -1
  287. package/docs/types/_saltcorn_data.models.PageGroup.ScreenInfoParams.html +1 -1
  288. package/docs/types/_saltcorn_data.models.Table.ChildRelations.html +1 -1
  289. package/docs/types/_saltcorn_data.models.Table.ParentRelations.html +1 -1
  290. package/docs/types/_saltcorn_data.models.Table.RelationData.html +1 -1
  291. package/docs/types/_saltcorn_data.models.TableConstraint.TableConstraintCfg.html +1 -1
  292. package/docs/types/_saltcorn_data.models.User.UserCfg.html +1 -1
  293. package/docs/types/_saltcorn_data.models.View.FindViewsPred.html +1 -1
  294. package/docs/types/_saltcorn_data.models.Workflow.WorkflowCfg.html +1 -1
  295. package/docs/types/_saltcorn_db_common.AggregationOptions.html +2 -2
  296. package/docs/types/_saltcorn_db_common.CoordOpts.html +2 -2
  297. package/docs/types/_saltcorn_db_common.DatabaseClient.html +111 -0
  298. package/docs/types/_saltcorn_db_common.JoinField.html +2 -2
  299. package/docs/types/_saltcorn_db_common.JoinFields.html +2 -2
  300. package/docs/types/_saltcorn_db_common.JoinOptions.html +2 -2
  301. package/docs/types/_saltcorn_db_common.JsonPath.html +2 -2
  302. package/docs/types/_saltcorn_db_common.JsonPathElem.html +2 -2
  303. package/docs/types/_saltcorn_db_common.Operator.html +2 -2
  304. package/docs/types/_saltcorn_db_common.PrimaryKeyValue.html +2 -2
  305. package/docs/types/_saltcorn_db_common.Row.html +2 -2
  306. package/docs/types/_saltcorn_db_common.SelectOptions.html +5 -3
  307. package/docs/types/_saltcorn_db_common.SqlAndValues.html +2 -2
  308. package/docs/types/_saltcorn_db_common.SubselectOptions.html +2 -2
  309. package/docs/types/_saltcorn_db_common.Value.html +2 -2
  310. package/docs/types/_saltcorn_db_common.Where.html +2 -2
  311. package/docs/types/_saltcorn_mobile_builder.IosCfg.html +1 -1
  312. package/docs/types/_saltcorn_types.ModelAbstracts.abstract_field.FieldCfg.html +1 -1
  313. package/docs/types/_saltcorn_types.ModelAbstracts.abstract_field.InputType.html +1 -1
  314. package/docs/types/_saltcorn_types.ModelAbstracts.abstract_form.AdditionalButton.html +1 -1
  315. package/docs/types/_saltcorn_types.ModelAbstracts.abstract_library.LibraryCfg.html +1 -1
  316. package/docs/types/_saltcorn_types.ModelAbstracts.abstract_library.LibraryPack.html +1 -1
  317. package/docs/types/_saltcorn_types.ModelAbstracts.abstract_page.PageCfg.html +1 -1
  318. package/docs/types/_saltcorn_types.ModelAbstracts.abstract_page.PagePack.html +1 -1
  319. package/docs/types/_saltcorn_types.ModelAbstracts.abstract_plugin.PluginCfg.html +1 -1
  320. package/docs/types/_saltcorn_types.ModelAbstracts.abstract_plugin.PluginPack.html +1 -1
  321. package/docs/types/_saltcorn_types.ModelAbstracts.abstract_role.RoleCfg.html +1 -1
  322. package/docs/types/_saltcorn_types.ModelAbstracts.abstract_role.RolePack.html +1 -1
  323. package/docs/types/_saltcorn_types.ModelAbstracts.abstract_table.TableCfg.html +3 -3
  324. package/docs/types/_saltcorn_types.ModelAbstracts.abstract_table.TablePack.html +1 -1
  325. package/docs/types/_saltcorn_types.ModelAbstracts.abstract_trigger.TriggerCfg.html +1 -1
  326. package/docs/types/_saltcorn_types.ModelAbstracts.abstract_trigger.TriggerPack.html +1 -1
  327. package/docs/types/_saltcorn_types.ModelAbstracts.abstract_view.ViewCfg.html +1 -1
  328. package/docs/types/_saltcorn_types.ModelAbstracts.abstract_view.ViewPack.html +1 -1
  329. package/docs/types/_saltcorn_types.ModelAbstracts.abstract_workflow.ConfigWorkflowStep.html +1 -1
  330. package/docs/types/_saltcorn_types.ModelAbstracts.abstract_workflow.RunResult.html +1 -1
  331. package/docs/types/_saltcorn_types.Types.base_types.Action.html +1 -1
  332. package/docs/types/_saltcorn_types.Types.base_types.AuthenticationMethod.html +1 -1
  333. package/docs/types/_saltcorn_types.Types.base_types.CapacitorPlugin.html +1 -1
  334. package/docs/types/_saltcorn_types.Types.base_types.CodePagePack.html +1 -1
  335. package/docs/types/_saltcorn_types.Types.base_types.Column.html +1 -1
  336. package/docs/types/_saltcorn_types.Types.base_types.ConnectedObjects.html +1 -1
  337. package/docs/types/_saltcorn_types.Types.base_types.CopilotSkill.html +1 -1
  338. package/docs/types/_saltcorn_types.Types.base_types.FieldLike.html +1 -1
  339. package/docs/types/_saltcorn_types.Types.base_types.FieldView.html +1 -1
  340. package/docs/types/_saltcorn_types.Types.base_types.Header.html +1 -1
  341. package/docs/types/_saltcorn_types.Types.base_types.JoinFieldOption.html +1 -1
  342. package/docs/types/_saltcorn_types.Types.base_types.Layout.html +1 -1
  343. package/docs/types/_saltcorn_types.Types.base_types.MobileConfig.html +1 -1
  344. package/docs/types/_saltcorn_types.Types.base_types.ModelPattern.html +1 -1
  345. package/docs/types/_saltcorn_types.Types.base_types.Pack.html +1 -1
  346. package/docs/types/_saltcorn_types.Types.base_types.Plugin.html +1 -1
  347. package/docs/types/_saltcorn_types.Types.base_types.PluginFunction.html +1 -1
  348. package/docs/types/_saltcorn_types.Types.base_types.PluginLayout.html +1 -1
  349. package/docs/types/_saltcorn_types.Types.base_types.PluginRoute.html +1 -1
  350. package/docs/types/_saltcorn_types.Types.base_types.PluginSourceType.html +1 -1
  351. package/docs/types/_saltcorn_types.Types.base_types.PluginType.html +1 -1
  352. package/docs/types/_saltcorn_types.Types.base_types.PluginWrap.html +1 -1
  353. package/docs/types/_saltcorn_types.Types.base_types.PluginWrapArg.html +1 -1
  354. package/docs/types/_saltcorn_types.Types.base_types.RelationOption.html +1 -1
  355. package/docs/types/_saltcorn_types.Types.base_types.Req.html +1 -1
  356. package/docs/types/_saltcorn_types.Types.base_types.Res.html +1 -1
  357. package/docs/types/_saltcorn_types.Types.base_types.RouteAction.html +1 -1
  358. package/docs/types/_saltcorn_types.Types.base_types.RunExtra.html +1 -1
  359. package/docs/types/_saltcorn_types.Types.base_types.TableProvider.html +1 -1
  360. package/docs/types/_saltcorn_types.Types.base_types.TableQuery.html +1 -1
  361. package/docs/types/_saltcorn_types.Types.base_types.Tablely.html +1 -1
  362. package/docs/types/_saltcorn_types.Types.base_types.ViewTemplate.html +1 -1
  363. package/docs/types/_saltcorn_types.Types.common_types.ErrorMessage.html +1 -1
  364. package/docs/types/_saltcorn_types.Types.common_types.GenObj.html +1 -1
  365. package/docs/types/_saltcorn_types.Types.common_types.ReqRes.html +1 -1
  366. package/docs/types/_saltcorn_types.Types.common_types.ResultMessage.html +1 -1
  367. package/docs/types/_saltcorn_types.Types.common_types.SuccessMessage.html +1 -1
  368. package/docs/types/_saltcorn_types.Types.common_types.Type.html +1 -1
  369. package/docs/variables/_saltcorn_data.db.html +1 -1
  370. package/docs/variables/_saltcorn_data.migrations.html +1 -1
  371. package/docs/variables/_saltcorn_data.models.config.available_languages.html +1 -1
  372. package/docs/variables/_saltcorn_data.models.config.configTypes.html +1 -1
  373. package/docs/variables/_saltcorn_data.models.scheduler.runScheduler.html +1 -1
  374. package/docs/variables/_saltcorn_data.plugin_helper.run_action_column.html +1 -1
  375. package/docs/variables/_saltcorn_data.utils.NotAuthorized.html +1 -1
  376. package/docs/variables/_saltcorn_data.utils.sleep.html +1 -1
  377. package/docs/variables/_saltcorn_db_common.multi_tenant.tenantNamespace.html +4 -3
  378. package/locales/en.json +2 -0
  379. package/package.json +9 -9
  380. package/routes/actions.js +10 -2
  381. package/routes/api.js +49 -40
  382. package/routes/fields.js +51 -52
  383. package/routes/menu.js +10 -8
  384. package/routes/packs.js +15 -7
  385. package/routes/page.js +17 -13
  386. package/routes/page_groupedit.js +8 -0
  387. package/routes/pageedit.js +10 -1
  388. package/routes/sync.js +60 -72
  389. package/routes/tables.js +129 -90
  390. package/routes/utils.js +21 -17
  391. package/routes/viewedit.js +18 -2
  392. package/docs/functions/_saltcorn_db_common.single_tenant.getTenantSchema.html +0 -109
  393. package/docs/functions/_saltcorn_db_common.single_tenant.init.html +0 -115
  394. package/docs/functions/_saltcorn_db_common.single_tenant.is_it_multi_tenant.html +0 -109
  395. package/docs/functions/_saltcorn_db_common.single_tenant.runWithTenant.html +0 -129
  396. package/docs/modules/_saltcorn_db_common.single_tenant.html +0 -115
package/routes/tables.js CHANGED
@@ -373,6 +373,7 @@ router.post(
373
373
  .map((t) => t.table_name);
374
374
  const pack = await discover_tables(tableNames);
375
375
  await implement_discovery(pack);
376
+ await getState().refresh_tables();
376
377
  req.flash(
377
378
  "success",
378
379
  req.__("Discovered tables: %s", tableNames.join(", "))
@@ -469,6 +470,7 @@ router.post(
469
470
  req.flash("error", parse_res.error);
470
471
  res.redirect(`/table/create-from-csv`);
471
472
  } else {
473
+ await getState().refresh_tables();
472
474
  Trigger.emitEvent(
473
475
  "AppChange",
474
476
  `Table ${parse_res.table.name}`,
@@ -1247,11 +1249,15 @@ router.post(
1247
1249
  res.redirect(`/table/provider-cfg/${table.id}`);
1248
1250
  } else {
1249
1251
  delete rest.provider_name;
1250
- const table = await Table.create(name, rest);
1251
- Trigger.emitEvent("AppChange", `Table ${name}`, req.user, {
1252
- entity_type: "Table",
1253
- entity_name: name,
1252
+ let table;
1253
+ await db.withTransaction(async () => {
1254
+ table = await Table.create(name, rest);
1255
+ Trigger.emitEvent("AppChange", `Table ${name}`, req.user, {
1256
+ entity_type: "Table",
1257
+ entity_name: name,
1258
+ });
1254
1259
  });
1260
+ await getState().refresh_tables();
1255
1261
  req.flash("success", req.__(`Table %s created`, name));
1256
1262
  res.redirect(`/table/${table.id}`);
1257
1263
  }
@@ -1299,8 +1305,10 @@ router.post(
1299
1305
  rest.ownership_formula = rest.ownership_field_id.replace("Fml:", "");
1300
1306
  rest.ownership_field_id = null;
1301
1307
  } else rest.ownership_formula = null;
1302
- await table.update(rest);
1303
-
1308
+ await db.withTransaction(async () => {
1309
+ await table.update(rest);
1310
+ });
1311
+ await getState().refresh_tables();
1304
1312
  if (!req.xhr) {
1305
1313
  if (!old_versioned && rest.versioned)
1306
1314
  req.flash(
@@ -1344,16 +1352,22 @@ router.post(
1344
1352
  res.redirect(`/table`);
1345
1353
  return;
1346
1354
  }
1347
- const views = await View.find(
1348
- t.id ? { table_id: t.id } : { exttable_name: t.name }
1349
- );
1350
- for (const view of views) await view.delete();
1351
- if (t.id) {
1352
- const triggers = await Trigger.find({ table_id: t.id });
1353
- for (const trig of triggers) await trig.delete();
1354
- }
1355
1355
  try {
1356
- await t.delete();
1356
+ await db.withTransaction(async () => {
1357
+ const views = await View.find(
1358
+ t.id ? { table_id: t.id } : { exttable_name: t.name }
1359
+ );
1360
+ for (const view of views) await view.delete();
1361
+ if (t.id) {
1362
+ const triggers = await Trigger.find({ table_id: t.id });
1363
+ for (const trig of triggers) await trig.delete();
1364
+ }
1365
+
1366
+ await t.delete();
1367
+ });
1368
+ await getState().refresh_tables();
1369
+ await getState().refresh_views();
1370
+ await getState().refresh_triggers();
1357
1371
  req.flash("success", req.__(`Table %s deleted`, t.name));
1358
1372
  res.redirect(`/table`);
1359
1373
  } catch (err) {
@@ -1414,12 +1428,15 @@ router.post(
1414
1428
  }
1415
1429
  }
1416
1430
  try {
1417
- await t.delete();
1418
- req.flash("success", req.__(`Table %s deleted`, t.name));
1419
- Trigger.emitEvent("AppChange", `Table ${t.name} deleted`, req.user, {
1420
- entity_type: "Table",
1421
- entity_name: t.name,
1431
+ await db.withTransaction(async () => {
1432
+ await t.delete();
1433
+ req.flash("success", req.__(`Table %s deleted`, t.name));
1434
+ Trigger.emitEvent("AppChange", `Table ${t.name} deleted`, req.user, {
1435
+ entity_type: "Table",
1436
+ entity_name: t.name,
1437
+ });
1422
1438
  });
1439
+ await getState().refresh_tables();
1423
1440
  res.redirect(`/table`);
1424
1441
  } catch (err) {
1425
1442
  req.flash("error", err.message);
@@ -1444,7 +1461,10 @@ router.post(
1444
1461
  return;
1445
1462
  }
1446
1463
  try {
1447
- await t.delete(true);
1464
+ await db.withTransaction(async () => {
1465
+ await t.delete(true);
1466
+ });
1467
+ await getState().refresh_tables();
1448
1468
  req.flash(
1449
1469
  "success",
1450
1470
  req.__(`Table %s forgotten. You can now discover it.`, t.name)
@@ -1850,11 +1870,15 @@ router.post(
1850
1870
  .filter((f) => form.values[f]);
1851
1871
  configuration.errormsg = form.values.errormsg;
1852
1872
  } else configuration = form.values;
1853
- await TableConstraint.create({
1854
- table_id: table.id,
1855
- type,
1856
- configuration,
1873
+ await db.withTransaction(async () => {
1874
+ await TableConstraint.create({
1875
+ table_id: table.id,
1876
+ type,
1877
+ configuration,
1878
+ });
1857
1879
  });
1880
+ await getState().refresh_tables();
1881
+
1858
1882
  Trigger.emitEvent(
1859
1883
  "AppChange",
1860
1884
  `Constraint ${type} on table ${table?.name}`,
@@ -1943,8 +1967,12 @@ router.post(
1943
1967
  form.validate(req.body || {});
1944
1968
  if (form.hasErrors) req.flash("error", req.__("An error occurred"));
1945
1969
  else {
1946
- await table.rename(form.values.name);
1970
+ await db.withTransaction(async () => {
1971
+ await table.rename(form.values.name);
1972
+ });
1973
+ await getState().refresh_tables();
1947
1974
  }
1975
+
1948
1976
  res.redirect(`/table/${table.id}`);
1949
1977
  })
1950
1978
  );
@@ -1962,7 +1990,10 @@ router.post(
1962
1990
  error_catcher(async (req, res) => {
1963
1991
  const { id } = req.params;
1964
1992
  const cons = await TableConstraint.findOne({ id });
1965
- await cons.delete();
1993
+ await db.withTransaction(async () => {
1994
+ await cons.delete();
1995
+ });
1996
+ await getState().refresh_tables();
1966
1997
  res.redirect(`/table/constraints/${cons.table_id}`);
1967
1998
  })
1968
1999
  );
@@ -2216,10 +2247,12 @@ router.post(
2216
2247
  const table = Table.findOne({ name });
2217
2248
 
2218
2249
  try {
2219
- await table.deleteRows({}, req.user, true);
2250
+ await db.withTransaction(async () => {
2251
+ await table.deleteRows({}, req.user, true);
2252
+ });
2220
2253
  req.flash("success", req.__("Deleted all rows"));
2221
2254
  } catch (e) {
2222
- console.error(e)
2255
+ console.error(e);
2223
2256
  req.flash("error", e.message);
2224
2257
  }
2225
2258
 
@@ -2382,6 +2415,7 @@ router.post(
2382
2415
  const workflow = get_provider_workflow(table, req);
2383
2416
  const wfres = await workflow.run(req.body || {}, req);
2384
2417
  respondWorkflow(table, workflow, wfres, req, res);
2418
+ await getState().refresh_tables();
2385
2419
  })
2386
2420
  );
2387
2421
 
@@ -2397,7 +2431,10 @@ router.post(
2397
2431
  res.redirect(`/table`);
2398
2432
  return;
2399
2433
  }
2400
- await table.repairCompositePrimary();
2434
+ await db.withTransaction(async () => {
2435
+ await table.repairCompositePrimary();
2436
+ });
2437
+ await getState().refresh_tables();
2401
2438
  res.redirect(`/table/${table.id}`);
2402
2439
  })
2403
2440
  );
@@ -2415,68 +2452,70 @@ router.post(
2415
2452
  res.redirect(`/table`);
2416
2453
  return;
2417
2454
  }
2418
- const initial_view = async (table, viewtemplate) => {
2419
- const configuration = await initial_config_all_fields(
2420
- viewtemplate === "Edit"
2421
- )({ table_id: table.id });
2422
- //console.log(configuration);
2423
- const name = `${viewtemplate} ${table.name}`;
2424
- const view = await View.create({
2425
- name,
2426
- configuration,
2427
- viewtemplate,
2428
- table_id: table.id,
2429
- min_role: 100,
2430
- });
2431
- return view;
2432
- };
2433
- const list = await initial_view(table, "List");
2434
- const edit = await initial_view(table, "Edit");
2435
- const show = await initial_view(table, "Show");
2436
- await View.update(
2437
- {
2438
- configuration: {
2439
- ...list.configuration,
2440
- columns: [
2441
- ...list.configuration.columns,
2442
- {
2443
- type: "ViewLink",
2444
- view: `Own:Show ${table.name}`,
2445
- view_name: `Show ${table.name}`,
2446
- link_style: "",
2447
- view_label: "Show",
2448
- header_label: "Show",
2449
- },
2450
- {
2451
- type: "ViewLink",
2452
- view: `Own:Edit ${table.name}`,
2453
- view_name: `Edit ${table.name}`,
2454
- link_style: "",
2455
- view_label: "Edit",
2456
- header_label: "Edit",
2457
- },
2458
- {
2459
- type: "Action",
2460
- action_name: "Delete",
2461
- action_style: "btn-primary",
2462
- },
2463
- ],
2464
- view_to_create: `Edit ${table.name}`,
2455
+ await db.withTransaction(async () => {
2456
+ const initial_view = async (table, viewtemplate) => {
2457
+ const configuration = await initial_config_all_fields(
2458
+ viewtemplate === "Edit"
2459
+ )({ table_id: table.id });
2460
+ //console.log(configuration);
2461
+ const name = `${viewtemplate} ${table.name}`;
2462
+ const view = await View.create({
2463
+ name,
2464
+ configuration,
2465
+ viewtemplate,
2466
+ table_id: table.id,
2467
+ min_role: 100,
2468
+ });
2469
+ return view;
2470
+ };
2471
+ const list = await initial_view(table, "List");
2472
+ const edit = await initial_view(table, "Edit");
2473
+ const show = await initial_view(table, "Show");
2474
+ await View.update(
2475
+ {
2476
+ configuration: {
2477
+ ...list.configuration,
2478
+ columns: [
2479
+ ...list.configuration.columns,
2480
+ {
2481
+ type: "ViewLink",
2482
+ view: `Own:Show ${table.name}`,
2483
+ view_name: `Show ${table.name}`,
2484
+ link_style: "",
2485
+ view_label: "Show",
2486
+ header_label: "Show",
2487
+ },
2488
+ {
2489
+ type: "ViewLink",
2490
+ view: `Own:Edit ${table.name}`,
2491
+ view_name: `Edit ${table.name}`,
2492
+ link_style: "",
2493
+ view_label: "Edit",
2494
+ header_label: "Edit",
2495
+ },
2496
+ {
2497
+ type: "Action",
2498
+ action_name: "Delete",
2499
+ action_style: "btn-primary",
2500
+ },
2501
+ ],
2502
+ view_to_create: `Edit ${table.name}`,
2503
+ },
2465
2504
  },
2466
- },
2467
- list.id
2468
- );
2469
- await View.update(
2470
- {
2471
- configuration: {
2472
- ...edit.configuration,
2473
- view_when_done: `List ${table.name}`,
2474
- destination_type: "View",
2505
+ list.id
2506
+ );
2507
+ await View.update(
2508
+ {
2509
+ configuration: {
2510
+ ...edit.configuration,
2511
+ view_when_done: `List ${table.name}`,
2512
+ destination_type: "View",
2513
+ },
2475
2514
  },
2476
- },
2477
- edit.id
2478
- );
2479
-
2515
+ edit.id
2516
+ );
2517
+ });
2518
+ await getState().refresh_views();
2480
2519
  res.redirect(`/table/${table.id}`);
2481
2520
  })
2482
2521
  );
package/routes/utils.js CHANGED
@@ -164,7 +164,7 @@ const set_custom_http_headers = (res, req, state) => {
164
164
  validateHeaderName(k);
165
165
  validateHeaderValue(k, val);
166
166
  res.header(k, val);
167
- } catch (e) {
167
+ } catch (e) {
168
168
  Crash.create(e, { url: "/", headers: {} });
169
169
  }
170
170
  }
@@ -200,7 +200,20 @@ const get_tenant_from_req = (req, hostPartsOffset) => {
200
200
  * @param {function} next
201
201
  */
202
202
  const setTenant = (req, res, next) => {
203
- if (db.is_it_multi_tenant()) {
203
+ let wrap =
204
+ req.method === "POST" && !db.isSQLite
205
+ ? (f) => {
206
+ db.getClient().then((client) => {
207
+ res.on("finish", function () {
208
+ client.release();
209
+ });
210
+ f(client);
211
+ });
212
+ }
213
+ : (f) => {
214
+ f(null);
215
+ };
216
+ wrap((client) => {
204
217
  // for a saltcorn mobile request use 'req.user.tenant'
205
218
  if (req.smr) {
206
219
  if (
@@ -212,7 +225,7 @@ const setTenant = (req, res, next) => {
212
225
  setLanguage(req, res);
213
226
  next();
214
227
  } else {
215
- db.runWithTenant(req.user.tenant, () => {
228
+ db.runWithTenant({ tenant: req.user.tenant, req, client }, () => {
216
229
  setLanguage(req, res, state);
217
230
  state.log(5, `${req.method} ${req.originalUrl}`);
218
231
  next();
@@ -230,7 +243,7 @@ const setTenant = (req, res, next) => {
230
243
  setLanguage(req, res);
231
244
  next();
232
245
  } else {
233
- db.runWithTenant(other_domain, () => {
246
+ db.runWithTenant({ tenant: other_domain, req, client }, () => {
234
247
  setLanguage(req, res, state);
235
248
  if (state.logLevel >= 5)
236
249
  state.log(
@@ -251,7 +264,7 @@ const setTenant = (req, res, next) => {
251
264
  setLanguage(req, res);
252
265
  next();
253
266
  } else {
254
- db.runWithTenant(ten, () => {
267
+ db.runWithTenant({ tenant: ten, req, client }, () => {
255
268
  setLanguage(req, res, state);
256
269
  if (state.logLevel >= 5)
257
270
  state.log(
@@ -267,17 +280,7 @@ const setTenant = (req, res, next) => {
267
280
  }
268
281
  }
269
282
  }
270
- } else {
271
- const state = getState();
272
- setLanguage(req, res, state);
273
- state.log(
274
- 5,
275
- `${req.method} ${req.originalUrl}${
276
- state.getConfig("log_ip_address", false) ? ` IP=${req.ip}` : ""
277
- }`
278
- );
279
- next();
280
- }
283
+ });
281
284
  };
282
285
 
283
286
  /**
@@ -504,7 +507,7 @@ const sendHtmlFile = async (req, res, file) => {
504
507
  .sendWrap(req.__("An error occurred"), req.__("File not found"));
505
508
  }
506
509
  } catch (e) {
507
- console.error(e)
510
+ console.error(e);
508
511
  return res
509
512
  .status(404)
510
513
  .sendWrap(
@@ -531,6 +534,7 @@ const setRole = async (req, res, model) => {
531
534
  roleRow && page
532
535
  ? req.__(`Minimum role for %s updated to %s`, page.name, roleRow.role)
533
536
  : req.__(`Minimum role updated`);
537
+ if (model.state_refresh) await model.state_refresh();
534
538
  if (!req.xhr) {
535
539
  req.flash("success", message);
536
540
  res.redirect("/pageedit");
@@ -573,6 +573,7 @@ router.post(
573
573
  //console.log(v);
574
574
  await View.create(v);
575
575
  }
576
+ await getState().refresh_views();
576
577
  Trigger.emitEvent("AppChange", `View ${v.name}`, req.user, {
577
578
  entity_type: "View",
578
579
  entity_name: v.name,
@@ -681,7 +682,13 @@ const respondWorkflow = (view, wf, wfres, req, res, table) => {
681
682
  },
682
683
  wrap(renderBuilder(wfres.renderBuilder, req.csrfToken()), true)
683
684
  );
684
- } else res.redirect(wfres.redirect);
685
+ } else {
686
+ getState()
687
+ .refresh_views()
688
+ .then(() => {
689
+ res.redirect(wfres.redirect);
690
+ });
691
+ }
685
692
  };
686
693
 
687
694
  /**
@@ -770,6 +777,7 @@ router.post(
770
777
  if (view.table_id) table = Table.findOne({ id: view.table_id });
771
778
  if (view.exttable_name) table = Table.findOne({ name: view.exttable_name });
772
779
  respondWorkflow(view, configFlow, wfres, req, res, table);
780
+ await getState().refresh_views();
773
781
  })
774
782
  );
775
783
 
@@ -835,6 +843,7 @@ router.post(
835
843
  ? `/${req.query.on_done_redirect}`
836
844
  : "/viewedit";
837
845
  res.redirect(redirectTarget);
846
+ await getState().refresh_views();
838
847
  })
839
848
  );
840
849
 
@@ -849,7 +858,10 @@ router.post(
849
858
  isAdminOrHasConfigMinRole("min_role_edit_views"),
850
859
  error_catcher(async (req, res) => {
851
860
  const { id } = req.params;
852
- await View.delete({ id });
861
+ await db.withTransaction(async () => {
862
+ await View.delete({ id });
863
+ });
864
+ await getState().refresh_views();
853
865
  req.flash("success", req.__("View deleted"));
854
866
  let redirectTarget =
855
867
  req.query.on_done_redirect &&
@@ -876,6 +888,7 @@ router.post(
876
888
  const exview = await View.findOne({ id });
877
889
  let newcfg = { ...exview.configuration, ...(req.body || {}) };
878
890
  await View.update({ configuration: newcfg }, +id);
891
+ await getState().refresh_views();
879
892
  Trigger.emitEvent("AppChange", `View ${exview.name}`, req.user, {
880
893
  entity_type: "View",
881
894
  entity_name: exview.name,
@@ -918,6 +931,7 @@ router.post(
918
931
  };
919
932
  else newcfg = { ...view.configuration, ...step.renderForm.values };
920
933
  await View.update({ configuration: newcfg }, view.id);
934
+ await getState().refresh_views();
921
935
  Trigger.emitEvent("AppChange", `View ${view.name}`, req.user, {
922
936
  entity_type: "View",
923
937
  entity_name: view.name,
@@ -948,6 +962,7 @@ router.post(
948
962
  const { id } = req.params;
949
963
  const role = (req.body || {}).role;
950
964
  await View.update({ min_role: role }, +id);
965
+ await getState().refresh_views();
951
966
  const view = await View.findOne({ id });
952
967
  Trigger.emitEvent("AppChange", `View ${view.name}`, req.user, {
953
968
  entity_type: "View",
@@ -976,6 +991,7 @@ router.post(
976
991
  isAdminOrHasConfigMinRole("min_role_edit_views"),
977
992
  error_catcher(async (req, res) => {
978
993
  const view = await View.create(req.body || {});
994
+ await getState().refresh_views();
979
995
  res.json({ view });
980
996
  })
981
997
  );
@@ -1,109 +0,0 @@
1
- <!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>getTenantSchema | saltcorn-monorepo</title><meta name="description" content="Documentation for saltcorn-monorepo"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><link rel="stylesheet" href="../assets/custom.css"/><script defer src="../assets/main.js"></script><script async src="../assets/search.js" id="tsd-search-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os"</script><header class="tsd-page-toolbar">
2
- <div class="tsd-toolbar-contents container">
3
- <div class="table-cell" id="tsd-search" data-base="..">
4
- <div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M15.7824 13.833L12.6666 10.7177C12.5259 10.5771 12.3353 10.499 12.1353 10.499H11.6259C12.4884 9.39596 13.001 8.00859 13.001 6.49937C13.001 2.90909 10.0914 0 6.50048 0C2.90959 0 0 2.90909 0 6.49937C0 10.0896 2.90959 12.9987 6.50048 12.9987C8.00996 12.9987 9.39756 12.4863 10.5008 11.6239V12.1332C10.5008 12.3332 10.5789 12.5238 10.7195 12.6644L13.8354 15.7797C14.1292 16.0734 14.6042 16.0734 14.8948 15.7797L15.7793 14.8954C16.0731 14.6017 16.0731 14.1267 15.7824 13.833ZM6.50048 10.499C4.29094 10.499 2.50018 8.71165 2.50018 6.49937C2.50018 4.29021 4.28781 2.49976 6.50048 2.49976C8.71001 2.49976 10.5008 4.28708 10.5008 6.49937C10.5008 8.70852 8.71314 10.499 6.50048 10.499Z" fill="var(--color-text)"></path></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div>
5
- <div class="field">
6
- <div id="tsd-toolbar-links"></div></div>
7
- <ul class="results">
8
- <li class="state loading">Preparing search index...</li>
9
- <li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">saltcorn-monorepo</a></div>
10
- <div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><rect x="1" y="3" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="7" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="11" width="14" height="2" fill="var(--color-text)"></rect></svg></a></div></div></header>
11
- <div class="container container-main">
12
- <div class="col-content">
13
- <div class="tsd-page-title">
14
- <ul class="tsd-breadcrumb">
15
- <li><a href="../index.html">saltcorn-monorepo</a></li>
16
- <li><a href="../modules/_saltcorn_db_common.html">@saltcorn/db-common</a></li>
17
- <li><a href="../modules/_saltcorn_db_common.single_tenant.html">single_tenant</a></li>
18
- <li><a href="_saltcorn_db_common.single_tenant.getTenantSchema.html">getTenantSchema</a></li></ul>
19
- <h1>Function getTenantSchema</h1></div>
20
- <section class="tsd-panel">
21
- <ul class="tsd-signatures">
22
- <li class="tsd-signature tsd-anchor-link" id="getTenantSchema"><span class="tsd-kind-call-signature">get<wbr/>Tenant<wbr/>Schema</span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><a href="#getTenantSchema" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><g stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round" id="icon-anchor"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5"></path></g></svg></a></li>
23
- <li class="tsd-description">
24
- <div class="tsd-comment tsd-typography"><p>Get tenant schema name</p>
25
- </div>
26
- <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">string</span></h4>
27
- <div class="tsd-comment tsd-typography"></div><aside class="tsd-sources">
28
- <ul>
29
- <li>Defined in <a href="https://github.com/saltcorn/saltcorn/blob/a8dc313e6f/packages/db-common/single-tenant.ts#L19">db-common/single-tenant.ts:19</a></li></ul></aside></li></ul></section></div>
30
- <div class="col-sidebar">
31
- <div class="page-menu">
32
- <div class="tsd-navigation settings">
33
- <details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
34
- <h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)" id="icon-chevronDown"></path></svg>Settings</h3></summary>
35
- <div class="tsd-accordion-details">
36
- <div class="tsd-filter-visibility">
37
- <h4 class="uppercase">Member Visibility</h4><form>
38
- <ul id="tsd-filter-options">
39
- <li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li>
40
- <li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li>
41
- <li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div>
42
- <div class="tsd-theme-toggle">
43
- <h4 class="uppercase">Theme</h4><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div>
44
- <div class="site-menu">
45
- <nav class="tsd-navigation"><a href="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><g id="icon-4"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-namespace)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><path d="M9.33 16V7.24H10.77L13.446 14.74C13.43 14.54 13.41 14.296 13.386 14.008C13.37 13.712 13.354 13.404 13.338 13.084C13.33 12.756 13.326 12.448 13.326 12.16V7.24H14.37V16H12.93L10.266 8.5C10.282 8.692 10.298 8.936 10.314 9.232C10.33 9.52 10.342 9.828 10.35 10.156C10.366 10.476 10.374 10.784 10.374 11.08V16H9.33Z" fill="var(--color-text)"></path></g></svg><span>saltcorn-<wbr/>monorepo</span></a>
46
- <ul class="tsd-small-nested-navigation">
47
- <li><a href="../modules/_saltcorn_admin_models.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-4"></use></svg><span>@saltcorn/admin-<wbr/>models</span></a></li>
48
- <li><a href="../modules/_saltcorn_common_code.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-4"></use></svg><span>@saltcorn/common-<wbr/>code</span></a></li>
49
- <li><a href="../modules/_saltcorn_data.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-4"></use></svg><span>@saltcorn/data</span></a></li>
50
- <li>
51
- <details class="tsd-index-accordion" open data-key="@saltcorn/db-common"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="#icon-chevronDown"></use></svg><a href="../modules/_saltcorn_db_common.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-4"></use></svg><span>@saltcorn/db-<wbr/>common</span></a></summary>
52
- <div class="tsd-accordion-details">
53
- <ul class="tsd-nested-navigation">
54
- <li><a href="../modules/_saltcorn_db_common.multi_tenant.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-4"></use></svg><span>multi_<wbr/>tenant</span></a></li>
55
- <li>
56
- <details class="tsd-index-accordion" open data-key="@saltcorn/db-common.single_tenant"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="#icon-chevronDown"></use></svg><a href="../modules/_saltcorn_db_common.single_tenant.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-4"></use></svg><span>single_<wbr/>tenant</span></a></summary>
57
- <div class="tsd-accordion-details">
58
- <ul class="tsd-nested-navigation">
59
- <li><a href="_saltcorn_db_common.single_tenant.enable_multi_tenant.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><g id="icon-64"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><path d="M9.39 16V7.24H14.55V8.224H10.446V11.128H14.238V12.112H10.47V16H9.39Z" fill="var(--color-text)"></path></g></svg><span>enable_<wbr/>multi_<wbr/>tenant</span></a></li>
60
- <li><a href="_saltcorn_db_common.single_tenant.getTenantSchema.html" class="current"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-64"></use></svg><span>get<wbr/>Tenant<wbr/>Schema</span></a></li>
61
- <li><a href="_saltcorn_db_common.single_tenant.init.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-64"></use></svg><span>init</span></a></li>
62
- <li><a href="_saltcorn_db_common.single_tenant.is_it_multi_tenant.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-64"></use></svg><span>is_<wbr/>it_<wbr/>multi_<wbr/>tenant</span></a></li>
63
- <li><a href="_saltcorn_db_common.single_tenant.runWithTenant.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-64"></use></svg><span>run<wbr/>With<wbr/>Tenant</span></a></li></ul></div></details></li>
64
- <li><a href="../types/_saltcorn_db_common.AggregationOptions.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><g id="icon-4194304"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-type-alias)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><path d="M11.31 16V8.224H8.91V7.24H14.79V8.224H12.39V16H11.31Z" fill="var(--color-text)"></path></g></svg><span>Aggregation<wbr/>Options</span></a></li>
65
- <li><a href="../types/_saltcorn_db_common.CoordOpts.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-4194304"></use></svg><span>Coord<wbr/>Opts</span></a></li>
66
- <li><a href="../types/_saltcorn_db_common.JoinField.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-4194304"></use></svg><span>Join<wbr/>Field</span></a></li>
67
- <li><a href="../types/_saltcorn_db_common.JoinFields.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-4194304"></use></svg><span>Join<wbr/>Fields</span></a></li>
68
- <li><a href="../types/_saltcorn_db_common.JoinOptions.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-4194304"></use></svg><span>Join<wbr/>Options</span></a></li>
69
- <li><a href="../types/_saltcorn_db_common.JsonPath.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-4194304"></use></svg><span>Json<wbr/>Path</span></a></li>
70
- <li><a href="../types/_saltcorn_db_common.JsonPathElem.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-4194304"></use></svg><span>Json<wbr/>Path<wbr/>Elem</span></a></li>
71
- <li><a href="../types/_saltcorn_db_common.Operator.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-4194304"></use></svg><span>Operator</span></a></li>
72
- <li><a href="../types/_saltcorn_db_common.PrimaryKeyValue.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-4194304"></use></svg><span>Primary<wbr/>Key<wbr/>Value</span></a></li>
73
- <li><a href="../types/_saltcorn_db_common.Row.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-4194304"></use></svg><span>Row</span></a></li>
74
- <li><a href="../types/_saltcorn_db_common.SelectOptions.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-4194304"></use></svg><span>Select<wbr/>Options</span></a></li>
75
- <li><a href="../types/_saltcorn_db_common.SqlAndValues.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-4194304"></use></svg><span>Sql<wbr/>And<wbr/>Values</span></a></li>
76
- <li><a href="../types/_saltcorn_db_common.SubselectOptions.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-4194304"></use></svg><span>Subselect<wbr/>Options</span></a></li>
77
- <li><a href="../types/_saltcorn_db_common.Value.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-4194304"></use></svg><span>Value</span></a></li>
78
- <li><a href="../types/_saltcorn_db_common.Where.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-4194304"></use></svg><span>Where</span></a></li>
79
- <li><a href="../modules/_saltcorn_db_common.html#tenants"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><g id="icon-1024"><rect fill="var(--color-icon-background)" stroke="#FF984D" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><path d="M9.354 16V7.24H12.174C12.99 7.24 13.638 7.476 14.118 7.948C14.606 8.412 14.85 9.036 14.85 9.82C14.85 10.604 14.606 11.232 14.118 11.704C13.638 12.168 12.99 12.4 12.174 12.4H10.434V16H9.354ZM10.434 11.428H12.174C12.646 11.428 13.022 11.284 13.302 10.996C13.59 10.7 13.734 10.308 13.734 9.82C13.734 9.324 13.59 8.932 13.302 8.644C13.022 8.356 12.646 8.212 12.174 8.212H10.434V11.428Z" fill="var(--color-text)"></path></g></svg><span>tenants</span></a></li>
80
- <li><a href="_saltcorn_db_common.buildInsertBulkSql.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-64"></use></svg><span>build<wbr/>Insert<wbr/>Bulk<wbr/>Sql</span></a></li>
81
- <li><a href="_saltcorn_db_common.buildInsertSql.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-64"></use></svg><span>build<wbr/>Insert<wbr/>Sql</span></a></li>
82
- <li><a href="_saltcorn_db_common.doCount.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-64"></use></svg><span>do<wbr/>Count</span></a></li>
83
- <li><a href="_saltcorn_db_common.doDeleteWhere.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-64"></use></svg><span>do<wbr/>Delete<wbr/>Where</span></a></li>
84
- <li><a href="_saltcorn_db_common.doListScTables.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-64"></use></svg><span>do<wbr/>List<wbr/>Sc<wbr/>Tables</span></a></li>
85
- <li><a href="_saltcorn_db_common.doListTables.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-64"></use></svg><span>do<wbr/>List<wbr/>Tables</span></a></li>
86
- <li><a href="_saltcorn_db_common.doListUserDefinedTables.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-64"></use></svg><span>do<wbr/>List<wbr/>User<wbr/>Defined<wbr/>Tables</span></a></li>
87
- <li><a href="_saltcorn_db_common.do_add_index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-64"></use></svg><span>do_<wbr/>add_<wbr/>index</span></a></li>
88
- <li><a href="_saltcorn_db_common.do_drop_index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-64"></use></svg><span>do_<wbr/>drop_<wbr/>index</span></a></li>
89
- <li><a href="_saltcorn_db_common.ftsFieldsSqlExpr.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-64"></use></svg><span>fts<wbr/>Fields<wbr/>Sql<wbr/>Expr</span></a></li>
90
- <li><a href="_saltcorn_db_common.mkSelectOptions.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-64"></use></svg><span>mk<wbr/>Select<wbr/>Options</span></a></li>
91
- <li><a href="_saltcorn_db_common.mkVal.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-64"></use></svg><span>mk<wbr/>Val</span></a></li>
92
- <li><a href="_saltcorn_db_common.mkWhere.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-64"></use></svg><span>mk<wbr/>Where</span></a></li>
93
- <li><a href="_saltcorn_db_common.orderByIsObject.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-64"></use></svg><span>order<wbr/>By<wbr/>Is<wbr/>Object</span></a></li>
94
- <li><a href="_saltcorn_db_common.orderByIsOperator.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-64"></use></svg><span>order<wbr/>By<wbr/>Is<wbr/>Operator</span></a></li>
95
- <li><a href="_saltcorn_db_common.prefixFieldsInWhere.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-64"></use></svg><span>prefix<wbr/>Fields<wbr/>In<wbr/>Where</span></a></li>
96
- <li><a href="_saltcorn_db_common.reprAsJson.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-64"></use></svg><span>repr<wbr/>As<wbr/>Json</span></a></li>
97
- <li><a href="_saltcorn_db_common.sqlBinOp.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-64"></use></svg><span>sql<wbr/>Bin<wbr/>Op</span></a></li>
98
- <li><a href="_saltcorn_db_common.sqlFun.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-64"></use></svg><span>sql<wbr/>Fun</span></a></li>
99
- <li><a href="_saltcorn_db_common.sqlsanitize.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-64"></use></svg><span>sqlsanitize</span></a></li>
100
- <li><a href="_saltcorn_db_common.sqlsanitizeAllowDots.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-64"></use></svg><span>sqlsanitize<wbr/>Allow<wbr/>Dots</span></a></li>
101
- <li><a href="_saltcorn_db_common.subSelectWhere.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-64"></use></svg><span>sub<wbr/>Select<wbr/>Where</span></a></li></ul></div></details></li>
102
- <li><a href="../modules/_saltcorn_markup.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-4"></use></svg><span>@saltcorn/markup</span></a></li>
103
- <li><a href="../modules/_saltcorn_mobile_builder.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-4"></use></svg><span>@saltcorn/mobile-<wbr/>builder</span></a></li>
104
- <li><a href="../modules/_saltcorn_sqlite.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-4"></use></svg><span>@saltcorn/sqlite</span></a></li>
105
- <li><a href="../modules/_saltcorn_sqlite_mobile.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-4"></use></svg><span>@saltcorn/sqlite-<wbr/>mobile</span></a></li>
106
- <li><a href="../modules/_saltcorn_types.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-4"></use></svg><span>@saltcorn/types</span></a></li></ul></nav></div></div></div>
107
- <div class="tsd-generator">
108
- <p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></div>
109
- <div class="overlay"></div></body></html>