@saltcorn/server 1.6.0-beta.4 → 1.6.0-beta.6
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 -3
- 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.js.html +1 -0
- package/docs/functions/_saltcorn_data.migrations_202604141200.js.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.migrations_202604141200.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 -3
- 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 +4 -4
- package/docs/variables/_saltcorn_data.base-plugin_fieldviews.fieldviews.html +3 -3
- package/docs/variables/_saltcorn_data.base-plugin_fileview.fileviews.html +1 -1
- package/docs/variables/_saltcorn_data.base-plugin_index.index.html +6 -6
- 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 +3 -3
- 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/help/JavaScript action code.tmd +5 -1
- package/load_plugins.js +7 -398
- package/locales/en.json +5 -1
- package/package.json +13 -13
- package/public/saltcorn-common.js +6 -2
- package/public/saltcorn.js +1453 -0
- package/routes/actions.js +199 -12
- package/routes/admin.js +69 -12
- 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 +4 -0
- package/routes/files.js +18 -4
- package/routes/packs.js +2 -3
- package/routes/plugins.js +33 -18
- package/routes/scapi.js +1 -2
- package/routes/sync.js +163 -50
- package/routes/tables.js +4 -0
- package/routes/tenant.js +3 -3
- package/routes/utils.js +39 -2
- package/serve.js +21 -21
- package/tests/admin.test.js +5 -5
- package/tests/api.test.js +218 -0
- package/tests/auth.test.js +230 -1
- package/tests/files.test.js +39 -0
- package/tests/plugin_install.test.js +132 -13
- package/tests/plugins.test.js +1 -2
- package/tests/sync.test.js +842 -18
- package/wrapper.js +1 -1
- 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 = "eJy1l0tvozAUhf+L15SJH4Cd3UjzWM1oVFUzi6pCbnAoKo/IkKmqqv99dLGTGEITSJjNFYLonM+OH+e+IV1VTY2W9wQzITyCAxxC5dQjOAwZVBF5BEcYvkYMQ404VA5vOCVQGfyeB/BGkAXUkHmUCsYePKTVOlerJqvKGi3fUGsFD6UsFFqiz491o+Wq+ZapPEEees7KBC1JEHpoq3O0RFnZKL2WK1V/imuZN6tKl3HzulG1X1SJym+kVajj3VO8BjG/I+0/NUWOPLTKZV2jJWrq5Aa8bvb68PEpyxOtSrS8p4xT8fDuoXZWPgK+VRslm/+IbQwmwwcLTCw8p0PwlS5mo6504bvC02kJDQxtGLIB2l8yVXPRbmSqfFd4Mm2IcWRpRfQB7XddbTdzIscpKPpHHhfQR6Ghj/DQPtwr/1DFo9LzjyEuWuHjoRjD6QMizC71iOGhAeXbNCtnG0er5nfFL2DmO+aIDzDfVvlsC15X+WHBg/B0WrawCz7iQ0vmTj7Oh9uAmN+RvgA4YAaYUzIInM6Hmzqw6XRUzu125GzooL6T6dey0a8z8sYKBP2+w3R0wewFyYPBZaGzNJ3vBGmMnN+TvwB7t/cEWQxg/87Uy1zMfzP14rvCk2kjEnBLO3g1/qn08zqvZiN+sXp+32A6OaMLIKdUEJf8y7YoXn9WyeHEwITvkFv1Dm8iG+knmUy1LOKySlQdJ6DQPvt7sQ/xzAvDwVyOqxBa8xG+3SmBmYBcHAqoAnuULTCFSkM7VaG7k+BqvAqzvXVb1p3UqHkS7j3aHsFXUbRHusHYi43ggLlxOcx+v47EaFiWg+AoGup2AbCZr0KBo8Fw7KTGQHDqro9uz3SeoN31tW0zTndFB09oJfqevbZnmrM2Lc2Y9sahIDRwKdz+Zbw9NCcnO5SDIaT83lacbtg2GyebDNcwCnuG3S5ikqvtF873CQ4AYWQIoNcIXICxi/xjo77LxDtM3Sw/HsXE9DNp3bFlC/fP78Tx0aZt8D4ZuF3DgPXP3OmOJjufzsyOJ+dhxzO9xDH1T8Vex00w0XXr5topljbBnk2urntnHfWj6XhzGzrPhc+DMwS43r0x3bbNkSfzo2PIqBtrjwLiaNN9FDwbAa35+/s//RPnaQ=="
|
|
@@ -1 +1 @@
|
|
|
1
|
-
window.navigationData = "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"
|
|
1
|
+
window.navigationData = "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"
|