From da457f3629107c3606f7d1f5469b8bc823f22941 Mon Sep 17 00:00:00 2001 From: Hunter Perrin Date: Fri, 27 Sep 2024 23:54:27 -0700 Subject: [PATCH] Add latest API docs. --- static/api/1.0.0-beta.81/.nojekyll | 1 + static/api/1.0.0-beta.81/assets/highlight.css | 134 ++ static/api/1.0.0-beta.81/assets/icons.js | 15 + static/api/1.0.0-beta.81/assets/icons.svg | 1 + static/api/1.0.0-beta.81/assets/main.js | 59 + static/api/1.0.0-beta.81/assets/navigation.js | 1 + static/api/1.0.0-beta.81/assets/search.js | 1 + static/api/1.0.0-beta.81/assets/style.css | 1412 +++++++++++++++++ ...nymphjs_client.ClassNotAvailableError.html | 11 + .../classes/_nymphjs_client.ClientError.html | 13 + ...ent.ConnectionClosedUnexpectedlyError.html | 11 + .../_nymphjs_client.ConnectionError.html | 11 + .../classes/_nymphjs_client.Entity.html | 135 ++ ...client.EntityIsSleepingReferenceError.html | 11 + .../classes/_nymphjs_client.HttpError.html | 13 + .../_nymphjs_client.InformationalError.html | 13 + .../_nymphjs_client.InvalidRequestError.html | 11 + .../_nymphjs_client.InvalidResponseError.html | 11 + .../_nymphjs_client.InvalidStateError.html | 11 + .../classes/_nymphjs_client.Nymph.html | 48 + .../classes/_nymphjs_client.PubSub.html | 43 + .../_nymphjs_client.PubSubSubscription.html | 5 + .../_nymphjs_client.RedirectError.html | 13 + .../classes/_nymphjs_client.ServerError.html | 13 + .../classes/_nymphjs_client.SuccessError.html | 13 + .../classes/_nymphjs_client_node.Nymph.html | 41 + .../classes/_nymphjs_client_node.PubSub.html | 15 + .../_nymphjs_driver_mysql.MySQLDriver.html | 106 ++ ...js_driver_postgresql.PostgreSQLDriver.html | 110 ++ ..._nymphjs_driver_sqlite3.SQLite3Driver.html | 100 ++ ..._nymphjs_nymph.ClassNotAvailableError.html | 12 + .../classes/_nymphjs_nymph.Entity.html | 314 ++++ .../_nymphjs_nymph.EntityConflictError.html | 12 + ..._nymphjs_nymph.EntityInvalidDataError.html | 18 + ..._nymph.EntityIsSleepingReferenceError.html | 12 + ...hjs_nymph.EntityUniqueConstraintError.html | 12 + ..._nymphjs_nymph.InvalidParametersError.html | 12 + .../_nymphjs_nymph.InvalidStateError.html | 12 + .../_nymphjs_nymph.NotConfiguredError.html | 12 + .../classes/_nymphjs_nymph.Nymph.html | 283 ++++ .../classes/_nymphjs_nymph.NymphDriver.html | 77 + .../_nymphjs_nymph.QueryFailedError.html | 15 + .../_nymphjs_nymph.UnableToConnectError.html | 12 + .../classes/_nymphjs_pubsub.PubSub.html | 52 + .../_nymphjs_server.ForbiddenClassError.html | 12 + .../classes/_nymphjs_server.HttpError.html | 14 + .../classes/_nymphjs_sorter.Sorter.html | 26 + .../classes/_nymphjs_tilmeld.AbleObject.html | 261 +++ .../_nymphjs_tilmeld.AccessControlError.html | 14 + .../_nymphjs_tilmeld.BadDataError.html | 14 + .../_nymphjs_tilmeld.BadEmailError.html | 14 + .../_nymphjs_tilmeld.BadUsernameError.html | 14 + ...ouldNotChangeDefaultPrimaryGroupError.html | 12 + ...eld.EmailChangeRateLimitExceededError.html | 12 + .../classes/_nymphjs_tilmeld.Group.html | 319 ++++ .../classes/_nymphjs_tilmeld.Tilmeld.html | 171 ++ .../classes/_nymphjs_tilmeld.User.html | 394 +++++ .../_nymphjs_tilmeld_client.Group.html | 144 ++ ..._nymphjs_tilmeld_client.NeedTOTPError.html | 11 + .../classes/_nymphjs_tilmeld_client.User.html | 159 ++ .../_nymphjs_tilmeld_components.Account.html | 32 + .../_nymphjs_nymph.TilmeldAccessLevels.html | 5 + .../_nymphjs_guid.customAlphabet.html | 9 + .../functions/_nymphjs_guid.guid.html | 1 + .../functions/_nymphjs_guid.humanSecret.html | 1 + .../_nymphjs_guid.makeTableSuffix.html | 1 + .../functions/_nymphjs_guid.nanoid.html | 8 + .../_nymphjs_nymph.EntitiesTest.html | 1 + .../_nymphjs_nymph.ExportImportTest.html | 1 + .../functions/_nymphjs_nymph.UIDTest.html | 1 + ..._nymph.classNamesToEntityConstructors.html | 1 + .../_nymphjs_nymph.entitiesToReferences.html | 1 + .../_nymphjs_nymph.referencesToEntities.html | 1 + .../functions/_nymphjs_nymph.sortObj.html | 1 + .../_nymphjs_nymph.uniqueStrings.html | 1 + .../functions/_nymphjs_nymph.xor.html | 1 + .../_nymphjs_pubsub.createServer.html | 1 + .../_nymphjs_query_parser.queryParser.html | 1 + .../_nymphjs_server.createServer.html | 6 + .../_nymphjs_tilmeld.enforceTilmeld.html | 1 + ..._nymphjs_tilmeld_client.checkUsername.html | 1 + .../_nymphjs_tilmeld_client.login.html | 1 + .../_nymphjs_tilmeld_client.register.html | 1 + .../_nymphjs_tilmeld_setup.setup.html | 1 + static/api/1.0.0-beta.81/hierarchy.html | 1 + static/api/1.0.0-beta.81/index.html | 64 + ...nymphjs_client.AbortableAsyncIterator.html | 3 + .../_nymphjs_client.DataObjectInterface.html | 40 + .../_nymphjs_client.EntityInterface.html | 86 + ...ymphjs_driver_mysql.MySQLDriverConfig.html | 35 + ...ver_postgresql.PostgreSQLDriverConfig.html | 18 + ...js_driver_sqlite3.SQLite3DriverConfig.html | 40 + .../interfaces/_nymphjs_nymph.Config.html | 19 + .../_nymphjs_nymph.DataObjectInterface.html | 37 + .../_nymphjs_nymph.EntityInterface.html | 135 ++ .../_nymphjs_nymph.TilmeldInterface.html | 12 + .../interfaces/_nymphjs_pubsub.Config.html | 17 + .../interfaces/_nymphjs_tilmeld.Config.html | 178 +++ .../modules/_nymphjs_client.html | 73 + .../modules/_nymphjs_client_node.html | 26 + .../modules/_nymphjs_driver_mysql.html | 24 + .../modules/_nymphjs_driver_postgresql.html | 24 + .../modules/_nymphjs_driver_sqlite3.html | 24 + .../1.0.0-beta.81/modules/_nymphjs_guid.html | 24 + .../1.0.0-beta.81/modules/_nymphjs_nymph.html | 99 ++ .../modules/_nymphjs_pubsub.html | 41 + .../modules/_nymphjs_query_parser.html | 153 ++ .../modules/_nymphjs_server.html | 31 + .../modules/_nymphjs_sorter.html | 21 + .../modules/_nymphjs_tilmeld.html | 56 + .../modules/_nymphjs_tilmeld_client.html | 40 + .../modules/_nymphjs_tilmeld_components.html | 23 + .../modules/_nymphjs_tilmeld_setup.html | 23 + .../types/_nymphjs_client.Clause.html | 1 + .../_nymphjs_client.EntityConstructor.html | 1 + .../types/_nymphjs_client.EntityData.html | 1 + .../types/_nymphjs_client.EntityDataType.html | 1 + .../_nymphjs_client.EntityInstanceType.html | 1 + .../types/_nymphjs_client.EntityJson.html | 1 + .../types/_nymphjs_client.EntityPatch.html | 1 + .../_nymphjs_client.EntityReference.html | 1 + .../types/_nymphjs_client.EventType.html | 1 + ...nymphjs_client.HttpRequesterEventType.html | 1 + ..._client.HttpRequesterIteratorCallback.html | 1 + ...s_client.HttpRequesterRequestCallback.html | 1 + ...js_client.HttpRequesterRequestOptions.html | 1 + ..._client.HttpRequesterResponseCallback.html | 1 + .../types/_nymphjs_client.NymphOptions.html | 25 + .../types/_nymphjs_client.Options.html | 12 + .../types/_nymphjs_client.OrWithTime.html | 1 + .../_nymphjs_client.PubSubCallbacks.html | 1 + ..._nymphjs_client.PubSubConnectCallback.html | 1 + .../_nymphjs_client.PubSubCountCallback.html | 1 + ...mphjs_client.PubSubDisconnectCallback.html | 1 + .../_nymphjs_client.PubSubErrorCallback.html | 3 + .../_nymphjs_client.PubSubEventType.html | 1 + .../_nymphjs_client.PubSubRejectCallback.html | 1 + ..._nymphjs_client.PubSubResolveCallback.html | 1 + .../_nymphjs_client.PubSubSubscribable.html | 1 + .../types/_nymphjs_client.PubSubUpdate.html | 1 + .../_nymphjs_client.RequestCallback.html | 1 + .../_nymphjs_client.ResponseCallback.html | 1 + .../types/_nymphjs_client.Selector.html | 1 + .../_nymphjs_client.SerializedEntityData.html | 1 + .../_nymphjs_client.ServerCallResponse.html | 1 + ...mphjs_client.ServerCallStaticResponse.html | 1 + .../types/_nymphjs_nymph.ACProperties.html | 1 + .../types/_nymphjs_nymph.Clause.html | 1 + .../_nymphjs_nymph.EntityConstructor.html | 1 + .../types/_nymphjs_nymph.EntityData.html | 1 + .../types/_nymphjs_nymph.EntityDataType.html | 1 + .../_nymphjs_nymph.EntityInstanceType.html | 1 + .../types/_nymphjs_nymph.EntityJson.html | 1 + .../types/_nymphjs_nymph.EntityPatch.html | 1 + .../types/_nymphjs_nymph.EntityReference.html | 1 + .../_nymphjs_nymph.FormattedSelector.html | 1 + ...h.NymphAfterCommitTransactionCallback.html | 1 + ...ph.NymphAfterDeleteEntityByIDCallback.html | 1 + ..._nymph.NymphAfterDeleteEntityCallback.html | 1 + ...hjs_nymph.NymphAfterDeleteUIDCallback.html | 1 + ...ymphjs_nymph.NymphAfterNewUIDCallback.html | 1 + ...hjs_nymph.NymphAfterRenameUIDCallback.html | 1 + ...NymphAfterRollbackTransactionCallback.html | 1 + ...js_nymph.NymphAfterSaveEntityCallback.html | 1 + ...ymphjs_nymph.NymphAfterSetUIDCallback.html | 1 + ...ph.NymphAfterStartTransactionCallback.html | 1 + ....NymphBeforeCommitTransactionCallback.html | 1 + ...h.NymphBeforeDeleteEntityByIDCallback.html | 1 + ...nymph.NymphBeforeDeleteEntityCallback.html | 1 + ...js_nymph.NymphBeforeDeleteUIDCallback.html | 1 + ..._nymph.NymphBeforeGetEntitiesCallback.html | 1 + ...js_nymph.NymphBeforeGetEntityCallback.html | 1 + ...mphjs_nymph.NymphBeforeNewUIDCallback.html | 1 + ...js_nymph.NymphBeforeRenameUIDCallback.html | 1 + ...ymphBeforeRollbackTransactionCallback.html | 1 + ...s_nymph.NymphBeforeSaveEntityCallback.html | 1 + ...mphjs_nymph.NymphBeforeSetUIDCallback.html | 1 + ...h.NymphBeforeStartTransactionCallback.html | 1 + .../_nymphjs_nymph.NymphConnectCallback.html | 1 + ...nymphjs_nymph.NymphDisconnectCallback.html | 1 + .../types/_nymphjs_nymph.NymphEventType.html | 1 + ...h.NymphFailedDeleteEntityByIDCallback.html | 1 + ...nymph.NymphFailedDeleteEntityCallback.html | 1 + ...js_nymph.NymphFailedDeleteUIDCallback.html | 1 + ...mphjs_nymph.NymphFailedNewUIDCallback.html | 1 + ...js_nymph.NymphFailedRenameUIDCallback.html | 1 + ...s_nymph.NymphFailedSaveEntityCallback.html | 1 + ...mphjs_nymph.NymphFailedSetUIDCallback.html | 1 + .../_nymphjs_nymph.NymphQueryCallback.html | 8 + .../types/_nymphjs_nymph.Options.html | 17 + .../types/_nymphjs_nymph.OrWithTime.html | 1 + .../types/_nymphjs_nymph.Selector.html | 1 + .../_nymphjs_nymph.SerializedEntityData.html | 1 + ...ymphjs_pubsub.AuthenticateMessageData.html | 1 + .../types/_nymphjs_pubsub.MessageData.html | 1 + .../types/_nymphjs_pubsub.MessageOptions.html | 1 + ...mphjs_pubsub.PublishEntityMessageData.html | 1 + .../_nymphjs_pubsub.PublishMessageData.html | 1 + ..._nymphjs_pubsub.PublishUidMessageData.html | 1 + ...phjs_pubsub.QuerySubscribeMessageData.html | 1 + ..._nymphjs_pubsub.QuerySubscriptionData.html | 3 + .../_nymphjs_pubsub.SubscribeMessageData.html | 1 + ...ymphjs_pubsub.UidSubscribeMessageData.html | 1 + ...nymphjs_query_parser.BareQueryHandler.html | 1 + .../types/_nymphjs_query_parser.QRefMap.html | 1 + .../types/_nymphjs_sorter.SortOptions.html | 5 + .../_nymphjs_tilmeld.AccessControlData.html | 1 + .../types/_nymphjs_tilmeld.EventType.html | 1 + .../types/_nymphjs_tilmeld.GroupData.html | 13 + ...hjs_tilmeld.TilmeldAfterLoginCallback.html | 3 + ...js_tilmeld.TilmeldAfterLogoutCallback.html | 1 + ..._tilmeld.TilmeldAfterRegisterCallback.html | 1 + ...js_tilmeld.TilmeldBeforeLoginCallback.html | 2 + ...s_tilmeld.TilmeldBeforeLogoutCallback.html | 1 + ...tilmeld.TilmeldBeforeRegisterCallback.html | 3 + ..._tilmeld.TilmeldCheckUsernameCallback.html | 4 + .../types/_nymphjs_tilmeld.UserData.html | 31 + ...nymphjs_tilmeld_client.AdminGroupData.html | 1 + ..._nymphjs_tilmeld_client.AdminUserData.html | 14 + .../_nymphjs_tilmeld_client.ClientConfig.html | 1 + ...mphjs_tilmeld_client.CurrentGroupData.html | 5 + ...ymphjs_tilmeld_client.CurrentUserData.html | 9 + .../_nymphjs_tilmeld_client.EventType.html | 1 + .../_nymphjs_tilmeld_client.GroupData.html | 9 + ..._nymphjs_tilmeld_client.LoginCallback.html | 1 + ...nymphjs_tilmeld_client.LogoutCallback.html | 1 + ...mphjs_tilmeld_client.RegisterCallback.html | 1 + ...js_tilmeld_client.RegistrationDetails.html | 10 + .../_nymphjs_tilmeld_client.UserData.html | 8 + ...river_mysql.MySQLDriverConfigDefaults.html | 1 + ...gresql.PostgreSQLDriverConfigDefaults.html | 1 + ...r_sqlite3.SQLite3DriverConfigDefaults.html | 1 + .../_nymphjs_nymph.ConfigDefaults.html | 1 + .../_nymphjs_nymph.nymphJoiProps.html | 1 + .../_nymphjs_pubsub.ConfigDefaults.html | 1 + .../_nymphjs_server.statusDescriptions.html | 2 + .../_nymphjs_tilmeld.ConfigDefaults.html | 1 + .../_nymphjs_tilmeld.tilmeldJoiProps.html | 1 + static/api/latest | 2 +- 239 files changed, 6566 insertions(+), 1 deletion(-) create mode 100644 static/api/1.0.0-beta.81/.nojekyll create mode 100644 static/api/1.0.0-beta.81/assets/highlight.css create mode 100644 static/api/1.0.0-beta.81/assets/icons.js create mode 100644 static/api/1.0.0-beta.81/assets/icons.svg create mode 100644 static/api/1.0.0-beta.81/assets/main.js create mode 100644 static/api/1.0.0-beta.81/assets/navigation.js create mode 100644 static/api/1.0.0-beta.81/assets/search.js create mode 100644 static/api/1.0.0-beta.81/assets/style.css create mode 100644 static/api/1.0.0-beta.81/classes/_nymphjs_client.ClassNotAvailableError.html create mode 100644 static/api/1.0.0-beta.81/classes/_nymphjs_client.ClientError.html create mode 100644 static/api/1.0.0-beta.81/classes/_nymphjs_client.ConnectionClosedUnexpectedlyError.html create mode 100644 static/api/1.0.0-beta.81/classes/_nymphjs_client.ConnectionError.html create mode 100644 static/api/1.0.0-beta.81/classes/_nymphjs_client.Entity.html create mode 100644 static/api/1.0.0-beta.81/classes/_nymphjs_client.EntityIsSleepingReferenceError.html create mode 100644 static/api/1.0.0-beta.81/classes/_nymphjs_client.HttpError.html create mode 100644 static/api/1.0.0-beta.81/classes/_nymphjs_client.InformationalError.html create mode 100644 static/api/1.0.0-beta.81/classes/_nymphjs_client.InvalidRequestError.html create mode 100644 static/api/1.0.0-beta.81/classes/_nymphjs_client.InvalidResponseError.html create mode 100644 static/api/1.0.0-beta.81/classes/_nymphjs_client.InvalidStateError.html create mode 100644 static/api/1.0.0-beta.81/classes/_nymphjs_client.Nymph.html create mode 100644 static/api/1.0.0-beta.81/classes/_nymphjs_client.PubSub.html create mode 100644 static/api/1.0.0-beta.81/classes/_nymphjs_client.PubSubSubscription.html create mode 100644 static/api/1.0.0-beta.81/classes/_nymphjs_client.RedirectError.html create mode 100644 static/api/1.0.0-beta.81/classes/_nymphjs_client.ServerError.html create mode 100644 static/api/1.0.0-beta.81/classes/_nymphjs_client.SuccessError.html create mode 100644 static/api/1.0.0-beta.81/classes/_nymphjs_client_node.Nymph.html create mode 100644 static/api/1.0.0-beta.81/classes/_nymphjs_client_node.PubSub.html create mode 100644 static/api/1.0.0-beta.81/classes/_nymphjs_driver_mysql.MySQLDriver.html create mode 100644 static/api/1.0.0-beta.81/classes/_nymphjs_driver_postgresql.PostgreSQLDriver.html create mode 100644 static/api/1.0.0-beta.81/classes/_nymphjs_driver_sqlite3.SQLite3Driver.html create mode 100644 static/api/1.0.0-beta.81/classes/_nymphjs_nymph.ClassNotAvailableError.html create mode 100644 static/api/1.0.0-beta.81/classes/_nymphjs_nymph.Entity.html create mode 100644 static/api/1.0.0-beta.81/classes/_nymphjs_nymph.EntityConflictError.html create mode 100644 static/api/1.0.0-beta.81/classes/_nymphjs_nymph.EntityInvalidDataError.html create mode 100644 static/api/1.0.0-beta.81/classes/_nymphjs_nymph.EntityIsSleepingReferenceError.html create mode 100644 static/api/1.0.0-beta.81/classes/_nymphjs_nymph.EntityUniqueConstraintError.html create mode 100644 static/api/1.0.0-beta.81/classes/_nymphjs_nymph.InvalidParametersError.html create mode 100644 static/api/1.0.0-beta.81/classes/_nymphjs_nymph.InvalidStateError.html create mode 100644 static/api/1.0.0-beta.81/classes/_nymphjs_nymph.NotConfiguredError.html create mode 100644 static/api/1.0.0-beta.81/classes/_nymphjs_nymph.Nymph.html create mode 100644 static/api/1.0.0-beta.81/classes/_nymphjs_nymph.NymphDriver.html create mode 100644 static/api/1.0.0-beta.81/classes/_nymphjs_nymph.QueryFailedError.html create mode 100644 static/api/1.0.0-beta.81/classes/_nymphjs_nymph.UnableToConnectError.html create mode 100644 static/api/1.0.0-beta.81/classes/_nymphjs_pubsub.PubSub.html create mode 100644 static/api/1.0.0-beta.81/classes/_nymphjs_server.ForbiddenClassError.html create mode 100644 static/api/1.0.0-beta.81/classes/_nymphjs_server.HttpError.html create mode 100644 static/api/1.0.0-beta.81/classes/_nymphjs_sorter.Sorter.html create mode 100644 static/api/1.0.0-beta.81/classes/_nymphjs_tilmeld.AbleObject.html create mode 100644 static/api/1.0.0-beta.81/classes/_nymphjs_tilmeld.AccessControlError.html create mode 100644 static/api/1.0.0-beta.81/classes/_nymphjs_tilmeld.BadDataError.html create mode 100644 static/api/1.0.0-beta.81/classes/_nymphjs_tilmeld.BadEmailError.html create mode 100644 static/api/1.0.0-beta.81/classes/_nymphjs_tilmeld.BadUsernameError.html create mode 100644 static/api/1.0.0-beta.81/classes/_nymphjs_tilmeld.CouldNotChangeDefaultPrimaryGroupError.html create mode 100644 static/api/1.0.0-beta.81/classes/_nymphjs_tilmeld.EmailChangeRateLimitExceededError.html create mode 100644 static/api/1.0.0-beta.81/classes/_nymphjs_tilmeld.Group.html create mode 100644 static/api/1.0.0-beta.81/classes/_nymphjs_tilmeld.Tilmeld.html create mode 100644 static/api/1.0.0-beta.81/classes/_nymphjs_tilmeld.User.html create mode 100644 static/api/1.0.0-beta.81/classes/_nymphjs_tilmeld_client.Group.html create mode 100644 static/api/1.0.0-beta.81/classes/_nymphjs_tilmeld_client.NeedTOTPError.html create mode 100644 static/api/1.0.0-beta.81/classes/_nymphjs_tilmeld_client.User.html create mode 100644 static/api/1.0.0-beta.81/classes/_nymphjs_tilmeld_components.Account.html create mode 100644 static/api/1.0.0-beta.81/enums/_nymphjs_nymph.TilmeldAccessLevels.html create mode 100644 static/api/1.0.0-beta.81/functions/_nymphjs_guid.customAlphabet.html create mode 100644 static/api/1.0.0-beta.81/functions/_nymphjs_guid.guid.html create mode 100644 static/api/1.0.0-beta.81/functions/_nymphjs_guid.humanSecret.html create mode 100644 static/api/1.0.0-beta.81/functions/_nymphjs_guid.makeTableSuffix.html create mode 100644 static/api/1.0.0-beta.81/functions/_nymphjs_guid.nanoid.html create mode 100644 static/api/1.0.0-beta.81/functions/_nymphjs_nymph.EntitiesTest.html create mode 100644 static/api/1.0.0-beta.81/functions/_nymphjs_nymph.ExportImportTest.html create mode 100644 static/api/1.0.0-beta.81/functions/_nymphjs_nymph.UIDTest.html create mode 100644 static/api/1.0.0-beta.81/functions/_nymphjs_nymph.classNamesToEntityConstructors.html create mode 100644 static/api/1.0.0-beta.81/functions/_nymphjs_nymph.entitiesToReferences.html create mode 100644 static/api/1.0.0-beta.81/functions/_nymphjs_nymph.referencesToEntities.html create mode 100644 static/api/1.0.0-beta.81/functions/_nymphjs_nymph.sortObj.html create mode 100644 static/api/1.0.0-beta.81/functions/_nymphjs_nymph.uniqueStrings.html create mode 100644 static/api/1.0.0-beta.81/functions/_nymphjs_nymph.xor.html create mode 100644 static/api/1.0.0-beta.81/functions/_nymphjs_pubsub.createServer.html create mode 100644 static/api/1.0.0-beta.81/functions/_nymphjs_query_parser.queryParser.html create mode 100644 static/api/1.0.0-beta.81/functions/_nymphjs_server.createServer.html create mode 100644 static/api/1.0.0-beta.81/functions/_nymphjs_tilmeld.enforceTilmeld.html create mode 100644 static/api/1.0.0-beta.81/functions/_nymphjs_tilmeld_client.checkUsername.html create mode 100644 static/api/1.0.0-beta.81/functions/_nymphjs_tilmeld_client.login.html create mode 100644 static/api/1.0.0-beta.81/functions/_nymphjs_tilmeld_client.register.html create mode 100644 static/api/1.0.0-beta.81/functions/_nymphjs_tilmeld_setup.setup.html create mode 100644 static/api/1.0.0-beta.81/hierarchy.html create mode 100644 static/api/1.0.0-beta.81/index.html create mode 100644 static/api/1.0.0-beta.81/interfaces/_nymphjs_client.AbortableAsyncIterator.html create mode 100644 static/api/1.0.0-beta.81/interfaces/_nymphjs_client.DataObjectInterface.html create mode 100644 static/api/1.0.0-beta.81/interfaces/_nymphjs_client.EntityInterface.html create mode 100644 static/api/1.0.0-beta.81/interfaces/_nymphjs_driver_mysql.MySQLDriverConfig.html create mode 100644 static/api/1.0.0-beta.81/interfaces/_nymphjs_driver_postgresql.PostgreSQLDriverConfig.html create mode 100644 static/api/1.0.0-beta.81/interfaces/_nymphjs_driver_sqlite3.SQLite3DriverConfig.html create mode 100644 static/api/1.0.0-beta.81/interfaces/_nymphjs_nymph.Config.html create mode 100644 static/api/1.0.0-beta.81/interfaces/_nymphjs_nymph.DataObjectInterface.html create mode 100644 static/api/1.0.0-beta.81/interfaces/_nymphjs_nymph.EntityInterface.html create mode 100644 static/api/1.0.0-beta.81/interfaces/_nymphjs_nymph.TilmeldInterface.html create mode 100644 static/api/1.0.0-beta.81/interfaces/_nymphjs_pubsub.Config.html create mode 100644 static/api/1.0.0-beta.81/interfaces/_nymphjs_tilmeld.Config.html create mode 100644 static/api/1.0.0-beta.81/modules/_nymphjs_client.html create mode 100644 static/api/1.0.0-beta.81/modules/_nymphjs_client_node.html create mode 100644 static/api/1.0.0-beta.81/modules/_nymphjs_driver_mysql.html create mode 100644 static/api/1.0.0-beta.81/modules/_nymphjs_driver_postgresql.html create mode 100644 static/api/1.0.0-beta.81/modules/_nymphjs_driver_sqlite3.html create mode 100644 static/api/1.0.0-beta.81/modules/_nymphjs_guid.html create mode 100644 static/api/1.0.0-beta.81/modules/_nymphjs_nymph.html create mode 100644 static/api/1.0.0-beta.81/modules/_nymphjs_pubsub.html create mode 100644 static/api/1.0.0-beta.81/modules/_nymphjs_query_parser.html create mode 100644 static/api/1.0.0-beta.81/modules/_nymphjs_server.html create mode 100644 static/api/1.0.0-beta.81/modules/_nymphjs_sorter.html create mode 100644 static/api/1.0.0-beta.81/modules/_nymphjs_tilmeld.html create mode 100644 static/api/1.0.0-beta.81/modules/_nymphjs_tilmeld_client.html create mode 100644 static/api/1.0.0-beta.81/modules/_nymphjs_tilmeld_components.html create mode 100644 static/api/1.0.0-beta.81/modules/_nymphjs_tilmeld_setup.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_client.Clause.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_client.EntityConstructor.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_client.EntityData.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_client.EntityDataType.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_client.EntityInstanceType.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_client.EntityJson.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_client.EntityPatch.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_client.EntityReference.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_client.EventType.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_client.HttpRequesterEventType.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_client.HttpRequesterIteratorCallback.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_client.HttpRequesterRequestCallback.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_client.HttpRequesterRequestOptions.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_client.HttpRequesterResponseCallback.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_client.NymphOptions.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_client.Options.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_client.OrWithTime.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_client.PubSubCallbacks.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_client.PubSubConnectCallback.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_client.PubSubCountCallback.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_client.PubSubDisconnectCallback.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_client.PubSubErrorCallback.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_client.PubSubEventType.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_client.PubSubRejectCallback.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_client.PubSubResolveCallback.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_client.PubSubSubscribable.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_client.PubSubUpdate.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_client.RequestCallback.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_client.ResponseCallback.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_client.Selector.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_client.SerializedEntityData.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_client.ServerCallResponse.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_client.ServerCallStaticResponse.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_nymph.ACProperties.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_nymph.Clause.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_nymph.EntityConstructor.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_nymph.EntityData.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_nymph.EntityDataType.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_nymph.EntityInstanceType.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_nymph.EntityJson.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_nymph.EntityPatch.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_nymph.EntityReference.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_nymph.FormattedSelector.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphAfterCommitTransactionCallback.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphAfterDeleteEntityByIDCallback.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphAfterDeleteEntityCallback.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphAfterDeleteUIDCallback.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphAfterNewUIDCallback.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphAfterRenameUIDCallback.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphAfterRollbackTransactionCallback.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphAfterSaveEntityCallback.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphAfterSetUIDCallback.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphAfterStartTransactionCallback.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphBeforeCommitTransactionCallback.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphBeforeDeleteEntityByIDCallback.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphBeforeDeleteEntityCallback.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphBeforeDeleteUIDCallback.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphBeforeGetEntitiesCallback.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphBeforeGetEntityCallback.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphBeforeNewUIDCallback.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphBeforeRenameUIDCallback.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphBeforeRollbackTransactionCallback.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphBeforeSaveEntityCallback.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphBeforeSetUIDCallback.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphBeforeStartTransactionCallback.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphConnectCallback.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphDisconnectCallback.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphEventType.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphFailedDeleteEntityByIDCallback.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphFailedDeleteEntityCallback.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphFailedDeleteUIDCallback.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphFailedNewUIDCallback.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphFailedRenameUIDCallback.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphFailedSaveEntityCallback.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphFailedSetUIDCallback.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphQueryCallback.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_nymph.Options.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_nymph.OrWithTime.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_nymph.Selector.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_nymph.SerializedEntityData.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_pubsub.AuthenticateMessageData.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_pubsub.MessageData.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_pubsub.MessageOptions.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_pubsub.PublishEntityMessageData.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_pubsub.PublishMessageData.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_pubsub.PublishUidMessageData.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_pubsub.QuerySubscribeMessageData.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_pubsub.QuerySubscriptionData.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_pubsub.SubscribeMessageData.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_pubsub.UidSubscribeMessageData.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_query_parser.BareQueryHandler.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_query_parser.QRefMap.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_sorter.SortOptions.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_tilmeld.AccessControlData.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_tilmeld.EventType.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_tilmeld.GroupData.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_tilmeld.TilmeldAfterLoginCallback.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_tilmeld.TilmeldAfterLogoutCallback.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_tilmeld.TilmeldAfterRegisterCallback.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_tilmeld.TilmeldBeforeLoginCallback.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_tilmeld.TilmeldBeforeLogoutCallback.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_tilmeld.TilmeldBeforeRegisterCallback.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_tilmeld.TilmeldCheckUsernameCallback.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_tilmeld.UserData.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_tilmeld_client.AdminGroupData.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_tilmeld_client.AdminUserData.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_tilmeld_client.ClientConfig.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_tilmeld_client.CurrentGroupData.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_tilmeld_client.CurrentUserData.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_tilmeld_client.EventType.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_tilmeld_client.GroupData.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_tilmeld_client.LoginCallback.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_tilmeld_client.LogoutCallback.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_tilmeld_client.RegisterCallback.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_tilmeld_client.RegistrationDetails.html create mode 100644 static/api/1.0.0-beta.81/types/_nymphjs_tilmeld_client.UserData.html create mode 100644 static/api/1.0.0-beta.81/variables/_nymphjs_driver_mysql.MySQLDriverConfigDefaults.html create mode 100644 static/api/1.0.0-beta.81/variables/_nymphjs_driver_postgresql.PostgreSQLDriverConfigDefaults.html create mode 100644 static/api/1.0.0-beta.81/variables/_nymphjs_driver_sqlite3.SQLite3DriverConfigDefaults.html create mode 100644 static/api/1.0.0-beta.81/variables/_nymphjs_nymph.ConfigDefaults.html create mode 100644 static/api/1.0.0-beta.81/variables/_nymphjs_nymph.nymphJoiProps.html create mode 100644 static/api/1.0.0-beta.81/variables/_nymphjs_pubsub.ConfigDefaults.html create mode 100644 static/api/1.0.0-beta.81/variables/_nymphjs_server.statusDescriptions.html create mode 100644 static/api/1.0.0-beta.81/variables/_nymphjs_tilmeld.ConfigDefaults.html create mode 100644 static/api/1.0.0-beta.81/variables/_nymphjs_tilmeld.tilmeldJoiProps.html diff --git a/static/api/1.0.0-beta.81/.nojekyll b/static/api/1.0.0-beta.81/.nojekyll new file mode 100644 index 0000000..e2ac661 --- /dev/null +++ b/static/api/1.0.0-beta.81/.nojekyll @@ -0,0 +1 @@ +TypeDoc added this file to prevent GitHub Pages from using Jekyll. You can turn off this behavior by setting the `githubPages` option to false. \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/assets/highlight.css b/static/api/1.0.0-beta.81/assets/highlight.css new file mode 100644 index 0000000..9de0902 --- /dev/null +++ b/static/api/1.0.0-beta.81/assets/highlight.css @@ -0,0 +1,134 @@ +:root { + --light-hl-0: #795E26; + --dark-hl-0: #DCDCAA; + --light-hl-1: #000000; + --dark-hl-1: #D4D4D4; + --light-hl-2: #A31515; + --dark-hl-2: #CE9178; + --light-hl-3: #0000FF; + --dark-hl-3: #569CD6; + --light-hl-4: #000000; + --dark-hl-4: #C8C8C8; + --light-hl-5: #008000; + --dark-hl-5: #6A9955; + --light-hl-6: #AF00DB; + --dark-hl-6: #C586C0; + --light-hl-7: #001080; + --dark-hl-7: #9CDCFE; + --light-hl-8: #0070C1; + --dark-hl-8: #4FC1FF; + --light-hl-9: #098658; + --dark-hl-9: #B5CEA8; + --light-hl-10: #000000FF; + --dark-hl-10: #D4D4D4; + --light-hl-11: #267F99; + --dark-hl-11: #4EC9B0; + --light-hl-12: #EE0000; + --dark-hl-12: #D7BA7D; + --light-hl-13: #800000; + --dark-hl-13: #808080; + --light-hl-14: #800000; + --dark-hl-14: #569CD6; + --light-hl-15: #E50000; + --dark-hl-15: #9CDCFE; + --light-code-background: #FFFFFF; + --dark-code-background: #1E1E1E; +} + +@media (prefers-color-scheme: light) { :root { + --hl-0: var(--light-hl-0); + --hl-1: var(--light-hl-1); + --hl-2: var(--light-hl-2); + --hl-3: var(--light-hl-3); + --hl-4: var(--light-hl-4); + --hl-5: var(--light-hl-5); + --hl-6: var(--light-hl-6); + --hl-7: var(--light-hl-7); + --hl-8: var(--light-hl-8); + --hl-9: var(--light-hl-9); + --hl-10: var(--light-hl-10); + --hl-11: var(--light-hl-11); + --hl-12: var(--light-hl-12); + --hl-13: var(--light-hl-13); + --hl-14: var(--light-hl-14); + --hl-15: var(--light-hl-15); + --code-background: var(--light-code-background); +} } + +@media (prefers-color-scheme: dark) { :root { + --hl-0: var(--dark-hl-0); + --hl-1: var(--dark-hl-1); + --hl-2: var(--dark-hl-2); + --hl-3: var(--dark-hl-3); + --hl-4: var(--dark-hl-4); + --hl-5: var(--dark-hl-5); + --hl-6: var(--dark-hl-6); + --hl-7: var(--dark-hl-7); + --hl-8: var(--dark-hl-8); + --hl-9: var(--dark-hl-9); + --hl-10: var(--dark-hl-10); + --hl-11: var(--dark-hl-11); + --hl-12: var(--dark-hl-12); + --hl-13: var(--dark-hl-13); + --hl-14: var(--dark-hl-14); + --hl-15: var(--dark-hl-15); + --code-background: var(--dark-code-background); +} } + +:root[data-theme='light'] { + --hl-0: var(--light-hl-0); + --hl-1: var(--light-hl-1); + --hl-2: var(--light-hl-2); + --hl-3: var(--light-hl-3); + --hl-4: var(--light-hl-4); + --hl-5: var(--light-hl-5); + --hl-6: var(--light-hl-6); + --hl-7: var(--light-hl-7); + --hl-8: var(--light-hl-8); + --hl-9: var(--light-hl-9); + --hl-10: var(--light-hl-10); + --hl-11: var(--light-hl-11); + --hl-12: var(--light-hl-12); + --hl-13: var(--light-hl-13); + --hl-14: var(--light-hl-14); + --hl-15: var(--light-hl-15); + --code-background: var(--light-code-background); +} + +:root[data-theme='dark'] { + --hl-0: var(--dark-hl-0); + --hl-1: var(--dark-hl-1); + --hl-2: var(--dark-hl-2); + --hl-3: var(--dark-hl-3); + --hl-4: var(--dark-hl-4); + --hl-5: var(--dark-hl-5); + --hl-6: var(--dark-hl-6); + --hl-7: var(--dark-hl-7); + --hl-8: var(--dark-hl-8); + --hl-9: var(--dark-hl-9); + --hl-10: var(--dark-hl-10); + --hl-11: var(--dark-hl-11); + --hl-12: var(--dark-hl-12); + --hl-13: var(--dark-hl-13); + --hl-14: var(--dark-hl-14); + --hl-15: var(--dark-hl-15); + --code-background: var(--dark-code-background); +} + +.hl-0 { color: var(--hl-0); } +.hl-1 { color: var(--hl-1); } +.hl-2 { color: var(--hl-2); } +.hl-3 { color: var(--hl-3); } +.hl-4 { color: var(--hl-4); } +.hl-5 { color: var(--hl-5); } +.hl-6 { color: var(--hl-6); } +.hl-7 { color: var(--hl-7); } +.hl-8 { color: var(--hl-8); } +.hl-9 { color: var(--hl-9); } +.hl-10 { color: var(--hl-10); } +.hl-11 { color: var(--hl-11); } +.hl-12 { color: var(--hl-12); } +.hl-13 { color: var(--hl-13); } +.hl-14 { color: var(--hl-14); } +.hl-15 { color: var(--hl-15); } +pre, code { background: var(--code-background); } diff --git a/static/api/1.0.0-beta.81/assets/icons.js b/static/api/1.0.0-beta.81/assets/icons.js new file mode 100644 index 0000000..b79c9e8 --- /dev/null +++ b/static/api/1.0.0-beta.81/assets/icons.js @@ -0,0 +1,15 @@ +(function(svg) { + svg.innerHTML = ``; + svg.style.display = 'none'; + if (location.protocol === 'file:') { + if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', updateUseElements); + else updateUseElements() + function updateUseElements() { + document.querySelectorAll('use').forEach(el => { + if (el.getAttribute('href').includes('#icon-')) { + el.setAttribute('href', el.getAttribute('href').replace(/.*#/, '#')); + } + }); + } + } +})(document.body.appendChild(document.createElementNS('http://www.w3.org/2000/svg', 'svg'))) \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/assets/icons.svg b/static/api/1.0.0-beta.81/assets/icons.svg new file mode 100644 index 0000000..7dead61 --- /dev/null +++ b/static/api/1.0.0-beta.81/assets/icons.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/assets/main.js b/static/api/1.0.0-beta.81/assets/main.js new file mode 100644 index 0000000..d6f1388 --- /dev/null +++ b/static/api/1.0.0-beta.81/assets/main.js @@ -0,0 +1,59 @@ +"use strict"; +"use strict";(()=>{var Ce=Object.create;var ne=Object.defineProperty;var Pe=Object.getOwnPropertyDescriptor;var Oe=Object.getOwnPropertyNames;var _e=Object.getPrototypeOf,Re=Object.prototype.hasOwnProperty;var Me=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var Fe=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Oe(e))!Re.call(t,i)&&i!==n&&ne(t,i,{get:()=>e[i],enumerable:!(r=Pe(e,i))||r.enumerable});return t};var De=(t,e,n)=>(n=t!=null?Ce(_e(t)):{},Fe(e||!t||!t.__esModule?ne(n,"default",{value:t,enumerable:!0}):n,t));var ae=Me((se,oe)=>{(function(){var t=function(e){var n=new t.Builder;return n.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),n.searchPipeline.add(t.stemmer),e.call(n,n),n.build()};t.version="2.3.9";t.utils={},t.utils.warn=function(e){return function(n){e.console&&console.warn&&console.warn(n)}}(this),t.utils.asString=function(e){return e==null?"":e.toString()},t.utils.clone=function(e){if(e==null)return e;for(var n=Object.create(null),r=Object.keys(e),i=0;i0){var d=t.utils.clone(n)||{};d.position=[a,u],d.index=s.length,s.push(new t.Token(r.slice(a,o),d))}a=o+1}}return s},t.tokenizer.separator=/[\s\-]+/;t.Pipeline=function(){this._stack=[]},t.Pipeline.registeredFunctions=Object.create(null),t.Pipeline.registerFunction=function(e,n){n in this.registeredFunctions&&t.utils.warn("Overwriting existing registered function: "+n),e.label=n,t.Pipeline.registeredFunctions[e.label]=e},t.Pipeline.warnIfFunctionNotRegistered=function(e){var n=e.label&&e.label in this.registeredFunctions;n||t.utils.warn(`Function is not registered with pipeline. This may cause problems when serialising the index. +`,e)},t.Pipeline.load=function(e){var n=new t.Pipeline;return e.forEach(function(r){var i=t.Pipeline.registeredFunctions[r];if(i)n.add(i);else throw new Error("Cannot load unregistered function: "+r)}),n},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(n){t.Pipeline.warnIfFunctionNotRegistered(n),this._stack.push(n)},this)},t.Pipeline.prototype.after=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");r=r+1,this._stack.splice(r,0,n)},t.Pipeline.prototype.before=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");this._stack.splice(r,0,n)},t.Pipeline.prototype.remove=function(e){var n=this._stack.indexOf(e);n!=-1&&this._stack.splice(n,1)},t.Pipeline.prototype.run=function(e){for(var n=this._stack.length,r=0;r1&&(oe&&(r=s),o!=e);)i=r-n,s=n+Math.floor(i/2),o=this.elements[s*2];if(o==e||o>e)return s*2;if(ol?d+=2:a==l&&(n+=r[u+1]*i[d+1],u+=2,d+=2);return n},t.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},t.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),n=1,r=0;n0){var o=s.str.charAt(0),a;o in s.node.edges?a=s.node.edges[o]:(a=new t.TokenSet,s.node.edges[o]=a),s.str.length==1&&(a.final=!0),i.push({node:a,editsRemaining:s.editsRemaining,str:s.str.slice(1)})}if(s.editsRemaining!=0){if("*"in s.node.edges)var l=s.node.edges["*"];else{var l=new t.TokenSet;s.node.edges["*"]=l}if(s.str.length==0&&(l.final=!0),i.push({node:l,editsRemaining:s.editsRemaining-1,str:s.str}),s.str.length>1&&i.push({node:s.node,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)}),s.str.length==1&&(s.node.final=!0),s.str.length>=1){if("*"in s.node.edges)var u=s.node.edges["*"];else{var u=new t.TokenSet;s.node.edges["*"]=u}s.str.length==1&&(u.final=!0),i.push({node:u,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var d=s.str.charAt(0),y=s.str.charAt(1),p;y in s.node.edges?p=s.node.edges[y]:(p=new t.TokenSet,s.node.edges[y]=p),s.str.length==1&&(p.final=!0),i.push({node:p,editsRemaining:s.editsRemaining-1,str:d+s.str.slice(2)})}}}return r},t.TokenSet.fromString=function(e){for(var n=new t.TokenSet,r=n,i=0,s=e.length;i=e;n--){var r=this.uncheckedNodes[n],i=r.child.toString();i in this.minimizedNodes?r.parent.edges[r.char]=this.minimizedNodes[i]:(r.child._str=i,this.minimizedNodes[i]=r.child),this.uncheckedNodes.pop()}};t.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},t.Index.prototype.search=function(e){return this.query(function(n){var r=new t.QueryParser(e,n);r.parse()})},t.Index.prototype.query=function(e){for(var n=new t.Query(this.fields),r=Object.create(null),i=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),l=0;l1?this._b=1:this._b=e},t.Builder.prototype.k1=function(e){this._k1=e},t.Builder.prototype.add=function(e,n){var r=e[this._ref],i=Object.keys(this._fields);this._documents[r]=n||{},this.documentCount+=1;for(var s=0;s=this.length)return t.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},t.QueryLexer.prototype.width=function(){return this.pos-this.start},t.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},t.QueryLexer.prototype.backup=function(){this.pos-=1},t.QueryLexer.prototype.acceptDigitRun=function(){var e,n;do e=this.next(),n=e.charCodeAt(0);while(n>47&&n<58);e!=t.QueryLexer.EOS&&this.backup()},t.QueryLexer.prototype.more=function(){return this.pos1&&(e.backup(),e.emit(t.QueryLexer.TERM)),e.ignore(),e.more())return t.QueryLexer.lexText},t.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.EDIT_DISTANCE),t.QueryLexer.lexText},t.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.BOOST),t.QueryLexer.lexText},t.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(t.QueryLexer.TERM)},t.QueryLexer.termSeparator=t.tokenizer.separator,t.QueryLexer.lexText=function(e){for(;;){var n=e.next();if(n==t.QueryLexer.EOS)return t.QueryLexer.lexEOS;if(n.charCodeAt(0)==92){e.escapeCharacter();continue}if(n==":")return t.QueryLexer.lexField;if(n=="~")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexEditDistance;if(n=="^")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexBoost;if(n=="+"&&e.width()===1||n=="-"&&e.width()===1)return e.emit(t.QueryLexer.PRESENCE),t.QueryLexer.lexText;if(n.match(t.QueryLexer.termSeparator))return t.QueryLexer.lexTerm}},t.QueryParser=function(e,n){this.lexer=new t.QueryLexer(e),this.query=n,this.currentClause={},this.lexemeIdx=0},t.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=t.QueryParser.parseClause;e;)e=e(this);return this.query},t.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},t.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},t.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},t.QueryParser.parseClause=function(e){var n=e.peekLexeme();if(n!=null)switch(n.type){case t.QueryLexer.PRESENCE:return t.QueryParser.parsePresence;case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expected either a field or a term, found "+n.type;throw n.str.length>=1&&(r+=" with value '"+n.str+"'"),new t.QueryParseError(r,n.start,n.end)}},t.QueryParser.parsePresence=function(e){var n=e.consumeLexeme();if(n!=null){switch(n.str){case"-":e.currentClause.presence=t.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=t.Query.presence.REQUIRED;break;default:var r="unrecognised presence operator'"+n.str+"'";throw new t.QueryParseError(r,n.start,n.end)}var i=e.peekLexeme();if(i==null){var r="expecting term or field, found nothing";throw new t.QueryParseError(r,n.start,n.end)}switch(i.type){case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expecting term or field, found '"+i.type+"'";throw new t.QueryParseError(r,i.start,i.end)}}},t.QueryParser.parseField=function(e){var n=e.consumeLexeme();if(n!=null){if(e.query.allFields.indexOf(n.str)==-1){var r=e.query.allFields.map(function(o){return"'"+o+"'"}).join(", "),i="unrecognised field '"+n.str+"', possible fields: "+r;throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.fields=[n.str];var s=e.peekLexeme();if(s==null){var i="expecting term, found nothing";throw new t.QueryParseError(i,n.start,n.end)}switch(s.type){case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var i="expecting term, found '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseTerm=function(e){var n=e.consumeLexeme();if(n!=null){e.currentClause.term=n.str.toLowerCase(),n.str.indexOf("*")!=-1&&(e.currentClause.usePipeline=!1);var r=e.peekLexeme();if(r==null){e.nextClause();return}switch(r.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+r.type+"'";throw new t.QueryParseError(i,r.start,r.end)}}},t.QueryParser.parseEditDistance=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="edit distance must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.editDistance=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseBoost=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="boost must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.boost=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},function(e,n){typeof define=="function"&&define.amd?define(n):typeof se=="object"?oe.exports=n():e.lunr=n()}(this,function(){return t})})()});var re=[];function G(t,e){re.push({selector:e,constructor:t})}var U=class{constructor(){this.alwaysVisibleMember=null;this.createComponents(document.body),this.ensureFocusedElementVisible(),this.listenForCodeCopies(),window.addEventListener("hashchange",()=>this.ensureFocusedElementVisible()),document.body.style.display||(this.ensureFocusedElementVisible(),this.updateIndexVisibility(),this.scrollToHash())}createComponents(e){re.forEach(n=>{e.querySelectorAll(n.selector).forEach(r=>{r.dataset.hasInstance||(new n.constructor({el:r,app:this}),r.dataset.hasInstance=String(!0))})})}filterChanged(){this.ensureFocusedElementVisible()}showPage(){document.body.style.display&&(console.log("Show page"),document.body.style.removeProperty("display"),this.ensureFocusedElementVisible(),this.updateIndexVisibility(),this.scrollToHash())}scrollToHash(){if(location.hash){console.log("Scorlling");let e=document.getElementById(location.hash.substring(1));if(!e)return;e.scrollIntoView({behavior:"instant",block:"start"})}}ensureActivePageVisible(){let e=document.querySelector(".tsd-navigation .current"),n=e?.parentElement;for(;n&&!n.classList.contains(".tsd-navigation");)n instanceof HTMLDetailsElement&&(n.open=!0),n=n.parentElement;if(e&&!e.checkVisibility()){let r=e.getBoundingClientRect().top-document.documentElement.clientHeight/4;document.querySelector(".site-menu").scrollTop=r}}updateIndexVisibility(){let e=document.querySelector(".tsd-index-content"),n=e?.open;e&&(e.open=!0),document.querySelectorAll(".tsd-index-section").forEach(r=>{r.style.display="block";let i=Array.from(r.querySelectorAll(".tsd-index-link")).every(s=>s.offsetParent==null);r.style.display=i?"none":"block"}),e&&(e.open=n)}ensureFocusedElementVisible(){if(this.alwaysVisibleMember&&(this.alwaysVisibleMember.classList.remove("always-visible"),this.alwaysVisibleMember.firstElementChild.remove(),this.alwaysVisibleMember=null),!location.hash)return;let e=document.getElementById(location.hash.substring(1));if(!e)return;let n=e.parentElement;for(;n&&n.tagName!=="SECTION";)n=n.parentElement;if(n&&n.offsetParent==null){this.alwaysVisibleMember=n,n.classList.add("always-visible");let r=document.createElement("p");r.classList.add("warning"),r.textContent="This member is normally hidden due to your filter settings.",n.prepend(r)}}listenForCodeCopies(){document.querySelectorAll("pre > button").forEach(e=>{let n;e.addEventListener("click",()=>{e.previousElementSibling instanceof HTMLElement&&navigator.clipboard.writeText(e.previousElementSibling.innerText.trim()),e.textContent="Copied!",e.classList.add("visible"),clearTimeout(n),n=setTimeout(()=>{e.classList.remove("visible"),n=setTimeout(()=>{e.textContent="Copy"},100)},1e3)})})}};var ie=(t,e=100)=>{let n;return()=>{clearTimeout(n),n=setTimeout(()=>t(),e)}};var de=De(ae());async function le(t,e){if(!window.searchData)return;let n=await fetch(window.searchData),r=new Blob([await n.arrayBuffer()]).stream().pipeThrough(new DecompressionStream("gzip")),i=await new Response(r).json();t.data=i,t.index=de.Index.load(i.index),e.classList.remove("loading"),e.classList.add("ready")}function he(){let t=document.getElementById("tsd-search");if(!t)return;let e={base:t.dataset.base+"/"},n=document.getElementById("tsd-search-script");t.classList.add("loading"),n&&(n.addEventListener("error",()=>{t.classList.remove("loading"),t.classList.add("failure")}),n.addEventListener("load",()=>{le(e,t)}),le(e,t));let r=document.querySelector("#tsd-search input"),i=document.querySelector("#tsd-search .results");if(!r||!i)throw new Error("The input field or the result list wrapper was not found");let s=!1;i.addEventListener("mousedown",()=>s=!0),i.addEventListener("mouseup",()=>{s=!1,t.classList.remove("has-focus")}),r.addEventListener("focus",()=>t.classList.add("has-focus")),r.addEventListener("blur",()=>{s||(s=!1,t.classList.remove("has-focus"))}),Ae(t,i,r,e)}function Ae(t,e,n,r){n.addEventListener("input",ie(()=>{Ve(t,e,n,r)},200));let i=!1;n.addEventListener("keydown",s=>{i=!0,s.key=="Enter"?Ne(e,n):s.key=="Escape"?n.blur():s.key=="ArrowUp"?ue(e,-1):s.key==="ArrowDown"?ue(e,1):i=!1}),n.addEventListener("keypress",s=>{i&&s.preventDefault()}),document.body.addEventListener("keydown",s=>{s.altKey||s.ctrlKey||s.metaKey||!n.matches(":focus")&&s.key==="/"&&(n.focus(),s.preventDefault())})}function Ve(t,e,n,r){if(!r.index||!r.data)return;e.textContent="";let i=n.value.trim(),s;if(i){let o=i.split(" ").map(a=>a.length?`*${a}*`:"").join(" ");s=r.index.search(o)}else s=[];for(let o=0;oa.score-o.score);for(let o=0,a=Math.min(10,s.length);o`,d=ce(l.name,i);globalThis.DEBUG_SEARCH_WEIGHTS&&(d+=` (score: ${s[o].score.toFixed(2)})`),l.parent&&(d=` + ${ce(l.parent,i)}.${d}`);let y=document.createElement("li");y.classList.value=l.classes??"";let p=document.createElement("a");p.href=r.base+l.url,p.innerHTML=u+d,y.append(p),e.appendChild(y)}}function ue(t,e){let n=t.querySelector(".current");if(!n)n=t.querySelector(e==1?"li:first-child":"li:last-child"),n&&n.classList.add("current");else{let r=n;if(e===1)do r=r.nextElementSibling??void 0;while(r instanceof HTMLElement&&r.offsetParent==null);else do r=r.previousElementSibling??void 0;while(r instanceof HTMLElement&&r.offsetParent==null);r&&(n.classList.remove("current"),r.classList.add("current"))}}function Ne(t,e){let n=t.querySelector(".current");if(n||(n=t.querySelector("li:first-child")),n){let r=n.querySelector("a");r&&(window.location.href=r.href),e.blur()}}function ce(t,e){if(e==="")return t;let n=t.toLocaleLowerCase(),r=e.toLocaleLowerCase(),i=[],s=0,o=n.indexOf(r);for(;o!=-1;)i.push(K(t.substring(s,o)),`${K(t.substring(o,o+r.length))}`),s=o+r.length,o=n.indexOf(r,s);return i.push(K(t.substring(s))),i.join("")}var He={"&":"&","<":"<",">":">","'":"'",'"':"""};function K(t){return t.replace(/[&<>"'"]/g,e=>He[e])}var I=class{constructor(e){this.el=e.el,this.app=e.app}};var F="mousedown",fe="mousemove",H="mouseup",J={x:0,y:0},pe=!1,ee=!1,Be=!1,D=!1,me=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);document.documentElement.classList.add(me?"is-mobile":"not-mobile");me&&"ontouchstart"in document.documentElement&&(Be=!0,F="touchstart",fe="touchmove",H="touchend");document.addEventListener(F,t=>{ee=!0,D=!1;let e=F=="touchstart"?t.targetTouches[0]:t;J.y=e.pageY||0,J.x=e.pageX||0});document.addEventListener(fe,t=>{if(ee&&!D){let e=F=="touchstart"?t.targetTouches[0]:t,n=J.x-(e.pageX||0),r=J.y-(e.pageY||0);D=Math.sqrt(n*n+r*r)>10}});document.addEventListener(H,()=>{ee=!1});document.addEventListener("click",t=>{pe&&(t.preventDefault(),t.stopImmediatePropagation(),pe=!1)});var X=class extends I{constructor(e){super(e),this.className=this.el.dataset.toggle||"",this.el.addEventListener(H,n=>this.onPointerUp(n)),this.el.addEventListener("click",n=>n.preventDefault()),document.addEventListener(F,n=>this.onDocumentPointerDown(n)),document.addEventListener(H,n=>this.onDocumentPointerUp(n))}setActive(e){if(this.active==e)return;this.active=e,document.documentElement.classList.toggle("has-"+this.className,e),this.el.classList.toggle("active",e);let n=(this.active?"to-has-":"from-has-")+this.className;document.documentElement.classList.add(n),setTimeout(()=>document.documentElement.classList.remove(n),500)}onPointerUp(e){D||(this.setActive(!0),e.preventDefault())}onDocumentPointerDown(e){if(this.active){if(e.target.closest(".col-sidebar, .tsd-filter-group"))return;this.setActive(!1)}}onDocumentPointerUp(e){if(!D&&this.active&&e.target.closest(".col-sidebar")){let n=e.target.closest("a");if(n){let r=window.location.href;r.indexOf("#")!=-1&&(r=r.substring(0,r.indexOf("#"))),n.href.substring(0,r.length)==r&&setTimeout(()=>this.setActive(!1),250)}}}};var te;try{te=localStorage}catch{te={getItem(){return null},setItem(){}}}var Q=te;var ye=document.head.appendChild(document.createElement("style"));ye.dataset.for="filters";var Y=class extends I{constructor(e){super(e),this.key=`filter-${this.el.name}`,this.value=this.el.checked,this.el.addEventListener("change",()=>{this.setLocalStorage(this.el.checked)}),this.setLocalStorage(this.fromLocalStorage()),ye.innerHTML+=`html:not(.${this.key}) .tsd-is-${this.el.name} { display: none; } +`,this.app.updateIndexVisibility()}fromLocalStorage(){let e=Q.getItem(this.key);return e?e==="true":this.el.checked}setLocalStorage(e){Q.setItem(this.key,e.toString()),this.value=e,this.handleValueChange()}handleValueChange(){this.el.checked=this.value,document.documentElement.classList.toggle(this.key,this.value),this.app.filterChanged(),this.app.updateIndexVisibility()}};var Z=class extends I{constructor(e){super(e),this.summary=this.el.querySelector(".tsd-accordion-summary"),this.icon=this.summary.querySelector("svg"),this.key=`tsd-accordion-${this.summary.dataset.key??this.summary.textContent.trim().replace(/\s+/g,"-").toLowerCase()}`;let n=Q.getItem(this.key);this.el.open=n?n==="true":this.el.open,this.el.addEventListener("toggle",()=>this.update());let r=this.summary.querySelector("a");r&&r.addEventListener("click",()=>{location.assign(r.href)}),this.update()}update(){this.icon.style.transform=`rotate(${this.el.open?0:-90}deg)`,Q.setItem(this.key,this.el.open.toString())}};function ge(t){let e=Q.getItem("tsd-theme")||"os";t.value=e,ve(e),t.addEventListener("change",()=>{Q.setItem("tsd-theme",t.value),ve(t.value)})}function ve(t){document.documentElement.dataset.theme=t}var Le;function be(){let t=document.getElementById("tsd-nav-script");t&&(t.addEventListener("load",xe),xe())}async function xe(){let t=document.getElementById("tsd-nav-container");if(!t||!window.navigationData)return;let n=await(await fetch(window.navigationData)).arrayBuffer(),r=new Blob([n]).stream().pipeThrough(new DecompressionStream("gzip")),i=await new Response(r).json();Le=t.dataset.base+"/",t.innerHTML="";for(let s of i)we(s,t,[]);window.app.createComponents(t),window.app.showPage(),window.app.ensureActivePageVisible()}function we(t,e,n){let r=e.appendChild(document.createElement("li"));if(t.children){let i=[...n,t.text],s=r.appendChild(document.createElement("details"));s.className=t.class?`${t.class} tsd-index-accordion`:"tsd-index-accordion",s.dataset.key=i.join("$");let o=s.appendChild(document.createElement("summary"));o.className="tsd-accordion-summary",o.innerHTML='',Ee(t,o);let a=s.appendChild(document.createElement("div"));a.className="tsd-accordion-details";let l=a.appendChild(document.createElement("ul"));l.className="tsd-nested-navigation";for(let u of t.children)we(u,l,i)}else Ee(t,r,t.class)}function Ee(t,e,n){if(t.path){let r=e.appendChild(document.createElement("a"));r.href=Le+t.path,n&&(r.className=n),location.pathname===r.pathname&&r.classList.add("current"),t.kind&&(r.innerHTML=``),r.appendChild(document.createElement("span")).textContent=t.text}else e.appendChild(document.createElement("span")).textContent=t.text}G(X,"a[data-toggle]");G(Z,".tsd-index-accordion");G(Y,".tsd-filter-item input[type=checkbox]");var Se=document.getElementById("tsd-theme");Se&&ge(Se);var je=new U;Object.defineProperty(window,"app",{value:je});he();be();})(); +/*! Bundled license information: + +lunr/lunr.js: + (** + * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.3.9 + * Copyright (C) 2020 Oliver Nightingale + * @license MIT + *) + (*! + * lunr.utils + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.Set + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.tokenizer + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.Pipeline + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.Vector + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.stemmer + * Copyright (C) 2020 Oliver Nightingale + * Includes code from - http://tartarus.org/~martin/PorterStemmer/js.txt + *) + (*! + * lunr.stopWordFilter + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.trimmer + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.TokenSet + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.Index + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.Builder + * Copyright (C) 2020 Oliver Nightingale + *) +*/ diff --git a/static/api/1.0.0-beta.81/assets/navigation.js b/static/api/1.0.0-beta.81/assets/navigation.js new file mode 100644 index 0000000..f9a8eff --- /dev/null +++ b/static/api/1.0.0-beta.81/assets/navigation.js @@ -0,0 +1 @@ +window.navigationData = "data:application/octet-stream;base64,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" \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/assets/search.js b/static/api/1.0.0-beta.81/assets/search.js new file mode 100644 index 0000000..5a8f21d --- /dev/null +++ b/static/api/1.0.0-beta.81/assets/search.js @@ -0,0 +1 @@ +window.searchData = "data:application/octet-stream;base64,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"; \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/assets/style.css b/static/api/1.0.0-beta.81/assets/style.css new file mode 100644 index 0000000..778b949 --- /dev/null +++ b/static/api/1.0.0-beta.81/assets/style.css @@ -0,0 +1,1412 @@ +:root { + /* Light */ + --light-color-background: #f2f4f8; + --light-color-background-secondary: #eff0f1; + --light-color-warning-text: #222; + --light-color-background-warning: #e6e600; + --light-color-icon-background: var(--light-color-background); + --light-color-accent: #c5c7c9; + --light-color-active-menu-item: var(--light-color-accent); + --light-color-text: #222; + --light-color-text-aside: #6e6e6e; + --light-color-link: #1f70c2; + + --light-color-ts-keyword: #056bd6; + --light-color-ts-project: #b111c9; + --light-color-ts-module: var(--light-color-ts-project); + --light-color-ts-namespace: var(--light-color-ts-project); + --light-color-ts-enum: #7e6f15; + --light-color-ts-enum-member: var(--light-color-ts-enum); + --light-color-ts-variable: #4760ec; + --light-color-ts-function: #572be7; + --light-color-ts-class: #1f70c2; + --light-color-ts-interface: #108024; + --light-color-ts-constructor: var(--light-color-ts-class); + --light-color-ts-property: var(--light-color-ts-variable); + --light-color-ts-method: var(--light-color-ts-function); + --light-color-ts-call-signature: var(--light-color-ts-method); + --light-color-ts-index-signature: var(--light-color-ts-property); + --light-color-ts-constructor-signature: var(--light-color-ts-constructor); + --light-color-ts-parameter: var(--light-color-ts-variable); + /* type literal not included as links will never be generated to it */ + --light-color-ts-type-parameter: #a55c0e; + --light-color-ts-accessor: var(--light-color-ts-property); + --light-color-ts-get-signature: var(--light-color-ts-accessor); + --light-color-ts-set-signature: var(--light-color-ts-accessor); + --light-color-ts-type-alias: #d51270; + /* reference not included as links will be colored with the kind that it points to */ + + --light-external-icon: url("data:image/svg+xml;utf8,"); + --light-color-scheme: light; + + /* Dark */ + --dark-color-background: #2b2e33; + --dark-color-background-secondary: #1e2024; + --dark-color-background-warning: #bebe00; + --dark-color-warning-text: #222; + --dark-color-icon-background: var(--dark-color-background-secondary); + --dark-color-accent: #9096a2; + --dark-color-active-menu-item: #5d5d6a; + --dark-color-text: #f5f5f5; + --dark-color-text-aside: #dddddd; + --dark-color-link: #00aff4; + + --dark-color-ts-keyword: #3399ff; + --dark-color-ts-project: #e358ff; + --dark-color-ts-module: var(--dark-color-ts-project); + --dark-color-ts-namespace: var(--dark-color-ts-project); + --dark-color-ts-enum: #f4d93e; + --dark-color-ts-enum-member: var(--dark-color-ts-enum); + --dark-color-ts-variable: #798dff; + --dark-color-ts-function: #a280ff; + --dark-color-ts-class: #8ac4ff; + --dark-color-ts-interface: #6cff87; + --dark-color-ts-constructor: var(--dark-color-ts-class); + --dark-color-ts-property: var(--dark-color-ts-variable); + --dark-color-ts-method: var(--dark-color-ts-function); + --dark-color-ts-call-signature: var(--dark-color-ts-method); + --dark-color-ts-index-signature: var(--dark-color-ts-property); + --dark-color-ts-constructor-signature: var(--dark-color-ts-constructor); + --dark-color-ts-parameter: var(--dark-color-ts-variable); + /* type literal not included as links will never be generated to it */ + --dark-color-ts-type-parameter: #e07d13; + --dark-color-ts-accessor: var(--dark-color-ts-property); + --dark-color-ts-get-signature: var(--dark-color-ts-accessor); + --dark-color-ts-set-signature: var(--dark-color-ts-accessor); + --dark-color-ts-type-alias: #ff6492; + /* reference not included as links will be colored with the kind that it points to */ + + --dark-external-icon: url("data:image/svg+xml;utf8,"); + --dark-color-scheme: dark; +} + +@media (prefers-color-scheme: light) { + :root { + --color-background: var(--light-color-background); + --color-background-secondary: var(--light-color-background-secondary); + --color-background-warning: var(--light-color-background-warning); + --color-warning-text: var(--light-color-warning-text); + --color-icon-background: var(--light-color-icon-background); + --color-accent: var(--light-color-accent); + --color-active-menu-item: var(--light-color-active-menu-item); + --color-text: var(--light-color-text); + --color-text-aside: var(--light-color-text-aside); + --color-link: var(--light-color-link); + + --color-ts-keyword: var(--light-color-ts-keyword); + --color-ts-module: var(--light-color-ts-module); + --color-ts-namespace: var(--light-color-ts-namespace); + --color-ts-enum: var(--light-color-ts-enum); + --color-ts-enum-member: var(--light-color-ts-enum-member); + --color-ts-variable: var(--light-color-ts-variable); + --color-ts-function: var(--light-color-ts-function); + --color-ts-class: var(--light-color-ts-class); + --color-ts-interface: var(--light-color-ts-interface); + --color-ts-constructor: var(--light-color-ts-constructor); + --color-ts-property: var(--light-color-ts-property); + --color-ts-method: var(--light-color-ts-method); + --color-ts-call-signature: var(--light-color-ts-call-signature); + --color-ts-index-signature: var(--light-color-ts-index-signature); + --color-ts-constructor-signature: var( + --light-color-ts-constructor-signature + ); + --color-ts-parameter: var(--light-color-ts-parameter); + --color-ts-type-parameter: var(--light-color-ts-type-parameter); + --color-ts-accessor: var(--light-color-ts-accessor); + --color-ts-get-signature: var(--light-color-ts-get-signature); + --color-ts-set-signature: var(--light-color-ts-set-signature); + --color-ts-type-alias: var(--light-color-ts-type-alias); + + --external-icon: var(--light-external-icon); + --color-scheme: var(--light-color-scheme); + } +} + +@media (prefers-color-scheme: dark) { + :root { + --color-background: var(--dark-color-background); + --color-background-secondary: var(--dark-color-background-secondary); + --color-background-warning: var(--dark-color-background-warning); + --color-warning-text: var(--dark-color-warning-text); + --color-icon-background: var(--dark-color-icon-background); + --color-accent: var(--dark-color-accent); + --color-active-menu-item: var(--dark-color-active-menu-item); + --color-text: var(--dark-color-text); + --color-text-aside: var(--dark-color-text-aside); + --color-link: var(--dark-color-link); + + --color-ts-keyword: var(--dark-color-ts-keyword); + --color-ts-module: var(--dark-color-ts-module); + --color-ts-namespace: var(--dark-color-ts-namespace); + --color-ts-enum: var(--dark-color-ts-enum); + --color-ts-enum-member: var(--dark-color-ts-enum-member); + --color-ts-variable: var(--dark-color-ts-variable); + --color-ts-function: var(--dark-color-ts-function); + --color-ts-class: var(--dark-color-ts-class); + --color-ts-interface: var(--dark-color-ts-interface); + --color-ts-constructor: var(--dark-color-ts-constructor); + --color-ts-property: var(--dark-color-ts-property); + --color-ts-method: var(--dark-color-ts-method); + --color-ts-call-signature: var(--dark-color-ts-call-signature); + --color-ts-index-signature: var(--dark-color-ts-index-signature); + --color-ts-constructor-signature: var( + --dark-color-ts-constructor-signature + ); + --color-ts-parameter: var(--dark-color-ts-parameter); + --color-ts-type-parameter: var(--dark-color-ts-type-parameter); + --color-ts-accessor: var(--dark-color-ts-accessor); + --color-ts-get-signature: var(--dark-color-ts-get-signature); + --color-ts-set-signature: var(--dark-color-ts-set-signature); + --color-ts-type-alias: var(--dark-color-ts-type-alias); + + --external-icon: var(--dark-external-icon); + --color-scheme: var(--dark-color-scheme); + } +} + +html { + color-scheme: var(--color-scheme); +} + +body { + margin: 0; +} + +:root[data-theme="light"] { + --color-background: var(--light-color-background); + --color-background-secondary: var(--light-color-background-secondary); + --color-background-warning: var(--light-color-background-warning); + --color-warning-text: var(--light-color-warning-text); + --color-icon-background: var(--light-color-icon-background); + --color-accent: var(--light-color-accent); + --color-active-menu-item: var(--light-color-active-menu-item); + --color-text: var(--light-color-text); + --color-text-aside: var(--light-color-text-aside); + --color-link: var(--light-color-link); + + --color-ts-keyword: var(--light-color-ts-keyword); + --color-ts-module: var(--light-color-ts-module); + --color-ts-namespace: var(--light-color-ts-namespace); + --color-ts-enum: var(--light-color-ts-enum); + --color-ts-enum-member: var(--light-color-ts-enum-member); + --color-ts-variable: var(--light-color-ts-variable); + --color-ts-function: var(--light-color-ts-function); + --color-ts-class: var(--light-color-ts-class); + --color-ts-interface: var(--light-color-ts-interface); + --color-ts-constructor: var(--light-color-ts-constructor); + --color-ts-property: var(--light-color-ts-property); + --color-ts-method: var(--light-color-ts-method); + --color-ts-call-signature: var(--light-color-ts-call-signature); + --color-ts-index-signature: var(--light-color-ts-index-signature); + --color-ts-constructor-signature: var( + --light-color-ts-constructor-signature + ); + --color-ts-parameter: var(--light-color-ts-parameter); + --color-ts-type-parameter: var(--light-color-ts-type-parameter); + --color-ts-accessor: var(--light-color-ts-accessor); + --color-ts-get-signature: var(--light-color-ts-get-signature); + --color-ts-set-signature: var(--light-color-ts-set-signature); + --color-ts-type-alias: var(--light-color-ts-type-alias); + + --external-icon: var(--light-external-icon); + --color-scheme: var(--light-color-scheme); +} + +:root[data-theme="dark"] { + --color-background: var(--dark-color-background); + --color-background-secondary: var(--dark-color-background-secondary); + --color-background-warning: var(--dark-color-background-warning); + --color-warning-text: var(--dark-color-warning-text); + --color-icon-background: var(--dark-color-icon-background); + --color-accent: var(--dark-color-accent); + --color-active-menu-item: var(--dark-color-active-menu-item); + --color-text: var(--dark-color-text); + --color-text-aside: var(--dark-color-text-aside); + --color-link: var(--dark-color-link); + + --color-ts-keyword: var(--dark-color-ts-keyword); + --color-ts-module: var(--dark-color-ts-module); + --color-ts-namespace: var(--dark-color-ts-namespace); + --color-ts-enum: var(--dark-color-ts-enum); + --color-ts-enum-member: var(--dark-color-ts-enum-member); + --color-ts-variable: var(--dark-color-ts-variable); + --color-ts-function: var(--dark-color-ts-function); + --color-ts-class: var(--dark-color-ts-class); + --color-ts-interface: var(--dark-color-ts-interface); + --color-ts-constructor: var(--dark-color-ts-constructor); + --color-ts-property: var(--dark-color-ts-property); + --color-ts-method: var(--dark-color-ts-method); + --color-ts-call-signature: var(--dark-color-ts-call-signature); + --color-ts-index-signature: var(--dark-color-ts-index-signature); + --color-ts-constructor-signature: var( + --dark-color-ts-constructor-signature + ); + --color-ts-parameter: var(--dark-color-ts-parameter); + --color-ts-type-parameter: var(--dark-color-ts-type-parameter); + --color-ts-accessor: var(--dark-color-ts-accessor); + --color-ts-get-signature: var(--dark-color-ts-get-signature); + --color-ts-set-signature: var(--dark-color-ts-set-signature); + --color-ts-type-alias: var(--dark-color-ts-type-alias); + + --external-icon: var(--dark-external-icon); + --color-scheme: var(--dark-color-scheme); +} + +.always-visible, +.always-visible .tsd-signatures { + display: inherit !important; +} + +h1, +h2, +h3, +h4, +h5, +h6 { + line-height: 1.2; +} + +h1 > a:not(.link), +h2 > a:not(.link), +h3 > a:not(.link), +h4 > a:not(.link), +h5 > a:not(.link), +h6 > a:not(.link) { + text-decoration: none; + color: var(--color-text); +} + +h1 { + font-size: 1.875rem; + margin: 0.67rem 0; +} + +h2 { + font-size: 1.5rem; + margin: 0.83rem 0; +} + +h3 { + font-size: 1.25rem; + margin: 1rem 0; +} + +h4 { + font-size: 1.05rem; + margin: 1.33rem 0; +} + +h5 { + font-size: 1rem; + margin: 1.5rem 0; +} + +h6 { + font-size: 0.875rem; + margin: 2.33rem 0; +} + +.uppercase { + text-transform: uppercase; +} + +dl, +menu, +ol, +ul { + margin: 1em 0; +} + +dd { + margin: 0 0 0 40px; +} + +.container { + max-width: 1700px; + padding: 0 2rem; +} + +/* Footer */ +footer { + border-top: 1px solid var(--color-accent); + padding-top: 1rem; + padding-bottom: 1rem; + max-height: 3.5rem; +} +.tsd-generator { + margin: 0 1em; +} + +.container-main { + margin: 0 auto; + /* toolbar, footer, margin */ + min-height: calc(100vh - 41px - 56px - 4rem); +} + +@keyframes fade-in { + from { + opacity: 0; + } + to { + opacity: 1; + } +} +@keyframes fade-out { + from { + opacity: 1; + visibility: visible; + } + to { + opacity: 0; + } +} +@keyframes fade-in-delayed { + 0% { + opacity: 0; + } + 33% { + opacity: 0; + } + 100% { + opacity: 1; + } +} +@keyframes fade-out-delayed { + 0% { + opacity: 1; + visibility: visible; + } + 66% { + opacity: 0; + } + 100% { + opacity: 0; + } +} +@keyframes pop-in-from-right { + from { + transform: translate(100%, 0); + } + to { + transform: translate(0, 0); + } +} +@keyframes pop-out-to-right { + from { + transform: translate(0, 0); + visibility: visible; + } + to { + transform: translate(100%, 0); + } +} +body { + background: var(--color-background); + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans", + Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; + font-size: 16px; + color: var(--color-text); +} + +a { + color: var(--color-link); + text-decoration: none; +} +a:hover { + text-decoration: underline; +} +a.external[target="_blank"] { + background-image: var(--external-icon); + background-position: top 3px right; + background-repeat: no-repeat; + padding-right: 13px; +} + +code, +pre { + font-family: Menlo, Monaco, Consolas, "Courier New", monospace; + padding: 0.2em; + margin: 0; + font-size: 0.875rem; + border-radius: 0.8em; +} + +pre { + position: relative; + white-space: pre; + white-space: pre-wrap; + word-wrap: break-word; + padding: 10px; + border: 1px solid var(--color-accent); +} +pre code { + padding: 0; + font-size: 100%; +} +pre > button { + position: absolute; + top: 10px; + right: 10px; + opacity: 0; + transition: opacity 0.1s; + box-sizing: border-box; +} +pre:hover > button, +pre > button.visible { + opacity: 1; +} + +blockquote { + margin: 1em 0; + padding-left: 1em; + border-left: 4px solid gray; +} + +.tsd-typography { + line-height: 1.333em; +} +.tsd-typography ul { + list-style: square; + padding: 0 0 0 20px; + margin: 0; +} +.tsd-typography .tsd-index-panel h3, +.tsd-index-panel .tsd-typography h3, +.tsd-typography h4, +.tsd-typography h5, +.tsd-typography h6 { + font-size: 1em; +} +.tsd-typography h5, +.tsd-typography h6 { + font-weight: normal; +} +.tsd-typography p, +.tsd-typography ul, +.tsd-typography ol { + margin: 1em 0; +} +.tsd-typography table { + border-collapse: collapse; + border: none; +} +.tsd-typography td, +.tsd-typography th { + padding: 6px 13px; + border: 1px solid var(--color-accent); +} +.tsd-typography thead, +.tsd-typography tr:nth-child(even) { + background-color: var(--color-background-secondary); +} + +.tsd-breadcrumb { + margin: 0; + padding: 0; + color: var(--color-text-aside); +} +.tsd-breadcrumb a { + color: var(--color-text-aside); + text-decoration: none; +} +.tsd-breadcrumb a:hover { + text-decoration: underline; +} +.tsd-breadcrumb li { + display: inline; +} +.tsd-breadcrumb li:after { + content: " / "; +} + +.tsd-comment-tags { + display: flex; + flex-direction: column; +} +dl.tsd-comment-tag-group { + display: flex; + align-items: center; + overflow: hidden; + margin: 0.5em 0; +} +dl.tsd-comment-tag-group dt { + display: flex; + margin-right: 0.5em; + font-size: 0.875em; + font-weight: normal; +} +dl.tsd-comment-tag-group dd { + margin: 0; +} +code.tsd-tag { + padding: 0.25em 0.4em; + border: 0.1em solid var(--color-accent); + margin-right: 0.25em; + font-size: 70%; +} +h1 code.tsd-tag:first-of-type { + margin-left: 0.25em; +} + +dl.tsd-comment-tag-group dd:before, +dl.tsd-comment-tag-group dd:after { + content: " "; +} +dl.tsd-comment-tag-group dd pre, +dl.tsd-comment-tag-group dd:after { + clear: both; +} +dl.tsd-comment-tag-group p { + margin: 0; +} + +.tsd-panel.tsd-comment .lead { + font-size: 1.1em; + line-height: 1.333em; + margin-bottom: 2em; +} +.tsd-panel.tsd-comment .lead:last-child { + margin-bottom: 0; +} + +.tsd-filter-visibility h4 { + font-size: 1rem; + padding-top: 0.75rem; + padding-bottom: 0.5rem; + margin: 0; +} +.tsd-filter-item:not(:last-child) { + margin-bottom: 0.5rem; +} +.tsd-filter-input { + display: flex; + width: fit-content; + width: -moz-fit-content; + align-items: center; + user-select: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + cursor: pointer; +} +.tsd-filter-input input[type="checkbox"] { + cursor: pointer; + position: absolute; + width: 1.5em; + height: 1.5em; + opacity: 0; +} +.tsd-filter-input input[type="checkbox"]:disabled { + pointer-events: none; +} +.tsd-filter-input svg { + cursor: pointer; + width: 1.5em; + height: 1.5em; + margin-right: 0.5em; + border-radius: 0.33em; + /* Leaving this at full opacity breaks event listeners on Firefox. + Don't remove unless you know what you're doing. */ + opacity: 0.99; +} +.tsd-filter-input input[type="checkbox"]:focus + svg { + transform: scale(0.95); +} +.tsd-filter-input input[type="checkbox"]:focus:not(:focus-visible) + svg { + transform: scale(1); +} +.tsd-checkbox-background { + fill: var(--color-accent); +} +input[type="checkbox"]:checked ~ svg .tsd-checkbox-checkmark { + stroke: var(--color-text); +} +.tsd-filter-input input:disabled ~ svg > .tsd-checkbox-background { + fill: var(--color-background); + stroke: var(--color-accent); + stroke-width: 0.25rem; +} +.tsd-filter-input input:disabled ~ svg > .tsd-checkbox-checkmark { + stroke: var(--color-accent); +} + +.tsd-theme-toggle { + padding-top: 0.75rem; +} +.tsd-theme-toggle > h4 { + display: inline; + vertical-align: middle; + margin-right: 0.75rem; +} + +.tsd-hierarchy { + list-style: square; + margin: 0; +} +.tsd-hierarchy .target { + font-weight: bold; +} + +.tsd-full-hierarchy:not(:last-child) { + margin-bottom: 1em; + padding-bottom: 1em; + border-bottom: 1px solid var(--color-accent); +} +.tsd-full-hierarchy, +.tsd-full-hierarchy ul { + list-style: none; + margin: 0; + padding: 0; +} +.tsd-full-hierarchy ul { + padding-left: 1.5rem; +} +.tsd-full-hierarchy a { + padding: 0.25rem 0 !important; + font-size: 1rem; + display: inline-flex; + align-items: center; + color: var(--color-text); +} + +.tsd-panel-group.tsd-index-group { + margin-bottom: 0; +} +.tsd-index-panel .tsd-index-list { + list-style: none; + line-height: 1.333em; + margin: 0; + padding: 0.25rem 0 0 0; + overflow: hidden; + display: grid; + grid-template-columns: repeat(3, 1fr); + column-gap: 1rem; + grid-template-rows: auto; +} +@media (max-width: 1024px) { + .tsd-index-panel .tsd-index-list { + grid-template-columns: repeat(2, 1fr); + } +} +@media (max-width: 768px) { + .tsd-index-panel .tsd-index-list { + grid-template-columns: repeat(1, 1fr); + } +} +.tsd-index-panel .tsd-index-list li { + -webkit-page-break-inside: avoid; + -moz-page-break-inside: avoid; + -ms-page-break-inside: avoid; + -o-page-break-inside: avoid; + page-break-inside: avoid; +} + +.tsd-flag { + display: inline-block; + padding: 0.25em 0.4em; + border-radius: 4px; + color: var(--color-comment-tag-text); + background-color: var(--color-comment-tag); + text-indent: 0; + font-size: 75%; + line-height: 1; + font-weight: normal; +} + +.tsd-anchor { + position: relative; + top: -100px; +} + +.tsd-member { + position: relative; +} +.tsd-member .tsd-anchor + h3 { + display: flex; + align-items: center; + margin-top: 0; + margin-bottom: 0; + border-bottom: none; +} + +.tsd-navigation.settings { + margin: 1rem 0; +} +.tsd-navigation > a, +.tsd-navigation .tsd-accordion-summary { + width: calc(100% - 0.25rem); + display: flex; + align-items: center; +} +.tsd-navigation a, +.tsd-navigation summary > span, +.tsd-page-navigation a { + display: flex; + width: calc(100% - 0.25rem); + align-items: center; + padding: 0.25rem; + color: var(--color-text); + text-decoration: none; + box-sizing: border-box; +} +.tsd-navigation a.current, +.tsd-page-navigation a.current { + background: var(--color-active-menu-item); +} +.tsd-navigation a:hover, +.tsd-page-navigation a:hover { + text-decoration: underline; +} +.tsd-navigation ul, +.tsd-page-navigation ul { + margin-top: 0; + margin-bottom: 0; + padding: 0; + list-style: none; +} +.tsd-navigation li, +.tsd-page-navigation li { + padding: 0; + max-width: 100%; +} +.tsd-nested-navigation { + margin-left: 3rem; +} +.tsd-nested-navigation > li > details { + margin-left: -1.5rem; +} +.tsd-small-nested-navigation { + margin-left: 1.5rem; +} +.tsd-small-nested-navigation > li > details { + margin-left: -1.5rem; +} + +.tsd-page-navigation ul { + padding-left: 1.75rem; +} + +#tsd-sidebar-links a { + margin-top: 0; + margin-bottom: 0.5rem; + line-height: 1.25rem; +} +#tsd-sidebar-links a:last-of-type { + margin-bottom: 0; +} + +a.tsd-index-link { + padding: 0.25rem 0 !important; + font-size: 1rem; + line-height: 1.25rem; + display: inline-flex; + align-items: center; + color: var(--color-text); +} +.tsd-accordion-summary { + list-style-type: none; /* hide marker on non-safari */ + outline: none; /* broken on safari, so just hide it */ +} +.tsd-accordion-summary::-webkit-details-marker { + display: none; /* hide marker on safari */ +} +.tsd-accordion-summary, +.tsd-accordion-summary a { + user-select: none; + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + + cursor: pointer; +} +.tsd-accordion-summary a { + width: calc(100% - 1.5rem); +} +.tsd-accordion-summary > * { + margin-top: 0; + margin-bottom: 0; + padding-top: 0; + padding-bottom: 0; +} +.tsd-index-accordion .tsd-accordion-summary > svg { + margin-left: 0.25rem; +} +.tsd-index-content > :not(:first-child) { + margin-top: 0.75rem; +} +.tsd-index-heading { + margin-top: 1.5rem; + margin-bottom: 0.75rem; +} + +.tsd-kind-icon { + margin-right: 0.5rem; + width: 1.25rem; + height: 1.25rem; + min-width: 1.25rem; + min-height: 1.25rem; +} +.tsd-kind-icon path { + transform-origin: center; + transform: scale(1.1); +} +.tsd-signature > .tsd-kind-icon { + margin-right: 0.8rem; +} + +.tsd-panel { + margin-bottom: 2.5rem; +} +.tsd-panel.tsd-member { + margin-bottom: 4rem; +} +.tsd-panel:empty { + display: none; +} +.tsd-panel > h1, +.tsd-panel > h2, +.tsd-panel > h3 { + margin: 1.5rem -1.5rem 0.75rem -1.5rem; + padding: 0 1.5rem 0.75rem 1.5rem; +} +.tsd-panel > h1.tsd-before-signature, +.tsd-panel > h2.tsd-before-signature, +.tsd-panel > h3.tsd-before-signature { + margin-bottom: 0; + border-bottom: none; +} + +.tsd-panel-group { + margin: 4rem 0; +} +.tsd-panel-group.tsd-index-group { + margin: 2rem 0; +} +.tsd-panel-group.tsd-index-group details { + margin: 2rem 0; +} + +#tsd-search { + transition: background-color 0.2s; +} +#tsd-search .title { + position: relative; + z-index: 2; +} +#tsd-search .field { + position: absolute; + left: 0; + top: 0; + right: 2.5rem; + height: 100%; +} +#tsd-search .field input { + box-sizing: border-box; + position: relative; + top: -50px; + z-index: 1; + width: 100%; + padding: 0 10px; + opacity: 0; + outline: 0; + border: 0; + background: transparent; + color: var(--color-text); +} +#tsd-search .field label { + position: absolute; + overflow: hidden; + right: -40px; +} +#tsd-search .field input, +#tsd-search .title, +#tsd-toolbar-links a { + transition: opacity 0.2s; +} +#tsd-search .results { + position: absolute; + visibility: hidden; + top: 40px; + width: 100%; + margin: 0; + padding: 0; + list-style: none; + box-shadow: 0 0 4px rgba(0, 0, 0, 0.25); +} +#tsd-search .results li { + background-color: var(--color-background); + line-height: initial; + padding: 4px; +} +#tsd-search .results li:nth-child(even) { + background-color: var(--color-background-secondary); +} +#tsd-search .results li.state { + display: none; +} +#tsd-search .results li.current:not(.no-results), +#tsd-search .results li:hover:not(.no-results) { + background-color: var(--color-accent); +} +#tsd-search .results a { + display: flex; + align-items: center; + padding: 0.25rem; + box-sizing: border-box; +} +#tsd-search .results a:before { + top: 10px; +} +#tsd-search .results span.parent { + color: var(--color-text-aside); + font-weight: normal; +} +#tsd-search.has-focus { + background-color: var(--color-accent); +} +#tsd-search.has-focus .field input { + top: 0; + opacity: 1; +} +#tsd-search.has-focus .title, +#tsd-search.has-focus #tsd-toolbar-links a { + z-index: 0; + opacity: 0; +} +#tsd-search.has-focus .results { + visibility: visible; +} +#tsd-search.loading .results li.state.loading { + display: block; +} +#tsd-search.failure .results li.state.failure { + display: block; +} + +#tsd-toolbar-links { + position: absolute; + top: 0; + right: 2rem; + height: 100%; + display: flex; + align-items: center; + justify-content: flex-end; +} +#tsd-toolbar-links a { + margin-left: 1.5rem; +} +#tsd-toolbar-links a:hover { + text-decoration: underline; +} + +.tsd-signature { + margin: 0 0 1rem 0; + padding: 1rem 0.5rem; + border: 1px solid var(--color-accent); + font-family: Menlo, Monaco, Consolas, "Courier New", monospace; + font-size: 14px; + overflow-x: auto; +} + +.tsd-signature-keyword { + color: var(--color-ts-keyword); + font-weight: normal; +} + +.tsd-signature-symbol { + color: var(--color-text-aside); + font-weight: normal; +} + +.tsd-signature-type { + font-style: italic; + font-weight: normal; +} + +.tsd-signatures { + padding: 0; + margin: 0 0 1em 0; + list-style-type: none; +} +.tsd-signatures .tsd-signature { + margin: 0; + border-color: var(--color-accent); + border-width: 1px 0; + transition: background-color 0.1s; +} +.tsd-description .tsd-signatures .tsd-signature { + border-width: 1px; +} + +ul.tsd-parameter-list, +ul.tsd-type-parameter-list { + list-style: square; + margin: 0; + padding-left: 20px; +} +ul.tsd-parameter-list > li.tsd-parameter-signature, +ul.tsd-type-parameter-list > li.tsd-parameter-signature { + list-style: none; + margin-left: -20px; +} +ul.tsd-parameter-list h5, +ul.tsd-type-parameter-list h5 { + font-size: 16px; + margin: 1em 0 0.5em 0; +} +.tsd-sources { + margin-top: 1rem; + font-size: 0.875em; +} +.tsd-sources a { + color: var(--color-text-aside); + text-decoration: underline; +} +.tsd-sources ul { + list-style: none; + padding: 0; +} + +.tsd-page-toolbar { + position: sticky; + z-index: 1; + top: 0; + left: 0; + width: 100%; + color: var(--color-text); + background: var(--color-background-secondary); + border-bottom: 1px var(--color-accent) solid; + transition: transform 0.3s ease-in-out; +} +.tsd-page-toolbar a { + color: var(--color-text); + text-decoration: none; +} +.tsd-page-toolbar a.title { + font-weight: bold; +} +.tsd-page-toolbar a.title:hover { + text-decoration: underline; +} +.tsd-page-toolbar .tsd-toolbar-contents { + display: flex; + justify-content: space-between; + height: 2.5rem; + margin: 0 auto; +} +.tsd-page-toolbar .table-cell { + position: relative; + white-space: nowrap; + line-height: 40px; +} +.tsd-page-toolbar .table-cell:first-child { + width: 100%; +} +.tsd-page-toolbar .tsd-toolbar-icon { + box-sizing: border-box; + line-height: 0; + padding: 12px 0; +} + +.tsd-widget { + display: inline-block; + overflow: hidden; + opacity: 0.8; + height: 40px; + transition: + opacity 0.1s, + background-color 0.2s; + vertical-align: bottom; + cursor: pointer; +} +.tsd-widget:hover { + opacity: 0.9; +} +.tsd-widget.active { + opacity: 1; + background-color: var(--color-accent); +} +.tsd-widget.no-caption { + width: 40px; +} +.tsd-widget.no-caption:before { + margin: 0; +} + +.tsd-widget.options, +.tsd-widget.menu { + display: none; +} +input[type="checkbox"] + .tsd-widget:before { + background-position: -120px 0; +} +input[type="checkbox"]:checked + .tsd-widget:before { + background-position: -160px 0; +} + +img { + max-width: 100%; +} + +.tsd-anchor-icon { + display: inline-flex; + align-items: center; + margin-left: 0.5rem; + vertical-align: middle; + color: var(--color-text); +} + +.tsd-anchor-icon svg { + width: 1em; + height: 1em; + visibility: hidden; +} + +.tsd-anchor-link:hover > .tsd-anchor-icon svg { + visibility: visible; +} + +.deprecated { + text-decoration: line-through !important; +} + +.warning { + padding: 1rem; + color: var(--color-warning-text); + background: var(--color-background-warning); +} + +.tsd-kind-project { + color: var(--color-ts-project); +} +.tsd-kind-module { + color: var(--color-ts-module); +} +.tsd-kind-namespace { + color: var(--color-ts-namespace); +} +.tsd-kind-enum { + color: var(--color-ts-enum); +} +.tsd-kind-enum-member { + color: var(--color-ts-enum-member); +} +.tsd-kind-variable { + color: var(--color-ts-variable); +} +.tsd-kind-function { + color: var(--color-ts-function); +} +.tsd-kind-class { + color: var(--color-ts-class); +} +.tsd-kind-interface { + color: var(--color-ts-interface); +} +.tsd-kind-constructor { + color: var(--color-ts-constructor); +} +.tsd-kind-property { + color: var(--color-ts-property); +} +.tsd-kind-method { + color: var(--color-ts-method); +} +.tsd-kind-call-signature { + color: var(--color-ts-call-signature); +} +.tsd-kind-index-signature { + color: var(--color-ts-index-signature); +} +.tsd-kind-constructor-signature { + color: var(--color-ts-constructor-signature); +} +.tsd-kind-parameter { + color: var(--color-ts-parameter); +} +.tsd-kind-type-literal { + color: var(--color-ts-type-literal); +} +.tsd-kind-type-parameter { + color: var(--color-ts-type-parameter); +} +.tsd-kind-accessor { + color: var(--color-ts-accessor); +} +.tsd-kind-get-signature { + color: var(--color-ts-get-signature); +} +.tsd-kind-set-signature { + color: var(--color-ts-set-signature); +} +.tsd-kind-type-alias { + color: var(--color-ts-type-alias); +} + +/* if we have a kind icon, don't color the text by kind */ +.tsd-kind-icon ~ span { + color: var(--color-text); +} + +* { + scrollbar-width: thin; + scrollbar-color: var(--color-accent) var(--color-icon-background); +} + +*::-webkit-scrollbar { + width: 0.75rem; +} + +*::-webkit-scrollbar-track { + background: var(--color-icon-background); +} + +*::-webkit-scrollbar-thumb { + background-color: var(--color-accent); + border-radius: 999rem; + border: 0.25rem solid var(--color-icon-background); +} + +/* mobile */ +@media (max-width: 769px) { + .tsd-widget.options, + .tsd-widget.menu { + display: inline-block; + } + + .container-main { + display: flex; + } + html .col-content { + float: none; + max-width: 100%; + width: 100%; + } + html .col-sidebar { + position: fixed !important; + overflow-y: auto; + -webkit-overflow-scrolling: touch; + z-index: 1024; + top: 0 !important; + bottom: 0 !important; + left: auto !important; + right: 0 !important; + padding: 1.5rem 1.5rem 0 0; + width: 75vw; + visibility: hidden; + background-color: var(--color-background); + transform: translate(100%, 0); + } + html .col-sidebar > *:last-child { + padding-bottom: 20px; + } + html .overlay { + content: ""; + display: block; + position: fixed; + z-index: 1023; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: rgba(0, 0, 0, 0.75); + visibility: hidden; + } + + .to-has-menu .overlay { + animation: fade-in 0.4s; + } + + .to-has-menu .col-sidebar { + animation: pop-in-from-right 0.4s; + } + + .from-has-menu .overlay { + animation: fade-out 0.4s; + } + + .from-has-menu .col-sidebar { + animation: pop-out-to-right 0.4s; + } + + .has-menu body { + overflow: hidden; + } + .has-menu .overlay { + visibility: visible; + } + .has-menu .col-sidebar { + visibility: visible; + transform: translate(0, 0); + display: flex; + flex-direction: column; + gap: 1.5rem; + max-height: 100vh; + padding: 1rem 2rem; + } + .has-menu .tsd-navigation { + max-height: 100%; + } +} + +/* one sidebar */ +@media (min-width: 770px) { + .container-main { + display: grid; + grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); + grid-template-areas: "sidebar content"; + margin: 2rem auto; + } + + .col-sidebar { + grid-area: sidebar; + } + .col-content { + grid-area: content; + padding: 0 1rem; + } +} +@media (min-width: 770px) and (max-width: 1399px) { + .col-sidebar { + max-height: calc(100vh - 2rem - 42px); + overflow: auto; + position: sticky; + top: 42px; + padding-top: 1rem; + } + .site-menu { + margin-top: 1rem; + } +} + +/* two sidebars */ +@media (min-width: 1200px) { + .container-main { + grid-template-columns: minmax(0, 1fr) minmax(0, 2.5fr) minmax(0, 20rem); + grid-template-areas: "sidebar content toc"; + } + + .col-sidebar { + display: contents; + } + + .page-menu { + grid-area: toc; + padding-left: 1rem; + } + .site-menu { + grid-area: sidebar; + } + + .site-menu { + margin-top: 1rem 0; + } + + .page-menu, + .site-menu { + max-height: calc(100vh - 2rem - 42px); + overflow: auto; + position: sticky; + top: 42px; + } +} diff --git a/static/api/1.0.0-beta.81/classes/_nymphjs_client.ClassNotAvailableError.html b/static/api/1.0.0-beta.81/classes/_nymphjs_client.ClassNotAvailableError.html new file mode 100644 index 0000000..37f4b18 --- /dev/null +++ b/static/api/1.0.0-beta.81/classes/_nymphjs_client.ClassNotAvailableError.html @@ -0,0 +1,11 @@ +ClassNotAvailableError | Nymph.js 1.0.0-beta.81

Hierarchy

  • Error
    • ClassNotAvailableError

Constructors

Properties

message: string
name: string
stack?: string
prepareStackTrace?: ((err, stackTraces) => any)

Optional override for formatting stack traces

+

Type declaration

    • (err, stackTraces): any
    • Parameters

      • err: Error
      • stackTraces: CallSite[]

      Returns any

stackTraceLimit: number

Methods

  • Create .stack property on a target object

    +

    Parameters

    • targetObject: object
    • Optional constructorOpt: Function

    Returns void

\ No newline at end of file diff --git a/static/api/1.0.0-beta.81/classes/_nymphjs_client.ClientError.html b/static/api/1.0.0-beta.81/classes/_nymphjs_client.ClientError.html new file mode 100644 index 0000000..ba524c3 --- /dev/null +++ b/static/api/1.0.0-beta.81/classes/_nymphjs_client.ClientError.html @@ -0,0 +1,13 @@ +ClientError | Nymph.js 1.0.0-beta.81

Hierarchy (view full)

Constructors

Properties

message: string
name: string
stack?: string
status: number
statusText: string
prepareStackTrace?: ((err, stackTraces) => any)

Optional override for formatting stack traces

+

Type declaration

    • (err, stackTraces): any
    • Parameters

      • err: Error
      • stackTraces: CallSite[]

      Returns any

stackTraceLimit: number

Methods

  • Create .stack property on a target object

    +

    Parameters

    • targetObject: object
    • Optional constructorOpt: Function

    Returns void

\ No newline at end of file diff --git a/static/api/1.0.0-beta.81/classes/_nymphjs_client.ConnectionClosedUnexpectedlyError.html b/static/api/1.0.0-beta.81/classes/_nymphjs_client.ConnectionClosedUnexpectedlyError.html new file mode 100644 index 0000000..1ebf50f --- /dev/null +++ b/static/api/1.0.0-beta.81/classes/_nymphjs_client.ConnectionClosedUnexpectedlyError.html @@ -0,0 +1,11 @@ +ConnectionClosedUnexpectedlyError | Nymph.js 1.0.0-beta.81

Hierarchy

  • Error
    • ConnectionClosedUnexpectedlyError

Constructors

Properties

message: string
name: string
stack?: string
prepareStackTrace?: ((err, stackTraces) => any)

Optional override for formatting stack traces

+

Type declaration

    • (err, stackTraces): any
    • Parameters

      • err: Error
      • stackTraces: CallSite[]

      Returns any

stackTraceLimit: number

Methods

  • Create .stack property on a target object

    +

    Parameters

    • targetObject: object
    • Optional constructorOpt: Function

    Returns void

\ No newline at end of file diff --git a/static/api/1.0.0-beta.81/classes/_nymphjs_client.ConnectionError.html b/static/api/1.0.0-beta.81/classes/_nymphjs_client.ConnectionError.html new file mode 100644 index 0000000..44658d5 --- /dev/null +++ b/static/api/1.0.0-beta.81/classes/_nymphjs_client.ConnectionError.html @@ -0,0 +1,11 @@ +ConnectionError | Nymph.js 1.0.0-beta.81

Hierarchy

  • Error
    • ConnectionError

Constructors

Properties

message: string
name: string
stack?: string
prepareStackTrace?: ((err, stackTraces) => any)

Optional override for formatting stack traces

+

Type declaration

    • (err, stackTraces): any
    • Parameters

      • err: Error
      • stackTraces: CallSite[]

      Returns any

stackTraceLimit: number

Methods

  • Create .stack property on a target object

    +

    Parameters

    • targetObject: object
    • Optional constructorOpt: Function

    Returns void

\ No newline at end of file diff --git a/static/api/1.0.0-beta.81/classes/_nymphjs_client.Entity.html b/static/api/1.0.0-beta.81/classes/_nymphjs_client.Entity.html new file mode 100644 index 0000000..ce165a2 --- /dev/null +++ b/static/api/1.0.0-beta.81/classes/_nymphjs_client.Entity.html @@ -0,0 +1,135 @@ +Entity | Nymph.js 1.0.0-beta.81

Entity interface.

+

Type Parameters

Hierarchy

  • Entity

    Implements

    Constructors

    Properties

    $data: T

    The data proxy object.

    +
    $dataHandler: Object

    The data proxy handler.

    +
    $dataStore: T

    The actual data store.

    +
    $dirty: {
        [k: string]: boolean;
    } = {}

    A map of props to whether they're dirty (for patch).

    +

    Type declaration

    • [k: string]: boolean
    $isASleepingReference: boolean = false

    Whether this instance is a sleeping reference.

    +
    $nymph: Nymph

    The instance of Nymph to use for queries.

    +
    $originalTags: string[] = []

    Array of the entity's original tags (for patch).

    +
    $sleepingReference: null | EntityReference = null

    The reference to use to wake.

    +
    $wakePromise: null | Promise<Entity<T>> = null

    A promise that resolved when the entity's data is wake.

    +
    cdate: null | number = null

    The creation date of the entity as a high precision Unix timestamp.

    +
    guid: null | string = null

    The entity's Globally Unique ID.

    +
    mdate: null | number = null

    The modified date of the entity as a high precision Unix timestamp.

    +
    tags: string[] = []

    Array of the entity's tags.

    +
    class: string = 'Entity'

    The lookup name for this entity.

    +

    This is used for reference arrays (and sleeping references) and server +requests.

    +
    nymph: Nymph = ...

    The instance of Nymph to use for queries.

    +

    Methods

    • Search the array for this object and return the corresponding index.

      +

      If strict is false, is() is used to compare. If strict is true, +equals() is used.

      +

      Parameters

      • array: any[]

        The array to search.

        +
      • strict: boolean = false

        Whether to use stronger comparison.

        +

      Returns number

      The index if the object is in the array, -1 if it isn't.

      +
    • Check whether this object is in an array.

      +

      If strict is false, is() is used to compare. If strict is true, +equals() is used.

      +

      Parameters

      • array: any[]

        The array to search.

        +
      • strict: boolean = false

        Whether to use stronger comparison.

        +

      Returns boolean

      True if the object is in the array, false if it isn't.

      +
    • Refresh the object from storage. (Bypasses Nymph's cache.)

      +

      If the object has been deleted from storage, the database cannot be +reached, or a database error occurs, refresh() will return 0.

      +

      Returns Promise<boolean | 0>

      False if the data has not been saved, 0 if it can't be refreshed, true on success.

      +
    • Call an instance method on the server version of this entity.

      +

      The entity's data will be sent up to the server as well, so the server's +state can match the client's state. It won't be propagated into the DB, +though.

      +

      Parameters

      • method: string

        The name of the method.

        +
      • params: Iterable<any>

        The parameters to call the method with.

        +
      • stateless: boolean = false

        Whether the server should return, and the client update, the data in the entity after the method has run.

        +

      Returns Promise<any>

      The value that the method on the server returned.

      +
    • Ready this entity's data, and the data of entity's within this one's.

      +

      Parameters

      • Optional level: number

        The number of levels deep to wake. If undefined, it will keep going until there are no more entities. (Careful of infinite loops.)

        +

      Returns Promise<Entity<T>>

      The entity.

      +
    • Call a static method on the server version of this entity.

      +

      Parameters

      • method: string

        The name of the method.

        +
      • params: Iterable<any>

        The parameters to call the method with.

        +

      Returns Promise<any>

      The value that the method on the server returned.

      +
    • Call a static iterator method on the server version of this entity.

      +

      Parameters

      • method: string

        The name of the method.

        +
      • params: Iterable<any>

        The parameters to call the method with.

        +

      Returns Promise<AbortableAsyncIterator<any>>

      An iterator that iterates over values that the method on the server yields.

      +
    \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/classes/_nymphjs_client.EntityIsSleepingReferenceError.html b/static/api/1.0.0-beta.81/classes/_nymphjs_client.EntityIsSleepingReferenceError.html new file mode 100644 index 0000000..4451d5c --- /dev/null +++ b/static/api/1.0.0-beta.81/classes/_nymphjs_client.EntityIsSleepingReferenceError.html @@ -0,0 +1,11 @@ +EntityIsSleepingReferenceError | Nymph.js 1.0.0-beta.81

    Hierarchy

    • Error
      • EntityIsSleepingReferenceError

    Constructors

    Properties

    message: string
    name: string
    stack?: string
    prepareStackTrace?: ((err, stackTraces) => any)

    Optional override for formatting stack traces

    +

    Type declaration

      • (err, stackTraces): any
      • Parameters

        • err: Error
        • stackTraces: CallSite[]

        Returns any

    stackTraceLimit: number

    Methods

    • Create .stack property on a target object

      +

      Parameters

      • targetObject: object
      • Optional constructorOpt: Function

      Returns void

    \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/classes/_nymphjs_client.HttpError.html b/static/api/1.0.0-beta.81/classes/_nymphjs_client.HttpError.html new file mode 100644 index 0000000..cf88a9d --- /dev/null +++ b/static/api/1.0.0-beta.81/classes/_nymphjs_client.HttpError.html @@ -0,0 +1,13 @@ +HttpError | Nymph.js 1.0.0-beta.81

    Hierarchy (view full)

    Constructors

    Properties

    message: string
    name: string
    stack?: string
    status: number
    statusText: string
    prepareStackTrace?: ((err, stackTraces) => any)

    Optional override for formatting stack traces

    +

    Type declaration

      • (err, stackTraces): any
      • Parameters

        • err: Error
        • stackTraces: CallSite[]

        Returns any

    stackTraceLimit: number

    Methods

    • Create .stack property on a target object

      +

      Parameters

      • targetObject: object
      • Optional constructorOpt: Function

      Returns void

    \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/classes/_nymphjs_client.InformationalError.html b/static/api/1.0.0-beta.81/classes/_nymphjs_client.InformationalError.html new file mode 100644 index 0000000..8e0748b --- /dev/null +++ b/static/api/1.0.0-beta.81/classes/_nymphjs_client.InformationalError.html @@ -0,0 +1,13 @@ +InformationalError | Nymph.js 1.0.0-beta.81

    Hierarchy (view full)

    Constructors

    Properties

    message: string
    name: string
    stack?: string
    status: number
    statusText: string
    prepareStackTrace?: ((err, stackTraces) => any)

    Optional override for formatting stack traces

    +

    Type declaration

      • (err, stackTraces): any
      • Parameters

        • err: Error
        • stackTraces: CallSite[]

        Returns any

    stackTraceLimit: number

    Methods

    • Create .stack property on a target object

      +

      Parameters

      • targetObject: object
      • Optional constructorOpt: Function

      Returns void

    \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/classes/_nymphjs_client.InvalidRequestError.html b/static/api/1.0.0-beta.81/classes/_nymphjs_client.InvalidRequestError.html new file mode 100644 index 0000000..590b748 --- /dev/null +++ b/static/api/1.0.0-beta.81/classes/_nymphjs_client.InvalidRequestError.html @@ -0,0 +1,11 @@ +InvalidRequestError | Nymph.js 1.0.0-beta.81

    Hierarchy

    • Error
      • InvalidRequestError

    Constructors

    Properties

    message: string
    name: string
    stack?: string
    prepareStackTrace?: ((err, stackTraces) => any)

    Optional override for formatting stack traces

    +

    Type declaration

      • (err, stackTraces): any
      • Parameters

        • err: Error
        • stackTraces: CallSite[]

        Returns any

    stackTraceLimit: number

    Methods

    • Create .stack property on a target object

      +

      Parameters

      • targetObject: object
      • Optional constructorOpt: Function

      Returns void

    \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/classes/_nymphjs_client.InvalidResponseError.html b/static/api/1.0.0-beta.81/classes/_nymphjs_client.InvalidResponseError.html new file mode 100644 index 0000000..2551677 --- /dev/null +++ b/static/api/1.0.0-beta.81/classes/_nymphjs_client.InvalidResponseError.html @@ -0,0 +1,11 @@ +InvalidResponseError | Nymph.js 1.0.0-beta.81

    Hierarchy

    • Error
      • InvalidResponseError

    Constructors

    Properties

    message: string
    name: string
    stack?: string
    prepareStackTrace?: ((err, stackTraces) => any)

    Optional override for formatting stack traces

    +

    Type declaration

      • (err, stackTraces): any
      • Parameters

        • err: Error
        • stackTraces: CallSite[]

        Returns any

    stackTraceLimit: number

    Methods

    • Create .stack property on a target object

      +

      Parameters

      • targetObject: object
      • Optional constructorOpt: Function

      Returns void

    \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/classes/_nymphjs_client.InvalidStateError.html b/static/api/1.0.0-beta.81/classes/_nymphjs_client.InvalidStateError.html new file mode 100644 index 0000000..b83ba70 --- /dev/null +++ b/static/api/1.0.0-beta.81/classes/_nymphjs_client.InvalidStateError.html @@ -0,0 +1,11 @@ +InvalidStateError | Nymph.js 1.0.0-beta.81

    Hierarchy

    • Error
      • InvalidStateError

    Constructors

    Properties

    message: string
    name: string
    stack?: string
    prepareStackTrace?: ((err, stackTraces) => any)

    Optional override for formatting stack traces

    +

    Type declaration

      • (err, stackTraces): any
      • Parameters

        • err: Error
        • stackTraces: CallSite[]

        Returns any

    stackTraceLimit: number

    Methods

    • Create .stack property on a target object

      +

      Parameters

      • targetObject: object
      • Optional constructorOpt: Function

      Returns void

    \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/classes/_nymphjs_client.Nymph.html b/static/api/1.0.0-beta.81/classes/_nymphjs_client.Nymph.html new file mode 100644 index 0000000..3ea83d4 --- /dev/null +++ b/static/api/1.0.0-beta.81/classes/_nymphjs_client.Nymph.html @@ -0,0 +1,48 @@ +Nymph | Nymph.js 1.0.0-beta.81

    Hierarchy

    • Nymph

      Constructors

      Properties

      Entity: typeof Entity

      The entity class for this instance of Nymph.

      +
      cache: default = ...

      The entity cache.

      +
      entityClasses: {
          [k: string]: EntityConstructor;
      } = {}

      A simple map of names to Entity classes.

      +

      Type declaration

      headers: {
          [k: string]: string;
      } = {}

      Headers that will be sent with every request.

      +

      These are used by Tilmeld for authentication.

      +

      Type declaration

      • [k: string]: string
      pubsub: undefined | PubSub = undefined

      And optional PubSub client instance.

      +
      requestCallbacks: RequestCallback[] = []
      responseCallbacks: ResponseCallback[] = []
      restUrl: string = ''
      weakCache: boolean = false

      Methods

      • Add your class to this instance.

        +

        This will create a class that extends your class within this instance of +Nymph and return it. You can then use this class's constructor and methods, +which will use this instance of Nymph.

        +

        Because this creates a subclass, don't use the class +returned from getEntityClass to check with instanceof.

        +

        Type Parameters

        Parameters

        • entityClass: T

        Returns T

      • Type Parameters

        Parameters

        • entity: T
        • method: "GET" | "POST" | "PUT" | "PATCH" | "DELETE"
        • data: {
              [k: string]: any;
          }
          • [k: string]: any
        • plural: false

        Returns Promise<T>

      • Type Parameters

        Parameters

        • entity: T[]
        • method: "GET" | "POST" | "PUT" | "PATCH" | "DELETE"
        • data: {
              [k: string]: any;
          }
          • [k: string]: any
        • plural: true

        Returns Promise<T[]>

      • Parameters

        • className: string
        • method: string
        • params: any[]

        Returns Promise<any>

      \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/classes/_nymphjs_client.PubSub.html b/static/api/1.0.0-beta.81/classes/_nymphjs_client.PubSub.html new file mode 100644 index 0000000..9dc9682 --- /dev/null +++ b/static/api/1.0.0-beta.81/classes/_nymphjs_client.PubSub.html @@ -0,0 +1,43 @@ +PubSub | Nymph.js 1.0.0-beta.81

      Hierarchy

      • PubSub

        Constructors

        Properties

        WebSocket: {
            CLOSED: 3;
            CLOSING: 2;
            CONNECTING: 0;
            OPEN: 1;
            prototype: WebSocket;
            new (url, protocols?): WebSocket;
        }

        Type declaration

          • new (url, protocols?): WebSocket
          • Parameters

            • url: string | URL
            • Optional protocols: string | string[]

            Returns WebSocket

        • Readonly CLOSED: 3
        • Readonly CLOSING: 2
        • Readonly CONNECTING: 0
        • Readonly OPEN: 1
        • prototype: WebSocket
        authToken: null | string = null
        connectCallbacks: PubSubConnectCallback[] = []
        connection: undefined | WebSocket
        disconnectCallbacks: PubSubDisconnectCallback[] = []
        errorCallbacks: PubSubErrorCallback[] = []
        noConsole: boolean = false
        nymph: Nymph
        pubsubUrl: undefined | string
        subscriptions: {
            queries: {
                [k: string]: PubSubCallbacks<any>[];
            };
            uids: {
                [k: string]: PubSubCallbacks<number>[];
            };
        } = ...

        Type declaration

        switchToken: null | string = null
        waitForConnectionTimeout: undefined | Timeout

        Methods

        • Parameters

          • authToken: null | string
          • switchToken: null | string = null

          Returns void

        • Parameters

          • name: string

          Returns ((resolve?, reject?, count?) => {
              unsubscribe: (() => void);
          })

        \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/classes/_nymphjs_client.PubSubSubscription.html b/static/api/1.0.0-beta.81/classes/_nymphjs_client.PubSubSubscription.html new file mode 100644 index 0000000..e1363d3 --- /dev/null +++ b/static/api/1.0.0-beta.81/classes/_nymphjs_client.PubSubSubscription.html @@ -0,0 +1,5 @@ +PubSubSubscription | Nymph.js 1.0.0-beta.81

        Type Parameters

        • T

        Constructors

        Properties

        Constructors

        Properties

        callbacks: PubSubCallbacks<T>
        query: string
        unsubscribe: (() => void)

        Type declaration

          • (): void
          • Returns void

        \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/classes/_nymphjs_client.RedirectError.html b/static/api/1.0.0-beta.81/classes/_nymphjs_client.RedirectError.html new file mode 100644 index 0000000..f22d081 --- /dev/null +++ b/static/api/1.0.0-beta.81/classes/_nymphjs_client.RedirectError.html @@ -0,0 +1,13 @@ +RedirectError | Nymph.js 1.0.0-beta.81

        Hierarchy (view full)

        Constructors

        Properties

        message: string
        name: string
        stack?: string
        status: number
        statusText: string
        prepareStackTrace?: ((err, stackTraces) => any)

        Optional override for formatting stack traces

        +

        Type declaration

          • (err, stackTraces): any
          • Parameters

            • err: Error
            • stackTraces: CallSite[]

            Returns any

        stackTraceLimit: number

        Methods

        • Create .stack property on a target object

          +

          Parameters

          • targetObject: object
          • Optional constructorOpt: Function

          Returns void

        \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/classes/_nymphjs_client.ServerError.html b/static/api/1.0.0-beta.81/classes/_nymphjs_client.ServerError.html new file mode 100644 index 0000000..4c683be --- /dev/null +++ b/static/api/1.0.0-beta.81/classes/_nymphjs_client.ServerError.html @@ -0,0 +1,13 @@ +ServerError | Nymph.js 1.0.0-beta.81

        Hierarchy (view full)

        Constructors

        Properties

        message: string
        name: string
        stack?: string
        status: number
        statusText: string
        prepareStackTrace?: ((err, stackTraces) => any)

        Optional override for formatting stack traces

        +

        Type declaration

          • (err, stackTraces): any
          • Parameters

            • err: Error
            • stackTraces: CallSite[]

            Returns any

        stackTraceLimit: number

        Methods

        • Create .stack property on a target object

          +

          Parameters

          • targetObject: object
          • Optional constructorOpt: Function

          Returns void

        \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/classes/_nymphjs_client.SuccessError.html b/static/api/1.0.0-beta.81/classes/_nymphjs_client.SuccessError.html new file mode 100644 index 0000000..30bc7f4 --- /dev/null +++ b/static/api/1.0.0-beta.81/classes/_nymphjs_client.SuccessError.html @@ -0,0 +1,13 @@ +SuccessError | Nymph.js 1.0.0-beta.81

        Hierarchy (view full)

        Constructors

        Properties

        message: string
        name: string
        stack?: string
        status: number
        statusText: string
        prepareStackTrace?: ((err, stackTraces) => any)

        Optional override for formatting stack traces

        +

        Type declaration

          • (err, stackTraces): any
          • Parameters

            • err: Error
            • stackTraces: CallSite[]

            Returns any

        stackTraceLimit: number

        Methods

        • Create .stack property on a target object

          +

          Parameters

          • targetObject: object
          • Optional constructorOpt: Function

          Returns void

        \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/classes/_nymphjs_client_node.Nymph.html b/static/api/1.0.0-beta.81/classes/_nymphjs_client_node.Nymph.html new file mode 100644 index 0000000..da39fcd --- /dev/null +++ b/static/api/1.0.0-beta.81/classes/_nymphjs_client_node.Nymph.html @@ -0,0 +1,41 @@ +Nymph | Nymph.js 1.0.0-beta.81

        Hierarchy (view full)

        Constructors

        Properties

        Entity: typeof Entity

        The entity class for this instance of Nymph.

        +
        cache: default

        The entity cache.

        +
        headers: {
            [k: string]: string;
        }

        Headers that will be sent with every request.

        +

        These are used by Tilmeld for authentication.

        +

        Type declaration

        • [k: string]: string
        pubsub: undefined | PubSub

        And optional PubSub client instance.

        +

        Methods

        • Add your class to this instance.

          +

          This will create a class that extends your class within this instance of +Nymph and return it. You can then use this class's constructor and methods, +which will use this instance of Nymph.

          +

          Because this creates a subclass, don't use the class +returned from getEntityClass to check with instanceof.

          +

          Type Parameters

          Parameters

          • entityClass: T

          Returns T

        • Parameters

          • name: string

          Returns Promise<any>

        • Parameters

          • name: string

          Returns Promise<number>

        • Type Parameters

          • T extends unknown

          Parameters

          • item: T

          Returns T

        • Parameters

          • name: string

          Returns Promise<number>

        • Type Parameters

          Parameters

          Returns boolean

        • Type Parameters

          Parameters

          Returns (() => boolean)

            • (): boolean
            • Returns boolean

        • Parameters

          • className: string
          • method: string
          • params: any[]

          Returns Promise<any>

        • Parameters

          • name: string
          • value: number

          Returns Promise<any>

        \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/classes/_nymphjs_client_node.PubSub.html b/static/api/1.0.0-beta.81/classes/_nymphjs_client_node.PubSub.html new file mode 100644 index 0000000..58221ca --- /dev/null +++ b/static/api/1.0.0-beta.81/classes/_nymphjs_client_node.PubSub.html @@ -0,0 +1,15 @@ +PubSub | Nymph.js 1.0.0-beta.81

        Hierarchy (view full)

        Constructors

        Methods

        • Parameters

          • authToken: null | string
          • Optional switchToken: null | string

          Returns void

        • Returns void

        • Returns void

        • Returns boolean

        • Returns boolean

        • Parameters

          • name: string

          Returns ((resolve?, reject?, count?) => {
              unsubscribe: (() => void);
          })

        \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/classes/_nymphjs_driver_mysql.MySQLDriver.html b/static/api/1.0.0-beta.81/classes/_nymphjs_driver_mysql.MySQLDriver.html new file mode 100644 index 0000000..10f931e --- /dev/null +++ b/static/api/1.0.0-beta.81/classes/_nymphjs_driver_mysql.MySQLDriver.html @@ -0,0 +1,106 @@ +MySQLDriver | Nymph.js 1.0.0-beta.81

        The MySQL Nymph database driver.

        +

        Hierarchy (view full)

        Constructors

        Properties

        connected: boolean = false
        entityCache: {
            [k: string]: {
                cdate: number;
                data: EntityData;
                mdate: number;
                sdata: SerializedEntityData;
                tags: string[];
            };
        }

        A cache to make entity retrieval faster.

        +

        Type declaration

        entityCount: {
            [k: string]: number;
        }

        A counter for the entity cache to determine the most accessed entities.

        +

        Type declaration

        • [k: string]: number
        link: Pool
        mysqlConfig: PoolOptions
        nymph: Nymph
        prefix: string
        transaction: null | MySQLDriverTransaction = null

        Methods

        • Remove all copies of an entity from the cache.

          +

          Parameters

          • guid: string

            The GUID of the entity to remove.

            +

          Returns void

        • Create entity tables in the database.

          +

          Parameters

          • etype: null | string = null

            The entity type to create a table for. If this is blank, the default tables are created.

            +

          Returns Promise<boolean>

          True on success, false on failure.

          +
        • Parameters

          • filename: string

          Returns Promise<boolean>

        • Returns AsyncGenerator<{
              content: string;
              type: "comment" | "uid" | "entity";
          }, void, undefined | false>

        • Returns Promise<boolean>

        • Parameters

          • svalue: string

          Returns string[]

        • Type Parameters

          Parameters

          • options: Options<T> & {
                return: "count";
            }
          • selectors: Selector[]
          • performQueryCallback: ((data) => {
                result: any;
            })
          • rowFetchCallback: (() => any)
              • (): any
              • Returns any

          • freeResultCallback: (() => void)
              • (): void
              • Returns void

          • getCountCallback: ((row) => number)
              • (row): number
              • Parameters

                • row: any

                Returns number

          • getGUIDCallback: ((row) => string)
              • (row): string
              • Parameters

                • row: any

                Returns string

          • getTagsAndDatesCallback: ((row) => {
                cdate: number;
                mdate: number;
                tags: string[];
            })
              • (row): {
                    cdate: number;
                    mdate: number;
                    tags: string[];
                }
              • Parameters

                • row: any

                Returns {
                    cdate: number;
                    mdate: number;
                    tags: string[];
                }

                • cdate: number
                • mdate: number
                • tags: string[]
          • getDataNameAndSValueCallback: ((row) => {
                name: string;
                svalue: string;
            })
              • (row): {
                    name: string;
                    svalue: string;
                }
              • Parameters

                • row: any

                Returns {
                    name: string;
                    svalue: string;
                }

                • name: string
                • svalue: string

          Returns {
              process: (() => number | Error);
              result: any;
          }

          • process: (() => number | Error)
              • (): number | Error
              • Returns number | Error

          • result: any
        • Type Parameters

          Parameters

          • options: Options<T> & {
                return: "guid";
            }
          • selectors: Selector[]
          • performQueryCallback: ((data) => {
                result: any;
            })
          • rowFetchCallback: (() => any)
              • (): any
              • Returns any

          • freeResultCallback: (() => void)
              • (): void
              • Returns void

          • getCountCallback: ((row) => number)
              • (row): number
              • Parameters

                • row: any

                Returns number

          • getGUIDCallback: ((row) => string)
              • (row): string
              • Parameters

                • row: any

                Returns string

          • getTagsAndDatesCallback: ((row) => {
                cdate: number;
                mdate: number;
                tags: string[];
            })
              • (row): {
                    cdate: number;
                    mdate: number;
                    tags: string[];
                }
              • Parameters

                • row: any

                Returns {
                    cdate: number;
                    mdate: number;
                    tags: string[];
                }

                • cdate: number
                • mdate: number
                • tags: string[]
          • getDataNameAndSValueCallback: ((row) => {
                name: string;
                svalue: string;
            })
              • (row): {
                    name: string;
                    svalue: string;
                }
              • Parameters

                • row: any

                Returns {
                    name: string;
                    svalue: string;
                }

                • name: string
                • svalue: string

          Returns {
              process: (() => Error | string[]);
              result: any;
          }

          • process: (() => Error | string[])
              • (): Error | string[]
              • Returns Error | string[]

          • result: any
        • Type Parameters

          Parameters

          • options: Options<T>
          • selectors: Selector[]
          • performQueryCallback: ((data) => {
                result: any;
            })
          • rowFetchCallback: (() => any)
              • (): any
              • Returns any

          • freeResultCallback: (() => void)
              • (): void
              • Returns void

          • getCountCallback: ((row) => number)
              • (row): number
              • Parameters

                • row: any

                Returns number

          • getGUIDCallback: ((row) => string)
              • (row): string
              • Parameters

                • row: any

                Returns string

          • getTagsAndDatesCallback: ((row) => {
                cdate: number;
                mdate: number;
                tags: string[];
            })
              • (row): {
                    cdate: number;
                    mdate: number;
                    tags: string[];
                }
              • Parameters

                • row: any

                Returns {
                    cdate: number;
                    mdate: number;
                    tags: string[];
                }

                • cdate: number
                • mdate: number
                • tags: string[]
          • getDataNameAndSValueCallback: ((row) => {
                name: string;
                svalue: string;
            })
              • (row): {
                    name: string;
                    svalue: string;
                }
              • Parameters

                • row: any

                Returns {
                    name: string;
                    svalue: string;
                }

                • name: string
                • svalue: string

          Returns {
              process: (() => Error | EntityInstanceType<T>[]);
              result: any;
          }

        • Parameters

          • filename: string
          • Optional transaction: boolean

          Returns Promise<boolean>

        • Parameters

          • text: string
          • Optional transaction: boolean

          Returns Promise<boolean>

        • Parameters

          • lines: Iterable<string>
          • Optional transaction: boolean

          Returns Promise<boolean>

        • Initialize the Nymph driver.

          +

          This is meant to be called internally by Nymph. Don't call this directly.

          +

          Parameters

          • nymph: Nymph

            The Nymph instance.

            +

          Returns void

        • Parameters

          • selectors: FormattedSelector[]
          • callback: ((data) => string)
              • (data): string
              • Parameters

                • data: {
                      key: string;
                      typeIsNot: boolean;
                      typeIsOr: boolean;
                      value: any;
                  }
                  • key: string
                  • typeIsNot: boolean
                  • typeIsOr: boolean
                  • value: any

                Returns string

          Returns string[]

        • Generate the MySQL query.

          +

          Parameters

          • options: Options

            The options array.

            +
          • formattedSelectors: FormattedSelector[]

            The formatted selector array.

            +
          • etype: string
          • count: {
                i: number;
            } = ...

            Used to track internal params.

            +
            • i: number
          • params: {
                [k: string]: any;
            } = {}

            Used to store internal params.

            +
            • [k: string]: any
          • subquery: boolean = false

            Whether only a subquery should be returned.

            +
          • tableSuffix: string = ''
          • etypes: string[] = []
          • guidSelector: undefined | string = undefined

          Returns {
              etypes: string[];
              params: {
                  [k: string]: any;
              };
              query: string;
          }

          The SQL query.

          +
          • etypes: string[]
          • params: {
                [k: string]: any;
            }
            • [k: string]: any
          • query: string
        • Detect whether the database needs to be migrated.

          +

          If true, the database should be exported with an old version of Nymph, then +imported into a fresh database with this version.

          +

          Returns Promise<boolean>

        • Parameters

          • pattern: string
          • subject: string
          • Optional caseInsensitive: boolean

          Returns boolean

        • Pull an entity from the cache.

          +

          Type Parameters

          Parameters

          • guid: string

            The entity's GUID.

            +
          • className: string

            The entity's class.

            +
          • Optional useSkipAc: boolean

            Whether to tell the entity to use skip_ac.

            +

          Returns null | T

          The entity or null if it's not cached.

          +
        • Push an entity onto the cache.

          +

          Parameters

          • guid: string

            The entity's GUID.

            +
          • cdate: number

            The entity's cdate.

            +
          • mdate: number

            The entity's mdate.

            +
          • tags: string[]

            The entity's tags.

            +
          • data: EntityData

            The entity's data.

            +
          • sdata: SerializedEntityData

            The entity's sdata.

            +

          Returns void

        • Type Parameters

          • T extends (() => any)

          Parameters

          • runQuery: T
          • query: string
          • etypes: string[] = []

          Returns ReturnType<T>

        • Parameters

          • query: string
          • __namedParameters: {
                etypes?: string[];
                params?: {
                    [k: string]: any;
                };
            } = {}
            • Optional etypes?: string[]
            • Optional params?: {
                  [k: string]: any;
              }
              • [k: string]: any

          Returns Promise<any>

        • Parameters

          • query: string
          • __namedParameters: {
                etypes?: string[];
                params?: {
                    [k: string]: any;
                };
            } = {}
            • Optional etypes?: string[]
            • Optional params?: {
                  [k: string]: any;
              }
              • [k: string]: any

          Returns Promise<any>

        • Parameters

          • query: string
          • __namedParameters: {
                etypes?: string[];
                params?: {
                    [k: string]: any;
                };
            } = {}
            • Optional etypes?: string[]
            • Optional params?: {
                  [k: string]: any;
              }
              • [k: string]: any

          Returns Promise<{
              changes: any;
          }>

        • Parameters

          • entity: EntityInterface
          • saveNewEntityCallback: ((data) => Promise<boolean>)
          • saveExistingEntityCallback: ((data) => Promise<boolean>)
          • Optional startTransactionCallback: null | (() => Promise<void>)
          • Optional commitTransactionCallback: null | ((success) => Promise<boolean>)

          Returns Promise<boolean>

        • Parameters

          • origQuery: string
          • origParams: {
                [k: string]: any;
            }
            • [k: string]: any

          Returns {
              params: any[];
              query: string;
          }

          • params: any[]
          • query: string
        \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/classes/_nymphjs_driver_postgresql.PostgreSQLDriver.html b/static/api/1.0.0-beta.81/classes/_nymphjs_driver_postgresql.PostgreSQLDriver.html new file mode 100644 index 0000000..d8b31ec --- /dev/null +++ b/static/api/1.0.0-beta.81/classes/_nymphjs_driver_postgresql.PostgreSQLDriver.html @@ -0,0 +1,110 @@ +PostgreSQLDriver | Nymph.js 1.0.0-beta.81

        The PostgreSQL Nymph database driver.

        +

        Hierarchy (view full)

        Constructors

        Properties

        connected: boolean = false
        entityCache: {
            [k: string]: {
                cdate: number;
                data: EntityData;
                mdate: number;
                sdata: SerializedEntityData;
                tags: string[];
            };
        }

        A cache to make entity retrieval faster.

        +

        Type declaration

        entityCount: {
            [k: string]: number;
        }

        A counter for the entity cache to determine the most accessed entities.

        +

        Type declaration

        • [k: string]: number
        link: Pool
        nymph: Nymph
        postgresqlConfig: PoolConfig
        prefix: string
        transaction: null | PostgreSQLDriverTransaction = null

        Methods

        • Remove all copies of an entity from the cache.

          +

          Parameters

          • guid: string

            The GUID of the entity to remove.

            +

          Returns void

        • Create entity tables in the database.

          +

          Parameters

          • etype: null | string = null

            The entity type to create a table for. If this is blank, the default tables are created.

            +

          Returns Promise<boolean>

          True on success, false on failure.

          +
        • Parameters

          • filename: string

          Returns Promise<boolean>

        • Returns Promise<boolean>

        • Parameters

          • svalue: string

          Returns string[]

        • Type Parameters

          Parameters

          • options: Options<T> & {
                return: "count";
            }
          • selectors: Selector[]
          • performQueryCallback: ((data) => {
                result: any;
            })
          • rowFetchCallback: (() => any)
              • (): any
              • Returns any

          • freeResultCallback: (() => void)
              • (): void
              • Returns void

          • getCountCallback: ((row) => number)
              • (row): number
              • Parameters

                • row: any

                Returns number

          • getGUIDCallback: ((row) => string)
              • (row): string
              • Parameters

                • row: any

                Returns string

          • getTagsAndDatesCallback: ((row) => {
                cdate: number;
                mdate: number;
                tags: string[];
            })
              • (row): {
                    cdate: number;
                    mdate: number;
                    tags: string[];
                }
              • Parameters

                • row: any

                Returns {
                    cdate: number;
                    mdate: number;
                    tags: string[];
                }

                • cdate: number
                • mdate: number
                • tags: string[]
          • getDataNameAndSValueCallback: ((row) => {
                name: string;
                svalue: string;
            })
              • (row): {
                    name: string;
                    svalue: string;
                }
              • Parameters

                • row: any

                Returns {
                    name: string;
                    svalue: string;
                }

                • name: string
                • svalue: string

          Returns {
              process: (() => number | Error);
              result: any;
          }

          • process: (() => number | Error)
              • (): number | Error
              • Returns number | Error

          • result: any
        • Type Parameters

          Parameters

          • options: Options<T> & {
                return: "guid";
            }
          • selectors: Selector[]
          • performQueryCallback: ((data) => {
                result: any;
            })
          • rowFetchCallback: (() => any)
              • (): any
              • Returns any

          • freeResultCallback: (() => void)
              • (): void
              • Returns void

          • getCountCallback: ((row) => number)
              • (row): number
              • Parameters

                • row: any

                Returns number

          • getGUIDCallback: ((row) => string)
              • (row): string
              • Parameters

                • row: any

                Returns string

          • getTagsAndDatesCallback: ((row) => {
                cdate: number;
                mdate: number;
                tags: string[];
            })
              • (row): {
                    cdate: number;
                    mdate: number;
                    tags: string[];
                }
              • Parameters

                • row: any

                Returns {
                    cdate: number;
                    mdate: number;
                    tags: string[];
                }

                • cdate: number
                • mdate: number
                • tags: string[]
          • getDataNameAndSValueCallback: ((row) => {
                name: string;
                svalue: string;
            })
              • (row): {
                    name: string;
                    svalue: string;
                }
              • Parameters

                • row: any

                Returns {
                    name: string;
                    svalue: string;
                }

                • name: string
                • svalue: string

          Returns {
              process: (() => string[] | Error);
              result: any;
          }

          • process: (() => string[] | Error)
              • (): string[] | Error
              • Returns string[] | Error

          • result: any
        • Type Parameters

          Parameters

          • options: Options<T>
          • selectors: Selector[]
          • performQueryCallback: ((data) => {
                result: any;
            })
          • rowFetchCallback: (() => any)
              • (): any
              • Returns any

          • freeResultCallback: (() => void)
              • (): void
              • Returns void

          • getCountCallback: ((row) => number)
              • (row): number
              • Parameters

                • row: any

                Returns number

          • getGUIDCallback: ((row) => string)
              • (row): string
              • Parameters

                • row: any

                Returns string

          • getTagsAndDatesCallback: ((row) => {
                cdate: number;
                mdate: number;
                tags: string[];
            })
              • (row): {
                    cdate: number;
                    mdate: number;
                    tags: string[];
                }
              • Parameters

                • row: any

                Returns {
                    cdate: number;
                    mdate: number;
                    tags: string[];
                }

                • cdate: number
                • mdate: number
                • tags: string[]
          • getDataNameAndSValueCallback: ((row) => {
                name: string;
                svalue: string;
            })
              • (row): {
                    name: string;
                    svalue: string;
                }
              • Parameters

                • row: any

                Returns {
                    name: string;
                    svalue: string;
                }

                • name: string
                • svalue: string

          Returns {
              process: (() => Error | EntityInstanceType<T>[]);
              result: any;
          }

        • Parameters

          • filename: string
          • Optional transaction: boolean

          Returns Promise<boolean>

        • Parameters

          • text: string
          • Optional transaction: boolean

          Returns Promise<boolean>

        • Parameters

          • lines: Iterable<string>
          • Optional transaction: boolean

          Returns Promise<boolean>

        • Initialize the Nymph driver.

          +

          This is meant to be called internally by Nymph. Don't call this directly.

          +

          Parameters

          • nymph: Nymph

            The Nymph instance.

            +

          Returns void

        • Parameters

          • selectors: FormattedSelector[]
          • callback: ((data) => string)
              • (data): string
              • Parameters

                • data: {
                      key: string;
                      typeIsNot: boolean;
                      typeIsOr: boolean;
                      value: any;
                  }
                  • key: string
                  • typeIsNot: boolean
                  • typeIsOr: boolean
                  • value: any

                Returns string

          Returns string[]

        • Generate the PostgreSQL query.

          +

          Parameters

          • options: Options

            The options array.

            +
          • formattedSelectors: FormattedSelector[]

            The formatted selector array.

            +
          • etype: string
          • count: {
                i: number;
            } = ...

            Used to track internal params.

            +
            • i: number
          • params: {
                [k: string]: any;
            } = {}

            Used to store internal params.

            +
            • [k: string]: any
          • subquery: boolean = false

            Whether only a subquery should be returned.

            +
          • tableSuffix: string = ''
          • etypes: string[] = []
          • guidSelector: undefined | string = undefined

          Returns {
              etypes: string[];
              params: {
                  [k: string]: any;
              };
              query: string;
          }

          The SQL query.

          +
          • etypes: string[]
          • params: {
                [k: string]: any;
            }
            • [k: string]: any
          • query: string
        • Parameters

          • pattern: string
          • subject: string
          • Optional caseInsensitive: boolean

          Returns boolean

        • Pull an entity from the cache.

          +

          Type Parameters

          Parameters

          • guid: string

            The entity's GUID.

            +
          • className: string

            The entity's class.

            +
          • Optional useSkipAc: boolean

            Whether to tell the entity to use skip_ac.

            +

          Returns null | T

          The entity or null if it's not cached.

          +
        • Push an entity onto the cache.

          +

          Parameters

          • guid: string

            The entity's GUID.

            +
          • cdate: number

            The entity's cdate.

            +
          • mdate: number

            The entity's mdate.

            +
          • tags: string[]

            The entity's tags.

            +
          • data: EntityData

            The entity's data.

            +
          • sdata: SerializedEntityData

            The entity's sdata.

            +

          Returns void

        • Parameters

          • query: string
          • __namedParameters: {
                etypes?: string[];
                params?: {
                    [k: string]: any;
                };
            } = {}
            • Optional etypes?: string[]
            • Optional params?: {
                  [k: string]: any;
              }
              • [k: string]: any

          Returns Promise<any>

        • Parameters

          • query: string
          • __namedParameters: {
                etypes?: string[];
                params?: {
                    [k: string]: any;
                };
            } = {}
            • Optional etypes?: string[]
            • Optional params?: {
                  [k: string]: any;
              }
              • [k: string]: any

          Returns Promise<any[]>

        • Parameters

          • query: string
          • __namedParameters: {
                connection?: PostgreSQLDriverConnection;
                etypes?: string[];
                params?: {
                    [k: string]: any;
                };
            } = {}
            • Optional connection?: PostgreSQLDriverConnection
            • Optional etypes?: string[]
            • Optional params?: {
                  [k: string]: any;
              }
              • [k: string]: any

          Returns Promise<{
              rowCount: number;
          }>

        • Parameters

          • entity: EntityInterface
          • saveNewEntityCallback: ((data) => Promise<boolean>)
          • saveExistingEntityCallback: ((data) => Promise<boolean>)
          • Optional startTransactionCallback: null | (() => Promise<void>)
          • Optional commitTransactionCallback: null | ((success) => Promise<boolean>)

          Returns Promise<boolean>

        • Parameters

          • origQuery: string
          • origParams: {
                [k: string]: any;
            }
            • [k: string]: any

          Returns {
              params: any[];
              query: string;
          }

          • params: any[]
          • query: string
        \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/classes/_nymphjs_driver_sqlite3.SQLite3Driver.html b/static/api/1.0.0-beta.81/classes/_nymphjs_driver_sqlite3.SQLite3Driver.html new file mode 100644 index 0000000..7e932ce --- /dev/null +++ b/static/api/1.0.0-beta.81/classes/_nymphjs_driver_sqlite3.SQLite3Driver.html @@ -0,0 +1,100 @@ +SQLite3Driver | Nymph.js 1.0.0-beta.81

        The SQLite3 Nymph database driver.

        +

        Hierarchy (view full)

        Constructors

        Properties

        entityCache: {
            [k: string]: {
                cdate: number;
                data: EntityData;
                mdate: number;
                sdata: SerializedEntityData;
                tags: string[];
            };
        }

        A cache to make entity retrieval faster.

        +

        Type declaration

        entityCount: {
            [k: string]: number;
        }

        A counter for the entity cache to determine the most accessed entities.

        +

        Type declaration

        • [k: string]: number
        nymph: Nymph
        prefix: string
        store: InternalStore

        Methods

        • Remove all copies of an entity from the cache.

          +

          Parameters

          • guid: string

            The GUID of the entity to remove.

            +

          Returns void

        • Create entity tables in the database.

          +

          Parameters

          • etype: null | string = null

            The entity type to create a table for. If this is blank, the default tables are created.

            +

          Returns boolean

        • Parameters

          • filename: string

          Returns Promise<boolean>

        • Returns AsyncGenerator<{
              content: string;
              type: "comment" | "uid" | "entity";
          }, void, undefined | false>

        • Returns Promise<boolean>

        • Parameters

          • svalue: string

          Returns string[]

        • Type Parameters

          Parameters

          • options: Options<T> & {
                return: "count";
            }
          • selectors: Selector[]
          • performQueryCallback: ((data) => {
                result: any;
            })
          • rowFetchCallback: (() => any)
              • (): any
              • Returns any

          • freeResultCallback: (() => void)
              • (): void
              • Returns void

          • getCountCallback: ((row) => number)
              • (row): number
              • Parameters

                • row: any

                Returns number

          • getGUIDCallback: ((row) => string)
              • (row): string
              • Parameters

                • row: any

                Returns string

          • getTagsAndDatesCallback: ((row) => {
                cdate: number;
                mdate: number;
                tags: string[];
            })
              • (row): {
                    cdate: number;
                    mdate: number;
                    tags: string[];
                }
              • Parameters

                • row: any

                Returns {
                    cdate: number;
                    mdate: number;
                    tags: string[];
                }

                • cdate: number
                • mdate: number
                • tags: string[]
          • getDataNameAndSValueCallback: ((row) => {
                name: string;
                svalue: string;
            })
              • (row): {
                    name: string;
                    svalue: string;
                }
              • Parameters

                • row: any

                Returns {
                    name: string;
                    svalue: string;
                }

                • name: string
                • svalue: string

          Returns {
              process: (() => number | Error);
              result: any;
          }

          • process: (() => number | Error)
              • (): number | Error
              • Returns number | Error

          • result: any
        • Type Parameters

          Parameters

          • options: Options<T> & {
                return: "guid";
            }
          • selectors: Selector[]
          • performQueryCallback: ((data) => {
                result: any;
            })
          • rowFetchCallback: (() => any)
              • (): any
              • Returns any

          • freeResultCallback: (() => void)
              • (): void
              • Returns void

          • getCountCallback: ((row) => number)
              • (row): number
              • Parameters

                • row: any

                Returns number

          • getGUIDCallback: ((row) => string)
              • (row): string
              • Parameters

                • row: any

                Returns string

          • getTagsAndDatesCallback: ((row) => {
                cdate: number;
                mdate: number;
                tags: string[];
            })
              • (row): {
                    cdate: number;
                    mdate: number;
                    tags: string[];
                }
              • Parameters

                • row: any

                Returns {
                    cdate: number;
                    mdate: number;
                    tags: string[];
                }

                • cdate: number
                • mdate: number
                • tags: string[]
          • getDataNameAndSValueCallback: ((row) => {
                name: string;
                svalue: string;
            })
              • (row): {
                    name: string;
                    svalue: string;
                }
              • Parameters

                • row: any

                Returns {
                    name: string;
                    svalue: string;
                }

                • name: string
                • svalue: string

          Returns {
              process: (() => string[] | Error);
              result: any;
          }

          • process: (() => string[] | Error)
              • (): string[] | Error
              • Returns string[] | Error

          • result: any
        • Type Parameters

          Parameters

          • options: Options<T>
          • selectors: Selector[]
          • performQueryCallback: ((data) => {
                result: any;
            })
          • rowFetchCallback: (() => any)
              • (): any
              • Returns any

          • freeResultCallback: (() => void)
              • (): void
              • Returns void

          • getCountCallback: ((row) => number)
              • (row): number
              • Parameters

                • row: any

                Returns number

          • getGUIDCallback: ((row) => string)
              • (row): string
              • Parameters

                • row: any

                Returns string

          • getTagsAndDatesCallback: ((row) => {
                cdate: number;
                mdate: number;
                tags: string[];
            })
              • (row): {
                    cdate: number;
                    mdate: number;
                    tags: string[];
                }
              • Parameters

                • row: any

                Returns {
                    cdate: number;
                    mdate: number;
                    tags: string[];
                }

                • cdate: number
                • mdate: number
                • tags: string[]
          • getDataNameAndSValueCallback: ((row) => {
                name: string;
                svalue: string;
            })
              • (row): {
                    name: string;
                    svalue: string;
                }
              • Parameters

                • row: any

                Returns {
                    name: string;
                    svalue: string;
                }

                • name: string
                • svalue: string

          Returns {
              process: (() => Error | EntityInstanceType<T>[]);
              result: any;
          }

        • Parameters

          • filename: string
          • Optional transaction: boolean

          Returns Promise<boolean>

        • Parameters

          • text: string
          • Optional transaction: boolean

          Returns Promise<boolean>

        • Parameters

          • lines: Iterable<string>
          • Optional transaction: boolean

          Returns Promise<boolean>

        • Initialize the Nymph driver.

          +

          This is meant to be called internally by Nymph. Don't call this directly.

          +

          Parameters

          • nymph: Nymph

            The Nymph instance.

            +

          Returns void

        • Parameters

          • selectors: FormattedSelector[]
          • callback: ((data) => string)
              • (data): string
              • Parameters

                • data: {
                      key: string;
                      typeIsNot: boolean;
                      typeIsOr: boolean;
                      value: any;
                  }
                  • key: string
                  • typeIsNot: boolean
                  • typeIsOr: boolean
                  • value: any

                Returns string

          Returns string[]

        • Generate the SQLite3 query.

          +

          Parameters

          • options: Options

            The options array.

            +
          • formattedSelectors: FormattedSelector[]

            The formatted selector array.

            +
          • etype: string
          • count: {
                i: number;
            } = ...

            Used to track internal params.

            +
            • i: number
          • params: {
                [k: string]: any;
            } = {}

            Used to store internal params.

            +
            • [k: string]: any
          • subquery: boolean = false

            Whether only a subquery should be returned.

            +
          • tableSuffix: string = ''
          • etypes: string[] = []
          • guidSelector: undefined | string = undefined

          Returns {
              etypes: string[];
              params: {
                  [k: string]: any;
              };
              query: string;
          }

          The SQL query.

          +
          • etypes: string[]
          • params: {
                [k: string]: any;
            }
            • [k: string]: any
          • query: string
        • Parameters

          • pattern: string
          • subject: string
          • Optional caseInsensitive: boolean

          Returns boolean

        • Pull an entity from the cache.

          +

          Type Parameters

          Parameters

          • guid: string

            The entity's GUID.

            +
          • className: string

            The entity's class.

            +
          • Optional useSkipAc: boolean

            Whether to tell the entity to use skip_ac.

            +

          Returns null | T

          The entity or null if it's not cached.

          +
        • Push an entity onto the cache.

          +

          Parameters

          • guid: string

            The entity's GUID.

            +
          • cdate: number

            The entity's cdate.

            +
          • mdate: number

            The entity's mdate.

            +
          • tags: string[]

            The entity's tags.

            +
          • data: EntityData

            The entity's data.

            +
          • sdata: SerializedEntityData

            The entity's sdata.

            +

          Returns void

        • Parameters

          • query: string
          • __namedParameters: {
                etypes?: string[];
                params?: {
                    [k: string]: any;
                };
            } = {}
            • Optional etypes?: string[]
            • Optional params?: {
                  [k: string]: any;
              }
              • [k: string]: any

          Returns unknown

        • Parameters

          • query: string
          • __namedParameters: {
                etypes?: string[];
                params?: {
                    [k: string]: any;
                };
            } = {}
            • Optional etypes?: string[]
            • Optional params?: {
                  [k: string]: any;
              }
              • [k: string]: any

          Returns IterableIterator<unknown>

        • Parameters

          • query: string
          • __namedParameters: {
                etypes?: string[];
                params?: {
                    [k: string]: any;
                };
            } = {}
            • Optional etypes?: string[]
            • Optional params?: {
                  [k: string]: any;
              }
              • [k: string]: any

          Returns RunResult

        • Parameters

          • entity: EntityInterface
          • saveNewEntityCallback: ((data) => Promise<boolean>)
          • saveExistingEntityCallback: ((data) => Promise<boolean>)
          • Optional startTransactionCallback: null | (() => Promise<void>)
          • Optional commitTransactionCallback: null | ((success) => Promise<boolean>)

          Returns Promise<boolean>

        \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/classes/_nymphjs_nymph.ClassNotAvailableError.html b/static/api/1.0.0-beta.81/classes/_nymphjs_nymph.ClassNotAvailableError.html new file mode 100644 index 0000000..31d6324 --- /dev/null +++ b/static/api/1.0.0-beta.81/classes/_nymphjs_nymph.ClassNotAvailableError.html @@ -0,0 +1,12 @@ +ClassNotAvailableError | Nymph.js 1.0.0-beta.81

        Hierarchy

        • Error
          • ClassNotAvailableError

        Constructors

        Properties

        cause?: unknown
        message: string
        name: string
        stack?: string
        prepareStackTrace?: ((err, stackTraces) => any)

        Optional override for formatting stack traces

        +

        Type declaration

          • (err, stackTraces): any
          • Parameters

            • err: Error
            • stackTraces: CallSite[]

            Returns any

        stackTraceLimit: number

        Methods

        • Create .stack property on a target object

          +

          Parameters

          • targetObject: object
          • Optional constructorOpt: Function

          Returns void

        \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/classes/_nymphjs_nymph.Entity.html b/static/api/1.0.0-beta.81/classes/_nymphjs_nymph.Entity.html new file mode 100644 index 0000000..59e576b --- /dev/null +++ b/static/api/1.0.0-beta.81/classes/_nymphjs_nymph.Entity.html @@ -0,0 +1,314 @@ +Entity | Nymph.js 1.0.0-beta.81

        Database abstraction object.

        +

        Provides a way to access, manipulate, and store data in Nymph.

        +

        The GUID is not set until the entity is saved. GUIDs must be unique forever, +even after deletion. It's the job of the Nymph DB driver to make sure no two +entities ever have the same GUID. This is generally done by using a large +randomly generated ID.

        +

        Each entity class has an etype that determines which table(s) in the database +it belongs to. If two entity classes have the same etype, their data will be +stored in the same table(s). This isn't a good idea, however, because +references to an entity store a class name, not an etype.

        +

        Tags are used to classify entities. Where an etype is used to separate data +by tables, tags can be used to separate entities within a table. You can +define specific tags to be protected, meaning they cannot be added/removed +from the client. It can be useful to allow user defined tags, such as for +blog posts.

        +

        Simply calling $delete() will not unset the entity. It will still take up +memory. Likewise, simply calling unset will not delete the entity from the +DB.

        +

        Some notes about $equals() and $is(), the replacements for "==":

        +

        The == operator will likely not give you the result you want, since two +instances of the same entity will fail that check, even though they represent +the same data in the database.

        +

        $equals() performs a more strict comparison of the entity to another. Use +$equals() instead of the == operator when you want to check both the entities +they represent, and the data inside them. In order to return true for +$equals(), the entity and object must meet the following criteria:

        +
          +
        • They must be entities.
        • +
        • They must have equal GUIDs, or both must have no GUID.
        • +
        • Their data and tags must be equal.
        • +
        +

        $is() performs a less strict comparison of the entity to another. Use $is() +instead of the == operator when the entity's data may have been changed, but +you only care if they represent the same entity. In order to return true, the +entity and object must meet the following criteria:

        +
          +
        • They must be entities.
        • +
        • They must have equal GUIDs, or both must have no GUID.
        • +
        • If they have no GUIDs, their data and tags must be equal.
        • +
        +

        Some notes about saving entities in other entity's properties:

        +

        Entities use references in the DB to store an entity in their properties. The +reference is stored as an array with the values:

        +
          +
        • 0 => The string 'nymph_entity_reference'
        • +
        • 1 => The referenced entity's GUID.
        • +
        • 2 => The referenced entity's class name.
        • +
        +

        Since the referenced entity's class name (meaning the class static +property, not the name of the class itself) is stored in the reference on the +parent entity, if you change the class name in an update, you need to +reassign all referenced entities of that class and resave.

        +

        When an entity is loaded, it does not request its referenced entities from +Nymph. Instead, it creates instances without data called sleeping references. +When you first access an entity's data, if it is a sleeping reference, it +will fill its data from the DB. You can call clearCache() to turn all the +entities back into sleeping references.

        +

        Type Parameters

        Hierarchy

        • Entity

          Implements

          Constructors

          Properties

          $allowlistData?: string[]

          If this is defined, then it lists the only properties that will be +accepted from incoming JSON. Any other properties will be ignored.

          +

          If you use an allowlist, you don't need to use protectedData, since you +can simply leave those entries out of allowlistData.

          +
          $allowlistTags?: string[]

          If this is defined, then it lists the only tags that will be accepted from +incoming JSON. Any other tags will be ignored.

          +
          $clientEnabledMethods: string[] = []

          The names of methods allowed to be called by the frontend with serverCall.

          +
          $data: T

          The data proxy object.

          +
          $dataHandler: Object

          The data proxy handler.

          +
          $dataStore: T

          The actual data store.

          +
          $isASleepingReference: boolean = false

          Whether this instance is a sleeping reference.

          +
          $nymph: Nymph

          The instance of Nymph to use for queries.

          +
          $originalAcValues: null | ACProperties = null

          The AC properties' values when the entity was loaded.

          +
          $privateData: string[] = []

          Properties that will not be serialized into JSON with toJSON(). This +can be considered a denylist, because these properties will not be set +with incoming JSON.

          +

          Clients CAN still determine what is in these properties, unless they are +also listed in searchRestrictedData.

          +
          $protectedData: string[] = []

          Properties that can only be modified by server side code. They will still +be visible on the frontend, unlike $privateData, but any changes to them +that come from the frontend will be ignored.

          +

          In addition to what's listed here, all of the access control properties +will be included when Tilmeld is being used. These are:

          +
            +
          • acUser
          • +
          • acGroup
          • +
          • acOther
          • +
          • acRead
          • +
          • acWrite
          • +
          • acFull
          • +
          • user
          • +
          • group
          • +
          +

          You should modify these through client enabled methods or the $save method +instead, for safety.

          +
          $protectedTags: string[] = []

          Tags that can only be added/removed by server side code. They will still be +visible on the frontend, but any changes to them that come from the +frontend will be ignored.

          +

          The actual sdata store.

          +
          $skipAc: boolean = false

          Whether to use "skipAc" when accessing entity references.

          +
          $sleepingReference: null | EntityReference = null

          The reference to use to wake.

          +
          $wakePromise: null | Promise<Entity<T>> = null

          A promise that resolved when the entity's data is wake.

          +
          cdate: null | number = null

          The creation date of the entity as a Unix timestamp in milliseconds.

          +
          guid: null | string = null

          The entity's Globally Unique ID.

          +

          This is a 12 byte number represented as a lower case HEX string (24 +characters).

          +
          mdate: null | number = null

          The modified date of the entity as a Unix timestamp in milliseconds.

          +
          tags: string[] = []

          Array of the entity's tags.

          +
          ETYPE: string = 'entity'

          A unique name for this type of entity used to separate its data from other +types of entities in the database.

          +
          class: string = 'Entity'

          The lookup name for this entity.

          +

          This is used for reference arrays (and sleeping references) and client +requests.

          +
          clientEnabledStaticMethods: string[] = []

          The names of static methods allowed to be called by the frontend with +serverCallStatic.

          +
          nymph: Nymph = ...

          The instance of Nymph to use for queries.

          +
          pubSubEnabled: boolean = true

          Whether this entity should publish changes to PubSub servers.

          +
          restEnabled: boolean = true

          Whether this entity should be accessible on the frontend through the REST +server.

          +

          If this is false, any request from the client that attempts to use this +entity will fail.

          +
          searchRestrictedData: string[] = []

          Properties that will not be searchable from the frontend. If the frontend +includes any of these properties in any of their clauses, they will be +filtered out before the search is executed.

          +

          Methods

          • Search the array for this object and return the corresponding index.

            +

            If strict is false, is() is used to compare. If strict is true, +equals() is used.

            +

            Parameters

            • array: any[]

              The array to search.

              +
            • strict: boolean = false

              Whether to use stronger comparison.

              +

            Returns number

            The index if the object is in the array, -1 if it isn't.

            +
          • Replace any referenced entities in the data with sleeping references.

            +

            Calling this function ensures that the next time a referenced entity is +accessed, it will be retrieved from the DB (unless it is in Nymph's cache).

            +

            Returns void

          • Used to retrieve the data object.

            +

            This should only be used by Nymph to save the data into storage.

            +

            Parameters

            • includeSData: boolean = false

              Whether to include the serialized data as well.

              +

            Returns any

            The entity's data object.

            +
          • Get an array of strings that must be unique across the current etype.

            +

            When you try to save another entity with any of the same unique strings, +Nymph will throw an error.

            +

            The default implementation of this method returns an empty array, meaning +there are no uniqueness constraints applied to its etype.

            +

            Returns Promise<string[]>

            Resolves to an array of entity's unique constraint strings.

            +
          • Check whether this object is in an array.

            +

            If strict is false, is() is used to compare. If strict is true, +equals() is used.

            +

            Parameters

            • array: any[]

              The array to search.

              +
            • strict: boolean = false

              Whether to use stronger comparison.

              +

            Returns boolean

            True if the object is in the array, false if it isn't.

            +
          • Accept JSON data from the client.

            +

            This function uses the security protection lists:

            +
              +
            • $protectedTags
            • +
            • $protectedData
            • +
            • $allowlistTags
            • +
            • $allowlistData
            • +
            +

            Parameters

            • input: EntityJson

              The input data. Please note, this will be modified (destroyed).

              +
            • allowConflict: boolean = false

              Allow to accept data that is older than the current data.

              +

            Returns void

          • Accept JSON patch from the client.

            +

            This function uses the security protection lists:

            +
              +
            • $protectedTags
            • +
            • $protectedData
            • +
            • $allowlistTags
            • +
            • $allowlistData
            • +
            +

            Parameters

            • patch: EntityPatch

              The patch data. Please note, this will be modified (destroyed).

              +
            • allowConflict: boolean = false

              Allow to accept data that is older than the current data.

              +

            Returns void

          • Refresh the object from storage. (Bypasses Nymph's cache.)

            +

            If the object has been deleted from storage, the database cannot be +reached, or a database error occurs, refresh() will return 0.

            +

            Returns Promise<boolean | 0>

            False if the data has not been saved, 0 if it can't be refreshed, true on success.

            +
          • Alter the options for a query for this entity.

            +

            Type Parameters

            Parameters

            • options: T

              The current options.

              +

            Returns T

            The altered options.

            +
          • Get an array of strings that must be unique across the current etype.

            +

            When you try to save another entity with any of the same unique strings, +Nymph will throw an error.

            +

            The default implementation of this static method instantiates the entity, +assigns all of the given data, then calls $getUniques and returns its +output. This can have a performance impact if a lot of extra processing +happens during any of these steps. You can override this method to +calculate the unique strings faster, but you must return the same strings +that would be returned by $getUniques.

            +

            Parameters

            • __namedParameters: {
                  cdate?: number;
                  data: EntityData;
                  guid?: string;
                  mdate?: number;
                  sdata?: SerializedEntityData;
                  tags: string[];
              }

            Returns Promise<string[]>

            Resolves to an array of entity's unique constraint strings.

            +
          \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/classes/_nymphjs_nymph.EntityConflictError.html b/static/api/1.0.0-beta.81/classes/_nymphjs_nymph.EntityConflictError.html new file mode 100644 index 0000000..51ca4a3 --- /dev/null +++ b/static/api/1.0.0-beta.81/classes/_nymphjs_nymph.EntityConflictError.html @@ -0,0 +1,12 @@ +EntityConflictError | Nymph.js 1.0.0-beta.81

          Hierarchy

          • Error
            • EntityConflictError

          Constructors

          Properties

          cause?: unknown
          message: string
          name: string
          stack?: string
          prepareStackTrace?: ((err, stackTraces) => any)

          Optional override for formatting stack traces

          +

          Type declaration

            • (err, stackTraces): any
            • Parameters

              • err: Error
              • stackTraces: CallSite[]

              Returns any

          stackTraceLimit: number

          Methods

          • Create .stack property on a target object

            +

            Parameters

            • targetObject: object
            • Optional constructorOpt: Function

            Returns void

          \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/classes/_nymphjs_nymph.EntityInvalidDataError.html b/static/api/1.0.0-beta.81/classes/_nymphjs_nymph.EntityInvalidDataError.html new file mode 100644 index 0000000..fb62018 --- /dev/null +++ b/static/api/1.0.0-beta.81/classes/_nymphjs_nymph.EntityInvalidDataError.html @@ -0,0 +1,18 @@ +EntityInvalidDataError | Nymph.js 1.0.0-beta.81

          EntityInvalidDataError.

          +

          This exception is meant to be thrown when an attempt to save an entity is +made, and validation on the data of that entity fails.

          +

          Hierarchy

          • Error
            • EntityInvalidDataError

          Constructors

          Properties

          cause?: unknown
          fields: string[] = []
          message: string
          name: string
          stack?: string
          prepareStackTrace?: ((err, stackTraces) => any)

          Optional override for formatting stack traces

          +

          Type declaration

            • (err, stackTraces): any
            • Parameters

              • err: Error
              • stackTraces: CallSite[]

              Returns any

          stackTraceLimit: number

          Methods

          • Create .stack property on a target object

            +

            Parameters

            • targetObject: object
            • Optional constructorOpt: Function

            Returns void

          \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/classes/_nymphjs_nymph.EntityIsSleepingReferenceError.html b/static/api/1.0.0-beta.81/classes/_nymphjs_nymph.EntityIsSleepingReferenceError.html new file mode 100644 index 0000000..1c29767 --- /dev/null +++ b/static/api/1.0.0-beta.81/classes/_nymphjs_nymph.EntityIsSleepingReferenceError.html @@ -0,0 +1,12 @@ +EntityIsSleepingReferenceError | Nymph.js 1.0.0-beta.81

          Hierarchy

          • Error
            • EntityIsSleepingReferenceError

          Constructors

          Properties

          cause?: unknown
          message: string
          name: string
          stack?: string
          prepareStackTrace?: ((err, stackTraces) => any)

          Optional override for formatting stack traces

          +

          Type declaration

            • (err, stackTraces): any
            • Parameters

              • err: Error
              • stackTraces: CallSite[]

              Returns any

          stackTraceLimit: number

          Methods

          • Create .stack property on a target object

            +

            Parameters

            • targetObject: object
            • Optional constructorOpt: Function

            Returns void

          \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/classes/_nymphjs_nymph.EntityUniqueConstraintError.html b/static/api/1.0.0-beta.81/classes/_nymphjs_nymph.EntityUniqueConstraintError.html new file mode 100644 index 0000000..063ff06 --- /dev/null +++ b/static/api/1.0.0-beta.81/classes/_nymphjs_nymph.EntityUniqueConstraintError.html @@ -0,0 +1,12 @@ +EntityUniqueConstraintError | Nymph.js 1.0.0-beta.81

          Hierarchy

          • Error
            • EntityUniqueConstraintError

          Constructors

          Properties

          cause?: unknown
          message: string
          name: string
          stack?: string
          prepareStackTrace?: ((err, stackTraces) => any)

          Optional override for formatting stack traces

          +

          Type declaration

            • (err, stackTraces): any
            • Parameters

              • err: Error
              • stackTraces: CallSite[]

              Returns any

          stackTraceLimit: number

          Methods

          • Create .stack property on a target object

            +

            Parameters

            • targetObject: object
            • Optional constructorOpt: Function

            Returns void

          \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/classes/_nymphjs_nymph.InvalidParametersError.html b/static/api/1.0.0-beta.81/classes/_nymphjs_nymph.InvalidParametersError.html new file mode 100644 index 0000000..f26f893 --- /dev/null +++ b/static/api/1.0.0-beta.81/classes/_nymphjs_nymph.InvalidParametersError.html @@ -0,0 +1,12 @@ +InvalidParametersError | Nymph.js 1.0.0-beta.81

          Hierarchy

          • Error
            • InvalidParametersError

          Constructors

          Properties

          cause?: unknown
          message: string
          name: string
          stack?: string
          prepareStackTrace?: ((err, stackTraces) => any)

          Optional override for formatting stack traces

          +

          Type declaration

            • (err, stackTraces): any
            • Parameters

              • err: Error
              • stackTraces: CallSite[]

              Returns any

          stackTraceLimit: number

          Methods

          • Create .stack property on a target object

            +

            Parameters

            • targetObject: object
            • Optional constructorOpt: Function

            Returns void

          \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/classes/_nymphjs_nymph.InvalidStateError.html b/static/api/1.0.0-beta.81/classes/_nymphjs_nymph.InvalidStateError.html new file mode 100644 index 0000000..7361c6d --- /dev/null +++ b/static/api/1.0.0-beta.81/classes/_nymphjs_nymph.InvalidStateError.html @@ -0,0 +1,12 @@ +InvalidStateError | Nymph.js 1.0.0-beta.81

          Hierarchy

          • Error
            • InvalidStateError

          Constructors

          Properties

          cause?: unknown
          message: string
          name: string
          stack?: string
          prepareStackTrace?: ((err, stackTraces) => any)

          Optional override for formatting stack traces

          +

          Type declaration

            • (err, stackTraces): any
            • Parameters

              • err: Error
              • stackTraces: CallSite[]

              Returns any

          stackTraceLimit: number

          Methods

          • Create .stack property on a target object

            +

            Parameters

            • targetObject: object
            • Optional constructorOpt: Function

            Returns void

          \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/classes/_nymphjs_nymph.NotConfiguredError.html b/static/api/1.0.0-beta.81/classes/_nymphjs_nymph.NotConfiguredError.html new file mode 100644 index 0000000..b9dbc97 --- /dev/null +++ b/static/api/1.0.0-beta.81/classes/_nymphjs_nymph.NotConfiguredError.html @@ -0,0 +1,12 @@ +NotConfiguredError | Nymph.js 1.0.0-beta.81

          Hierarchy

          • Error
            • NotConfiguredError

          Constructors

          Properties

          cause?: unknown
          message: string
          name: string
          stack?: string
          prepareStackTrace?: ((err, stackTraces) => any)

          Optional override for formatting stack traces

          +

          Type declaration

            • (err, stackTraces): any
            • Parameters

              • err: Error
              • stackTraces: CallSite[]

              Returns any

          stackTraceLimit: number

          Methods

          • Create .stack property on a target object

            +

            Parameters

            • targetObject: object
            • Optional constructorOpt: Function

            Returns void

          \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/classes/_nymphjs_nymph.Nymph.html b/static/api/1.0.0-beta.81/classes/_nymphjs_nymph.Nymph.html new file mode 100644 index 0000000..1eeb945 --- /dev/null +++ b/static/api/1.0.0-beta.81/classes/_nymphjs_nymph.Nymph.html @@ -0,0 +1,283 @@ +Nymph | Nymph.js 1.0.0-beta.81

          An object relational mapper for Node.js.

          +

          Written by Hunter Perrin for SciActive.

          +

          Author

          Hunter Perrin hperrin@gmail.com

          +

          Copyright

          SciActive Inc

          +

          See

          http://nymph.io/

          +

          Constructors

          • Initialize Nymph.

            +

            Parameters

            • config: Partial<Config>

              The Nymph configuration.

              +
            • driver: NymphDriver

              The Nymph database driver.

              +
            • Optional tilmeld: TilmeldInterface

              The Tilmeld user/group manager instance, if you want to use it.

              +
            • Optional parent: Nymph

              Used internally by Nymph. Don't set this.

              +

            Returns Nymph

          Properties

          Entity: typeof Entity

          The entity class for this instance of Nymph.

          +
          afterCommitTransactionCallbacks: NymphAfterCommitTransactionCallback[] = []
          afterDeleteEntityByIDCallbacks: NymphAfterDeleteEntityByIDCallback[] = []
          afterDeleteEntityCallbacks: NymphAfterDeleteEntityCallback[] = []
          afterDeleteUIDCallbacks: NymphAfterDeleteUIDCallback[] = []
          afterNewUIDCallbacks: NymphAfterNewUIDCallback[] = []
          afterRenameUIDCallbacks: NymphAfterRenameUIDCallback[] = []
          afterRollbackTransactionCallbacks: NymphAfterRollbackTransactionCallback[] = []
          afterSaveEntityCallbacks: NymphAfterSaveEntityCallback[] = []
          afterSetUIDCallbacks: NymphAfterSetUIDCallback[] = []
          afterStartTransactionCallbacks: NymphAfterStartTransactionCallback[] = []
          beforeCommitTransactionCallbacks: NymphBeforeCommitTransactionCallback[] = []
          beforeDeleteEntityByIDCallbacks: NymphBeforeDeleteEntityByIDCallback[] = []
          beforeDeleteEntityCallbacks: NymphBeforeDeleteEntityCallback[] = []
          beforeDeleteUIDCallbacks: NymphBeforeDeleteUIDCallback[] = []
          beforeGetEntitiesCallbacks: NymphBeforeGetEntitiesCallback[] = []
          beforeGetEntityCallbacks: NymphBeforeGetEntityCallback[] = []
          beforeNewUIDCallbacks: NymphBeforeNewUIDCallback[] = []
          beforeRenameUIDCallbacks: NymphBeforeRenameUIDCallback[] = []
          beforeRollbackTransactionCallbacks: NymphBeforeRollbackTransactionCallback[] = []
          beforeSaveEntityCallbacks: NymphBeforeSaveEntityCallback[] = []
          beforeSetUIDCallbacks: NymphBeforeSetUIDCallback[] = []
          beforeStartTransactionCallbacks: NymphBeforeStartTransactionCallback[] = []
          config: Config

          The Nymph config.

          +
          connectCallbacks: NymphConnectCallback[] = []
          disconnectCallbacks: NymphDisconnectCallback[] = []
          driver: NymphDriver

          The Nymph database driver.

          +
          entityClasses: {
              [k: string]: EntityConstructor;
          } = {}

          A simple map of names to Entity classes.

          +

          Type declaration

          failedDeleteEntityByIDCallbacks: NymphFailedDeleteEntityByIDCallback[] = []
          failedDeleteEntityCallbacks: NymphFailedDeleteEntityCallback[] = []
          failedDeleteUIDCallbacks: NymphFailedDeleteUIDCallback[] = []
          failedNewUIDCallbacks: NymphFailedNewUIDCallback[] = []
          failedRenameUIDCallbacks: NymphFailedRenameUIDCallback[] = []
          failedSaveEntityCallbacks: NymphFailedSaveEntityCallback[] = []
          failedSetUIDCallbacks: NymphFailedSetUIDCallback[] = []
          parent: null | Nymph

          The Nymph instance that this one was cloned from, or null if it's not a +clone.

          +
          queryCallbacks: NymphQueryCallback[] = []
          tilmeld?: TilmeldInterface = undefined

          An optional Tilmeld user/group manager instance.

          +

          Methods

          • Add your class to this instance.

            +

            This will create a class that extends your class within this instance of +Nymph and return it. You can then use this class's constructor and methods, +which will use this instance of Nymph.

            +

            Because this creates a subclass, don't use the class +returned from getEntityClass to check with instanceof.

            +

            Type Parameters

            Parameters

            • EntityClass: T

            Returns T

          • Commit the named transaction.

            +

            After this is called, the transaction instance should be discarded.

            +

            Parameters

            • name: string

            Returns Promise<boolean>

            True on success, false on failure.

            +
          • Connect to the database.

            +

            Returns Promise<boolean>

            Whether the instance is connected to the database.

            +
          • Delete an entity from the database by its GUID.

            +

            Parameters

            • guid: string

              The entity's GUID.

              +
            • Optional className: string

              The entity's class name.

              +

            Returns Promise<boolean>

            True on success, false on failure.

            +
          • Delete a unique ID.

            +

            Parameters

            • name: string

              The UID's name.

              +

            Returns Promise<boolean>

            True on success, false on failure.

            +
          • Disconnect from the database.

            +

            Returns Promise<boolean>

            Whether the instance is connected to the database.

            +
          • Export entities to a local file.

            +

            This is the file format:

            +
            #nex2
            # The above line must be the first thing in the file.
            # Comments begin with #
            # And can have white space before them.
            # This defines a UID.
            <name/of/uid>[5]
            <another uid>[8000]
            # For UIDs, the name is in angle brackets (<>) and the value follows
            # in square brackets ([]).
            # This starts a new entity.
            {1234abcd}<etype>[tag,list,with,commas]
            # For entities, the GUID is in curly brackets ({}), then the etype in
            # angle brackets, then the comma separated tag list follows in square
            # brackets ([]).
            # Properties are stored like this:
            # propname=JSON.stringify(value)
            abilities=["system/admin"]
            groups=[]
            inheritAbilities=false
            name="admin"
            # White space before/after "=" and at beginning/end of line is ignored.
            username = "admin"
            {2}<etype>[tag,list]
            another="This is another entity."
            newline="\n" +
            +

            Parameters

            • filename: string

              The file to export to.

              +

            Returns Promise<boolean>

            True on success, false on failure.

            +
          • Export entities to the console.

            +

            Returns Promise<boolean>

            True on success, false on failure.

            +
          • Get an array of entities.

            +

            options is an object, which contains any of the following settings:

            +
              +
            • class - The class to create each entity with.
            • +
            • limit - The limit of entities to be returned.
            • +
            • offset - The offset from the oldest matching entity to start retrieving.
            • +
            • reverse - If true, entities will be retrieved from newest to oldest. +Therefore, offset will be from the newest entity.
            • +
            • sort - How to sort the entities. Accepts "cdate", "mdate", or the name of +a top-level property. The method of sorting properties other than cdate +and mdate is driver dependent. The only hard rule is that numbers should +be sorted numerically (2 before 10). Defaults to "cdate".
            • +
            • return - What to return. "entity", "guid", or "count". Defaults to +"entity".
            • +
            • source - Will be 'client' if the query came from a REST call.
            • +
            • skipCache - If true, Nymph will skip the cache and retrieve the entity +from the DB.
            • +
            • skipAc - If true, Tilmeld will not filter returned entities according to +access controls. (If Tilmeld is installed.) (This is always set to +false by the REST server.)
            • +
            +

            If a class is specified, it must have a factory() static method that +returns a new instance.

            +

            Selectors are objects. Any amount of selectors can be provided. Empty +selectors will be ignored. The type property of a selector is required +and can be one of the following strings:

            +
              +
            • & - (and) All values in the selector must be true.
            • +
            • | - (or) At least one value in the selector must be true.
            • +
            • !& - (not and) All values in the selector must be false.
            • +
            • !| - (not or) At least one value in the selector must be false.
            • +
            +

            The rest of the properties in the selectors are called selector clauses, +which can be any of the following (in the form selector.name = value, or +selector.name = [value1, value2,...]):

            +
              +
            • guid - A GUID. True if the entity's GUID is equal.
            • +
            • tag - A tag. True if the entity has the tag.
            • +
            • defined - A name. True if the named property exists.
            • +
            • truthy - A name. True if the named property is defined and truthy.
            • +
            • equal - An array with a name, then value. True if the named property is +defined and equal (their JSON strings are identical).
            • +
            • contain - An array with a name, then value. True if the named property +contains the value (its JSON string is found within the property's JSON +string).
            • +
            • match - An array with a name, then regular expression. True if the +named property matches. Uses POSIX RegExp. Case sensitive. Must not be +surrounded by any delimiters.
            • +
            • imatch - An array with a name, then regular expression. True if the +named property matches. Uses POSIX RegExp. Case insensitive. Must not +be surrounded by any delimiters.
            • +
            • like - An array with a name, then pattern. True if the named property +matches. Uses % for variable length wildcard and _ for single character +wildcard. Case sensitive.
            • +
            • ilike - An array with a name, then pattern. True if the named property +matches. Uses % for variable length wildcard and _ for single character +wildcard. Case insensitive.
            • +
            • gt - An array with a name, then value. True if the named property is +greater than the value.
            • +
            • gte - An array with a name, then value. True if the named property is +greater than or equal to the value.
            • +
            • lt - An array with a name, then value. True if the named property is +less than the value.
            • +
            • lte - An array with a name, then value. True if the named property is +less than or equal to the value.
            • +
            • ref - An array with a name, then either an entity, or a GUID. True if +the named property is the entity or contains the entity.
            • +
            • qref - An array with a name, then a full query (including options) in an +array. True if the named property is an entity that matches the query or +contains an entity that matches the query.
            • +
            • selector - A selector. (Keep in mind, you can also use an array of these, +just like any other clause.)
            • +
            +

            These clauses can all be negated, by prefixing them with an exclamation +point, such as "!truthy" to mean falsy (or undefined).

            +

            Any clause that accepts an array of name and value can also accept a third +element. If value is null and the third element is a string, the third +element will be used with Locutus' strtotime function to set value to a +relative timestamp. For example, the following selector will look for all +entities that were created in the last day:

            +
            {
            type: '&',
            gte: ['cdate', null, '-1 day']
            } +
            +

            Locutus' implementation: https://locutus.io/php/datetime/strtotime/ +PHP's documentation: https://www.php.net/manual/en/function.strtotime.php

            +

            This example will retrieve the last two entities where:

            +
              +
            • It has 'person' tag.
            • +
            • spouse is defined.
            • +
            • gender is male and lname is Smith.
            • +
            • warnings is not an integer 0.
            • +
            • It has 'level1' and 'level2' tags, or it has 'access1' and 'access2' +tags.
            • +
            • It has either 'employee' or 'manager' tag.
            • +
            • name is either Clark, James, Chris, Christopher, Jake, or Jacob.
            • +
            • If age is 22 or more, then pay is not greater than 8.
            • +
            +
            const entities = Nymph.getEntities(
            { class: Entity, reverse: true, limit: 2 },
            {
            type: '&', // all must be true
            tag: 'person',
            defined: 'spouse',
            equal: [
            ['gender', 'male'],
            ['lname', 'Smith']
            ],
            '!equal': ['warnings', 0]
            },
            {
            type: '|', // at least one of the selectors in this must match
            selector: [
            {
            type: '&',
            tag: ['level1', 'level2']
            },
            {
            type: '&',
            tag: ['access1', 'access2']
            }
            ]
            },
            {
            type: '|', // at least one must be true
            tag: ['employee', 'manager']
            },
            {
            type: '|',
            equal: [
            ['name', 'Clark'],
            ['name', 'James']
            ],
            match: [
            ['name', 'Chris(topher)?'],
            ['name', 'Ja(ke|cob)']
            ]
            },
            {
            type: '!|', // at least one must be false
            gte: ['age', 22],
            gt: ['pay', 8]
            }
            ); +
            +

            Type Parameters

            Parameters

            • options: Options<T> & {
                  return: "count";
              }

              The options.

              +
            • Rest ...selectors: Selector[]

              Unlimited optional selectors to search for. If none are given, all entities are retrieved for the given options.

              +

            Returns Promise<number>

            An array of entities or guids, or a count.

            +

            Todo

            Use an asterisk to specify any variable.

            +
          • Type Parameters

            Parameters

            Returns Promise<string[]>

          • Type Parameters

            Parameters

            Returns Promise<EntityInstanceType<T>[]>

          • Get the class that uses the specified etype.

            +

            Note that it is fine, though unusual, for two classes to use the same +etype. However, this can lead to very hard to diagnose bugs, so is +generally discouraged.

            +

            Parameters

            • etype: string

            Returns EntityConstructor

          • Get the current value of a unique ID.

            +

            Parameters

            • name: string

              The UID's name.

              +

            Returns Promise<null | number>

            The UID's value, or null on failure and if it doesn't exist.

            +
          • Import entities from a file.

            +

            Parameters

            • filename: string

              The file to import from.

              +

            Returns Promise<boolean>

            True on success, false on failure.

            +
          • Check if there is any open transaction.

            +

            Returns Promise<boolean>

            True if there is a transaction.

            +
          • Detect whether the database needs to be migrated.

            +

            If true, the database should be exported with an old version of Nymph, then +imported into a fresh database with this version.

            +

            Returns Promise<boolean>

          • Increment or create a unique ID and return the new value.

            +

            Unique IDs, or UIDs are similar to GUIDs, but numeric and sequential.

            +

            A UID can be used to identify an object when the GUID doesn't suffice. On +a system where a new entity is created many times per second, referring +to something by its GUID may be unintuitive. However, the component +designer is responsible for assigning UIDs to the component's entities. +Beware that if a UID is incremented for an entity, and the entity cannot +be saved, there is no safe, and therefore, no recommended way to +decrement the UID back to its previous value.

            +

            If newUID() is passed the name of a UID which does not exist yet, one +will be created with that name, and assigned the value 1. If the UID +already exists, its value will be incremented. The new value will be +returned.

            +

            Parameters

            • name: string

              The UID's name.

              +

            Returns Promise<null | number>

            The UID's new value, or null on failure.

            +
          • Type Parameters

            Parameters

            • event: T
            • callback: T extends "connect"
                  ? NymphConnectCallback
                  : T extends "disconnect"
                      ? NymphDisconnectCallback
                      : T extends "query"
                          ? NymphQueryCallback
                          : T extends "beforeGetEntity"
                              ? NymphBeforeGetEntityCallback
                              : T extends "beforeGetEntities"
                                  ? NymphBeforeGetEntitiesCallback
                                  : T extends "beforeSaveEntity"
                                      ? NymphBeforeSaveEntityCallback
                                      : T extends "afterSaveEntity"
                                          ? NymphAfterSaveEntityCallback
                                          : T extends "failedSaveEntity"
                                              ? NymphFailedSaveEntityCallback
                                              : T extends "beforeDeleteEntity"
                                                  ? NymphBeforeDeleteEntityCallback
                                                  : T extends "afterDeleteEntity"
                                                      ? NymphAfterDeleteEntityCallback
                                                      : (...) extends (...)
                                                          ? (...)
                                                          : (...)

            Returns boolean

          • Type Parameters

            Parameters

            • event: T
            • callback: T extends "connect"
                  ? NymphConnectCallback
                  : T extends "disconnect"
                      ? NymphDisconnectCallback
                      : T extends "query"
                          ? NymphQueryCallback
                          : T extends "beforeGetEntity"
                              ? NymphBeforeGetEntityCallback
                              : T extends "beforeGetEntities"
                                  ? NymphBeforeGetEntitiesCallback
                                  : T extends "beforeSaveEntity"
                                      ? NymphBeforeSaveEntityCallback
                                      : T extends "afterSaveEntity"
                                          ? NymphAfterSaveEntityCallback
                                          : T extends "failedSaveEntity"
                                              ? NymphFailedSaveEntityCallback
                                              : T extends "beforeDeleteEntity"
                                                  ? NymphBeforeDeleteEntityCallback
                                                  : T extends "afterDeleteEntity"
                                                      ? NymphAfterDeleteEntityCallback
                                                      : (...) extends (...)
                                                          ? (...)
                                                          : (...)

            Returns (() => boolean)

              • (): boolean
              • Returns boolean

          • Rename a unique ID.

            +

            Parameters

            • oldName: string

              The old name.

              +
            • newName: string

              The new name.

              +

            Returns Promise<boolean>

            True on success, false on failure.

            +
          • Rollback the named transaction.

            +

            After this is called, the transaction instance should be discarded.

            +

            Parameters

            • name: string

            Returns Promise<boolean>

            True on success, false on failure.

            +
          • Save an entity to the database.

            +

            If the entity has never been saved (has no GUID), a variable "cdate" +is set on it with the current Unix timestamp.

            +

            The variable "mdate" is set to the current Unix timestamp.

            +

            Parameters

            Returns Promise<boolean>

            True on success, false on failure.

            +
          • Set the value of a UID.

            +

            Parameters

            • name: string

              The UID's name.

              +
            • value: number

              The value.

              +

            Returns Promise<boolean>

            True on success, false on failure.

            +
          • Start an atomic transaction and returns a new instance of Nymph.

            +

            All proceeding changes using this new instance will wait to be written to +the database's permanent storage until commit() is called. You can also +undo all the changes since this function ran with rollback().

            +

            Transactions will nest as long as every name is unique. Internally, Nymph +uses names prefixed with "nymph-".

            +

            Parameters

            • name: string

            Returns Promise<Nymph>

            A new instance of Nymph that should be used for the transaction.

            +
          \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/classes/_nymphjs_nymph.NymphDriver.html b/static/api/1.0.0-beta.81/classes/_nymphjs_nymph.NymphDriver.html new file mode 100644 index 0000000..981a190 --- /dev/null +++ b/static/api/1.0.0-beta.81/classes/_nymphjs_nymph.NymphDriver.html @@ -0,0 +1,77 @@ +NymphDriver | Nymph.js 1.0.0-beta.81

          A Nymph database driver.

          +

          Hierarchy

          • NymphDriver

            Constructors

            Properties

            entityCache: {
                [k: string]: {
                    cdate: number;
                    data: EntityData;
                    mdate: number;
                    sdata: SerializedEntityData;
                    tags: string[];
                };
            } = {}

            A cache to make entity retrieval faster.

            +

            Type declaration

            entityCount: {
                [k: string]: number;
            } = {}

            A counter for the entity cache to determine the most accessed entities.

            +

            Type declaration

            • [k: string]: number
            nymph: Nymph = ...
            putDataCounter: number = 0

            Protect against infinite loops.

            +

            Methods

            • Returns AsyncGenerator<{
                  content: string;
                  type: "entity" | "comment" | "uid";
              }, void, undefined | false>

            • Type Parameters

              Parameters

              • options: Options<T> & {
                    return: "count";
                }
              • selectors: Selector[]
              • performQueryCallback: ((data) => {
                    result: any;
                })
              • rowFetchCallback: (() => any)
                  • (): any
                  • Returns any

              • freeResultCallback: (() => void)
                  • (): void
                  • Returns void

              • getCountCallback: ((row) => number)
                  • (row): number
                  • Parameters

                    • row: any

                    Returns number

              • getGUIDCallback: ((row) => string)
                  • (row): string
                  • Parameters

                    • row: any

                    Returns string

              • getTagsAndDatesCallback: ((row) => {
                    cdate: number;
                    mdate: number;
                    tags: string[];
                })
                  • (row): {
                        cdate: number;
                        mdate: number;
                        tags: string[];
                    }
                  • Parameters

                    • row: any

                    Returns {
                        cdate: number;
                        mdate: number;
                        tags: string[];
                    }

                    • cdate: number
                    • mdate: number
                    • tags: string[]
              • getDataNameAndSValueCallback: ((row) => {
                    name: string;
                    svalue: string;
                })
                  • (row): {
                        name: string;
                        svalue: string;
                    }
                  • Parameters

                    • row: any

                    Returns {
                        name: string;
                        svalue: string;
                    }

                    • name: string
                    • svalue: string

              Returns {
                  process: (() => number | Error);
                  result: any;
              }

              • process: (() => number | Error)
                  • (): number | Error
                  • Returns number | Error

              • result: any
            • Type Parameters

              Parameters

              • options: Options<T> & {
                    return: "guid";
                }
              • selectors: Selector[]
              • performQueryCallback: ((data) => {
                    result: any;
                })
              • rowFetchCallback: (() => any)
                  • (): any
                  • Returns any

              • freeResultCallback: (() => void)
                  • (): void
                  • Returns void

              • getCountCallback: ((row) => number)
                  • (row): number
                  • Parameters

                    • row: any

                    Returns number

              • getGUIDCallback: ((row) => string)
                  • (row): string
                  • Parameters

                    • row: any

                    Returns string

              • getTagsAndDatesCallback: ((row) => {
                    cdate: number;
                    mdate: number;
                    tags: string[];
                })
                  • (row): {
                        cdate: number;
                        mdate: number;
                        tags: string[];
                    }
                  • Parameters

                    • row: any

                    Returns {
                        cdate: number;
                        mdate: number;
                        tags: string[];
                    }

                    • cdate: number
                    • mdate: number
                    • tags: string[]
              • getDataNameAndSValueCallback: ((row) => {
                    name: string;
                    svalue: string;
                })
                  • (row): {
                        name: string;
                        svalue: string;
                    }
                  • Parameters

                    • row: any

                    Returns {
                        name: string;
                        svalue: string;
                    }

                    • name: string
                    • svalue: string

              Returns {
                  process: (() => Error | string[]);
                  result: any;
              }

              • process: (() => Error | string[])
                  • (): Error | string[]
                  • Returns Error | string[]

              • result: any
            • Type Parameters

              Parameters

              • options: Options<T>
              • selectors: Selector[]
              • performQueryCallback: ((data) => {
                    result: any;
                })
              • rowFetchCallback: (() => any)
                  • (): any
                  • Returns any

              • freeResultCallback: (() => void)
                  • (): void
                  • Returns void

              • getCountCallback: ((row) => number)
                  • (row): number
                  • Parameters

                    • row: any

                    Returns number

              • getGUIDCallback: ((row) => string)
                  • (row): string
                  • Parameters

                    • row: any

                    Returns string

              • getTagsAndDatesCallback: ((row) => {
                    cdate: number;
                    mdate: number;
                    tags: string[];
                })
                  • (row): {
                        cdate: number;
                        mdate: number;
                        tags: string[];
                    }
                  • Parameters

                    • row: any

                    Returns {
                        cdate: number;
                        mdate: number;
                        tags: string[];
                    }

                    • cdate: number
                    • mdate: number
                    • tags: string[]
              • getDataNameAndSValueCallback: ((row) => {
                    name: string;
                    svalue: string;
                })
                  • (row): {
                        name: string;
                        svalue: string;
                    }
                  • Parameters

                    • row: any

                    Returns {
                        name: string;
                        svalue: string;
                    }

                    • name: string
                    • svalue: string

              Returns {
                  process: (() => Error | EntityInstanceType<T>[]);
                  result: any;
              }

            • Parameters

              • selectors: FormattedSelector[]
              • callback: ((data) => string)
                  • (data): string
                  • Parameters

                    • data: {
                          key: string;
                          typeIsNot: boolean;
                          typeIsOr: boolean;
                          value: any;
                      }
                      • key: string
                      • typeIsNot: boolean
                      • typeIsOr: boolean
                      • value: any

                    Returns string

              Returns string[]

            • Detect whether the database needs to be migrated.

              +

              If true, the database should be exported with an old version of Nymph, then +imported into a fresh database with this version.

              +

              Returns Promise<boolean>

            • Pull an entity from the cache.

              +

              Type Parameters

              Parameters

              • guid: string

                The entity's GUID.

                +
              • className: string

                The entity's class.

                +
              • useSkipAc: boolean = false

                Whether to tell the entity to use skip_ac.

                +

              Returns null | T

              The entity or null if it's not cached.

              +
            • Push an entity onto the cache.

              +

              Parameters

              • guid: string

                The entity's GUID.

                +
              • cdate: number

                The entity's cdate.

                +
              • mdate: number

                The entity's mdate.

                +
              • tags: string[]

                The entity's tags.

                +
              • data: EntityData

                The entity's data.

                +
              • sdata: SerializedEntityData

                The entity's sdata.

                +

              Returns void

            • Parameters

              • entity: EntityInterface
              • saveNewEntityCallback: ((data) => Promise<boolean>)
              • saveExistingEntityCallback: ((data) => Promise<boolean>)
              • startTransactionCallback: null | (() => Promise<void>) = null
              • commitTransactionCallback: null | ((success) => Promise<boolean>) = null

              Returns Promise<boolean>

            \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/classes/_nymphjs_nymph.QueryFailedError.html b/static/api/1.0.0-beta.81/classes/_nymphjs_nymph.QueryFailedError.html new file mode 100644 index 0000000..6a5dd2b --- /dev/null +++ b/static/api/1.0.0-beta.81/classes/_nymphjs_nymph.QueryFailedError.html @@ -0,0 +1,15 @@ +QueryFailedError | Nymph.js 1.0.0-beta.81

            Hierarchy

            • Error
              • QueryFailedError

            Constructors

            Properties

            cause?: unknown
            message: string
            name: string
            query?: string
            stack?: string
            prepareStackTrace?: ((err, stackTraces) => any)

            Optional override for formatting stack traces

            +

            Type declaration

              • (err, stackTraces): any
              • Parameters

                • err: Error
                • stackTraces: CallSite[]

                Returns any

            stackTraceLimit: number

            Methods

            • Create .stack property on a target object

              +

              Parameters

              • targetObject: object
              • Optional constructorOpt: Function

              Returns void

            \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/classes/_nymphjs_nymph.UnableToConnectError.html b/static/api/1.0.0-beta.81/classes/_nymphjs_nymph.UnableToConnectError.html new file mode 100644 index 0000000..688cb9a --- /dev/null +++ b/static/api/1.0.0-beta.81/classes/_nymphjs_nymph.UnableToConnectError.html @@ -0,0 +1,12 @@ +UnableToConnectError | Nymph.js 1.0.0-beta.81

            Hierarchy

            • Error
              • UnableToConnectError

            Constructors

            Properties

            cause?: unknown
            message: string
            name: string
            stack?: string
            prepareStackTrace?: ((err, stackTraces) => any)

            Optional override for formatting stack traces

            +

            Type declaration

              • (err, stackTraces): any
              • Parameters

                • err: Error
                • stackTraces: CallSite[]

                Returns any

            stackTraceLimit: number

            Methods

            • Create .stack property on a target object

              +

              Parameters

              • targetObject: object
              • Optional constructorOpt: Function

              Returns void

            \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/classes/_nymphjs_pubsub.PubSub.html b/static/api/1.0.0-beta.81/classes/_nymphjs_pubsub.PubSub.html new file mode 100644 index 0000000..2203447 --- /dev/null +++ b/static/api/1.0.0-beta.81/classes/_nymphjs_pubsub.PubSub.html @@ -0,0 +1,52 @@ +PubSub | Nymph.js 1.0.0-beta.81

            A publish/subscribe server for Nymph.

            +

            Written by Hunter Perrin for SciActive.

            +

            Author

            Hunter Perrin hperrin@gmail.com

            +

            Copyright

            SciActive Inc

            +

            See

            http://nymph.io/

            +

            Constructors

            • Initialize Nymph PubSub.

              +

              Parameters

              • config: Partial<Config>

                The PubSub configuration.

                +
              • nymph: Nymph
              • server: server

              Returns PubSub

            Properties

            config: Config

            The PubSub config.

            +
            nymph: Nymph

            The Nymph instance.

            +
            querySubs: {
                [etype: string]: {
                    [query: string]: Map<connection, QuerySubscriptionData>;
                };
            } = {}

            Type declaration

            server: server

            The WebSocket server.

            +
            sessions: Map<connection, {
                authToken: string;
                switchToken?: string;
            }> = ...

            Type declaration

            • authToken: string
            • Optional switchToken?: string
            uidSubs: {
                [uidName: string]: Map<connection, {
                    count: boolean;
                }>;
            } = {}

            Type declaration

            • [uidName: string]: Map<connection, {
                  count: boolean;
              }>
            transactionPublishes: {
                config: Config;
                nymph: Nymph;
                payload: string;
            }[] = []

            Type declaration

            Methods

            • Handle a publish from a client.

              +

              Parameters

              Returns Promise<void>

            • Handle a UID publish from a client.

              +

              Parameters

              Returns Promise<void>

            • Parameters

              • request: request

              Returns void

            • Handle a subscribe or unsubscribe from a client.

              +

              Parameters

              Returns Promise<void>

            • Handle a subscribe or unsubscribe for a query from a client.

              +

              Parameters

              • from: connection
              • data: QuerySubscribeMessageData
              • Optional qrefParent: {
                    etype: string;
                    query: string;
                }
                • etype: string
                • query: string

              Returns Promise<void>

            • Handle a subscribe or unsubscribe for a UID from a client.

              +

              Parameters

              Returns Promise<void>

            • Clean up after users who leave.

              +

              Parameters

              • conn: connection
              • description: string

              Returns void

            • Parameters

              • conn: connection
              • e: Error

              Returns void

            • Handle a message from a client.

              +

              Parameters

              • from: connection
              • msg: Message

              Returns Promise<void>

            • Relay publish data to other servers.

              +

              Parameters

              • message: Message

              Returns void

            • This translates qref selectors into ref selectors using the "current" GUID +list in the existing subscriptions.

              +

              Parameters

              Returns Selector[]

            • Parameters

              Returns void

            • Parameters

              Returns Promise<void>

            • Parameters

              Returns void

            \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/classes/_nymphjs_server.ForbiddenClassError.html b/static/api/1.0.0-beta.81/classes/_nymphjs_server.ForbiddenClassError.html new file mode 100644 index 0000000..c06d19c --- /dev/null +++ b/static/api/1.0.0-beta.81/classes/_nymphjs_server.ForbiddenClassError.html @@ -0,0 +1,12 @@ +ForbiddenClassError | Nymph.js 1.0.0-beta.81

            Hierarchy

            • Error
              • ForbiddenClassError

            Constructors

            Properties

            cause?: unknown
            message: string
            name: string
            stack?: string
            prepareStackTrace?: ((err, stackTraces) => any)

            Optional override for formatting stack traces

            +

            Type declaration

              • (err, stackTraces): any
              • Parameters

                • err: Error
                • stackTraces: CallSite[]

                Returns any

            stackTraceLimit: number

            Methods

            • Create .stack property on a target object

              +

              Parameters

              • targetObject: object
              • Optional constructorOpt: Function

              Returns void

            \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/classes/_nymphjs_server.HttpError.html b/static/api/1.0.0-beta.81/classes/_nymphjs_server.HttpError.html new file mode 100644 index 0000000..a7b428b --- /dev/null +++ b/static/api/1.0.0-beta.81/classes/_nymphjs_server.HttpError.html @@ -0,0 +1,14 @@ +HttpError | Nymph.js 1.0.0-beta.81

            Hierarchy

            • Error
              • HttpError

              Constructors

              Properties

              cause?: unknown
              message: string
              name: string
              stack?: string
              status?: number
              statusText?: string
              prepareStackTrace?: ((err, stackTraces) => any)

              Optional override for formatting stack traces

              +

              Type declaration

                • (err, stackTraces): any
                • Parameters

                  • err: Error
                  • stackTraces: CallSite[]

                  Returns any

              stackTraceLimit: number

              Methods

              • Create .stack property on a target object

                +

                Parameters

                • targetObject: object
                • Optional constructorOpt: Function

                Returns void

              \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/classes/_nymphjs_sorter.Sorter.html b/static/api/1.0.0-beta.81/classes/_nymphjs_sorter.Sorter.html new file mode 100644 index 0000000..57634db --- /dev/null +++ b/static/api/1.0.0-beta.81/classes/_nymphjs_sorter.Sorter.html @@ -0,0 +1,26 @@ +Sorter | Nymph.js 1.0.0-beta.81

              Entity Array Sorter

              +

              Sorting functions sort the array in place and also return the sorted array.

              +

              Type Parameters

              • Entity extends Object

              Constructors

              Properties

              array: (Entity & {
                  [k: string]: any;
              })[]
              collator: Collator = ...
              comparator: undefined | ((a, b) => number) = undefined

              Type declaration

                • (a, b): number
                • Parameters

                  • a: any
                  • b: any

                  Returns number

              sortParent: null | string = null
              sortProperty: null | string = null

              Methods

              • Parameters

                • a: Entity & {
                      [k: string]: any;
                  }
                • b: Entity & {
                      [k: string]: any;
                  }

                Returns number

              • Sort an array of entities hierarchically by a specified property's value.

                +

                Entities will be placed immediately after their parents. The +parentProperty property, if present, should hold either null, undefined, +or the entity's parent.

                +

                Parameters

                • property: string

                  The name of the property to sort entities by.

                  +
                • parentProperty: string

                  The name of the property which holds the parent of the entity.

                  +
                • __namedParameters: SortOptions = {}

                Returns Entity[]

              • Sort an array of entities by parent and a specified property's value.

                +

                Entities' will be sorted by their parents' properties, then the entities' +properties.

                +

                Parameters

                • property: string

                  The name of the property to sort entities by.

                  +
                • parentProperty: string

                  The name of the property which holds the parent of the entity.

                  +
                • __namedParameters: SortOptions = {}

                Returns Entity[]

              • Sort an array of entities by a specified property's value.

                +

                Parameters

                • property: string

                  The name of the property to sort entities by.

                  +
                • __namedParameters: SortOptions = {}

                Returns Entity[]

              \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/classes/_nymphjs_tilmeld.AbleObject.html b/static/api/1.0.0-beta.81/classes/_nymphjs_tilmeld.AbleObject.html new file mode 100644 index 0000000..755497f --- /dev/null +++ b/static/api/1.0.0-beta.81/classes/_nymphjs_tilmeld.AbleObject.html @@ -0,0 +1,261 @@ +AbleObject | Nymph.js 1.0.0-beta.81

              AbleObject abstract class.

              +

              Used in entities which support abilities, such as users and groups.

              +

              Type Parameters

              • T extends {
                    abilities?: string[];
                }

              Hierarchy (view full)

              Constructors

              • Initialize an entity.

                +

                Type Parameters

                • T extends {
                      abilities?: string[];
                  }

                Parameters

                • Rest ..._rest: any[]

                Returns AbleObject<T>

              Properties

              $allowlistData?: string[]

              If this is defined, then it lists the only properties that will be +accepted from incoming JSON. Any other properties will be ignored.

              +

              If you use an allowlist, you don't need to use protectedData, since you +can simply leave those entries out of allowlistData.

              +
              $allowlistTags?: string[]

              If this is defined, then it lists the only tags that will be accepted from +incoming JSON. Any other tags will be ignored.

              +
              $clientEnabledMethods: string[]

              The names of methods allowed to be called by the frontend with serverCall.

              +
              $data: T

              The data proxy object.

              +
              $dataHandler: Object

              The data proxy handler.

              +
              $dataStore: T

              The actual data store.

              +
              $isASleepingReference: boolean

              Whether this instance is a sleeping reference.

              +
              $nymph: Nymph

              The instance of Nymph to use for queries.

              +
              $privateData: string[]

              Properties that will not be serialized into JSON with toJSON(). This +can be considered a denylist, because these properties will not be set +with incoming JSON.

              +

              Clients CAN still determine what is in these properties, unless they are +also listed in searchRestrictedData.

              +
              $protectedData: string[]

              Properties that can only be modified by server side code. They will still +be visible on the frontend, unlike $privateData, but any changes to them +that come from the frontend will be ignored.

              +

              In addition to what's listed here, all of the access control properties +will be included when Tilmeld is being used. These are:

              +
                +
              • acUser
              • +
              • acGroup
              • +
              • acOther
              • +
              • acRead
              • +
              • acWrite
              • +
              • acFull
              • +
              • user
              • +
              • group
              • +
              +

              You should modify these through client enabled methods or the $save method +instead, for safety.

              +
              $protectedTags: string[]

              Tags that can only be added/removed by server side code. They will still be +visible on the frontend, but any changes to them that come from the +frontend will be ignored.

              +

              The actual sdata store.

              +
              $sleepingReference: null | EntityReference

              The reference to use to wake.

              +
              $wakePromise: null | Promise<Entity<T>>

              A promise that resolved when the entity's data is wake.

              +
              cdate: null | number

              The creation date of the entity as a Unix timestamp in milliseconds.

              +
              guid: null | string

              The entity's Globally Unique ID.

              +

              This is a 12 byte number represented as a lower case HEX string (24 +characters).

              +
              mdate: null | number

              The modified date of the entity as a Unix timestamp in milliseconds.

              +
              tags: string[]

              Array of the entity's tags.

              +
              ETYPE: string

              A unique name for this type of entity used to separate its data from other +types of entities in the database.

              +
              class: string

              The lookup name for this entity.

              +

              This is used for reference arrays (and sleeping references) and client +requests.

              +
              clientEnabledStaticMethods: string[]

              The names of static methods allowed to be called by the frontend with +serverCallStatic.

              +
              nymph: Nymph

              The instance of Nymph to use for queries.

              +
              pubSubEnabled: boolean

              Whether this entity should publish changes to PubSub servers.

              +
              restEnabled: boolean

              Whether this entity should be accessible on the frontend through the REST +server.

              +

              If this is false, any request from the client that attempts to use this +entity will fail.

              +
              searchRestrictedData: string[]

              Properties that will not be searchable from the frontend. If the frontend +includes any of these properties in any of their clauses, they will be +filtered out before the search is executed.

              +

              Methods

              • Add one or more tags.

                +

                Parameters

                • Rest ...tags: string[]

                  List of tags.

                  +

                Returns void

              • Search the array for this object and return the corresponding index.

                +

                If strict is false, is() is used to compare. If strict is true, +equals() is used.

                +

                Parameters

                • array: any[]

                  The array to search.

                  +
                • Optional strict: boolean

                  Whether to use stronger comparison.

                  +

                Returns number

                The index if the object is in the array, -1 if it isn't.

                +
              • Check if this is a sleeping reference.

                +

                Returns boolean

              • Check if this is a sleeping reference and throw an error if so.

                +

                Returns void

              • Replace any referenced entities in the data with sleeping references.

                +

                Calling this function ensures that the next time a referenced entity is +accessed, it will be retrieved from the DB (unless it is in Nymph's cache).

                +

                Returns void

              • Delete the object from storage.

                +

                Returns Promise<boolean>

                True on success, false on failure.

                +
              • Perform a more strict comparison of this object to another.

                +

                Parameters

                • object: any

                  The object to compare.

                  +

                Returns boolean

                True or false.

                +
              • Returns null | (null | string)[]

              • Returns any

              • Returns null | (null | string)[]

              • Returns any

              • Returns null | (null | string)[]

              • Get the client enabled methods.

                +

                Returns string[]

                The names of methods allowed to be called by the frontend with serverCall.

                +
              • Used to retrieve the data object.

                +

                This should only be used by Nymph to save the data into storage.

                +

                Parameters

                • Optional includeSData: boolean

                  Whether to include the serialized data as well.

                  +

                Returns any

                The entity's data object.

                +
              • Used to retrieve the serialized data object.

                +

                This should only be used by Nymph to save the data object into storage.

                +

                This method is used by Nymph to avoid unserializing data that hasn't been +requested yet.

                +

                It should always be called after getData().

                +

                Returns SerializedEntityData

                The entity's serialized data object.

                +
              • Get the entity's tags.

                +

                Using this instead of accessing the tags prop directly will wake sleeping +references.

                +

                Returns string[]

                The entity's tags.

                +
              • Get an array of strings that must be unique across the current etype.

                +

                When you try to save another entity with any of the same unique strings, +Nymph will throw an error.

                +

                The default implementation of this method returns an empty array, meaning +there are no uniqueness constraints applied to its etype.

                +

                Returns Promise<string[]>

                Resolves to an array of entity's unique constraint strings.

                +
              • Get an object that holds the same data as the entity.

                +

                This provides an object that can be validated.

                +

                Returns any

                A pure object representation of the entity.

                +
              • Check that the entity has all of the given tags.

                +

                Parameters

                • Rest ...tags: string[]

                  List of tags.

                  +

                Returns boolean

                True or false.

                +
              • Check whether this object is in an array.

                +

                If strict is false, is() is used to compare. If strict is true, +equals() is used.

                +

                Parameters

                • array: any[]

                  The array to search.

                  +
                • Optional strict: boolean

                  Whether to use stronger comparison.

                  +

                Returns boolean

                True if the object is in the array, false if it isn't.

                +
              • Perform a less strict comparison of this object to another.

                +

                Parameters

                • object: any

                  The object to compare.

                  +

                Returns boolean

                True or false.

                +
              • Accept JSON data from the client.

                +

                This function uses the security protection lists:

                +
                  +
                • $protectedTags
                • +
                • $protectedData
                • +
                • $allowlistTags
                • +
                • $allowlistData
                • +
                +

                Parameters

                • input: EntityJson

                  The input data. Please note, this will be modified (destroyed).

                  +
                • Optional allowConflict: boolean

                  Allow to accept data that is older than the current data.

                  +

                Returns void

              • Accept JSON patch from the client.

                +

                This function uses the security protection lists:

                +
                  +
                • $protectedTags
                • +
                • $protectedData
                • +
                • $allowlistTags
                • +
                • $allowlistData
                • +
                +

                Parameters

                • patch: EntityPatch

                  The patch data. Please note, this will be modified (destroyed).

                  +
                • Optional allowConflict: boolean

                  Allow to accept data that is older than the current data.

                  +

                Returns void

              • Used to set the data.

                +

                This should only be used by Nymph to push the data from storage.

                +

                sdata is used by Nymph to avoid unserializing data that hasn't been +requested yet.

                +

                Parameters

                Returns void

              • Set up a sleeping reference.

                +

                Parameters

                Returns void

              • Refresh the object from storage. (Bypasses Nymph's cache.)

                +

                If the object has been deleted from storage, the database cannot be +reached, or a database error occurs, refresh() will return 0.

                +

                Returns Promise<boolean | 0>

                False if the data has not been saved, 0 if it can't be refreshed, true on success.

                +
              • Remove one or more tags.

                +

                Parameters

                • Rest ...tags: string[]

                  List of tags.

                  +

                Returns void

              • Save the object to storage.

                +

                Returns Promise<boolean>

                True on success, false on failure.

                +
              • Return a Nymph Entity Reference for this entity.

                +

                If the entity hasn't been saved yet (and has no GUID), it will be +returned instead.

                +

                Returns AbleObject<T> | EntityReference

                A Nymph Entity Reference array as an unsaved entity.

                +
              • Set whether to use "skipAc" when accessing entity references.

                +

                Parameters

                • skipAc: boolean

                  True or false, whether to use it.

                  +

                Returns void

              • Wake from a sleeping reference.

                +

                Returns Promise<Entity<T>>

              • Parameters

                • Optional level: number

                Returns Promise<Entity<T>>

              • Alter the options for a query for this entity.

                +

                Type Parameters

                Parameters

                • options: T

                  The current options.

                  +

                Returns T

                The altered options.

                +
              • Create or retrieve a new entity instance.

                +

                Note that this will always return an entity, even if the GUID is not found.

                +

                Type Parameters

                Parameters

                • this: (new () => E)
                    • new (): E
                    • Returns E

                • Optional guid: string

                  An optional GUID to retrieve.

                  +

                Returns Promise<E & EntityDataType<E>>

              • Create a new sleeping reference instance.

                +

                Sleeping references won't retrieve their data from the database until they +are readied with $wake() or a parent's $wakeAll().

                +

                Type Parameters

                Parameters

                • this: (new () => E)
                    • new (): E
                    • Returns E

                • reference: EntityReference

                  The Nymph Entity Reference to use to wake.

                  +

                Returns E & EntityDataType<E>

                The new instance.

                +
              • Get an array of strings that must be unique across the current etype.

                +

                When you try to save another entity with any of the same unique strings, +Nymph will throw an error.

                +

                The default implementation of this static method instantiates the entity, +assigns all of the given data, then calls $getUniques and returns its +output. This can have a performance impact if a lot of extra processing +happens during any of these steps. You can override this method to +calculate the unique strings faster, but you must return the same strings +that would be returned by $getUniques.

                +

                Parameters

                • __namedParameters: {
                      cdate?: number;
                      data: EntityData;
                      guid?: string;
                      mdate?: number;
                      sdata?: SerializedEntityData;
                      tags: string[];
                  }

                Returns Promise<string[]>

                Resolves to an array of entity's unique constraint strings.

                +
              \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/classes/_nymphjs_tilmeld.AccessControlError.html b/static/api/1.0.0-beta.81/classes/_nymphjs_tilmeld.AccessControlError.html new file mode 100644 index 0000000..991d7b0 --- /dev/null +++ b/static/api/1.0.0-beta.81/classes/_nymphjs_tilmeld.AccessControlError.html @@ -0,0 +1,14 @@ +AccessControlError | Nymph.js 1.0.0-beta.81

              Hierarchy (view full)

              Constructors

              Properties

              cause?: unknown
              message: string
              name: string
              stack?: string
              status?: number
              statusText?: string
              prepareStackTrace?: ((err, stackTraces) => any)

              Optional override for formatting stack traces

              +

              Type declaration

                • (err, stackTraces): any
                • Parameters

                  • err: Error
                  • stackTraces: CallSite[]

                  Returns any

              stackTraceLimit: number

              Methods

              • Create .stack property on a target object

                +

                Parameters

                • targetObject: object
                • Optional constructorOpt: Function

                Returns void

              \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/classes/_nymphjs_tilmeld.BadDataError.html b/static/api/1.0.0-beta.81/classes/_nymphjs_tilmeld.BadDataError.html new file mode 100644 index 0000000..cabd55c --- /dev/null +++ b/static/api/1.0.0-beta.81/classes/_nymphjs_tilmeld.BadDataError.html @@ -0,0 +1,14 @@ +BadDataError | Nymph.js 1.0.0-beta.81

              Hierarchy (view full)

              Constructors

              Properties

              cause?: unknown
              message: string
              name: string
              stack?: string
              status?: number
              statusText?: string
              prepareStackTrace?: ((err, stackTraces) => any)

              Optional override for formatting stack traces

              +

              Type declaration

                • (err, stackTraces): any
                • Parameters

                  • err: Error
                  • stackTraces: CallSite[]

                  Returns any

              stackTraceLimit: number

              Methods

              • Create .stack property on a target object

                +

                Parameters

                • targetObject: object
                • Optional constructorOpt: Function

                Returns void

              \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/classes/_nymphjs_tilmeld.BadEmailError.html b/static/api/1.0.0-beta.81/classes/_nymphjs_tilmeld.BadEmailError.html new file mode 100644 index 0000000..467474c --- /dev/null +++ b/static/api/1.0.0-beta.81/classes/_nymphjs_tilmeld.BadEmailError.html @@ -0,0 +1,14 @@ +BadEmailError | Nymph.js 1.0.0-beta.81

              Hierarchy (view full)

              Constructors

              Properties

              cause?: unknown
              message: string
              name: string
              stack?: string
              status?: number
              statusText?: string
              prepareStackTrace?: ((err, stackTraces) => any)

              Optional override for formatting stack traces

              +

              Type declaration

                • (err, stackTraces): any
                • Parameters

                  • err: Error
                  • stackTraces: CallSite[]

                  Returns any

              stackTraceLimit: number

              Methods

              • Create .stack property on a target object

                +

                Parameters

                • targetObject: object
                • Optional constructorOpt: Function

                Returns void

              \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/classes/_nymphjs_tilmeld.BadUsernameError.html b/static/api/1.0.0-beta.81/classes/_nymphjs_tilmeld.BadUsernameError.html new file mode 100644 index 0000000..8de7a9f --- /dev/null +++ b/static/api/1.0.0-beta.81/classes/_nymphjs_tilmeld.BadUsernameError.html @@ -0,0 +1,14 @@ +BadUsernameError | Nymph.js 1.0.0-beta.81

              Hierarchy (view full)

              Constructors

              Properties

              cause?: unknown
              message: string
              name: string
              stack?: string
              status?: number
              statusText?: string
              prepareStackTrace?: ((err, stackTraces) => any)

              Optional override for formatting stack traces

              +

              Type declaration

                • (err, stackTraces): any
                • Parameters

                  • err: Error
                  • stackTraces: CallSite[]

                  Returns any

              stackTraceLimit: number

              Methods

              • Create .stack property on a target object

                +

                Parameters

                • targetObject: object
                • Optional constructorOpt: Function

                Returns void

              \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/classes/_nymphjs_tilmeld.CouldNotChangeDefaultPrimaryGroupError.html b/static/api/1.0.0-beta.81/classes/_nymphjs_tilmeld.CouldNotChangeDefaultPrimaryGroupError.html new file mode 100644 index 0000000..e192b6e --- /dev/null +++ b/static/api/1.0.0-beta.81/classes/_nymphjs_tilmeld.CouldNotChangeDefaultPrimaryGroupError.html @@ -0,0 +1,12 @@ +CouldNotChangeDefaultPrimaryGroupError | Nymph.js 1.0.0-beta.81

              Hierarchy

              • Error
                • CouldNotChangeDefaultPrimaryGroupError

              Constructors

              Properties

              cause?: unknown
              message: string
              name: string
              stack?: string
              prepareStackTrace?: ((err, stackTraces) => any)

              Optional override for formatting stack traces

              +

              Type declaration

                • (err, stackTraces): any
                • Parameters

                  • err: Error
                  • stackTraces: CallSite[]

                  Returns any

              stackTraceLimit: number

              Methods

              • Create .stack property on a target object

                +

                Parameters

                • targetObject: object
                • Optional constructorOpt: Function

                Returns void

              \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/classes/_nymphjs_tilmeld.EmailChangeRateLimitExceededError.html b/static/api/1.0.0-beta.81/classes/_nymphjs_tilmeld.EmailChangeRateLimitExceededError.html new file mode 100644 index 0000000..097f28d --- /dev/null +++ b/static/api/1.0.0-beta.81/classes/_nymphjs_tilmeld.EmailChangeRateLimitExceededError.html @@ -0,0 +1,12 @@ +EmailChangeRateLimitExceededError | Nymph.js 1.0.0-beta.81

              Hierarchy

              • Error
                • EmailChangeRateLimitExceededError

              Constructors

              Properties

              cause?: unknown
              message: string
              name: string
              stack?: string
              prepareStackTrace?: ((err, stackTraces) => any)

              Optional override for formatting stack traces

              +

              Type declaration

                • (err, stackTraces): any
                • Parameters

                  • err: Error
                  • stackTraces: CallSite[]

                  Returns any

              stackTraceLimit: number

              Methods

              • Create .stack property on a target object

                +

                Parameters

                • targetObject: object
                • Optional constructorOpt: Function

                Returns void

              \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/classes/_nymphjs_tilmeld.Group.html b/static/api/1.0.0-beta.81/classes/_nymphjs_tilmeld.Group.html new file mode 100644 index 0000000..31a3170 --- /dev/null +++ b/static/api/1.0.0-beta.81/classes/_nymphjs_tilmeld.Group.html @@ -0,0 +1,319 @@ +Group | Nymph.js 1.0.0-beta.81

              A user group data model.

              +

              Written by Hunter Perrin for SciActive.

              +

              Author

              Hunter Perrin hperrin@gmail.com

              +

              Copyright

              SciActive Inc

              +

              See

              http://nymph.io/

              +

              Hierarchy (view full)

              Constructors

              Properties

              $allowlistData?: string[] = ...

              If this is defined, then it lists the only properties that will be +accepted from incoming JSON. Any other properties will be ignored.

              +

              If you use an allowlist, you don't need to use protectedData, since you +can simply leave those entries out of allowlistData.

              +
              $allowlistTags?: string[] = []

              If this is defined, then it lists the only tags that will be accepted from +incoming JSON. Any other tags will be ignored.

              +
              $clientEnabledMethods: string[] = ...

              The names of methods allowed to be called by the frontend with serverCall.

              +
              $data: GroupData

              The data proxy object.

              +
              $dataHandler: Object

              The data proxy handler.

              +
              $dataStore: GroupData

              The actual data store.

              +
              $isASleepingReference: boolean

              Whether this instance is a sleeping reference.

              +
              $nymph: Nymph

              The instance of Nymph to use for queries.

              +
              $privateData: string[] = ...

              Properties that will not be serialized into JSON with toJSON(). This +can be considered a denylist, because these properties will not be set +with incoming JSON.

              +

              Clients CAN still determine what is in these properties, unless they are +also listed in searchRestrictedData.

              +
              $protectedData: string[]

              Properties that can only be modified by server side code. They will still +be visible on the frontend, unlike $privateData, but any changes to them +that come from the frontend will be ignored.

              +

              In addition to what's listed here, all of the access control properties +will be included when Tilmeld is being used. These are:

              +
                +
              • acUser
              • +
              • acGroup
              • +
              • acOther
              • +
              • acRead
              • +
              • acWrite
              • +
              • acFull
              • +
              • user
              • +
              • group
              • +
              +

              You should modify these through client enabled methods or the $save method +instead, for safety.

              +
              $protectedTags: string[]

              Tags that can only be added/removed by server side code. They will still be +visible on the frontend, but any changes to them that come from the +frontend will be ignored.

              +

              The actual sdata store.

              +
              $skipAcWhenDeleting: boolean = false

              This should only be used by the backend.

              +
              $skipAcWhenSaving: boolean = false

              This should only be used by the backend.

              +
              $sleepingReference: null | EntityReference

              The reference to use to wake.

              +
              $tags: never[] = []
              $wakePromise: null | Promise<Entity<GroupData>>

              A promise that resolved when the entity's data is wake.

              +
              cdate: null | number

              The creation date of the entity as a Unix timestamp in milliseconds.

              +
              guid: null | string

              The entity's Globally Unique ID.

              +

              This is a 12 byte number represented as a lower case HEX string (24 +characters).

              +
              mdate: null | number

              The modified date of the entity as a Unix timestamp in milliseconds.

              +
              tags: string[]

              Array of the entity's tags.

              +
              DEFAULT_ALLOWLIST_DATA: string[] = []
              DEFAULT_PRIVATE_DATA: string[] = ...
              ETYPE: string = 'tilmeld_group'

              The instance of Tilmeld to use for queries.

              +
              class: string = 'Group'

              The lookup name for this entity.

              +

              This is used for reference arrays (and sleeping references) and client +requests.

              +
              clientEnabledStaticMethods: string[] = ...

              The names of static methods allowed to be called by the frontend with +serverCallStatic.

              +
              nymph: Nymph

              The instance of Nymph to use for queries.

              +
              pubSubEnabled: boolean

              Whether this entity should publish changes to PubSub servers.

              +
              restEnabled: boolean

              Whether this entity should be accessible on the frontend through the REST +server.

              +

              If this is false, any request from the client that attempts to use this +entity will fail.

              +
              searchRestrictedData: string[] = ...

              Properties that will not be searchable from the frontend. If the frontend +includes any of these properties in any of their clauses, they will be +filtered out before the search is executed.

              +

              Methods

              • Add one or more tags.

                +

                Parameters

                • Rest ...tags: string[]

                  List of tags.

                  +

                Returns void

              • Search the array for this object and return the corresponding index.

                +

                If strict is false, is() is used to compare. If strict is true, +equals() is used.

                +

                Parameters

                • array: any[]

                  The array to search.

                  +
                • Optional strict: boolean

                  Whether to use stronger comparison.

                  +

                Returns number

                The index if the object is in the array, -1 if it isn't.

                +
              • Check if this is a sleeping reference.

                +

                Returns boolean

              • Check if this is a sleeping reference and throw an error if so.

                +

                Returns void

              • Check that an email is unique.

                +

                Returns Promise<{
                    message: string;
                    result: boolean;
                }>

                An object with a boolean 'result' entry and a 'message' entry.

                +
              • Check that a groupname is valid.

                +

                Returns Promise<{
                    message: string;
                    result: boolean;
                }>

                An object with a boolean 'result' entry and a 'message' entry.

                +
              • Replace any referenced entities in the data with sleeping references.

                +

                Calling this function ensures that the next time a referenced entity is +accessed, it will be retrieved from the DB (unless it is in Nymph's cache).

                +

                Returns void

              • Perform a more strict comparison of this object to another.

                +

                Parameters

                • object: any

                  The object to compare.

                  +

                Returns boolean

                True or false.

                +
              • Returns null | (null | string)[]

              • Returns any

              • Returns null | (null | string)[]

              • Returns any

              • Returns null | (null | string)[]

              • Get the client enabled methods.

                +

                Returns string[]

                The names of methods allowed to be called by the frontend with serverCall.

                +
              • Used to retrieve the data object.

                +

                This should only be used by Nymph to save the data into storage.

                +

                Parameters

                • Optional includeSData: boolean

                  Whether to include the serialized data as well.

                  +

                Returns any

                The entity's data object.

                +
              • Get the number of parents the group has.

                +

                If the group is a top level group, this will return 0. If it is a child of +a top level group, this will return 1. If it is a grandchild of a top level +group, this will return 2, and so on.

                +

                Levels will max out at 1024 to avoid recursive loops.

                +

                Returns Promise<number>

                The level of the group.

                +
              • Used to retrieve the serialized data object.

                +

                This should only be used by Nymph to save the data object into storage.

                +

                This method is used by Nymph to avoid unserializing data that hasn't been +requested yet.

                +

                It should always be called after getData().

                +

                Returns SerializedEntityData

                The entity's serialized data object.

                +
              • Get the entity's tags.

                +

                Using this instead of accessing the tags prop directly will wake sleeping +references.

                +

                Returns string[]

                The entity's tags.

                +
              • Get an array of strings that must be unique across the current etype.

                +

                When you try to save another entity with any of the same unique strings, +Nymph will throw an error.

                +

                The default implementation of this method returns an empty array, meaning +there are no uniqueness constraints applied to its etype.

                +

                Returns Promise<string[]>

                Resolves to an array of entity's unique constraint strings.

                +
              • Gets an array of users in the group.

                +

                Parameters

                • descendants: boolean = false

                  Include users in all descendant groups too.

                  +
                • Optional limit: number

                  The limit for the query.

                  +
                • Optional offset: number

                  The offset for the query.

                  +

                Returns Promise<(User & UserData)[]>

                An array of users.

                +
              • Get an object that holds the same data as the entity.

                +

                This provides an object that can be validated.

                +

                Returns any

                A pure object representation of the entity.

                +
              • Check that the entity has all of the given tags.

                +

                Parameters

                • Rest ...tags: string[]

                  List of tags.

                  +

                Returns boolean

                True or false.

                +
              • Check whether this object is in an array.

                +

                If strict is false, is() is used to compare. If strict is true, +equals() is used.

                +

                Parameters

                • array: any[]

                  The array to search.

                  +
                • Optional strict: boolean

                  Whether to use stronger comparison.

                  +

                Returns boolean

                True if the object is in the array, false if it isn't.

                +
              • Perform a less strict comparison of this object to another.

                +

                Parameters

                • object: any

                  The object to compare.

                  +

                Returns boolean

                True or false.

                +
              • Accept JSON data from the client.

                +

                This function uses the security protection lists:

                +
                  +
                • $protectedTags
                • +
                • $protectedData
                • +
                • $allowlistTags
                • +
                • $allowlistData
                • +
                +

                Parameters

                • input: EntityJson

                  The input data. Please note, this will be modified (destroyed).

                  +
                • allowConflict: boolean = false

                  Allow to accept data that is older than the current data.

                  +

                Returns void

              • Accept JSON patch from the client.

                +

                This function uses the security protection lists:

                +
                  +
                • $protectedTags
                • +
                • $protectedData
                • +
                • $allowlistTags
                • +
                • $allowlistData
                • +
                +

                Parameters

                • patch: EntityPatch

                  The patch data. Please note, this will be modified (destroyed).

                  +
                • allowConflict: boolean = false

                  Allow to accept data that is older than the current data.

                  +

                Returns void

              • Refresh the object from storage. (Bypasses Nymph's cache.)

                +

                If the object has been deleted from storage, the database cannot be +reached, or a database error occurs, refresh() will return 0.

                +

                Returns Promise<boolean | 0>

                False if the data has not been saved, 0 if it can't be refreshed, true on success.

                +
              • Remove one or more tags.

                +

                Parameters

                • Rest ...tags: string[]

                  List of tags.

                  +

                Returns void

              • Return a Nymph Entity Reference for this entity.

                +

                If the entity hasn't been saved yet (and has no GUID), it will be +returned instead.

                +

                Returns Group | EntityReference

                A Nymph Entity Reference array as an unsaved entity.

                +
              • Update the data protection arrays for a user.

                +

                Parameters

                • Optional givenUser: User & UserData

                  User to update protection for. If undefined, will use the currently logged in user.

                  +

                Returns void

              • Set whether to use "skipAc" when accessing entity references.

                +

                Parameters

                • skipAc: boolean

                  True or false, whether to use it.

                  +

                Returns void

              • Alter the options for a query for this entity.

                +

                Type Parameters

                Parameters

                • options: T

                  The current options.

                  +

                Returns T

                The altered options.

                +
              • Create or retrieve a new entity instance.

                +

                Note that this will always return an entity, even if the GUID is not found.

                +

                Type Parameters

                Parameters

                • this: (new () => E)
                    • new (): E
                    • Returns E

                • Optional guid: string

                  An optional GUID to retrieve.

                  +

                Returns Promise<E & EntityDataType<E>>

              • Create a new sleeping reference instance.

                +

                Sleeping references won't retrieve their data from the database until they +are readied with $wake() or a parent's $wakeAll().

                +

                Type Parameters

                Parameters

                • this: (new () => E)
                    • new (): E
                    • Returns E

                • reference: EntityReference

                  The Nymph Entity Reference to use to wake.

                  +

                Returns E & EntityDataType<E>

                The new instance.

                +
              • Get all the groups that can be assigned as primary groups.

                +

                Parameters

                • Optional options: Options

                  The options for an optional search query.

                  +
                • Optional selectors: Selector[]

                  The selectors for an optional search query.

                  +

                Returns Promise<(Group & GroupData)[]>

                An array of the assignable primary groups.

                +
              • Get all the groups that can be assigned as secondary groups.

                +

                Parameters

                • Optional options: Options

                  The options for an optional search query.

                  +
                • Optional selectors: Selector[]

                  The selectors for an optional search query.

                  +

                Returns Promise<(Group & GroupData)[]>

                An array of the assignable secondary groups.

                +
              • Get an array of strings that must be unique across the current etype.

                +

                When you try to save another entity with any of the same unique strings, +Nymph will throw an error.

                +

                The default implementation of this static method instantiates the entity, +assigns all of the given data, then calls $getUniques and returns its +output. This can have a performance impact if a lot of extra processing +happens during any of these steps. You can override this method to +calculate the unique strings faster, but you must return the same strings +that would be returned by $getUniques.

                +

                Parameters

                • __namedParameters: {
                      cdate?: number;
                      data: EntityData;
                      guid?: string;
                      mdate?: number;
                      sdata?: SerializedEntityData;
                      tags: string[];
                  }

                Returns Promise<string[]>

                Resolves to an array of entity's unique constraint strings.

                +
              \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/classes/_nymphjs_tilmeld.Tilmeld.html b/static/api/1.0.0-beta.81/classes/_nymphjs_tilmeld.Tilmeld.html new file mode 100644 index 0000000..fd2a8d8 --- /dev/null +++ b/static/api/1.0.0-beta.81/classes/_nymphjs_tilmeld.Tilmeld.html @@ -0,0 +1,171 @@ +Tilmeld | Nymph.js 1.0.0-beta.81

              A user and group system for Nymph.js.

              +

              Written by Hunter Perrin for SciActive.

              +

              Author

              Hunter Perrin hperrin@gmail.com

              +

              Copyright

              SciActive Inc

              +

              See

              http://nymph.io/

              +

              Implements

              Constructors

              Properties

              Group: typeof Group = Group

              The group class for this instance of Tilmeld.

              +
              User: typeof User = User

              The user class for this instance of Tilmeld.

              +
              alreadyLoggedOutSwitch: boolean = false

              Used to avoid infinite loop.

              +
              config: Config

              The Tilmeld config.

              +
              currentUser: null | User & UserData = null

              The currently logged in user.

              +
              gatekeeperCache: null | {
                  [k: string]: true;
              } = null

              Gatekeeper ability cache.

              +

              Gatekeeper will cache the user's abilities that it calculates, so it can +check faster if that user has been checked before.

              +

              Type declaration

              • [k: string]: true
              nymph: Nymph = ...

              The Nymph instance.

              +
              request: null | Request<ParamsDictionary, any, any, ParsedQs, Record<string, any>> = null

              If you will be performing authentication functions (logging in/out), you +should set these so Tilmeld can read and write cookies and headers.

              +

              If you want the user to be authenticated with the cookie and/or header they +provide, you should set at least the request. It's better to set both, so +the JWT can be updated if needed.

              +

              After you set these, call authenticate() to read user authentication data +from them and fill the user's session.

              +

              If you want to support cookie based authentication (which still requires an +XSRF token for security), you should enable the cookie parser middleware.

              +
              response: null | Response<any, Record<string, any>> = null

              Methods

              • Check for TILMELDAUTH and TILMELDSWITCH tokens, and, if set, authenticate +from it/them.

                +

                You can also call this function after setting response.locals.user to the +user you want to authenticate. You should check for user.enabled before +setting this variable, unless you explicitly want to log in as a disabled +user. (The user must be an instance of the User class for this Tilmeld +instance.)

                +

                This function will set response.locals.user to the logged in user on +successful authentication.

                +

                Parameters

                • skipXsrfToken: boolean = false

                  Skip the XSRF token check.

                  +
                • skipRenew: boolean = false

                  Skip the token renewal step, even if the token is close to expiration.

                  +

                Returns Promise<boolean>

                True if a user was authenticated, false on any failure.

                +
              • Check a UID's permissions for a user.

                +

                THIS ONLY CHECKS AUTOMATICALLY FOR CLIENT REQUESTS.

                UID functions on the Node.js side are not checked automatically. This +function is only run automatically for UID functions run from the client. +You should call this function manually if you're running a UID function on +the Node.js side and you want it gated.

                +

                This will check the Tilmeld config and the user's abilities.

                +
                  +
                • READ_ACCESS, the UID is listed in clientReadableUIDs or the user has the +"uid/get/nameofuid" ability.
                • +
                • WRITE_ACCESS, the UID is listed in clientEnabledUIDs or the user has the +"uid/new/nameofuid" ability.
                • +
                • FULL_ACCESS, the UID is listed in clientSetabledUIDs or the user has the +"uid/set/nameofuid" ability.
                • +
                +

                Parameters

                • name: string

                  The UID to check.

                  +
                • type: TilmeldAccessLevels = TilmeldAccessLevels.READ_ACCESS

                  The lowest level of permission to consider a pass.

                  +
                • Optional user: false | User & UserData

                  The user to check permissions for. If null, uses the current user. If false, checks for public access.

                  +

                Returns Promise<boolean>

                Whether the current user has at least type permission for the UID.

                +
              • Check an entity's permissions for a user.

                +

                This will check the AC (Access Control) properties of the entity. These +include the following properties:

                +
                  +
                • acUser
                • +
                • acGroup
                • +
                • acOther
                • +
                • acRead
                • +
                • acWrite
                • +
                • acFull
                • +
                +

                "acUser" refers to the entity's owner, "acGroup" refers to all users in the +entity's group and all ancestor groups, and "acOther" refers to any user +who doesn't fit these descriptions.

                +

                Each of these properties should be either NO_ACCESS, READ_ACCESS, +WRITE_ACCESS, or FULL_ACCESS.

                +
                  +
                • NO_ACCESS - the user has no access to the entity.
                • +
                • READ_ACCESS, the user has read access to the entity.
                • +
                • WRITE_ACCESS, the user has read and write access to the entity, but can't +delete it, change its access controls, or change its ownership.
                • +
                • FULL_ACCESS, the user has read, write, and delete access to the entity, +as well as being able to manage its access controls and ownership.
                • +
                +

                These properties default to:

                +
                  +
                • acUser = TilmeldAccessLevels.FULL_ACCESS
                • +
                • acGroup = TilmeldAccessLevels.READ_ACCESS
                • +
                • acOther = TilmeldAccessLevels.NO_ACCESS
                • +
                +

                "acRead", "acWrite", and "acFull" are arrays of users and/or groups that +also have those permissions.

                +

                Only users with FULL_ACCESS have the ability to change any of the ac*, +user, and group properties.

                +

                The following conditions will result in different checks, which determine +whether the check passes:

                +
                  +
                • It is a user or group. (True for READ_ACCESS or Tilmeld admins.)
                • +
                • No user is logged in. (Check other AC.)
                • +
                • The entity is the user. (Always true.)
                • +
                • It is the user's primary group. (True for READ_ACCESS.)
                • +
                • The user or its groups are listed in "acRead". (True for READ_ACCESS.)
                • +
                • The user or its groups are listed in "acWrite". (True for READ_ACCESS and +WRITE_ACCESS.)
                • +
                • The user or its groups are listed in "acFull". (Always true.)
                • +
                • Its "user" is the user. (It is owned by the user.) (Check user AC.)
                • +
                • Its "group" is the user's primary group. (Check group AC.)
                • +
                • Its "group" is one of the user's secondary groups. (Check group AC.)
                • +
                • Its "group" is a descendant of one of the user's groups. (Check group +AC.)
                • +
                • None of the above. (Check other AC.)
                • +
                +

                Parameters

                • entity: EntityInterface

                  The entity to check.

                  +
                • type: TilmeldAccessLevels = TilmeldAccessLevels.READ_ACCESS

                  The lowest level of permission to consider a pass.

                  +
                • Optional user: false | User & UserData

                  The user to check permissions for. If null, uses the current user. If false, checks for public access.

                  +
                • Optional acProperties: ACProperties

                  The acProperties to use instead of getting them from the entity.

                  +

                Returns boolean

                Whether the current user has at least type permission for the entity.

                +
              • Check to see if the current user has an ability.

                +

                If ability is undefined, it will check to see if a user is currently +logged in.

                +

                Parameters

                • Optional ability: string

                  The ability.

                  +

                Returns boolean

                Whether the user has the given ability.

                +
              • Logs the given user into the system.

                +

                Parameters

                • user: User & UserData

                  The user.

                  +
                • sendAuthHeader: boolean

                  Send the auth token as a custom header.

                  +
                • sendCookie: boolean = true

                  Send the auth token as a cookie.

                  +

                Returns Promise<boolean>

                True on success, false on failure.

                +
              • Adds a switch auth token for the given user.

                +

                This effectively logs the current user in to the system as the given user.

                +

                Parameters

                • user: User & UserData

                  The user.

                  +
                • sendAuthHeader: boolean

                  Send the auth token as a custom header.

                  +
                • sendCookie: boolean = true

                  Send the auth token as a cookie.

                  +

                Returns Promise<boolean>

                True on success, false on failure.

                +
              • Logs the current user out of the system.

                +

                Parameters

                • clearCookie: boolean = true

                  Clear the auth cookie. (Also send a header.)

                  +

                Returns Promise<void>

              • Clears the switch user out of the system.

                +

                Parameters

                • clearCookie: boolean = true

                  Clear the auth cookie. (Also send a header.)

                  +

                Returns Promise<void>

              \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/classes/_nymphjs_tilmeld.User.html b/static/api/1.0.0-beta.81/classes/_nymphjs_tilmeld.User.html new file mode 100644 index 0000000..b53e39c --- /dev/null +++ b/static/api/1.0.0-beta.81/classes/_nymphjs_tilmeld.User.html @@ -0,0 +1,394 @@ +User | Nymph.js 1.0.0-beta.81

              A user data model.

              +

              Written by Hunter Perrin for SciActive.

              +

              Author

              Hunter Perrin hperrin@gmail.com

              +

              Copyright

              SciActive Inc

              +

              See

              http://nymph.io/

              +

              Hierarchy (view full)

              Constructors

              Properties

              Methods

              Constructors

              Properties

              $allowlistData?: string[] = ...

              If this is defined, then it lists the only properties that will be +accepted from incoming JSON. Any other properties will be ignored.

              +

              If you use an allowlist, you don't need to use protectedData, since you +can simply leave those entries out of allowlistData.

              +
              $allowlistTags?: string[] = []

              If this is defined, then it lists the only tags that will be accepted from +incoming JSON. Any other tags will be ignored.

              +
              $clientEnabledMethods: string[] = ...

              The names of methods allowed to be called by the frontend with serverCall.

              +
              $data: UserData

              The data proxy object.

              +
              $dataHandler: Object

              The data proxy handler.

              +
              $dataStore: UserData

              The actual data store.

              +
              $descendantGroups?: (Group & GroupData)[]

              The user's group descendants.

              +
              $gatekeeperCache?: {
                  [k: string]: true;
              }

              Gatekeeper ability cache.

              +

              Gatekeeper will cache the user's abilities that it calculates, so it can +check faster if that user has been checked before.

              +

              Type declaration

              • [k: string]: true
              $isASleepingReference: boolean

              Whether this instance is a sleeping reference.

              +
              $nymph: Nymph

              The instance of Nymph to use for queries.

              +
              $originalEmail?: string

              Used to save the current email address to send verification if it changes +from the frontend.

              +

              If you are changing a user's email address and want to bypass email +verification, don't set this.

              +
              $privateData: string[] = ...

              Properties that will not be serialized into JSON with toJSON(). This +can be considered a denylist, because these properties will not be set +with incoming JSON.

              +

              Clients CAN still determine what is in these properties, unless they are +also listed in searchRestrictedData.

              +
              $protectedData: string[]

              Properties that can only be modified by server side code. They will still +be visible on the frontend, unlike $privateData, but any changes to them +that come from the frontend will be ignored.

              +

              In addition to what's listed here, all of the access control properties +will be included when Tilmeld is being used. These are:

              +
                +
              • acUser
              • +
              • acGroup
              • +
              • acOther
              • +
              • acRead
              • +
              • acWrite
              • +
              • acFull
              • +
              • user
              • +
              • group
              • +
              +

              You should modify these through client enabled methods or the $save method +instead, for safety.

              +
              $protectedTags: string[]

              Tags that can only be added/removed by server side code. They will still be +visible on the frontend, but any changes to them that come from the +frontend will be ignored.

              +

              The actual sdata store.

              +
              $skipAcWhenDeleting: boolean = false

              This should only be used by the backend.

              +
              $skipAcWhenSaving: boolean = false

              This should only be used by the backend.

              +
              $sleepingReference: null | EntityReference

              The reference to use to wake.

              +
              $wakePromise: null | Promise<Entity<UserData>>

              A promise that resolved when the entity's data is wake.

              +
              cdate: null | number

              The creation date of the entity as a Unix timestamp in milliseconds.

              +
              guid: null | string

              The entity's Globally Unique ID.

              +

              This is a 12 byte number represented as a lower case HEX string (24 +characters).

              +
              mdate: null | number

              The modified date of the entity as a Unix timestamp in milliseconds.

              +
              tags: string[]

              Array of the entity's tags.

              +
              DEFAULT_ALLOWLIST_DATA: string[] = []
              DEFAULT_CLIENT_ENABLED_METHODS: string[] = ...
              DEFAULT_PRIVATE_DATA: string[] = ...
              ETYPE: string = 'tilmeld_user'

              The instance of Tilmeld to use for queries.

              +
              afterLoginCallbacks: TilmeldAfterLoginCallback[] = []
              afterLogoutCallbacks: TilmeldAfterLogoutCallback[] = []
              afterRegisterCallbacks: TilmeldAfterRegisterCallback[] = []
              beforeLoginCallbacks: TilmeldBeforeLoginCallback[] = []
              beforeLogoutCallbacks: TilmeldBeforeLogoutCallback[] = []
              beforeRegisterCallbacks: TilmeldBeforeRegisterCallback[] = []
              checkUsernameCallbacks: TilmeldCheckUsernameCallback[] = []
              class: string = 'User'

              The lookup name for this entity.

              +

              This is used for reference arrays (and sleeping references) and client +requests.

              +
              clientEnabledStaticMethods: string[] = ...

              The names of static methods allowed to be called by the frontend with +serverCallStatic.

              +
              nymph: Nymph

              The instance of Nymph to use for queries.

              +
              pubSubEnabled: boolean

              Whether this entity should publish changes to PubSub servers.

              +
              restEnabled: boolean

              Whether this entity should be accessible on the frontend through the REST +server.

              +

              If this is false, any request from the client that attempts to use this +entity will fail.

              +
              searchRestrictedData: string[] = ...

              Properties that will not be searchable from the frontend. If the frontend +includes any of these properties in any of their clauses, they will be +filtered out before the search is executed.

              +

              Methods

              • Add one or more tags.

                +

                Parameters

                • Rest ...tags: string[]

                  List of tags.

                  +

                Returns void

              • Search the array for this object and return the corresponding index.

                +

                If strict is false, is() is used to compare. If strict is true, +equals() is used.

                +

                Parameters

                • array: any[]

                  The array to search.

                  +
                • Optional strict: boolean

                  Whether to use stronger comparison.

                  +

                Returns number

                The index if the object is in the array, -1 if it isn't.

                +
              • Check if this is a sleeping reference.

                +

                Returns boolean

              • A frontend accessible method to change the user's password.

                +

                Parameters

                • data: {
                      currentPassword: string;
                      newPassword: string;
                      revokeCurrentTokens?: boolean;
                  }

                  The input data from the client.

                  +
                  • currentPassword: string
                  • newPassword: string
                  • Optional revokeCurrentTokens?: boolean

                Returns Promise<{
                    message: string;
                    result: boolean;
                }>

                An object with a boolean 'result' entry and a 'message' entry.

                +
              • Check if this is a sleeping reference and throw an error if so.

                +

                Returns void

              • Check that an email is unique.

                +

                Returns Promise<{
                    message: string;
                    result: boolean;
                }>

                An object with a boolean 'result' entry and a 'message' entry.

                +
              • Check the given password against the user's.

                +

                Parameters

                • password: string

                  The password in question.

                  +

                Returns boolean

                True if the passwords match, otherwise false.

                +
              • Check that a phone number is unique.

                +

                Returns Promise<{
                    message: string;
                    result: boolean;
                }>

                An object with a boolean 'result' entry and a 'message' entry.

                +
              • Check the given code against the user's TOTP secret.

                +

                Parameters

                • code: string

                  The code in question.

                  +

                Returns boolean

                True if the code is valid, otherwise false.

                +
              • Check that a username is valid.

                +

                Returns Promise<{
                    message: string;
                    result: boolean;
                }>

                An object with a boolean 'result' entry and a 'message' entry.

                +
              • Replace any referenced entities in the data with sleeping references.

                +

                Calling this function ensures that the next time a referenced entity is +accessed, it will be retrieved from the DB (unless it is in Nymph's cache).

                +

                Returns void

              • Perform a more strict comparison of this object to another.

                +

                Parameters

                • object: any

                  The object to compare.

                  +

                Returns boolean

                True or false.

                +
              • Check to see if a user has an ability.

                +

                This function will check both user and group abilities, if the user is +marked to inherit the abilities of its group.

                +

                If ability is undefined, it will check to see if the user is currently +logged in.

                +

                If the user has the "system/admin" ability, this function will return true.

                +

                Parameters

                • Optional ability: string

                  The ability.

                  +

                Returns Promise<boolean>

                True or false.

                +
              • Returns null | (null | string)[]

              • Returns any

              • Returns null | (null | string)[]

              • Returns any

              • Returns null | (null | string)[]

              • Get the client enabled methods.

                +

                Returns string[]

                The names of methods allowed to be called by the frontend with serverCall.

                +
              • Used to retrieve the data object.

                +

                This should only be used by Nymph to save the data into storage.

                +

                Parameters

                • Optional includeSData: boolean

                  Whether to include the serialized data as well.

                  +

                Returns any

                The entity's data object.

                +
              • Build a gatekeeper cache object.

                +

                Returns Promise<{
                    [k: string]: T;
                }>

              • A frontend accessible method to generate a new TOTP secret.

                +

                Returns Promise<{
                    qrcode: string;
                    secret: string;
                    uri: string;
                }>

                An object with 'uri', 'qrcode', and 'secret'.

                +
              • Used to retrieve the serialized data object.

                +

                This should only be used by Nymph to save the data object into storage.

                +

                This method is used by Nymph to avoid unserializing data that hasn't been +requested yet.

                +

                It should always be called after getData().

                +

                Returns SerializedEntityData

                The entity's serialized data object.

                +
              • Get the entity's tags.

                +

                Using this instead of accessing the tags prop directly will wake sleeping +references.

                +

                Returns string[]

                The entity's tags.

                +
              • Get an array of strings that must be unique across the current etype.

                +

                When you try to save another entity with any of the same unique strings, +Nymph will throw an error.

                +

                The default implementation of this method returns an empty array, meaning +there are no uniqueness constraints applied to its etype.

                +

                Returns Promise<string[]>

                Resolves to an array of entity's unique constraint strings.

                +
              • Get an object that holds the same data as the entity.

                +

                This provides an object that can be validated.

                +

                Returns any

                A pure object representation of the entity.

                +
              • Check that the entity has all of the given tags.

                +

                Parameters

                • Rest ...tags: string[]

                  List of tags.

                  +

                Returns boolean

                True or false.

                +
              • Check whether this object is in an array.

                +

                If strict is false, is() is used to compare. If strict is true, +equals() is used.

                +

                Parameters

                • array: any[]

                  The array to search.

                  +
                • Optional strict: boolean

                  Whether to use stronger comparison.

                  +

                Returns boolean

                True if the object is in the array, false if it isn't.

                +
              • Check whether the user is in a (primary or secondary) group.

                +

                Parameters

                Returns Promise<boolean>

                True or false.

                +
              • Perform a less strict comparison of this object to another.

                +

                Parameters

                • object: any

                  The object to compare.

                  +

                Returns boolean

                True or false.

                +
              • Check whether the user is a descendant of a group.

                +

                Parameters

                Returns Promise<boolean>

                True or false.

                +
              • Accept JSON data from the client.

                +

                This function uses the security protection lists:

                +
                  +
                • $protectedTags
                • +
                • $protectedData
                • +
                • $allowlistTags
                • +
                • $allowlistData
                • +
                +

                Parameters

                • input: EntityJson

                  The input data. Please note, this will be modified (destroyed).

                  +
                • allowConflict: boolean = false

                  Allow to accept data that is older than the current data.

                  +

                Returns void

              • Accept JSON patch from the client.

                +

                This function uses the security protection lists:

                +
                  +
                • $protectedTags
                • +
                • $protectedData
                • +
                • $allowlistTags
                • +
                • $allowlistData
                • +
                +

                Parameters

                • patch: EntityPatch

                  The patch data. Please note, this will be modified (destroyed).

                  +
                • allowConflict: boolean = false

                  Allow to accept data that is older than the current data.

                  +

                Returns void

              • Parameters

                • data: {
                      additionalData?: {
                          [k: string]: any;
                      };
                      code?: string;
                      password: string;
                      username: string;
                  }
                  • Optional additionalData?: {
                        [k: string]: any;
                    }
                    • [k: string]: any
                  • Optional code?: string
                  • password: string
                  • username: string

                Returns Promise<{
                    message: string;
                    needTOTP: boolean;
                    result: boolean;
                } | {
                    message: any;
                    needTOTP?: undefined;
                    result: boolean;
                }>

              • Log a user out of the system.

                +

                Returns Promise<{
                    message: any;
                    result: boolean;
                }>

                An object with a boolean 'result' entry and a 'message' entry.

                +
              • Change the user's password.

                +

                Parameters

                • password: string

                  The new password.

                  +

                Returns string

                The resulting password or hash which is stored in the entity.

                +
              • Refresh the object from storage. (Bypasses Nymph's cache.)

                +

                If the object has been deleted from storage, the database cannot be +reached, or a database error occurs, refresh() will return 0.

                +

                Returns Promise<boolean | 0>

                False if the data has not been saved, 0 if it can't be refreshed, true on success.

                +
              • Parameters

                • data: {
                      additionalData?: {
                          [k: string]: any;
                      };
                      password: string;
                  }
                  • Optional additionalData?: {
                        [k: string]: any;
                    }
                    • [k: string]: any
                  • password: string

                Returns Promise<{
                    loggedin: boolean;
                    message: string;
                    result: boolean;
                }>

              • A frontend accessible method to remove the TOTP secret from the user's +account.

                +

                Parameters

                • Optional data: {
                      code: string;
                      password: string;
                  }

                  The input data from the client.

                  +
                  • code: string
                  • password: string

                Returns Promise<{
                    message: string;
                    result: boolean;
                }>

                An object with a boolean 'result' entry and a 'message' entry.

                +
              • Remove one or more tags.

                +

                Parameters

                • Rest ...tags: string[]

                  List of tags.

                  +

                Returns void

              • A frontend accessible method to revoke all currently issued tokens.

                +

                Parameters

                • data: {
                      password: string;
                  }

                  The input data from the client.

                  +
                  • password: string

                Returns Promise<{
                    message: string;
                    result: boolean;
                }>

                An object with a boolean 'result' entry and a 'message' entry.

                +
              • A frontend accessible method to save a TOTP secret into the user's account.

                +

                Parameters

                • data: {
                      code: string;
                      password: string;
                      secret: string;
                  }

                  The input data from the client.

                  +
                  • code: string
                  • password: string
                  • secret: string

                Returns Promise<{
                    message: string;
                    result: boolean;
                }>

                An object with a boolean 'result' entry and a 'message' entry.

                +
              • Send the user email verification/change/cancellation links.

                +

                Returns Promise<boolean>

                True on success, false on failure.

                +
              • Parameters

                • Optional data: {
                      additionalData?: {
                          [k: string]: any;
                      };
                  }
                  • Optional additionalData?: {
                        [k: string]: any;
                    }
                    • [k: string]: any

                Returns Promise<{
                    message: any;
                    result: boolean;
                }>

              • Return a Nymph Entity Reference for this entity.

                +

                If the entity hasn't been saved yet (and has no GUID), it will be +returned instead.

                +

                Returns User | EntityReference

                A Nymph Entity Reference array as an unsaved entity.

                +
              • Update the data protection arrays for a user.

                +

                Parameters

                • Optional givenUser: User & UserData

                  User to update protection for. If undefined, will use the currently logged in user.

                  +

                Returns void

              • Set whether to use "skipAc" when accessing entity references.

                +

                Parameters

                • skipAc: boolean

                  True or false, whether to use it.

                  +

                Returns void

              • Alter the options for a query for this entity.

                +

                Type Parameters

                Parameters

                • options: T

                  The current options.

                  +

                Returns T

                The altered options.

                +
              • Create or retrieve a new entity instance.

                +

                Note that this will always return an entity, even if the GUID is not found.

                +

                Type Parameters

                Parameters

                • this: (new () => E)
                    • new (): E
                    • Returns E

                • Optional guid: string

                  An optional GUID to retrieve.

                  +

                Returns Promise<E & EntityDataType<E>>

              • Create a new sleeping reference instance.

                +

                Sleeping references won't retrieve their data from the database until they +are readied with $wake() or a parent's $wakeAll().

                +

                Type Parameters

                Parameters

                • this: (new () => E)
                    • new (): E
                    • Returns E

                • reference: EntityReference

                  The Nymph Entity Reference to use to wake.

                  +

                Returns E & EntityDataType<E>

                The new instance.

                +
              • Returns {
                    allowRegistration: boolean;
                    allowUsernameChange: boolean;
                    emailUsernames: boolean;
                    pwRecovery: boolean;
                    regFields: string[];
                    unverifiedAccess: boolean;
                    userFields: string[];
                    verifyEmail: boolean;
                }

                • allowRegistration: boolean
                • allowUsernameChange: boolean
                • emailUsernames: boolean
                • pwRecovery: boolean
                • regFields: string[]
                • unverifiedAccess: boolean
                • userFields: string[]
                • verifyEmail: boolean
              • Get an array of strings that must be unique across the current etype.

                +

                When you try to save another entity with any of the same unique strings, +Nymph will throw an error.

                +

                The default implementation of this static method instantiates the entity, +assigns all of the given data, then calls $getUniques and returns its +output. This can have a performance impact if a lot of extra processing +happens during any of these steps. You can override this method to +calculate the unique strings faster, but you must return the same strings +that would be returned by $getUniques.

                +

                Parameters

                • __namedParameters: {
                      cdate?: number;
                      data: EntityData;
                      guid?: string;
                      mdate?: number;
                      sdata?: SerializedEntityData;
                      tags: string[];
                  }

                Returns Promise<string[]>

                Resolves to an array of entity's unique constraint strings.

                +
              • Parameters

                • data: {
                      additionalData?: {
                          [k: string]: any;
                      };
                      code?: string;
                      password: string;
                      username: string;
                  }
                  • Optional additionalData?: {
                        [k: string]: any;
                    }
                    • [k: string]: any
                  • Optional code?: string
                  • password: string
                  • username: string

                Returns Promise<{
                    message: string;
                    result: boolean;
                    user?: User & UserData;
                }>

              • Recover account details.

                +

                Parameters

                • data: {
                      password: string;
                      secret: string;
                      username: string;
                  }

                  The input data from the client.

                  +
                  • password: string
                  • secret: string
                  • username: string

                Returns Promise<{
                    message: string;
                    result: boolean;
                }>

                An object with a boolean 'result' entry and a 'message' entry.

                +
              • Send an account recovery link.

                +

                Parameters

                • data: {
                      account: string;
                      recoveryType: "password" | "username";
                  }

                  The input data from the client.

                  +
                  • account: string
                  • recoveryType: "password" | "username"

                Returns Promise<{
                    message: string;
                    result: boolean;
                }>

                An object with a boolean 'result' entry and a 'message' entry.

                +
              \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/classes/_nymphjs_tilmeld_client.Group.html b/static/api/1.0.0-beta.81/classes/_nymphjs_tilmeld_client.Group.html new file mode 100644 index 0000000..b00c33e --- /dev/null +++ b/static/api/1.0.0-beta.81/classes/_nymphjs_tilmeld_client.Group.html @@ -0,0 +1,144 @@ +Group | Nymph.js 1.0.0-beta.81

              Entity interface.

              +

              Hierarchy (view full)

              Constructors

              Properties

              $data: GroupData

              The data proxy object.

              +
              $dataHandler: Object

              The data proxy handler.

              +
              $dataStore: GroupData

              The actual data store.

              +
              $dirty: {
                  [k: string]: boolean;
              }

              A map of props to whether they're dirty (for patch).

              +

              Type declaration

              • [k: string]: boolean
              $isASleepingReference: boolean

              Whether this instance is a sleeping reference.

              +
              $nymph: Nymph

              The instance of Nymph to use for queries.

              +
              $originalTags: string[]

              Array of the entity's original tags (for patch).

              +
              $sleepingReference: null | EntityReference

              The reference to use to wake.

              +
              $wakePromise: null | Promise<Entity<GroupData>>

              A promise that resolved when the entity's data is wake.

              +
              cdate: null | number

              The creation date of the entity as a high precision Unix timestamp.

              +
              guid: null | string

              The entity's Globally Unique ID.

              +
              mdate: null | number

              The modified date of the entity as a high precision Unix timestamp.

              +
              tags: string[]

              Array of the entity's tags.

              +
              class: string = 'Group'

              The lookup name for this entity.

              +

              This is used for reference arrays (and sleeping references) and server +requests.

              +
              nymph: Nymph

              The instance of Nymph to use for queries.

              +

              Methods

              • Add one or more tags.

                +

                Parameters

                • Rest ...tags: string[]

                  List of tags.

                  +

                Returns void

              • Search the array for this object and return the corresponding index.

                +

                If strict is false, is() is used to compare. If strict is true, +equals() is used.

                +

                Parameters

                • array: any[]

                  The array to search.

                  +
                • Optional strict: boolean

                  Whether to use stronger comparison.

                  +

                Returns number

                The index if the object is in the array, -1 if it isn't.

                +
              • Check if this is a sleeping reference.

                +

                Returns boolean

              • Check if this is a sleeping reference and throw an error if so.

                +

                Returns void

              • Returns Promise<{
                    message: string;
                    result: boolean;
                }>

              • Delete the object from storage.

                +

                Returns Promise<boolean>

                True on success, false on failure.

                +
              • Perform a more strict comparison of this object to another.

                +

                Parameters

                • object: any

                  The object to compare.

                  +

                Returns boolean

                True or false.

                +
              • Get a patch of this entity's dirty data to be applied on the server.

                +

                Returns EntityPatch

              • Check that the entity has all of the given tags.

                +

                Parameters

                • Rest ...tags: string[]

                  List of tags.

                  +

                Returns boolean

                True or false.

                +
              • Check whether this object is in an array.

                +

                If strict is false, is() is used to compare. If strict is true, +equals() is used.

                +

                Parameters

                • array: any[]

                  The array to search.

                  +
                • Optional strict: boolean

                  Whether to use stronger comparison.

                  +

                Returns boolean

                True if the object is in the array, false if it isn't.

                +
              • Perform a less strict comparison of this object to another.

                +

                Parameters

                • object: any

                  The object to compare.

                  +

                Returns boolean

                True or false.

                +
              • Save the object's dirty data to storage.

                +

                Returns Promise<boolean>

                True on success, false on failure.

                +
              • Refresh the object from storage. (Bypasses Nymph's cache.)

                +

                If the object has been deleted from storage, the database cannot be +reached, or a database error occurs, refresh() will return 0.

                +

                Returns Promise<boolean | 0>

                False if the data has not been saved, 0 if it can't be refreshed, true on success.

                +
              • Remove one or more tags.

                +

                Parameters

                • Rest ...tags: string[]

                  List of tags.

                  +

                Returns void

              • Save the object to storage.

                +

                Returns Promise<boolean>

                True on success, false on failure.

                +
              • Call an instance method on the server version of this entity.

                +

                The entity's data will be sent up to the server as well, so the server's +state can match the client's state. It won't be propagated into the DB, +though.

                +

                Parameters

                • method: string

                  The name of the method.

                  +
                • params: Iterable<any>

                  The parameters to call the method with.

                  +
                • Optional stateless: boolean

                  Whether the server should return, and the client update, the data in the entity after the method has run.

                  +

                Returns Promise<any>

                The value that the method on the server returned.

                +
              • Ready this entity's data, and the data of entity's within this one's.

                +

                Parameters

                • Optional level: number

                  The number of levels deep to wake. If undefined, it will keep going until there are no more entities. (Careful of infinite loops.)

                  +

                Returns Promise<Entity<GroupData>>

                The entity.

                +
              • Create or retrieve a new entity instance.

                +

                Note that this will always return an entity, even if the GUID is not found.

                +

                Type Parameters

                Parameters

                • this: (new () => E)
                    • new (): E
                    • Returns E

                • Optional guid: string

                  An optional GUID to retrieve.

                  +

                Returns Promise<E & EntityDataType<E>>

              • Create a new sleeping reference instance.

                +

                Sleeping references won't retrieve their data from the server until they +are readied with $wake() or a parent's $wakeAll().

                +

                Type Parameters

                Parameters

                • this: (new () => E)
                    • new (): E
                    • Returns E

                • reference: EntityReference

                  The Nymph Entity Reference to use to wake.

                  +

                Returns E & EntityDataType<E>

                The new instance.

                +
              • Call a static method on the server version of this entity.

                +

                Parameters

                • method: string

                  The name of the method.

                  +
                • params: Iterable<any>

                  The parameters to call the method with.

                  +

                Returns Promise<any>

                The value that the method on the server returned.

                +
              • Call a static iterator method on the server version of this entity.

                +

                Parameters

                • method: string

                  The name of the method.

                  +
                • params: Iterable<any>

                  The parameters to call the method with.

                  +

                Returns Promise<AbortableAsyncIterator<any>>

                An iterator that iterates over values that the method on the server yields.

                +
              \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/classes/_nymphjs_tilmeld_client.NeedTOTPError.html b/static/api/1.0.0-beta.81/classes/_nymphjs_tilmeld_client.NeedTOTPError.html new file mode 100644 index 0000000..2ab549c --- /dev/null +++ b/static/api/1.0.0-beta.81/classes/_nymphjs_tilmeld_client.NeedTOTPError.html @@ -0,0 +1,11 @@ +NeedTOTPError | Nymph.js 1.0.0-beta.81

              Hierarchy

              • Error
                • NeedTOTPError

              Constructors

              • Parameters

                • Optional message: string

                Returns NeedTOTPError

              Properties

              message: string
              name: string
              stack?: string
              prepareStackTrace?: ((err, stackTraces) => any)

              Optional override for formatting stack traces

              +

              Type declaration

                • (err, stackTraces): any
                • Parameters

                  • err: Error
                  • stackTraces: CallSite[]

                  Returns any

              stackTraceLimit: number

              Methods

              • Create .stack property on a target object

                +

                Parameters

                • targetObject: object
                • Optional constructorOpt: Function

                Returns void

              \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/classes/_nymphjs_tilmeld_client.User.html b/static/api/1.0.0-beta.81/classes/_nymphjs_tilmeld_client.User.html new file mode 100644 index 0000000..7d995d6 --- /dev/null +++ b/static/api/1.0.0-beta.81/classes/_nymphjs_tilmeld_client.User.html @@ -0,0 +1,159 @@ +User | Nymph.js 1.0.0-beta.81

              Entity interface.

              +

              Hierarchy (view full)

              Constructors

              Properties

              $data: UserData

              The data proxy object.

              +
              $dataHandler: Object

              The data proxy handler.

              +
              $dataStore: UserData

              The actual data store.

              +
              $dirty: {
                  [k: string]: boolean;
              }

              A map of props to whether they're dirty (for patch).

              +

              Type declaration

              • [k: string]: boolean
              $isASleepingReference: boolean

              Whether this instance is a sleeping reference.

              +
              $nymph: Nymph

              The instance of Nymph to use for queries.

              +
              $originalTags: string[]

              Array of the entity's original tags (for patch).

              +
              $sleepingReference: null | EntityReference

              The reference to use to wake.

              +
              $wakePromise: null | Promise<Entity<UserData>>

              A promise that resolved when the entity's data is wake.

              +
              cdate: null | number

              The creation date of the entity as a high precision Unix timestamp.

              +
              guid: null | string

              The entity's Globally Unique ID.

              +
              mdate: null | number

              The modified date of the entity as a high precision Unix timestamp.

              +
              tags: string[]

              Array of the entity's tags.

              +
              class: string = 'User'

              The lookup name for this entity.

              +

              This is used for reference arrays (and sleeping references) and server +requests.

              +
              nymph: Nymph

              The instance of Nymph to use for queries.

              +
              stores: WeakMap<Nymph, InstanceStore> = ...

              Methods

              • Add one or more tags.

                +

                Parameters

                • Rest ...tags: string[]

                  List of tags.

                  +

                Returns void

              • Search the array for this object and return the corresponding index.

                +

                If strict is false, is() is used to compare. If strict is true, +equals() is used.

                +

                Parameters

                • array: any[]

                  The array to search.

                  +
                • Optional strict: boolean

                  Whether to use stronger comparison.

                  +

                Returns number

                The index if the object is in the array, -1 if it isn't.

                +
              • Check if this is a sleeping reference.

                +

                Returns boolean

              • Parameters

                • data: {
                      currentPassword: string;
                      newPassword: string;
                      revokeCurrentTokens?: boolean;
                  }
                  • currentPassword: string
                  • newPassword: string
                  • Optional revokeCurrentTokens?: boolean

                Returns Promise<{
                    message: string;
                    result: boolean;
                }>

              • Check if this is a sleeping reference and throw an error if so.

                +

                Returns void

              • Returns Promise<{
                    message: string;
                    result: boolean;
                }>

              • Returns Promise<{
                    message: string;
                    result: boolean;
                }>

              • Returns Promise<{
                    message: string;
                    result: boolean;
                }>

              • Delete the object from storage.

                +

                Returns Promise<boolean>

                True on success, false on failure.

                +
              • Perform a more strict comparison of this object to another.

                +

                Parameters

                • object: any

                  The object to compare.

                  +

                Returns boolean

                True or false.

                +
              • Returns Promise<{
                    qrcode: string;
                    secret: string;
                    uri: string;
                }>

              • Get a patch of this entity's dirty data to be applied on the server.

                +

                Returns EntityPatch

              • Check that the entity has all of the given tags.

                +

                Parameters

                • Rest ...tags: string[]

                  List of tags.

                  +

                Returns boolean

                True or false.

                +
              • Check whether this object is in an array.

                +

                If strict is false, is() is used to compare. If strict is true, +equals() is used.

                +

                Parameters

                • array: any[]

                  The array to search.

                  +
                • Optional strict: boolean

                  Whether to use stronger comparison.

                  +

                Returns boolean

                True if the object is in the array, false if it isn't.

                +
              • Perform a less strict comparison of this object to another.

                +

                Parameters

                • object: any

                  The object to compare.

                  +

                Returns boolean

                True or false.

                +
              • Save the object's dirty data to storage.

                +

                Returns Promise<boolean>

                True on success, false on failure.

                +
              • Refresh the object from storage. (Bypasses Nymph's cache.)

                +

                If the object has been deleted from storage, the database cannot be +reached, or a database error occurs, refresh() will return 0.

                +

                Returns Promise<boolean | 0>

                False if the data has not been saved, 0 if it can't be refreshed, true on success.

                +
              • Parameters

                • data: {
                      additionalData?: {
                          [k: string]: any;
                      };
                      password: string;
                  }
                  • Optional additionalData?: {
                        [k: string]: any;
                    }
                    • [k: string]: any
                  • password: string

                Returns Promise<{
                    loggedin: boolean;
                    message: string;
                    result: boolean;
                }>

              • Parameters

                • Optional data: {
                      code: string;
                      password: string;
                  }
                  • code: string
                  • password: string

                Returns Promise<{
                    message: string;
                    result: boolean;
                }>

              • Remove one or more tags.

                +

                Parameters

                • Rest ...tags: string[]

                  List of tags.

                  +

                Returns void

              • Parameters

                • data: {
                      password: string;
                  }
                  • password: string

                Returns Promise<{
                    message: string;
                    result: boolean;
                }>

              • Save the object to storage.

                +

                Returns Promise<boolean>

                True on success, false on failure.

                +
              • Parameters

                • data: {
                      code: string;
                      password: string;
                      secret: string;
                  }
                  • code: string
                  • password: string
                  • secret: string

                Returns Promise<{
                    message: string;
                    result: boolean;
                }>

              • Call an instance method on the server version of this entity.

                +

                The entity's data will be sent up to the server as well, so the server's +state can match the client's state. It won't be propagated into the DB, +though.

                +

                Parameters

                • method: string

                  The name of the method.

                  +
                • params: Iterable<any>

                  The parameters to call the method with.

                  +
                • Optional stateless: boolean

                  Whether the server should return, and the client update, the data in the entity after the method has run.

                  +

                Returns Promise<any>

                The value that the method on the server returned.

                +
              • Parameters

                • Optional data: {
                      additionalData?: {
                          [k: string]: any;
                      };
                  }
                  • Optional additionalData?: {
                        [k: string]: any;
                    }
                    • [k: string]: any

                Returns Promise<{
                    message: string;
                    result: boolean;
                }>

              • Ready this entity's data, and the data of entity's within this one's.

                +

                Parameters

                • Optional level: number

                  The number of levels deep to wake. If undefined, it will keep going until there are no more entities. (Careful of infinite loops.)

                  +

                Returns Promise<Entity<UserData>>

                The entity.

                +
              • Parameters

                • returnObjectIfNotExist: true

                Returns Promise<User & UserData & {
                    abilities?: string[];
                    email?: string;
                    group?: Group & GroupData & {
                        abilities?: string[];
                        email?: string;
                        phone?: string;
                        user?: null | (User & UserData & { abilities?: string[] | undefined; email?: string | undefined; phone?: string | undefined; group?: (Group & GroupData & { abilities?: string[] | undefined; email?: string | undefined; phone?: string | undefined; user?: (User & ... 1 more ... & ...) | ... 1 more ... | undefined; }) | undefined; gro...);
                    };
                    groups?: (Group & GroupData & {
                        abilities?: string[];
                        email?: string;
                        phone?: string;
                        user?: null | (User & UserData & { abilities?: string[] | undefined; email?: string | undefined; phone?: string | undefined; group?: (Group & GroupData & { abilities?: string[] | undefined; email?: string | undefined; phone?: string | undefined; user?: (User & ... 1 more ... & ...) | ... 1 more ... | undefined; }) | undefined; gro...);
                    })[];
                    inheritAbilities?: boolean;
                    newEmailAddress?: string;
                    phone?: string;
                }>

              • Parameters

                • Optional returnObjectIfNotExist: false

                Returns Promise<null | User & UserData & {
                    abilities?: string[];
                    email?: string;
                    group?: Group & GroupData & {
                        abilities?: string[];
                        email?: string;
                        phone?: string;
                        user?: null | (User & UserData & { abilities?: string[] | undefined; email?: string | undefined; phone?: string | undefined; group?: (Group & GroupData & { abilities?: string[] | undefined; email?: string | undefined; phone?: string | undefined; user?: (User & ... 1 more ... & ...) | ... 1 more ... | undefined; }) | undefined; gro...);
                    };
                    groups?: (Group & GroupData & {
                        abilities?: string[];
                        email?: string;
                        phone?: string;
                        user?: null | (User & UserData & { abilities?: string[] | undefined; email?: string | undefined; phone?: string | undefined; group?: (Group & GroupData & { abilities?: string[] | undefined; email?: string | undefined; phone?: string | undefined; user?: (User & ... 1 more ... & ...) | ... 1 more ... | undefined; }) | undefined; gro...);
                    })[];
                    inheritAbilities?: boolean;
                    newEmailAddress?: string;
                    phone?: string;
                }>

              • Create or retrieve a new entity instance.

                +

                Note that this will always return an entity, even if the GUID is not found.

                +

                Type Parameters

                Parameters

                • this: (new () => E)
                    • new (): E
                    • Returns E

                • Optional guid: string

                  An optional GUID to retrieve.

                  +

                Returns Promise<E & EntityDataType<E>>

              • Create a new sleeping reference instance.

                +

                Sleeping references won't retrieve their data from the server until they +are readied with $wake() or a parent's $wakeAll().

                +

                Type Parameters

                Parameters

                • this: (new () => E)
                    • new (): E
                    • Returns E

                • reference: EntityReference

                  The Nymph Entity Reference to use to wake.

                  +

                Returns E & EntityDataType<E>

                The new instance.

                +
              • Parameters

                • data: {
                      additionalData?: {
                          [k: string]: any;
                      };
                      code?: string;
                      password: string;
                      username: string;
                  }
                  • Optional additionalData?: {
                        [k: string]: any;
                    }
                    • [k: string]: any
                  • Optional code?: string
                  • password: string
                  • username: string

                Returns Promise<{
                    message: string;
                    needTOTP?: true;
                    result: boolean;
                    user?: User & UserData & {
                        abilities?: string[];
                        email?: string;
                        group?: Group & GroupData & {
                            abilities?: string[];
                            email?: string;
                            phone?: string;
                            user?: null | (User & UserData & { abilities?: string[] | undefined; email?: string | undefined; phone?: string | undefined; group?: (Group & GroupData & { abilities?: string[] | undefined; email?: string | undefined; phone?: string | undefined; user?: (User & ... 1 more ... & ...) | ... 1 more ... | undefined; }) | undefined; gro...);
                        };
                        groups?: (Group & GroupData & {
                            abilities?: (...)[];
                            email?: string;
                            phone?: string;
                            user?: null | (User & UserData & { abilities?: string[] | undefined; email?: string | undefined; phone?: string | undefined; group?: (Group & GroupData & { abilities?: string[] | undefined; email?: string | undefined; phone?: string | undefined; user?: (User & ... 1 more ... & ...) | ... 1 more ... | undefined; }) | undefined; gro...);
                        })[];
                        inheritAbilities?: boolean;
                        newEmailAddress?: string;
                        phone?: string;
                    };
                }>

              • Parameters

                • data: {
                      password: string;
                      secret: string;
                      username: string;
                  }
                  • password: string
                  • secret: string
                  • username: string

                Returns Promise<{
                    message: string;
                    result: boolean;
                }>

              • Parameters

                • data: {
                      account: string;
                      recoveryType: "username" | "password";
                  }
                  • account: string
                  • recoveryType: "username" | "password"

                Returns Promise<{
                    message: string;
                    result: boolean;
                }>

              • Call a static method on the server version of this entity.

                +

                Parameters

                • method: string

                  The name of the method.

                  +
                • params: Iterable<any>

                  The parameters to call the method with.

                  +

                Returns Promise<any>

                The value that the method on the server returned.

                +
              • Call a static iterator method on the server version of this entity.

                +

                Parameters

                • method: string

                  The name of the method.

                  +
                • params: Iterable<any>

                  The parameters to call the method with.

                  +

                Returns Promise<AbortableAsyncIterator<any>>

                An iterator that iterates over values that the method on the server yields.

                +
              \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/classes/_nymphjs_tilmeld_components.Account.html b/static/api/1.0.0-beta.81/classes/_nymphjs_tilmeld_components.Account.html new file mode 100644 index 0000000..9bc961e --- /dev/null +++ b/static/api/1.0.0-beta.81/classes/_nymphjs_tilmeld_components.Account.html @@ -0,0 +1,32 @@ +Account | Nymph.js 1.0.0-beta.81

              Base class for Svelte components with some minor dev-enhancements. Used when dev=true.

              +

              Can be used to create strongly typed Svelte components.

              +

              Example:

              You have component library on npm called component-library, from which +you export a component called MyComponent. For Svelte+TypeScript users, +you want to provide typings. Therefore you create a index.d.ts:

              +
              import { SvelteComponent } from "svelte";
              export class MyComponent extends SvelteComponent<{foo: string}> {} +
              +

              Typing this makes it possible for IDEs like VS Code with the Svelte extension +to provide intellisense and to use the component like this in a Svelte file +with TypeScript:

              +
              <script lang="ts">
              import { MyComponent } from "component-library";
              </script>
              <MyComponent foo={'bar'} /> +
              +

              Type Parameters

              • Props extends Record<string, any> = any
              • Events extends Record<string, any> = any
              • Slots extends Record<string, any> = any

              Hierarchy

              Indexable

              [prop: string]: any

              Constructors

              • Type Parameters

                • Props extends Record<string, any> = any
                • Events extends Record<string, any> = any
                • Slots extends Record<string, any> = any

                Parameters

                • options: ComponentConstructorOptions<Props>

                Returns Account<Props, Events, Slots>

              Properties

              $$: any

              PRIVATE API

              Do not use, may change at any time

              +
              $$events_def: Events

              For type checking capabilities only. +Does not exist at runtime.

              +

              DO NOT USE!

              $$prop_def: Props

              For type checking capabilities only. +Does not exist at runtime.

              +

              DO NOT USE!

              $$set: any

              PRIVATE API

              Do not use, may change at any time

              +
              $$slot_def: Slots

              For type checking capabilities only. +Does not exist at runtime.

              +

              DO NOT USE!

              Methods

              • Returns void

              • Returns void

              • Returns void

              • Type Parameters

                • K extends string

                Parameters

                • type: K
                • callback: undefined | null | ((e) => void)

                Returns (() => void)

                  • (): void
                  • Returns void

              • Parameters

                Returns void

              \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/enums/_nymphjs_nymph.TilmeldAccessLevels.html b/static/api/1.0.0-beta.81/enums/_nymphjs_nymph.TilmeldAccessLevels.html new file mode 100644 index 0000000..213fc59 --- /dev/null +++ b/static/api/1.0.0-beta.81/enums/_nymphjs_nymph.TilmeldAccessLevels.html @@ -0,0 +1,5 @@ +TilmeldAccessLevels | Nymph.js 1.0.0-beta.81

              Enumeration Members

              FULL_ACCESS: 4
              NO_ACCESS: 0
              READ_ACCESS: 1
              WRITE_ACCESS: 2
              \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/functions/_nymphjs_guid.customAlphabet.html b/static/api/1.0.0-beta.81/functions/_nymphjs_guid.customAlphabet.html new file mode 100644 index 0000000..631a152 --- /dev/null +++ b/static/api/1.0.0-beta.81/functions/_nymphjs_guid.customAlphabet.html @@ -0,0 +1,9 @@ +customAlphabet | Nymph.js 1.0.0-beta.81
              • Generate secure unique ID with custom alphabet.

                +

                Alphabet must contain 256 symbols or less. Otherwise, the generator +will not be secure.

                +

                Parameters

                • alphabet: string

                  Alphabet used to generate the ID.

                  +
                • Optional defaultSize: number

                  Size of the ID. The default size is 21.

                  +

                Returns ((size?) => string)

                A random string generator.

                +
                const { customAlphabet } = require('nanoid')
                const nanoid = customAlphabet('0123456789абвгдеё', 5)
                nanoid() //=> "8ё56а" +
                +
                  • (size?): string
                  • Parameters

                    • Optional size: number

                    Returns string

              \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/functions/_nymphjs_guid.guid.html b/static/api/1.0.0-beta.81/functions/_nymphjs_guid.guid.html new file mode 100644 index 0000000..1dd13d8 --- /dev/null +++ b/static/api/1.0.0-beta.81/functions/_nymphjs_guid.guid.html @@ -0,0 +1 @@ +guid | Nymph.js 1.0.0-beta.81
              \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/functions/_nymphjs_guid.humanSecret.html b/static/api/1.0.0-beta.81/functions/_nymphjs_guid.humanSecret.html new file mode 100644 index 0000000..28200b8 --- /dev/null +++ b/static/api/1.0.0-beta.81/functions/_nymphjs_guid.humanSecret.html @@ -0,0 +1 @@ +humanSecret | Nymph.js 1.0.0-beta.81
              \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/functions/_nymphjs_guid.makeTableSuffix.html b/static/api/1.0.0-beta.81/functions/_nymphjs_guid.makeTableSuffix.html new file mode 100644 index 0000000..d7e9ad8 --- /dev/null +++ b/static/api/1.0.0-beta.81/functions/_nymphjs_guid.makeTableSuffix.html @@ -0,0 +1 @@ +makeTableSuffix | Nymph.js 1.0.0-beta.81
              \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/functions/_nymphjs_guid.nanoid.html b/static/api/1.0.0-beta.81/functions/_nymphjs_guid.nanoid.html new file mode 100644 index 0000000..82c66d7 --- /dev/null +++ b/static/api/1.0.0-beta.81/functions/_nymphjs_guid.nanoid.html @@ -0,0 +1,8 @@ +nanoid | Nymph.js 1.0.0-beta.81
              • Generate secure URL-friendly unique ID.

                +

                By default, the ID will have 21 symbols to have a collision probability +similar to UUID v4.

                +
                import { nanoid } from 'nanoid'
                model.id = nanoid() //=> "Uakgb_J5m9g-0JDMbcJqL" +
                +

                Parameters

                • Optional size: number

                  Size of the ID. The default size is 21.

                  +

                Returns string

                A random string.

                +
              \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/functions/_nymphjs_nymph.EntitiesTest.html b/static/api/1.0.0-beta.81/functions/_nymphjs_nymph.EntitiesTest.html new file mode 100644 index 0000000..afc73b1 --- /dev/null +++ b/static/api/1.0.0-beta.81/functions/_nymphjs_nymph.EntitiesTest.html @@ -0,0 +1 @@ +EntitiesTest | Nymph.js 1.0.0-beta.81
              \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/functions/_nymphjs_nymph.ExportImportTest.html b/static/api/1.0.0-beta.81/functions/_nymphjs_nymph.ExportImportTest.html new file mode 100644 index 0000000..c807308 --- /dev/null +++ b/static/api/1.0.0-beta.81/functions/_nymphjs_nymph.ExportImportTest.html @@ -0,0 +1 @@ +ExportImportTest | Nymph.js 1.0.0-beta.81
              \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/functions/_nymphjs_nymph.UIDTest.html b/static/api/1.0.0-beta.81/functions/_nymphjs_nymph.UIDTest.html new file mode 100644 index 0000000..38c1a22 --- /dev/null +++ b/static/api/1.0.0-beta.81/functions/_nymphjs_nymph.UIDTest.html @@ -0,0 +1 @@ +UIDTest | Nymph.js 1.0.0-beta.81
              \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/functions/_nymphjs_nymph.classNamesToEntityConstructors.html b/static/api/1.0.0-beta.81/functions/_nymphjs_nymph.classNamesToEntityConstructors.html new file mode 100644 index 0000000..17f91a3 --- /dev/null +++ b/static/api/1.0.0-beta.81/functions/_nymphjs_nymph.classNamesToEntityConstructors.html @@ -0,0 +1 @@ +classNamesToEntityConstructors | Nymph.js 1.0.0-beta.81
              \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/functions/_nymphjs_nymph.entitiesToReferences.html b/static/api/1.0.0-beta.81/functions/_nymphjs_nymph.entitiesToReferences.html new file mode 100644 index 0000000..61b6c19 --- /dev/null +++ b/static/api/1.0.0-beta.81/functions/_nymphjs_nymph.entitiesToReferences.html @@ -0,0 +1 @@ +entitiesToReferences | Nymph.js 1.0.0-beta.81
              \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/functions/_nymphjs_nymph.referencesToEntities.html b/static/api/1.0.0-beta.81/functions/_nymphjs_nymph.referencesToEntities.html new file mode 100644 index 0000000..124163d --- /dev/null +++ b/static/api/1.0.0-beta.81/functions/_nymphjs_nymph.referencesToEntities.html @@ -0,0 +1 @@ +referencesToEntities | Nymph.js 1.0.0-beta.81
              \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/functions/_nymphjs_nymph.sortObj.html b/static/api/1.0.0-beta.81/functions/_nymphjs_nymph.sortObj.html new file mode 100644 index 0000000..04ef185 --- /dev/null +++ b/static/api/1.0.0-beta.81/functions/_nymphjs_nymph.sortObj.html @@ -0,0 +1 @@ +sortObj | Nymph.js 1.0.0-beta.81
              \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/functions/_nymphjs_nymph.uniqueStrings.html b/static/api/1.0.0-beta.81/functions/_nymphjs_nymph.uniqueStrings.html new file mode 100644 index 0000000..b7a8427 --- /dev/null +++ b/static/api/1.0.0-beta.81/functions/_nymphjs_nymph.uniqueStrings.html @@ -0,0 +1 @@ +uniqueStrings | Nymph.js 1.0.0-beta.81
              \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/functions/_nymphjs_nymph.xor.html b/static/api/1.0.0-beta.81/functions/_nymphjs_nymph.xor.html new file mode 100644 index 0000000..58db204 --- /dev/null +++ b/static/api/1.0.0-beta.81/functions/_nymphjs_nymph.xor.html @@ -0,0 +1 @@ +xor | Nymph.js 1.0.0-beta.81
              \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/functions/_nymphjs_pubsub.createServer.html b/static/api/1.0.0-beta.81/functions/_nymphjs_pubsub.createServer.html new file mode 100644 index 0000000..feca53f --- /dev/null +++ b/static/api/1.0.0-beta.81/functions/_nymphjs_pubsub.createServer.html @@ -0,0 +1 @@ +createServer | Nymph.js 1.0.0-beta.81
              \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/functions/_nymphjs_query_parser.queryParser.html b/static/api/1.0.0-beta.81/functions/_nymphjs_query_parser.queryParser.html new file mode 100644 index 0000000..3bc3914 --- /dev/null +++ b/static/api/1.0.0-beta.81/functions/_nymphjs_query_parser.queryParser.html @@ -0,0 +1 @@ +queryParser | Nymph.js 1.0.0-beta.81
              \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/functions/_nymphjs_server.createServer.html b/static/api/1.0.0-beta.81/functions/_nymphjs_server.createServer.html new file mode 100644 index 0000000..c4e15b5 --- /dev/null +++ b/static/api/1.0.0-beta.81/functions/_nymphjs_server.createServer.html @@ -0,0 +1,6 @@ +createServer | Nymph.js 1.0.0-beta.81
              • A REST server middleware creator for Nymph.

                +

                Written by Hunter Perrin for SciActive.

                +

                Parameters

                • nymph: Nymph
                • __namedParameters: {
                      jsonOptions?: OptionsJson;
                  } = {}
                  • Optional jsonOptions?: OptionsJson

                Returns Express

                Author

                Hunter Perrin hperrin@gmail.com

                +

                Copyright

                SciActive Inc

                +

                See

                http://nymph.io/

                +
              \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/functions/_nymphjs_tilmeld.enforceTilmeld.html b/static/api/1.0.0-beta.81/functions/_nymphjs_tilmeld.enforceTilmeld.html new file mode 100644 index 0000000..cf18e65 --- /dev/null +++ b/static/api/1.0.0-beta.81/functions/_nymphjs_tilmeld.enforceTilmeld.html @@ -0,0 +1 @@ +enforceTilmeld | Nymph.js 1.0.0-beta.81
              \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/functions/_nymphjs_tilmeld_client.checkUsername.html b/static/api/1.0.0-beta.81/functions/_nymphjs_tilmeld_client.checkUsername.html new file mode 100644 index 0000000..2f97fb5 --- /dev/null +++ b/static/api/1.0.0-beta.81/functions/_nymphjs_tilmeld_client.checkUsername.html @@ -0,0 +1 @@ +checkUsername | Nymph.js 1.0.0-beta.81
              \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/functions/_nymphjs_tilmeld_client.login.html b/static/api/1.0.0-beta.81/functions/_nymphjs_tilmeld_client.login.html new file mode 100644 index 0000000..ed5a138 --- /dev/null +++ b/static/api/1.0.0-beta.81/functions/_nymphjs_tilmeld_client.login.html @@ -0,0 +1 @@ +login | Nymph.js 1.0.0-beta.81
              • Parameters

                • User: typeof User
                • username: string
                • password: string
                • Optional code: string
                • Optional additionalData: {
                      [k: string]: any;
                  }
                  • [k: string]: any

                Returns Promise<{
                    message: string;
                    user?: User & UserData & {
                        abilities?: string[];
                        email?: string;
                        group?: Group & GroupData & {
                            abilities?: string[];
                            email?: string;
                            phone?: string;
                            user?: null | (User & UserData & { abilities?: string[] | undefined; email?: string | undefined; phone?: string | undefined; group?: (Group & GroupData & { abilities?: string[] | undefined; email?: string | undefined; phone?: string | undefined; user?: (User & ... 1 more ... & ...) | ... 1 more ... | undefined; }) | undefined; gro...);
                        };
                        groups?: (Group & GroupData & {
                            abilities?: (...)[];
                            email?: string;
                            phone?: string;
                            user?: null | (User & UserData & { abilities?: string[] | undefined; email?: string | undefined; phone?: string | undefined; group?: (Group & GroupData & { abilities?: string[] | undefined; email?: string | undefined; phone?: string | undefined; user?: (User & ... 1 more ... & ...) | ... 1 more ... | undefined; }) | undefined; gro...);
                        })[];
                        inheritAbilities?: boolean;
                        newEmailAddress?: string;
                        phone?: string;
                    };
                }>

              \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/functions/_nymphjs_tilmeld_client.register.html b/static/api/1.0.0-beta.81/functions/_nymphjs_tilmeld_client.register.html new file mode 100644 index 0000000..3282161 --- /dev/null +++ b/static/api/1.0.0-beta.81/functions/_nymphjs_tilmeld_client.register.html @@ -0,0 +1 @@ +register | Nymph.js 1.0.0-beta.81
              \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/functions/_nymphjs_tilmeld_setup.setup.html b/static/api/1.0.0-beta.81/functions/_nymphjs_tilmeld_setup.setup.html new file mode 100644 index 0000000..1437433 --- /dev/null +++ b/static/api/1.0.0-beta.81/functions/_nymphjs_tilmeld_setup.setup.html @@ -0,0 +1 @@ +setup | Nymph.js 1.0.0-beta.81
              • Parameters

                • options: NymphOptions
                • nymph: Nymph
                • __namedParameters: {
                      allowRegistration?: boolean;
                  } = {}
                  • Optional allowRegistration?: boolean

                Returns Express

              \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/hierarchy.html b/static/api/1.0.0-beta.81/hierarchy.html new file mode 100644 index 0000000..128343f --- /dev/null +++ b/static/api/1.0.0-beta.81/hierarchy.html @@ -0,0 +1 @@ +Nymph.js 1.0.0-beta.81
              \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/index.html b/static/api/1.0.0-beta.81/index.html new file mode 100644 index 0000000..a116939 --- /dev/null +++ b/static/api/1.0.0-beta.81/index.html @@ -0,0 +1,64 @@ +Nymph.js 1.0.0-beta.81

              Nymph.js 1.0.0-beta.81

              Nymph.js

              Powerful object data storage and querying.

              +

              Getting Started

              All you need to start using Nymph is the @nymphjs/nymph package and one of the drivers, @nymphjs/driver-mysql, @nymphjs/driver-postgresql, or @nymphjs/driver-sqlite3. Check out the readme for the Nymph package.

              +

              You can also set up a REST server to use Nymph remotely, a PubSub server to receive updates for queries, and a user and group management system to provide registration and access control.

              +

              Check out the user guide for information about how to use Nymph once you have it set up.

              +

              Nymph.js Packages

              Nymph

              The Nymph core provides the base level classes and utilities to query the database, save data to it, and define different data types.

              +

              MySQL Driver

              The MySQL driver lets you configure Nymph to query and save data to a MySQL database.

              +

              PostgreSQL Driver

              The PostgreSQL driver lets you configure Nymph to query and save data to a Postgres database.

              +

              SQLite3 Driver

              The SQLite3 driver lets you configure Nymph to query and save data to a SQLite3 database. This includes an in memory SQLite3 database.

              +

              REST Server

              The REST server lets you configure an endpoint for the Nymph client to query and push data to. The server provides this endpoint as an Express middleware, which can be used in a new or existing Express (or compatible) server.

              +

              PubSub Server

              The PubSub server provides a WebSocket server that allows Nymph to publish changes and the Nymph Client to subscribe to those changes. You can subscribe to individual entities, entity queries, or UIDs.

              +

              Client

              The Nymph Client allows you to query and push data to a Nymph REST server from the browser. You can also subscribe to entities and queries on a Nymph PubSub server and be notified of changes.

              +

              Node Client

              The Nymph Node Client let's you do everything the Nymph Client does, but from Node.JS instead of the browser.

              +

              Tilmeld

              Tilmeld (the d is silent) is a user and group management system for Nymph. It provides strict access controls to protect entities from unauthorized access/modification. It allows for granting and revoking ad hoc abilities to users and groups, then checking for those abilities. It provides authentication services and features protection against XSRF attacks.

              +

              Tilmeld Client

              The Tilmeld Client lets you register, login, and perform user account related functions remotely on a Nymph server.

              +

              Tilmeld Components

              The Tilmeld Components are front end registration/login, account recovery, account details, and password change components build with Svelte and SMUI.

              +

              Tilmeld Setup

              The Tilmeld Setup App allows administrators to create, modify, and delete users and groups and configure how Tilmeld works. It also acts as the endpoint for email address verification.

              +

              Entity Sorter

              The Nymph Entity Sorter lets you sort entities by their properties, including hierarchically.

              +

              Query Parser

              The Query Parser is a utility for creating complex Nymph entity queries from a simple text input. Essentially, it turns a string into a Nymph query.

              +

              GUID / Unique Code Generator

              The GUID and unique code generators are used to generate new GUIDs for Nymph objects and various random unique strings.

              +

              Breaking Changes

              In version 1.0.0-beta.78, the database schema changed significantly, and data will need to be exported with an older version, then imported into a fresh database with this version. The meaning of the contain clause also changed to only check if the given value exists in an array.

              +

              In version 1.0.0-beta.41, the server side API was rewritten to match the client side API. All synchronous database calls were removed. This is to prevent a very rare potential bug, because synchronous database calls were made outside of transactions. Here is a list of some things that changed that could break your code:

              +
                +
              • $gatekeeper is now async
              • +
              • no guid on constructor or factorySync
              • +
              • checkClientUIDPermissions is now async
              • +
              • authenticate is now async
              • +
              • fillSession is now async
              • +
              • login is now async
              • +
              • loginSwitch is now async
              • +
              • logout is now async
              • +
              • logoutSwitch is now async
              • +
              • $addGroup is now async
              • +
              • $delGroup is now async
              • +
              • $inGroup is now async
              • +
              • $getLevel is now async
              • +
              • $ready changed to $wake
              • +
              • $readyAll changed to $wakeAll
              • +
              +

              You will also now need to call $wake on sleeping references before you access their data or they will throw and error.

              +

              Development

              To develop Nymph.js, checkout the repo and run:

              +
              npm i
              npm run bootstrap
              rm packages/*/package-lock.json +
              +

              Once you make changes in one package, you can either build that package directly or build all packages with bootstrap, then the other packages will be aware of the changes.

              +

              Testing

              When you're ready to run all the tests, in a separate shell, bring up the test DBs.

              +
              npm run test:db:start
              +
              +

              Now in your main terminal, you can run the tests.

              +
              npm run test
              +
              +

              Once you're all done, in your main terminal, you can bring down the test DBs (don't use Ctrl-C where the tests are running).

              +
              npm run test:db:stop
              +
              +

              License

              Copyright 2021 SciActive Inc

              +

              Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at

              +
              http://www.apache.org/licenses/LICENSE-2.0
              +
              +

              Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License.

              +
              \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/interfaces/_nymphjs_client.AbortableAsyncIterator.html b/static/api/1.0.0-beta.81/interfaces/_nymphjs_client.AbortableAsyncIterator.html new file mode 100644 index 0000000..57117db --- /dev/null +++ b/static/api/1.0.0-beta.81/interfaces/_nymphjs_client.AbortableAsyncIterator.html @@ -0,0 +1,3 @@ +AbortableAsyncIterator | Nymph.js 1.0.0-beta.81
              interface AbortableAsyncIterator<T> {
                  abortController: AbortController;
                  [asyncIterator](): AsyncIterator<T, any, undefined>;
              }

              Type Parameters

              • T extends any = any

              Hierarchy

              • AsyncIterable<T>
                • AbortableAsyncIterator

              Properties

              Methods

              Properties

              abortController: AbortController

              Methods

              • Returns AsyncIterator<T, any, undefined>

              \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/interfaces/_nymphjs_client.DataObjectInterface.html b/static/api/1.0.0-beta.81/interfaces/_nymphjs_client.DataObjectInterface.html new file mode 100644 index 0000000..62371cd --- /dev/null +++ b/static/api/1.0.0-beta.81/interfaces/_nymphjs_client.DataObjectInterface.html @@ -0,0 +1,40 @@ +DataObjectInterface | Nymph.js 1.0.0-beta.81

              Data Object interface.

              +

              Objects which hold data from some type of storage.

              +
              interface DataObjectInterface {
                  $arraySearch(array, strict?): number;
                  $delete(): Promise<boolean>;
                  $equals(object): boolean;
                  $inArray(array, strict?): boolean;
                  $is(object): boolean;
                  $patch(): Promise<boolean>;
                  $refresh(): Promise<boolean | 0>;
                  $save(): Promise<boolean>;
                  [k: string]: any;
              }

              Hierarchy (view full)

              Indexable

              [k: string]: any

              The object's data.

              +

              Methods

              • Search the array for this object and return the corresponding index.

                +

                If strict is false, is() is used to compare. If strict is true, +equals() is used.

                +

                Parameters

                • array: any[]

                  The array to search.

                  +
                • Optional strict: boolean

                  Whether to use stronger comparison.

                  +

                Returns number

                The index if the object is in the array, -1 if it isn't.

                +
              • Perform a more strict comparison of this object to another.

                +

                Parameters

                • object: any

                  The object to compare.

                  +

                Returns boolean

                True or false.

                +
              • Check whether this object is in an array.

                +

                If strict is false, is() is used to compare. If strict is true, +equals() is used.

                +

                Parameters

                • array: any[]

                  The array to search.

                  +
                • Optional strict: boolean

                  Whether to use stronger comparison.

                  +

                Returns boolean

                True if the object is in the array, false if it isn't.

                +
              • Perform a less strict comparison of this object to another.

                +

                Parameters

                • object: any

                  The object to compare.

                  +

                Returns boolean

                True or false.

                +
              • Refresh the object from storage. (Bypasses Nymph's cache.)

                +

                If the object has been deleted from storage, the database cannot be +reached, or a database error occurs, refresh() will return 0.

                +

                Returns Promise<boolean | 0>

                False if the data has not been saved, 0 if it can't be refreshed, true on success.

                +
              \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/interfaces/_nymphjs_client.EntityInterface.html b/static/api/1.0.0-beta.81/interfaces/_nymphjs_client.EntityInterface.html new file mode 100644 index 0000000..f88df04 --- /dev/null +++ b/static/api/1.0.0-beta.81/interfaces/_nymphjs_client.EntityInterface.html @@ -0,0 +1,86 @@ +EntityInterface | Nymph.js 1.0.0-beta.81

              Entity interface.

              +
              interface EntityInterface {
                  $nymph: Nymph;
                  cdate: null | number;
                  guid: null | string;
                  mdate: null | number;
                  tags: string[];
                  $addTag(...tags): void;
                  $arraySearch(array, strict?): number;
                  $delete(): Promise<boolean>;
                  $equals(object): boolean;
                  $getPatch(): EntityPatch;
                  $hasTag(...tags): boolean;
                  $inArray(array, strict?): boolean;
                  $init(entityJson): EntityInterface;
                  $is(object): boolean;
                  $patch(): Promise<boolean>;
                  $refresh(): Promise<boolean | 0>;
                  $removeTag(...tags): void;
                  $save(): Promise<boolean>;
                  $serverCall(method, params, stateless): Promise<any>;
                  $toReference(): EntityReference | EntityInterface;
                  $wake(): Promise<EntityInterface>;
                  $wakeAll(level?): Promise<EntityInterface>;
              }

              Hierarchy (view full)

              Implemented by

              Properties

              $nymph: Nymph

              The instance of Nymph to use for queries.

              +
              cdate: null | number

              The creation date of the entity as a Unix timestamp in milliseconds.

              +
              guid: null | string

              The entity's Globally Unique ID.

              +

              This is a 12 byte number represented as a lower case HEX string (24 +characters).

              +
              mdate: null | number

              The modified date of the entity as a Unix timestamp in milliseconds.

              +
              tags: string[]

              Array of the entity's tags.

              +

              Methods

              • Search the array for this object and return the corresponding index.

                +

                If strict is false, is() is used to compare. If strict is true, +equals() is used.

                +

                Parameters

                • array: any[]

                  The array to search.

                  +
                • Optional strict: boolean

                  Whether to use stronger comparison.

                  +

                Returns number

                The index if the object is in the array, -1 if it isn't.

                +
              • Check that the entity has all of the given tags.

                +

                Parameters

                • Rest ...tags: string[]

                  List of tags.

                  +

                Returns boolean

                True or false.

                +
              • Check whether this object is in an array.

                +

                If strict is false, is() is used to compare. If strict is true, +equals() is used.

                +

                Parameters

                • array: any[]

                  The array to search.

                  +
                • Optional strict: boolean

                  Whether to use stronger comparison.

                  +

                Returns boolean

                True if the object is in the array, false if it isn't.

                +
              • Refresh the object from storage. (Bypasses Nymph's cache.)

                +

                If the object has been deleted from storage, the database cannot be +reached, or a database error occurs, refresh() will return 0.

                +

                Returns Promise<boolean | 0>

                False if the data has not been saved, 0 if it can't be refreshed, true on success.

                +
              • Call an instance method on the server version of this entity.

                +

                The entity's data will be sent up to the server as well, so the server's +state can match the client's state. It won't be propagated into the DB, +though.

                +

                Parameters

                • method: string

                  The name of the method.

                  +
                • params: Iterable<any>

                  The parameters to call the method with.

                  +
                • stateless: boolean

                  Whether the server should return, and the client update, the data in the entity after the method has run.

                  +

                Returns Promise<any>

                The value that the method on the server returned.

                +
              • Ready this entity's data, and the data of entity's within this one's.

                +

                Parameters

                • Optional level: number

                  The number of levels deep to wake. If undefined, it will keep going until there are no more entities. (Careful of infinite loops.)

                  +

                Returns Promise<EntityInterface>

                The entity.

                +
              \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/interfaces/_nymphjs_driver_mysql.MySQLDriverConfig.html b/static/api/1.0.0-beta.81/interfaces/_nymphjs_driver_mysql.MySQLDriverConfig.html new file mode 100644 index 0000000..abba644 --- /dev/null +++ b/static/api/1.0.0-beta.81/interfaces/_nymphjs_driver_mysql.MySQLDriverConfig.html @@ -0,0 +1,35 @@ +MySQLDriverConfig | Nymph.js 1.0.0-beta.81

              MySQL Driver Config

              +
              interface MySQLDriverConfig {
                  customPoolConfig: null | PoolOptions;
                  database: string;
                  engine: string;
                  foreignKeys: boolean;
                  host: string;
                  password: string;
                  port: number;
                  prefix: string;
                  rowLocking: boolean;
                  tableLocking: boolean;
                  transactions: boolean;
                  user: string;
              }

              Properties

              customPoolConfig: null | PoolOptions

              If you need to use custom options, like SSL, you can provide them here in +place of the above options.

              +
              database: string

              The MySQL database.

              +
              engine: string

              The MySQL table engine.

              +

              You should use MYISAM if you are using MySQL < 5.6.

              +

              Options are: Any MySQL storage engine supported on your server.

              +
              foreignKeys: boolean

              Whether to use foreign keys. If your table engine doesn't support +it (like MYISAM), you should turn this off.

              +
              host: string

              The host on which to connect to MySQL. Can include a port, like +hostname:port.

              +
              password: string

              The MySQL password.

              +
              port: number

              The port on which to connect to MySQL.

              +
              prefix: string

              The MySQL table name prefix.

              +
              rowLocking: boolean

              Whether to use row locking. If your table engine doesn't support +it (like MYISAM), you should turn this off.

              +
              tableLocking: boolean

              Whether to use table locking. If you use row locking, this should be off. +If you can't use row locking (like with MYISAM), you can use table +locking to ensure data consistency.

              +
              transactions: boolean

              Whether to use transactions. If your table engine doesn't support +it (like MYISAM), you should turn this off.

              +
              user: string

              The MySQL user.

              +
              \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/interfaces/_nymphjs_driver_postgresql.PostgreSQLDriverConfig.html b/static/api/1.0.0-beta.81/interfaces/_nymphjs_driver_postgresql.PostgreSQLDriverConfig.html new file mode 100644 index 0000000..c0343e2 --- /dev/null +++ b/static/api/1.0.0-beta.81/interfaces/_nymphjs_driver_postgresql.PostgreSQLDriverConfig.html @@ -0,0 +1,18 @@ +PostgreSQLDriverConfig | Nymph.js 1.0.0-beta.81

              PostgreSQL Driver Config

              +
              interface PostgreSQLDriverConfig {
                  customPoolConfig: null | PoolConfig;
                  database: string;
                  host: string;
                  password: string;
                  port: number;
                  prefix: string;
                  user: string;
              }

              Properties

              customPoolConfig: null | PoolConfig

              If you need to use custom options, like SSL, you can provide them here in +place of the above options.

              +
              database: string

              The Postgres database.

              +
              host: string

              The host on which to connect to Postgres. Can include a port, like +hostname:port.

              +
              password: string

              The Postgres password.

              +
              port: number

              The port on which to connect to Postgres.

              +
              prefix: string

              The Postgres table name prefix.

              +
              user: string

              The Postgres user.

              +
              \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/interfaces/_nymphjs_driver_sqlite3.SQLite3DriverConfig.html b/static/api/1.0.0-beta.81/interfaces/_nymphjs_driver_sqlite3.SQLite3DriverConfig.html new file mode 100644 index 0000000..d1d6797 --- /dev/null +++ b/static/api/1.0.0-beta.81/interfaces/_nymphjs_driver_sqlite3.SQLite3DriverConfig.html @@ -0,0 +1,40 @@ +SQLite3DriverConfig | Nymph.js 1.0.0-beta.81

              SQLite3 Driver Config

              +
              interface SQLite3DriverConfig {
                  explicitWrite: boolean;
                  fileMustExist: boolean;
                  filename: string;
                  pragmas: string[];
                  prefix: string;
                  timeout: number;
                  verbose: undefined | ((message?, ...additionalArgs) => void);
                  wal: boolean;
              }

              Properties

              explicitWrite: boolean

              Open explicitly for writing.

              +

              By default, the driver will always open the DB as readonly, and attempt to +open another link to perform write operations. If you know that only one +instance will be writing, you can force the driver to open for writing by +default, which will block any other instance from opening it for writing.

              +

              One thing to note is that starting a transaction is a write operation, so +as long as an instance is in a transaction, no other instances can write.

              +

              PubSub also needs to open the DB, and it only needs read access.

              +
              fileMustExist: boolean

              If the file does not exist, an Error will be thrown instead of creating a +new file.

              +

              This option is ignored for in-memory, temporary, or readonly database +connections.

              +
              filename: string

              The filename of the SQLite3 DB. Use ':memory:' for an in-memory DB.

              +
              pragmas: string[]

              Additional pragma statements to run upon connection.

              +

              The default pragmas:

              +
                +
              • journal_mode = WAL; +(if wal is set to true)
              • +
              • encoding = "UTF-8";
              • +
              • foreign_keys = 1;
              • +
              • case_sensitive_like = 1;
              • +
              +

              (Don't include the PRAGMA keyword, but do include the semicolon.)

              +
              prefix: string

              The SQLite3 table name prefix.

              +
              timeout: number

              The timeout to use for waiting for the DB to become available.

              +
              verbose: undefined | ((message?, ...additionalArgs) => void)

              Function that gets called with every SQL string executed.

              +

              Type declaration

                • (message?, ...additionalArgs): void
                • Parameters

                  • Optional message: any
                  • Rest ...additionalArgs: any[]

                  Returns void

              wal: boolean

              Turn on WAL mode.

              +

              This will generally increase performance, but does mean that the DB must be +on a local disk.

              +

              See: https://www.sqlite.org/wal.html

              +
              \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/interfaces/_nymphjs_nymph.Config.html b/static/api/1.0.0-beta.81/interfaces/_nymphjs_nymph.Config.html new file mode 100644 index 0000000..66cb5d4 --- /dev/null +++ b/static/api/1.0.0-beta.81/interfaces/_nymphjs_nymph.Config.html @@ -0,0 +1,19 @@ +Config | Nymph.js 1.0.0-beta.81

              Nymph Config

              +
              interface Config {
                  cache: boolean;
                  cacheLimit: number;
                  cacheThreshold: number;
                  debugError: ((source, message) => void);
                  debugInfo: ((source, message) => void);
                  debugLog: ((source, message) => void);
                  emptyListError: boolean;
              }

              Properties

              cache: boolean

              Cache recently retrieved entities to speed up database queries. Uses more +memory.

              +
              cacheLimit: number

              The number of recently retrieved entities to cache. If you're running out +of memory, try lowering this value. 0 means unlimited.

              +
              cacheThreshold: number

              Cache entities after they're accessed this many times.

              +
              debugError: ((source, message) => void)

              A function to log error messages. By default, uses the debug package.

              +

              Type declaration

                • (source, message): void
                • Parameters

                  • source: string
                  • message: string

                  Returns void

              debugInfo: ((source, message) => void)

              A function to log info messages. By default, uses the debug package.

              +

              Type declaration

                • (source, message): void
                • Parameters

                  • source: string
                  • message: string

                  Returns void

              debugLog: ((source, message) => void)

              A function to log debug messages. By default, uses the debug package.

              +

              Type declaration

                • (source, message): void
                • Parameters

                  • source: string
                  • message: string

                  Returns void

              emptyListError: boolean

              When querying for multiple entities with NymphREST, if the list is empty, +return a 404 error.

              +
              \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/interfaces/_nymphjs_nymph.DataObjectInterface.html b/static/api/1.0.0-beta.81/interfaces/_nymphjs_nymph.DataObjectInterface.html new file mode 100644 index 0000000..a849eb4 --- /dev/null +++ b/static/api/1.0.0-beta.81/interfaces/_nymphjs_nymph.DataObjectInterface.html @@ -0,0 +1,37 @@ +DataObjectInterface | Nymph.js 1.0.0-beta.81

              Data Object interface.

              +

              Objects which hold data from some type of storage.

              +
              interface DataObjectInterface {
                  $arraySearch(array, strict?): number;
                  $delete(): Promise<boolean>;
                  $equals(object): boolean;
                  $inArray(array, strict?): boolean;
                  $is(object): boolean;
                  $refresh(): Promise<boolean | 0>;
                  $save(): Promise<boolean>;
                  [k: string]: any;
              }

              Hierarchy (view full)

              Indexable

              [k: string]: any

              The object's data.

              +

              Methods

              • Search the array for this object and return the corresponding index.

                +

                If strict is false, is() is used to compare. If strict is true, +equals() is used.

                +

                Parameters

                • array: any[]

                  The array to search.

                  +
                • Optional strict: boolean

                  Whether to use stronger comparison.

                  +

                Returns number

                The index if the object is in the array, -1 if it isn't.

                +
              • Perform a more strict comparison of this object to another.

                +

                Parameters

                • object: any

                  The object to compare.

                  +

                Returns boolean

                True or false.

                +
              • Check whether this object is in an array.

                +

                If strict is false, is() is used to compare. If strict is true, +equals() is used.

                +

                Parameters

                • array: any[]

                  The array to search.

                  +
                • Optional strict: boolean

                  Whether to use stronger comparison.

                  +

                Returns boolean

                True if the object is in the array, false if it isn't.

                +
              • Perform a less strict comparison of this object to another.

                +

                Parameters

                • object: any

                  The object to compare.

                  +

                Returns boolean

                True or false.

                +
              • Refresh the object from storage. (Bypasses Nymph's cache.)

                +

                If the object has been deleted from storage, the database cannot be +reached, or a database error occurs, refresh() will return 0.

                +

                Returns Promise<boolean | 0>

                False if the data has not been saved, 0 if it can't be refreshed, true on success.

                +
              \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/interfaces/_nymphjs_nymph.EntityInterface.html b/static/api/1.0.0-beta.81/interfaces/_nymphjs_nymph.EntityInterface.html new file mode 100644 index 0000000..e1d6a7f --- /dev/null +++ b/static/api/1.0.0-beta.81/interfaces/_nymphjs_nymph.EntityInterface.html @@ -0,0 +1,135 @@ +EntityInterface | Nymph.js 1.0.0-beta.81

              Entity interface.

              +
              interface EntityInterface {
                  $nymph: Nymph;
                  cdate: null | number;
                  guid: null | string;
                  mdate: null | number;
                  tags: string[];
                  $addTag(...tags): void;
                  $arraySearch(array, strict?): number;
                  $clearCache(): void;
                  $delete(): Promise<boolean>;
                  $equals(object): boolean;
                  $getClientEnabledMethods(): string[];
                  $getCurrentAcValues(): ACProperties;
                  $getData(includeSData?): EntityData;
                  $getOriginalAcValues(): ACProperties;
                  $getSData(): SerializedEntityData;
                  $getTags(): string[];
                  $getUniques(): Promise<string[]>;
                  $getValidatable(): Object;
                  $hasTag(...tags): boolean;
                  $inArray(array, strict?): boolean;
                  $is(object): boolean;
                  $jsonAcceptData(input, allowConflict?): void;
                  $jsonAcceptPatch(patch, allowConflict?): void;
                  $putData(data, sdata?): void;
                  $refresh(): Promise<boolean | 0>;
                  $removeTag(...tags): void;
                  $save(): Promise<boolean>;
                  $toReference(): EntityInterface | EntityReference;
                  $useSkipAc(useSkipAc): void;
              }

              Hierarchy (view full)

              Implemented by

              Properties

              $nymph: Nymph

              The instance of Nymph to use for queries.

              +
              cdate: null | number

              The creation date of the entity as a Unix timestamp in milliseconds.

              +
              guid: null | string

              The entity's Globally Unique ID.

              +

              This is a 12 byte number represented as a lower case HEX string (24 +characters).

              +
              mdate: null | number

              The modified date of the entity as a Unix timestamp in milliseconds.

              +
              tags: string[]

              Array of the entity's tags.

              +

              Methods

              • Search the array for this object and return the corresponding index.

                +

                If strict is false, is() is used to compare. If strict is true, +equals() is used.

                +

                Parameters

                • array: any[]

                  The array to search.

                  +
                • Optional strict: boolean

                  Whether to use stronger comparison.

                  +

                Returns number

                The index if the object is in the array, -1 if it isn't.

                +
              • Replace any referenced entities in the data with sleeping references.

                +

                Calling this function ensures that the next time a referenced entity is +accessed, it will be retrieved from the DB (unless it is in Nymph's cache).

                +

                Returns void

              • Get the client enabled methods.

                +

                Returns string[]

                The names of methods allowed to be called by the frontend with serverCall.

                +
              • Used to retrieve the data object.

                +

                This should only be used by Nymph to save the data into storage.

                +

                Parameters

                • Optional includeSData: boolean

                  Whether to include the serialized data as well.

                  +

                Returns EntityData

                The entity's data object.

                +
              • Used to retrieve the serialized data object.

                +

                This should only be used by Nymph to save the data object into storage.

                +

                This method is used by Nymph to avoid unserializing data that hasn't been +requested yet.

                +

                It should always be called after getData().

                +

                Returns SerializedEntityData

                The entity's serialized data object.

                +
              • Get the entity's tags.

                +

                Using this instead of accessing the tags prop directly will wake sleeping +references.

                +

                Returns string[]

                The entity's tags.

                +
              • Get an array of strings that must be unique across the current etype.

                +

                When you try to save another entity with any of the same unique strings, +Nymph will throw an error.

                +

                The default implementation of this method returns an empty array, meaning +there are no uniqueness constraints applied to its etype.

                +

                Returns Promise<string[]>

                Resolves to an array of entity's unique constraint strings.

                +
              • Get an object that holds the same data as the entity.

                +

                This provides an object that can be validated.

                +

                Returns Object

                A pure object representation of the entity.

                +
              • Check that the entity has all of the given tags.

                +

                Parameters

                • Rest ...tags: string[]

                  List of tags.

                  +

                Returns boolean

                True or false.

                +
              • Check whether this object is in an array.

                +

                If strict is false, is() is used to compare. If strict is true, +equals() is used.

                +

                Parameters

                • array: any[]

                  The array to search.

                  +
                • Optional strict: boolean

                  Whether to use stronger comparison.

                  +

                Returns boolean

                True if the object is in the array, false if it isn't.

                +
              • Accept JSON data from the client.

                +

                This function uses the security protection lists:

                +
                  +
                • $protectedTags
                • +
                • $protectedData
                • +
                • $allowlistTags
                • +
                • $allowlistData
                • +
                +

                Parameters

                • input: EntityJson

                  The input data. Please note, this will be modified (destroyed).

                  +
                • Optional allowConflict: boolean

                  Allow to accept data that is older than the current data.

                  +

                Returns void

              • Accept JSON patch from the client.

                +

                This function uses the security protection lists:

                +
                  +
                • $protectedTags
                • +
                • $protectedData
                • +
                • $allowlistTags
                • +
                • $allowlistData
                • +
                +

                Parameters

                • patch: EntityPatch

                  The patch data. Please note, this will be modified (destroyed).

                  +
                • Optional allowConflict: boolean

                  Allow to accept data that is older than the current data.

                  +

                Returns void

              • Used to set the data.

                +

                This should only be used by Nymph to push the data from storage.

                +

                sdata is used by Nymph to avoid unserializing data that hasn't been +requested yet.

                +

                Parameters

                Returns void

              • Refresh the object from storage. (Bypasses Nymph's cache.)

                +

                If the object has been deleted from storage, the database cannot be +reached, or a database error occurs, refresh() will return 0.

                +

                Returns Promise<boolean | 0>

                False if the data has not been saved, 0 if it can't be refreshed, true on success.

                +
              • Set whether to use "skipAc" when accessing entity references.

                +

                Parameters

                • useSkipAc: boolean

                  True or false, whether to use it.

                  +

                Returns void

              \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/interfaces/_nymphjs_nymph.TilmeldInterface.html b/static/api/1.0.0-beta.81/interfaces/_nymphjs_nymph.TilmeldInterface.html new file mode 100644 index 0000000..7bd66b3 --- /dev/null +++ b/static/api/1.0.0-beta.81/interfaces/_nymphjs_nymph.TilmeldInterface.html @@ -0,0 +1,12 @@ +TilmeldInterface | Nymph.js 1.0.0-beta.81
              interface TilmeldInterface {
                  nymph: Nymph;
                  request: any;
                  response: any;
                  authenticate(skipXsrfToken?, skipRenew?): Promise<boolean>;
                  checkClientUIDPermissions(name, type?): Promise<boolean>;
                  clearSession(): void;
                  clone(): TilmeldInterface;
                  extractToken(token): Promise<any>;
                  fillSession(user): Promise<void>;
                  gatekeeper(ability?): boolean;
                  init(nymph): void;
              }

              Implemented by

                Properties

                nymph: Nymph
                request: any
                response: any

                Methods

                • Parameters

                  • Optional skipXsrfToken: boolean
                  • Optional skipRenew: boolean

                  Returns Promise<boolean>

                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/interfaces/_nymphjs_pubsub.Config.html b/static/api/1.0.0-beta.81/interfaces/_nymphjs_pubsub.Config.html new file mode 100644 index 0000000..b832c04 --- /dev/null +++ b/static/api/1.0.0-beta.81/interfaces/_nymphjs_pubsub.Config.html @@ -0,0 +1,17 @@ +Config | Nymph.js 1.0.0-beta.81

                Nymph PubSub Config

                +
                interface Config {
                    broadcastCounts: boolean;
                    entries: string[];
                    logger: ((...args) => void);
                    originIsAllowed: ((origin) => boolean);
                    relays: string[];
                }

                Properties

                broadcastCounts: boolean

                Allow clients to request to be notified when other clients subscribe to the +same queries.

                +
                entries: string[]

                The URLs of the Nymph-PubSub servers to directly publish to. These servers +are how this host will enter the PubSub network. If you only have one +PubSub server, it needs to be listed here.

                +
                logger: ((...args) => void)

                Function to log PubSub info/error messages.

                +

                Type declaration

                  • (...args): void
                  • Parameters

                    • Rest ...args: any[]

                    Returns void

                originIsAllowed: ((origin) => boolean)

                Determine whether a client's origin is allowed to connect.

                +

                Type declaration

                  • (origin): boolean
                  • Parameters

                    • origin: string

                    Returns boolean

                relays: string[]

                The URLs of additional Nymph-PubSub servers to relay publishes to. If this +host is a PubSub server, these servers are how it will continue into your +PubSub network.

                +
                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/interfaces/_nymphjs_tilmeld.Config.html b/static/api/1.0.0-beta.81/interfaces/_nymphjs_tilmeld.Config.html new file mode 100644 index 0000000..32a92bc --- /dev/null +++ b/static/api/1.0.0-beta.81/interfaces/_nymphjs_tilmeld.Config.html @@ -0,0 +1,178 @@ +Config | Nymph.js 1.0.0-beta.81

                Tilmeld Config

                +
                interface Config {
                    allowRegistration: boolean;
                    allowUsernameChange: boolean;
                    appName: string;
                    appUrl: string;
                    cancelChangeRedirect: string;
                    clientEnabledUIDs: string[];
                    clientReadableUIDs: string[];
                    clientSetabledUIDs: string[];
                    configEmail: ((tilmeld, options, user) => Promise<EmailConfig<any>>);
                    cookieDomain: string;
                    cookiePath: string;
                    createAdmin: boolean;
                    emailRateLimit: string;
                    emailTemplateDir: string;
                    emailUsernames: boolean;
                    enableGroupSearch: boolean;
                    enableUserSearch: boolean;
                    generatePrimary: boolean;
                    highestPrimary: string | boolean;
                    highestSecondary: string | boolean;
                    jwtBuilder: ((config, user, switchToken?) => string);
                    jwtExpire: number;
                    jwtExtract: ((config, token, xsrfToken?) => null | {
                        expire: Date;
                        guid: string;
                        issued: Date;
                    });
                    jwtRenew: number;
                    jwtSecret: string;
                    jwtSwitchExpire: number;
                    maxUsernameLength: number;
                    minUsernameLength: number;
                    pwMethod: "salt" | "plain" | "digest";
                    pwRecovery: boolean;
                    pwRecoveryTimeLimit: string;
                    regFields: string[];
                    sendEmail: ((tilmeld, options, user) => Promise<boolean>);
                    setupPath: string;
                    unverifiedAccess: boolean;
                    userFields: string[];
                    userRegisteredRecipient: null | string;
                    validChars: string;
                    validCharsNotice: string;
                    validEmailRegex: RegExp;
                    validEmailRegexNotice: string;
                    validRegex: RegExp;
                    validRegexNotice: string;
                    validatorGroup: ((tilmeld, group) => void);
                    validatorUser: ((tilmeld, user) => void);
                    verifyChangeRedirect: string;
                    verifyEmail: boolean;
                    verifyRedirect: string;
                }

                Properties

                allowRegistration: boolean

                Allow users to register.

                +
                allowUsernameChange: boolean

                Allow users to change their username.

                +
                appName: string

                The name of the app. Used in emails sent to users and as the TOTP issuer.

                +
                appUrl: string

                The URL of the app. Used to define cookie domain, path, and security. Must +be accessible to the Tilmeld client JS. (Note, cookies are not specific to +individual ports, so tokens will be sent to any port running on this host.)

                +
                cancelChangeRedirect: string

                After the user cancels an address change, redirect them to this URL.

                +
                clientEnabledUIDs: string[]

                A list of UIDs that can be created from the client by anyone. (newUID)

                +

                Inclusion in this list implies inclusion in clientReadableUIDs.

                +

                Note: If you'd like to limit the access to logged in users, give them an + ability like "uid/new/nameofuid".

                +
                clientReadableUIDs: string[]

                A list of UIDs that can be read from the client by anyone. (getUID)

                +

                Note: If you'd like to limit the access to logged in users, give them an + ability like "uid/get/nameofuid".

                +
                clientSetabledUIDs: string[]

                A list of UIDs that can be set from the client by anyone. (setUID, +renameUID)

                +

                Inclusion in this list implies inclusion in clientReadableUIDs and +clientEnabledUIDs.

                +

                Note: There is no way to run renameUID from the client.

                +

                Note: If you'd like to limit the access to logged in users, give them an + ability like "uid/set/nameofuid".

                +
                configEmail: ((tilmeld, options, user) => Promise<EmailConfig<any>>)

                Configure an email object to prepare for sending.

                +

                You can use this, for example, for DKIM signing.

                +

                See: https://github.com/forwardemail/email-templates/blob/v8.0.9/README.md#Options

                +

                Type declaration

                  • (tilmeld, options, user): Promise<EmailConfig<any>>
                  • Parameters

                    Returns Promise<EmailConfig<any>>

                cookieDomain: string

                The domain of the auth cookie.

                +
                cookiePath: string

                The path of the auth cookie.

                +
                createAdmin: boolean

                Allow the creation of an admin user. When a user is created, if there are +no other users in the system, they will be granted all abilities.

                +
                emailRateLimit: string

                Don't let users change their email address more often than this. You can +enter one value and one unit of time, such as "2 weeks". Leave blank to +disable rate limiting.

                +

                This also controls how long a user has to cancel an email address change +from a link emailed to the old address.

                +
                emailTemplateDir: string

                The absolute path to the email template directory. Used by the default +email sender.

                +
                emailUsernames: boolean

                Instead of a "username", a user logs in and is referred to by their email +address. Enabling this after many users have been created can be messy. +Make sure they all have email addresses first.

                +
                enableGroupSearch: boolean

                Whether frontend can search groups. (Probably not a good idea if privacy is +a concern. Same risks as user search if generatePrimary is true.)

                +
                enableUserSearch: boolean

                Whether frontend can search users. (Probably not a good idea if privacy is +a concern.)

                +
                generatePrimary: boolean

                Whether to create a new primary group for every user who registers. This +can be useful for providing access to entities the user creates.

                +

                In the case this is set, the default primary group, rather than being +assigned to the user, is assigned as the parent of the generated group.

                +
                highestPrimary: string | boolean

                The GUID of the group above the highest groups allowed to be assigned as +primary groups. True means all groups, and false means no groups.

                +
                highestSecondary: string | boolean

                The GUID of the group above the highest groups allowed to be assigned as +secondary groups. True means all groups, and false means no groups.

                +
                jwtBuilder: ((config, user, switchToken?) => string)

                Function to build the JWT for user sessions.

                +

                Type declaration

                  • (config, user, switchToken?): string
                  • Parameters

                    Returns string

                jwtExpire: number

                How long from current time, in seconds, the JWT token expires.

                +
                jwtExtract: ((config, token, xsrfToken?) => null | {
                    expire: Date;
                    guid: string;
                    issued: Date;
                })

                Function to verify that a JWT was signed with the secret key, validate its +data, validate the XSRF token, and extract the GUID and dates.

                +

                If no XSRF token is supplied, ignore it.

                +

                Return false if the JWT is not valid, or an object with GUID, issued date, +and expire date otherwise.

                +

                Type declaration

                  • (config, token, xsrfToken?): null | {
                        expire: Date;
                        guid: string;
                        issued: Date;
                    }
                  • Parameters

                    • config: Config
                    • token: string
                    • Optional xsrfToken: string

                    Returns null | {
                        expire: Date;
                        guid: string;
                        issued: Date;
                    }

                jwtRenew: number

                How long, in seconds, before the JWT token expires to give the user a new +one.

                +
                jwtSecret: string

                The secret used to sign the JWT.

                +
                jwtSwitchExpire: number

                How long from current time, in seconds, the JWT token for a user switch +expires.

                +
                maxUsernameLength: number

                The maximum length for usernames. Infinity for unlimited.

                +
                minUsernameLength: number

                The minimum length for usernames.

                +
                pwMethod: "salt" | "plain" | "digest"

                Method used to store passwords. Salt is more secure if the database is +compromised. Plain: store the password in plaintext. Digest: store the +password's digest (hash). Salt: store the password's digest using a +complex, unique salt.

                +

                Digests are SHA-256, so a salt probably isn't necessary, but who knows.

                +

                Options are: "plain", "digest", "salt"

                +
                pwRecovery: boolean

                Allow users to recover their username and/or password through their +registered email.

                +
                pwRecoveryTimeLimit: string

                How long a recovery request is valid.

                +
                regFields: string[]

                These fields will be available for the user to fill in when they register.

                +
                sendEmail: ((tilmeld, options, user) => Promise<boolean>)

                Send an email to a user. Uses email-templates by default.

                +

                Check out the emails directory to see the templates used.

                +

                In addition to the specific locals for each template, there are +additional locals added by the default email sender:

                +
                  +
                • System Information
                • +
                • siteName
                • +
                • siteLink
                • +
                • Recipient Information
                • +
                • toUsername
                • +
                • toName
                • +
                • toFirstName
                • +
                • toLastName
                • +
                • toEmail
                • +
                • toPhone
                • +
                • Current User Information (Only available if a user is logged in.)
                • +
                • username
                • +
                • name
                • +
                • firstName
                • +
                • lastName
                • +
                • email
                • +
                +

                Type declaration

                  • (tilmeld, options, user): Promise<boolean>
                  • Parameters

                    Returns Promise<boolean>

                setupPath: string

                The path (with leading slash and no trailing slash) where the setup utility +is accessible. This is also used for email address verification.

                +
                +

                This portion of the app will not check for the XSRF token, so make sure +your REST endpoint is not under this URL.

                +
                +
                unverifiedAccess: boolean

                Unverified users will be able to log in, but will only have the "unverified +users" secondary group(s) until they verify their email. If set to false, +their account will instead be disabled until they verify.

                +
                userFields: string[]

                These will be the available fields for users. (Some fields, like username, +can't be excluded.)

                +
                userRegisteredRecipient: null | string

                The address you'd like to receive a notification of registered users, if +any.

                +
                validChars: string

                Only these characters can be used when creating usernames and groupnames. +(Doesn't apply to emails as usernames.)

                +
                validCharsNotice: string

                When a user enters an invalid name, this message will be displayed.

                +
                validEmailRegex: RegExp

                Email addresses must match this regular expression. By default, this uses +the regex from the W3C HTML email element validation:

                +

                https://html.spec.whatwg.org/multipage/input.html#email-state-(type=email)

                +
                validEmailRegexNotice: string

                When a user enters an email that doesn't match the regex, this message will +be displayed.

                +
                validRegex: RegExp

                Usernames and groupnames must match this regular expression. (Doesn't apply +to emails as usernames.) By default, this ensures that the name begins and +ends with an alphanumeric. (To allow anything, use .* inside the slashes.)

                +
                validRegexNotice: string

                When a user enters a name that doesn't match the regex, this message will +be displayed.

                +
                validatorGroup: ((tilmeld, group) => void)

                The validator used to check groups before saving.

                +

                Type declaration

                validatorUser: ((tilmeld, user) => void)

                The validator used to check users before saving.

                +

                Type declaration

                verifyChangeRedirect: string

                After the user verifies an address change, redirect them to this URL.

                +
                verifyEmail: boolean

                Verify users' email addresses upon registration/email change before +allowing them to log in/change it.

                +
                verifyRedirect: string

                After the user verifies their address, redirect them to this URL.

                +
                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/modules/_nymphjs_client.html b/static/api/1.0.0-beta.81/modules/_nymphjs_client.html new file mode 100644 index 0000000..3fea9f9 --- /dev/null +++ b/static/api/1.0.0-beta.81/modules/_nymphjs_client.html @@ -0,0 +1,73 @@ +@nymphjs/client - v1.0.0-beta.81 | Nymph.js 1.0.0-beta.81

                Module @nymphjs/client - v1.0.0-beta.81

                Nymph Client

                Powerful object data storage and querying.

                +

                The Nymph Client allows you to query and push data to a Nymph REST server from the browser. You can also subscribe to entities and queries on a Nymph PubSub server and be notified of changes.

                +

                Installation

                npm install --save @nymphjs/client
                +
                +

                This package is the Nymph client for browsers. You can find UMD in dist, or TS source in src. There is also a Node.js client.

                +

                Usage

                Here's an overview:

                +
                import { Nymph, PubSub } from '@nymphjs/client';
                import TodoClass from 'Todo';

                const nymphOptions = {
                restUrl: 'https://yournymphrestserver/path/to/your/endpoint',
                pubsubUrl: 'wss://yournymphpubsubserver',
                };
                const nymph = new Nymph(nymphOptions);
                const pubsub = new PubSub(nymphOptions, nymph);
                const Todo = nymph.addEntityClass(TodoClass);

                // Now you can use Nymph and PubSub.
                const myTodo = new Todo();
                myTodo.name = 'This is a new todo!';
                myTodo.done = false;
                await myTodo.$save();

                let allMyTodos = await nymph.getEntities({ class: Todo });

                let subscription = pubsub.subscribeWith(myTodo, () => {
                // When this is called, the entity will already contain new data from the
                // publish event. If the entity is deleted, the GUID will be set to null.
                if (myTodo.guid != null) {
                alert('Somebody touched my todo!');
                } else {
                alert('Somebody deleted my todo!');
                subscription.unsubscribe();
                }
                });

                // ...

                // Subscribing to a query.
                let todos = [];
                let userCount = 0;
                let subscription = pubsub.subscribeEntities(
                {
                class: Todo.class,
                },
                {
                type: '&',
                '!tag': 'archived',
                },
                )(
                (update) => {
                // The first time this is called, `update` will be an array of Todo
                // entities. After that, `update` will be a publish event object.

                // This takes an existing array of entities and either updates it to match
                // another array, or performs actions from a publish event object to update
                // it.
                pubsub.updateArray(todos, update);

                // `todos` is now up to date with the latest publishes from the server.
                },
                (err) => alert(err),
                (count) => {
                // If you provide this callback, the server will send updates of how many
                // clients are subscribed to this query.
                userCount = count;
                },
                );

                // ...

                // Remember to clean up your subscriptions when you no longer need them.
                subscription.unsubscribe(); +
                +

                License

                Copyright 2021 SciActive Inc

                +

                Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at

                +
                http://www.apache.org/licenses/LICENSE-2.0
                +
                +

                Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License.

                +

                Index

                Classes

                Interfaces

                Type Aliases

                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/modules/_nymphjs_client_node.html b/static/api/1.0.0-beta.81/modules/_nymphjs_client_node.html new file mode 100644 index 0000000..a55f1b6 --- /dev/null +++ b/static/api/1.0.0-beta.81/modules/_nymphjs_client_node.html @@ -0,0 +1,26 @@ +@nymphjs/client-node - v1.0.0-beta.81 | Nymph.js 1.0.0-beta.81

                Module @nymphjs/client-node - v1.0.0-beta.81

                Nymph Node Client

                Powerful object data storage and querying.

                +

                The Nymph Node Client lets you do everything the Nymph Client does, but from Node.JS instead of the browser.

                +

                Installation

                npm install --save @nymphjs/client-node
                +
                +

                This package is the Nymph client for Node.js. You can find CJS in dist, or TS source in src. There is also a browser client.

                +

                This package provides fetch and WebSocket ponyfills to Nymph and handles Tilmeld auth tokens.

                +

                Usage

                To use, require it instead of @nymphjs/client:

                +
                const { Nymph, PubSub } = require('@nymphjs/client-node');
                +
                +

                Then set up Nymph and PubSub like normal:

                +
                const nymphOptions = {
                restUrl: 'https://yournymphrestserver/path/to/your/endpoint',
                pubsubUrl: 'wss://yournymphpubsubserver',
                };
                const nymph = new Nymph(nymphOptions);
                const pubsub = new PubSub(nymphOptions, nymph); +
                +

                License

                Copyright 2021 SciActive Inc

                +

                Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at

                +
                http://www.apache.org/licenses/LICENSE-2.0
                +
                +

                Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License.

                +

                Index

                Classes

                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/modules/_nymphjs_driver_mysql.html b/static/api/1.0.0-beta.81/modules/_nymphjs_driver_mysql.html new file mode 100644 index 0000000..5819a46 --- /dev/null +++ b/static/api/1.0.0-beta.81/modules/_nymphjs_driver_mysql.html @@ -0,0 +1,24 @@ +@nymphjs/driver-mysql - v1.0.0-beta.81 | Nymph.js 1.0.0-beta.81

                Module @nymphjs/driver-mysql - v1.0.0-beta.81

                Nymph MySQL Driver

                Powerful object data storage and querying.

                +

                The MySQL driver lets you configure Nymph to query and save data to a MySQL database.

                +

                Installation

                npm install --save @nymphjs/driver-mysql
                +
                +

                Usage

                Supply an instance of this driver with its configuration to Nymph's constructor.

                +
                import { Nymph } from '@nymphjs/nymph';
                import MySQLDriver from '@nymphjs/driver-mysql';

                const mysqlConfig = {
                host: 'your_db_host',
                database: 'your_database',
                user: 'your_user',
                password: 'your_password',
                };

                const nymph = new Nymph({}, new MySQLDriver(mysqlConfig));

                // All done. Nymph is ready to use. +
                +

                Options

                See the config declaration file.

                +

                License

                Copyright 2021 SciActive Inc

                +

                Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at

                +
                http://www.apache.org/licenses/LICENSE-2.0
                +
                +

                Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License.

                +

                References

                Classes

                Interfaces

                Variables

                References

                Renames and re-exports MySQLDriver
                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/modules/_nymphjs_driver_postgresql.html b/static/api/1.0.0-beta.81/modules/_nymphjs_driver_postgresql.html new file mode 100644 index 0000000..0c3940a --- /dev/null +++ b/static/api/1.0.0-beta.81/modules/_nymphjs_driver_postgresql.html @@ -0,0 +1,24 @@ +@nymphjs/driver-postgresql - v1.0.0-beta.81 | Nymph.js 1.0.0-beta.81

                Module @nymphjs/driver-postgresql - v1.0.0-beta.81

                Nymph PostgreSQL Driver

                Powerful object data storage and querying.

                +

                The PostgreSQL driver lets you configure Nymph to query and save data to a Postgres database.

                +

                Installation

                npm install --save @nymphjs/driver-postgresql
                +
                +

                Usage

                Supply an instance of this driver with its configuration to Nymph's constructor.

                +
                import { Nymph } from '@nymphjs/nymph';
                import PostgreSQLDriver from '@nymphjs/driver-postgresql';

                const postgresqlConfig = {
                host: 'your_db_host',
                database: 'your_database',
                user: 'your_user',
                password: 'your_password',
                };

                const nymph = new Nymph({}, new PostgreSQLDriver(postgresqlConfig));

                // All done. Nymph is ready to use. +
                +

                Options

                See the config declaration file.

                +

                License

                Copyright 2021 SciActive Inc

                +

                Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at

                +
                http://www.apache.org/licenses/LICENSE-2.0
                +
                +

                Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License.

                +

                References

                Renames and re-exports PostgreSQLDriver
                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/modules/_nymphjs_driver_sqlite3.html b/static/api/1.0.0-beta.81/modules/_nymphjs_driver_sqlite3.html new file mode 100644 index 0000000..4755a52 --- /dev/null +++ b/static/api/1.0.0-beta.81/modules/_nymphjs_driver_sqlite3.html @@ -0,0 +1,24 @@ +@nymphjs/driver-sqlite3 - v1.0.0-beta.81 | Nymph.js 1.0.0-beta.81

                Module @nymphjs/driver-sqlite3 - v1.0.0-beta.81

                Nymph SQLite3 Driver

                Powerful object data storage and querying.

                +

                The SQLite3 driver lets you configure Nymph to query and save data to a SQLite3 database. This includes an in memory SQLite3 database.

                +

                Installation

                npm install --save @nymphjs/driver-sqlite3
                +
                +

                Usage

                Supply an instance of this driver with its configuration to Nymph's constructor.

                +
                import { Nymph } from '@nymphjs/nymph';
                import SQLite3Driver from '@nymphjs/driver-sqlite3';

                const sqliteConfig = {
                filename: __dirname + '/mydatabase.db',
                };

                const nymph = new Nymph({}, new SQLite3Driver(sqliteConfig));

                // All done. Nymph is ready to use. +
                +

                Options

                See the config declaration file.

                +

                License

                Copyright 2021 SciActive Inc

                +

                Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at

                +
                http://www.apache.org/licenses/LICENSE-2.0
                +
                +

                Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License.

                +

                References

                Classes

                Interfaces

                Variables

                References

                Renames and re-exports SQLite3Driver
                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/modules/_nymphjs_guid.html b/static/api/1.0.0-beta.81/modules/_nymphjs_guid.html new file mode 100644 index 0000000..e20c5cd --- /dev/null +++ b/static/api/1.0.0-beta.81/modules/_nymphjs_guid.html @@ -0,0 +1,24 @@ +@nymphjs/guid - v1.0.0-beta.81 | Nymph.js 1.0.0-beta.81

                Module @nymphjs/guid - v1.0.0-beta.81

                Nymph GUID / Unique Code Generator

                Powerful object data storage and querying.

                +

                The GUID and unique code generators are used to generate new GUIDs for Nymph objects and various random unique strings.

                +

                Installation

                npm install --save @nymphjs/guid
                +
                +

                Usage

                There are a few functions for generating different kinds of strings.

                +
                import {
                guid,
                makeTableSuffix,
                humanSecret,
                nanoid,
                customAlphabet,
                } from '@nymphjs/guid';

                // This generates a GUID. It will be 24 characters long, and the first four
                // characters will be the same during a whole week. (This helps make DB index
                // paging more efficient.)
                const myGuid = guid();

                // This can be used as a table suffix in SQL queries. It will be 20 characters
                // long and alphanumeric.
                const myTableSuffix = makeTableSuffix();

                // This will be a human readable secret code. It will be 10 characters long and
                // use the nolookalikesSafe dictionary from nanoid-dictionary.
                const mySecretCode = humanSecret();

                // This is the nanoid library's main export. It is exported in commonjs format.
                const id = nanoid();

                // This is the nanoid library's customAlphabet export.
                const customId = customAlphabet('abc', 20)(); +
                +

                License

                Copyright 2021 SciActive Inc

                +

                Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at

                +
                http://www.apache.org/licenses/LICENSE-2.0
                +
                +

                Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License.

                +

                Index

                Functions

                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/modules/_nymphjs_nymph.html b/static/api/1.0.0-beta.81/modules/_nymphjs_nymph.html new file mode 100644 index 0000000..6268462 --- /dev/null +++ b/static/api/1.0.0-beta.81/modules/_nymphjs_nymph.html @@ -0,0 +1,99 @@ +@nymphjs/nymph - v1.0.0-beta.81 | Nymph.js 1.0.0-beta.81

                Module @nymphjs/nymph - v1.0.0-beta.81

                Nymph

                Powerful object data storage and querying.

                +

                The Nymph core provides the base level classes and utilities to query the database, save data to it, and define different data types.

                +

                Installation

                npm install --save @nymphjs/nymph
                +
                +

                Drivers

                To use Nymph, you need a database driver. Nymph.js provides a MySQL driver, a PostgreSQL driver, and a SQLite3 driver. They all provide the exact same functionality.

                +

                Usage

                Here's an overview:

                +
                // main.ts
                import { Nymph } from '@nymphjs/nymph';
                import MySQLDriver from '@nymphjs/driver-mysql';
                import TodoClass from './Todo';

                const mysqlConfig = {
                host: 'your_db_host',
                database: 'your_database',
                user: 'your_user',
                password: 'your_password',
                };

                // Create a new instance of Nymph.
                const nymph = new Nymph({}, new MySQLDriver(mysqlConfig));
                // addEntityClass returns the class you should use for this instance of Nymph.
                const Todo = nymph.addEntityClass(TodoClass);

                // You are set up. Now you can use entity classes like `Todo` to store data,
                // and Nymph's query methods like `getEntities` to retrieve them.

                async function run() {
                const myEntity = await Todo.factory();
                myEntity.text = 'Get it done!';
                await myEntity.$save();

                const otherPendingTodos = await nymph.getEntities(
                { class: Todo },
                { type: '&', '!guid': myEntity.guid, equal: ['done', false] },
                );

                const total = otherPendingTodos.length;
                const single = total === 1;
                console.log(
                `Besides the one I just created, there ${
                single ? 'is' : 'are'
                } ${total} pending todo${single ? '' : 's'} in the database.`,
                );
                } +
                +
                // Todo.ts
                import { Entity } from '@nymphjs/nymph';

                export type TodoData = {
                text: string;
                done: boolean;
                };

                export default class Todo extends Entity<TodoData> {
                static ETYPE = 'todo'; // This is used for the table name(s) in the DB.
                static class = 'Todo'; // This is used to map references to their class.

                constructor() {
                super();

                // Within the methods of an entity, you will use `this.$data` to access
                // its data. Outside, you don't need the $data part.
                this.$data.text = '';
                this.$data.done = false;
                }

                async $getOtherTodos() {
                // this.$nymph (or this.nymph in a static function) is the instance of Nymph
                // this entity was loaded with. Creating transactions will create a new
                // instance of Nymph, so it could be a transactional instance.
                const otherTodos = await this.$nymph.getEntities(
                { class: Todo },
                { type: '!&', guid: this.guid },
                );
                return otherTodos;
                }
                } +
                +

                Options

                See the config declaration file.

                +

                License

                Copyright 2021 SciActive Inc

                +

                Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at

                +
                http://www.apache.org/licenses/LICENSE-2.0
                +
                +

                Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License.

                +

                Index

                Enumerations

                Classes

                Interfaces

                Type Aliases

                Variables

                Functions

                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/modules/_nymphjs_pubsub.html b/static/api/1.0.0-beta.81/modules/_nymphjs_pubsub.html new file mode 100644 index 0000000..0d8a073 --- /dev/null +++ b/static/api/1.0.0-beta.81/modules/_nymphjs_pubsub.html @@ -0,0 +1,41 @@ +@nymphjs/pubsub - v1.0.0-beta.81 | Nymph.js 1.0.0-beta.81

                Module @nymphjs/pubsub - v1.0.0-beta.81

                Nymph PubSub Server

                Powerful object data storage and querying.

                +

                The PubSub server provides a WebSocket server that allows Nymph to publish changes and the Nymph Client to subscribe to those changes. You can subscribe to individual entities, entity queries, or UIDs.

                +

                Installation

                npm install --save @nymphjs/pubsub
                +
                +

                Usage

                Any Nymph instance will only publish changes if you initialize PubSub publisher before Nymph is used! This step is absolutely required to have a working PubSub system.

                +
                import SQLite3Driver from '@nymphjs/driver-sqlite3';
                import { Nymph } from '@nymphjs/nymph';
                import { PubSub } from '@nymphjs/pubsub';

                const pubSubConfig = {
                entries: ['ws://yourpubsubserver.tld:8080/'], // This should be set to your PubSub server URL(s).
                };

                const nymph = new Nymph(
                {},
                new SQLite3Driver({
                filename: ':memory:', // Put the correct driver/config here.
                }),
                );
                PubSub.initPublisher(pubSubConfig, nymph); +
                +

                Now, on your PubSub server, you can use the createServer function to create a new PubSub server using HTTP (without TLS). If you want, this can be done on the same server you use as a REST server, with a different port.

                +
                import SQLite3Driver from '@nymphjs/driver-sqlite3';
                import { Nymph } from '@nymphjs/nymph';
                import createServer, { PubSub } from '@nymphjs/pubsub';

                const pubSubConfig = {
                originIsAllowed: (origin) => {
                // Your logic to determine allowed origins goes here.
                return true;
                },
                entries: ['ws://yourpubsubserver.tld:8080/'],
                };

                const nymph = new Nymph(
                {},
                new SQLite3Driver({
                filename: ':memory:', // Put the correct driver/config here.
                }),
                );
                // Don't forget to do this; even here!
                PubSub.initPublisher(pubSubConfig, nymph);

                const pubsub = createServer(8080, pubSubConfig, nymph); +
                +

                If you need to provide custom handling in your server (like TLS), you can use the PubSub class directly and provide it a WebSocket server instance.

                +
                import http from 'http';
                import { server as WebSocketServer } from 'websocket';
                import SQLite3Driver from '@nymphjs/driver-sqlite3';
                import { Nymph } from '@nymphjs/nymph';
                import { PubSub } from '@nymphjs/pubsub';

                const pubSubConfig = {
                originIsAllowed: (origin) => {
                // Your logic to determine allowed origins goes here.
                return true;
                },
                entries: ['ws://yourpubsubserver.tld:8080/'],
                };

                // Set up Nymph.
                const nymph = new Nymph(
                {},
                new SQLite3Driver({
                filename: ':memory:', // Put the correct driver/config here.
                }),
                );
                // Don't forget to do this; even here!
                PubSub.initPublisher(pubSubConfig, nymph);

                // Set up the PubSub server.
                const port = 8080;
                const server = http.createServer((_request, response) => {
                response.writeHead(404);
                response.end();
                });
                const listener = server.listen(port, () => {
                console.log(
                new Date().toISOString(),
                `Nymph-PubSub server started listening on port ${port}.`,
                );
                });
                const wsServer = new WebSocketServer({
                httpServer: listener,
                // You should not use autoAcceptConnections for production
                // applications, as it defeats all standard cross-origin protection
                // facilities built into the protocol and the browser. You should
                // *always* verify the connection's origin and decide whether or not
                // to accept it.
                autoAcceptConnections: false,
                });

                const pubsub = new PubSub(pubSubConfig, nymph, wsServer); +
                +

                Options

                See the config declaration file.

                +

                License

                Copyright 2021 SciActive Inc

                +

                Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at

                +
                http://www.apache.org/licenses/LICENSE-2.0
                +
                +

                Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License.

                +

                References

                Renames and re-exports createServer
                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/modules/_nymphjs_query_parser.html b/static/api/1.0.0-beta.81/modules/_nymphjs_query_parser.html new file mode 100644 index 0000000..3835c38 --- /dev/null +++ b/static/api/1.0.0-beta.81/modules/_nymphjs_query_parser.html @@ -0,0 +1,153 @@ +@nymphjs/query-parser - v1.0.0-beta.81 | Nymph.js 1.0.0-beta.81

                Module @nymphjs/query-parser - v1.0.0-beta.81

                Nymph Query Parser

                Powerful object data storage and querying.

                +

                The Query Parser is a utility for creating complex Nymph entity queries from a simple text input. Essentially, it turns a string into a Nymph query.

                +

                Installation

                npm install --save @nymphjs/query-parser
                +
                +

                Usage

                The query parser will turn a string into an Options and Selectors array for the Nymph Client. It has a syntax that allows for most features of a Nymph query to be expressed in a text input.

                +
                import queryParser from '@nymphjs/query-parser';

                import BlogPost from './BlogPost';
                import Category from './Category';

                async function doQuery() {
                const [options, ...selectors] = queryParser({
                query:
                'limit:4 sort:mdate foobar (| [archived] mdate<"2 weeks ago") category<{cat Tech}>',
                entityClass: BlogPost,
                defaultFields: ['title', 'body'],
                qrefMap: {
                cat: {
                class: Category,
                defaultFields: ['name'],
                },
                },
                });
                /*
                Options will be
                {
                class: BlogPost,
                limit: 4,
                sort: 'mdate'
                }

                And selectors will be (equivalent to)
                [
                {
                type: "|",
                truthy: [
                "archived"
                ],
                lt: [
                ["mdate", null, "2 weeks ago"]
                ]
                },
                {
                type: "&",
                qref: [
                "category",
                [
                {
                class: Category
                },
                {
                type: "|",
                ilike: ["name", "%Tech%"]
                }
                ]
                ]
                },
                {
                type: "|",
                ilike: [
                ["title", "%foobar%"],
                ["body", "%foobar%"]
                ]
                }
                ]
                */
                const entities = await nymph.getEntities(options, ...selectors);
                } +
                +

                Options

                You can set limit, offset, sort, and reverse like this.

                +
                  +
                • limit:number
                • +
                • offset:number
                • +
                • sort:string
                • +
                • reverse:true, reverse:false, reverse:1, or reverse:0
                • +
                +

                These must appear in the top level of the query (outside of any parentheses).

                +

                Clauses

                These are the available clauses, and their syntax.

                +

                equal and !equal

                Check for string or JSON representation equality.

                +
                  +
                • name=string or name!=string
                • +
                • name="string value" or name!="string value"
                    +
                  • (Use this if you have a space in your string, or if your string could be interpreted as valid JSON. Escape double quotes with a leading backslash.)
                  • +
                  +
                • +
                • name=JSON or name!=JSON
                    +
                  • (Match a JSON encoded value (like true, 1, [1,2,3], or {"prop":"val"}).)
                  • +
                  +
                • +
                +

                guid and !guid

                Check for entity GUID.

                +
                  +
                • {guid} or {!guid}
                • +
                +

                tag and !tag

                Check for a tag.

                +
                  +
                • <name> or <!name>
                • +
                +

                truthy and !truthy

                Check for truthiness.

                +
                  +
                • [name] or [!name]
                • +
                +

                ref and !ref

                Check for a reference to another entity.

                +
                  +
                • name<{guid}> or name!<{guid}>
                • +
                +

                qref and !qref

                Check for a reference to another entity using a query.

                +
                  +
                • name<{refclassname inner query}> or name!<{refclassname inner query}>
                    +
                  • (Escape curly brackets with a leading backslash.)
                  • +
                  • (Requires a map of refclassname to their actual class and default fields.)
                  • +
                  +
                • +
                +

                contain and !contain

                Check if the array at the named property contains a value.

                +
                  +
                • name<value> or name!<value>
                    +
                  • (Escape angle brackets with a leading backslash. If your value could be interpreted as valid JSON, encode it as a JSON string and use the JSON syntax instead.)
                  • +
                  +
                • +
                • name<JSON> or name!<JSON>
                    +
                  • (Search for a JSON encoded value (like true, 1, [1,2,3], or {"prop":"val"}).)
                  • +
                  +
                • +
                +

                match and !match

                Check for POSIX regex match.

                +
                  +
                • name~/pattern/ or name!~/pattern/
                • +
                +

                imatch and !imatch

                Check for case insensitive POSIX regex match.

                +
                  +
                • name~/pattern/i or name!~/pattern/i
                • +
                +

                like and !like

                Check for pattern match where _ is single char wildcard and % is any length wildcard.

                +
                  +
                • name~pattern or name!~pattern
                • +
                • name~"pattern" or name!~"pattern"
                    +
                  • (Use this if you have a space in your pattern.)
                  • +
                  +
                • +
                +

                ilike and !ilike

                Check for case insensitive pattern match where _ is single char wildcard and % is any length wildcard.

                +
                  +
                • name~"pattern"i or name!~"pattern"i
                • +
                +

                gt

                Check a prop's value is greater than a given value.

                +
                  +
                • name>number
                • +
                • name>relative
                    +
                  • (A single relative time value like now or yesterday.)
                  • +
                  +
                • +
                • name>"relative time value"
                    +
                  • (Use this for a time value with a space like "two days from now", "last thursday", "+4 weeks", or "5 minutes ago".)
                  • +
                  +
                • +
                +

                gte

                Check a prop's value is greater than or equal to a given value.

                +
                  +
                • name>=number
                • +
                • name>=relative
                    +
                  • (A single relative time value like now or yesterday.)
                  • +
                  +
                • +
                • name>="relative time value"
                    +
                  • (Use this for a time value with a space like "two days from now", "last thursday", "+4 weeks", or "5 minutes ago".)
                  • +
                  +
                • +
                +

                lt

                Check a prop's value is less than a given value.

                +
                  +
                • name<number
                • +
                • name<relative
                    +
                  • (A single relative time value like now or yesterday.)
                  • +
                  +
                • +
                • name<"relative time value"
                    +
                  • (Use this for a time value with a space like "two days from now", "last thursday", "+4 weeks", or "5 minutes ago".)
                  • +
                  +
                • +
                +

                lte

                Check a prop's value is less than or equal to a given value.

                +
                  +
                • name<=number
                • +
                • name<=relative
                    +
                  • (A single relative time value like now or yesterday.)
                  • +
                  +
                • +
                • name<="relative time value"
                    +
                  • (Use this for a time value with a space like "two days from now", "last thursday", "+4 weeks", or "5 minutes ago".)
                  • +
                  +
                • +
                +

                Selectors

                You can specify nested selectors with different types using pairs of parentheses. The first character (or two) inside the parentheses can be a type: "&", "!&", "|", "!|", or "!" (the same as "!&").

                +

                Here are some examples of nested selectors.

                +
                Either enabled is truthy and abilities contains "subscriber", or abilities contains "lifelong-subscriber".

                (| ([enabled] abilities<"subscriber">) abilities<"lifeline-subscriber">)


                Published is not truthy and cdate is not greater than 6 months ago.

                (! [published] cdate>"6 months ago") +
                +

                Default Fields

                Anything contained in the query (including in selector parentheses) that doesn't match any of the options or clause syntaxes listed above (bare query parts) will be added (at the appropriate nesting level) to a selector with an "|" type in an ilike clause surrounded by "%" characters for each field passed in to the defaultFields argument.

                +

                Bare Query Handler

                You can also supply a function in the option bareHandler that will handle bare query parts instead of the "Default Fields" behavior described above. It will receive three arguments, the query parts, the entity class, and the default fields entry for that class. It should return a partial selector that will replace or extend the "|" selector.

                +

                License

                Copyright 2021 SciActive Inc

                +

                Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at

                +
                http://www.apache.org/licenses/LICENSE-2.0
                +
                +

                Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License.

                +

                References

                Type Aliases

                Functions

                References

                Renames and re-exports queryParser
                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/modules/_nymphjs_server.html b/static/api/1.0.0-beta.81/modules/_nymphjs_server.html new file mode 100644 index 0000000..60e6409 --- /dev/null +++ b/static/api/1.0.0-beta.81/modules/_nymphjs_server.html @@ -0,0 +1,31 @@ +@nymphjs/server - v1.0.0-beta.81 | Nymph.js 1.0.0-beta.81

                Module @nymphjs/server - v1.0.0-beta.81

                Nymph REST Server

                Powerful object data storage and querying.

                +

                The REST server lets you configure an endpoint for the Nymph client to query and push data to. The server provides this endpoint as an Express middleware, which can be used in a new or existing Express (or compatible) server.

                +

                Installation

                npm install --save @nymphjs/server
                +
                +

                Usage

                You need to install Express, Nymph, and a Nymph driver, then you can use the REST server with an optional path. For this example, I'll use the SQLite3 driver with an in-memory database.

                +
                import express from 'express';
                import { Nymph } from '@nymphjs/nymph';
                import SQLite3Driver from '@nymphjs/driver-sqlite3';
                import createServer from '@nymphjs/server';

                // Import all the entities you will be using on the server.
                import MyEntityClass from './entities/MyEntity';

                // Configure Nymph.
                const nymph = new Nymph(
                {},
                new SQLite3Driver({
                filename: ':memory:',
                }),
                );
                const MyEntity = nymph.addEntityClass(MyEntityClass);

                // Create your Express app.
                const app = express();

                // Create and use the REST server (with an optional path).
                app.use('/rest', createServer(nymph));

                // Do anything else you need to do...

                // Start your server.
                app.listen(80); +
                +

                You will need to import any entities you use on the server, so they are available to Nymph.

                +

                Now you can configure your client, using your server's address (and the optional path, if set).

                +
                import { Nymph } from '@nymphjs/client';

                import MyEntityClass from './entities/MyEntityClient';

                const nymph = new Nymph({
                // You should configure your Express server to
                // use HTTPS, but you don't have to.
                restUrl: 'https://mydomain.tld/rest',
                });
                const MyEntity = nymph.addEntityClass(MyEntityClass); +
                +

                The REST server will authenticate for you using the Tilmeld auth cookie and XSRF token, but if you need to, you can authenticate in some other way (like OAuth2), and place the user in response.locals.user.

                +
                import express from 'express';
                import { Nymph } from '@nymphjs/nymph';
                import SQLite3Driver from '@nymphjs/driver-sqlite3';
                import { Tilmeld } from '@nymphjs/tilmeld';
                import createServer from '@nymphjs/server';
                import setup from '@nymphjs/tilmeld-setup';

                // Import all the entities you will be using on the server.
                import MyEntityClass from './entities/MyEntity';

                // Consfigure Tilmeld.
                const tilmeld = new Tilmeld({
                appName: 'My Awesome App',
                appUrl: 'https://mydomain.tld',
                setupPath: '/user',
                });

                // Configure Nymph.
                const nymph = new Nymph(
                {},
                new SQLite3Driver({
                filename: ':memory:',
                }),
                tilmeld,
                );
                const MyEntity = nymph.addEntityClass(MyEntityClass);

                // Create your Express app.
                const app = express();

                // Authenticate the user manually.
                app.use('/rest', async (request, response, next) => {
                const { User } = tilmeld;

                try {
                // Somehow authenticate the user...
                const user = await User.factoryUsername(username);

                if (user.guid != null && user.enabled) {
                response.locals.user = user;
                }

                next();
                } catch (e: any) {
                response.status(500);
                response.send('Internal server error.');
                }
                });

                // Create and use the REST server (with an optional path).
                app.use('/rest', createServer(nymph));

                // Create Tilmeld setup app.
                app.user(
                '/user',
                setup(
                {
                restUrl: 'https://mydomain.tld/rest',
                },
                nymph,
                ),
                );

                // Do anything else you need to do...

                // Start your server.
                app.listen(80); +
                +

                License

                Copyright 2021 SciActive Inc

                +

                Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at

                +
                http://www.apache.org/licenses/LICENSE-2.0
                +
                +

                Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License.

                +

                References

                Classes

                Variables

                Functions

                References

                Renames and re-exports createServer
                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/modules/_nymphjs_sorter.html b/static/api/1.0.0-beta.81/modules/_nymphjs_sorter.html new file mode 100644 index 0000000..bcad716 --- /dev/null +++ b/static/api/1.0.0-beta.81/modules/_nymphjs_sorter.html @@ -0,0 +1,21 @@ +@nymphjs/sorter - v1.0.0-beta.81 | Nymph.js 1.0.0-beta.81

                Module @nymphjs/sorter - v1.0.0-beta.81

                Nymph Entity Sorter

                Powerful object data storage and querying.

                +

                The Nymph Entity Sorter lets you sort entities by their properties, including hierarchically.

                +

                Installation

                npm install --save @nymphjs/sorter
                +
                +

                Usage

                Here's an overview:

                +
                import { Nymph } from '@nymphjs/nymph';
                // or
                import { Nymph } from '@nymphjs/client';
                import PageClass from 'Page';

                import { Sorter } from '@nymphjs/sorter';

                const nymphOptions = {
                // the options for your Nymph instance.
                };
                const nymph = new Nymph(nymphOptions);
                const Page = nymph.addEntityClass(PageClass);

                let pages = await nymph.getEntities({ class: Page });

                const sorter = new Sorter(pages);

                //
                // ## Simple sort by some property.
                //

                sorter.sort('name');
                // Pages are now sorted by name, with locale aware sorting.
                console.log(pages);

                sorter.sort('cdate');
                // Pages are now sorted by creation date.
                console.log(pages);

                sorter.sort('cdate', { reverse: true });
                // Pages are now sorted by creation date, newest first.
                console.log(pages);

                // Specifying your own comparator.
                sorter.sort('name', { comparator: (a, b) => (a < b ? -1 : a > b ? 1 : 0) });
                // Pages are now sorted by name, based on UTF-16 code points.
                console.log(pages);

                // Specifying options to the collator.
                sorter.sort('name', {
                collatorOptions: {
                sensitivity: 'case',
                caseFirst: 'upper',
                numeric: true,
                },
                });
                // Pages are now sorted by name, with uppercase coming first in case of
                // otherwise identical entries, and numbers being sorted logically (2 < 10).
                console.log(pages);

                //
                // ## Hierarchical sorting.
                //

                sorter.hsort('name', 'parent');
                // Pages are now sorted by name, hierarchically. (All child pages come
                // immediately after their parent.)
                console.log(pages);

                // You can specify the same options as before.
                sorter.hsort('name', 'parent', {
                collatorOptions: {
                sensitivity: 'case',
                caseFirst: 'upper',
                numeric: true,
                },
                });
                // Pages are now sorted by name, hierarchically, with uppercase coming first
                // in case of otherwise identical entries, and numbers being sorted
                // logically (2 < 10).
                console.log(pages); +
                +

                License

                Copyright 2021 SciActive Inc

                +

                Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at

                +
                http://www.apache.org/licenses/LICENSE-2.0
                +
                +

                Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License.

                +

                Index

                Classes

                Type Aliases

                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/modules/_nymphjs_tilmeld.html b/static/api/1.0.0-beta.81/modules/_nymphjs_tilmeld.html new file mode 100644 index 0000000..e02af76 --- /dev/null +++ b/static/api/1.0.0-beta.81/modules/_nymphjs_tilmeld.html @@ -0,0 +1,56 @@ +@nymphjs/tilmeld - v1.0.0-beta.81 | Nymph.js 1.0.0-beta.81

                Module @nymphjs/tilmeld - v1.0.0-beta.81

                Tilmeld - User/Group System for Nymph

                Powerful object data storage and querying.

                +

                Tilmeld (the d is silent) is a user and group management system for Nymph. It provides strict access controls to protect entities from unauthorized access/modification. It allows for granting and revoking ad hoc abilities to users and groups, then checking for those abilities. It provides authentication services and features protection against XSRF attacks.

                +

                Installation

                npm install --save @nymphjs/tilmeld
                +
                +

                Usage

                When you initialize Nymph, provide it with an instance of the Tilmeld class from this package. You now have access to the User and Group classes that are specific to that instance of Nymph/Tilmeld.

                +

                Here's an overview.

                +
                import SQLite3Driver from '@nymphjs/driver-sqlite3';
                import { Tilmeld } from '@nymphjs/tilmeld';
                import { Nymph } from '@nymphjs/nymph';

                const tilmeld = new Tilmeld({
                appName: 'My App',
                appUrl: 'http://localhost',
                cookieDomain: 'localhost',
                cookiePath: '/',
                setupPath: '/user',
                verifyRedirect: 'http://localhost',
                verifyChangeRedirect: 'http://localhost',
                cancelChangeRedirect: 'http://localhost',
                jwtSecret: 'shhhhh',
                });

                const nymph = new Nymph(
                {},
                new SQLite3Driver({
                filename: ':memory:',
                }),
                tilmeld,
                );

                // These are the classes specific to this instance of Tilmeld.
                const { User, Group } = tilmeld; +
                +

                Options

                See the config declaration file.

                +

                Abilities

                There are a few abilities that Tilmeld uses internally:

                +
                  +
                • system/admin - A user with this ability has all abilities.
                • +
                • tilmeld/admin - Allow the user to manage and edit other user's account and group information and grant/revoke abilities.
                • +
                • tilmeld/switch - Allow the user to switch to other users (log in as them without their password).
                • +
                • uid/get/[name] - Allow the user to read the named UID.
                • +
                • uid/new/[name] - Allow the user to read, create, and increment the named UID.
                • +
                • uid/set/[name] - Allow the user to read, create, increment, set, and delete the named UID.
                • +
                +

                The admin and switch abilities cannot be inherited from groups.

                +

                License

                Copyright 2021 SciActive Inc

                +

                Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at

                +
                http://www.apache.org/licenses/LICENSE-2.0
                +
                +

                Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License.

                +

                Index

                Classes

                Interfaces

                Type Aliases

                Variables

                Functions

                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/modules/_nymphjs_tilmeld_client.html b/static/api/1.0.0-beta.81/modules/_nymphjs_tilmeld_client.html new file mode 100644 index 0000000..c89e1f0 --- /dev/null +++ b/static/api/1.0.0-beta.81/modules/_nymphjs_tilmeld_client.html @@ -0,0 +1,40 @@ +@nymphjs/tilmeld-client - v1.0.0-beta.81 | Nymph.js 1.0.0-beta.81

                Module @nymphjs/tilmeld-client - v1.0.0-beta.81

                Tilmeld Client - User/Group System for Nymph

                Powerful object data storage and querying.

                +

                The Tilmeld Client lets you register, login, and perform user account related functions remotely on a Nymph server.

                +

                Installation

                npm install --save @nymphjs/tilmeld-client
                +
                +

                You can find UMD in dist, or TS source in src.

                +

                Usage

                The Tilmeld client contains the client versions of the User and Group entities. It also contains helpers, login, register, and checkUsername.

                +

                Once you've initialized Nymph Client, set the User and Group classes on it. Then initialize the new User class with the Nymph instance. (This allows the class to set up authentication listeners.)

                +
                import { Nymph } from '@nymphjs/client';
                import {
                User as UserClass,
                Group as GroupClass,
                } from '@nymphjs/tilmeld-client';

                const nymph = new Nymph({
                restUrl: 'https://yournymphrestserver/path/to/your/endpoint',
                });
                const User = nymph.addEntityClass(UserClass);
                const Group = nymph.addEntityClass(GroupClass);
                User.init(nymph); +
                +

                If you're running more than one instance of Nymph client, be sure to use the classes returned by addEntityClass, so as not to accidentally submit entities from one instances to another instance.

                +

                License

                Copyright 2021 SciActive Inc

                +

                Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at

                +
                http://www.apache.org/licenses/LICENSE-2.0
                +
                +

                Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License.

                +

                Index

                Classes

                Type Aliases

                Functions

                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/modules/_nymphjs_tilmeld_components.html b/static/api/1.0.0-beta.81/modules/_nymphjs_tilmeld_components.html new file mode 100644 index 0000000..2622be1 --- /dev/null +++ b/static/api/1.0.0-beta.81/modules/_nymphjs_tilmeld_components.html @@ -0,0 +1,23 @@ +@nymphjs/tilmeld-components - v1.0.0-beta.81 | Nymph.js 1.0.0-beta.81

                Module @nymphjs/tilmeld-components - v1.0.0-beta.81

                Tilmeld Components - User/Group System for Nymph

                Powerful object data storage and querying.

                +

                The Tilmeld Components are front end registration/login, account recovery, account details, and password change components built with Svelte and SMUI.

                +

                Installation

                npm install --save @nymphjs/tilmeld-components
                +
                +

                Usage

                You need to have an SMUI theme compiled and installed on your front end app. If you're using Svelte, you need to have TypeScript support and you should use the 'svelte' mainfield from package.json.

                +

                License

                Copyright 2021 SciActive Inc

                +

                Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at

                +
                http://www.apache.org/licenses/LICENSE-2.0
                +
                +

                Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License.

                +

                References

                Renames and re-exports Account
                Renames and re-exports Account
                Renames and re-exports Account
                Renames and re-exports Account
                Renames and re-exports Account
                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/modules/_nymphjs_tilmeld_setup.html b/static/api/1.0.0-beta.81/modules/_nymphjs_tilmeld_setup.html new file mode 100644 index 0000000..a46286a --- /dev/null +++ b/static/api/1.0.0-beta.81/modules/_nymphjs_tilmeld_setup.html @@ -0,0 +1,23 @@ +@nymphjs/tilmeld-setup - v1.0.0-beta.81 | Nymph.js 1.0.0-beta.81

                Module @nymphjs/tilmeld-setup - v1.0.0-beta.81

                Tilmeld Setup App - User/Group System for Nymph

                Powerful object data storage and querying.

                +

                The Tilmeld Setup App allows administrators to create, modify, and delete users and groups and configure how Tilmeld works. It also acts as the endpoint for email address verification.

                +

                Installation

                npm install --save @nymphjs/tilmeld-setup
                +
                +

                Usage

                You need to setup a Nymph REST endpoint, then you can use the Tilmeld Setup App as another endpoint in your Express server.

                +

                IMPORTANT: Within the setup app, Tilmeld does not check for XSRF tokens, so do not put your REST endpoint under the setup app's path, or you will be vulnerable to XSRF attacks!

                +

                For this example, I'll use the SQLite3 driver with an in-memory database.

                +
                import express from 'express';
                import SQLite3Driver from '@nymphjs/driver-sqlite3';
                import { Nymph } from '@nymphjs/nymph';
                import { Tilmeld } from '@nymphjs/tilmeld';
                import createServer from '@nymphjs/server';
                import setup from '@nymphjs/tilmeld-setup';

                // Import all the entities you will be using on the server.
                import './entities/MyEntity';

                // Configure Nymph.
                const nymph = new Nymph(
                {},
                new SQLite3Driver({
                filename: ':memory:',
                }),
                new Tilmeld({
                appName: 'My App',
                appUrl: 'http://localhost',
                cookieDomain: 'localhost',
                cookiePath: '/',
                setupPath: '/user',
                verifyRedirect: 'http://localhost',
                verifyChangeRedirect: 'http://localhost',
                cancelChangeRedirect: 'http://localhost',
                jwtSecret: 'shhhhh',
                }),
                );

                // Create your Express app.
                const app = express();

                // Use the REST server.
                app.use('/rest', createServer(nymph));

                // Create Tilmeld setup app.
                app.use(
                '/user',
                setup(
                {
                restUrl: 'http://localhost/rest',
                },
                nymph,
                ),
                );

                // Do anything else you need to do...

                // Start your server.
                app.listen(80); +
                +

                License

                Copyright 2021 SciActive Inc

                +

                Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at

                +
                http://www.apache.org/licenses/LICENSE-2.0
                +
                +

                Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License.

                +

                References

                Functions

                References

                Renames and re-exports setup
                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_client.Clause.html b/static/api/1.0.0-beta.81/types/_nymphjs_client.Clause.html new file mode 100644 index 0000000..f15370f --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_client.Clause.html @@ -0,0 +1 @@ +Clause | Nymph.js 1.0.0-beta.81
                Clause<C>: C | Exclude<C, undefined>[]

                Type Parameters

                • C
                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_client.EntityConstructor.html b/static/api/1.0.0-beta.81/types/_nymphjs_client.EntityConstructor.html new file mode 100644 index 0000000..86c86c2 --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_client.EntityConstructor.html @@ -0,0 +1 @@ +EntityConstructor | Nymph.js 1.0.0-beta.81
                EntityConstructor<D, E>: (new (...args) => E) & {
                    [k in keyof typeof Entity]: typeof Entity[k]
                }

                Type Parameters

                Type declaration

                  • new (...args): E
                  • Parameters

                    • Rest ...args: any[]

                    Returns E

                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_client.EntityData.html b/static/api/1.0.0-beta.81/types/_nymphjs_client.EntityData.html new file mode 100644 index 0000000..973422d --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_client.EntityData.html @@ -0,0 +1 @@ +EntityData | Nymph.js 1.0.0-beta.81
                EntityData: {
                    [k: string]: any;
                }

                Type declaration

                • [k: string]: any
                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_client.EntityDataType.html b/static/api/1.0.0-beta.81/types/_nymphjs_client.EntityDataType.html new file mode 100644 index 0000000..fa8ca2e --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_client.EntityDataType.html @@ -0,0 +1 @@ +EntityDataType | Nymph.js 1.0.0-beta.81
                EntityDataType<T>: T extends Entity<infer DataType>
                    ? DataType
                    : never

                Type Parameters

                • T
                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_client.EntityInstanceType.html b/static/api/1.0.0-beta.81/types/_nymphjs_client.EntityInstanceType.html new file mode 100644 index 0000000..617da49 --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_client.EntityInstanceType.html @@ -0,0 +1 @@ +EntityInstanceType | Nymph.js 1.0.0-beta.81
                EntityInstanceType<T>: T extends (new () => infer E)
                    ? E & EntityDataType<E>
                    : never

                Type Parameters

                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_client.EntityJson.html b/static/api/1.0.0-beta.81/types/_nymphjs_client.EntityJson.html new file mode 100644 index 0000000..ad23667 --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_client.EntityJson.html @@ -0,0 +1 @@ +EntityJson | Nymph.js 1.0.0-beta.81
                EntityJson<T>: {
                    cdate: number | null;
                    class: T["class"];
                    data: EntityData;
                    guid: string | null;
                    mdate: number | null;
                    tags: string[];
                }

                Type Parameters

                Type declaration

                • cdate: number | null
                • class: T["class"]
                • data: EntityData
                • guid: string | null
                • mdate: number | null
                • tags: string[]
                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_client.EntityPatch.html b/static/api/1.0.0-beta.81/types/_nymphjs_client.EntityPatch.html new file mode 100644 index 0000000..ab6b025 --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_client.EntityPatch.html @@ -0,0 +1 @@ +EntityPatch | Nymph.js 1.0.0-beta.81
                EntityPatch: {
                    addTags: string[];
                    class: string;
                    guid: string;
                    mdate: number | null;
                    removeTags: string[];
                    set: EntityData;
                    unset: string[];
                }

                Type declaration

                • addTags: string[]
                • class: string
                • guid: string
                • mdate: number | null
                • removeTags: string[]
                • set: EntityData
                • unset: string[]
                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_client.EntityReference.html b/static/api/1.0.0-beta.81/types/_nymphjs_client.EntityReference.html new file mode 100644 index 0000000..e1bd050 --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_client.EntityReference.html @@ -0,0 +1 @@ +EntityReference | Nymph.js 1.0.0-beta.81
                EntityReference: ["nymph_entity_reference", string, string]
                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_client.EventType.html b/static/api/1.0.0-beta.81/types/_nymphjs_client.EventType.html new file mode 100644 index 0000000..c503f59 --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_client.EventType.html @@ -0,0 +1 @@ +EventType | Nymph.js 1.0.0-beta.81
                EventType: "request" | "response"
                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_client.HttpRequesterEventType.html b/static/api/1.0.0-beta.81/types/_nymphjs_client.HttpRequesterEventType.html new file mode 100644 index 0000000..310fd2d --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_client.HttpRequesterEventType.html @@ -0,0 +1 @@ +HttpRequesterEventType | Nymph.js 1.0.0-beta.81
                HttpRequesterEventType: "request" | "response"
                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_client.HttpRequesterIteratorCallback.html b/static/api/1.0.0-beta.81/types/_nymphjs_client.HttpRequesterIteratorCallback.html new file mode 100644 index 0000000..da09c0e --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_client.HttpRequesterIteratorCallback.html @@ -0,0 +1 @@ +HttpRequesterIteratorCallback | Nymph.js 1.0.0-beta.81
                HttpRequesterIteratorCallback: ((requester, url, headers) => void)

                Type declaration

                  • (requester, url, headers): void
                  • Parameters

                    • requester: HttpRequester
                    • url: string
                    • headers: Record<string, string>

                    Returns void

                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_client.HttpRequesterRequestCallback.html b/static/api/1.0.0-beta.81/types/_nymphjs_client.HttpRequesterRequestCallback.html new file mode 100644 index 0000000..69cb474 --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_client.HttpRequesterRequestCallback.html @@ -0,0 +1 @@ +HttpRequesterRequestCallback | Nymph.js 1.0.0-beta.81
                HttpRequesterRequestCallback: ((requester, url, options) => void)

                Type declaration

                  • (requester, url, options): void
                  • Parameters

                    • requester: HttpRequester
                    • url: string
                    • options: RequestInit

                    Returns void

                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_client.HttpRequesterRequestOptions.html b/static/api/1.0.0-beta.81/types/_nymphjs_client.HttpRequesterRequestOptions.html new file mode 100644 index 0000000..ee51426 --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_client.HttpRequesterRequestOptions.html @@ -0,0 +1 @@ +HttpRequesterRequestOptions | Nymph.js 1.0.0-beta.81
                HttpRequesterRequestOptions: {
                    data: {
                        [k: string]: any;
                    };
                    dataType: string;
                    headers?: {
                        [k: string]: any;
                    };
                    url: string;
                }

                Type declaration

                • data: {
                      [k: string]: any;
                  }
                  • [k: string]: any
                • dataType: string
                • Optional headers?: {
                      [k: string]: any;
                  }
                  • [k: string]: any
                • url: string
                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_client.HttpRequesterResponseCallback.html b/static/api/1.0.0-beta.81/types/_nymphjs_client.HttpRequesterResponseCallback.html new file mode 100644 index 0000000..dc808c0 --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_client.HttpRequesterResponseCallback.html @@ -0,0 +1 @@ +HttpRequesterResponseCallback | Nymph.js 1.0.0-beta.81
                HttpRequesterResponseCallback: ((requester, response, text) => void)

                Type declaration

                  • (requester, response, text): void
                  • Parameters

                    • requester: HttpRequester
                    • response: Response
                    • text: string

                    Returns void

                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_client.NymphOptions.html b/static/api/1.0.0-beta.81/types/_nymphjs_client.NymphOptions.html new file mode 100644 index 0000000..50056c4 --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_client.NymphOptions.html @@ -0,0 +1,25 @@ +NymphOptions | Nymph.js 1.0.0-beta.81
                NymphOptions: {
                    WebSocket?: typeof WebSocket;
                    fetch?: WindowOrWorkerGlobalScope["fetch"];
                    noAutoconnect?: boolean;
                    noConsole?: boolean;
                    pubsubUrl?: string;
                    renewTokens?: boolean;
                    restUrl: string;
                    weakCache?: boolean;
                }

                Type declaration

                • Optional WebSocket?: typeof WebSocket

                  A WebSocket implementation.

                  +
                • Optional fetch?: WindowOrWorkerGlobalScope["fetch"]

                  A fetch implementation.

                  +
                • Optional noAutoconnect?: boolean

                  Don't automatically try to connect to PubSub server.

                  +
                • Optional noConsole?: boolean

                  Whether to not output status messages to the console.

                  +
                • Optional pubsubUrl?: string

                  The URL of your Nymph PubSub server.

                  +
                • Optional renewTokens?: boolean

                  Whether to renew tokens when a request is made.

                  +

                  If you turn this off, the client will request that the server not renew an +authentication token, even if it is within the renewal time of the +expiration date.

                  +

                  This defaults to true.

                  +
                • restUrl: string

                  The URL of your Nymph REST server.

                  +
                • Optional weakCache?: boolean

                  Use a WeakRef based cache of entities.

                  +

                  This ensures all entities returned are the same instance if they have the +same class and GUID. This also means that whenever an entity is returned +from the server, the single instance in memory will be refreshed. This +could have annoying results, like destroying dirty data (the dreaded +triple-D).

                  +

                  This could also be a potential source of memory leaks. Although the +entities themselves are referenced weakly so they get garbage collected, +the GUID used as a key and the WeakRef object itself are not weak +references, so not destroyed when the instance is garbage collected.

                  +

                  However, even with these caveats, this might help you if you have a big app +with the same entities stored in several different places in memory. This +can help to synchronize them correctly and avoid data conflicts.

                  +
                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_client.Options.html b/static/api/1.0.0-beta.81/types/_nymphjs_client.Options.html new file mode 100644 index 0000000..019d114 --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_client.Options.html @@ -0,0 +1,12 @@ +Options | Nymph.js 1.0.0-beta.81
                Options<T>: {
                    class: T;
                    limit?: number;
                    offset?: number;
                    return?: "entity" | "guid" | "count";
                    reverse?: boolean;
                    skipCache?: boolean;
                    sort?: "cdate" | "mdate" | string;
                }

                Type Parameters

                Type declaration

                • class: T

                  The Entity class to query.

                  +
                • Optional limit?: number

                  The limit of entities to be returned. Not needed when using getEntity, as +it always returns only one.

                  +
                • Optional offset?: number

                  The offset from the first matching entity, in order, to start retrieving.

                  +
                • Optional return?: "entity" | "guid" | "count"

                  What to return, the entities with their data, just the GUIDs, or just a +count.

                  +
                • Optional reverse?: boolean

                  If true, entities will be retrieved from newest to oldest/largest to +smallest (with regard to sort).

                  +
                • Optional skipCache?: boolean

                  If true, Nymph will skip the cache and retrieve the entity from the DB.

                  +
                • Optional sort?: "cdate" | "mdate" | string

                  How to sort the entities. Should be "cdate", "mdate", or the name of a +property.

                  +
                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_client.OrWithTime.html b/static/api/1.0.0-beta.81/types/_nymphjs_client.OrWithTime.html new file mode 100644 index 0000000..f8158b0 --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_client.OrWithTime.html @@ -0,0 +1 @@ +OrWithTime | Nymph.js 1.0.0-beta.81
                OrWithTime<T>: T | [string, null, string]

                Type Parameters

                • T
                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_client.PubSubCallbacks.html b/static/api/1.0.0-beta.81/types/_nymphjs_client.PubSubCallbacks.html new file mode 100644 index 0000000..b6b5cc4 --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_client.PubSubCallbacks.html @@ -0,0 +1 @@ +PubSubCallbacks | Nymph.js 1.0.0-beta.81
                PubSubCallbacks<T>: [PubSubResolveCallback<T> | undefined, PubSubRejectCallback | undefined, PubSubCountCallback | undefined]

                Type Parameters

                • T
                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_client.PubSubConnectCallback.html b/static/api/1.0.0-beta.81/types/_nymphjs_client.PubSubConnectCallback.html new file mode 100644 index 0000000..f54afff --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_client.PubSubConnectCallback.html @@ -0,0 +1 @@ +PubSubConnectCallback | Nymph.js 1.0.0-beta.81
                PubSubConnectCallback: (() => void)

                Type declaration

                  • (): void
                  • Returns void

                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_client.PubSubCountCallback.html b/static/api/1.0.0-beta.81/types/_nymphjs_client.PubSubCountCallback.html new file mode 100644 index 0000000..737e1bf --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_client.PubSubCountCallback.html @@ -0,0 +1 @@ +PubSubCountCallback | Nymph.js 1.0.0-beta.81
                PubSubCountCallback: ((count) => void)

                Type declaration

                  • (count): void
                  • Parameters

                    • count: number

                    Returns void

                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_client.PubSubDisconnectCallback.html b/static/api/1.0.0-beta.81/types/_nymphjs_client.PubSubDisconnectCallback.html new file mode 100644 index 0000000..658ee11 --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_client.PubSubDisconnectCallback.html @@ -0,0 +1 @@ +PubSubDisconnectCallback | Nymph.js 1.0.0-beta.81
                PubSubDisconnectCallback: (() => void)

                Type declaration

                  • (): void
                  • Returns void

                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_client.PubSubErrorCallback.html b/static/api/1.0.0-beta.81/types/_nymphjs_client.PubSubErrorCallback.html new file mode 100644 index 0000000..95dee47 --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_client.PubSubErrorCallback.html @@ -0,0 +1,3 @@ +PubSubErrorCallback | Nymph.js 1.0.0-beta.81
                PubSubErrorCallback: ((err) => void)

                The error event is for unknown errors. Query errors fire their own reject +callbacks.

                +

                Type declaration

                  • (err): void
                  • Parameters

                    • err: any

                    Returns void

                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_client.PubSubEventType.html b/static/api/1.0.0-beta.81/types/_nymphjs_client.PubSubEventType.html new file mode 100644 index 0000000..63517bb --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_client.PubSubEventType.html @@ -0,0 +1 @@ +PubSubEventType | Nymph.js 1.0.0-beta.81
                PubSubEventType: "connect" | "disconnect" | "error"
                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_client.PubSubRejectCallback.html b/static/api/1.0.0-beta.81/types/_nymphjs_client.PubSubRejectCallback.html new file mode 100644 index 0000000..5e9110e --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_client.PubSubRejectCallback.html @@ -0,0 +1 @@ +PubSubRejectCallback | Nymph.js 1.0.0-beta.81
                PubSubRejectCallback: ((err) => void)

                Type declaration

                  • (err): void
                  • Parameters

                    • err: any

                    Returns void

                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_client.PubSubResolveCallback.html b/static/api/1.0.0-beta.81/types/_nymphjs_client.PubSubResolveCallback.html new file mode 100644 index 0000000..72f8b08 --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_client.PubSubResolveCallback.html @@ -0,0 +1 @@ +PubSubResolveCallback | Nymph.js 1.0.0-beta.81
                PubSubResolveCallback<T>: ((arg, event?) => void)

                Type Parameters

                • T

                Type declaration

                  • (arg, event?): void
                  • Parameters

                    • arg: T
                    • Optional event: string

                    Returns void

                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_client.PubSubSubscribable.html b/static/api/1.0.0-beta.81/types/_nymphjs_client.PubSubSubscribable.html new file mode 100644 index 0000000..d0283ee --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_client.PubSubSubscribable.html @@ -0,0 +1 @@ +PubSubSubscribable | Nymph.js 1.0.0-beta.81
                PubSubSubscribable<T>: ((resolve?, reject?, count?) => PubSubSubscription<T>)

                Type Parameters

                • T

                Type declaration

                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_client.PubSubUpdate.html b/static/api/1.0.0-beta.81/types/_nymphjs_client.PubSubUpdate.html new file mode 100644 index 0000000..94bc04d --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_client.PubSubUpdate.html @@ -0,0 +1 @@ +PubSubUpdate | Nymph.js 1.0.0-beta.81
                PubSubUpdate<T>: T | {
                    query: string;
                    removed: string;
                } | {
                    added: string;
                    data: EntityJson;
                    query: string;
                } | {
                    data: EntityJson;
                    query: string;
                    updated: string;
                }

                Type Parameters

                • T

                Type declaration

                • query: string
                • removed: string

                Type declaration

                Type declaration

                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_client.RequestCallback.html b/static/api/1.0.0-beta.81/types/_nymphjs_client.RequestCallback.html new file mode 100644 index 0000000..8a1ae9a --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_client.RequestCallback.html @@ -0,0 +1 @@ +RequestCallback | Nymph.js 1.0.0-beta.81
                RequestCallback: ((url, options) => void)

                Type declaration

                  • (url, options): void
                  • Parameters

                    • url: string
                    • options: RequestInit

                    Returns void

                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_client.ResponseCallback.html b/static/api/1.0.0-beta.81/types/_nymphjs_client.ResponseCallback.html new file mode 100644 index 0000000..1537d76 --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_client.ResponseCallback.html @@ -0,0 +1 @@ +ResponseCallback | Nymph.js 1.0.0-beta.81
                ResponseCallback: ((response, text) => void)

                Type declaration

                  • (response, text): void
                  • Parameters

                    • response: Response
                    • text: string

                    Returns void

                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_client.Selector.html b/static/api/1.0.0-beta.81/types/_nymphjs_client.Selector.html new file mode 100644 index 0000000..b4b5f48 --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_client.Selector.html @@ -0,0 +1 @@ +Selector | Nymph.js 1.0.0-beta.81
                Selector: {
                    !contain?: Clause<OrWithTime<PrimitiveSelector["contain"]>>;
                    !defined?: Clause<PrimitiveSelector["defined"]>;
                    !equal?: Clause<OrWithTime<PrimitiveSelector["equal"]>>;
                    !gt?: Clause<OrWithTime<PrimitiveSelector["gt"]>>;
                    !gte?: Clause<OrWithTime<PrimitiveSelector["gte"]>>;
                    !guid?: Clause<PrimitiveSelector["guid"]>;
                    !ilike?: Clause<PrimitiveSelector["ilike"]>;
                    !imatch?: Clause<PrimitiveSelector["imatch"]>;
                    !like?: Clause<PrimitiveSelector["like"]>;
                    !lt?: Clause<OrWithTime<PrimitiveSelector["lt"]>>;
                    !lte?: Clause<OrWithTime<PrimitiveSelector["lte"]>>;
                    !match?: Clause<PrimitiveSelector["match"]>;
                    !qref?: Selector["qref"];
                    !ref?: Clause<PrimitiveSelector["ref"]>;
                    !selector?: Selector["selector"];
                    !tag?: Clause<PrimitiveSelector["tag"]>;
                    !truthy?: Clause<PrimitiveSelector["truthy"]>;
                    contain?: Clause<OrWithTime<PrimitiveSelector["contain"]>>;
                    defined?: Clause<PrimitiveSelector["defined"]>;
                    equal?: Clause<OrWithTime<PrimitiveSelector["equal"]>>;
                    gt?: Clause<OrWithTime<PrimitiveSelector["gt"]>>;
                    gte?: Clause<OrWithTime<PrimitiveSelector["gte"]>>;
                    guid?: Clause<PrimitiveSelector["guid"]>;
                    ilike?: Clause<PrimitiveSelector["ilike"]>;
                    imatch?: Clause<PrimitiveSelector["imatch"]>;
                    like?: Clause<PrimitiveSelector["like"]>;
                    lt?: Clause<OrWithTime<PrimitiveSelector["lt"]>>;
                    lte?: Clause<OrWithTime<PrimitiveSelector["lte"]>>;
                    match?: Clause<PrimitiveSelector["match"]>;
                    qref?: Clause<[string, [Options, ...Selector[]]]>;
                    ref?: Clause<PrimitiveSelector["ref"]>;
                    selector?: Clause<Selector>;
                    tag?: Clause<PrimitiveSelector["tag"]>;
                    truthy?: Clause<PrimitiveSelector["truthy"]>;
                    type: "&" | "|" | "!&" | "!|";
                }

                Type declaration

                • Optional !contain?: Clause<OrWithTime<PrimitiveSelector["contain"]>>
                • Optional !defined?: Clause<PrimitiveSelector["defined"]>
                • Optional !equal?: Clause<OrWithTime<PrimitiveSelector["equal"]>>
                • Optional !gt?: Clause<OrWithTime<PrimitiveSelector["gt"]>>
                • Optional !gte?: Clause<OrWithTime<PrimitiveSelector["gte"]>>
                • Optional !guid?: Clause<PrimitiveSelector["guid"]>
                • Optional !ilike?: Clause<PrimitiveSelector["ilike"]>
                • Optional !imatch?: Clause<PrimitiveSelector["imatch"]>
                • Optional !like?: Clause<PrimitiveSelector["like"]>
                • Optional !lt?: Clause<OrWithTime<PrimitiveSelector["lt"]>>
                • Optional !lte?: Clause<OrWithTime<PrimitiveSelector["lte"]>>
                • Optional !match?: Clause<PrimitiveSelector["match"]>
                • Optional !qref?: Selector["qref"]
                • Optional !ref?: Clause<PrimitiveSelector["ref"]>
                • Optional !selector?: Selector["selector"]
                • Optional !tag?: Clause<PrimitiveSelector["tag"]>
                • Optional !truthy?: Clause<PrimitiveSelector["truthy"]>
                • Optional contain?: Clause<OrWithTime<PrimitiveSelector["contain"]>>
                • Optional defined?: Clause<PrimitiveSelector["defined"]>
                • Optional equal?: Clause<OrWithTime<PrimitiveSelector["equal"]>>
                • Optional gt?: Clause<OrWithTime<PrimitiveSelector["gt"]>>
                • Optional gte?: Clause<OrWithTime<PrimitiveSelector["gte"]>>
                • Optional guid?: Clause<PrimitiveSelector["guid"]>
                • Optional ilike?: Clause<PrimitiveSelector["ilike"]>
                • Optional imatch?: Clause<PrimitiveSelector["imatch"]>
                • Optional like?: Clause<PrimitiveSelector["like"]>
                • Optional lt?: Clause<OrWithTime<PrimitiveSelector["lt"]>>
                • Optional lte?: Clause<OrWithTime<PrimitiveSelector["lte"]>>
                • Optional match?: Clause<PrimitiveSelector["match"]>
                • Optional qref?: Clause<[string, [Options, ...Selector[]]]>
                • Optional ref?: Clause<PrimitiveSelector["ref"]>
                • Optional selector?: Clause<Selector>
                • Optional tag?: Clause<PrimitiveSelector["tag"]>
                • Optional truthy?: Clause<PrimitiveSelector["truthy"]>
                • type: "&" | "|" | "!&" | "!|"
                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_client.SerializedEntityData.html b/static/api/1.0.0-beta.81/types/_nymphjs_client.SerializedEntityData.html new file mode 100644 index 0000000..9b9481d --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_client.SerializedEntityData.html @@ -0,0 +1 @@ +SerializedEntityData | Nymph.js 1.0.0-beta.81
                SerializedEntityData: {
                    [k: string]: string;
                }

                Type declaration

                • [k: string]: string
                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_client.ServerCallResponse.html b/static/api/1.0.0-beta.81/types/_nymphjs_client.ServerCallResponse.html new file mode 100644 index 0000000..e234741 --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_client.ServerCallResponse.html @@ -0,0 +1 @@ +ServerCallResponse | Nymph.js 1.0.0-beta.81
                ServerCallResponse: {
                    entity?: EntityJson;
                    return: any;
                }

                Type declaration

                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_client.ServerCallStaticResponse.html b/static/api/1.0.0-beta.81/types/_nymphjs_client.ServerCallStaticResponse.html new file mode 100644 index 0000000..5dc8f21 --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_client.ServerCallStaticResponse.html @@ -0,0 +1 @@ +ServerCallStaticResponse | Nymph.js 1.0.0-beta.81
                ServerCallStaticResponse: any
                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_nymph.ACProperties.html b/static/api/1.0.0-beta.81/types/_nymphjs_nymph.ACProperties.html new file mode 100644 index 0000000..88a275c --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_nymph.ACProperties.html @@ -0,0 +1 @@ +ACProperties | Nymph.js 1.0.0-beta.81
                ACProperties: {
                    acFull: (string | null)[] | null;
                    acGroup: number | null;
                    acOther: number | null;
                    acRead: (string | null)[] | null;
                    acUser: number | null;
                    acWrite: (string | null)[] | null;
                    group: string | null;
                    user: string | null;
                }

                Type declaration

                • acFull: (string | null)[] | null
                • acGroup: number | null
                • acOther: number | null
                • acRead: (string | null)[] | null
                • acUser: number | null
                • acWrite: (string | null)[] | null
                • group: string | null
                • user: string | null
                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_nymph.Clause.html b/static/api/1.0.0-beta.81/types/_nymphjs_nymph.Clause.html new file mode 100644 index 0000000..21b20f6 --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_nymph.Clause.html @@ -0,0 +1 @@ +Clause | Nymph.js 1.0.0-beta.81
                Clause<C>: C | Exclude<C, undefined>[]

                Type Parameters

                • C
                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_nymph.EntityConstructor.html b/static/api/1.0.0-beta.81/types/_nymphjs_nymph.EntityConstructor.html new file mode 100644 index 0000000..ef9b1b6 --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_nymph.EntityConstructor.html @@ -0,0 +1 @@ +EntityConstructor | Nymph.js 1.0.0-beta.81
                EntityConstructor<D, E>: (new (...args) => E) & {
                    [k in keyof typeof Entity]: typeof Entity[k]
                }

                Type Parameters

                Type declaration

                  • new (...args): E
                  • Parameters

                    • Rest ...args: any[]

                    Returns E

                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_nymph.EntityData.html b/static/api/1.0.0-beta.81/types/_nymphjs_nymph.EntityData.html new file mode 100644 index 0000000..1b38514 --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_nymph.EntityData.html @@ -0,0 +1 @@ +EntityData | Nymph.js 1.0.0-beta.81
                EntityData: {
                    [k: string]: any;
                }

                Type declaration

                • [k: string]: any
                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_nymph.EntityDataType.html b/static/api/1.0.0-beta.81/types/_nymphjs_nymph.EntityDataType.html new file mode 100644 index 0000000..6d6dee5 --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_nymph.EntityDataType.html @@ -0,0 +1 @@ +EntityDataType | Nymph.js 1.0.0-beta.81
                EntityDataType<T>: T extends Entity<infer DataType>
                    ? DataType
                    : never

                Type Parameters

                • T
                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_nymph.EntityInstanceType.html b/static/api/1.0.0-beta.81/types/_nymphjs_nymph.EntityInstanceType.html new file mode 100644 index 0000000..a12e624 --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_nymph.EntityInstanceType.html @@ -0,0 +1 @@ +EntityInstanceType | Nymph.js 1.0.0-beta.81
                EntityInstanceType<T>: T extends (new () => infer E)
                    ? E & EntityDataType<E>
                    : never

                Type Parameters

                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_nymph.EntityJson.html b/static/api/1.0.0-beta.81/types/_nymphjs_nymph.EntityJson.html new file mode 100644 index 0000000..d37c9ed --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_nymph.EntityJson.html @@ -0,0 +1 @@ +EntityJson | Nymph.js 1.0.0-beta.81
                EntityJson: {
                    cdate: number | null;
                    class: string;
                    data: EntityData;
                    guid: string | null;
                    mdate: number | null;
                    tags: string[];
                }

                Type declaration

                • cdate: number | null
                • class: string
                • data: EntityData
                • guid: string | null
                • mdate: number | null
                • tags: string[]
                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_nymph.EntityPatch.html b/static/api/1.0.0-beta.81/types/_nymphjs_nymph.EntityPatch.html new file mode 100644 index 0000000..a06dc2c --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_nymph.EntityPatch.html @@ -0,0 +1 @@ +EntityPatch | Nymph.js 1.0.0-beta.81
                EntityPatch: {
                    addTags: string[];
                    class: string;
                    guid: string;
                    mdate: number | null;
                    removeTags: string[];
                    set: EntityData;
                    unset: string[];
                }

                Type declaration

                • addTags: string[]
                • class: string
                • guid: string
                • mdate: number | null
                • removeTags: string[]
                • set: EntityData
                • unset: string[]
                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_nymph.EntityReference.html b/static/api/1.0.0-beta.81/types/_nymphjs_nymph.EntityReference.html new file mode 100644 index 0000000..8e41eba --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_nymph.EntityReference.html @@ -0,0 +1 @@ +EntityReference | Nymph.js 1.0.0-beta.81
                EntityReference: ["nymph_entity_reference", string, string]
                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_nymph.FormattedSelector.html b/static/api/1.0.0-beta.81/types/_nymphjs_nymph.FormattedSelector.html new file mode 100644 index 0000000..19ed039 --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_nymph.FormattedSelector.html @@ -0,0 +1 @@ +FormattedSelector | Nymph.js 1.0.0-beta.81
                FormattedSelector: {
                    !contain?: PrimitiveSelector["contain"][];
                    !defined?: PrimitiveSelector["defined"][][];
                    !equal?: PrimitiveSelector["equal"][];
                    !gt?: PrimitiveSelector["gt"][];
                    !gte?: PrimitiveSelector["gte"][];
                    !guid?: PrimitiveSelector["guid"][][];
                    !ilike?: PrimitiveSelector["ilike"][];
                    !imatch?: PrimitiveSelector["imatch"][];
                    !like?: PrimitiveSelector["like"][];
                    !lt?: PrimitiveSelector["lt"][];
                    !lte?: PrimitiveSelector["lte"][];
                    !match?: PrimitiveSelector["match"][];
                    !qref?: FormattedSelector["qref"];
                    !ref?: PrimitiveSelector["ref"][];
                    !selector?: FormattedSelector["selector"];
                    !tag?: PrimitiveSelector["tag"][][];
                    !truthy?: PrimitiveSelector["truthy"][][];
                    contain?: PrimitiveSelector["contain"][];
                    defined?: PrimitiveSelector["defined"][][];
                    equal?: PrimitiveSelector["equal"][];
                    gt?: PrimitiveSelector["gt"][];
                    gte?: PrimitiveSelector["gte"][];
                    guid?: PrimitiveSelector["guid"][][];
                    ilike?: PrimitiveSelector["ilike"][];
                    imatch?: PrimitiveSelector["imatch"][];
                    like?: PrimitiveSelector["like"][];
                    lt?: PrimitiveSelector["lt"][];
                    lte?: PrimitiveSelector["lte"][];
                    match?: PrimitiveSelector["match"][];
                    qref?: [string, [Options, ...FormattedSelector[]]][];
                    ref?: PrimitiveSelector["ref"][];
                    selector?: FormattedSelector[];
                    tag?: PrimitiveSelector["tag"][][];
                    truthy?: PrimitiveSelector["truthy"][][];
                    type: "&" | "|" | "!&" | "!|";
                }

                Type declaration

                • Optional !contain?: PrimitiveSelector["contain"][]
                • Optional !defined?: PrimitiveSelector["defined"][][]
                • Optional !equal?: PrimitiveSelector["equal"][]
                • Optional !gt?: PrimitiveSelector["gt"][]
                • Optional !gte?: PrimitiveSelector["gte"][]
                • Optional !guid?: PrimitiveSelector["guid"][][]
                • Optional !ilike?: PrimitiveSelector["ilike"][]
                • Optional !imatch?: PrimitiveSelector["imatch"][]
                • Optional !like?: PrimitiveSelector["like"][]
                • Optional !lt?: PrimitiveSelector["lt"][]
                • Optional !lte?: PrimitiveSelector["lte"][]
                • Optional !match?: PrimitiveSelector["match"][]
                • Optional !qref?: FormattedSelector["qref"]
                • Optional !ref?: PrimitiveSelector["ref"][]
                • Optional !selector?: FormattedSelector["selector"]
                • Optional !tag?: PrimitiveSelector["tag"][][]
                • Optional !truthy?: PrimitiveSelector["truthy"][][]
                • Optional contain?: PrimitiveSelector["contain"][]
                • Optional defined?: PrimitiveSelector["defined"][][]
                • Optional equal?: PrimitiveSelector["equal"][]
                • Optional gt?: PrimitiveSelector["gt"][]
                • Optional gte?: PrimitiveSelector["gte"][]
                • Optional guid?: PrimitiveSelector["guid"][][]
                • Optional ilike?: PrimitiveSelector["ilike"][]
                • Optional imatch?: PrimitiveSelector["imatch"][]
                • Optional like?: PrimitiveSelector["like"][]
                • Optional lt?: PrimitiveSelector["lt"][]
                • Optional lte?: PrimitiveSelector["lte"][]
                • Optional match?: PrimitiveSelector["match"][]
                • Optional qref?: [string, [Options, ...FormattedSelector[]]][]
                • Optional ref?: PrimitiveSelector["ref"][]
                • Optional selector?: FormattedSelector[]
                • Optional tag?: PrimitiveSelector["tag"][][]
                • Optional truthy?: PrimitiveSelector["truthy"][][]
                • type: "&" | "|" | "!&" | "!|"
                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphAfterCommitTransactionCallback.html b/static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphAfterCommitTransactionCallback.html new file mode 100644 index 0000000..2c89ed8 --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphAfterCommitTransactionCallback.html @@ -0,0 +1 @@ +NymphAfterCommitTransactionCallback | Nymph.js 1.0.0-beta.81
                NymphAfterCommitTransactionCallback: ((nymph, name, result) => Promise<void>)

                Type declaration

                  • (nymph, name, result): Promise<void>
                  • Parameters

                    • nymph: Nymph
                    • name: string
                    • result: boolean

                    Returns Promise<void>

                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphAfterDeleteEntityByIDCallback.html b/static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphAfterDeleteEntityByIDCallback.html new file mode 100644 index 0000000..63c55b4 --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphAfterDeleteEntityByIDCallback.html @@ -0,0 +1 @@ +NymphAfterDeleteEntityByIDCallback | Nymph.js 1.0.0-beta.81
                NymphAfterDeleteEntityByIDCallback: ((nymph, result) => Promise<void>)

                Type declaration

                  • (nymph, result): Promise<void>
                  • Parameters

                    • nymph: Nymph
                    • result: Promise<boolean>

                    Returns Promise<void>

                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphAfterDeleteEntityCallback.html b/static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphAfterDeleteEntityCallback.html new file mode 100644 index 0000000..ad176bd --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphAfterDeleteEntityCallback.html @@ -0,0 +1 @@ +NymphAfterDeleteEntityCallback | Nymph.js 1.0.0-beta.81
                NymphAfterDeleteEntityCallback: ((nymph, result) => Promise<void>)

                Type declaration

                  • (nymph, result): Promise<void>
                  • Parameters

                    • nymph: Nymph
                    • result: Promise<boolean>

                    Returns Promise<void>

                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphAfterDeleteUIDCallback.html b/static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphAfterDeleteUIDCallback.html new file mode 100644 index 0000000..a3ab192 --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphAfterDeleteUIDCallback.html @@ -0,0 +1 @@ +NymphAfterDeleteUIDCallback | Nymph.js 1.0.0-beta.81
                NymphAfterDeleteUIDCallback: ((nymph, result) => Promise<void>)

                Type declaration

                  • (nymph, result): Promise<void>
                  • Parameters

                    • nymph: Nymph
                    • result: Promise<boolean>

                    Returns Promise<void>

                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphAfterNewUIDCallback.html b/static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphAfterNewUIDCallback.html new file mode 100644 index 0000000..532ab4a --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphAfterNewUIDCallback.html @@ -0,0 +1 @@ +NymphAfterNewUIDCallback | Nymph.js 1.0.0-beta.81
                NymphAfterNewUIDCallback: ((nymph, result) => Promise<void>)

                Type declaration

                  • (nymph, result): Promise<void>
                  • Parameters

                    • nymph: Nymph
                    • result: Promise<number | null>

                    Returns Promise<void>

                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphAfterRenameUIDCallback.html b/static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphAfterRenameUIDCallback.html new file mode 100644 index 0000000..84db597 --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphAfterRenameUIDCallback.html @@ -0,0 +1 @@ +NymphAfterRenameUIDCallback | Nymph.js 1.0.0-beta.81
                NymphAfterRenameUIDCallback: ((nymph, result) => Promise<void>)

                Type declaration

                  • (nymph, result): Promise<void>
                  • Parameters

                    • nymph: Nymph
                    • result: Promise<boolean>

                    Returns Promise<void>

                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphAfterRollbackTransactionCallback.html b/static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphAfterRollbackTransactionCallback.html new file mode 100644 index 0000000..24d4cd8 --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphAfterRollbackTransactionCallback.html @@ -0,0 +1 @@ +NymphAfterRollbackTransactionCallback | Nymph.js 1.0.0-beta.81
                NymphAfterRollbackTransactionCallback: ((nymph, name, result) => Promise<void>)

                Type declaration

                  • (nymph, name, result): Promise<void>
                  • Parameters

                    • nymph: Nymph
                    • name: string
                    • result: boolean

                    Returns Promise<void>

                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphAfterSaveEntityCallback.html b/static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphAfterSaveEntityCallback.html new file mode 100644 index 0000000..4c3cd0e --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphAfterSaveEntityCallback.html @@ -0,0 +1 @@ +NymphAfterSaveEntityCallback | Nymph.js 1.0.0-beta.81
                NymphAfterSaveEntityCallback: ((nymph, result) => Promise<void>)

                Type declaration

                  • (nymph, result): Promise<void>
                  • Parameters

                    • nymph: Nymph
                    • result: Promise<boolean>

                    Returns Promise<void>

                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphAfterSetUIDCallback.html b/static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphAfterSetUIDCallback.html new file mode 100644 index 0000000..239e2c4 --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphAfterSetUIDCallback.html @@ -0,0 +1 @@ +NymphAfterSetUIDCallback | Nymph.js 1.0.0-beta.81
                NymphAfterSetUIDCallback: ((nymph, result) => Promise<void>)

                Type declaration

                  • (nymph, result): Promise<void>
                  • Parameters

                    • nymph: Nymph
                    • result: Promise<boolean>

                    Returns Promise<void>

                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphAfterStartTransactionCallback.html b/static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphAfterStartTransactionCallback.html new file mode 100644 index 0000000..b158a87 --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphAfterStartTransactionCallback.html @@ -0,0 +1 @@ +NymphAfterStartTransactionCallback | Nymph.js 1.0.0-beta.81
                NymphAfterStartTransactionCallback: ((nymph, name, result) => Promise<void>)

                Type declaration

                  • (nymph, name, result): Promise<void>
                  • Parameters

                    Returns Promise<void>

                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphBeforeCommitTransactionCallback.html b/static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphBeforeCommitTransactionCallback.html new file mode 100644 index 0000000..f157e1a --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphBeforeCommitTransactionCallback.html @@ -0,0 +1 @@ +NymphBeforeCommitTransactionCallback | Nymph.js 1.0.0-beta.81
                NymphBeforeCommitTransactionCallback: ((nymph, name) => Promise<void>)

                Type declaration

                  • (nymph, name): Promise<void>
                  • Parameters

                    Returns Promise<void>

                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphBeforeDeleteEntityByIDCallback.html b/static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphBeforeDeleteEntityByIDCallback.html new file mode 100644 index 0000000..4d9360a --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphBeforeDeleteEntityByIDCallback.html @@ -0,0 +1 @@ +NymphBeforeDeleteEntityByIDCallback | Nymph.js 1.0.0-beta.81
                NymphBeforeDeleteEntityByIDCallback: ((nymph, guid, className?) => Promise<void>)

                Type declaration

                  • (nymph, guid, className?): Promise<void>
                  • Parameters

                    • nymph: Nymph
                    • guid: string
                    • Optional className: string

                    Returns Promise<void>

                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphBeforeDeleteEntityCallback.html b/static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphBeforeDeleteEntityCallback.html new file mode 100644 index 0000000..712241d --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphBeforeDeleteEntityCallback.html @@ -0,0 +1 @@ +NymphBeforeDeleteEntityCallback | Nymph.js 1.0.0-beta.81
                NymphBeforeDeleteEntityCallback: ((nymph, entity) => Promise<void>)

                Type declaration

                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphBeforeDeleteUIDCallback.html b/static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphBeforeDeleteUIDCallback.html new file mode 100644 index 0000000..c1a6ae6 --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphBeforeDeleteUIDCallback.html @@ -0,0 +1 @@ +NymphBeforeDeleteUIDCallback | Nymph.js 1.0.0-beta.81
                NymphBeforeDeleteUIDCallback: ((nymph, name) => Promise<void>)

                Type declaration

                  • (nymph, name): Promise<void>
                  • Parameters

                    Returns Promise<void>

                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphBeforeGetEntitiesCallback.html b/static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphBeforeGetEntitiesCallback.html new file mode 100644 index 0000000..130ab09 --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphBeforeGetEntitiesCallback.html @@ -0,0 +1 @@ +NymphBeforeGetEntitiesCallback | Nymph.js 1.0.0-beta.81
                NymphBeforeGetEntitiesCallback: ((nymph, options, selectors) => Promise<void>)

                Type declaration

                  • (nymph, options, selectors): Promise<void>
                  • Parameters

                    Returns Promise<void>

                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphBeforeGetEntityCallback.html b/static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphBeforeGetEntityCallback.html new file mode 100644 index 0000000..48d077d --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphBeforeGetEntityCallback.html @@ -0,0 +1 @@ +NymphBeforeGetEntityCallback | Nymph.js 1.0.0-beta.81
                NymphBeforeGetEntityCallback: ((nymph, options, selectors) => Promise<void>)

                Type declaration

                  • (nymph, options, selectors): Promise<void>
                  • Parameters

                    Returns Promise<void>

                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphBeforeNewUIDCallback.html b/static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphBeforeNewUIDCallback.html new file mode 100644 index 0000000..169e1b9 --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphBeforeNewUIDCallback.html @@ -0,0 +1 @@ +NymphBeforeNewUIDCallback | Nymph.js 1.0.0-beta.81
                NymphBeforeNewUIDCallback: ((nymph, name) => Promise<void>)

                Type declaration

                  • (nymph, name): Promise<void>
                  • Parameters

                    Returns Promise<void>

                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphBeforeRenameUIDCallback.html b/static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphBeforeRenameUIDCallback.html new file mode 100644 index 0000000..1d03305 --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphBeforeRenameUIDCallback.html @@ -0,0 +1 @@ +NymphBeforeRenameUIDCallback | Nymph.js 1.0.0-beta.81
                NymphBeforeRenameUIDCallback: ((nymph, oldName, newName) => Promise<void>)

                Type declaration

                  • (nymph, oldName, newName): Promise<void>
                  • Parameters

                    • nymph: Nymph
                    • oldName: string
                    • newName: string

                    Returns Promise<void>

                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphBeforeRollbackTransactionCallback.html b/static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphBeforeRollbackTransactionCallback.html new file mode 100644 index 0000000..39ecea1 --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphBeforeRollbackTransactionCallback.html @@ -0,0 +1 @@ +NymphBeforeRollbackTransactionCallback | Nymph.js 1.0.0-beta.81
                NymphBeforeRollbackTransactionCallback: ((nymph, name) => Promise<void>)

                Type declaration

                  • (nymph, name): Promise<void>
                  • Parameters

                    Returns Promise<void>

                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphBeforeSaveEntityCallback.html b/static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphBeforeSaveEntityCallback.html new file mode 100644 index 0000000..8e0b7c6 --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphBeforeSaveEntityCallback.html @@ -0,0 +1 @@ +NymphBeforeSaveEntityCallback | Nymph.js 1.0.0-beta.81
                NymphBeforeSaveEntityCallback: ((nymph, entity) => Promise<void>)

                Type declaration

                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphBeforeSetUIDCallback.html b/static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphBeforeSetUIDCallback.html new file mode 100644 index 0000000..3d980ac --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphBeforeSetUIDCallback.html @@ -0,0 +1 @@ +NymphBeforeSetUIDCallback | Nymph.js 1.0.0-beta.81
                NymphBeforeSetUIDCallback: ((nymph, name, value) => Promise<void>)

                Type declaration

                  • (nymph, name, value): Promise<void>
                  • Parameters

                    • nymph: Nymph
                    • name: string
                    • value: number

                    Returns Promise<void>

                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphBeforeStartTransactionCallback.html b/static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphBeforeStartTransactionCallback.html new file mode 100644 index 0000000..524319d --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphBeforeStartTransactionCallback.html @@ -0,0 +1 @@ +NymphBeforeStartTransactionCallback | Nymph.js 1.0.0-beta.81
                NymphBeforeStartTransactionCallback: ((nymph, name) => Promise<void>)

                Type declaration

                  • (nymph, name): Promise<void>
                  • Parameters

                    Returns Promise<void>

                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphConnectCallback.html b/static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphConnectCallback.html new file mode 100644 index 0000000..eb89df1 --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphConnectCallback.html @@ -0,0 +1 @@ +NymphConnectCallback | Nymph.js 1.0.0-beta.81
                NymphConnectCallback: ((nymph, result) => Promise<void>)

                Type declaration

                  • (nymph, result): Promise<void>
                  • Parameters

                    • nymph: Nymph
                    • result: Promise<boolean>

                    Returns Promise<void>

                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphDisconnectCallback.html b/static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphDisconnectCallback.html new file mode 100644 index 0000000..5ca9115 --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphDisconnectCallback.html @@ -0,0 +1 @@ +NymphDisconnectCallback | Nymph.js 1.0.0-beta.81
                NymphDisconnectCallback: ((nymph, result) => Promise<void>)

                Type declaration

                  • (nymph, result): Promise<void>
                  • Parameters

                    • nymph: Nymph
                    • result: Promise<boolean>

                    Returns Promise<void>

                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphEventType.html b/static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphEventType.html new file mode 100644 index 0000000..abba3ac --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphEventType.html @@ -0,0 +1 @@ +NymphEventType | Nymph.js 1.0.0-beta.81
                NymphEventType: "connect" | "disconnect" | "query" | "beforeGetEntity" | "beforeGetEntities" | "beforeSaveEntity" | "afterSaveEntity" | "failedSaveEntity" | "beforeDeleteEntity" | "afterDeleteEntity" | "failedDeleteEntity" | "beforeDeleteEntityByID" | "afterDeleteEntityByID" | "failedDeleteEntityByID" | "beforeNewUID" | "afterNewUID" | "failedNewUID" | "beforeSetUID" | "afterSetUID" | "failedSetUID" | "beforeRenameUID" | "afterRenameUID" | "failedRenameUID" | "beforeDeleteUID" | "afterDeleteUID" | "failedDeleteUID" | "beforeStartTransaction" | "afterStartTransaction" | "beforeCommitTransaction" | "afterCommitTransaction" | "beforeRollbackTransaction" | "afterRollbackTransaction"
                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphFailedDeleteEntityByIDCallback.html b/static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphFailedDeleteEntityByIDCallback.html new file mode 100644 index 0000000..d81c91b --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphFailedDeleteEntityByIDCallback.html @@ -0,0 +1 @@ +NymphFailedDeleteEntityByIDCallback | Nymph.js 1.0.0-beta.81
                NymphFailedDeleteEntityByIDCallback: ((nymph, error) => Promise<void>)

                Type declaration

                  • (nymph, error): Promise<void>
                  • Parameters

                    Returns Promise<void>

                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphFailedDeleteEntityCallback.html b/static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphFailedDeleteEntityCallback.html new file mode 100644 index 0000000..09654ba --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphFailedDeleteEntityCallback.html @@ -0,0 +1 @@ +NymphFailedDeleteEntityCallback | Nymph.js 1.0.0-beta.81
                NymphFailedDeleteEntityCallback: ((nymph, error) => Promise<void>)

                Type declaration

                  • (nymph, error): Promise<void>
                  • Parameters

                    Returns Promise<void>

                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphFailedDeleteUIDCallback.html b/static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphFailedDeleteUIDCallback.html new file mode 100644 index 0000000..f6d539e --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphFailedDeleteUIDCallback.html @@ -0,0 +1 @@ +NymphFailedDeleteUIDCallback | Nymph.js 1.0.0-beta.81
                NymphFailedDeleteUIDCallback: ((nymph, error) => Promise<void>)

                Type declaration

                  • (nymph, error): Promise<void>
                  • Parameters

                    Returns Promise<void>

                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphFailedNewUIDCallback.html b/static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphFailedNewUIDCallback.html new file mode 100644 index 0000000..66c1346 --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphFailedNewUIDCallback.html @@ -0,0 +1 @@ +NymphFailedNewUIDCallback | Nymph.js 1.0.0-beta.81
                NymphFailedNewUIDCallback: ((nymph, error) => Promise<void>)

                Type declaration

                  • (nymph, error): Promise<void>
                  • Parameters

                    Returns Promise<void>

                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphFailedRenameUIDCallback.html b/static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphFailedRenameUIDCallback.html new file mode 100644 index 0000000..8d2344c --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphFailedRenameUIDCallback.html @@ -0,0 +1 @@ +NymphFailedRenameUIDCallback | Nymph.js 1.0.0-beta.81
                NymphFailedRenameUIDCallback: ((nymph, error) => Promise<void>)

                Type declaration

                  • (nymph, error): Promise<void>
                  • Parameters

                    Returns Promise<void>

                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphFailedSaveEntityCallback.html b/static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphFailedSaveEntityCallback.html new file mode 100644 index 0000000..d08633b --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphFailedSaveEntityCallback.html @@ -0,0 +1 @@ +NymphFailedSaveEntityCallback | Nymph.js 1.0.0-beta.81
                NymphFailedSaveEntityCallback: ((nymph, error) => Promise<void>)

                Type declaration

                  • (nymph, error): Promise<void>
                  • Parameters

                    Returns Promise<void>

                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphFailedSetUIDCallback.html b/static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphFailedSetUIDCallback.html new file mode 100644 index 0000000..f0116c0 --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphFailedSetUIDCallback.html @@ -0,0 +1 @@ +NymphFailedSetUIDCallback | Nymph.js 1.0.0-beta.81
                NymphFailedSetUIDCallback: ((nymph, error) => Promise<void>)

                Type declaration

                  • (nymph, error): Promise<void>
                  • Parameters

                    Returns Promise<void>

                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphQueryCallback.html b/static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphQueryCallback.html new file mode 100644 index 0000000..faaf48a --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_nymph.NymphQueryCallback.html @@ -0,0 +1,8 @@ +NymphQueryCallback | Nymph.js 1.0.0-beta.81
                NymphQueryCallback: ((nymph, options, selectors) => void)

                The NymphQueryCallback will be called on both top level and qref queries.

                +

                This is the only callback that is not asynchronous.

                +

                This also isn't necessarily run on every "query". It is run before a database +query for an entity, but it is not run during PubSub entity change +propagation. Therefore, it shouldn't do anything entity specific, instead +it should be query specific. For example, throw an error if the user is not +permitted to run the query at all.

                +

                Type declaration

                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_nymph.Options.html b/static/api/1.0.0-beta.81/types/_nymphjs_nymph.Options.html new file mode 100644 index 0000000..9403c85 --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_nymph.Options.html @@ -0,0 +1,17 @@ +Options | Nymph.js 1.0.0-beta.81
                Options<T>: {
                    class?: T;
                    limit?: number;
                    offset?: number;
                    return?: "entity" | "guid" | "count";
                    reverse?: boolean;
                    skipAc?: boolean;
                    skipCache?: boolean;
                    sort?: "cdate" | "mdate" | string;
                    source?: string;
                }

                Type Parameters

                Type declaration

                • Optional class?: T

                  The Entity class to query.

                  +
                • Optional limit?: number

                  The limit of entities to be returned. Not needed when using getEntity, as +it always returns only one.

                  +
                • Optional offset?: number

                  The offset from the first matching entity, in order, to start retrieving.

                  +
                • Optional return?: "entity" | "guid" | "count"

                  What to return, the entities with their data, just the GUIDs, or just a +count.

                  +
                • Optional reverse?: boolean

                  If true, entities will be retrieved from newest to oldest/largest to +smallest (with regard to sort).

                  +
                • Optional skipAc?: boolean

                  If true, Tilmeld will not filter returned entities according to access +controls. (If Tilmeld is installed.) (This is always set to false by the +REST endpoint and PubSub server.)

                  +
                • Optional skipCache?: boolean

                  If true, Nymph will skip the cache and retrieve the entity from the DB.

                  +
                • Optional sort?: "cdate" | "mdate" | string

                  How to sort the entities. Should be "cdate", "mdate", or the name of a +property.

                  +
                • Optional source?: string

                  Will be 'client' if the query came from a REST request or the PubSub +server. (Mainly used in Tilmeld for access control.)

                  +
                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_nymph.OrWithTime.html b/static/api/1.0.0-beta.81/types/_nymphjs_nymph.OrWithTime.html new file mode 100644 index 0000000..61ff5c0 --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_nymph.OrWithTime.html @@ -0,0 +1 @@ +OrWithTime | Nymph.js 1.0.0-beta.81
                OrWithTime<T>: T | [string, null, string]

                Type Parameters

                • T
                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_nymph.Selector.html b/static/api/1.0.0-beta.81/types/_nymphjs_nymph.Selector.html new file mode 100644 index 0000000..7dfdb4e --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_nymph.Selector.html @@ -0,0 +1 @@ +Selector | Nymph.js 1.0.0-beta.81
                Selector: {
                    !contain?: Clause<OrWithTime<PrimitiveSelector["contain"]>>;
                    !defined?: Clause<PrimitiveSelector["defined"]>;
                    !equal?: Clause<OrWithTime<PrimitiveSelector["equal"]>>;
                    !gt?: Clause<OrWithTime<PrimitiveSelector["gt"]>>;
                    !gte?: Clause<OrWithTime<PrimitiveSelector["gte"]>>;
                    !guid?: Clause<PrimitiveSelector["guid"]>;
                    !ilike?: Clause<PrimitiveSelector["ilike"]>;
                    !imatch?: Clause<PrimitiveSelector["imatch"]>;
                    !like?: Clause<PrimitiveSelector["like"]>;
                    !lt?: Clause<OrWithTime<PrimitiveSelector["lt"]>>;
                    !lte?: Clause<OrWithTime<PrimitiveSelector["lte"]>>;
                    !match?: Clause<PrimitiveSelector["match"]>;
                    !qref?: Selector["qref"];
                    !ref?: Clause<PrimitiveSelector["ref"]>;
                    !selector?: Selector["selector"];
                    !tag?: Clause<PrimitiveSelector["tag"]>;
                    !truthy?: Clause<PrimitiveSelector["truthy"]>;
                    contain?: Clause<OrWithTime<PrimitiveSelector["contain"]>>;
                    defined?: Clause<PrimitiveSelector["defined"]>;
                    equal?: Clause<OrWithTime<PrimitiveSelector["equal"]>>;
                    gt?: Clause<OrWithTime<PrimitiveSelector["gt"]>>;
                    gte?: Clause<OrWithTime<PrimitiveSelector["gte"]>>;
                    guid?: Clause<PrimitiveSelector["guid"]>;
                    ilike?: Clause<PrimitiveSelector["ilike"]>;
                    imatch?: Clause<PrimitiveSelector["imatch"]>;
                    like?: Clause<PrimitiveSelector["like"]>;
                    lt?: Clause<OrWithTime<PrimitiveSelector["lt"]>>;
                    lte?: Clause<OrWithTime<PrimitiveSelector["lte"]>>;
                    match?: Clause<PrimitiveSelector["match"]>;
                    qref?: Clause<[string, [Options, ...Selector[]]]>;
                    ref?: Clause<PrimitiveSelector["ref"]>;
                    selector?: Clause<Selector>;
                    tag?: Clause<PrimitiveSelector["tag"]>;
                    truthy?: Clause<PrimitiveSelector["truthy"]>;
                    type: "&" | "|" | "!&" | "!|";
                }

                Type declaration

                • Optional !contain?: Clause<OrWithTime<PrimitiveSelector["contain"]>>
                • Optional !defined?: Clause<PrimitiveSelector["defined"]>
                • Optional !equal?: Clause<OrWithTime<PrimitiveSelector["equal"]>>
                • Optional !gt?: Clause<OrWithTime<PrimitiveSelector["gt"]>>
                • Optional !gte?: Clause<OrWithTime<PrimitiveSelector["gte"]>>
                • Optional !guid?: Clause<PrimitiveSelector["guid"]>
                • Optional !ilike?: Clause<PrimitiveSelector["ilike"]>
                • Optional !imatch?: Clause<PrimitiveSelector["imatch"]>
                • Optional !like?: Clause<PrimitiveSelector["like"]>
                • Optional !lt?: Clause<OrWithTime<PrimitiveSelector["lt"]>>
                • Optional !lte?: Clause<OrWithTime<PrimitiveSelector["lte"]>>
                • Optional !match?: Clause<PrimitiveSelector["match"]>
                • Optional !qref?: Selector["qref"]
                • Optional !ref?: Clause<PrimitiveSelector["ref"]>
                • Optional !selector?: Selector["selector"]
                • Optional !tag?: Clause<PrimitiveSelector["tag"]>
                • Optional !truthy?: Clause<PrimitiveSelector["truthy"]>
                • Optional contain?: Clause<OrWithTime<PrimitiveSelector["contain"]>>
                • Optional defined?: Clause<PrimitiveSelector["defined"]>
                • Optional equal?: Clause<OrWithTime<PrimitiveSelector["equal"]>>
                • Optional gt?: Clause<OrWithTime<PrimitiveSelector["gt"]>>
                • Optional gte?: Clause<OrWithTime<PrimitiveSelector["gte"]>>
                • Optional guid?: Clause<PrimitiveSelector["guid"]>
                • Optional ilike?: Clause<PrimitiveSelector["ilike"]>
                • Optional imatch?: Clause<PrimitiveSelector["imatch"]>
                • Optional like?: Clause<PrimitiveSelector["like"]>
                • Optional lt?: Clause<OrWithTime<PrimitiveSelector["lt"]>>
                • Optional lte?: Clause<OrWithTime<PrimitiveSelector["lte"]>>
                • Optional match?: Clause<PrimitiveSelector["match"]>
                • Optional qref?: Clause<[string, [Options, ...Selector[]]]>
                • Optional ref?: Clause<PrimitiveSelector["ref"]>
                • Optional selector?: Clause<Selector>
                • Optional tag?: Clause<PrimitiveSelector["tag"]>
                • Optional truthy?: Clause<PrimitiveSelector["truthy"]>
                • type: "&" | "|" | "!&" | "!|"
                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_nymph.SerializedEntityData.html b/static/api/1.0.0-beta.81/types/_nymphjs_nymph.SerializedEntityData.html new file mode 100644 index 0000000..d76cfa0 --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_nymph.SerializedEntityData.html @@ -0,0 +1 @@ +SerializedEntityData | Nymph.js 1.0.0-beta.81
                SerializedEntityData: {
                    [k: string]: string;
                }

                Type declaration

                • [k: string]: string
                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_pubsub.AuthenticateMessageData.html b/static/api/1.0.0-beta.81/types/_nymphjs_pubsub.AuthenticateMessageData.html new file mode 100644 index 0000000..fd3e085 --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_pubsub.AuthenticateMessageData.html @@ -0,0 +1 @@ +AuthenticateMessageData | Nymph.js 1.0.0-beta.81
                AuthenticateMessageData: {
                    action: "authenticate";
                    authToken: string;
                    switchToken?: string;
                }

                Type declaration

                • action: "authenticate"
                • authToken: string
                • Optional switchToken?: string
                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_pubsub.MessageData.html b/static/api/1.0.0-beta.81/types/_nymphjs_pubsub.MessageData.html new file mode 100644 index 0000000..5e8e7b0 --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_pubsub.MessageData.html @@ -0,0 +1 @@ +MessageData | Nymph.js 1.0.0-beta.81
                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_pubsub.MessageOptions.html b/static/api/1.0.0-beta.81/types/_nymphjs_pubsub.MessageOptions.html new file mode 100644 index 0000000..e7f766d --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_pubsub.MessageOptions.html @@ -0,0 +1 @@ +MessageOptions | Nymph.js 1.0.0-beta.81
                MessageOptions: Options & {
                    class: string;
                }

                Type declaration

                • class: string
                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_pubsub.PublishEntityMessageData.html b/static/api/1.0.0-beta.81/types/_nymphjs_pubsub.PublishEntityMessageData.html new file mode 100644 index 0000000..999061d --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_pubsub.PublishEntityMessageData.html @@ -0,0 +1 @@ +PublishEntityMessageData | Nymph.js 1.0.0-beta.81
                PublishEntityMessageData: {
                    action: "publish";
                    entity?: EntityJson;
                    etype: string;
                    event: "create" | "update" | "delete";
                    guid: string;
                }

                Type declaration

                • action: "publish"
                • Optional entity?: EntityJson
                • etype: string
                • event: "create" | "update" | "delete"
                • guid: string
                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_pubsub.PublishMessageData.html b/static/api/1.0.0-beta.81/types/_nymphjs_pubsub.PublishMessageData.html new file mode 100644 index 0000000..2a4a1d8 --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_pubsub.PublishMessageData.html @@ -0,0 +1 @@ +PublishMessageData | Nymph.js 1.0.0-beta.81
                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_pubsub.PublishUidMessageData.html b/static/api/1.0.0-beta.81/types/_nymphjs_pubsub.PublishUidMessageData.html new file mode 100644 index 0000000..da60a1a --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_pubsub.PublishUidMessageData.html @@ -0,0 +1 @@ +PublishUidMessageData | Nymph.js 1.0.0-beta.81
                PublishUidMessageData: {
                    action: "publish";
                    event: "newUID" | "setUID" | "renameUID" | "deleteUID";
                    name?: string;
                    newName?: string;
                    oldName?: string;
                    value?: number;
                }

                Type declaration

                • action: "publish"
                • event: "newUID" | "setUID" | "renameUID" | "deleteUID"
                • Optional name?: string
                • Optional newName?: string
                • Optional oldName?: string
                • Optional value?: number
                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_pubsub.QuerySubscribeMessageData.html b/static/api/1.0.0-beta.81/types/_nymphjs_pubsub.QuerySubscribeMessageData.html new file mode 100644 index 0000000..2c62232 --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_pubsub.QuerySubscribeMessageData.html @@ -0,0 +1 @@ +QuerySubscribeMessageData | Nymph.js 1.0.0-beta.81
                QuerySubscribeMessageData: {
                    action: "subscribe" | "unsubscribe";
                    count?: boolean;
                    query: string;
                }

                Type declaration

                • action: "subscribe" | "unsubscribe"
                • Optional count?: boolean
                • query: string
                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_pubsub.QuerySubscriptionData.html b/static/api/1.0.0-beta.81/types/_nymphjs_pubsub.QuerySubscriptionData.html new file mode 100644 index 0000000..713c4d1 --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_pubsub.QuerySubscriptionData.html @@ -0,0 +1,3 @@ +QuerySubscriptionData | Nymph.js 1.0.0-beta.81
                QuerySubscriptionData: {
                    count: boolean;
                    current: string[];
                    direct: boolean;
                    qrefParents: {
                        etype: string;
                        query: string;
                    }[];
                    query: string;
                }

                Type declaration

                • count: boolean
                • current: string[]
                • direct: boolean

                  This means the user directly subscribed to this query, as opposed +to indirectly subscribing with a qref clause.

                  +
                • qrefParents: {
                      etype: string;
                      query: string;
                  }[]
                • query: string
                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_pubsub.SubscribeMessageData.html b/static/api/1.0.0-beta.81/types/_nymphjs_pubsub.SubscribeMessageData.html new file mode 100644 index 0000000..905f2f5 --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_pubsub.SubscribeMessageData.html @@ -0,0 +1 @@ +SubscribeMessageData | Nymph.js 1.0.0-beta.81
                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_pubsub.UidSubscribeMessageData.html b/static/api/1.0.0-beta.81/types/_nymphjs_pubsub.UidSubscribeMessageData.html new file mode 100644 index 0000000..6bf8585 --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_pubsub.UidSubscribeMessageData.html @@ -0,0 +1 @@ +UidSubscribeMessageData | Nymph.js 1.0.0-beta.81
                UidSubscribeMessageData: {
                    action: "subscribe" | "unsubscribe";
                    count?: boolean;
                    uid: string;
                }

                Type declaration

                • action: "subscribe" | "unsubscribe"
                • Optional count?: boolean
                • uid: string
                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_query_parser.BareQueryHandler.html b/static/api/1.0.0-beta.81/types/_nymphjs_query_parser.BareQueryHandler.html new file mode 100644 index 0000000..bd2c064 --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_query_parser.BareQueryHandler.html @@ -0,0 +1 @@ +BareQueryHandler | Nymph.js 1.0.0-beta.81
                BareQueryHandler: ((input, entityClass?, defaultFields?) => Partial<Selector>)

                Type declaration

                  • (input, entityClass?, defaultFields?): Partial<Selector>
                  • Parameters

                    Returns Partial<Selector>

                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_query_parser.QRefMap.html b/static/api/1.0.0-beta.81/types/_nymphjs_query_parser.QRefMap.html new file mode 100644 index 0000000..3c5678d --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_query_parser.QRefMap.html @@ -0,0 +1 @@ +QRefMap | Nymph.js 1.0.0-beta.81
                QRefMap: {
                    [k: string]: {
                        class: EntityConstructor;
                        defaultFields?: string[];
                    };
                }

                Type declaration

                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_sorter.SortOptions.html b/static/api/1.0.0-beta.81/types/_nymphjs_sorter.SortOptions.html new file mode 100644 index 0000000..56a2d19 --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_sorter.SortOptions.html @@ -0,0 +1,5 @@ +SortOptions | Nymph.js 1.0.0-beta.81
                SortOptions: {
                    caseSensitive?: boolean;
                    collatorOptions?: Intl.CollatorOptions;
                    comparator?: ((a, b) => number);
                    reverse?: boolean;
                }

                Type declaration

                • Optional caseSensitive?: boolean

                  Sort case sensitively.

                  +
                • Optional collatorOptions?: Intl.CollatorOptions

                  Options to pass to Intl.Collator for string comparisons. This overrides the caseSensitive options.

                  +
                • Optional comparator?: ((a, b) => number)

                  A custom comparator to use. This overrides all other options except reverse.

                  +
                    • (a, b): number
                    • Parameters

                      • a: any
                      • b: any

                      Returns number

                • Optional reverse?: boolean

                  Reverse the sort order.

                  +
                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_tilmeld.AccessControlData.html b/static/api/1.0.0-beta.81/types/_nymphjs_tilmeld.AccessControlData.html new file mode 100644 index 0000000..1ee995c --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_tilmeld.AccessControlData.html @@ -0,0 +1 @@ +AccessControlData | Nymph.js 1.0.0-beta.81
                AccessControlData: {
                    acFull?: (User & UserData | Group & GroupData)[];
                    acGroup?: number;
                    acOther?: number;
                    acRead?: (User & UserData | Group & GroupData)[];
                    acUser?: number;
                    acWrite?: (User & UserData | Group & GroupData)[];
                    group?: Group & GroupData;
                    user?: User & UserData;
                }

                Type declaration

                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_tilmeld.EventType.html b/static/api/1.0.0-beta.81/types/_nymphjs_tilmeld.EventType.html new file mode 100644 index 0000000..8e9330e --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_tilmeld.EventType.html @@ -0,0 +1 @@ +EventType | Nymph.js 1.0.0-beta.81
                EventType: "checkUsername" | "beforeRegister" | "afterRegister" | "beforeLogin" | "afterLogin" | "beforeLogout" | "afterLogout"
                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_tilmeld.GroupData.html b/static/api/1.0.0-beta.81/types/_nymphjs_tilmeld.GroupData.html new file mode 100644 index 0000000..9820e02 --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_tilmeld.GroupData.html @@ -0,0 +1,13 @@ +GroupData | Nymph.js 1.0.0-beta.81
                GroupData: {
                    abilities?: string[];
                    avatar?: string;
                    defaultPrimary?: boolean;
                    defaultSecondary?: boolean;
                    email?: string;
                    enabled?: boolean;
                    groupname?: string;
                    name?: string;
                    parent?: Group & GroupData;
                    phone?: string;
                    unverifiedSecondary?: boolean;
                    user?: User & UserData | null;
                }

                Type declaration

                • Optional abilities?: string[]

                  The abilities granted to the group.

                  +
                • Optional avatar?: string

                  The group's avatar URL. (Use getAvatar() to support Gravatar.)

                  +
                • Optional defaultPrimary?: boolean

                  Whether this group is the default primary group for new users.

                  +
                • Optional defaultSecondary?: boolean

                  Whether this group is a default secondary group for new users.

                  +
                • Optional email?: string

                  The group's email address.

                  +
                • Optional enabled?: boolean

                  Whether the group can be used.

                  +
                • Optional groupname?: string

                  The group's groupname.

                  +
                • Optional name?: string

                  The group's name.

                  +
                • Optional parent?: Group & GroupData

                  The group's parent.

                  +
                • Optional phone?: string

                  The group's telephone number.

                  +
                • Optional unverifiedSecondary?: boolean

                  Whether this group is a default secondary group for unverified users.

                  +
                • Optional user?: User & UserData | null

                  If generatePrimary is on, this will be the user who generated this group.

                  +
                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_tilmeld.TilmeldAfterLoginCallback.html b/static/api/1.0.0-beta.81/types/_nymphjs_tilmeld.TilmeldAfterLoginCallback.html new file mode 100644 index 0000000..94de1f0 --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_tilmeld.TilmeldAfterLoginCallback.html @@ -0,0 +1,3 @@ +TilmeldAfterLoginCallback | Nymph.js 1.0.0-beta.81
                TilmeldAfterLoginCallback: ((user) => Promise<void>)

                This is run before the transaction is committed, and you can perform +additional functions on the transaction, which is available in user.$nymph.

                +

                Type declaration

                  • (user): Promise<void>
                  • Parameters

                    Returns Promise<void>

                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_tilmeld.TilmeldAfterLogoutCallback.html b/static/api/1.0.0-beta.81/types/_nymphjs_tilmeld.TilmeldAfterLogoutCallback.html new file mode 100644 index 0000000..ed191ef --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_tilmeld.TilmeldAfterLogoutCallback.html @@ -0,0 +1 @@ +TilmeldAfterLogoutCallback | Nymph.js 1.0.0-beta.81
                TilmeldAfterLogoutCallback: ((user) => Promise<void>)

                Type declaration

                  • (user): Promise<void>
                  • Parameters

                    Returns Promise<void>

                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_tilmeld.TilmeldAfterRegisterCallback.html b/static/api/1.0.0-beta.81/types/_nymphjs_tilmeld.TilmeldAfterRegisterCallback.html new file mode 100644 index 0000000..6c4325f --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_tilmeld.TilmeldAfterRegisterCallback.html @@ -0,0 +1 @@ +TilmeldAfterRegisterCallback | Nymph.js 1.0.0-beta.81
                TilmeldAfterRegisterCallback: ((user, result) => Promise<void>)

                Type declaration

                  • (user, result): Promise<void>
                  • Parameters

                    • user: User & UserData
                    • result: {
                          loggedin: boolean;
                          message: string;
                      }
                      • loggedin: boolean
                      • message: string

                    Returns Promise<void>

                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_tilmeld.TilmeldBeforeLoginCallback.html b/static/api/1.0.0-beta.81/types/_nymphjs_tilmeld.TilmeldBeforeLoginCallback.html new file mode 100644 index 0000000..2dd5eb0 --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_tilmeld.TilmeldBeforeLoginCallback.html @@ -0,0 +1,2 @@ +TilmeldBeforeLoginCallback | Nymph.js 1.0.0-beta.81
                TilmeldBeforeLoginCallback: ((user, data) => Promise<void>)

                These are run after the authentication checks, but before the login action.

                +

                Type declaration

                  • (user, data): Promise<void>
                  • Parameters

                    • user: User & UserData
                    • data: {
                          additionalData?: {
                              [k: string]: any;
                          };
                          password: string;
                          username: string;
                      }
                      • Optional additionalData?: {
                            [k: string]: any;
                        }
                        • [k: string]: any
                      • password: string
                      • username: string

                    Returns Promise<void>

                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_tilmeld.TilmeldBeforeLogoutCallback.html b/static/api/1.0.0-beta.81/types/_nymphjs_tilmeld.TilmeldBeforeLogoutCallback.html new file mode 100644 index 0000000..1f0024f --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_tilmeld.TilmeldBeforeLogoutCallback.html @@ -0,0 +1 @@ +TilmeldBeforeLogoutCallback | Nymph.js 1.0.0-beta.81
                TilmeldBeforeLogoutCallback: ((user) => Promise<void>)

                Type declaration

                  • (user): Promise<void>
                  • Parameters

                    Returns Promise<void>

                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_tilmeld.TilmeldBeforeRegisterCallback.html b/static/api/1.0.0-beta.81/types/_nymphjs_tilmeld.TilmeldBeforeRegisterCallback.html new file mode 100644 index 0000000..47b9287 --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_tilmeld.TilmeldBeforeRegisterCallback.html @@ -0,0 +1,3 @@ +TilmeldBeforeRegisterCallback | Nymph.js 1.0.0-beta.81
                TilmeldBeforeRegisterCallback: ((user, data) => Promise<void>)

                Theses are run before the user data checks, so the only checks before are +whether registration is allowed and whether the user is already registered.

                +

                Type declaration

                  • (user, data): Promise<void>
                  • Parameters

                    • user: User & UserData
                    • data: {
                          additionalData?: {
                              [k: string]: any;
                          };
                          password: string;
                      }
                      • Optional additionalData?: {
                            [k: string]: any;
                        }
                        • [k: string]: any
                      • password: string

                    Returns Promise<void>

                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_tilmeld.TilmeldCheckUsernameCallback.html b/static/api/1.0.0-beta.81/types/_nymphjs_tilmeld.TilmeldCheckUsernameCallback.html new file mode 100644 index 0000000..dbd0535 --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_tilmeld.TilmeldCheckUsernameCallback.html @@ -0,0 +1,4 @@ +TilmeldCheckUsernameCallback | Nymph.js 1.0.0-beta.81
                TilmeldCheckUsernameCallback: ((user, data) => Promise<{
                    message?: string;
                    result: boolean;
                }>)

                This is run when the user has entered an otherwise valid username into the +signup form. It should return a result, which when false will stop the +process and return the included message, disallowing the username.

                +

                Type declaration

                  • (user, data): Promise<{
                        message?: string;
                        result: boolean;
                    }>
                  • Parameters

                    • user: User & UserData
                    • data: {
                          username: string;
                      }
                      • username: string

                    Returns Promise<{
                        message?: string;
                        result: boolean;
                    }>

                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_tilmeld.UserData.html b/static/api/1.0.0-beta.81/types/_nymphjs_tilmeld.UserData.html new file mode 100644 index 0000000..6f84aaf --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_tilmeld.UserData.html @@ -0,0 +1,31 @@ +UserData | Nymph.js 1.0.0-beta.81
                UserData: {
                    abilities?: string[];
                    avatar?: string;
                    cancelEmailAddress?: string;
                    cancelEmailSecret?: string;
                    email?: string;
                    emailChangeDate?: number;
                    enabled?: boolean;
                    group?: Group & GroupData;
                    groups?: (Group & GroupData)[];
                    inheritAbilities?: boolean;
                    name?: string;
                    nameFirst?: string;
                    nameLast?: string;
                    nameMiddle?: string;
                    newEmailAddress?: string;
                    newEmailSecret?: string;
                    password?: string;
                    passwordTemp?: string;
                    phone?: string;
                    recoverSecret?: string;
                    recoverSecretDate?: number;
                    revokeTokenDate?: number;
                    salt?: string;
                    secret?: string;
                    totpSecret?: string;
                    username?: string;
                }

                Type declaration

                • Optional abilities?: string[]

                  The abilities granted to the user.

                  +
                • Optional avatar?: string

                  The user's avatar URL. (Use $getAvatar() to support Gravatar.)

                  +
                • Optional cancelEmailAddress?: string

                  The old email address.

                  +
                • Optional cancelEmailSecret?: string

                  An email change cancellation secret.

                  +
                • Optional email?: string

                  The user's email address.

                  +
                • Optional emailChangeDate?: number

                  The timestamp of when the email address was last changed.

                  +
                • Optional enabled?: boolean

                  Whether the user can log in.

                  +
                • Optional group?: Group & GroupData

                  The user's primary group.

                  +
                • Optional groups?: (Group & GroupData)[]

                  The user's secondary groups.

                  +
                • Optional inheritAbilities?: boolean

                  Whether the user should inherit the abilities of his groups.

                  +
                • Optional name?: string

                  The user's full name. This is generated from the first, middle, and last +names.

                  +
                • Optional nameFirst?: string

                  The user's first name.

                  +
                • Optional nameLast?: string

                  The user's last name.

                  +
                • Optional nameMiddle?: string

                  The user's middle name.

                  +
                • Optional newEmailAddress?: string

                  If the user has changed their email address, this is the new one, awaiting +verification.

                  +
                • Optional newEmailSecret?: string

                  An email change proceed secret.

                  +
                • Optional password?: string

                  The password or password hash.

                  +
                • Optional passwordTemp?: string

                  Temporary storage for passwords. This will be hashed before going into the +database.

                  +
                • Optional phone?: string

                  The user's telephone number.

                  +
                • Optional recoverSecret?: string

                  A recovery secret.

                  +
                • Optional recoverSecretDate?: number

                  The timestamp of when the recovery secret was issued.

                  +
                • Optional revokeTokenDate?: number

                  If set, this timestamp is the cutoff point for JWT issue dates. Any token +issued before this date will not authenticate the user.

                  +
                • Optional salt?: string

                  The password hash salt.

                  +
                • Optional secret?: string

                  A verification secret.

                  +
                • Optional totpSecret?: string

                  Two factor auth secret.

                  +
                • Optional username?: string

                  The user's username.

                  +
                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_tilmeld_client.AdminGroupData.html b/static/api/1.0.0-beta.81/types/_nymphjs_tilmeld_client.AdminGroupData.html new file mode 100644 index 0000000..2050052 --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_tilmeld_client.AdminGroupData.html @@ -0,0 +1 @@ +AdminGroupData | Nymph.js 1.0.0-beta.81
                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_tilmeld_client.AdminUserData.html b/static/api/1.0.0-beta.81/types/_nymphjs_tilmeld_client.AdminUserData.html new file mode 100644 index 0000000..65ff85c --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_tilmeld_client.AdminUserData.html @@ -0,0 +1,14 @@ +AdminUserData | Nymph.js 1.0.0-beta.81
                AdminUserData: CurrentUserData & {
                    cancelEmailAddress?: string;
                    cancelEmailSecret?: string;
                    emailChangeDate?: number;
                    group?: Group & AdminGroupData;
                    groups?: (Group & AdminGroupData)[];
                    newEmailAddress?: string;
                    newEmailSecret?: string;
                    passwordTemp?: string;
                    recoverSecret?: string;
                    recoverSecretDate?: number;
                    revokeTokenDate?: number;
                    secret?: string;
                }

                Type declaration

                • Optional cancelEmailAddress?: string

                  The old email address.

                  +
                • Optional cancelEmailSecret?: string

                  An email change cancellation secret.

                  +
                • Optional emailChangeDate?: number

                  The timestamp of when the email address was last changed.

                  +
                • Optional group?: Group & AdminGroupData

                  The user's primary group.

                  +
                • Optional groups?: (Group & AdminGroupData)[]

                  The user's secondary groups.

                  +
                • Optional newEmailAddress?: string

                  The new email address.

                  +
                • Optional newEmailSecret?: string

                  An email change proceed secret.

                  +
                • Optional passwordTemp?: string

                  Used by admins to change a user's password. Not saved to the database.

                  +
                • Optional recoverSecret?: string

                  A recovery secret.

                  +
                • Optional recoverSecretDate?: number

                  The timestamp of when the recovery secret was issued.

                  +
                • Optional revokeTokenDate?: number

                  If set, this timestamp is the cutoff point for JWT issue dates. Any token +issued before this date will not authenticate the user.

                  +
                • Optional secret?: string

                  A verification secret.

                  +
                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_tilmeld_client.ClientConfig.html b/static/api/1.0.0-beta.81/types/_nymphjs_tilmeld_client.ClientConfig.html new file mode 100644 index 0000000..fad263d --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_tilmeld_client.ClientConfig.html @@ -0,0 +1 @@ +ClientConfig | Nymph.js 1.0.0-beta.81
                ClientConfig: {
                    allowRegistration: boolean;
                    allowUsernameChange: boolean;
                    emailUsernames: boolean;
                    pwRecovery: boolean;
                    regFields: string[];
                    unverifiedAccess: boolean;
                    userFields: string[];
                    verifyEmail: boolean;
                }

                Type declaration

                • allowRegistration: boolean
                • allowUsernameChange: boolean
                • emailUsernames: boolean
                • pwRecovery: boolean
                • regFields: string[]
                • unverifiedAccess: boolean
                • userFields: string[]
                • verifyEmail: boolean
                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_tilmeld_client.CurrentGroupData.html b/static/api/1.0.0-beta.81/types/_nymphjs_tilmeld_client.CurrentGroupData.html new file mode 100644 index 0000000..e33f198 --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_tilmeld_client.CurrentGroupData.html @@ -0,0 +1,5 @@ +CurrentGroupData | Nymph.js 1.0.0-beta.81
                CurrentGroupData: GroupData & {
                    abilities?: string[];
                    email?: string;
                    phone?: string;
                    user?: User & CurrentUserData | null;
                }

                Type declaration

                • Optional abilities?: string[]

                  The abilities granted to the group.

                  +
                • Optional email?: string

                  The group's email address.

                  +
                • Optional phone?: string

                  The group's telephone number.

                  +
                • Optional user?: User & CurrentUserData | null

                  If generatePrimary is on, this will be the user who generated this group.

                  +
                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_tilmeld_client.CurrentUserData.html b/static/api/1.0.0-beta.81/types/_nymphjs_tilmeld_client.CurrentUserData.html new file mode 100644 index 0000000..011dff9 --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_tilmeld_client.CurrentUserData.html @@ -0,0 +1,9 @@ +CurrentUserData | Nymph.js 1.0.0-beta.81
                CurrentUserData: UserData & {
                    abilities?: string[];
                    email?: string;
                    group?: Group & CurrentGroupData;
                    groups?: (Group & CurrentGroupData)[];
                    inheritAbilities?: boolean;
                    newEmailAddress?: string;
                    phone?: string;
                }

                Type declaration

                • Optional abilities?: string[]

                  The abilities granted to the user.

                  +
                • Optional email?: string

                  The user's email address.

                  +
                • Optional group?: Group & CurrentGroupData

                  The user's primary group.

                  +
                • Optional groups?: (Group & CurrentGroupData)[]

                  The user's secondary groups.

                  +
                • Optional inheritAbilities?: boolean

                  Whether the user should inherit the abilities of his groups.

                  +
                • Optional newEmailAddress?: string

                  If the user has changed their email address, this is the new one, awaiting +verification.

                  +
                • Optional phone?: string

                  The user's telephone number.

                  +
                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_tilmeld_client.EventType.html b/static/api/1.0.0-beta.81/types/_nymphjs_tilmeld_client.EventType.html new file mode 100644 index 0000000..25717cd --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_tilmeld_client.EventType.html @@ -0,0 +1 @@ +EventType | Nymph.js 1.0.0-beta.81
                EventType: "register" | "login" | "logout"
                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_tilmeld_client.GroupData.html b/static/api/1.0.0-beta.81/types/_nymphjs_tilmeld_client.GroupData.html new file mode 100644 index 0000000..803861f --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_tilmeld_client.GroupData.html @@ -0,0 +1,9 @@ +GroupData | Nymph.js 1.0.0-beta.81
                GroupData: {
                    avatar?: string;
                    defaultPrimary?: boolean;
                    defaultSecondary?: boolean;
                    enabled?: boolean;
                    groupname?: string;
                    name?: string;
                    parent?: Group & GroupData;
                    unverifiedSecondary?: boolean;
                }

                Type declaration

                • Optional avatar?: string

                  The group's avatar URL. (Use getAvatar() to support Gravatar.)

                  +
                • Optional defaultPrimary?: boolean

                  Whether this group is the default primary group for new users.

                  +
                • Optional defaultSecondary?: boolean

                  Whether this group is a default secondary group for new users.

                  +
                • Optional enabled?: boolean

                  Whether the group can be used.

                  +
                • Optional groupname?: string

                  The group's groupname.

                  +
                • Optional name?: string

                  The group's name.

                  +
                • Optional parent?: Group & GroupData

                  The group's parent.

                  +
                • Optional unverifiedSecondary?: boolean

                  Whether this group is a default secondary group for unverified users.

                  +
                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_tilmeld_client.LoginCallback.html b/static/api/1.0.0-beta.81/types/_nymphjs_tilmeld_client.LoginCallback.html new file mode 100644 index 0000000..36f5f09 --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_tilmeld_client.LoginCallback.html @@ -0,0 +1 @@ +LoginCallback | Nymph.js 1.0.0-beta.81
                LoginCallback: ((user) => void)

                Type declaration

                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_tilmeld_client.LogoutCallback.html b/static/api/1.0.0-beta.81/types/_nymphjs_tilmeld_client.LogoutCallback.html new file mode 100644 index 0000000..ed24d2e --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_tilmeld_client.LogoutCallback.html @@ -0,0 +1 @@ +LogoutCallback | Nymph.js 1.0.0-beta.81
                LogoutCallback: ((user) => void)

                Type declaration

                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_tilmeld_client.RegisterCallback.html b/static/api/1.0.0-beta.81/types/_nymphjs_tilmeld_client.RegisterCallback.html new file mode 100644 index 0000000..26cacad --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_tilmeld_client.RegisterCallback.html @@ -0,0 +1 @@ +RegisterCallback | Nymph.js 1.0.0-beta.81
                RegisterCallback: ((user) => void)

                Type declaration

                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_tilmeld_client.RegistrationDetails.html b/static/api/1.0.0-beta.81/types/_nymphjs_tilmeld_client.RegistrationDetails.html new file mode 100644 index 0000000..00eb281 --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_tilmeld_client.RegistrationDetails.html @@ -0,0 +1,10 @@ +RegistrationDetails | Nymph.js 1.0.0-beta.81
                RegistrationDetails: {
                    additionalData?: {
                        [k: string]: any;
                    };
                    email?: string;
                    nameFirst?: string;
                    nameLast?: string;
                    password: string;
                    password2: string;
                    phone?: string;
                    username: string;
                    usernameVerified: boolean;
                }

                Type declaration

                • Optional additionalData?: {
                      [k: string]: any;
                  }

                  Additional data to be included in the request.

                  +
                  • [k: string]: any
                • Optional email?: string

                  The new user's email address.

                  +
                • Optional nameFirst?: string

                  The new user's given name.

                  +
                • Optional nameLast?: string

                  The new user's surname.

                  +
                • password: string

                  New user's password.

                  +
                • password2: string

                  Repeat the password.

                  +
                • Optional phone?: string

                  The new user's phone number.

                  +
                • username: string

                  New user's username.

                  +
                • usernameVerified: boolean

                  Whether the username passed verification.

                  +
                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/types/_nymphjs_tilmeld_client.UserData.html b/static/api/1.0.0-beta.81/types/_nymphjs_tilmeld_client.UserData.html new file mode 100644 index 0000000..67f1230 --- /dev/null +++ b/static/api/1.0.0-beta.81/types/_nymphjs_tilmeld_client.UserData.html @@ -0,0 +1,8 @@ +UserData | Nymph.js 1.0.0-beta.81
                UserData: {
                    avatar?: string;
                    enabled?: boolean;
                    name?: string;
                    nameFirst?: string;
                    nameLast?: string;
                    nameMiddle?: string;
                    username?: string;
                }

                Type declaration

                • Optional avatar?: string

                  The user's avatar URL. (Use $getAvatar() to support Gravatar.)

                  +
                • Optional enabled?: boolean

                  Whether the user can log in.

                  +
                • Optional name?: string

                  The user's full name.

                  +
                • Optional nameFirst?: string

                  The user's first name.

                  +
                • Optional nameLast?: string

                  The user's last name.

                  +
                • Optional nameMiddle?: string

                  The user's middle name.

                  +
                • Optional username?: string

                  The user's username.

                  +
                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/variables/_nymphjs_driver_mysql.MySQLDriverConfigDefaults.html b/static/api/1.0.0-beta.81/variables/_nymphjs_driver_mysql.MySQLDriverConfigDefaults.html new file mode 100644 index 0000000..d88e537 --- /dev/null +++ b/static/api/1.0.0-beta.81/variables/_nymphjs_driver_mysql.MySQLDriverConfigDefaults.html @@ -0,0 +1 @@ +MySQLDriverConfigDefaults | Nymph.js 1.0.0-beta.81
                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/variables/_nymphjs_driver_postgresql.PostgreSQLDriverConfigDefaults.html b/static/api/1.0.0-beta.81/variables/_nymphjs_driver_postgresql.PostgreSQLDriverConfigDefaults.html new file mode 100644 index 0000000..2fd87b0 --- /dev/null +++ b/static/api/1.0.0-beta.81/variables/_nymphjs_driver_postgresql.PostgreSQLDriverConfigDefaults.html @@ -0,0 +1 @@ +PostgreSQLDriverConfigDefaults | Nymph.js 1.0.0-beta.81
                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/variables/_nymphjs_driver_sqlite3.SQLite3DriverConfigDefaults.html b/static/api/1.0.0-beta.81/variables/_nymphjs_driver_sqlite3.SQLite3DriverConfigDefaults.html new file mode 100644 index 0000000..2e3c9dc --- /dev/null +++ b/static/api/1.0.0-beta.81/variables/_nymphjs_driver_sqlite3.SQLite3DriverConfigDefaults.html @@ -0,0 +1 @@ +SQLite3DriverConfigDefaults | Nymph.js 1.0.0-beta.81
                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/variables/_nymphjs_nymph.ConfigDefaults.html b/static/api/1.0.0-beta.81/variables/_nymphjs_nymph.ConfigDefaults.html new file mode 100644 index 0000000..f75b4db --- /dev/null +++ b/static/api/1.0.0-beta.81/variables/_nymphjs_nymph.ConfigDefaults.html @@ -0,0 +1 @@ +ConfigDefaults | Nymph.js 1.0.0-beta.81
                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/variables/_nymphjs_nymph.nymphJoiProps.html b/static/api/1.0.0-beta.81/variables/_nymphjs_nymph.nymphJoiProps.html new file mode 100644 index 0000000..859b2b3 --- /dev/null +++ b/static/api/1.0.0-beta.81/variables/_nymphjs_nymph.nymphJoiProps.html @@ -0,0 +1 @@ +nymphJoiProps | Nymph.js 1.0.0-beta.81
                nymphJoiProps: {
                    cdate: AlternativesSchema<any>;
                    guid: AlternativesSchema<any>;
                    mdate: AlternativesSchema<any>;
                    tags: ArraySchema<any[]>;
                }

                Type declaration

                • cdate: AlternativesSchema<any>
                • guid: AlternativesSchema<any>
                • mdate: AlternativesSchema<any>
                • tags: ArraySchema<any[]>
                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/variables/_nymphjs_pubsub.ConfigDefaults.html b/static/api/1.0.0-beta.81/variables/_nymphjs_pubsub.ConfigDefaults.html new file mode 100644 index 0000000..6974624 --- /dev/null +++ b/static/api/1.0.0-beta.81/variables/_nymphjs_pubsub.ConfigDefaults.html @@ -0,0 +1 @@ +ConfigDefaults | Nymph.js 1.0.0-beta.81
                ConfigDefaults: Config
                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/variables/_nymphjs_server.statusDescriptions.html b/static/api/1.0.0-beta.81/variables/_nymphjs_server.statusDescriptions.html new file mode 100644 index 0000000..655eca0 --- /dev/null +++ b/static/api/1.0.0-beta.81/variables/_nymphjs_server.statusDescriptions.html @@ -0,0 +1,2 @@ +statusDescriptions | Nymph.js 1.0.0-beta.81
                statusDescriptions: {
                    [k: number]: string;
                } = ...

                HTTP status code to status text map.

                +

                Type declaration

                • [k: number]: string
                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/variables/_nymphjs_tilmeld.ConfigDefaults.html b/static/api/1.0.0-beta.81/variables/_nymphjs_tilmeld.ConfigDefaults.html new file mode 100644 index 0000000..1dda4f8 --- /dev/null +++ b/static/api/1.0.0-beta.81/variables/_nymphjs_tilmeld.ConfigDefaults.html @@ -0,0 +1 @@ +ConfigDefaults | Nymph.js 1.0.0-beta.81
                \ No newline at end of file diff --git a/static/api/1.0.0-beta.81/variables/_nymphjs_tilmeld.tilmeldJoiProps.html b/static/api/1.0.0-beta.81/variables/_nymphjs_tilmeld.tilmeldJoiProps.html new file mode 100644 index 0000000..607ed07 --- /dev/null +++ b/static/api/1.0.0-beta.81/variables/_nymphjs_tilmeld.tilmeldJoiProps.html @@ -0,0 +1 @@ +tilmeldJoiProps | Nymph.js 1.0.0-beta.81
                tilmeldJoiProps: {
                    acFull: ArraySchema<any[]>;
                    acGroup: NumberSchema<number>;
                    acOther: NumberSchema<number>;
                    acRead: ArraySchema<any[]>;
                    acUser: NumberSchema<number>;
                    acWrite: ArraySchema<any[]>;
                    group: ObjectSchema<any>;
                    user: ObjectSchema<any>;
                }

                Type declaration

                • acFull: ArraySchema<any[]>
                • acGroup: NumberSchema<number>
                • acOther: NumberSchema<number>
                • acRead: ArraySchema<any[]>
                • acUser: NumberSchema<number>
                • acWrite: ArraySchema<any[]>
                • group: ObjectSchema<any>
                • user: ObjectSchema<any>
                \ No newline at end of file diff --git a/static/api/latest b/static/api/latest index 2025135..fa8168d 120000 --- a/static/api/latest +++ b/static/api/latest @@ -1 +1 @@ -./1.0.0-beta.61/ \ No newline at end of file +./1.0.0-beta.81/ \ No newline at end of file