@saltcorn/server 1.6.0-beta.4 → 1.6.0-beta.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +8 -0
- package/app.js +10 -4
- package/auth/routes.js +108 -60
- package/docs/assets/hierarchy.js +1 -1
- package/docs/assets/navigation.js +1 -1
- package/docs/assets/search.js +1 -1
- package/docs/classes/_saltcorn_admin-models.models_snapshot.Snapshot.html +2 -2
- package/docs/classes/_saltcorn_common-code.relations_relation.Relation.html +3 -3
- package/docs/classes/_saltcorn_common-code.relations_relations_finder.RelationsFinder.html +5 -5
- package/docs/classes/_saltcorn_data.diagram_cy_raster.CytoscapeRaster.html +4 -4
- package/docs/classes/_saltcorn_data.diagram_nodes_dummy_node.DummyNode.html +4 -4
- package/docs/classes/_saltcorn_data.diagram_nodes_node.Node.html +4 -4
- package/docs/classes/_saltcorn_data.diagram_nodes_page_node.PageNode.html +4 -4
- package/docs/classes/_saltcorn_data.diagram_nodes_table_node.TableNode.html +4 -4
- package/docs/classes/_saltcorn_data.diagram_nodes_trigger_node.TriggerNode.html +4 -4
- package/docs/classes/_saltcorn_data.diagram_nodes_view_node.ViewNode.html +4 -4
- package/docs/classes/_saltcorn_data.mobile-mocks_node_async_hooks.AsyncLocalStorage.html +2 -2
- package/docs/classes/_saltcorn_data.models_crash.Crash.html +2 -2
- package/docs/classes/_saltcorn_data.models_eventlog.EventLog.html +2 -2
- package/docs/classes/_saltcorn_data.models_field.Field.html +9 -9
- package/docs/classes/_saltcorn_data.models_fieldrepeat.FieldRepeat.html +2 -2
- package/docs/classes/_saltcorn_data.models_file.File.html +21 -21
- package/docs/classes/_saltcorn_data.models_form.Form.html +2 -2
- package/docs/classes/_saltcorn_data.models_internal_mail_queue.MailQueue.html +4 -4
- package/docs/classes/_saltcorn_data.models_internal_push_message_helper.PushMessageHelper.html +7 -7
- package/docs/classes/_saltcorn_data.models_library.Library.html +2 -2
- package/docs/classes/_saltcorn_data.models_model.Model.html +2 -2
- package/docs/classes/_saltcorn_data.models_model_instance.ModelInstance.html +2 -2
- package/docs/classes/_saltcorn_data.models_notification.Notification.html +2 -2
- package/docs/classes/_saltcorn_data.models_page.Page.html +12 -11
- package/docs/classes/_saltcorn_data.models_page_group.PageGroup.html +16 -16
- package/docs/classes/_saltcorn_data.models_page_group_member.PageGroupMember.html +8 -8
- package/docs/classes/_saltcorn_data.models_plugin.Plugin.html +44 -10
- package/docs/classes/_saltcorn_data.models_role.Role.html +2 -2
- package/docs/classes/_saltcorn_data.models_table.Table.html +67 -65
- package/docs/classes/_saltcorn_data.models_table_constraints.TableConstraint.html +2 -2
- package/docs/classes/_saltcorn_data.models_tag.Tag.html +2 -2
- package/docs/classes/_saltcorn_data.models_tag_entry.TagEntry.html +2 -2
- package/docs/classes/_saltcorn_data.models_trigger.Trigger.html +21 -20
- package/docs/classes/_saltcorn_data.models_user.User.html +32 -32
- package/docs/classes/_saltcorn_data.models_view.View.html +16 -15
- package/docs/classes/_saltcorn_data.models_workflow.Workflow.html +2 -2
- package/docs/classes/_saltcorn_data.models_workflow_run.WorkflowRun.html +2 -2
- package/docs/classes/_saltcorn_data.models_workflow_step.WorkflowStep.html +2 -2
- package/docs/classes/_saltcorn_data.models_workflow_trace.MetaData.html +2 -2
- package/docs/classes/_saltcorn_data.models_workflow_trace.WorkflowTrace.html +2 -2
- package/docs/classes/_saltcorn_mobile-builder.mobile-builder.MobileBuilder.html +2 -2
- package/docs/classes/_saltcorn_mobile-builder.utils_capacitor-helper.CapacitorHelper.html +2 -2
- package/docs/enums/_saltcorn_common-code.relations_relation_types.RelationType.html +2 -2
- package/docs/enums/_saltcorn_common-code.relations_relation_types.ViewDisplayType.html +2 -2
- package/docs/functions/_saltcorn_admin-models.models_config-check.runConfigurationCheck.html +1 -1
- package/docs/functions/_saltcorn_common-code.relations_relation_helpers.buildRelationPath.html +1 -1
- package/docs/functions/_saltcorn_common-code.relations_relation_helpers.buildTableCaches.html +1 -1
- package/docs/functions/_saltcorn_common-code.relations_relation_helpers.parseLegacyRelation.html +1 -1
- package/docs/functions/_saltcorn_common-code.relations_relation_helpers.parseRelationPath.html +1 -1
- package/docs/functions/_saltcorn_common-code.tests_test_data.fixturesData.html +1 -1
- package/docs/functions/_saltcorn_common-code.tests_test_data.withAnotherUserField.html +1 -1
- package/docs/functions/_saltcorn_common-code.tests_test_data.withKeyFromLayerThree.html +1 -1
- package/docs/functions/_saltcorn_common-code.tests_test_data.withKeyFromLayerTwo.html +1 -1
- package/docs/functions/_saltcorn_common-code.tests_test_data.withMultipleInbounds.html +1 -1
- package/docs/functions/_saltcorn_common-code.tests_test_data.withSecondTopicField.html +1 -1
- package/docs/functions/_saltcorn_common-code.tests_test_data.withSimplePostTopicrelation.html +1 -1
- package/docs/functions/_saltcorn_data.base-plugin_viewtemplates_viewable_fields.action_link.html +1 -1
- package/docs/functions/_saltcorn_data.base-plugin_viewtemplates_viewable_fields.action_url.html +1 -1
- package/docs/functions/_saltcorn_data.base-plugin_viewtemplates_viewable_fields.fill_presets.html +1 -1
- package/docs/functions/_saltcorn_data.base-plugin_viewtemplates_viewable_fields.getForm.html +1 -1
- package/docs/functions/_saltcorn_data.base-plugin_viewtemplates_viewable_fields.get_view_link_query.html +1 -1
- package/docs/functions/_saltcorn_data.base-plugin_viewtemplates_viewable_fields.get_viewable_fields.html +1 -1
- package/docs/functions/_saltcorn_data.base-plugin_viewtemplates_viewable_fields.get_viewable_fields_from_layout.html +1 -1
- package/docs/functions/_saltcorn_data.base-plugin_viewtemplates_viewable_fields.make_link.html +1 -1
- package/docs/functions/_saltcorn_data.base-plugin_viewtemplates_viewable_fields.objToQueryString.html +1 -1
- package/docs/functions/_saltcorn_data.base-plugin_viewtemplates_viewable_fields.parse_view_select.html +1 -1
- package/docs/functions/_saltcorn_data.base-plugin_viewtemplates_viewable_fields.setDateLocales.html +1 -1
- package/docs/functions/_saltcorn_data.base-plugin_viewtemplates_viewable_fields.splitUniques.html +1 -1
- package/docs/functions/_saltcorn_data.base-plugin_viewtemplates_viewable_fields.standardBlockDispatch.html +1 -1
- package/docs/functions/_saltcorn_data.base-plugin_viewtemplates_viewable_fields.standardLayoutRowVisitor.html +1 -1
- package/docs/functions/_saltcorn_data.base-plugin_viewtemplates_viewable_fields.transformForm.html +1 -1
- package/docs/functions/_saltcorn_data.base-plugin_viewtemplates_viewable_fields.updateViewSelect.html +1 -1
- package/docs/functions/_saltcorn_data.base-plugin_viewtemplates_viewable_fields.view_linker.html +1 -1
- package/docs/functions/_saltcorn_data.db_connect_mobile.getConnectObject.html +1 -1
- package/docs/functions/_saltcorn_data.db_reset_schema.reset.html +1 -1
- package/docs/functions/_saltcorn_data.diagram_cy_generate_utils.generateCyCode.html +1 -1
- package/docs/functions/_saltcorn_data.diagram_cy_generate_utils.genereateCyCfg.html +1 -1
- package/docs/functions/_saltcorn_data.diagram_node_extract_utils.buildObjectTrees.html +1 -1
- package/docs/functions/_saltcorn_data.diagram_node_extract_utils.extractFromColumns.html +1 -1
- package/docs/functions/_saltcorn_data.diagram_node_extract_utils.extractFromLayout.html +1 -1
- package/docs/functions/_saltcorn_data.diagram_node_extract_utils.extractViewToCreate.html +1 -1
- package/docs/functions/_saltcorn_data.migrate.create_blank_migration.html +1 -1
- package/docs/functions/_saltcorn_data.migrate.getMigrationsInDB.html +1 -1
- package/docs/functions/_saltcorn_data.migrate.migrate.html +1 -1
- package/docs/functions/_saltcorn_data.migrations_202102091312.js.html +1 -1
- package/docs/functions/_saltcorn_data.migrations_202210051058.js.html +1 -1
- package/docs/functions/_saltcorn_data.migrations_202210101540.js.html +1 -1
- package/docs/functions/_saltcorn_data.migrations_202304281224.js.html +1 -1
- package/docs/functions/_saltcorn_data.migrations_202307211459.js.html +1 -1
- package/docs/functions/_saltcorn_data.migrations_202502131103.js.html +1 -1
- package/docs/functions/_saltcorn_data.migrations_202508011455.js.html +1 -1
- package/docs/functions/_saltcorn_data.migrations_202510152058.js.html +1 -1
- package/docs/functions/_saltcorn_data.migrations_202603101553.sql_pg.html +1 -1
- package/docs/functions/_saltcorn_data.migrations_202604111200.sql_pg.html +1 -0
- package/docs/functions/_saltcorn_data.mobile-mocks_node_child_process.execSync.html +1 -1
- package/docs/functions/_saltcorn_data.mobile-mocks_node_fs.createReadStream.html +1 -1
- package/docs/functions/_saltcorn_data.mobile-mocks_node_fs.readdirSync.html +1 -1
- package/docs/functions/_saltcorn_data.mobile-mocks_node_fs.writeFileSync.html +1 -1
- package/docs/functions/_saltcorn_data.mobile-mocks_node_fs_promises.mkdir.html +1 -1
- package/docs/functions/_saltcorn_data.mobile-mocks_node_fs_promises.readFile.html +1 -1
- package/docs/functions/_saltcorn_data.mobile-mocks_node_fs_promises.readdir.html +1 -1
- package/docs/functions/_saltcorn_data.mobile-mocks_node_fs_promises.stat.html +1 -1
- package/docs/functions/_saltcorn_data.mobile-mocks_node_fs_promises.unlink.html +1 -1
- package/docs/functions/_saltcorn_data.mobile-mocks_node_fs_promises.writeFile.html +1 -1
- package/docs/functions/_saltcorn_data.mobile-mocks_node_latest-version.latestVersion.html +1 -1
- package/docs/functions/_saltcorn_data.mobile-mocks_node_v8.deserialize.html +1 -1
- package/docs/functions/_saltcorn_data.mobile-mocks_node_v8.serialize.html +1 -1
- package/docs/functions/_saltcorn_data.mobile-mocks_npm_env-paths.envPaths.html +1 -1
- package/docs/functions/_saltcorn_data.model-helper.get_predictor.html +1 -1
- package/docs/functions/_saltcorn_data.model-helper.run_jupyter_model.html +1 -1
- package/docs/functions/_saltcorn_data.model-helper.shorten_trackback.html +1 -1
- package/docs/functions/_saltcorn_data.model-helper.write_csv.html +1 -1
- package/docs/functions/_saltcorn_data.models_internal_async_json_stream.async_json_stream.html +1 -1
- package/docs/functions/_saltcorn_data.models_internal_query.aggregation_query_fields.html +1 -1
- package/docs/functions/_saltcorn_data.models_internal_query.getAggAndField.html +1 -1
- package/docs/functions/_saltcorn_data.models_internal_query.joinfield_renamer.html +1 -1
- package/docs/functions/_saltcorn_data.models_internal_query.process_aggregations.html +1 -1
- package/docs/functions/_saltcorn_data.models_internal_s3_helpers.buildKeyFromRelative.html +1 -1
- package/docs/functions/_saltcorn_data.models_internal_s3_helpers.copyObject.html +1 -1
- package/docs/functions/_saltcorn_data.models_internal_s3_helpers.deleteObject.html +1 -1
- package/docs/functions/_saltcorn_data.models_internal_s3_helpers.downloadBuffer.html +1 -1
- package/docs/functions/_saltcorn_data.models_internal_s3_helpers.getPublicFileUrl.html +1 -1
- package/docs/functions/_saltcorn_data.models_internal_s3_helpers.getResolvedBucket.html +1 -1
- package/docs/functions/_saltcorn_data.models_internal_s3_helpers.getS3Client.html +1 -1
- package/docs/functions/_saltcorn_data.models_internal_s3_helpers.getServeUrl.html +1 -1
- package/docs/functions/_saltcorn_data.models_internal_s3_helpers.getSignedFileUrl.html +1 -1
- package/docs/functions/_saltcorn_data.models_internal_s3_helpers.headObject.html +1 -1
- package/docs/functions/_saltcorn_data.models_internal_s3_helpers.isS3Enabled.html +1 -1
- package/docs/functions/_saltcorn_data.models_internal_s3_helpers.listS3Folder.html +1 -1
- package/docs/functions/_saltcorn_data.models_internal_s3_helpers.publicUrlToRelativePath.html +1 -1
- package/docs/functions/_saltcorn_data.models_internal_s3_helpers.relativeKeyToPath.html +1 -1
- package/docs/functions/_saltcorn_data.models_internal_s3_helpers.setObjectMetadata.html +1 -1
- package/docs/functions/_saltcorn_data.models_internal_s3_helpers.uploadBuffer.html +1 -1
- package/docs/functions/_saltcorn_data.models_internal_table_helper.boolExamples.html +1 -1
- package/docs/functions/_saltcorn_data.models_internal_table_helper.colorExamples.html +1 -1
- package/docs/functions/_saltcorn_data.models_internal_table_helper.floatExamples.html +1 -1
- package/docs/functions/_saltcorn_data.models_internal_table_helper.get_formula_examples.html +1 -1
- package/docs/functions/_saltcorn_data.models_internal_table_helper.intExamples.html +1 -1
- package/docs/functions/_saltcorn_data.models_internal_table_helper.stringExamples.html +1 -1
- package/docs/functions/_saltcorn_data.plugin-helper.build_schema_data.html +1 -1
- package/docs/functions/_saltcorn_data.plugin-helper.calcfldViewConfig.html +1 -1
- package/docs/functions/_saltcorn_data.plugin-helper.calcfldViewOptions.html +1 -1
- package/docs/functions/_saltcorn_data.plugin-helper.calcrelViewOptions.html +1 -1
- package/docs/functions/_saltcorn_data.plugin-helper.displayType.html +1 -1
- package/docs/functions/_saltcorn_data.plugin-helper.field_picker_fields.html +1 -1
- package/docs/functions/_saltcorn_data.plugin-helper.generate_joined_query.html +1 -1
- package/docs/functions/_saltcorn_data.plugin-helper.getActionConfigFields.html +1 -1
- package/docs/functions/_saltcorn_data.plugin-helper.get_child_views.html +1 -1
- package/docs/functions/_saltcorn_data.plugin-helper.get_inbound_relation_opts.html +1 -1
- package/docs/functions/_saltcorn_data.plugin-helper.get_inbound_self_relation_opts.html +1 -1
- package/docs/functions/_saltcorn_data.plugin-helper.get_link_view_opts.html +1 -1
- package/docs/functions/_saltcorn_data.plugin-helper.get_many_to_many_relation_opts.html +1 -1
- package/docs/functions/_saltcorn_data.plugin-helper.get_parent_views.html +1 -1
- package/docs/functions/_saltcorn_data.plugin-helper.initial_config_all_fields.html +1 -1
- package/docs/functions/_saltcorn_data.plugin-helper.json_list_to_external_table.html +1 -1
- package/docs/functions/_saltcorn_data.plugin-helper.link_view.html +1 -1
- package/docs/functions/_saltcorn_data.plugin-helper.pathToState.html +1 -1
- package/docs/functions/_saltcorn_data.plugin-helper.picked_fields_to_query.html +1 -1
- package/docs/functions/_saltcorn_data.plugin-helper.readState.html +1 -1
- package/docs/functions/_saltcorn_data.plugin-helper.readStateStrict.html +1 -1
- package/docs/functions/_saltcorn_data.plugin-helper.runCollabEvents.html +1 -1
- package/docs/functions/_saltcorn_data.plugin-helper.run_action_column.html +1 -1
- package/docs/functions/_saltcorn_data.plugin-helper.stateFieldsToQuery.html +1 -1
- package/docs/functions/_saltcorn_data.plugin-helper.stateFieldsToWhere.html +1 -1
- package/docs/functions/_saltcorn_data.plugin-helper.stateToQueryString.html +1 -1
- package/docs/functions/_saltcorn_data.plugin-helper.strictParseInt.html +1 -1
- package/docs/functions/_saltcorn_data.plugin-testing.auto_test_plugin.html +1 -1
- package/docs/functions/_saltcorn_data.plugin-testing.check_view_columns.html +1 -1
- package/docs/functions/_saltcorn_data.plugin-testing.generate_attributes.html +1 -1
- package/docs/functions/_saltcorn_data.standard-menu.create_standard_menu.html +1 -1
- package/docs/functions/_saltcorn_data.tests_assertions.assertIsErrorMsg.html +1 -1
- package/docs/functions/_saltcorn_data.tests_assertions.assertIsErrorsMsg.html +1 -1
- package/docs/functions/_saltcorn_data.tests_assertions.assertIsRow.html +1 -1
- package/docs/functions/_saltcorn_data.tests_assertions.assertIsSet.html +1 -1
- package/docs/functions/_saltcorn_data.tests_assertions.assertIsType.html +1 -1
- package/docs/functions/_saltcorn_data.tests_assertions.assertsIsSuccessMessage.html +1 -1
- package/docs/functions/_saltcorn_data.tests_assertions.assertsObjectIsUser.html +1 -1
- package/docs/functions/_saltcorn_data.tests_common_helpers.createAnotherUserField.html +1 -1
- package/docs/functions/_saltcorn_data.tests_common_helpers.createKeyFromLevelTwo.html +1 -1
- package/docs/functions/_saltcorn_data.tests_common_helpers.createLevelThreeInbound.html +1 -1
- package/docs/functions/_saltcorn_data.tests_common_helpers.createMultipleInbounds.html +1 -1
- package/docs/functions/_saltcorn_data.tests_common_helpers.createSecondTopicField.html +1 -1
- package/docs/functions/_saltcorn_data.tests_common_helpers.prepareEmployeeDepartment.html +1 -1
- package/docs/functions/_saltcorn_data.tests_common_helpers.prepareSimpleTopicPostRelation.html +1 -1
- package/docs/functions/_saltcorn_data.tests_remote_query_helper.deleteViewFromServer.html +1 -1
- package/docs/functions/_saltcorn_data.tests_remote_query_helper.prepareQueryEnviroment.html +1 -1
- package/docs/functions/_saltcorn_data.tests_remote_query_helper.sendViewToServer.html +1 -1
- package/docs/functions/_saltcorn_data.translate.hasLLM.html +1 -1
- package/docs/functions/_saltcorn_data.translate.translate.html +1 -1
- package/docs/functions/_saltcorn_db-common.internal.ftsFieldsSqlExpr.html +1 -1
- package/docs/functions/_saltcorn_db-common.internal.mkSelectOptions.html +1 -1
- package/docs/functions/_saltcorn_db-common.internal.mkWhere.html +1 -1
- package/docs/functions/_saltcorn_db-common.internal.orderByIsObject.html +1 -1
- package/docs/functions/_saltcorn_db-common.internal.orderByIsOperator.html +1 -1
- package/docs/functions/_saltcorn_db-common.internal.prefixFieldsInWhere.html +1 -1
- package/docs/functions/_saltcorn_db-common.internal.sqlBinOp.html +1 -1
- package/docs/functions/_saltcorn_db-common.internal.sqlFun.html +1 -1
- package/docs/functions/_saltcorn_db-common.internal.sqlsanitize.html +1 -1
- package/docs/functions/_saltcorn_db-common.internal.sqlsanitizeAllowDots.html +1 -1
- package/docs/functions/_saltcorn_db-common.internal.subSelectWhere.html +1 -1
- package/docs/functions/_saltcorn_db-common.multi-tenant.enable_multi_tenant.html +1 -1
- package/docs/functions/_saltcorn_db-common.multi-tenant.getRequestContext.html +1 -1
- package/docs/functions/_saltcorn_db-common.multi-tenant.getTenantSchema.html +1 -1
- package/docs/functions/_saltcorn_db-common.multi-tenant.init.html +1 -1
- package/docs/functions/_saltcorn_db-common.multi-tenant.is_it_multi_tenant.html +1 -1
- package/docs/functions/_saltcorn_db-common.multi-tenant.runWithTenant.html +1 -1
- package/docs/functions/_saltcorn_db-common.sqlite-commons.buildInsertBulkSql.html +1 -1
- package/docs/functions/_saltcorn_db-common.sqlite-commons.buildInsertSql.html +1 -1
- package/docs/functions/_saltcorn_db-common.sqlite-commons.commitAndBeginNewTransaction.html +1 -1
- package/docs/functions/_saltcorn_db-common.sqlite-commons.doCount.html +1 -1
- package/docs/functions/_saltcorn_db-common.sqlite-commons.doDeleteWhere.html +1 -1
- package/docs/functions/_saltcorn_db-common.sqlite-commons.doListScTables.html +1 -1
- package/docs/functions/_saltcorn_db-common.sqlite-commons.doListTables.html +1 -1
- package/docs/functions/_saltcorn_db-common.sqlite-commons.doListUserDefinedTables.html +1 -1
- package/docs/functions/_saltcorn_db-common.sqlite-commons.do_add_index.html +1 -1
- package/docs/functions/_saltcorn_db-common.sqlite-commons.do_drop_index.html +1 -1
- package/docs/functions/_saltcorn_db-common.sqlite-commons.mkVal.html +1 -1
- package/docs/functions/_saltcorn_db-common.sqlite-commons.openOrUseTransaction.html +1 -1
- package/docs/functions/_saltcorn_db-common.sqlite-commons.reprAsJson.html +1 -1
- package/docs/functions/_saltcorn_db-common.sqlite-commons.slugify.html +1 -1
- package/docs/functions/_saltcorn_db-common.sqlite-commons.tryCatchInTransaction.html +1 -1
- package/docs/functions/_saltcorn_db-common.sqlite-commons.whenTransactionisFree.html +1 -1
- package/docs/functions/_saltcorn_db-common.sqlite-commons.withTransaction.html +1 -1
- package/docs/functions/_saltcorn_markup.mktag.mkTag.html +1 -1
- package/docs/functions/_saltcorn_markup.tabs.tabs.html +1 -1
- package/docs/functions/_saltcorn_markup.workflow.renderWorkflow.html +1 -1
- package/docs/functions/_saltcorn_mobile-builder.utils_common-build-utils.androidFeatures.html +1 -1
- package/docs/functions/_saltcorn_mobile-builder.utils_common-build-utils.androidPermissions.html +1 -1
- package/docs/functions/_saltcorn_mobile-builder.utils_common-build-utils.buildTablesFile.html +1 -1
- package/docs/functions/_saltcorn_mobile-builder.utils_common-build-utils.copyPrepopulatedDb.html +1 -1
- package/docs/functions/_saltcorn_mobile-builder.utils_common-build-utils.copyServerFiles.html +1 -1
- package/docs/functions/_saltcorn_mobile-builder.utils_common-build-utils.copyShareExtFiles.html +1 -1
- package/docs/functions/_saltcorn_mobile-builder.utils_common-build-utils.copySiteLogo.html +1 -1
- package/docs/functions/_saltcorn_mobile-builder.utils_common-build-utils.copyTranslationFiles.html +1 -1
- package/docs/functions/_saltcorn_mobile-builder.utils_common-build-utils.createSqliteDb.html +1 -1
- package/docs/functions/_saltcorn_mobile-builder.utils_common-build-utils.extractDomain.html +1 -1
- package/docs/functions/_saltcorn_mobile-builder.utils_common-build-utils.generateAndroidVersionCode.html +1 -1
- package/docs/functions/_saltcorn_mobile-builder.utils_common-build-utils.hasAuthMethod.html +1 -1
- package/docs/functions/_saltcorn_mobile-builder.utils_common-build-utils.modifyAndroidManifest.html +1 -1
- package/docs/functions/_saltcorn_mobile-builder.utils_common-build-utils.modifyAppDelegate.html +1 -1
- package/docs/functions/_saltcorn_mobile-builder.utils_common-build-utils.modifyConfigXml.html +1 -1
- package/docs/functions/_saltcorn_mobile-builder.utils_common-build-utils.modifyGradleConfig.html +1 -1
- package/docs/functions/_saltcorn_mobile-builder.utils_common-build-utils.modifyInfoPlist.html +1 -1
- package/docs/functions/_saltcorn_mobile-builder.utils_common-build-utils.modifyShareViewController.html +1 -1
- package/docs/functions/_saltcorn_mobile-builder.utils_common-build-utils.modifyXcodeProjectFile.html +1 -1
- package/docs/functions/_saltcorn_mobile-builder.utils_common-build-utils.prepAppIcon.html +1 -1
- package/docs/functions/_saltcorn_mobile-builder.utils_common-build-utils.prepareAppIcon.html +1 -1
- package/docs/functions/_saltcorn_mobile-builder.utils_common-build-utils.prepareBuildDir.html +1 -1
- package/docs/functions/_saltcorn_mobile-builder.utils_common-build-utils.prepareExportOptionsPlist.html +1 -1
- package/docs/functions/_saltcorn_mobile-builder.utils_common-build-utils.prepareSplashIcon.html +1 -1
- package/docs/functions/_saltcorn_mobile-builder.utils_common-build-utils.prepareSplashPage.html +1 -1
- package/docs/functions/_saltcorn_mobile-builder.utils_common-build-utils.runAddEntitlementsScript.html +1 -1
- package/docs/functions/_saltcorn_mobile-builder.utils_common-build-utils.writeCapacitorConfig.html +1 -1
- package/docs/functions/_saltcorn_mobile-builder.utils_common-build-utils.writeCfgFile.html +1 -1
- package/docs/functions/_saltcorn_mobile-builder.utils_common-build-utils.writeDataExtractionRules.html +1 -1
- package/docs/functions/_saltcorn_mobile-builder.utils_common-build-utils.writeEntitlementsPlist.html +1 -1
- package/docs/functions/_saltcorn_mobile-builder.utils_common-build-utils.writeNetworkSecurityConfig.html +1 -1
- package/docs/functions/_saltcorn_mobile-builder.utils_common-build-utils.writePodfile.html +1 -1
- package/docs/functions/_saltcorn_mobile-builder.utils_common-build-utils.writePrivacyInfo.html +1 -1
- package/docs/functions/_saltcorn_mobile-builder.utils_package-bundle-utils.bundleMobileAppCode.html +1 -1
- package/docs/functions/_saltcorn_mobile-builder.utils_package-bundle-utils.bundlePackagesAndPlugins.html +1 -1
- package/docs/functions/_saltcorn_mobile-builder.utils_package-bundle-utils.copyOptionalSource.html +1 -1
- package/docs/functions/_saltcorn_mobile-builder.utils_package-bundle-utils.copyPluginMobileAppDirs.html +1 -1
- package/docs/functions/_saltcorn_mobile-builder.utils_package-bundle-utils.copyPublicDirs.html +1 -1
- package/docs/functions/_saltcorn_sqlite-mobile.sqlite_capacitor.add_index.html +1 -1
- package/docs/functions/_saltcorn_sqlite-mobile.sqlite_capacitor.add_unique_constraint.html +1 -1
- package/docs/functions/_saltcorn_sqlite-mobile.sqlite_capacitor.count.html +1 -1
- package/docs/functions/_saltcorn_sqlite-mobile.sqlite_capacitor.deleteWhere.html +1 -1
- package/docs/functions/_saltcorn_sqlite-mobile.sqlite_capacitor.drop_index.html +1 -1
- package/docs/functions/_saltcorn_sqlite-mobile.sqlite_capacitor.drop_reset_schema.html +1 -1
- package/docs/functions/_saltcorn_sqlite-mobile.sqlite_capacitor.drop_unique_constraint.html +1 -1
- package/docs/functions/_saltcorn_sqlite-mobile.sqlite_capacitor.init.html +1 -1
- package/docs/functions/_saltcorn_sqlite-mobile.sqlite_capacitor.insert.html +1 -1
- package/docs/functions/_saltcorn_sqlite-mobile.sqlite_capacitor.insertRows.html +1 -1
- package/docs/functions/_saltcorn_sqlite-mobile.sqlite_capacitor.listScTables.html +1 -1
- package/docs/functions/_saltcorn_sqlite-mobile.sqlite_capacitor.listTables.html +1 -1
- package/docs/functions/_saltcorn_sqlite-mobile.sqlite_capacitor.listUserDefinedTables.html +1 -1
- package/docs/functions/_saltcorn_sqlite-mobile.sqlite_capacitor.query.html +1 -1
- package/docs/functions/_saltcorn_sqlite-mobile.sqlite_capacitor.select.html +1 -1
- package/docs/functions/_saltcorn_sqlite-mobile.sqlite_capacitor.selectMaybeOne.html +1 -1
- package/docs/functions/_saltcorn_sqlite-mobile.sqlite_capacitor.selectOne.html +1 -1
- package/docs/functions/_saltcorn_sqlite-mobile.sqlite_capacitor.setConnectionObject.html +1 -1
- package/docs/functions/_saltcorn_sqlite-mobile.sqlite_capacitor.tableExists.html +1 -1
- package/docs/functions/_saltcorn_sqlite-mobile.sqlite_capacitor.time.html +1 -1
- package/docs/functions/_saltcorn_sqlite-mobile.sqlite_capacitor.update.html +1 -1
- package/docs/functions/_saltcorn_sqlite.sqlite.add_index.html +1 -1
- package/docs/functions/_saltcorn_sqlite.sqlite.add_unique_constraint.html +1 -1
- package/docs/functions/_saltcorn_sqlite.sqlite.begin.html +1 -1
- package/docs/functions/_saltcorn_sqlite.sqlite.changeConnection.html +1 -1
- package/docs/functions/_saltcorn_sqlite.sqlite.close.html +1 -1
- package/docs/functions/_saltcorn_sqlite.sqlite.commit.html +1 -1
- package/docs/functions/_saltcorn_sqlite.sqlite.count.html +1 -1
- package/docs/functions/_saltcorn_sqlite.sqlite.deleteWhere.html +1 -1
- package/docs/functions/_saltcorn_sqlite.sqlite.dropTable.html +1 -1
- package/docs/functions/_saltcorn_sqlite.sqlite.dropTables.html +1 -1
- package/docs/functions/_saltcorn_sqlite.sqlite.drop_index.html +1 -1
- package/docs/functions/_saltcorn_sqlite.sqlite.drop_reset_schema.html +1 -1
- package/docs/functions/_saltcorn_sqlite.sqlite.drop_unique_constraint.html +1 -1
- package/docs/functions/_saltcorn_sqlite.sqlite.getVersion.html +1 -1
- package/docs/functions/_saltcorn_sqlite.sqlite.get_db_filepath.html +1 -1
- package/docs/functions/_saltcorn_sqlite.sqlite.get_sql_logging.html +1 -1
- package/docs/functions/_saltcorn_sqlite.sqlite.init.html +1 -1
- package/docs/functions/_saltcorn_sqlite.sqlite.insert.html +1 -1
- package/docs/functions/_saltcorn_sqlite.sqlite.listScTables.html +1 -1
- package/docs/functions/_saltcorn_sqlite.sqlite.listTables.html +1 -1
- package/docs/functions/_saltcorn_sqlite.sqlite.listUserDefinedTables.html +1 -1
- package/docs/functions/_saltcorn_sqlite.sqlite.query.html +1 -1
- package/docs/functions/_saltcorn_sqlite.sqlite.rollback.html +1 -1
- package/docs/functions/_saltcorn_sqlite.sqlite.select.html +1 -1
- package/docs/functions/_saltcorn_sqlite.sqlite.selectMaybeOne.html +1 -1
- package/docs/functions/_saltcorn_sqlite.sqlite.selectOne.html +1 -1
- package/docs/functions/_saltcorn_sqlite.sqlite.set_sql_logging.html +1 -1
- package/docs/functions/_saltcorn_sqlite.sqlite.sql_log.html +1 -1
- package/docs/functions/_saltcorn_sqlite.sqlite.update.html +1 -1
- package/docs/functions/_saltcorn_sqlite.sqlite.updateWhere.html +1 -1
- package/docs/functions/_saltcorn_types.base_types.instanceOWithHtmlFile.html +1 -1
- package/docs/functions/_saltcorn_types.base_types.instanceOfFieldViewEdit.html +1 -1
- package/docs/functions/_saltcorn_types.base_types.instanceOfFieldViewShow.html +1 -1
- package/docs/functions/_saltcorn_types.base_types.instanceOfPack.html +1 -1
- package/docs/functions/_saltcorn_types.common_types.instanceOfErrorMsg.html +1 -1
- package/docs/functions/_saltcorn_types.common_types.instanceOfSuccessMsg.html +1 -1
- package/docs/functions/_saltcorn_types.common_types.instanceOfType.html +1 -1
- package/docs/functions/_saltcorn_types.model-abstracts_abstract_field.instanceOfField.html +1 -1
- package/docs/functions/_saltcorn_types.model-abstracts_abstract_page.instanceOfPage.html +1 -1
- package/docs/functions/_saltcorn_types.model-abstracts_abstract_plugin.instanceOfPlugin.html +1 -1
- package/docs/functions/_saltcorn_types.model-abstracts_abstract_table.instanceOfTable.html +1 -1
- package/docs/functions/_saltcorn_types.model-abstracts_abstract_view.instanceOfView.html +1 -1
- package/docs/hierarchy.html +1 -1
- package/docs/interfaces/_saltcorn_db-common.dbtypes.UserLike.html +2 -2
- package/docs/interfaces/_saltcorn_markup.types.TagExports.html +2 -2
- package/docs/interfaces/_saltcorn_mobile-builder.utils_common-build-utils.ScCapacitorConfig.html +2 -2
- package/docs/interfaces/_saltcorn_types.model-abstracts_abstract_field.AbstractField.html +2 -2
- package/docs/interfaces/_saltcorn_types.model-abstracts_abstract_field.AbstractFieldRepeat.html +2 -2
- package/docs/interfaces/_saltcorn_types.model-abstracts_abstract_form.AbstractForm.html +2 -2
- package/docs/interfaces/_saltcorn_types.model-abstracts_abstract_page.AbstractPage.html +2 -2
- package/docs/interfaces/_saltcorn_types.model-abstracts_abstract_page_group.AbstractPageGroup.html +2 -2
- package/docs/interfaces/_saltcorn_types.model-abstracts_abstract_page_group_member.AbstractPageGroupMember.html +2 -2
- package/docs/interfaces/_saltcorn_types.model-abstracts_abstract_plugin.AbstractPlugin.html +2 -2
- package/docs/interfaces/_saltcorn_types.model-abstracts_abstract_role.AbstractRole.html +2 -2
- package/docs/interfaces/_saltcorn_types.model-abstracts_abstract_table.AbstractTable.html +2 -2
- package/docs/interfaces/_saltcorn_types.model-abstracts_abstract_tag.AbstractTag.html +2 -2
- package/docs/interfaces/_saltcorn_types.model-abstracts_abstract_tag_entry.AbstractTagEntry.html +2 -2
- package/docs/interfaces/_saltcorn_types.model-abstracts_abstract_trigger.AbstractTrigger.html +2 -2
- package/docs/interfaces/_saltcorn_types.model-abstracts_abstract_user.AbstractUser.html +2 -2
- package/docs/interfaces/_saltcorn_types.model-abstracts_abstract_user.ForUserRequest.html +2 -2
- package/docs/interfaces/_saltcorn_types.model-abstracts_abstract_view.AbstractView.html +2 -2
- package/docs/interfaces/_saltcorn_types.model-abstracts_abstract_workflow.AbstractWorkflow.html +2 -2
- package/docs/modules/_saltcorn_data.html +1 -1
- package/docs/modules/_saltcorn_data.migrations_202604091531.html +1 -0
- package/docs/modules/_saltcorn_data.migrations_202604111200.html +1 -0
- package/docs/modules/_saltcorn_data.mobile-mocks_npm_npm-registry-fetch.html +1 -0
- package/docs/modules/_saltcorn_data.mobile-mocks_saltcorn_admin-models-tenant.html +1 -0
- package/docs/modules/_saltcorn_data.mobile-mocks_saltcorn_plugins-loader-plugin-installer.html +1 -0
- package/docs/modules/_saltcorn_data.mobile-mocks_saltcorn_plugins-loader-stable-versioning.html +1 -0
- package/docs/types/_saltcorn_data.diagram_node_extract_utils.ExtractOpts.html +2 -2
- package/docs/types/_saltcorn_data.diagram_node_extract_utils.ExtractResult.html +2 -2
- package/docs/types/_saltcorn_data.diagram_nodes_node.NodeType.html +1 -1
- package/docs/types/_saltcorn_data.models_config.ConfigTypes.html +1 -1
- package/docs/types/_saltcorn_data.models_config.SingleConfig.html +1 -1
- package/docs/types/_saltcorn_data.models_eventlog.EventLogCfg.html +2 -2
- package/docs/types/_saltcorn_data.models_file.FileCfg.html +2 -2
- package/docs/types/_saltcorn_data.models_form.AdditionalButton.html +1 -1
- package/docs/types/_saltcorn_data.models_form.FormCfg.html +2 -2
- package/docs/types/_saltcorn_data.models_internal_push_message_helper.MobileSubscription.html +2 -2
- package/docs/types/_saltcorn_data.models_internal_push_message_helper.WebPushSubscription.html +2 -2
- package/docs/types/_saltcorn_data.models_internal_s3_helpers.S3HeadResult.html +1 -1
- package/docs/types/_saltcorn_data.models_internal_s3_helpers.S3ListResult.html +2 -2
- package/docs/types/_saltcorn_data.models_page_group.ScreenInfoParams.html +2 -2
- package/docs/types/_saltcorn_data.models_table.ChildRelations.html +2 -2
- package/docs/types/_saltcorn_data.models_table.ParentRelations.html +2 -2
- package/docs/types/_saltcorn_data.models_table.RelationData.html +2 -2
- package/docs/types/_saltcorn_data.models_tag_entry.TagEntryCfg.html +1 -1
- package/docs/types/_saltcorn_data.models_view.FindViewsPred.html +1 -1
- package/docs/types/_saltcorn_db-common.dbtypes.AggregationOptions.html +2 -2
- package/docs/types/_saltcorn_db-common.dbtypes.CoordOpts.html +2 -2
- package/docs/types/_saltcorn_db-common.dbtypes.DatabaseClient.html +2 -2
- package/docs/types/_saltcorn_db-common.dbtypes.JoinField.html +2 -2
- package/docs/types/_saltcorn_db-common.dbtypes.JoinFields.html +1 -1
- package/docs/types/_saltcorn_db-common.dbtypes.JoinOptions.html +1 -1
- package/docs/types/_saltcorn_db-common.dbtypes.JsonPath.html +1 -1
- package/docs/types/_saltcorn_db-common.dbtypes.JsonPathElem.html +1 -1
- package/docs/types/_saltcorn_db-common.dbtypes.Operator.html +1 -1
- package/docs/types/_saltcorn_db-common.dbtypes.PartialSome.html +1 -1
- package/docs/types/_saltcorn_db-common.dbtypes.PrimaryKeyValue.html +1 -1
- package/docs/types/_saltcorn_db-common.dbtypes.Row.html +1 -1
- package/docs/types/_saltcorn_db-common.dbtypes.SelectOptions.html +2 -2
- package/docs/types/_saltcorn_db-common.dbtypes.StrongRow.html +1 -1
- package/docs/types/_saltcorn_db-common.dbtypes.SubselectOptions.html +2 -2
- package/docs/types/_saltcorn_db-common.dbtypes.Value.html +1 -1
- package/docs/types/_saltcorn_db-common.dbtypes.Where.html +2 -2
- package/docs/types/_saltcorn_db-common.sqlite-commons.SqlAndValues.html +2 -2
- package/docs/types/_saltcorn_db-common.types.DbExportsType.html +2 -2
- package/docs/types/_saltcorn_db-common.types.GenObj.html +1 -1
- package/docs/types/_saltcorn_markup.emergency_layout.WrapParams.html +2 -2
- package/docs/types/_saltcorn_markup.helpers.CheckBoxGroupOpts.html +2 -2
- package/docs/types/_saltcorn_markup.helpers.PaginationOpts.html +2 -2
- package/docs/types/_saltcorn_markup.helpers.RadioGroupOpts.html +2 -2
- package/docs/types/_saltcorn_markup.helpers.SearchBarOpts.html +2 -2
- package/docs/types/_saltcorn_markup.layout.RenderOpts-1.html +2 -2
- package/docs/types/_saltcorn_markup.layout.RenderOpts.html +2 -2
- package/docs/types/_saltcorn_markup.mjml-layout.RenderOpts.html +2 -2
- package/docs/types/_saltcorn_markup.table.HeadersParams.html +2 -2
- package/docs/types/_saltcorn_markup.table.OptsParams.html +2 -2
- package/docs/types/_saltcorn_markup.types.AttributeVal.html +1 -1
- package/docs/types/_saltcorn_markup.types.Attributes.html +2 -2
- package/docs/types/_saltcorn_markup.types.ClassVal.html +1 -1
- package/docs/types/_saltcorn_markup.types.Element.html +1 -1
- package/docs/types/_saltcorn_markup.types.Falsy.html +1 -1
- package/docs/types/_saltcorn_markup.types.StyleVal.html +1 -1
- package/docs/types/_saltcorn_markup.types.TagFunction.html +1 -1
- package/docs/types/_saltcorn_mobile-builder.mobile-builder.IosCfg.html +2 -2
- package/docs/types/_saltcorn_mobile-builder.utils_capacitor-helper.CapacitorCfg.html +2 -2
- package/docs/types/_saltcorn_types.base_types.Action.html +3 -3
- package/docs/types/_saltcorn_types.base_types.AuthenticationMethod.html +2 -2
- package/docs/types/_saltcorn_types.base_types.CalcJoinfield.html +2 -2
- package/docs/types/_saltcorn_types.base_types.CapacitorPlugin.html +2 -2
- package/docs/types/_saltcorn_types.base_types.CodePagePack.html +2 -2
- package/docs/types/_saltcorn_types.base_types.Column.html +2 -2
- package/docs/types/_saltcorn_types.base_types.ConnectObjType.html +2 -2
- package/docs/types/_saltcorn_types.base_types.ConnectedObjects.html +2 -2
- package/docs/types/_saltcorn_types.base_types.CopilotSkill.html +2 -2
- package/docs/types/_saltcorn_types.base_types.ErrorObj.html +2 -2
- package/docs/types/_saltcorn_types.base_types.FieldLike.html +1 -1
- package/docs/types/_saltcorn_types.base_types.FieldView.html +1 -1
- package/docs/types/_saltcorn_types.base_types.Header.html +2 -2
- package/docs/types/_saltcorn_types.base_types.JoinFieldOption.html +2 -2
- package/docs/types/_saltcorn_types.base_types.Layout.html +1 -1
- package/docs/types/_saltcorn_types.base_types.MenuItem.html +2 -2
- package/docs/types/_saltcorn_types.base_types.MobileConfig.html +2 -2
- package/docs/types/_saltcorn_types.base_types.ModelPattern.html +6 -6
- package/docs/types/_saltcorn_types.base_types.Pack.html +2 -2
- package/docs/types/_saltcorn_types.base_types.Plugin.html +1 -1
- package/docs/types/_saltcorn_types.base_types.PluginFunction.html +2 -2
- package/docs/types/_saltcorn_types.base_types.PluginLayout.html +2 -2
- package/docs/types/_saltcorn_types.base_types.PluginRoute.html +2 -2
- package/docs/types/_saltcorn_types.base_types.PluginSourceType.html +1 -1
- package/docs/types/_saltcorn_types.base_types.PluginType.html +2 -2
- package/docs/types/_saltcorn_types.base_types.PluginWrap.html +1 -1
- package/docs/types/_saltcorn_types.base_types.PluginWrapArg.html +2 -2
- package/docs/types/_saltcorn_types.base_types.RelationOption.html +2 -2
- package/docs/types/_saltcorn_types.base_types.Req.html +2 -2
- package/docs/types/_saltcorn_types.base_types.Res.html +2 -2
- package/docs/types/_saltcorn_types.base_types.ResultType.html +2 -2
- package/docs/types/_saltcorn_types.base_types.RouteAction.html +1 -1
- package/docs/types/_saltcorn_types.base_types.RunExtra.html +1 -1
- package/docs/types/_saltcorn_types.base_types.SlugStepType.html +2 -2
- package/docs/types/_saltcorn_types.base_types.StepResType.html +1 -1
- package/docs/types/_saltcorn_types.base_types.SubField.html +2 -2
- package/docs/types/_saltcorn_types.base_types.TableProvider.html +2 -2
- package/docs/types/_saltcorn_types.base_types.TableQuery.html +2 -2
- package/docs/types/_saltcorn_types.base_types.Tablely.html +1 -1
- package/docs/types/_saltcorn_types.base_types.ViewTemplate.html +2 -2
- package/docs/types/_saltcorn_types.common_types.ErrorMessage.html +2 -2
- package/docs/types/_saltcorn_types.common_types.GenObj.html +1 -1
- package/docs/types/_saltcorn_types.common_types.ReqRes.html +2 -2
- package/docs/types/_saltcorn_types.common_types.ResultMessage.html +1 -1
- package/docs/types/_saltcorn_types.common_types.SuccessMessage.html +2 -2
- package/docs/types/_saltcorn_types.common_types.Type.html +2 -2
- package/docs/types/_saltcorn_types.model-abstracts_abstract_event_log.EventLogPack.html +2 -2
- package/docs/types/_saltcorn_types.model-abstracts_abstract_field.FieldCfg.html +2 -2
- package/docs/types/_saltcorn_types.model-abstracts_abstract_field.InputType.html +1 -1
- package/docs/types/_saltcorn_types.model-abstracts_abstract_form.AdditionalButton.html +2 -2
- package/docs/types/_saltcorn_types.model-abstracts_abstract_library.LibraryCfg.html +2 -2
- package/docs/types/_saltcorn_types.model-abstracts_abstract_library.LibraryPack.html +1 -1
- package/docs/types/_saltcorn_types.model-abstracts_abstract_model.ModelCfg.html +2 -2
- package/docs/types/_saltcorn_types.model-abstracts_abstract_model.ModelPack.html +1 -1
- package/docs/types/_saltcorn_types.model-abstracts_abstract_model_instance.ModelInstanceCfg.html +2 -2
- package/docs/types/_saltcorn_types.model-abstracts_abstract_model_instance.ModelInstancePack.html +1 -1
- package/docs/types/_saltcorn_types.model-abstracts_abstract_page.PageCfg.html +3 -2
- package/docs/types/_saltcorn_types.model-abstracts_abstract_page.PagePack.html +1 -1
- package/docs/types/_saltcorn_types.model-abstracts_abstract_page_group.PageGroupCfg.html +2 -2
- package/docs/types/_saltcorn_types.model-abstracts_abstract_page_group.PageGroupPack.html +1 -1
- package/docs/types/_saltcorn_types.model-abstracts_abstract_page_group_member.PageGroupMemberCfg.html +2 -2
- package/docs/types/_saltcorn_types.model-abstracts_abstract_page_group_member.PageGroupMemberPack.html +1 -1
- package/docs/types/_saltcorn_types.model-abstracts_abstract_plugin.PluginCfg.html +2 -2
- package/docs/types/_saltcorn_types.model-abstracts_abstract_plugin.PluginPack.html +1 -1
- package/docs/types/_saltcorn_types.model-abstracts_abstract_role.RoleCfg.html +1 -1
- package/docs/types/_saltcorn_types.model-abstracts_abstract_role.RolePack.html +1 -1
- package/docs/types/_saltcorn_types.model-abstracts_abstract_table.TableCfg.html +3 -2
- package/docs/types/_saltcorn_types.model-abstracts_abstract_table.TablePack.html +1 -1
- package/docs/types/_saltcorn_types.model-abstracts_abstract_tag.TagPack.html +2 -2
- package/docs/types/_saltcorn_types.model-abstracts_abstract_tag_entry.TagEntryPack.html +2 -2
- package/docs/types/_saltcorn_types.model-abstracts_abstract_trigger.TriggerCfg.html +3 -2
- package/docs/types/_saltcorn_types.model-abstracts_abstract_trigger.TriggerPack.html +1 -1
- package/docs/types/_saltcorn_types.model-abstracts_abstract_view.ViewCfg.html +3 -2
- package/docs/types/_saltcorn_types.model-abstracts_abstract_view.ViewPack.html +1 -1
- package/docs/types/_saltcorn_types.model-abstracts_abstract_workflow.ConfigWorkflowStep.html +1 -1
- package/docs/types/_saltcorn_types.model-abstracts_abstract_workflow.RunResult.html +2 -2
- package/docs/types/_saltcorn_types.model-abstracts_abstract_workflow_run.WorkflowRunCfg.html +2 -2
- package/docs/types/_saltcorn_types.model-abstracts_abstract_workflow_step.WorkflowStepCfg.html +2 -2
- package/docs/types/_saltcorn_types.model-abstracts_abstract_workflow_step.WorkflowStepPack.html +1 -1
- package/docs/types/_saltcorn_types.model-abstracts_abstract_workflow_trace.WorkflowTraceCfg.html +2 -2
- package/docs/variables/_saltcorn_admin-models..backup.create_backup.html +1 -1
- package/docs/variables/_saltcorn_admin-models..backup.create_csv_from_rows.html +1 -1
- package/docs/variables/_saltcorn_admin-models..backup.restore.html +1 -1
- package/docs/variables/_saltcorn_admin-models..pack.add_to_menu.html +1 -1
- package/docs/variables/_saltcorn_admin-models..pack.can_install_pack.html +1 -1
- package/docs/variables/_saltcorn_admin-models..pack.fetch_available_packs.html +1 -1
- package/docs/variables/_saltcorn_admin-models..pack.fetch_pack_by_name.html +1 -1
- package/docs/variables/_saltcorn_admin-models..pack.install_pack.html +1 -1
- package/docs/variables/_saltcorn_admin-models..pack.library_pack.html +1 -1
- package/docs/variables/_saltcorn_admin-models..pack.model_instance_pack.html +1 -1
- package/docs/variables/_saltcorn_admin-models..pack.model_pack.html +1 -1
- package/docs/variables/_saltcorn_admin-models..pack.page_group_pack.html +1 -1
- package/docs/variables/_saltcorn_admin-models..pack.page_pack.html +1 -1
- package/docs/variables/_saltcorn_admin-models..pack.plugin_pack.html +1 -1
- package/docs/variables/_saltcorn_admin-models..pack.role_pack.html +1 -1
- package/docs/variables/_saltcorn_admin-models..pack.table_pack.html +1 -1
- package/docs/variables/_saltcorn_admin-models..pack.trigger_pack.html +1 -1
- package/docs/variables/_saltcorn_admin-models..pack.uninstall_pack.html +1 -1
- package/docs/variables/_saltcorn_admin-models..pack.view_pack.html +1 -1
- package/docs/variables/_saltcorn_admin-models..tenant.copy_tenant_template.html +1 -1
- package/docs/variables/_saltcorn_admin-models..tenant.create_tenant.html +1 -1
- package/docs/variables/_saltcorn_admin-models..tenant.deleteTenant.html +1 -1
- package/docs/variables/_saltcorn_admin-models..tenant.domain_sanitize.html +1 -1
- package/docs/variables/_saltcorn_admin-models..tenant.eachTenant.html +1 -1
- package/docs/variables/_saltcorn_admin-models..tenant.getAllTenantRows.html +1 -1
- package/docs/variables/_saltcorn_admin-models..tenant.getAllTenants.html +1 -1
- package/docs/variables/_saltcorn_admin-models..tenant.insertTenant.html +1 -1
- package/docs/variables/_saltcorn_admin-models..tenant.switchToTenant.html +1 -1
- package/docs/variables/_saltcorn_admin-models.models_backup.backup.html +1 -1
- package/docs/variables/_saltcorn_admin-models.pack.pack.html +1 -1
- package/docs/variables/_saltcorn_admin-models.tenant.tenant.html +1 -1
- package/docs/variables/_saltcorn_common-code.tests_expected_relations.expectedFive.html +1 -1
- package/docs/variables/_saltcorn_common-code.tests_expected_relations.expectedFour.html +1 -1
- package/docs/variables/_saltcorn_common-code.tests_expected_relations.expectedOne.html +1 -1
- package/docs/variables/_saltcorn_common-code.tests_expected_relations.expectedSix.html +1 -1
- package/docs/variables/_saltcorn_common-code.tests_expected_relations.expectedThree.html +1 -1
- package/docs/variables/_saltcorn_common-code.tests_expected_relations.expectedTwo.html +1 -1
- package/docs/variables/_saltcorn_data..migrations.html +1 -1
- package/docs/variables/_saltcorn_data..plugin_helper.run_action_column.html +1 -1
- package/docs/variables/_saltcorn_data..utils.NotAuthorized.html +1 -1
- package/docs/variables/_saltcorn_data..utils.isPushEnabled.html +1 -1
- package/docs/variables/_saltcorn_data..utils.sleep.html +1 -1
- package/docs/variables/_saltcorn_data.base-plugin_actions.actions.html +1 -1
- package/docs/variables/_saltcorn_data.base-plugin_fieldviews.fieldviews.html +1 -1
- package/docs/variables/_saltcorn_data.base-plugin_fileview.fileviews.html +1 -1
- package/docs/variables/_saltcorn_data.base-plugin_index.index.html +1 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.types.html +1 -1
- package/docs/variables/_saltcorn_data.base-plugin_viewtemplates_edit.edit.html +1 -1
- package/docs/variables/_saltcorn_data.base-plugin_viewtemplates_feed.feed.html +1 -1
- package/docs/variables/_saltcorn_data.base-plugin_viewtemplates_filter.filter.html +1 -1
- package/docs/variables/_saltcorn_data.base-plugin_viewtemplates_list.list.html +1 -1
- package/docs/variables/_saltcorn_data.base-plugin_viewtemplates_listshowlist.listshowlist.html +1 -1
- package/docs/variables/_saltcorn_data.base-plugin_viewtemplates_room.room-1.html +1 -1
- package/docs/variables/_saltcorn_data.base-plugin_viewtemplates_room.room.html +1 -1
- package/docs/variables/_saltcorn_data.base-plugin_viewtemplates_show.show.html +1 -1
- package/docs/variables/_saltcorn_data.base-plugin_viewtemplates_viewable_fields.edit_build_in_actions.html +1 -1
- package/docs/variables/_saltcorn_data.contract.contract.html +1 -1
- package/docs/variables/_saltcorn_data.db_connect.connect.html +1 -1
- package/docs/variables/_saltcorn_data.db_fa5-icons.fa5Icons.html +1 -1
- package/docs/variables/_saltcorn_data.db_fixtures.fixtures.html +1 -1
- package/docs/variables/_saltcorn_data.db_index.dbExports.html +1 -1
- package/docs/variables/_saltcorn_data.db_state.state.html +1 -1
- package/docs/variables/_saltcorn_data.migrations_202005141503.sql.html +1 -1
- package/docs/variables/_saltcorn_data.migrations_202005241712.sql.html +1 -1
- package/docs/variables/_saltcorn_data.migrations_202005251037.sql.html +1 -1
- package/docs/variables/_saltcorn_data.migrations_202005282134.sql.html +1 -1
- package/docs/variables/_saltcorn_data.migrations_202006022156.sql.html +1 -1
- package/docs/variables/_saltcorn_data.migrations_202006051507.sql.html +1 -1
- package/docs/variables/_saltcorn_data.migrations_202006240906.sql.html +1 -1
- package/docs/variables/_saltcorn_data.migrations_202007091707.sql.html +1 -1
- package/docs/variables/_saltcorn_data.migrations_202007202144.sql.html +1 -1
- package/docs/variables/_saltcorn_data.migrations_202008031500.sql.html +1 -1
- package/docs/variables/_saltcorn_data.migrations_202008051415.sql.html +1 -1
- package/docs/variables/_saltcorn_data.migrations_202008121149.sql_pg.html +1 -1
- package/docs/variables/_saltcorn_data.migrations_202008121149.sql_sqlite.html +1 -1
- package/docs/variables/_saltcorn_data.migrations_202009112140.sql_pg.html +1 -1
- package/docs/variables/_saltcorn_data.migrations_202009112140.sql_sqlite.html +1 -1
- package/docs/variables/_saltcorn_data.migrations_202009181655.sql.html +1 -1
- package/docs/variables/_saltcorn_data.migrations_202009221105.sql.html +1 -1
- package/docs/variables/_saltcorn_data.migrations_202009231331.sql.html +1 -1
- package/docs/variables/_saltcorn_data.migrations_202009301531.sql.html +1 -1
- package/docs/variables/_saltcorn_data.migrations_202010231444.sql.html +1 -1
- package/docs/variables/_saltcorn_data.migrations_202010251412.sql.html +1 -1
- package/docs/variables/_saltcorn_data.migrations_202011021749.sql.html +1 -1
- package/docs/variables/_saltcorn_data.migrations_202011051353.sql.html +1 -1
- package/docs/variables/_saltcorn_data.migrations_202011111127.sql.html +1 -1
- package/docs/variables/_saltcorn_data.migrations_202012011203.sql.html +1 -1
- package/docs/variables/_saltcorn_data.migrations_202012100841.sql.html +1 -1
- package/docs/variables/_saltcorn_data.migrations_202012281835.sql.html +1 -1
- package/docs/variables/_saltcorn_data.migrations_202101061051.sql.html +1 -1
- package/docs/variables/_saltcorn_data.migrations_202101141128.sql.html +1 -1
- package/docs/variables/_saltcorn_data.migrations_202102091312.sql.html +1 -1
- package/docs/variables/_saltcorn_data.migrations_202102101624.sql.html +1 -1
- package/docs/variables/_saltcorn_data.migrations_202102172148.sql.html +1 -1
- package/docs/variables/_saltcorn_data.migrations_202102261650.sql.html +1 -1
- package/docs/variables/_saltcorn_data.migrations_202106102347.sql.html +1 -1
- package/docs/variables/_saltcorn_data.migrations_202106112120.sql.html +1 -1
- package/docs/variables/_saltcorn_data.migrations_202106120012.sql.html +1 -1
- package/docs/variables/_saltcorn_data.migrations_202106120220.sql.html +1 -1
- package/docs/variables/_saltcorn_data.migrations_202106121701.sql.html +1 -1
- package/docs/variables/_saltcorn_data.migrations_202106121703.sql_pg.html +1 -1
- package/docs/variables/_saltcorn_data.migrations_202106121703.sql_sqlite.html +1 -1
- package/docs/variables/_saltcorn_data.migrations_202106251126.sql.html +1 -1
- package/docs/variables/_saltcorn_data.migrations_202107281619.sql.html +1 -1
- package/docs/variables/_saltcorn_data.migrations_202107302158.sql_pg.html +1 -1
- package/docs/variables/_saltcorn_data.migrations_202107302158.sql_sqlite.html +1 -1
- package/docs/variables/_saltcorn_data.migrations_202108022257.sql.html +1 -1
- package/docs/variables/_saltcorn_data.migrations_202109201624.sql.html +1 -1
- package/docs/variables/_saltcorn_data.migrations_202109301031.sql_pg.html +1 -1
- package/docs/variables/_saltcorn_data.migrations_202109301031.sql_sqlite.html +1 -1
- package/docs/variables/_saltcorn_data.migrations_202111290253.sql_pg.html +1 -1
- package/docs/variables/_saltcorn_data.migrations_202111290253.sql_sqlite.html +1 -1
- package/docs/variables/_saltcorn_data.migrations_202112282254.sql_pg.html +1 -1
- package/docs/variables/_saltcorn_data.migrations_202112282254.sql_sqlite.html +1 -1
- package/docs/variables/_saltcorn_data.migrations_202207022002.sql.html +1 -1
- package/docs/variables/_saltcorn_data.migrations_202207252150.sql_pg.html +1 -1
- package/docs/variables/_saltcorn_data.migrations_202207252150.sql_sqlite.html +1 -1
- package/docs/variables/_saltcorn_data.migrations_202207261221.sql.html +1 -1
- package/docs/variables/_saltcorn_data.migrations_202208101144.sql_pg.html +1 -1
- package/docs/variables/_saltcorn_data.migrations_202208101144.sql_sqlite.html +1 -1
- package/docs/variables/_saltcorn_data.migrations_202211040031.sql.html +1 -1
- package/docs/variables/_saltcorn_data.migrations_202212112152.sql_pg.html +1 -1
- package/docs/variables/_saltcorn_data.migrations_202212112152.sql_sqlite.html +1 -1
- package/docs/variables/_saltcorn_data.migrations_202301130917.sql.html +1 -1
- package/docs/variables/_saltcorn_data.migrations_202303201126.sql_pg.html +1 -1
- package/docs/variables/_saltcorn_data.migrations_202303201126.sql_sqlite.html +1 -1
- package/docs/variables/_saltcorn_data.migrations_202303221944.sql_pg.html +1 -1
- package/docs/variables/_saltcorn_data.migrations_202303221944.sql_sqlite.html +1 -1
- package/docs/variables/_saltcorn_data.migrations_202304281224.sql.html +1 -1
- package/docs/variables/_saltcorn_data.migrations_202305031518.sql_pg.html +1 -1
- package/docs/variables/_saltcorn_data.migrations_202305031518.sql_sqlite.html +1 -1
- package/docs/variables/_saltcorn_data.migrations_202308211648.sql.html +1 -1
- package/docs/variables/_saltcorn_data.migrations_202311011755.sql_pg.html +1 -1
- package/docs/variables/_saltcorn_data.migrations_202311011755.sql_sqlite.html +1 -1
- package/docs/variables/_saltcorn_data.migrations_202311231356.sql.html +1 -1
- package/docs/variables/_saltcorn_data.migrations_202402071125.sql.html +1 -1
- package/docs/variables/_saltcorn_data.migrations_202406260915.sql.html +1 -1
- package/docs/variables/_saltcorn_data.migrations_202412051957.sql_pg.html +1 -1
- package/docs/variables/_saltcorn_data.migrations_202412051957.sql_sqlite.html +1 -1
- package/docs/variables/_saltcorn_data.migrations_202412111526.sql_pg.html +1 -1
- package/docs/variables/_saltcorn_data.migrations_202412111526.sql_sqlite.html +1 -1
- package/docs/variables/_saltcorn_data.migrations_202501081226.sql_pg.html +1 -1
- package/docs/variables/_saltcorn_data.migrations_202501081226.sql_sqlite.html +1 -1
- package/docs/variables/_saltcorn_data.migrations_202501201239.sql_sqlite.html +1 -1
- package/docs/variables/_saltcorn_data.migrations_202501262157.sql.html +1 -1
- package/docs/variables/_saltcorn_data.migrations_202503071353.sql_pg.html +1 -1
- package/docs/variables/_saltcorn_data.migrations_202506050958.sql.html +1 -1
- package/docs/variables/_saltcorn_data.migrations_202510110312.sql_pg.html +1 -1
- package/docs/variables/_saltcorn_data.migrations_202510110312.sql_sqlite.html +1 -1
- package/docs/variables/_saltcorn_data.migrations_202511081024.sql.html +1 -1
- package/docs/variables/_saltcorn_data.migrations_202604091531.sql.html +1 -0
- package/docs/variables/_saltcorn_data.mobile-mocks_npm_npm-registry-fetch.npmRegistryFetch.html +1 -0
- package/docs/variables/_saltcorn_data.mobile-mocks_saltcorn_html-pdf-node.htmlPdfNode.html +1 -1
- package/docs/variables/_saltcorn_data.models_config.configExports.html +1 -1
- package/docs/variables/_saltcorn_data.models_discovery.discovery.html +1 -1
- package/docs/variables/_saltcorn_data.models_email.email.html +1 -1
- package/docs/variables/_saltcorn_data.models_expression.expression.html +1 -1
- package/docs/variables/_saltcorn_data.models_index.config.available_languages.html +1 -1
- package/docs/variables/_saltcorn_data.models_index.config.check_email_mask.html +1 -1
- package/docs/variables/_saltcorn_data.models_index.config.configTypes.html +1 -1
- package/docs/variables/_saltcorn_data.models_index.config.deleteConfig.html +1 -1
- package/docs/variables/_saltcorn_data.models_index.config.getAllConfig.html +1 -1
- package/docs/variables/_saltcorn_data.models_index.config.getConfig.html +1 -1
- package/docs/variables/_saltcorn_data.models_index.config.get_base_url.html +1 -1
- package/docs/variables/_saltcorn_data.models_index.config.get_latest_npm_version.html +1 -1
- package/docs/variables/_saltcorn_data.models_index.config.remove_from_menu.html +1 -1
- package/docs/variables/_saltcorn_data.models_index.config.save_menu_items.html +1 -1
- package/docs/variables/_saltcorn_data.models_index.config.setConfig.html +1 -1
- package/docs/variables/_saltcorn_data.models_index.discovery.discover_tables.html +1 -1
- package/docs/variables/_saltcorn_data.models_index.discovery.discoverable_tables.html +1 -1
- package/docs/variables/_saltcorn_data.models_index.discovery.findType.html +1 -1
- package/docs/variables/_saltcorn_data.models_index.discovery.get_existing_views.html +1 -1
- package/docs/variables/_saltcorn_data.models_index.discovery.implement_discovery.html +1 -1
- package/docs/variables/_saltcorn_data.models_index.email.getMailTransport.html +1 -1
- package/docs/variables/_saltcorn_data.models_index.email.send_verification_email.html +1 -1
- package/docs/variables/_saltcorn_data.models_index.email.viewToEmailHtml.html +1 -1
- package/docs/variables/_saltcorn_data.models_index.expression.apply_calculated_fields.html +1 -1
- package/docs/variables/_saltcorn_data.models_index.expression.apply_calculated_fields_stored.html +1 -1
- package/docs/variables/_saltcorn_data.models_index.expression.eval_expression.html +9 -1
- package/docs/variables/_saltcorn_data.models_index.expression.expressionValidator.html +1 -1
- package/docs/variables/_saltcorn_data.models_index.expression.get_async_expression_function.html +1 -1
- package/docs/variables/_saltcorn_data.models_index.expression.get_expression_function.html +1 -1
- package/docs/variables/_saltcorn_data.models_index.expression.jsexprToWhere.html +1 -1
- package/docs/variables/_saltcorn_data.models_index.expression.recalculate_for_stored.html +1 -1
- package/docs/variables/_saltcorn_data.models_index.expression.transform_for_async.html +1 -1
- package/docs/variables/_saltcorn_data.models_index.layout.eachView.html +1 -1
- package/docs/variables/_saltcorn_data.models_index.layout.getStringsForI18n.html +1 -1
- package/docs/variables/_saltcorn_data.models_index.layout.getViews.html +1 -1
- package/docs/variables/_saltcorn_data.models_index.layout.translateLayout.html +1 -1
- package/docs/variables/_saltcorn_data.models_index.layout.traverse.html +1 -1
- package/docs/variables/_saltcorn_data.models_index.layout.traverseSync.html +1 -1
- package/docs/variables/_saltcorn_data.models_index.random.all_views.html +1 -1
- package/docs/variables/_saltcorn_data.models_index.random.fill_table_row.html +1 -1
- package/docs/variables/_saltcorn_data.models_index.random.initial_view.html +1 -1
- package/docs/variables/_saltcorn_data.models_index.random.random_table.html +1 -1
- package/docs/variables/_saltcorn_data.models_index.scheduler.runScheduler.html +1 -1
- package/docs/variables/_saltcorn_data.models_layout.layout.html +1 -1
- package/docs/variables/_saltcorn_data.models_random.random.html +1 -1
- package/docs/variables/_saltcorn_data.models_scheduler.scheduler.html +1 -1
- package/docs/variables/_saltcorn_data.plugin-helper.add_free_variables_to_joinfields.html +1 -1
- package/docs/variables/_saltcorn_data.tests_mocks.mocks.html +1 -1
- package/docs/variables/_saltcorn_data.tests_remote_query_helper.renderEditInEditConfig.html +1 -1
- package/docs/variables/_saltcorn_data.utils.utils.html +1 -1
- package/docs/variables/_saltcorn_data.web-mobile-commons.webMobileCommons.html +1 -1
- package/docs/variables/_saltcorn_db-common.internal.dbCommonModulePath.html +1 -1
- package/docs/variables/_saltcorn_db-common.multi-tenant.tenantNamespace.html +1 -1
- package/docs/variables/_saltcorn_db-common.tenants.tenants.html +1 -1
- package/docs/variables/_saltcorn_markup..export_.html +1 -1
- package/docs/variables/_saltcorn_markup.builder.builder.html +1 -1
- package/docs/variables/_saltcorn_markup.emergency_layout.EmergencyLayoutExports.html +1 -1
- package/docs/variables/_saltcorn_markup.form.form.html +1 -1
- package/docs/variables/_saltcorn_markup.helpers.HelpersExports.html +1 -1
- package/docs/variables/_saltcorn_markup.layout.LayoutExports-1.html +1 -1
- package/docs/variables/_saltcorn_markup.layout.LayoutExports.html +1 -1
- package/docs/variables/_saltcorn_markup.layout_utils.layoutUtils.html +1 -1
- package/docs/variables/_saltcorn_markup.mjml-layout.LayoutExports.html +1 -1
- package/docs/variables/_saltcorn_markup.mjml-tags.tagsExports.html +1 -1
- package/docs/variables/_saltcorn_markup.table.TableExports.html +1 -1
- package/docs/variables/_saltcorn_markup.tags.tagsExports.html +1 -1
- package/docs/variables/_saltcorn_types..generators.generateBool.html +1 -1
- package/docs/variables/_saltcorn_types..generators.generateString.html +1 -1
- package/docs/variables/_saltcorn_types..generators.num_between.html +1 -1
- package/docs/variables/_saltcorn_types..generators.oneOf.html +1 -1
- package/docs/variables/_saltcorn_types.generators.generators.html +1 -1
- package/load_plugins.js +7 -398
- package/locales/en.json +5 -1
- package/package.json +12 -12
- package/public/saltcorn-common.js +1 -0
- package/public/saltcorn.js +1433 -0
- package/routes/actions.js +190 -4
- package/routes/admin.js +3 -5
- package/routes/api.js +5 -4
- package/routes/delete.js +2 -5
- package/routes/edit.js +2 -5
- package/routes/entities.js +65 -1245
- package/routes/fields.js +3 -0
- package/routes/files.js +5 -3
- package/routes/packs.js +2 -3
- package/routes/plugins.js +14 -16
- package/routes/scapi.js +1 -2
- package/routes/sync.js +141 -41
- package/routes/tables.js +4 -0
- package/routes/tenant.js +3 -3
- package/routes/utils.js +36 -2
- package/serve.js +9 -14
- package/tests/api.test.js +144 -0
- package/tests/auth.test.js +230 -1
- package/tests/plugin_install.test.js +12 -13
- package/tests/plugins.test.js +1 -2
- package/tests/sync.test.js +810 -2
- package/docs/functions/_saltcorn_data.base-plugin_fieldviews.radio_select.run.html +0 -1
- package/docs/functions/_saltcorn_data.base-plugin_fieldviews.search_or_create.configFields.html +0 -1
- package/docs/functions/_saltcorn_data.base-plugin_fieldviews.search_or_create.run.html +0 -1
- package/docs/functions/_saltcorn_data.base-plugin_fieldviews.select.run.html +0 -1
- package/docs/functions/_saltcorn_data.base-plugin_fieldviews.select_from_table.fill_options.html +0 -1
- package/docs/functions/_saltcorn_data.base-plugin_fieldviews.select_from_table.run.html +0 -1
- package/docs/functions/_saltcorn_data.base-plugin_types.bool.contract.html +0 -1
- package/docs/functions/_saltcorn_data.base-plugin_types.bool.fieldviews.TrueFalse.run.html +0 -1
- package/docs/functions/_saltcorn_data.base-plugin_types.bool.fieldviews.checkboxes.run.html +0 -1
- package/docs/functions/_saltcorn_data.base-plugin_types.bool.fieldviews.edit.run.html +0 -1
- package/docs/functions/_saltcorn_data.base-plugin_types.bool.fieldviews.show.run.html +0 -1
- package/docs/functions/_saltcorn_data.base-plugin_types.bool.fieldviews.tristate.run.html +0 -1
- package/docs/functions/_saltcorn_data.base-plugin_types.bool.listAs.html +0 -1
- package/docs/functions/_saltcorn_data.base-plugin_types.bool.read.html +0 -1
- package/docs/functions/_saltcorn_data.base-plugin_types.bool.readFromDB.html +0 -1
- package/docs/functions/_saltcorn_data.base-plugin_types.bool.readFromFormRecord.html +0 -1
- package/docs/functions/_saltcorn_data.base-plugin_types.bool.validate.html +0 -1
- package/docs/functions/_saltcorn_data.base-plugin_types.color.contract.html +0 -1
- package/docs/functions/_saltcorn_data.base-plugin_types.color.fieldviews.edit.run.html +0 -1
- package/docs/functions/_saltcorn_data.base-plugin_types.color.fieldviews.show.run.html +0 -1
- package/docs/functions/_saltcorn_data.base-plugin_types.color.read.html +0 -1
- package/docs/functions/_saltcorn_data.base-plugin_types.color.validate.html +0 -1
- package/docs/functions/_saltcorn_data.base-plugin_types.date.contract.html +0 -1
- package/docs/functions/_saltcorn_data.base-plugin_types.date.equals.html +0 -3
- package/docs/functions/_saltcorn_data.base-plugin_types.date.fieldviews.edit.run.html +0 -1
- package/docs/functions/_saltcorn_data.base-plugin_types.date.fieldviews.editDay.run.html +0 -1
- package/docs/functions/_saltcorn_data.base-plugin_types.date.fieldviews.format.run.html +0 -1
- package/docs/functions/_saltcorn_data.base-plugin_types.date.fieldviews.relative.run.html +0 -1
- package/docs/functions/_saltcorn_data.base-plugin_types.date.fieldviews.show.run.html +0 -1
- package/docs/functions/_saltcorn_data.base-plugin_types.date.fieldviews.showDay.run.html +0 -1
- package/docs/functions/_saltcorn_data.base-plugin_types.date.fieldviews.yearsAgo.run.html +0 -1
- package/docs/functions/_saltcorn_data.base-plugin_types.date.presets.Now.html +0 -1
- package/docs/functions/_saltcorn_data.base-plugin_types.date.read.html +0 -1
- package/docs/functions/_saltcorn_data.base-plugin_types.date.validate.html +0 -1
- package/docs/functions/_saltcorn_data.base-plugin_types.float.contract.html +0 -1
- package/docs/functions/_saltcorn_data.base-plugin_types.float.equals.html +0 -3
- package/docs/functions/_saltcorn_data.base-plugin_types.float.fieldviews.edit.run.html +0 -1
- package/docs/functions/_saltcorn_data.base-plugin_types.float.fieldviews.show.run.html +0 -1
- package/docs/functions/_saltcorn_data.base-plugin_types.float.read.html +0 -1
- package/docs/functions/_saltcorn_data.base-plugin_types.float.validate.html +0 -1
- package/docs/functions/_saltcorn_data.base-plugin_types.int.contract.html +0 -1
- package/docs/functions/_saltcorn_data.base-plugin_types.int.read.html +0 -1
- package/docs/functions/_saltcorn_data.base-plugin_types.int.validate.html +0 -1
- package/docs/functions/_saltcorn_data.base-plugin_types.int.validate_attributes.html +0 -1
- package/docs/functions/_saltcorn_data.base-plugin_types.string.attributes.html +0 -1
- package/docs/functions/_saltcorn_data.base-plugin_types.string.contract.html +0 -1
- package/docs/functions/_saltcorn_data.base-plugin_types.string.fieldviews.as_header.run.html +0 -1
- package/docs/functions/_saltcorn_data.base-plugin_types.string.fieldviews.as_link.run.html +0 -1
- package/docs/functions/_saltcorn_data.base-plugin_types.string.fieldviews.as_text.run.html +0 -1
- package/docs/functions/_saltcorn_data.base-plugin_types.string.fieldviews.edit.configFields.html +0 -1
- package/docs/functions/_saltcorn_data.base-plugin_types.string.fieldviews.edit.run.html +0 -1
- package/docs/functions/_saltcorn_data.base-plugin_types.string.fieldviews.img_from_url.run.html +0 -1
- package/docs/functions/_saltcorn_data.base-plugin_types.string.fieldviews.password.run.html +0 -1
- package/docs/functions/_saltcorn_data.base-plugin_types.string.fieldviews.radio_group.run.html +0 -1
- package/docs/functions/_saltcorn_data.base-plugin_types.string.fieldviews.textarea.run.html +0 -1
- package/docs/functions/_saltcorn_data.base-plugin_types.string.presets.IP.html +0 -1
- package/docs/functions/_saltcorn_data.base-plugin_types.string.presets.SessionID.html +0 -1
- package/docs/functions/_saltcorn_data.base-plugin_types.string.read.html +0 -1
- package/docs/functions/_saltcorn_data.base-plugin_types.string.validate.html +0 -1
- package/docs/functions/_saltcorn_data.base-plugin_types.string.validate_attributes.html +0 -1
- package/docs/functions/_saltcorn_mobile-builder.utils_common-build-utils.decodeProvisioningProfile.html +0 -1
- package/docs/functions/_saltcorn_mobile-builder.utils_package-bundle-utils.copyMobileAppDirs.html +0 -1
- package/docs/modules/_saltcorn_admin-models.tests_backup.test.html +0 -1
- package/docs/modules/_saltcorn_admin-models.tests_cfgcheck.test.html +0 -1
- package/docs/modules/_saltcorn_admin-models.tests_pack.test.html +0 -1
- package/docs/modules/_saltcorn_admin-models.tests_random.test.html +0 -1
- package/docs/modules/_saltcorn_admin-models.tests_tenant.test.html +0 -1
- package/docs/modules/_saltcorn_data.base-plugin_fieldviews.radio_select.html +0 -2
- package/docs/modules/_saltcorn_data.base-plugin_fieldviews.search_or_create.html +0 -2
- package/docs/modules/_saltcorn_data.base-plugin_fieldviews.select.html +0 -2
- package/docs/modules/_saltcorn_data.base-plugin_fieldviews.select_from_table.html +0 -2
- package/docs/modules/_saltcorn_data.base-plugin_types.bool.fieldviews.TrueFalse.html +0 -2
- package/docs/modules/_saltcorn_data.base-plugin_types.bool.fieldviews.checkboxes.html +0 -2
- package/docs/modules/_saltcorn_data.base-plugin_types.bool.fieldviews.edit.html +0 -2
- package/docs/modules/_saltcorn_data.base-plugin_types.bool.fieldviews.html +0 -2
- package/docs/modules/_saltcorn_data.base-plugin_types.bool.fieldviews.show.html +0 -2
- package/docs/modules/_saltcorn_data.base-plugin_types.bool.fieldviews.tristate.html +0 -2
- package/docs/modules/_saltcorn_data.base-plugin_types.bool.html +0 -3
- package/docs/modules/_saltcorn_data.base-plugin_types.color.fieldviews.edit.html +0 -2
- package/docs/modules/_saltcorn_data.base-plugin_types.color.fieldviews.html +0 -2
- package/docs/modules/_saltcorn_data.base-plugin_types.color.fieldviews.show.html +0 -2
- package/docs/modules/_saltcorn_data.base-plugin_types.color.html +0 -4
- package/docs/modules/_saltcorn_data.base-plugin_types.date.fieldviews.edit.html +0 -2
- package/docs/modules/_saltcorn_data.base-plugin_types.date.fieldviews.editDay.html +0 -2
- package/docs/modules/_saltcorn_data.base-plugin_types.date.fieldviews.format.html +0 -2
- package/docs/modules/_saltcorn_data.base-plugin_types.date.fieldviews.html +0 -2
- package/docs/modules/_saltcorn_data.base-plugin_types.date.fieldviews.relative.html +0 -2
- package/docs/modules/_saltcorn_data.base-plugin_types.date.fieldviews.show.html +0 -2
- package/docs/modules/_saltcorn_data.base-plugin_types.date.fieldviews.showDay.html +0 -2
- package/docs/modules/_saltcorn_data.base-plugin_types.date.fieldviews.yearsAgo.html +0 -2
- package/docs/modules/_saltcorn_data.base-plugin_types.date.html +0 -3
- package/docs/modules/_saltcorn_data.base-plugin_types.date.presets.html +0 -2
- package/docs/modules/_saltcorn_data.base-plugin_types.float.fieldviews.edit.html +0 -2
- package/docs/modules/_saltcorn_data.base-plugin_types.float.fieldviews.html +0 -2
- package/docs/modules/_saltcorn_data.base-plugin_types.float.fieldviews.show.html +0 -2
- package/docs/modules/_saltcorn_data.base-plugin_types.float.html +0 -3
- package/docs/modules/_saltcorn_data.base-plugin_types.int.distance_operators.html +0 -2
- package/docs/modules/_saltcorn_data.base-plugin_types.int.html +0 -3
- package/docs/modules/_saltcorn_data.base-plugin_types.string.fieldviews.as_header.html +0 -2
- package/docs/modules/_saltcorn_data.base-plugin_types.string.fieldviews.as_link.html +0 -2
- package/docs/modules/_saltcorn_data.base-plugin_types.string.fieldviews.as_text.html +0 -2
- package/docs/modules/_saltcorn_data.base-plugin_types.string.fieldviews.edit.html +0 -2
- package/docs/modules/_saltcorn_data.base-plugin_types.string.fieldviews.html +0 -2
- package/docs/modules/_saltcorn_data.base-plugin_types.string.fieldviews.img_from_url.html +0 -2
- package/docs/modules/_saltcorn_data.base-plugin_types.string.fieldviews.password.html +0 -2
- package/docs/modules/_saltcorn_data.base-plugin_types.string.fieldviews.radio_group.html +0 -2
- package/docs/modules/_saltcorn_data.base-plugin_types.string.fieldviews.textarea.html +0 -2
- package/docs/modules/_saltcorn_data.base-plugin_types.string.html +0 -3
- package/docs/modules/_saltcorn_data.base-plugin_types.string.presets.html +0 -2
- package/docs/modules/_saltcorn_data.tests_actions.test.html +0 -1
- package/docs/modules/_saltcorn_data.tests_auth.test.html +0 -1
- package/docs/modules/_saltcorn_data.tests_auxtest.test.html +0 -1
- package/docs/modules/_saltcorn_data.tests_base.test.html +0 -1
- package/docs/modules/_saltcorn_data.tests_calc.test.html +0 -1
- package/docs/modules/_saltcorn_data.tests_composite_pk.test.html +0 -1
- package/docs/modules/_saltcorn_data.tests_config.test.html +0 -1
- package/docs/modules/_saltcorn_data.tests_db.test.html +0 -1
- package/docs/modules/_saltcorn_data.tests_discover.test.html +0 -1
- package/docs/modules/_saltcorn_data.tests_edit.test.html +0 -1
- package/docs/modules/_saltcorn_data.tests_email.test.html +0 -1
- package/docs/modules/_saltcorn_data.tests_exact_views.test.html +0 -1
- package/docs/modules/_saltcorn_data.tests_field.test.html +0 -1
- package/docs/modules/_saltcorn_data.tests_fieldviews.test.html +0 -1
- package/docs/modules/_saltcorn_data.tests_file.test.html +0 -1
- package/docs/modules/_saltcorn_data.tests_filter.test.html +0 -1
- package/docs/modules/_saltcorn_data.tests_form.test.html +0 -1
- package/docs/modules/_saltcorn_data.tests_list.test.html +0 -1
- package/docs/modules/_saltcorn_data.tests_models.test.html +0 -1
- package/docs/modules/_saltcorn_data.tests_page.test.html +0 -1
- package/docs/modules/_saltcorn_data.tests_page_group.test.html +0 -1
- package/docs/modules/_saltcorn_data.tests_plugin.test.html +0 -1
- package/docs/modules/_saltcorn_data.tests_show.test.html +0 -1
- package/docs/modules/_saltcorn_data.tests_state.test.html +0 -1
- package/docs/modules/_saltcorn_data.tests_table.test.html +0 -1
- package/docs/modules/_saltcorn_data.tests_table_history.test.html +0 -1
- package/docs/modules/_saltcorn_data.tests_tag.test.html +0 -1
- package/docs/modules/_saltcorn_data.tests_user.test.html +0 -1
- package/docs/modules/_saltcorn_data.tests_view.test.html +0 -1
- package/docs/modules/_saltcorn_data.tests_workflow.test.html +0 -1
- package/docs/modules/_saltcorn_data.tests_workflow_run.test.html +0 -1
- package/docs/modules/_saltcorn_mobile-builder.appium_tests_ui.test.html +0 -1
- package/docs/modules/_saltcorn_mobile-builder.tests_versioncode.test.html +0 -1
- package/docs/modules/_saltcorn_mobile-builder.tests_webpack.test.html +0 -1
- package/docs/types/_saltcorn_data.models_internal_push_message_helper.FcmSubscription.html +0 -4
- package/docs/types/_saltcorn_data.models_internal_push_message_helper.Subscription.html +0 -1
- package/docs/types/_saltcorn_db-common.internal.AggregationOptions.html +0 -11
- package/docs/types/_saltcorn_db-common.internal.CoordOpts.html +0 -5
- package/docs/types/_saltcorn_db-common.internal.DatabaseClient.html +0 -2
- package/docs/types/_saltcorn_db-common.internal.JoinField.html +0 -6
- package/docs/types/_saltcorn_db-common.internal.JoinFields.html +0 -1
- package/docs/types/_saltcorn_db-common.internal.JoinOptions.html +0 -1
- package/docs/types/_saltcorn_db-common.internal.JsonPath.html +0 -1
- package/docs/types/_saltcorn_db-common.internal.JsonPathElem.html +0 -1
- package/docs/types/_saltcorn_db-common.internal.Operator.html +0 -1
- package/docs/types/_saltcorn_db-common.internal.PartialSome.html +0 -1
- package/docs/types/_saltcorn_db-common.internal.PrimaryKeyValue.html +0 -1
- package/docs/types/_saltcorn_db-common.internal.Row.html +0 -1
- package/docs/types/_saltcorn_db-common.internal.SelectOptions.html +0 -21
- package/docs/types/_saltcorn_db-common.internal.StrongRow.html +0 -1
- package/docs/types/_saltcorn_db-common.internal.SubselectOptions.html +0 -5
- package/docs/types/_saltcorn_db-common.internal.Value.html +0 -1
- package/docs/types/_saltcorn_db-common.internal.Where.html +0 -5
- package/docs/variables/_saltcorn_data.base-plugin_fieldviews.radio_select.description.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_fieldviews.radio_select.isEdit.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_fieldviews.radio_select.type.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_fieldviews.search_join_field.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_fieldviews.search_or_create.blockDisplay.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_fieldviews.search_or_create.description.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_fieldviews.search_or_create.isEdit.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_fieldviews.search_or_create.type.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_fieldviews.select.blockDisplay.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_fieldviews.select.configFields.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_fieldviews.select.description.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_fieldviews.select.isEdit.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_fieldviews.select.type.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_fieldviews.select_by_code.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_fieldviews.select_by_view.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_fieldviews.select_from_table.blockDisplay.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_fieldviews.select_from_table.configFields.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_fieldviews.select_from_table.description.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_fieldviews.select_from_table.isEdit.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_fieldviews.select_from_table.type.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_fieldviews.two_level_select.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_fileview.fileview.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.bool.attributes.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.bool.description.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.bool.fieldviews.TrueFalse.description.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.bool.fieldviews.TrueFalse.isEdit.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.bool.fieldviews.checkboxes.description.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.bool.fieldviews.checkboxes.isEdit.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.bool.fieldviews.edit.configFields.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.bool.fieldviews.edit.description.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.bool.fieldviews.edit.isEdit.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.bool.fieldviews.show.description.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.bool.fieldviews.show.isEdit.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.bool.fieldviews.show_with_html.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.bool.fieldviews.switch.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.bool.fieldviews.thumbs_up_down.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.bool.fieldviews.tristate.configFields.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.bool.fieldviews.tristate.description.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.bool.fieldviews.tristate.isEdit.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.bool.js_type.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.bool.name.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.bool.sql_name.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.color.attributes.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.color.description.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.color.fieldviews.edit.blockDisplay.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.color.fieldviews.edit.description.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.color.fieldviews.edit.isEdit.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.color.fieldviews.show.description.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.color.fieldviews.show.isEdit.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.color.fieldviews.show_with_html.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.color.js_type.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.color.name.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.color.sql_name.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.date.attributes.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.date.description.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.date.fieldviews.edit.blockDisplay.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.date.fieldviews.edit.configFields.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.date.fieldviews.edit.description.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.date.fieldviews.edit.isEdit.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.date.fieldviews.editDay.blockDisplay.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.date.fieldviews.editDay.configFields.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.date.fieldviews.editDay.description.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.date.fieldviews.editDay.isEdit.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.date.fieldviews.format.configFields.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.date.fieldviews.format.description.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.date.fieldviews.format.isEdit.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.date.fieldviews.relative.description.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.date.fieldviews.relative.isEdit.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.date.fieldviews.show.description.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.date.fieldviews.show.isEdit.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.date.fieldviews.showDay.description.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.date.fieldviews.showDay.isEdit.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.date.fieldviews.show_with_html.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.date.fieldviews.yearsAgo.description.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.date.fieldviews.yearsAgo.isEdit.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.date.js_type.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.date.name.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.date.sql_name.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.float.attributes.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.float.description.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.float.distance_operators.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.float.fieldviews.above_input.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.float.fieldviews.below_input.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.float.fieldviews.edit.blockDisplay.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.float.fieldviews.edit.configFields.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.float.fieldviews.edit.description.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.float.fieldviews.edit.isEdit.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.float.fieldviews.heat_cell.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.float.fieldviews.number_slider.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.float.fieldviews.progress_bar.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.float.fieldviews.range_interval.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.float.fieldviews.show.description.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.float.fieldviews.show.isEdit.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.float.fieldviews.show_with_html.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.float.fieldviews.to_locale_string.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.float.js_type.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.float.name.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.float.sql_name.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.int.attributes.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.int.description.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.int.distance_operators.near.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.int.fieldviews.html +0 -3
- package/docs/variables/_saltcorn_data.base-plugin_types.int.js_type.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.int.name.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.int.primaryKey.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.int.sql_name.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.string.description.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.string.fieldviews.as_header.description.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.string.fieldviews.as_header.isEdit.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.string.fieldviews.as_link.configFields.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.string.fieldviews.as_link.description.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.string.fieldviews.as_link.isEdit.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.string.fieldviews.as_text.description.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.string.fieldviews.as_text.isEdit.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.string.fieldviews.checkbox_group.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.string.fieldviews.code.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.string.fieldviews.code_editor.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.string.fieldviews.edit.blockDisplay.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.string.fieldviews.edit.description.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.string.fieldviews.edit.isEdit.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.string.fieldviews.ellipsize.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.string.fieldviews.fill_formula_btn.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.string.fieldviews.img_from_url.description.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.string.fieldviews.img_from_url.isEdit.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.string.fieldviews.make_unique.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.string.fieldviews.monospace_block.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.string.fieldviews.password.blockDisplay.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.string.fieldviews.password.configFields.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.string.fieldviews.password.description.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.string.fieldviews.password.isEdit.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.string.fieldviews.preFormatted.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.string.fieldviews.radio_group.configFields.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.string.fieldviews.radio_group.description.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.string.fieldviews.radio_group.isEdit.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.string.fieldviews.select_by_code.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.string.fieldviews.show_with_html.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.string.fieldviews.textarea.blockDisplay.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.string.fieldviews.textarea.configFields.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.string.fieldviews.textarea.description.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.string.fieldviews.textarea.isEdit.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.string.js_type.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.string.name.html +0 -1
- package/docs/variables/_saltcorn_data.base-plugin_types.string.sql_name.html +0 -1
- package/docs/variables/_saltcorn_data.contract.fieldlike.html +0 -1
- package/docs/variables/_saltcorn_data.contract.is_column.html +0 -1
- package/docs/variables/_saltcorn_data.contract.is_header.html +0 -1
- package/docs/variables/_saltcorn_data.contract.is_pack.html +0 -1
- package/docs/variables/_saltcorn_data.contract.is_plugin.html +0 -1
- package/docs/variables/_saltcorn_data.contract.is_plugin_layout.html +0 -1
- package/docs/variables/_saltcorn_data.contract.is_plugin_type.html +0 -1
- package/docs/variables/_saltcorn_data.contract.is_plugin_wrap.html +0 -1
- package/docs/variables/_saltcorn_data.contract.is_plugin_wrap_arg.html +0 -1
- package/docs/variables/_saltcorn_data.contract.is_table_query.html +0 -1
- package/docs/variables/_saltcorn_data.contract.is_tablely.html +0 -1
- package/docs/variables/_saltcorn_data.contract.is_viewtemplate.html +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,8 +2,16 @@
|
|
|
2
2
|
|
|
3
3
|
## 1.6.0 - In development
|
|
4
4
|
|
|
5
|
+
* Entities list shows most recently edited entities
|
|
6
|
+
|
|
7
|
+
* `old_row` can now be accessed in Update trigger only if.. formula
|
|
8
|
+
|
|
9
|
+
* If List column show if true formula does not access fields (e.g. based only on `user`) the whole column is now shown or hidden.
|
|
10
|
+
|
|
5
11
|
* User roles below admin can now be given permission to edit users with the same user interface as that used by admin (at /useradmin URLs).
|
|
6
12
|
|
|
13
|
+
* If the copilot is installed, it can now help write or change run_js_code scripts ("Edit with AI" button)
|
|
14
|
+
|
|
7
15
|
* In the `relative` fieldview for date fields, the full time is shown when on hover (using the title attribute)
|
|
8
16
|
|
|
9
17
|
* Typescript types are now stripped from run_js_code actions and code pages (if on Node.js 22.13.0 or later)
|
package/app.js
CHANGED
|
@@ -19,7 +19,7 @@ const BearerStrategy = require("passport-http-bearer");
|
|
|
19
19
|
const User = require("@saltcorn/data/models/user");
|
|
20
20
|
const File = require("@saltcorn/data/models/file");
|
|
21
21
|
const flash = require("connect-flash");
|
|
22
|
-
const
|
|
22
|
+
const Plugin = require("@saltcorn/data/models/plugin");
|
|
23
23
|
const homepage = require("./routes/homepage");
|
|
24
24
|
const errors = require("./errors");
|
|
25
25
|
const {
|
|
@@ -102,7 +102,7 @@ const getApp = async (opts = {}) => {
|
|
|
102
102
|
// switch on sql logging
|
|
103
103
|
if (sql_log) db.set_sql_logging(); // dont override cli flag
|
|
104
104
|
// load all plugins
|
|
105
|
-
await loadAllPlugins();
|
|
105
|
+
await Plugin.loadAllPlugins();
|
|
106
106
|
// get development mode status
|
|
107
107
|
const development_mode = getState().getConfig("development_mode", false);
|
|
108
108
|
// switch on sql logging - but it was initiated before???
|
|
@@ -214,7 +214,11 @@ const getApp = async (opts = {}) => {
|
|
|
214
214
|
// init multitenant mode
|
|
215
215
|
if (db.is_it_multi_tenant()) {
|
|
216
216
|
const tenants = await getAllTenants();
|
|
217
|
-
await init_multi_tenant(
|
|
217
|
+
await init_multi_tenant(
|
|
218
|
+
Plugin.loadAllPlugins,
|
|
219
|
+
opts.disableMigrate,
|
|
220
|
+
tenants
|
|
221
|
+
);
|
|
218
222
|
}
|
|
219
223
|
const pruneSessionInterval = +getState().getConfig(
|
|
220
224
|
"prune_session_interval",
|
|
@@ -338,7 +342,7 @@ const getApp = async (opts = {}) => {
|
|
|
338
342
|
const mu =
|
|
339
343
|
(await User.findByApiToken(token)) ||
|
|
340
344
|
(await User.findOne({ api_token: token }));
|
|
341
|
-
if (mu && token && token.length > 5)
|
|
345
|
+
if (mu && !mu.disabled && token && token.length > 5)
|
|
342
346
|
return done(
|
|
343
347
|
null,
|
|
344
348
|
{
|
|
@@ -365,6 +369,8 @@ const getApp = async (opts = {}) => {
|
|
|
365
369
|
const u = await User.findOne({ email: jwt_payload.sub });
|
|
366
370
|
if (
|
|
367
371
|
u &&
|
|
372
|
+
!u.disabled &&
|
|
373
|
+
!u._attributes?.totp_enabled &&
|
|
368
374
|
u.last_mobile_login &&
|
|
369
375
|
(typeof u.last_mobile_login === "string"
|
|
370
376
|
? new Date(u.last_mobile_login).valueOf()
|
package/auth/routes.js
CHANGED
|
@@ -23,6 +23,7 @@ const {
|
|
|
23
23
|
setTenant,
|
|
24
24
|
is_relative_url,
|
|
25
25
|
isAdmin,
|
|
26
|
+
normalize_relative_url,
|
|
26
27
|
} = require("../routes/utils.js");
|
|
27
28
|
const { getState } = require("@saltcorn/data/db/state");
|
|
28
29
|
const { send_reset_email } = require("./resetpw");
|
|
@@ -60,11 +61,15 @@ const moment = require("moment");
|
|
|
60
61
|
const View = require("@saltcorn/data/models/view");
|
|
61
62
|
const Table = require("@saltcorn/data/models/table");
|
|
62
63
|
const { getForm } = require("@saltcorn/data/viewable_fields");
|
|
63
|
-
const {
|
|
64
|
+
const {
|
|
65
|
+
InvalidConfiguration,
|
|
66
|
+
getSessionId,
|
|
67
|
+
isTest,
|
|
68
|
+
} = require("@saltcorn/data/utils");
|
|
64
69
|
const Trigger = require("@saltcorn/data/models/trigger");
|
|
65
70
|
const { restore_backup } = require("../markup/admin.js");
|
|
66
71
|
const { restore } = require("@saltcorn/admin-models/models/backup");
|
|
67
|
-
const
|
|
72
|
+
const Plugin = require("@saltcorn/data/models/plugin");
|
|
68
73
|
const fs = require("fs");
|
|
69
74
|
const base32 = require("thirty-two");
|
|
70
75
|
const qrcode = require("qrcode");
|
|
@@ -82,6 +87,61 @@ const jwt = require("jsonwebtoken");
|
|
|
82
87
|
const router = new Router();
|
|
83
88
|
module.exports = router;
|
|
84
89
|
|
|
90
|
+
/**
|
|
91
|
+
* @param {object} req
|
|
92
|
+
* @param {object} res
|
|
93
|
+
* @returns {void}
|
|
94
|
+
*/
|
|
95
|
+
function handler(req, res) {
|
|
96
|
+
console.log(
|
|
97
|
+
`Failed login attempt for: ${(req.body || {}).email} from ${
|
|
98
|
+
req.ip
|
|
99
|
+
} UA ${req.get("User-Agent")}`
|
|
100
|
+
);
|
|
101
|
+
req.flash(
|
|
102
|
+
"error",
|
|
103
|
+
"You've made too many failed attempts in a short period of time, please try again " +
|
|
104
|
+
moment(req.rateLimit.resetTime).fromNow()
|
|
105
|
+
);
|
|
106
|
+
if (isTest()) res.set("x-ratelimit-redirect", "TooManyRequests");
|
|
107
|
+
res.redirect("/auth/login"); // brute force protection triggered, send them back to the login page
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
/**
|
|
111
|
+
* try to find a unique user id in login submit
|
|
112
|
+
* @param {object} body
|
|
113
|
+
* @returns {string}
|
|
114
|
+
*/
|
|
115
|
+
const userIdKey = (body) => {
|
|
116
|
+
if (body.email) return body.email;
|
|
117
|
+
const { remember, password, _csrf, passwordRepeat, ...rest } = body;
|
|
118
|
+
const kvs = Object.entries(rest);
|
|
119
|
+
if (kvs.length > 0) return kvs[0][1];
|
|
120
|
+
else return "nokey";
|
|
121
|
+
};
|
|
122
|
+
const ipLimiter = rateLimit({
|
|
123
|
+
// TBD create config parameter
|
|
124
|
+
windowMs: 60 * 60 * 1000, // 60 minutes
|
|
125
|
+
max: 100, // limit each IP to 100 requests per windowMs
|
|
126
|
+
handler,
|
|
127
|
+
});
|
|
128
|
+
|
|
129
|
+
const userLimiter = rateLimit({
|
|
130
|
+
// TBD create config parameter
|
|
131
|
+
windowMs: 5 * 60 * 1000, // 5 minutes
|
|
132
|
+
max: 5, // limit each IP to 100 requests per windowMs
|
|
133
|
+
keyGenerator: (req) => userIdKey(req.body || {}),
|
|
134
|
+
handler,
|
|
135
|
+
});
|
|
136
|
+
|
|
137
|
+
const pendingUserLimiter = rateLimit({
|
|
138
|
+
// TBD create config parameter
|
|
139
|
+
windowMs: 5 * 60 * 1000, // 5 minutes
|
|
140
|
+
max: 5, // limit each IP to 100 requests per windowMs
|
|
141
|
+
keyGenerator: (req) => req.user?.pending_user?.id,
|
|
142
|
+
handler,
|
|
143
|
+
});
|
|
144
|
+
|
|
85
145
|
/**
|
|
86
146
|
* Login Form
|
|
87
147
|
* @param {object} req
|
|
@@ -107,7 +167,7 @@ const loginForm = (req, isCreating) => {
|
|
|
107
167
|
type: "String",
|
|
108
168
|
attributes: {
|
|
109
169
|
input_type: "email",
|
|
110
|
-
autocomplete: "username"
|
|
170
|
+
autocomplete: "username",
|
|
111
171
|
},
|
|
112
172
|
sublabel: user_sublabel || undefined,
|
|
113
173
|
// fixed correct size of email is 254 https://stackoverflow.com/questions/386294/what-is-the-maximum-length-of-a-valid-email-address
|
|
@@ -272,7 +332,13 @@ const loginWithJwt = async (email, password, saltcornApp, res, req) => {
|
|
|
272
332
|
if (email !== undefined && password !== undefined) {
|
|
273
333
|
// with credentials
|
|
274
334
|
const user = await User.findOne({ email });
|
|
275
|
-
if (
|
|
335
|
+
if (
|
|
336
|
+
user &&
|
|
337
|
+
!user.disabled &&
|
|
338
|
+
user.auth_method_allowed("Password") &&
|
|
339
|
+
user.checkPassword(password) &&
|
|
340
|
+
!user._attributes.totp_enabled
|
|
341
|
+
) {
|
|
276
342
|
const now = new Date();
|
|
277
343
|
const pushEnabled = !!user._attributes?.notify_push;
|
|
278
344
|
const tokenUser = { ...user.session_object };
|
|
@@ -473,6 +539,8 @@ router.get(
|
|
|
473
539
|
*/
|
|
474
540
|
router.post(
|
|
475
541
|
"/reset",
|
|
542
|
+
ipLimiter,
|
|
543
|
+
userLimiter,
|
|
476
544
|
error_catcher(async (req, res) => {
|
|
477
545
|
const result = await User.resetPasswordWithToken({
|
|
478
546
|
email: (req.body || {}).email,
|
|
@@ -511,6 +579,8 @@ router.post(
|
|
|
511
579
|
*/
|
|
512
580
|
router.post(
|
|
513
581
|
"/forgot",
|
|
582
|
+
ipLimiter,
|
|
583
|
+
userLimiter,
|
|
514
584
|
error_catcher(async (req, res) => {
|
|
515
585
|
if (getState().getConfig("allow_forgot")) {
|
|
516
586
|
const { email } = req.body || {};
|
|
@@ -698,7 +768,7 @@ router.post(
|
|
|
698
768
|
try {
|
|
699
769
|
const err = await restore(
|
|
700
770
|
newPath,
|
|
701
|
-
(p) =>
|
|
771
|
+
(p) => Plugin.loadAndSaveNewPlugin(p),
|
|
702
772
|
true
|
|
703
773
|
);
|
|
704
774
|
|
|
@@ -813,7 +883,7 @@ router.post(
|
|
|
813
883
|
try {
|
|
814
884
|
const err = await restore(
|
|
815
885
|
backupPath,
|
|
816
|
-
(p) =>
|
|
886
|
+
(p) => Plugin.loadAndSaveNewPlugin(p),
|
|
817
887
|
true,
|
|
818
888
|
password
|
|
819
889
|
);
|
|
@@ -1089,6 +1159,8 @@ router.post(
|
|
|
1089
1159
|
*/
|
|
1090
1160
|
router.post(
|
|
1091
1161
|
"/signup",
|
|
1162
|
+
ipLimiter,
|
|
1163
|
+
userLimiter,
|
|
1092
1164
|
setTenant,
|
|
1093
1165
|
error_catcher(async (req, res) => {
|
|
1094
1166
|
if (!getState().getConfig("allow_signup")) {
|
|
@@ -1241,52 +1313,6 @@ router.post(
|
|
|
1241
1313
|
})
|
|
1242
1314
|
);
|
|
1243
1315
|
|
|
1244
|
-
/**
|
|
1245
|
-
* @param {object} req
|
|
1246
|
-
* @param {object} res
|
|
1247
|
-
* @returns {void}
|
|
1248
|
-
*/
|
|
1249
|
-
function handler(req, res) {
|
|
1250
|
-
console.log(
|
|
1251
|
-
`Failed login attempt for: ${(req.body || {}).email} from ${
|
|
1252
|
-
req.ip
|
|
1253
|
-
} UA ${req.get("User-Agent")}`
|
|
1254
|
-
);
|
|
1255
|
-
req.flash(
|
|
1256
|
-
"error",
|
|
1257
|
-
"You've made too many failed attempts in a short period of time, please try again " +
|
|
1258
|
-
moment(req.rateLimit.resetTime).fromNow()
|
|
1259
|
-
);
|
|
1260
|
-
res.redirect("/auth/login"); // brute force protection triggered, send them back to the login page
|
|
1261
|
-
}
|
|
1262
|
-
|
|
1263
|
-
/**
|
|
1264
|
-
* try to find a unique user id in login submit
|
|
1265
|
-
* @param {object} body
|
|
1266
|
-
* @returns {string}
|
|
1267
|
-
*/
|
|
1268
|
-
const userIdKey = (body) => {
|
|
1269
|
-
if (body.email) return body.email;
|
|
1270
|
-
const { remember, password, _csrf, passwordRepeat, ...rest } = body;
|
|
1271
|
-
const kvs = Object.entries(rest);
|
|
1272
|
-
if (kvs.length > 0) return kvs[0][1];
|
|
1273
|
-
else return "nokey";
|
|
1274
|
-
};
|
|
1275
|
-
const ipLimiter = rateLimit({
|
|
1276
|
-
// TBD create config parameter
|
|
1277
|
-
windowMs: 60 * 60 * 1000, // 60 minutes
|
|
1278
|
-
max: 100, // limit each IP to 100 requests per windowMs
|
|
1279
|
-
handler,
|
|
1280
|
-
});
|
|
1281
|
-
|
|
1282
|
-
const userLimiter = rateLimit({
|
|
1283
|
-
// TBD create config parameter
|
|
1284
|
-
windowMs: 5 * 60 * 1000, // 5 minutes
|
|
1285
|
-
max: 3, // limit each IP to 100 requests per windowMs
|
|
1286
|
-
keyGenerator: (req) => userIdKey(req.body || {}),
|
|
1287
|
-
handler,
|
|
1288
|
-
});
|
|
1289
|
-
|
|
1290
1316
|
function setOldSessionID(req, res, next) {
|
|
1291
1317
|
req.old_session_id = getSessionId(req);
|
|
1292
1318
|
next();
|
|
@@ -1368,11 +1394,10 @@ router.post(
|
|
|
1368
1394
|
}
|
|
1369
1395
|
if (getState().get2FApolicy(req.user) === "Mandatory") {
|
|
1370
1396
|
res.redirect("/auth/twofa/setup/totp");
|
|
1371
|
-
} else if (
|
|
1372
|
-
(req.body
|
|
1373
|
-
|
|
1374
|
-
|
|
1375
|
-
res.redirect(decodeURIComponent((req.body || {}).dest));
|
|
1397
|
+
} else if (req.body?.dest) {
|
|
1398
|
+
const dest = normalize_relative_url(decodeURIComponent(req.body.dest));
|
|
1399
|
+
if (dest !== null) res.redirect(dest);
|
|
1400
|
+
else res.redirect("/");
|
|
1376
1401
|
} else res.redirect("/");
|
|
1377
1402
|
})
|
|
1378
1403
|
);
|
|
@@ -1384,6 +1409,8 @@ router.post(
|
|
|
1384
1409
|
*/
|
|
1385
1410
|
router.get(
|
|
1386
1411
|
"/login-with/:method",
|
|
1412
|
+
ipLimiter,
|
|
1413
|
+
userLimiter,
|
|
1387
1414
|
error_catcher(async (req, res, next) => {
|
|
1388
1415
|
const { method } = req.params;
|
|
1389
1416
|
if (method === "jwt") {
|
|
@@ -1422,6 +1449,8 @@ router.get(
|
|
|
1422
1449
|
*/
|
|
1423
1450
|
router.post(
|
|
1424
1451
|
"/login-with/jwt",
|
|
1452
|
+
ipLimiter,
|
|
1453
|
+
userLimiter,
|
|
1425
1454
|
error_catcher(async (req, res) => {
|
|
1426
1455
|
const { email, password } = req.body;
|
|
1427
1456
|
await loginWithJwt(
|
|
@@ -1448,8 +1477,12 @@ router.post(
|
|
|
1448
1477
|
}
|
|
1449
1478
|
const renewFn = async () => {
|
|
1450
1479
|
const user = await User.findOne({ email: req.user.email });
|
|
1451
|
-
if (!user)
|
|
1480
|
+
if (!user || user.disabled)
|
|
1452
1481
|
return res.status(401).json({ error: req.__("User not found") });
|
|
1482
|
+
if (user._attributes?.totp_enabled)
|
|
1483
|
+
return res
|
|
1484
|
+
.status(401)
|
|
1485
|
+
.json({ error: req.__("Two-factor authentication is enabled") });
|
|
1453
1486
|
const now = new Date();
|
|
1454
1487
|
const pushEnabled = !!user._attributes?.notify_push;
|
|
1455
1488
|
const tokenUser = { ...user.session_object };
|
|
@@ -1496,6 +1529,8 @@ router.get(
|
|
|
1496
1529
|
*/
|
|
1497
1530
|
router.post(
|
|
1498
1531
|
"/login-with/:method",
|
|
1532
|
+
ipLimiter,
|
|
1533
|
+
userLimiter,
|
|
1499
1534
|
error_catcher(async (req, res, next) => {
|
|
1500
1535
|
const { method } = req.params;
|
|
1501
1536
|
const auth = getState().auth_methods[method];
|
|
@@ -1609,9 +1644,19 @@ const callbackFn = async (req, res, next) => {
|
|
|
1609
1644
|
}
|
|
1610
1645
|
};
|
|
1611
1646
|
|
|
1612
|
-
router.get(
|
|
1647
|
+
router.get(
|
|
1648
|
+
"/callback/:method",
|
|
1649
|
+
ipLimiter,
|
|
1650
|
+
userLimiter,
|
|
1651
|
+
error_catcher(callbackFn)
|
|
1652
|
+
);
|
|
1613
1653
|
|
|
1614
|
-
router.post(
|
|
1654
|
+
router.post(
|
|
1655
|
+
"/callback/:method",
|
|
1656
|
+
ipLimiter,
|
|
1657
|
+
userLimiter,
|
|
1658
|
+
error_catcher(callbackFn)
|
|
1659
|
+
);
|
|
1615
1660
|
|
|
1616
1661
|
/**
|
|
1617
1662
|
* @param {object} req
|
|
@@ -2294,6 +2339,7 @@ router.post(
|
|
|
2294
2339
|
console.log("TOTP return ", rv);
|
|
2295
2340
|
user._attributes.totp_enabled = true;
|
|
2296
2341
|
await user.update({ _attributes: user._attributes });
|
|
2342
|
+
await user.updateLastMobileLogin(null);
|
|
2297
2343
|
req.flash(
|
|
2298
2344
|
"success",
|
|
2299
2345
|
req.__(
|
|
@@ -2461,6 +2507,8 @@ router.get(
|
|
|
2461
2507
|
*/
|
|
2462
2508
|
router.post(
|
|
2463
2509
|
"/twofa/login/totp",
|
|
2510
|
+
ipLimiter,
|
|
2511
|
+
pendingUserLimiter,
|
|
2464
2512
|
passport.authenticate("totp", {
|
|
2465
2513
|
failureRedirect: "/auth/twofa/login/totp",
|
|
2466
2514
|
failureFlash: true,
|
package/docs/assets/hierarchy.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
window.hierarchyData = "
|
|
1
|
+
window.hierarchyData = "eJy1l11vmzAUhv+LrynDNmA7d5P2cbVpqqrtoqoQDQ5F5SMyZFVV9b9PB5zEEEpwwm4sBNH7Pnbs4/e8IVVVTY1W9wT7PHQIDjwKI/McgsMAw8h9h2DmwVdGOIxhACODNxwLGCn8nvvwRngMxgA7lAoSPDhIyU0u101WlTVavaHWCh7KuJBohT4/1o2K1823TOYJctBzViZoRYLQQTuVoxXKykaqTbyW9aeojvNmXakyal63snaLKpH5TawV6mj/FG1AzO1Ju09NkSMHrfO4rtEKNXVyA143B334+JTliZIlWt1TnxPv4d1B7ap8BHwrtzJu/iN2Z2APLwTV8Mwbg69UsRh1pQrXFLamDQgOO9owwCO0v+JULkW7jVPpmsLWtKEnuKbl/ge031W12y6JHKWg6J542NPjgHX0zBs7hwflH7J4lGr5OURFK3w6lc7QfkKE6K3OCB+bUL5Ls3KxebRqbl/8AuZwzxwGI8y3Vb7YhldVftzwIGxPS7ne8IyNbZm7+HE53AbE3J60PbBPgw6YYzEKnC6HmxqwqT0qD/Vx5HSsUN/F6deyUa8L8kYSBN2hgz26oPqC5P7otlBZmi5XQZpOzh3IX4C9P3vCYyPYvzP5shTz30y+uKawNS0jVGja0avxT6WeN3m1GPGL1nOHBvbkPsZATqnwzBr3ZVcUrz+r5FgxMOF75Fa9x5vETewmWZyquIjKKpF1lIBC++wexD7E6150HMTkuAqhNZ/h218SWAnIxYEHIyMwCt+hvoeZXqrALAJwNV6F2d66LeteatY6MWJAtCX4Koq2pHcYB7FZHMKMV/q8X0fSaWiWo+AMGviPDBo4zFehQGnoOPZScyA4MfdHv2c6T9Ce+lq3GdNdkeEpBB16DtoeO2fVtTRz2psjBbQIJoXZv8y3h+ZkskM5GkLKHxxFe8O22ZhsMgxDHLCBYb+LsHLV/cL5PsEAIISOAQwagQsw9pF/btQ3mcIeUz/Lz0fpYvqZtG7YUm7++b04Ptu0Dd6Tgdsw9GkwrLn2jl12ns7MhicPWc8zvcQxdadir+Emevn2JNfaWOoEeza5mu69fTSMpvPNdeg8Fz6PzhDgBveGvW2bIyfzo2HoYzMongTE2aaHKHg2Amrz9/d/nnnnPQ=="
|
|
@@ -1 +1 @@
|
|
|
1
|
-
window.navigationData = "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"
|
|
1
|
+
window.navigationData = "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"
|