@rvoh/dream 0.29.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +382 -0
- package/boilerplate/app/models/ApplicationModel.ts +14 -0
- package/boilerplate/app/serializers/.gitkeep +0 -0
- package/boilerplate/bin/esm.js +19 -0
- package/boilerplate/cli/helpers/initializeDreamApplication.ts +6 -0
- package/boilerplate/cli/index.ts +22 -0
- package/boilerplate/conf/inflections.ts +5 -0
- package/boilerplate/conf/loadEnv.ts +4 -0
- package/boilerplate/conf/repl.ts +11 -0
- package/boilerplate/eslint.config.js +21 -0
- package/boilerplate/package.json +42 -0
- package/boilerplate/tsconfig.build.json +41 -0
- package/boilerplate/tsconfig.json +12 -0
- package/boilerplate/types/db.ts +5 -0
- package/boilerplate/types/dream.ts +3 -0
- package/dist/cjs/boilerplate/package.json +42 -0
- package/dist/cjs/src/Dream.js +2984 -0
- package/dist/cjs/src/bin/helpers/sync.js +109 -0
- package/dist/cjs/src/bin/index.js +107 -0
- package/dist/cjs/src/cli/index.js +155 -0
- package/dist/cjs/src/db/ConnectedToDB.js +43 -0
- package/dist/cjs/src/db/ConnectionConfRetriever.js +22 -0
- package/dist/cjs/src/db/DreamDbConnection.js +77 -0
- package/dist/cjs/src/db/dataTypes.js +58 -0
- package/dist/cjs/src/db/errors.js +17 -0
- package/dist/cjs/src/db/index.js +12 -0
- package/dist/cjs/src/db/migration-helpers/DreamMigrationHelpers.js +193 -0
- package/dist/cjs/src/db/reflections.js +2 -0
- package/dist/cjs/src/db/types.js +2 -0
- package/dist/cjs/src/db/validators/validateColumn.js +11 -0
- package/dist/cjs/src/db/validators/validateTable.js +9 -0
- package/dist/cjs/src/db/validators/validateTableAlias.js +55 -0
- package/dist/cjs/src/decorators/DecoratorContextType.js +2 -0
- package/dist/cjs/src/decorators/Decorators.js +326 -0
- package/dist/cjs/src/decorators/Encrypted.js +83 -0
- package/dist/cjs/src/decorators/ReplicaSafe.js +12 -0
- package/dist/cjs/src/decorators/STI.js +35 -0
- package/dist/cjs/src/decorators/Scope.js +31 -0
- package/dist/cjs/src/decorators/SoftDelete.js +54 -0
- package/dist/cjs/src/decorators/Virtual.js +28 -0
- package/dist/cjs/src/decorators/associations/BelongsTo.js +77 -0
- package/dist/cjs/src/decorators/associations/HasMany.js +100 -0
- package/dist/cjs/src/decorators/associations/HasOne.js +96 -0
- package/dist/cjs/src/decorators/associations/associationToGetterSetterProp.js +6 -0
- package/dist/cjs/src/decorators/associations/shared.js +132 -0
- package/dist/cjs/src/decorators/helpers/freezeBaseClassArrayMap.js +10 -0
- package/dist/cjs/src/decorators/hooks/AfterCreate.js +26 -0
- package/dist/cjs/src/decorators/hooks/AfterCreateCommit.js +43 -0
- package/dist/cjs/src/decorators/hooks/AfterDestroy.js +25 -0
- package/dist/cjs/src/decorators/hooks/AfterDestroyCommit.js +40 -0
- package/dist/cjs/src/decorators/hooks/AfterSave.js +26 -0
- package/dist/cjs/src/decorators/hooks/AfterSaveCommit.js +43 -0
- package/dist/cjs/src/decorators/hooks/AfterUpdate.js +26 -0
- package/dist/cjs/src/decorators/hooks/AfterUpdateCommit.js +43 -0
- package/dist/cjs/src/decorators/hooks/BeforeCreate.js +26 -0
- package/dist/cjs/src/decorators/hooks/BeforeDestroy.js +25 -0
- package/dist/cjs/src/decorators/hooks/BeforeSave.js +26 -0
- package/dist/cjs/src/decorators/hooks/BeforeUpdate.js +26 -0
- package/dist/cjs/src/decorators/hooks/shared.js +23 -0
- package/dist/cjs/src/decorators/sortable/Sortable.js +160 -0
- package/dist/cjs/src/decorators/sortable/helpers/applySortableScopeToQuery.js +17 -0
- package/dist/cjs/src/decorators/sortable/helpers/clearCachedSortableValues.js +11 -0
- package/dist/cjs/src/decorators/sortable/helpers/decrementScopedRecordsGreaterThanPosition.js +26 -0
- package/dist/cjs/src/decorators/sortable/helpers/getColumnForSortableScope.js +18 -0
- package/dist/cjs/src/decorators/sortable/helpers/isSortedCorrectly.js +7 -0
- package/dist/cjs/src/decorators/sortable/helpers/positionIsInvalid.js +11 -0
- package/dist/cjs/src/decorators/sortable/helpers/resortAllRecords.js +38 -0
- package/dist/cjs/src/decorators/sortable/helpers/scopeArray.js +10 -0
- package/dist/cjs/src/decorators/sortable/helpers/setPosition.js +158 -0
- package/dist/cjs/src/decorators/sortable/helpers/sortableCacheKeyName.js +7 -0
- package/dist/cjs/src/decorators/sortable/helpers/sortableCacheValuesName.js +7 -0
- package/dist/cjs/src/decorators/sortable/helpers/sortableQueryExcludingDream.js +10 -0
- package/dist/cjs/src/decorators/sortable/hooks/afterSortableCreate.js +18 -0
- package/dist/cjs/src/decorators/sortable/hooks/afterSortableDestroy.js +14 -0
- package/dist/cjs/src/decorators/sortable/hooks/afterSortableUpdate.js +31 -0
- package/dist/cjs/src/decorators/sortable/hooks/beforeSortableSave.js +65 -0
- package/dist/cjs/src/decorators/validations/Validate.js +22 -0
- package/dist/cjs/src/decorators/validations/Validates.js +70 -0
- package/dist/cjs/src/decorators/validations/shared.js +2 -0
- package/dist/cjs/src/dream/DreamClassTransactionBuilder.js +592 -0
- package/dist/cjs/src/dream/DreamInstanceTransactionBuilder.js +480 -0
- package/dist/cjs/src/dream/DreamTransaction.js +26 -0
- package/dist/cjs/src/dream/LeftJoinLoadBuilder.js +77 -0
- package/dist/cjs/src/dream/LoadBuilder.js +68 -0
- package/dist/cjs/src/dream/Query.js +2618 -0
- package/dist/cjs/src/dream/internal/applyScopeBypassingSettingsToQuery.js +11 -0
- package/dist/cjs/src/dream/internal/associations/associationQuery.js +23 -0
- package/dist/cjs/src/dream/internal/associations/associationUpdateQuery.js +36 -0
- package/dist/cjs/src/dream/internal/associations/createAssociation.js +55 -0
- package/dist/cjs/src/dream/internal/associations/destroyAssociation.js +17 -0
- package/dist/cjs/src/dream/internal/associations/undestroyAssociation.js +12 -0
- package/dist/cjs/src/dream/internal/checkSingleValidation.js +52 -0
- package/dist/cjs/src/dream/internal/destroyAssociatedRecords.js +21 -0
- package/dist/cjs/src/dream/internal/destroyDream.js +72 -0
- package/dist/cjs/src/dream/internal/destroyOptions.js +32 -0
- package/dist/cjs/src/dream/internal/ensureSTITypeFieldIsSet.js +10 -0
- package/dist/cjs/src/dream/internal/executeDatabaseQuery.js +24 -0
- package/dist/cjs/src/dream/internal/extractAssociationMetadataFromAssociationName.js +8 -0
- package/dist/cjs/src/dream/internal/orderByDirection.js +15 -0
- package/dist/cjs/src/dream/internal/reload.js +21 -0
- package/dist/cjs/src/dream/internal/runHooksFor.js +99 -0
- package/dist/cjs/src/dream/internal/runValidations.js +16 -0
- package/dist/cjs/src/dream/internal/safelyRunCommitHooks.js +15 -0
- package/dist/cjs/src/dream/internal/saveDream.js +67 -0
- package/dist/cjs/src/dream/internal/scopeHelpers.js +13 -0
- package/dist/cjs/src/dream/internal/shouldBypassDefaultScope.js +12 -0
- package/dist/cjs/src/dream/internal/similarity/SimilarityBuilder.js +331 -0
- package/dist/cjs/src/dream/internal/similarity/similaritySelectSql.js +21 -0
- package/dist/cjs/src/dream/internal/similarity/similarityWhereSql.js +21 -0
- package/dist/cjs/src/dream/internal/softDeleteDream.js +22 -0
- package/dist/cjs/src/dream/internal/sqlResultToDreamInstance.js +38 -0
- package/dist/cjs/src/dream/internal/undestroyDream.js +90 -0
- package/dist/cjs/src/dream/types.js +98 -0
- package/dist/cjs/src/dream-application/cache.js +13 -0
- package/dist/cjs/src/dream-application/helpers/DreamImporter.js +52 -0
- package/dist/cjs/src/dream-application/helpers/globalModelKeyFromPath.js +10 -0
- package/dist/cjs/src/dream-application/helpers/globalSerializerKeyFromPath.js +17 -0
- package/dist/cjs/src/dream-application/helpers/globalServiceKeyFromPath.js +11 -0
- package/dist/cjs/src/dream-application/helpers/importers/importModels.js +81 -0
- package/dist/cjs/src/dream-application/helpers/importers/importSerializers.js +63 -0
- package/dist/cjs/src/dream-application/helpers/importers/importServices.js +43 -0
- package/dist/cjs/src/dream-application/helpers/lookupClassByGlobalName.js +17 -0
- package/dist/cjs/src/dream-application/helpers/lookupModelByGlobalName.js +13 -0
- package/dist/cjs/src/dream-application/helpers/lookupModelByGlobalNameOrNames.js +10 -0
- package/dist/cjs/src/dream-application/index.js +284 -0
- package/dist/cjs/src/encrypt/InternalEncrypt.js +32 -0
- package/dist/cjs/src/encrypt/algorithms/aes-gcm/decryptAESGCM.js +26 -0
- package/dist/cjs/src/encrypt/algorithms/aes-gcm/encryptAESGCM.js +12 -0
- package/dist/cjs/src/encrypt/algorithms/aes-gcm/generateKeyAESGCM.js +7 -0
- package/dist/cjs/src/encrypt/algorithms/aes-gcm/validateKeyAESGCM.js +11 -0
- package/dist/cjs/src/encrypt/index.js +95 -0
- package/dist/cjs/src/errors/AttemptingToMarshalInvalidArrayType.js +20 -0
- package/dist/cjs/src/errors/CannotCallUndestroyOnANonSoftDeleteModel.js +21 -0
- package/dist/cjs/src/errors/CannotDefineAssociationWithBothDependentAndPassthrough.js +19 -0
- package/dist/cjs/src/errors/CannotDefineAssociationWithBothDependentAndRequiredOnClause.js +19 -0
- package/dist/cjs/src/errors/CannotNegateSimilarityClause.js +22 -0
- package/dist/cjs/src/errors/CannotPassAdditionalFieldsToPluckEachAfterCallback.js +22 -0
- package/dist/cjs/src/errors/CannotPassUndefinedAsAValueToAWhereClause.js +20 -0
- package/dist/cjs/src/errors/CannotReloadUnsavedDream.js +16 -0
- package/dist/cjs/src/errors/ConstructorOnlyForInternalUse.js +9 -0
- package/dist/cjs/src/errors/CreateOrFindByFailedToCreateAndFind.js +18 -0
- package/dist/cjs/src/errors/DoNotSetEncryptedFieldsDirectly.js +23 -0
- package/dist/cjs/src/errors/InvalidColumnName.js +19 -0
- package/dist/cjs/src/errors/InvalidDecimalFieldPassedToGenerator.js +19 -0
- package/dist/cjs/src/errors/InvalidTableAlias.js +30 -0
- package/dist/cjs/src/errors/InvalidTableName.js +23 -0
- package/dist/cjs/src/errors/LeftJoinPreloadIncompatibleWithFindEach.js +12 -0
- package/dist/cjs/src/errors/MissingDB.js +10 -0
- package/dist/cjs/src/errors/MissingDeletedAtFieldForSoftDelete.js +24 -0
- package/dist/cjs/src/errors/MissingRequiredCallbackFunctionToPluckEach.js +22 -0
- package/dist/cjs/src/errors/MissingSerializersDefinition.js +26 -0
- package/dist/cjs/src/errors/MissingTable.js +27 -0
- package/dist/cjs/src/errors/NoUpdateAllOnJoins.js +13 -0
- package/dist/cjs/src/errors/NoUpdateOnAssociationQuery.js +10 -0
- package/dist/cjs/src/errors/NonBelongsToAssociationProvidedAsSortableDecoratorScope.js +23 -0
- package/dist/cjs/src/errors/NonExistentScopeProvidedToResort.js +23 -0
- package/dist/cjs/src/errors/PrototypePollutingAssignment.js +13 -0
- package/dist/cjs/src/errors/RecordNotFound.js +15 -0
- package/dist/cjs/src/errors/SortableDecoratorRequiresColumnOrBelongsToAssociation.js +26 -0
- package/dist/cjs/src/errors/ValidationError.js +19 -0
- package/dist/cjs/src/errors/associations/CanOnlyPassBelongsToModelParam.js +20 -0
- package/dist/cjs/src/errors/associations/CannotAssociateThroughPolymorphic.js +19 -0
- package/dist/cjs/src/errors/associations/CannotCreateAssociationWithThroughContext.js +19 -0
- package/dist/cjs/src/errors/associations/CannotJoinPolymorphicBelongsToError.js +27 -0
- package/dist/cjs/src/errors/associations/CannotPassNullOrUndefinedToRequiredBelongsTo.js +19 -0
- package/dist/cjs/src/errors/associations/InvalidComputedForeignKey.js +64 -0
- package/dist/cjs/src/errors/associations/JoinAttemptedOnMissingAssociation.js +27 -0
- package/dist/cjs/src/errors/associations/MissingRequiredAssociationOnClause.js +19 -0
- package/dist/cjs/src/errors/associations/MissingRequiredPassthroughForAssociationOnClause.js +16 -0
- package/dist/cjs/src/errors/associations/MissingThroughAssociation.js +27 -0
- package/dist/cjs/src/errors/associations/MissingThroughAssociationSource.js +42 -0
- package/dist/cjs/src/errors/associations/NonLoadedAssociation.js +18 -0
- package/dist/cjs/src/errors/dream-application/DreamApplicationInitMissingCallToLoadModels.js +18 -0
- package/dist/cjs/src/errors/dream-application/DreamApplicationInitMissingMissingProjectRoot.js +19 -0
- package/dist/cjs/src/errors/dream-application/GlobalNameNotSet.js +14 -0
- package/dist/cjs/src/errors/dream-application/SerializerNameConflict.js +15 -0
- package/dist/cjs/src/errors/encrypt/MissingColumnEncryptionOpts.js +27 -0
- package/dist/cjs/src/errors/encrypt/MissingEncryptionKey.js +12 -0
- package/dist/cjs/src/errors/environment/MissingRequiredEnvironmentVariable.js +13 -0
- package/dist/cjs/src/errors/ops/AnyRequiresArrayColumn.js +18 -0
- package/dist/cjs/src/errors/ops/ScoreMustBeANormalNumber.js +17 -0
- package/dist/cjs/src/errors/schema-builder/FailedToIdentifyAssociation.js +80 -0
- package/dist/cjs/src/errors/serializers/FailedToRenderThroughAssociationForSerializer.js +17 -0
- package/dist/cjs/src/errors/sortable/CannotCallSortableOnSTIChild.js +18 -0
- package/dist/cjs/src/errors/sti/STIChildMissing.js +23 -0
- package/dist/cjs/src/errors/sti/StiChildCannotDefineNewAssociations.js +20 -0
- package/dist/cjs/src/errors/sti/StiChildIncompatibleWithReplicaSafeDecorator.js +17 -0
- package/dist/cjs/src/errors/sti/StiChildIncompatibleWithSoftDeleteDecorator.js +17 -0
- package/dist/cjs/src/global-cli/dream.js +46 -0
- package/dist/cjs/src/global-cli/file-builders/DreamtsBuilder.js +69 -0
- package/dist/cjs/src/global-cli/file-builders/EnvBuilder.js +27 -0
- package/dist/cjs/src/global-cli/file-builders/EslintConfBuilder.js +29 -0
- package/dist/cjs/src/global-cli/file-builders/PackagejsonBuilder.js +9 -0
- package/dist/cjs/src/global-cli/helpers/argAndValue.js +15 -0
- package/dist/cjs/src/global-cli/helpers/autogeneratedFileMessage.js +71 -0
- package/dist/cjs/src/global-cli/helpers/buildNewDreamApp.js +63 -0
- package/dist/cjs/src/global-cli/helpers/copyRecursive.js +20 -0
- package/dist/cjs/src/global-cli/helpers/filterObjectByKey.js +23 -0
- package/dist/cjs/src/global-cli/helpers/generateEncryptionKey.js +26 -0
- package/dist/cjs/src/global-cli/helpers/globalCliSnakeify.js +1 -0
- package/dist/cjs/src/global-cli/helpers/initDreamAppIntoExistingProject.js +85 -0
- package/dist/cjs/src/global-cli/helpers/log.js +28 -0
- package/dist/cjs/src/global-cli/helpers/logo.js +81 -0
- package/dist/cjs/src/global-cli/helpers/primaryKeyTypes.js +13 -0
- package/dist/cjs/src/global-cli/helpers/prompt.js +33 -0
- package/dist/cjs/src/global-cli/helpers/select.js +113 -0
- package/dist/cjs/src/global-cli/helpers/sleep.js +10 -0
- package/dist/cjs/src/global-cli/helpers/sspawn.js +21 -0
- package/dist/cjs/src/global-cli/helpers/welcomeMessage.js +41 -0
- package/dist/cjs/src/global-cli/init.js +56 -0
- package/dist/cjs/src/global-cli/new.js +10 -0
- package/dist/cjs/src/helpers/CalendarDate.js +172 -0
- package/dist/cjs/src/helpers/Env.js +78 -0
- package/dist/cjs/src/helpers/EnvInternal.js +5 -0
- package/dist/cjs/src/helpers/allNestedObjectKeys.js +12 -0
- package/dist/cjs/src/helpers/benchmark.js +18 -0
- package/dist/cjs/src/helpers/camelize.js +15 -0
- package/dist/cjs/src/helpers/capitalize.js +6 -0
- package/dist/cjs/src/helpers/cli/SchemaBuilder.js +378 -0
- package/dist/cjs/src/helpers/cli/generateDream.js +48 -0
- package/dist/cjs/src/helpers/cli/generateDreamContent.js +107 -0
- package/dist/cjs/src/helpers/cli/generateFactory.js +26 -0
- package/dist/cjs/src/helpers/cli/generateFactoryContent.js +58 -0
- package/dist/cjs/src/helpers/cli/generateMigration.js +56 -0
- package/dist/cjs/src/helpers/cli/generateMigrationContent.js +196 -0
- package/dist/cjs/src/helpers/cli/generateSerializer.js +26 -0
- package/dist/cjs/src/helpers/cli/generateSerializerContent.js +130 -0
- package/dist/cjs/src/helpers/cli/generateStiMigrationContent.js +7 -0
- package/dist/cjs/src/helpers/cli/generateUnitSpec.js +26 -0
- package/dist/cjs/src/helpers/cli/generateUnitSpecContent.js +10 -0
- package/dist/cjs/src/helpers/cloneDeepSafe.js +69 -0
- package/dist/cjs/src/helpers/compact.js +14 -0
- package/dist/cjs/src/helpers/customPgParsers.js +39 -0
- package/dist/cjs/src/helpers/db/cachedTypeForAttribute.js +6 -0
- package/dist/cjs/src/helpers/db/createDb.js +20 -0
- package/dist/cjs/src/helpers/db/dropDb.js +36 -0
- package/dist/cjs/src/helpers/db/foreignKeyTypeFromPrimaryKey.js +11 -0
- package/dist/cjs/src/helpers/db/loadPgClient.js +20 -0
- package/dist/cjs/src/helpers/db/primaryKeyType.js +23 -0
- package/dist/cjs/src/helpers/db/runMigration.js +97 -0
- package/dist/cjs/src/helpers/db/truncateDb.js +27 -0
- package/dist/cjs/src/helpers/db/types/isDatabaseArrayColumn.js +6 -0
- package/dist/cjs/src/helpers/db/types/isDateColumn.js +6 -0
- package/dist/cjs/src/helpers/db/types/isDateTimeColumn.js +6 -0
- package/dist/cjs/src/helpers/db/types/isJsonColumn.js +6 -0
- package/dist/cjs/src/helpers/debug.js +11 -0
- package/dist/cjs/src/helpers/dreamOrPsychicCoreDevelopment.js +10 -0
- package/dist/cjs/src/helpers/filterObjectByKey.js +14 -0
- package/dist/cjs/src/helpers/getFiles.js +20 -0
- package/dist/cjs/src/helpers/globalClassNameFromFullyQualifiedModelName.js +7 -0
- package/dist/cjs/src/helpers/hyphenize.js +11 -0
- package/dist/cjs/src/helpers/inferSerializerFromDreamOrViewModel.js +16 -0
- package/dist/cjs/src/helpers/isEmpty.js +8 -0
- package/dist/cjs/src/helpers/loadEnv.js +37 -0
- package/dist/cjs/src/helpers/loadRepl.js +25 -0
- package/dist/cjs/src/helpers/migrationVersion.js +6 -0
- package/dist/cjs/src/helpers/namespaceColumn.js +8 -0
- package/dist/cjs/src/helpers/objectPathsToArrays.js +19 -0
- package/dist/cjs/src/helpers/pascalize.js +12 -0
- package/dist/cjs/src/helpers/pascalizePath.js +10 -0
- package/dist/cjs/src/helpers/path/dreamFileAndDirPaths.js +16 -0
- package/dist/cjs/src/helpers/path/dreamPath.js +25 -0
- package/dist/cjs/src/helpers/path/relativeDreamPath.js +50 -0
- package/dist/cjs/src/helpers/path/sharedPathPrefix.js +14 -0
- package/dist/cjs/src/helpers/propertyNameFromFullyQualifiedModelName.js +8 -0
- package/dist/cjs/src/helpers/protectAgainstPollutingAssignment.js +14 -0
- package/dist/cjs/src/helpers/range.js +20 -0
- package/dist/cjs/src/helpers/round.js +7 -0
- package/dist/cjs/src/helpers/serializerNameFromFullyQualifiedModelName.js +13 -0
- package/dist/cjs/src/helpers/snakeify.js +14 -0
- package/dist/cjs/src/helpers/sortBy.js +31 -0
- package/dist/cjs/src/helpers/sqlAttributes.js +28 -0
- package/dist/cjs/src/helpers/sspawn.js +21 -0
- package/dist/cjs/src/helpers/standardizeFullyQualifiedModelName.js +10 -0
- package/dist/cjs/src/helpers/stringCasing.js +34 -0
- package/dist/cjs/src/helpers/typechecks.js +16 -0
- package/dist/cjs/src/helpers/typeutils.js +2 -0
- package/dist/cjs/src/helpers/uncapitalize.js +6 -0
- package/dist/cjs/src/helpers/uniq.js +21 -0
- package/dist/cjs/src/index.js +154 -0
- package/dist/cjs/src/openapi/types.js +26 -0
- package/dist/cjs/src/ops/curried-ops-statement.js +12 -0
- package/dist/cjs/src/ops/index.js +42 -0
- package/dist/cjs/src/ops/ops-statement.js +38 -0
- package/dist/cjs/src/serializer/decorators/associations/RendersMany.js +84 -0
- package/dist/cjs/src/serializer/decorators/associations/RendersOne.js +87 -0
- package/dist/cjs/src/serializer/decorators/associations/shared.js +10 -0
- package/dist/cjs/src/serializer/decorators/attribute.js +161 -0
- package/dist/cjs/src/serializer/decorators/helpers/dreamAttributeOpenapiShape.js +78 -0
- package/dist/cjs/src/serializer/decorators/helpers/hasSerializersGetter.js +11 -0
- package/dist/cjs/src/serializer/decorators/helpers/maybeSerializableToDreamSerializerCallbackFunction.js +20 -0
- package/dist/cjs/src/serializer/index.js +271 -0
- package/dist/esm/boilerplate/package.json +42 -0
- package/dist/esm/src/Dream.js +2981 -0
- package/dist/esm/src/bin/helpers/sync.js +106 -0
- package/dist/esm/src/bin/index.js +104 -0
- package/dist/esm/src/cli/index.js +152 -0
- package/dist/esm/src/db/ConnectedToDB.js +40 -0
- package/dist/esm/src/db/ConnectionConfRetriever.js +19 -0
- package/dist/esm/src/db/DreamDbConnection.js +72 -0
- package/dist/esm/src/db/dataTypes.js +53 -0
- package/dist/esm/src/db/errors.js +13 -0
- package/dist/esm/src/db/index.js +9 -0
- package/dist/esm/src/db/migration-helpers/DreamMigrationHelpers.js +190 -0
- package/dist/esm/src/db/reflections.js +1 -0
- package/dist/esm/src/db/types.js +1 -0
- package/dist/esm/src/db/validators/validateColumn.js +8 -0
- package/dist/esm/src/db/validators/validateTable.js +6 -0
- package/dist/esm/src/db/validators/validateTableAlias.js +52 -0
- package/dist/esm/src/decorators/DecoratorContextType.js +1 -0
- package/dist/esm/src/decorators/Decorators.js +323 -0
- package/dist/esm/src/decorators/Encrypted.js +80 -0
- package/dist/esm/src/decorators/ReplicaSafe.js +9 -0
- package/dist/esm/src/decorators/STI.js +31 -0
- package/dist/esm/src/decorators/Scope.js +27 -0
- package/dist/esm/src/decorators/SoftDelete.js +50 -0
- package/dist/esm/src/decorators/Virtual.js +25 -0
- package/dist/esm/src/decorators/associations/BelongsTo.js +74 -0
- package/dist/esm/src/decorators/associations/HasMany.js +97 -0
- package/dist/esm/src/decorators/associations/HasOne.js +93 -0
- package/dist/esm/src/decorators/associations/associationToGetterSetterProp.js +3 -0
- package/dist/esm/src/decorators/associations/shared.js +123 -0
- package/dist/esm/src/decorators/helpers/freezeBaseClassArrayMap.js +7 -0
- package/dist/esm/src/decorators/hooks/AfterCreate.js +22 -0
- package/dist/esm/src/decorators/hooks/AfterCreateCommit.js +39 -0
- package/dist/esm/src/decorators/hooks/AfterDestroy.js +21 -0
- package/dist/esm/src/decorators/hooks/AfterDestroyCommit.js +36 -0
- package/dist/esm/src/decorators/hooks/AfterSave.js +22 -0
- package/dist/esm/src/decorators/hooks/AfterSaveCommit.js +39 -0
- package/dist/esm/src/decorators/hooks/AfterUpdate.js +22 -0
- package/dist/esm/src/decorators/hooks/AfterUpdateCommit.js +39 -0
- package/dist/esm/src/decorators/hooks/BeforeCreate.js +22 -0
- package/dist/esm/src/decorators/hooks/BeforeDestroy.js +21 -0
- package/dist/esm/src/decorators/hooks/BeforeSave.js +22 -0
- package/dist/esm/src/decorators/hooks/BeforeUpdate.js +22 -0
- package/dist/esm/src/decorators/hooks/shared.js +20 -0
- package/dist/esm/src/decorators/sortable/Sortable.js +157 -0
- package/dist/esm/src/decorators/sortable/helpers/applySortableScopeToQuery.js +14 -0
- package/dist/esm/src/decorators/sortable/helpers/clearCachedSortableValues.js +8 -0
- package/dist/esm/src/decorators/sortable/helpers/decrementScopedRecordsGreaterThanPosition.js +23 -0
- package/dist/esm/src/decorators/sortable/helpers/getColumnForSortableScope.js +15 -0
- package/dist/esm/src/decorators/sortable/helpers/isSortedCorrectly.js +4 -0
- package/dist/esm/src/decorators/sortable/helpers/positionIsInvalid.js +8 -0
- package/dist/esm/src/decorators/sortable/helpers/resortAllRecords.js +35 -0
- package/dist/esm/src/decorators/sortable/helpers/scopeArray.js +7 -0
- package/dist/esm/src/decorators/sortable/helpers/setPosition.js +154 -0
- package/dist/esm/src/decorators/sortable/helpers/sortableCacheKeyName.js +4 -0
- package/dist/esm/src/decorators/sortable/helpers/sortableCacheValuesName.js +4 -0
- package/dist/esm/src/decorators/sortable/helpers/sortableQueryExcludingDream.js +7 -0
- package/dist/esm/src/decorators/sortable/hooks/afterSortableCreate.js +15 -0
- package/dist/esm/src/decorators/sortable/hooks/afterSortableDestroy.js +11 -0
- package/dist/esm/src/decorators/sortable/hooks/afterSortableUpdate.js +28 -0
- package/dist/esm/src/decorators/sortable/hooks/beforeSortableSave.js +62 -0
- package/dist/esm/src/decorators/validations/Validate.js +19 -0
- package/dist/esm/src/decorators/validations/Validates.js +64 -0
- package/dist/esm/src/decorators/validations/shared.js +1 -0
- package/dist/esm/src/dream/DreamClassTransactionBuilder.js +589 -0
- package/dist/esm/src/dream/DreamInstanceTransactionBuilder.js +477 -0
- package/dist/esm/src/dream/DreamTransaction.js +23 -0
- package/dist/esm/src/dream/LeftJoinLoadBuilder.js +74 -0
- package/dist/esm/src/dream/LoadBuilder.js +65 -0
- package/dist/esm/src/dream/Query.js +2615 -0
- package/dist/esm/src/dream/internal/applyScopeBypassingSettingsToQuery.js +8 -0
- package/dist/esm/src/dream/internal/associations/associationQuery.js +20 -0
- package/dist/esm/src/dream/internal/associations/associationUpdateQuery.js +33 -0
- package/dist/esm/src/dream/internal/associations/createAssociation.js +52 -0
- package/dist/esm/src/dream/internal/associations/destroyAssociation.js +14 -0
- package/dist/esm/src/dream/internal/associations/undestroyAssociation.js +9 -0
- package/dist/esm/src/dream/internal/checkSingleValidation.js +49 -0
- package/dist/esm/src/dream/internal/destroyAssociatedRecords.js +18 -0
- package/dist/esm/src/dream/internal/destroyDream.js +69 -0
- package/dist/esm/src/dream/internal/destroyOptions.js +27 -0
- package/dist/esm/src/dream/internal/ensureSTITypeFieldIsSet.js +7 -0
- package/dist/esm/src/dream/internal/executeDatabaseQuery.js +21 -0
- package/dist/esm/src/dream/internal/extractAssociationMetadataFromAssociationName.js +5 -0
- package/dist/esm/src/dream/internal/orderByDirection.js +12 -0
- package/dist/esm/src/dream/internal/reload.js +18 -0
- package/dist/esm/src/dream/internal/runHooksFor.js +95 -0
- package/dist/esm/src/dream/internal/runValidations.js +13 -0
- package/dist/esm/src/dream/internal/safelyRunCommitHooks.js +12 -0
- package/dist/esm/src/dream/internal/saveDream.js +64 -0
- package/dist/esm/src/dream/internal/scopeHelpers.js +9 -0
- package/dist/esm/src/dream/internal/shouldBypassDefaultScope.js +9 -0
- package/dist/esm/src/dream/internal/similarity/SimilarityBuilder.js +327 -0
- package/dist/esm/src/dream/internal/similarity/similaritySelectSql.js +18 -0
- package/dist/esm/src/dream/internal/similarity/similarityWhereSql.js +18 -0
- package/dist/esm/src/dream/internal/softDeleteDream.js +19 -0
- package/dist/esm/src/dream/internal/sqlResultToDreamInstance.js +34 -0
- package/dist/esm/src/dream/internal/undestroyDream.js +87 -0
- package/dist/esm/src/dream/types.js +95 -0
- package/dist/esm/src/dream-application/cache.js +9 -0
- package/dist/esm/src/dream-application/helpers/DreamImporter.js +49 -0
- package/dist/esm/src/dream-application/helpers/globalModelKeyFromPath.js +7 -0
- package/dist/esm/src/dream-application/helpers/globalSerializerKeyFromPath.js +14 -0
- package/dist/esm/src/dream-application/helpers/globalServiceKeyFromPath.js +8 -0
- package/dist/esm/src/dream-application/helpers/importers/importModels.js +75 -0
- package/dist/esm/src/dream-application/helpers/importers/importSerializers.js +57 -0
- package/dist/esm/src/dream-application/helpers/importers/importServices.js +37 -0
- package/dist/esm/src/dream-application/helpers/lookupClassByGlobalName.js +14 -0
- package/dist/esm/src/dream-application/helpers/lookupModelByGlobalName.js +10 -0
- package/dist/esm/src/dream-application/helpers/lookupModelByGlobalNameOrNames.js +7 -0
- package/dist/esm/src/dream-application/index.js +281 -0
- package/dist/esm/src/encrypt/InternalEncrypt.js +29 -0
- package/dist/esm/src/encrypt/algorithms/aes-gcm/decryptAESGCM.js +23 -0
- package/dist/esm/src/encrypt/algorithms/aes-gcm/encryptAESGCM.js +9 -0
- package/dist/esm/src/encrypt/algorithms/aes-gcm/generateKeyAESGCM.js +4 -0
- package/dist/esm/src/encrypt/algorithms/aes-gcm/validateKeyAESGCM.js +8 -0
- package/dist/esm/src/encrypt/index.js +92 -0
- package/dist/esm/src/errors/AttemptingToMarshalInvalidArrayType.js +17 -0
- package/dist/esm/src/errors/CannotCallUndestroyOnANonSoftDeleteModel.js +18 -0
- package/dist/esm/src/errors/CannotDefineAssociationWithBothDependentAndPassthrough.js +16 -0
- package/dist/esm/src/errors/CannotDefineAssociationWithBothDependentAndRequiredOnClause.js +16 -0
- package/dist/esm/src/errors/CannotNegateSimilarityClause.js +19 -0
- package/dist/esm/src/errors/CannotPassAdditionalFieldsToPluckEachAfterCallback.js +19 -0
- package/dist/esm/src/errors/CannotPassUndefinedAsAValueToAWhereClause.js +17 -0
- package/dist/esm/src/errors/CannotReloadUnsavedDream.js +13 -0
- package/dist/esm/src/errors/ConstructorOnlyForInternalUse.js +6 -0
- package/dist/esm/src/errors/CreateOrFindByFailedToCreateAndFind.js +15 -0
- package/dist/esm/src/errors/DoNotSetEncryptedFieldsDirectly.js +20 -0
- package/dist/esm/src/errors/InvalidColumnName.js +16 -0
- package/dist/esm/src/errors/InvalidDecimalFieldPassedToGenerator.js +16 -0
- package/dist/esm/src/errors/InvalidTableAlias.js +27 -0
- package/dist/esm/src/errors/InvalidTableName.js +20 -0
- package/dist/esm/src/errors/LeftJoinPreloadIncompatibleWithFindEach.js +9 -0
- package/dist/esm/src/errors/MissingDB.js +7 -0
- package/dist/esm/src/errors/MissingDeletedAtFieldForSoftDelete.js +21 -0
- package/dist/esm/src/errors/MissingRequiredCallbackFunctionToPluckEach.js +19 -0
- package/dist/esm/src/errors/MissingSerializersDefinition.js +23 -0
- package/dist/esm/src/errors/MissingTable.js +24 -0
- package/dist/esm/src/errors/NoUpdateAllOnJoins.js +10 -0
- package/dist/esm/src/errors/NoUpdateOnAssociationQuery.js +7 -0
- package/dist/esm/src/errors/NonBelongsToAssociationProvidedAsSortableDecoratorScope.js +20 -0
- package/dist/esm/src/errors/NonExistentScopeProvidedToResort.js +20 -0
- package/dist/esm/src/errors/PrototypePollutingAssignment.js +10 -0
- package/dist/esm/src/errors/RecordNotFound.js +12 -0
- package/dist/esm/src/errors/SortableDecoratorRequiresColumnOrBelongsToAssociation.js +23 -0
- package/dist/esm/src/errors/ValidationError.js +16 -0
- package/dist/esm/src/errors/associations/CanOnlyPassBelongsToModelParam.js +17 -0
- package/dist/esm/src/errors/associations/CannotAssociateThroughPolymorphic.js +16 -0
- package/dist/esm/src/errors/associations/CannotCreateAssociationWithThroughContext.js +16 -0
- package/dist/esm/src/errors/associations/CannotJoinPolymorphicBelongsToError.js +24 -0
- package/dist/esm/src/errors/associations/CannotPassNullOrUndefinedToRequiredBelongsTo.js +16 -0
- package/dist/esm/src/errors/associations/InvalidComputedForeignKey.js +58 -0
- package/dist/esm/src/errors/associations/JoinAttemptedOnMissingAssociation.js +24 -0
- package/dist/esm/src/errors/associations/MissingRequiredAssociationOnClause.js +16 -0
- package/dist/esm/src/errors/associations/MissingRequiredPassthroughForAssociationOnClause.js +13 -0
- package/dist/esm/src/errors/associations/MissingThroughAssociation.js +24 -0
- package/dist/esm/src/errors/associations/MissingThroughAssociationSource.js +39 -0
- package/dist/esm/src/errors/associations/NonLoadedAssociation.js +15 -0
- package/dist/esm/src/errors/dream-application/DreamApplicationInitMissingCallToLoadModels.js +15 -0
- package/dist/esm/src/errors/dream-application/DreamApplicationInitMissingMissingProjectRoot.js +16 -0
- package/dist/esm/src/errors/dream-application/GlobalNameNotSet.js +11 -0
- package/dist/esm/src/errors/dream-application/SerializerNameConflict.js +12 -0
- package/dist/esm/src/errors/encrypt/MissingColumnEncryptionOpts.js +24 -0
- package/dist/esm/src/errors/encrypt/MissingEncryptionKey.js +9 -0
- package/dist/esm/src/errors/environment/MissingRequiredEnvironmentVariable.js +10 -0
- package/dist/esm/src/errors/ops/AnyRequiresArrayColumn.js +15 -0
- package/dist/esm/src/errors/ops/ScoreMustBeANormalNumber.js +14 -0
- package/dist/esm/src/errors/schema-builder/FailedToIdentifyAssociation.js +77 -0
- package/dist/esm/src/errors/serializers/FailedToRenderThroughAssociationForSerializer.js +14 -0
- package/dist/esm/src/errors/sortable/CannotCallSortableOnSTIChild.js +15 -0
- package/dist/esm/src/errors/sti/STIChildMissing.js +20 -0
- package/dist/esm/src/errors/sti/StiChildCannotDefineNewAssociations.js +17 -0
- package/dist/esm/src/errors/sti/StiChildIncompatibleWithReplicaSafeDecorator.js +14 -0
- package/dist/esm/src/errors/sti/StiChildIncompatibleWithSoftDeleteDecorator.js +14 -0
- package/dist/esm/src/global-cli/dream.js +44 -0
- package/dist/esm/src/global-cli/file-builders/DreamtsBuilder.js +66 -0
- package/dist/esm/src/global-cli/file-builders/EnvBuilder.js +24 -0
- package/dist/esm/src/global-cli/file-builders/EslintConfBuilder.js +26 -0
- package/dist/esm/src/global-cli/file-builders/PackagejsonBuilder.js +6 -0
- package/dist/esm/src/global-cli/helpers/argAndValue.js +12 -0
- package/dist/esm/src/global-cli/helpers/autogeneratedFileMessage.js +68 -0
- package/dist/esm/src/global-cli/helpers/buildNewDreamApp.js +60 -0
- package/dist/esm/src/global-cli/helpers/copyRecursive.js +17 -0
- package/dist/esm/src/global-cli/helpers/filterObjectByKey.js +20 -0
- package/dist/esm/src/global-cli/helpers/generateEncryptionKey.js +23 -0
- package/dist/esm/src/global-cli/helpers/globalCliSnakeify.js +1 -0
- package/dist/esm/src/global-cli/helpers/initDreamAppIntoExistingProject.js +82 -0
- package/dist/esm/src/global-cli/helpers/log.js +24 -0
- package/dist/esm/src/global-cli/helpers/logo.js +77 -0
- package/dist/esm/src/global-cli/helpers/primaryKeyTypes.js +10 -0
- package/dist/esm/src/global-cli/helpers/prompt.js +30 -0
- package/dist/esm/src/global-cli/helpers/select.js +110 -0
- package/dist/esm/src/global-cli/helpers/sleep.js +7 -0
- package/dist/esm/src/global-cli/helpers/sspawn.js +17 -0
- package/dist/esm/src/global-cli/helpers/welcomeMessage.js +38 -0
- package/dist/esm/src/global-cli/init.js +53 -0
- package/dist/esm/src/global-cli/new.js +7 -0
- package/dist/esm/src/helpers/CalendarDate.js +169 -0
- package/dist/esm/src/helpers/Env.js +75 -0
- package/dist/esm/src/helpers/EnvInternal.js +3 -0
- package/dist/esm/src/helpers/allNestedObjectKeys.js +9 -0
- package/dist/esm/src/helpers/benchmark.js +15 -0
- package/dist/esm/src/helpers/camelize.js +11 -0
- package/dist/esm/src/helpers/capitalize.js +3 -0
- package/dist/esm/src/helpers/cli/SchemaBuilder.js +375 -0
- package/dist/esm/src/helpers/cli/generateDream.js +45 -0
- package/dist/esm/src/helpers/cli/generateDreamContent.js +104 -0
- package/dist/esm/src/helpers/cli/generateFactory.js +23 -0
- package/dist/esm/src/helpers/cli/generateFactoryContent.js +55 -0
- package/dist/esm/src/helpers/cli/generateMigration.js +53 -0
- package/dist/esm/src/helpers/cli/generateMigrationContent.js +193 -0
- package/dist/esm/src/helpers/cli/generateSerializer.js +23 -0
- package/dist/esm/src/helpers/cli/generateSerializerContent.js +127 -0
- package/dist/esm/src/helpers/cli/generateStiMigrationContent.js +4 -0
- package/dist/esm/src/helpers/cli/generateUnitSpec.js +23 -0
- package/dist/esm/src/helpers/cli/generateUnitSpecContent.js +7 -0
- package/dist/esm/src/helpers/cloneDeepSafe.js +64 -0
- package/dist/esm/src/helpers/compact.js +11 -0
- package/dist/esm/src/helpers/customPgParsers.js +31 -0
- package/dist/esm/src/helpers/db/cachedTypeForAttribute.js +3 -0
- package/dist/esm/src/helpers/db/createDb.js +17 -0
- package/dist/esm/src/helpers/db/dropDb.js +33 -0
- package/dist/esm/src/helpers/db/foreignKeyTypeFromPrimaryKey.js +8 -0
- package/dist/esm/src/helpers/db/loadPgClient.js +17 -0
- package/dist/esm/src/helpers/db/primaryKeyType.js +20 -0
- package/dist/esm/src/helpers/db/runMigration.js +94 -0
- package/dist/esm/src/helpers/db/truncateDb.js +24 -0
- package/dist/esm/src/helpers/db/types/isDatabaseArrayColumn.js +3 -0
- package/dist/esm/src/helpers/db/types/isDateColumn.js +3 -0
- package/dist/esm/src/helpers/db/types/isDateTimeColumn.js +3 -0
- package/dist/esm/src/helpers/db/types/isJsonColumn.js +3 -0
- package/dist/esm/src/helpers/debug.js +8 -0
- package/dist/esm/src/helpers/dreamOrPsychicCoreDevelopment.js +7 -0
- package/dist/esm/src/helpers/filterObjectByKey.js +11 -0
- package/dist/esm/src/helpers/getFiles.js +17 -0
- package/dist/esm/src/helpers/globalClassNameFromFullyQualifiedModelName.js +4 -0
- package/dist/esm/src/helpers/hyphenize.js +8 -0
- package/dist/esm/src/helpers/inferSerializerFromDreamOrViewModel.js +12 -0
- package/dist/esm/src/helpers/isEmpty.js +5 -0
- package/dist/esm/src/helpers/loadEnv.js +35 -0
- package/dist/esm/src/helpers/loadRepl.js +22 -0
- package/dist/esm/src/helpers/migrationVersion.js +3 -0
- package/dist/esm/src/helpers/namespaceColumn.js +5 -0
- package/dist/esm/src/helpers/objectPathsToArrays.js +16 -0
- package/dist/esm/src/helpers/pascalize.js +9 -0
- package/dist/esm/src/helpers/pascalizePath.js +7 -0
- package/dist/esm/src/helpers/path/dreamFileAndDirPaths.js +13 -0
- package/dist/esm/src/helpers/path/dreamPath.js +22 -0
- package/dist/esm/src/helpers/path/relativeDreamPath.js +46 -0
- package/dist/esm/src/helpers/path/sharedPathPrefix.js +11 -0
- package/dist/esm/src/helpers/propertyNameFromFullyQualifiedModelName.js +5 -0
- package/dist/esm/src/helpers/protectAgainstPollutingAssignment.js +11 -0
- package/dist/esm/src/helpers/range.js +15 -0
- package/dist/esm/src/helpers/round.js +4 -0
- package/dist/esm/src/helpers/serializerNameFromFullyQualifiedModelName.js +10 -0
- package/dist/esm/src/helpers/snakeify.js +10 -0
- package/dist/esm/src/helpers/sortBy.js +26 -0
- package/dist/esm/src/helpers/sqlAttributes.js +25 -0
- package/dist/esm/src/helpers/sspawn.js +17 -0
- package/dist/esm/src/helpers/standardizeFullyQualifiedModelName.js +7 -0
- package/dist/esm/src/helpers/stringCasing.js +31 -0
- package/dist/esm/src/helpers/typechecks.js +12 -0
- package/dist/esm/src/helpers/typeutils.js +1 -0
- package/dist/esm/src/helpers/uncapitalize.js +3 -0
- package/dist/esm/src/helpers/uniq.js +18 -0
- package/dist/esm/src/index.js +73 -0
- package/dist/esm/src/openapi/types.js +23 -0
- package/dist/esm/src/ops/curried-ops-statement.js +9 -0
- package/dist/esm/src/ops/index.js +40 -0
- package/dist/esm/src/ops/ops-statement.js +35 -0
- package/dist/esm/src/serializer/decorators/associations/RendersMany.js +81 -0
- package/dist/esm/src/serializer/decorators/associations/RendersOne.js +84 -0
- package/dist/esm/src/serializer/decorators/associations/shared.js +7 -0
- package/dist/esm/src/serializer/decorators/attribute.js +158 -0
- package/dist/esm/src/serializer/decorators/helpers/dreamAttributeOpenapiShape.js +73 -0
- package/dist/esm/src/serializer/decorators/helpers/hasSerializersGetter.js +8 -0
- package/dist/esm/src/serializer/decorators/helpers/maybeSerializableToDreamSerializerCallbackFunction.js +17 -0
- package/dist/esm/src/serializer/index.js +268 -0
- package/dist/types/src/Dream.d.ts +2211 -0
- package/dist/types/src/bin/helpers/sync.d.ts +2 -0
- package/dist/types/src/bin/index.d.ts +20 -0
- package/dist/types/src/cli/index.d.ts +20 -0
- package/dist/types/src/db/ConnectedToDB.d.ts +26 -0
- package/dist/types/src/db/ConnectionConfRetriever.d.ts +6 -0
- package/dist/types/src/db/DreamDbConnection.d.ts +10 -0
- package/dist/types/src/db/dataTypes.d.ts +6 -0
- package/dist/types/src/db/errors.d.ts +6 -0
- package/dist/types/src/db/index.d.ts +5 -0
- package/dist/types/src/db/migration-helpers/DreamMigrationHelpers.d.ts +116 -0
- package/dist/types/src/db/reflections.d.ts +5 -0
- package/dist/types/src/db/types.d.ts +1 -0
- package/dist/types/src/db/validators/validateColumn.d.ts +1 -0
- package/dist/types/src/db/validators/validateTable.d.ts +1 -0
- package/dist/types/src/db/validators/validateTableAlias.d.ts +1 -0
- package/dist/types/src/decorators/DecoratorContextType.d.ts +13 -0
- package/dist/types/src/decorators/Decorators.d.ts +214 -0
- package/dist/types/src/decorators/Encrypted.d.ts +5 -0
- package/dist/types/src/decorators/ReplicaSafe.d.ts +1 -0
- package/dist/types/src/decorators/STI.d.ts +5 -0
- package/dist/types/src/decorators/Scope.d.ts +11 -0
- package/dist/types/src/decorators/SoftDelete.d.ts +37 -0
- package/dist/types/src/decorators/Virtual.d.ts +6 -0
- package/dist/types/src/decorators/associations/BelongsTo.d.ts +33 -0
- package/dist/types/src/decorators/associations/HasMany.d.ts +19 -0
- package/dist/types/src/decorators/associations/HasOne.d.ts +11 -0
- package/dist/types/src/decorators/associations/associationToGetterSetterProp.d.ts +5 -0
- package/dist/types/src/decorators/associations/shared.d.ts +118 -0
- package/dist/types/src/decorators/helpers/freezeBaseClassArrayMap.d.ts +1 -0
- package/dist/types/src/decorators/hooks/AfterCreate.d.ts +4 -0
- package/dist/types/src/decorators/hooks/AfterCreateCommit.d.ts +21 -0
- package/dist/types/src/decorators/hooks/AfterDestroy.d.ts +3 -0
- package/dist/types/src/decorators/hooks/AfterDestroyCommit.d.ts +18 -0
- package/dist/types/src/decorators/hooks/AfterSave.d.ts +4 -0
- package/dist/types/src/decorators/hooks/AfterSaveCommit.d.ts +21 -0
- package/dist/types/src/decorators/hooks/AfterUpdate.d.ts +4 -0
- package/dist/types/src/decorators/hooks/AfterUpdateCommit.d.ts +21 -0
- package/dist/types/src/decorators/hooks/BeforeCreate.d.ts +4 -0
- package/dist/types/src/decorators/hooks/BeforeDestroy.d.ts +3 -0
- package/dist/types/src/decorators/hooks/BeforeSave.d.ts +4 -0
- package/dist/types/src/decorators/hooks/BeforeUpdate.d.ts +4 -0
- package/dist/types/src/decorators/hooks/shared.d.ts +34 -0
- package/dist/types/src/decorators/sortable/Sortable.d.ts +9 -0
- package/dist/types/src/decorators/sortable/helpers/applySortableScopeToQuery.d.ts +9 -0
- package/dist/types/src/decorators/sortable/helpers/clearCachedSortableValues.d.ts +2 -0
- package/dist/types/src/decorators/sortable/helpers/decrementScopedRecordsGreaterThanPosition.d.ts +8 -0
- package/dist/types/src/decorators/sortable/helpers/getColumnForSortableScope.d.ts +2 -0
- package/dist/types/src/decorators/sortable/helpers/isSortedCorrectly.d.ts +1 -0
- package/dist/types/src/decorators/sortable/helpers/positionIsInvalid.d.ts +8 -0
- package/dist/types/src/decorators/sortable/helpers/resortAllRecords.d.ts +2 -0
- package/dist/types/src/decorators/sortable/helpers/scopeArray.d.ts +1 -0
- package/dist/types/src/decorators/sortable/helpers/setPosition.d.ts +14 -0
- package/dist/types/src/decorators/sortable/helpers/sortableCacheKeyName.d.ts +1 -0
- package/dist/types/src/decorators/sortable/helpers/sortableCacheValuesName.d.ts +1 -0
- package/dist/types/src/decorators/sortable/helpers/sortableQueryExcludingDream.d.ts +9 -0
- package/dist/types/src/decorators/sortable/hooks/afterSortableCreate.d.ts +10 -0
- package/dist/types/src/decorators/sortable/hooks/afterSortableDestroy.d.ts +8 -0
- package/dist/types/src/decorators/sortable/hooks/afterSortableUpdate.d.ts +10 -0
- package/dist/types/src/decorators/sortable/hooks/beforeSortableSave.d.ts +8 -0
- package/dist/types/src/decorators/validations/Validate.d.ts +1 -0
- package/dist/types/src/decorators/validations/Validates.d.ts +18 -0
- package/dist/types/src/decorators/validations/shared.d.ts +19 -0
- package/dist/types/src/dream/DreamClassTransactionBuilder.d.ts +549 -0
- package/dist/types/src/dream/DreamInstanceTransactionBuilder.d.ts +316 -0
- package/dist/types/src/dream/DreamTransaction.d.ts +15 -0
- package/dist/types/src/dream/LeftJoinLoadBuilder.d.ts +48 -0
- package/dist/types/src/dream/LoadBuilder.d.ts +47 -0
- package/dist/types/src/dream/Query.d.ts +1132 -0
- package/dist/types/src/dream/internal/applyScopeBypassingSettingsToQuery.d.ts +13 -0
- package/dist/types/src/dream/internal/associations/associationQuery.d.ts +9 -0
- package/dist/types/src/dream/internal/associations/associationUpdateQuery.d.ts +9 -0
- package/dist/types/src/dream/internal/associations/createAssociation.d.ts +4 -0
- package/dist/types/src/dream/internal/associations/destroyAssociation.d.ts +11 -0
- package/dist/types/src/dream/internal/associations/undestroyAssociation.d.ts +10 -0
- package/dist/types/src/dream/internal/checkSingleValidation.d.ts +3 -0
- package/dist/types/src/dream/internal/destroyAssociatedRecords.d.ts +10 -0
- package/dist/types/src/dream/internal/destroyDream.d.ts +19 -0
- package/dist/types/src/dream/internal/destroyOptions.d.ts +46 -0
- package/dist/types/src/dream/internal/ensureSTITypeFieldIsSet.d.ts +2 -0
- package/dist/types/src/dream/internal/executeDatabaseQuery.d.ts +1 -0
- package/dist/types/src/dream/internal/extractAssociationMetadataFromAssociationName.d.ts +4 -0
- package/dist/types/src/dream/internal/orderByDirection.d.ts +2 -0
- package/dist/types/src/dream/internal/reload.d.ts +3 -0
- package/dist/types/src/dream/internal/runHooksFor.d.ts +8 -0
- package/dist/types/src/dream/internal/runValidations.d.ts +2 -0
- package/dist/types/src/dream/internal/safelyRunCommitHooks.d.ts +7 -0
- package/dist/types/src/dream/internal/saveDream.d.ts +5 -0
- package/dist/types/src/dream/internal/scopeHelpers.d.ts +7 -0
- package/dist/types/src/dream/internal/shouldBypassDefaultScope.d.ts +4 -0
- package/dist/types/src/dream/internal/similarity/SimilarityBuilder.d.ts +38 -0
- package/dist/types/src/dream/internal/similarity/similaritySelectSql.d.ts +11 -0
- package/dist/types/src/dream/internal/similarity/similarityWhereSql.d.ts +10 -0
- package/dist/types/src/dream/internal/softDeleteDream.d.ts +3 -0
- package/dist/types/src/dream/internal/sqlResultToDreamInstance.d.ts +4 -0
- package/dist/types/src/dream/internal/undestroyDream.d.ts +16 -0
- package/dist/types/src/dream/types.d.ts +184 -0
- package/dist/types/src/dream-application/cache.d.ts +3 -0
- package/dist/types/src/dream-application/helpers/DreamImporter.d.ts +8 -0
- package/dist/types/src/dream-application/helpers/globalModelKeyFromPath.d.ts +1 -0
- package/dist/types/src/dream-application/helpers/globalSerializerKeyFromPath.d.ts +1 -0
- package/dist/types/src/dream-application/helpers/globalServiceKeyFromPath.d.ts +1 -0
- package/dist/types/src/dream-application/helpers/importers/importModels.d.ts +5 -0
- package/dist/types/src/dream-application/helpers/importers/importSerializers.d.ts +5 -0
- package/dist/types/src/dream-application/helpers/importers/importServices.d.ts +4 -0
- package/dist/types/src/dream-application/helpers/lookupClassByGlobalName.d.ts +1 -0
- package/dist/types/src/dream-application/helpers/lookupModelByGlobalName.d.ts +1 -0
- package/dist/types/src/dream-application/helpers/lookupModelByGlobalNameOrNames.d.ts +1 -0
- package/dist/types/src/dream-application/index.d.ts +143 -0
- package/dist/types/src/encrypt/InternalEncrypt.d.ts +6 -0
- package/dist/types/src/encrypt/algorithms/aes-gcm/decryptAESGCM.d.ts +2 -0
- package/dist/types/src/encrypt/algorithms/aes-gcm/encryptAESGCM.d.ts +2 -0
- package/dist/types/src/encrypt/algorithms/aes-gcm/generateKeyAESGCM.d.ts +2 -0
- package/dist/types/src/encrypt/algorithms/aes-gcm/validateKeyAESGCM.d.ts +2 -0
- package/dist/types/src/encrypt/index.d.ts +26 -0
- package/dist/types/src/errors/AttemptingToMarshalInvalidArrayType.d.ts +5 -0
- package/dist/types/src/errors/CannotCallUndestroyOnANonSoftDeleteModel.d.ts +6 -0
- package/dist/types/src/errors/CannotDefineAssociationWithBothDependentAndPassthrough.d.ts +7 -0
- package/dist/types/src/errors/CannotDefineAssociationWithBothDependentAndRequiredOnClause.d.ts +7 -0
- package/dist/types/src/errors/CannotNegateSimilarityClause.d.ts +7 -0
- package/dist/types/src/errors/CannotPassAdditionalFieldsToPluckEachAfterCallback.d.ts +6 -0
- package/dist/types/src/errors/CannotPassUndefinedAsAValueToAWhereClause.d.ts +7 -0
- package/dist/types/src/errors/CannotReloadUnsavedDream.d.ts +6 -0
- package/dist/types/src/errors/ConstructorOnlyForInternalUse.d.ts +3 -0
- package/dist/types/src/errors/CreateOrFindByFailedToCreateAndFind.d.ts +6 -0
- package/dist/types/src/errors/DoNotSetEncryptedFieldsDirectly.d.ts +8 -0
- package/dist/types/src/errors/InvalidColumnName.d.ts +6 -0
- package/dist/types/src/errors/InvalidDecimalFieldPassedToGenerator.d.ts +5 -0
- package/dist/types/src/errors/InvalidTableAlias.d.ts +5 -0
- package/dist/types/src/errors/InvalidTableName.d.ts +6 -0
- package/dist/types/src/errors/LeftJoinPreloadIncompatibleWithFindEach.d.ts +3 -0
- package/dist/types/src/errors/MissingDB.d.ts +3 -0
- package/dist/types/src/errors/MissingDeletedAtFieldForSoftDelete.d.ts +6 -0
- package/dist/types/src/errors/MissingRequiredCallbackFunctionToPluckEach.d.ts +6 -0
- package/dist/types/src/errors/MissingSerializersDefinition.d.ts +6 -0
- package/dist/types/src/errors/MissingTable.d.ts +6 -0
- package/dist/types/src/errors/NoUpdateAllOnJoins.d.ts +3 -0
- package/dist/types/src/errors/NoUpdateOnAssociationQuery.d.ts +3 -0
- package/dist/types/src/errors/NonBelongsToAssociationProvidedAsSortableDecoratorScope.d.ts +7 -0
- package/dist/types/src/errors/NonExistentScopeProvidedToResort.d.ts +7 -0
- package/dist/types/src/errors/PrototypePollutingAssignment.d.ts +5 -0
- package/dist/types/src/errors/RecordNotFound.d.ts +5 -0
- package/dist/types/src/errors/SortableDecoratorRequiresColumnOrBelongsToAssociation.d.ts +7 -0
- package/dist/types/src/errors/ValidationError.d.ts +11 -0
- package/dist/types/src/errors/associations/CanOnlyPassBelongsToModelParam.d.ts +9 -0
- package/dist/types/src/errors/associations/CannotAssociateThroughPolymorphic.d.ts +12 -0
- package/dist/types/src/errors/associations/CannotCreateAssociationWithThroughContext.d.ts +12 -0
- package/dist/types/src/errors/associations/CannotJoinPolymorphicBelongsToError.d.ts +15 -0
- package/dist/types/src/errors/associations/CannotPassNullOrUndefinedToRequiredBelongsTo.d.ts +8 -0
- package/dist/types/src/errors/associations/InvalidComputedForeignKey.d.ts +19 -0
- package/dist/types/src/errors/associations/JoinAttemptedOnMissingAssociation.d.ts +10 -0
- package/dist/types/src/errors/associations/MissingRequiredAssociationOnClause.d.ts +8 -0
- package/dist/types/src/errors/associations/MissingRequiredPassthroughForAssociationOnClause.d.ts +5 -0
- package/dist/types/src/errors/associations/MissingThroughAssociation.d.ts +12 -0
- package/dist/types/src/errors/associations/MissingThroughAssociationSource.d.ts +14 -0
- package/dist/types/src/errors/associations/NonLoadedAssociation.d.ts +10 -0
- package/dist/types/src/errors/dream-application/DreamApplicationInitMissingCallToLoadModels.d.ts +3 -0
- package/dist/types/src/errors/dream-application/DreamApplicationInitMissingMissingProjectRoot.d.ts +3 -0
- package/dist/types/src/errors/dream-application/GlobalNameNotSet.d.ts +5 -0
- package/dist/types/src/errors/dream-application/SerializerNameConflict.d.ts +5 -0
- package/dist/types/src/errors/encrypt/MissingColumnEncryptionOpts.d.ts +3 -0
- package/dist/types/src/errors/encrypt/MissingEncryptionKey.d.ts +3 -0
- package/dist/types/src/errors/environment/MissingRequiredEnvironmentVariable.d.ts +5 -0
- package/dist/types/src/errors/ops/AnyRequiresArrayColumn.d.ts +7 -0
- package/dist/types/src/errors/ops/ScoreMustBeANormalNumber.d.ts +5 -0
- package/dist/types/src/errors/schema-builder/FailedToIdentifyAssociation.d.ts +9 -0
- package/dist/types/src/errors/serializers/FailedToRenderThroughAssociationForSerializer.d.ts +6 -0
- package/dist/types/src/errors/sortable/CannotCallSortableOnSTIChild.d.ts +6 -0
- package/dist/types/src/errors/sti/STIChildMissing.d.ts +8 -0
- package/dist/types/src/errors/sti/StiChildCannotDefineNewAssociations.d.ts +7 -0
- package/dist/types/src/errors/sti/StiChildIncompatibleWithReplicaSafeDecorator.d.ts +6 -0
- package/dist/types/src/errors/sti/StiChildIncompatibleWithSoftDeleteDecorator.d.ts +6 -0
- package/dist/types/src/global-cli/dream.d.ts +2 -0
- package/dist/types/src/global-cli/file-builders/DreamtsBuilder.d.ts +4 -0
- package/dist/types/src/global-cli/file-builders/EnvBuilder.d.ts +6 -0
- package/dist/types/src/global-cli/file-builders/EslintConfBuilder.d.ts +3 -0
- package/dist/types/src/global-cli/file-builders/PackagejsonBuilder.d.ts +3 -0
- package/dist/types/src/global-cli/helpers/argAndValue.d.ts +1 -0
- package/dist/types/src/global-cli/helpers/autogeneratedFileMessage.d.ts +1 -0
- package/dist/types/src/global-cli/helpers/buildNewDreamApp.d.ts +2 -0
- package/dist/types/src/global-cli/helpers/copyRecursive.d.ts +1 -0
- package/dist/types/src/global-cli/helpers/filterObjectByKey.d.ts +1 -0
- package/dist/types/src/global-cli/helpers/generateEncryptionKey.d.ts +1 -0
- package/dist/types/src/global-cli/helpers/globalCliSnakeify.d.ts +0 -0
- package/dist/types/src/global-cli/helpers/initDreamAppIntoExistingProject.d.ts +2 -0
- package/dist/types/src/global-cli/helpers/log.d.ts +10 -0
- package/dist/types/src/global-cli/helpers/logo.d.ts +2 -0
- package/dist/types/src/global-cli/helpers/primaryKeyTypes.d.ts +22 -0
- package/dist/types/src/global-cli/helpers/prompt.d.ts +8 -0
- package/dist/types/src/global-cli/helpers/select.d.ts +17 -0
- package/dist/types/src/global-cli/helpers/sleep.d.ts +1 -0
- package/dist/types/src/global-cli/helpers/sspawn.d.ts +2 -0
- package/dist/types/src/global-cli/helpers/welcomeMessage.d.ts +1 -0
- package/dist/types/src/global-cli/init.d.ts +2 -0
- package/dist/types/src/global-cli/new.d.ts +2 -0
- package/dist/types/src/helpers/CalendarDate.d.ts +51 -0
- package/dist/types/src/helpers/Env.d.ts +37 -0
- package/dist/types/src/helpers/EnvInternal.d.ts +6 -0
- package/dist/types/src/helpers/allNestedObjectKeys.d.ts +1 -0
- package/dist/types/src/helpers/benchmark.d.ts +6 -0
- package/dist/types/src/helpers/camelize.d.ts +3 -0
- package/dist/types/src/helpers/capitalize.d.ts +1 -0
- package/dist/types/src/helpers/cli/SchemaBuilder.d.ts +17 -0
- package/dist/types/src/helpers/cli/generateDream.d.ts +8 -0
- package/dist/types/src/helpers/cli/generateDreamContent.d.ts +6 -0
- package/dist/types/src/helpers/cli/generateFactory.d.ts +4 -0
- package/dist/types/src/helpers/cli/generateFactoryContent.d.ts +4 -0
- package/dist/types/src/helpers/cli/generateMigration.d.ts +6 -0
- package/dist/types/src/helpers/cli/generateMigrationContent.d.ts +7 -0
- package/dist/types/src/helpers/cli/generateSerializer.d.ts +5 -0
- package/dist/types/src/helpers/cli/generateSerializerContent.d.ts +5 -0
- package/dist/types/src/helpers/cli/generateStiMigrationContent.d.ts +6 -0
- package/dist/types/src/helpers/cli/generateUnitSpec.d.ts +3 -0
- package/dist/types/src/helpers/cli/generateUnitSpecContent.d.ts +3 -0
- package/dist/types/src/helpers/cloneDeepSafe.d.ts +18 -0
- package/dist/types/src/helpers/compact.d.ts +19 -0
- package/dist/types/src/helpers/customPgParsers.d.ts +9 -0
- package/dist/types/src/helpers/db/cachedTypeForAttribute.d.ts +2 -0
- package/dist/types/src/helpers/db/createDb.d.ts +2 -0
- package/dist/types/src/helpers/db/dropDb.d.ts +2 -0
- package/dist/types/src/helpers/db/foreignKeyTypeFromPrimaryKey.d.ts +2 -0
- package/dist/types/src/helpers/db/loadPgClient.d.ts +3 -0
- package/dist/types/src/helpers/db/primaryKeyType.d.ts +1 -0
- package/dist/types/src/helpers/db/runMigration.d.ts +6 -0
- package/dist/types/src/helpers/db/truncateDb.d.ts +1 -0
- package/dist/types/src/helpers/db/types/isDatabaseArrayColumn.d.ts +2 -0
- package/dist/types/src/helpers/db/types/isDateColumn.d.ts +2 -0
- package/dist/types/src/helpers/db/types/isDateTimeColumn.d.ts +2 -0
- package/dist/types/src/helpers/db/types/isJsonColumn.d.ts +2 -0
- package/dist/types/src/helpers/debug.d.ts +4 -0
- package/dist/types/src/helpers/dreamOrPsychicCoreDevelopment.d.ts +1 -0
- package/dist/types/src/helpers/filterObjectByKey.d.ts +1 -0
- package/dist/types/src/helpers/getFiles.d.ts +1 -0
- package/dist/types/src/helpers/globalClassNameFromFullyQualifiedModelName.d.ts +1 -0
- package/dist/types/src/helpers/hyphenize.d.ts +2 -0
- package/dist/types/src/helpers/inferSerializerFromDreamOrViewModel.d.ts +4 -0
- package/dist/types/src/helpers/isEmpty.d.ts +1 -0
- package/dist/types/src/helpers/loadEnv.d.ts +1 -0
- package/dist/types/src/helpers/loadRepl.d.ts +2 -0
- package/dist/types/src/helpers/migrationVersion.d.ts +1 -0
- package/dist/types/src/helpers/namespaceColumn.d.ts +1 -0
- package/dist/types/src/helpers/objectPathsToArrays.d.ts +2 -0
- package/dist/types/src/helpers/pascalize.d.ts +2 -0
- package/dist/types/src/helpers/pascalizePath.d.ts +1 -0
- package/dist/types/src/helpers/path/dreamFileAndDirPaths.d.ts +5 -0
- package/dist/types/src/helpers/path/dreamPath.d.ts +3 -0
- package/dist/types/src/helpers/path/relativeDreamPath.d.ts +3 -0
- package/dist/types/src/helpers/path/sharedPathPrefix.d.ts +1 -0
- package/dist/types/src/helpers/propertyNameFromFullyQualifiedModelName.d.ts +1 -0
- package/dist/types/src/helpers/protectAgainstPollutingAssignment.d.ts +1 -0
- package/dist/types/src/helpers/range.d.ts +7 -0
- package/dist/types/src/helpers/round.d.ts +2 -0
- package/dist/types/src/helpers/serializerNameFromFullyQualifiedModelName.d.ts +1 -0
- package/dist/types/src/helpers/snakeify.d.ts +3 -0
- package/dist/types/src/helpers/sortBy.d.ts +8 -0
- package/dist/types/src/helpers/sqlAttributes.d.ts +4 -0
- package/dist/types/src/helpers/sspawn.d.ts +2 -0
- package/dist/types/src/helpers/standardizeFullyQualifiedModelName.d.ts +1 -0
- package/dist/types/src/helpers/stringCasing.d.ts +28 -0
- package/dist/types/src/helpers/typechecks.d.ts +2 -0
- package/dist/types/src/helpers/typeutils.d.ts +115 -0
- package/dist/types/src/helpers/uncapitalize.d.ts +1 -0
- package/dist/types/src/helpers/uniq.d.ts +1 -0
- package/dist/types/src/index.d.ts +78 -0
- package/dist/types/src/openapi/types.d.ts +139 -0
- package/dist/types/src/ops/curried-ops-statement.d.ts +7 -0
- package/dist/types/src/ops/index.d.ts +49 -0
- package/dist/types/src/ops/ops-statement.d.ts +14 -0
- package/dist/types/src/serializer/decorators/associations/RendersMany.d.ts +42 -0
- package/dist/types/src/serializer/decorators/associations/RendersOne.d.ts +46 -0
- package/dist/types/src/serializer/decorators/associations/shared.d.ts +23 -0
- package/dist/types/src/serializer/decorators/attribute.d.ts +29 -0
- package/dist/types/src/serializer/decorators/helpers/dreamAttributeOpenapiShape.d.ts +7 -0
- package/dist/types/src/serializer/decorators/helpers/hasSerializersGetter.d.ts +2 -0
- package/dist/types/src/serializer/decorators/helpers/maybeSerializableToDreamSerializerCallbackFunction.d.ts +2 -0
- package/dist/types/src/serializer/index.d.ts +56 -0
- package/docs/.nojekyll +1 -0
- package/docs/assets/highlight.css +92 -0
- package/docs/assets/icons.js +18 -0
- package/docs/assets/icons.svg +1 -0
- package/docs/assets/main.js +60 -0
- package/docs/assets/navigation.js +1 -0
- package/docs/assets/search.js +1 -0
- package/docs/assets/style.css +1448 -0
- package/docs/classes/Benchmark.html +4 -0
- package/docs/classes/CalendarDate.html +34 -0
- package/docs/classes/CreateOrFindByFailedToCreateAndFind.html +12 -0
- package/docs/classes/Decorators.html +81 -0
- package/docs/classes/Dream.html +896 -0
- package/docs/classes/DreamApplication.html +37 -0
- package/docs/classes/DreamBin.html +11 -0
- package/docs/classes/DreamCLI.html +7 -0
- package/docs/classes/DreamImporter.html +6 -0
- package/docs/classes/DreamMigrationHelpers.html +32 -0
- package/docs/classes/DreamSerializer.html +19 -0
- package/docs/classes/DreamTransaction.html +5 -0
- package/docs/classes/Encrypt.html +8 -0
- package/docs/classes/Env.html +20 -0
- package/docs/classes/GlobalNameNotSet.html +12 -0
- package/docs/classes/NonLoadedAssociation.html +14 -0
- package/docs/classes/Query.html +383 -0
- package/docs/classes/Range.html +5 -0
- package/docs/classes/RecordNotFound.html +13 -0
- package/docs/classes/ValidationError.html +14 -0
- package/docs/functions/AfterCreate.html +1 -0
- package/docs/functions/AfterCreateCommit.html +13 -0
- package/docs/functions/AfterDestroy.html +1 -0
- package/docs/functions/AfterDestroyCommit.html +13 -0
- package/docs/functions/AfterSave.html +1 -0
- package/docs/functions/AfterSaveCommit.html +13 -0
- package/docs/functions/AfterUpdate.html +1 -0
- package/docs/functions/AfterUpdateCommit.html +13 -0
- package/docs/functions/Attribute.html +1 -0
- package/docs/functions/BeforeCreate.html +1 -0
- package/docs/functions/BeforeDestroy.html +1 -0
- package/docs/functions/BeforeSave.html +1 -0
- package/docs/functions/BeforeUpdate.html +1 -0
- package/docs/functions/RendersMany.html +16 -0
- package/docs/functions/RendersOne.html +16 -0
- package/docs/functions/ReplicaSafe.html +1 -0
- package/docs/functions/STI.html +1 -0
- package/docs/functions/Scope.html +1 -0
- package/docs/functions/SoftDelete.html +19 -0
- package/docs/functions/Sortable.html +1 -0
- package/docs/functions/Validate.html +1 -0
- package/docs/functions/Validates.html +1 -0
- package/docs/functions/Virtual.html +1 -0
- package/docs/functions/camelize.html +1 -0
- package/docs/functions/capitalize.html +1 -0
- package/docs/functions/closeAllDbConnections.html +1 -0
- package/docs/functions/compact.html +1 -0
- package/docs/functions/db.html +1 -0
- package/docs/functions/debug.html +1 -0
- package/docs/functions/dreamDbConnections.html +1 -0
- package/docs/functions/dreamPath.html +1 -0
- package/docs/functions/generateDream.html +1 -0
- package/docs/functions/globalClassNameFromFullyQualifiedModelName.html +1 -0
- package/docs/functions/hyphenize.html +1 -0
- package/docs/functions/inferSerializerFromDreamClassOrViewModelClass.html +1 -0
- package/docs/functions/inferSerializerFromDreamOrViewModel.html +1 -0
- package/docs/functions/isEmpty.html +1 -0
- package/docs/functions/loadRepl.html +1 -0
- package/docs/functions/lookupClassByGlobalName.html +1 -0
- package/docs/functions/pascalize.html +1 -0
- package/docs/functions/pgErrorType.html +1 -0
- package/docs/functions/range-1.html +1 -0
- package/docs/functions/relativeDreamPath.html +1 -0
- package/docs/functions/round.html +1 -0
- package/docs/functions/serializerNameFromFullyQualifiedModelName.html +1 -0
- package/docs/functions/sharedPathPrefix.html +1 -0
- package/docs/functions/snakeify.html +1 -0
- package/docs/functions/sortBy.html +1 -0
- package/docs/functions/standardizeFullyQualifiedModelName.html +1 -0
- package/docs/functions/uncapitalize.html +1 -0
- package/docs/functions/uniq.html +1 -0
- package/docs/functions/validateColumn.html +1 -0
- package/docs/functions/validateTable.html +1 -0
- package/docs/index.html +123 -0
- package/docs/interfaces/AttributeStatement.html +6 -0
- package/docs/interfaces/DecoratorContext.html +8 -0
- package/docs/interfaces/DreamApplicationInitOptions.html +2 -0
- package/docs/interfaces/DreamApplicationOpts.html +8 -0
- package/docs/interfaces/DreamSerializerAssociationStatement.html +11 -0
- package/docs/interfaces/EncryptOptions.html +3 -0
- package/docs/interfaces/OpenapiSchemaProperties.html +1 -0
- package/docs/interfaces/OpenapiSchemaPropertiesShorthand.html +1 -0
- package/docs/interfaces/OpenapiTypeFieldObject.html +1 -0
- package/docs/modules.html +163 -0
- package/docs/types/Camelized.html +1 -0
- package/docs/types/CommonOpenapiSchemaObjectFields.html +1 -0
- package/docs/types/DreamAssociationMetadata.html +1 -0
- package/docs/types/DreamAttributes.html +1 -0
- package/docs/types/DreamClassColumn.html +1 -0
- package/docs/types/DreamColumn.html +1 -0
- package/docs/types/DreamColumnNames.html +1 -0
- package/docs/types/DreamLogLevel.html +1 -0
- package/docs/types/DreamLogger.html +1 -0
- package/docs/types/DreamOrViewModelSerializerKey.html +1 -0
- package/docs/types/DreamParamSafeAttributes.html +1 -0
- package/docs/types/DreamParamSafeColumnNames.html +1 -0
- package/docs/types/DreamSerializerKey.html +1 -0
- package/docs/types/DreamSerializers.html +1 -0
- package/docs/types/DreamTableSchema.html +1 -0
- package/docs/types/DreamVirtualColumns.html +1 -0
- package/docs/types/EncryptAlgorithm.html +1 -0
- package/docs/types/Hyphenized.html +1 -0
- package/docs/types/IdType.html +1 -0
- package/docs/types/OpenapiAllTypes.html +1 -0
- package/docs/types/OpenapiFormats.html +1 -0
- package/docs/types/OpenapiNumberFormats.html +1 -0
- package/docs/types/OpenapiPrimitiveTypes.html +1 -0
- package/docs/types/OpenapiSchemaArray.html +1 -0
- package/docs/types/OpenapiSchemaArrayShorthand.html +1 -0
- package/docs/types/OpenapiSchemaBase.html +1 -0
- package/docs/types/OpenapiSchemaBody.html +1 -0
- package/docs/types/OpenapiSchemaBodyShorthand.html +1 -0
- package/docs/types/OpenapiSchemaCommonFields.html +1 -0
- package/docs/types/OpenapiSchemaExpressionAllOf.html +1 -0
- package/docs/types/OpenapiSchemaExpressionAnyOf.html +1 -0
- package/docs/types/OpenapiSchemaExpressionOneOf.html +1 -0
- package/docs/types/OpenapiSchemaExpressionRef.html +1 -0
- package/docs/types/OpenapiSchemaExpressionRefSchemaShorthand.html +1 -0
- package/docs/types/OpenapiSchemaInteger.html +1 -0
- package/docs/types/OpenapiSchemaNull.html +1 -0
- package/docs/types/OpenapiSchemaNumber.html +1 -0
- package/docs/types/OpenapiSchemaObject.html +1 -0
- package/docs/types/OpenapiSchemaObjectAllOf.html +1 -0
- package/docs/types/OpenapiSchemaObjectAllOfShorthand.html +1 -0
- package/docs/types/OpenapiSchemaObjectAnyOf.html +1 -0
- package/docs/types/OpenapiSchemaObjectAnyOfShorthand.html +1 -0
- package/docs/types/OpenapiSchemaObjectBase.html +1 -0
- package/docs/types/OpenapiSchemaObjectBaseShorthand.html +1 -0
- package/docs/types/OpenapiSchemaObjectOneOf.html +1 -0
- package/docs/types/OpenapiSchemaObjectOneOfShorthand.html +1 -0
- package/docs/types/OpenapiSchemaObjectShorthand.html +1 -0
- package/docs/types/OpenapiSchemaPartialSegment.html +1 -0
- package/docs/types/OpenapiSchemaPrimitiveGeneric.html +1 -0
- package/docs/types/OpenapiSchemaShorthandExpressionAllOf.html +1 -0
- package/docs/types/OpenapiSchemaShorthandExpressionAnyOf.html +1 -0
- package/docs/types/OpenapiSchemaShorthandExpressionOneOf.html +1 -0
- package/docs/types/OpenapiSchemaShorthandExpressionSerializableRef.html +1 -0
- package/docs/types/OpenapiSchemaShorthandExpressionSerializerRef.html +1 -0
- package/docs/types/OpenapiSchemaShorthandPrimitiveGeneric.html +1 -0
- package/docs/types/OpenapiSchemaString.html +1 -0
- package/docs/types/OpenapiShorthandAllTypes.html +1 -0
- package/docs/types/OpenapiShorthandPrimitiveTypes.html +1 -0
- package/docs/types/OpenapiTypeField.html +1 -0
- package/docs/types/Pascalized.html +1 -0
- package/docs/types/PrimaryKeyType.html +1 -0
- package/docs/types/RoundingPrecision.html +1 -0
- package/docs/types/SerializableClassOrSerializerCallback.html +1 -0
- package/docs/types/SerializableDreamClassOrViewModelClass.html +1 -0
- package/docs/types/SerializableDreamOrViewModel.html +1 -0
- package/docs/types/SerializableTypes.html +1 -0
- package/docs/types/Snakeified.html +1 -0
- package/docs/types/Timestamp.html +1 -0
- package/docs/types/UpdateableAssociationProperties.html +1 -0
- package/docs/types/UpdateableProperties.html +1 -0
- package/docs/types/ValidationType.html +1 -0
- package/docs/types/ViewModelSerializerKey.html +1 -0
- package/docs/types/WhereStatementForDream.html +1 -0
- package/docs/types/WhereStatementForDreamClass.html +1 -0
- package/docs/variables/DreamConst.html +1 -0
- package/docs/variables/TRIGRAM_OPERATORS.html +1 -0
- package/docs/variables/openapiPrimitiveTypes-1.html +1 -0
- package/docs/variables/openapiShorthandPrimitiveTypes-1.html +1 -0
- package/docs/variables/ops.html +1 -0
- package/docs/variables/primaryKeyTypes.html +1 -0
- package/package.json +83 -0
|
@@ -0,0 +1,1132 @@
|
|
|
1
|
+
import { DeleteQueryBuilder, SelectQueryBuilder, UpdateQueryBuilder } from 'kysely';
|
|
2
|
+
import ConnectedToDB from '../db/ConnectedToDB.js';
|
|
3
|
+
import { DbConnectionType } from '../db/types.js';
|
|
4
|
+
import { ColumnNamesAccountingForJoinedAssociations, LimitStatement, OffsetStatement, OrderQueryStatement, PassthroughOnClause, WhereStatement, WhereStatementForJoinedAssociation } from '../decorators/associations/shared.js';
|
|
5
|
+
import Dream from '../Dream.js';
|
|
6
|
+
import { FindInterfaceWithValue } from '../helpers/typeutils.js';
|
|
7
|
+
import DreamTransaction from './DreamTransaction.js';
|
|
8
|
+
import { AllDefaultScopeNames, DefaultScopeName, DreamColumnNames, DreamTableSchema, IdType, JoinedAssociation, JoinedAssociationsTypeFromAssociations, OrderDir, PassthroughColumnNames, PluckEachArgs, PrimaryKeyForFind, QueryTypeOptions, RelaxedJoinOnStatement, RelaxedJoinStatement, RelaxedPreloadOnStatement, RelaxedPreloadStatement, TableColumnNames, TableColumnType, TableOrAssociationName, VariadicJoinsArgs, VariadicLeftJoinLoadArgs, VariadicLoadArgs } from './types.js';
|
|
9
|
+
export type QueryWithJoinedAssociationsType<Q extends Query<any, any>, JoinedAssociations extends Readonly<JoinedAssociation[]>> = Query<Q['dreamInstance'], ExtendQueryType<Q['queryTypeOpts'], Readonly<{
|
|
10
|
+
joinedAssociations: JoinedAssociations;
|
|
11
|
+
}>>>;
|
|
12
|
+
export type QueryWithJoinedAssociationsTypeAndNoPreload<Q extends Query<any, any>, JoinedAssociations extends Readonly<JoinedAssociation[]> = Readonly<JoinedAssociation[]>> = Query<Q['dreamInstance'], ExtendQueryType<Q['queryTypeOpts'], Readonly<{
|
|
13
|
+
joinedAssociations: JoinedAssociations;
|
|
14
|
+
allowPreload: false;
|
|
15
|
+
}>>>;
|
|
16
|
+
export type QueryWithJoinedAssociationsTypeAndNoLeftJoinPreload<Q extends Query<any, any>, JoinedAssociations extends Readonly<JoinedAssociation[]> = Readonly<JoinedAssociation[]>> = Query<Q['dreamInstance'], ExtendQueryType<Q['queryTypeOpts'], Readonly<{
|
|
17
|
+
joinedAssociations: JoinedAssociations;
|
|
18
|
+
allowLeftJoinPreload: false;
|
|
19
|
+
}>>>;
|
|
20
|
+
export type DefaultQueryTypeOptions<TableNameSource extends Dream, TableAliasSource extends Dream | string = TableNameSource> = Readonly<{
|
|
21
|
+
joinedAssociations: Readonly<[]>;
|
|
22
|
+
rootTableName: TableNameSource['table'];
|
|
23
|
+
rootTableAlias: TableAliasSource extends Dream ? TableAliasSource['table'] : TableAliasSource;
|
|
24
|
+
allowPreload: true;
|
|
25
|
+
allowLeftJoinPreload: true;
|
|
26
|
+
}>;
|
|
27
|
+
export default class Query<DreamInstance extends Dream, QueryTypeOpts extends Readonly<QueryTypeOptions> = DefaultQueryTypeOptions<DreamInstance>> extends ConnectedToDB<DreamInstance> {
|
|
28
|
+
/**
|
|
29
|
+
* @internal
|
|
30
|
+
*
|
|
31
|
+
* stores the default batch sizes for various
|
|
32
|
+
* provided batching methods
|
|
33
|
+
*/
|
|
34
|
+
static readonly BATCH_SIZES: {
|
|
35
|
+
FIND_EACH: number;
|
|
36
|
+
PLUCK_EACH: number;
|
|
37
|
+
PLUCK_EACH_THROUGH: number;
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* @internal
|
|
41
|
+
* purely for typing
|
|
42
|
+
*/
|
|
43
|
+
queryTypeOpts: QueryTypeOpts;
|
|
44
|
+
/**
|
|
45
|
+
* @internal
|
|
46
|
+
*
|
|
47
|
+
* stores the dream transaction applied to the
|
|
48
|
+
* current Query instance
|
|
49
|
+
*/
|
|
50
|
+
dreamTransaction: DreamTransaction<Dream> | null;
|
|
51
|
+
/**
|
|
52
|
+
* @internal
|
|
53
|
+
*
|
|
54
|
+
* stores the passthrough on statements applied to the
|
|
55
|
+
* current Query instance
|
|
56
|
+
*/
|
|
57
|
+
private readonly passthroughOnStatement;
|
|
58
|
+
/**
|
|
59
|
+
* @internal
|
|
60
|
+
*
|
|
61
|
+
* stores the where statements applied to the
|
|
62
|
+
* current Query instance
|
|
63
|
+
*/
|
|
64
|
+
private readonly whereStatements;
|
|
65
|
+
/**
|
|
66
|
+
* @internal
|
|
67
|
+
*
|
|
68
|
+
* stores the where not statements applied to the
|
|
69
|
+
* current Query instance
|
|
70
|
+
*/
|
|
71
|
+
private readonly whereNotStatements;
|
|
72
|
+
/**
|
|
73
|
+
* @internal
|
|
74
|
+
*
|
|
75
|
+
* stores the limit statements applied to the
|
|
76
|
+
* current Query instance
|
|
77
|
+
*/
|
|
78
|
+
private readonly limitStatement;
|
|
79
|
+
/**
|
|
80
|
+
* @internal
|
|
81
|
+
*
|
|
82
|
+
* stores the offset statements applied to the
|
|
83
|
+
* current Query instance
|
|
84
|
+
*/
|
|
85
|
+
private readonly offsetStatement;
|
|
86
|
+
/**
|
|
87
|
+
* @internal
|
|
88
|
+
*
|
|
89
|
+
* stores the or statements applied to the
|
|
90
|
+
* current Query instance
|
|
91
|
+
*/
|
|
92
|
+
private readonly whereAnyStatements;
|
|
93
|
+
/**
|
|
94
|
+
* @internal
|
|
95
|
+
*
|
|
96
|
+
* stores the order statements applied to the
|
|
97
|
+
* current Query instance
|
|
98
|
+
*/
|
|
99
|
+
private readonly orderStatements;
|
|
100
|
+
/**
|
|
101
|
+
* @internal
|
|
102
|
+
*
|
|
103
|
+
* whether or not to turn joins into load statements
|
|
104
|
+
*/
|
|
105
|
+
private readonly joinLoadActivated;
|
|
106
|
+
/**
|
|
107
|
+
* @internal
|
|
108
|
+
*
|
|
109
|
+
* stores the preload statements applied to the
|
|
110
|
+
* current Query instance
|
|
111
|
+
*/
|
|
112
|
+
private readonly preloadStatements;
|
|
113
|
+
/**
|
|
114
|
+
* @internal
|
|
115
|
+
*
|
|
116
|
+
* stores the preload on statements applied to the
|
|
117
|
+
* current Query instance
|
|
118
|
+
*/
|
|
119
|
+
private readonly preloadOnStatements;
|
|
120
|
+
/**
|
|
121
|
+
* @internal
|
|
122
|
+
*
|
|
123
|
+
* stores the joins statements applied to the
|
|
124
|
+
* current Query instance
|
|
125
|
+
*/
|
|
126
|
+
private readonly innerJoinStatements;
|
|
127
|
+
/**
|
|
128
|
+
* @internal
|
|
129
|
+
*
|
|
130
|
+
* stores the joins on statements applied to the
|
|
131
|
+
* current Query instance
|
|
132
|
+
*/
|
|
133
|
+
private readonly innerJoinOnStatements;
|
|
134
|
+
/**
|
|
135
|
+
* @internal
|
|
136
|
+
*
|
|
137
|
+
* stores the joins statements applied to the
|
|
138
|
+
* current Query instance
|
|
139
|
+
*/
|
|
140
|
+
private readonly leftJoinStatements;
|
|
141
|
+
/**
|
|
142
|
+
* @internal
|
|
143
|
+
*
|
|
144
|
+
* stores the joins on statements applied to the
|
|
145
|
+
* current Query instance
|
|
146
|
+
*/
|
|
147
|
+
private readonly leftJoinOnStatements;
|
|
148
|
+
/**
|
|
149
|
+
* @internal
|
|
150
|
+
*
|
|
151
|
+
* Whether or not to bypass all default scopes for this Query
|
|
152
|
+
*/
|
|
153
|
+
private readonly bypassAllDefaultScopes;
|
|
154
|
+
/**
|
|
155
|
+
* @internal
|
|
156
|
+
*
|
|
157
|
+
* Whether or not to bypass all default scopes for this Query, but not associations
|
|
158
|
+
*/
|
|
159
|
+
private readonly bypassAllDefaultScopesExceptOnAssociations;
|
|
160
|
+
/**
|
|
161
|
+
* @internal
|
|
162
|
+
*
|
|
163
|
+
* Specific default scopes to bypass
|
|
164
|
+
*/
|
|
165
|
+
private readonly defaultScopesToBypass;
|
|
166
|
+
/**
|
|
167
|
+
* @internal
|
|
168
|
+
*
|
|
169
|
+
* Specific default scopes to bypass, but not associations
|
|
170
|
+
*/
|
|
171
|
+
private readonly defaultScopesToBypassExceptOnAssociations;
|
|
172
|
+
/**
|
|
173
|
+
* @internal
|
|
174
|
+
*
|
|
175
|
+
* Whether or not to bypass SoftDelete and really destroy a record
|
|
176
|
+
* when calling destroy.
|
|
177
|
+
*/
|
|
178
|
+
private readonly shouldReallyDestroy;
|
|
179
|
+
/**
|
|
180
|
+
* @internal
|
|
181
|
+
*
|
|
182
|
+
* The distinct column to apply to the Query
|
|
183
|
+
*/
|
|
184
|
+
private readonly distinctColumn;
|
|
185
|
+
/**
|
|
186
|
+
* @internal
|
|
187
|
+
*
|
|
188
|
+
* The base sql alias to use for the base model
|
|
189
|
+
* of this Query
|
|
190
|
+
*/
|
|
191
|
+
private baseSqlAlias;
|
|
192
|
+
private get tableName();
|
|
193
|
+
private get namespacedPrimaryKey();
|
|
194
|
+
/**
|
|
195
|
+
* @internal
|
|
196
|
+
*
|
|
197
|
+
* Used for unscoping Query instances. In most cases, this will be null,
|
|
198
|
+
* but when calling `removeAllDefaultScopes`, a removeAllDefaultScopes Query is stored as
|
|
199
|
+
* baseSelectQuery.
|
|
200
|
+
*/
|
|
201
|
+
private baseSelectQuery;
|
|
202
|
+
constructor(dreamInstance: DreamInstance, opts?: QueryOpts<DreamInstance, DreamColumnNames<DreamInstance>>);
|
|
203
|
+
/**
|
|
204
|
+
* Returns true. Useful for distinguishing Query instances
|
|
205
|
+
* from other objects.
|
|
206
|
+
*
|
|
207
|
+
* @returns true
|
|
208
|
+
*/
|
|
209
|
+
get isDreamQuery(): boolean;
|
|
210
|
+
/**
|
|
211
|
+
* @internal
|
|
212
|
+
*
|
|
213
|
+
* Used for applying preload and load statements
|
|
214
|
+
*
|
|
215
|
+
* @returns An associated Query
|
|
216
|
+
*/
|
|
217
|
+
private dreamClassQueryWithScopeBypasses;
|
|
218
|
+
/**
|
|
219
|
+
* @internal
|
|
220
|
+
*
|
|
221
|
+
* Returns a cloned version of the Query
|
|
222
|
+
*
|
|
223
|
+
* ```ts
|
|
224
|
+
* const clonedQuery = User.query().clone()
|
|
225
|
+
* ```
|
|
226
|
+
*
|
|
227
|
+
* @param opts - Statements to override when cloning the Query
|
|
228
|
+
* @returns A cloned Query with the provided overrides clause applied
|
|
229
|
+
*/
|
|
230
|
+
clone<Q extends Query<DreamInstance, QueryTypeOpts>>(this: Q, opts?: QueryOpts<DreamInstance, any>): Q;
|
|
231
|
+
/**
|
|
232
|
+
* Finds a record matching the Query with the
|
|
233
|
+
* specified primary key. If not found, null
|
|
234
|
+
* is returned.
|
|
235
|
+
*
|
|
236
|
+
* ```ts
|
|
237
|
+
* await User.query().find(123)
|
|
238
|
+
* // User{id: 123}
|
|
239
|
+
* ```
|
|
240
|
+
*
|
|
241
|
+
* @param primaryKey - The primary key of the record to look up
|
|
242
|
+
* @returns Either the found record, or else null
|
|
243
|
+
*/
|
|
244
|
+
find(primaryKey: PrimaryKeyForFind<DreamInstance>): Promise<DreamInstance | null>;
|
|
245
|
+
/**
|
|
246
|
+
* Finds a record matching the Query with the
|
|
247
|
+
* specified primary key. If not found, an exception
|
|
248
|
+
* is raised.
|
|
249
|
+
*
|
|
250
|
+
* ```ts
|
|
251
|
+
* await User.query().findOrFail(123)
|
|
252
|
+
* // User{id: 123}
|
|
253
|
+
* ```
|
|
254
|
+
*
|
|
255
|
+
* @param primaryKey - The primary key of the record to look up
|
|
256
|
+
* @returns The found record
|
|
257
|
+
*/
|
|
258
|
+
findOrFail(primaryKey: PrimaryKeyForFind<DreamInstance>): Promise<DreamInstance>;
|
|
259
|
+
/**
|
|
260
|
+
* Finds a record matching the Query and the
|
|
261
|
+
* specified where statement. If not found, null
|
|
262
|
+
* is returned.
|
|
263
|
+
*
|
|
264
|
+
* ```ts
|
|
265
|
+
* await User.query().findBy({ email: 'how@yadoin' })
|
|
266
|
+
* // User{email: 'how@yadoin'}
|
|
267
|
+
* ```
|
|
268
|
+
*
|
|
269
|
+
* @param whereStatement - The where statement used to locate the record
|
|
270
|
+
* @returns Either the first record found matching the attributes, or else null
|
|
271
|
+
*/
|
|
272
|
+
findBy<DB extends DreamInstance['DB'], Schema extends DreamInstance['schema']>(whereStatement: WhereStatement<DB, Schema, DreamInstance['table']>): Promise<DreamInstance | null>;
|
|
273
|
+
/**
|
|
274
|
+
* Finds a record matching the Query and the
|
|
275
|
+
* specified where statement. If not found, an exception
|
|
276
|
+
* is raised.
|
|
277
|
+
*
|
|
278
|
+
* ```ts
|
|
279
|
+
* await User.query().findOrFailBy({ email: 'how@yadoin' })
|
|
280
|
+
* // User{email: 'how@yadoin'}
|
|
281
|
+
* ```
|
|
282
|
+
*
|
|
283
|
+
* @param whereStatement - The where statement used to locate the record
|
|
284
|
+
* @returns The first record found matching the attributes
|
|
285
|
+
*/
|
|
286
|
+
findOrFailBy<DB extends DreamInstance['DB'], Schema extends DreamInstance['schema']>(whereStatement: WhereStatement<DB, Schema, DreamInstance['table']>): Promise<DreamInstance>;
|
|
287
|
+
/**
|
|
288
|
+
* Finds all records matching the Query in batches,
|
|
289
|
+
* and then calls the provided callback for each found record.
|
|
290
|
+
* Once all records have been passed for a given batch, the next set of
|
|
291
|
+
* records will be fetched and passed to your callback, until all
|
|
292
|
+
* records matching the Query have been fetched.
|
|
293
|
+
*
|
|
294
|
+
* ```ts
|
|
295
|
+
* await User.order('id').findEach(user => {
|
|
296
|
+
* DreamApplication.log(user)
|
|
297
|
+
* })
|
|
298
|
+
* // User{id: 1}
|
|
299
|
+
* // User{id: 2}
|
|
300
|
+
* ```
|
|
301
|
+
*
|
|
302
|
+
* @param cb - The callback to call for each found record
|
|
303
|
+
* @param options - Options for destroying the instance
|
|
304
|
+
* @param options.batchSize - The batch size you wish to collect records in. If not provided, it will default to 1000
|
|
305
|
+
* @returns void
|
|
306
|
+
*/
|
|
307
|
+
findEach(this: Query<DreamInstance, QueryTypeOpts>, cb: (instance: DreamInstance) => void | Promise<void>, { batchSize }?: {
|
|
308
|
+
batchSize?: number;
|
|
309
|
+
}): Promise<void>;
|
|
310
|
+
/**
|
|
311
|
+
* Load each specified association using a single SQL query.
|
|
312
|
+
* See {@link #preload} for preloading in separate queries.
|
|
313
|
+
*
|
|
314
|
+
* Note: since leftJoinPreload loads via single query, it has
|
|
315
|
+
* some downsides and that may be avoided using {@link #preload}:
|
|
316
|
+
* 1. `limit` and `offset` will be automatically removed
|
|
317
|
+
* 2. `through` associations will bring additional namespaces into the query that can conflict with through associations from other associations, creating an invalid query
|
|
318
|
+
* 3. each nested association will result in an additional record which duplicates data from the outer record. E.g., given `.leftJoinPreload('a', 'b', 'c')`, if each `a` has 10 `b` and each `b` has 10 `c`, then for one `a`, 100 records will be returned, each of which has all of the columns of `a`. `.preload('a', 'b', 'c')` would perform three separate SQL queries, but the data for a single `a` would only be returned once.
|
|
319
|
+
* 4. the individual query becomes more complex the more associations are included
|
|
320
|
+
* 5. associations loading associations loading associations could result in exponential amounts of data; in those cases, `.preload(...).findEach(...)` avoids instantiating massive amounts of data at once
|
|
321
|
+
*
|
|
322
|
+
*
|
|
323
|
+
* ```ts
|
|
324
|
+
* const posts = await user.associationQuery('posts').leftJoinPreload('comments', { visibilty: 'public' }, 'replies').all()
|
|
325
|
+
* console.log(posts[0].comments[0].replies[0])
|
|
326
|
+
* // [Reply{id: 1}, Reply{id: 2}]
|
|
327
|
+
* ```
|
|
328
|
+
*
|
|
329
|
+
* @param args - A chain of association names and on/notOn/onAny clauses
|
|
330
|
+
* @returns A cloned Query with the joinLoad statement applied
|
|
331
|
+
*/
|
|
332
|
+
leftJoinPreload<Q extends Query<DreamInstance, any>, DB extends DreamInstance['DB'], Schema extends DreamInstance['schema'], TableName extends DreamInstance['table'], const Arr extends readonly unknown[], const LastArg extends VariadicLeftJoinLoadArgs<DB, Schema, TableName, Arr>, Incompatible extends Q['queryTypeOpts'] extends Readonly<{
|
|
333
|
+
allowLeftJoinPreload: false;
|
|
334
|
+
}> ? true : false, const JoinedAssociationsCandidate = JoinedAssociationsTypeFromAssociations<DB, Schema, TableName, Incompatible extends true ? [] : [...Arr, LastArg]>, const JoinedAssociations extends readonly JoinedAssociation[] = JoinedAssociationsCandidate extends readonly JoinedAssociation[] ? JoinedAssociationsCandidate : never, RetQuery = Query<DreamInstance, ExtendQueryType<QueryTypeOpts, Readonly<{
|
|
335
|
+
joinedAssociations: JoinedAssociations;
|
|
336
|
+
allowPreload: false;
|
|
337
|
+
}>>>>(this: Q, ...args: Incompatible extends true ? 'leftJoinPreload is incompatible with preload'[] : [...Arr, LastArg]): RetQuery;
|
|
338
|
+
/**
|
|
339
|
+
* Load each specified association using a separate SQL query.
|
|
340
|
+
* See {@link #leftJoinPreload} for preloading in a single query.
|
|
341
|
+
*
|
|
342
|
+
* ```ts
|
|
343
|
+
* const user = await User.query().preload('posts', 'comments', { visibilty: 'public' }, 'replies').first()
|
|
344
|
+
* console.log(user.posts[0].comments[0].replies[0])
|
|
345
|
+
* // [Reply{id: 1}, Reply{id: 2}]
|
|
346
|
+
* ```
|
|
347
|
+
*
|
|
348
|
+
* @param args - A chain of association names and on/notOn/onAny clauses
|
|
349
|
+
* @returns A cloned Query with the preload statement applied
|
|
350
|
+
*/
|
|
351
|
+
preload<Q extends Query<DreamInstance, any>, DB extends DreamInstance['DB'], Schema extends DreamInstance['schema'], TableName extends DreamInstance['table'], const Arr extends readonly unknown[], Incompatible extends Q['queryTypeOpts'] extends Readonly<{
|
|
352
|
+
allowPreload: false;
|
|
353
|
+
}> ? true : false, RetQuery = Query<DreamInstance, ExtendQueryType<QueryTypeOpts, Readonly<{
|
|
354
|
+
allowLeftJoinPreload: false;
|
|
355
|
+
}>>>>(this: Q, ...args: Incompatible extends true ? 'preload is incompatible with leftJoinPreload'[] : [...Arr, VariadicLoadArgs<DB, Schema, TableName, Arr>]): RetQuery;
|
|
356
|
+
/**
|
|
357
|
+
* Returns a new Query instance, with the provided
|
|
358
|
+
* joins statement attached
|
|
359
|
+
*
|
|
360
|
+
* ```ts
|
|
361
|
+
* await User.query().innerJoin('posts').first()
|
|
362
|
+
* ```
|
|
363
|
+
*
|
|
364
|
+
* @param args - A chain of association names and on/notOn/onAny clauses
|
|
365
|
+
* @returns A cloned Query with the joins clause applied
|
|
366
|
+
*/
|
|
367
|
+
innerJoin<DB extends DreamInstance['DB'], Schema extends DreamInstance['schema'], TableName extends DreamInstance['table'], const Arr extends readonly unknown[], const LastArg extends VariadicJoinsArgs<DB, Schema, TableName, Arr>, const JoinedAssociationsCandidate = JoinedAssociationsTypeFromAssociations<DB, Schema, TableName, [
|
|
368
|
+
...Arr,
|
|
369
|
+
LastArg
|
|
370
|
+
]>, const JoinedAssociations extends readonly JoinedAssociation[] = JoinedAssociationsCandidate extends readonly JoinedAssociation[] ? JoinedAssociationsCandidate : never, RetQuery = Query<DreamInstance, ExtendQueryType<QueryTypeOpts, Readonly<{
|
|
371
|
+
joinedAssociations: JoinedAssociations;
|
|
372
|
+
}>>>>(...args: [...Arr, LastArg]): RetQuery;
|
|
373
|
+
/**
|
|
374
|
+
* @internal
|
|
375
|
+
*
|
|
376
|
+
* @param args - A chain of association names and on/notOn/onAny clauses
|
|
377
|
+
* @returns A cloned Query with the joins clause applied
|
|
378
|
+
*/
|
|
379
|
+
leftJoin<DB extends DreamInstance['DB'], Schema extends DreamInstance['schema'], TableName extends DreamInstance['table'], const Arr extends readonly unknown[], const LastArg extends VariadicJoinsArgs<DB, Schema, TableName, Arr>, const JoinedAssociationsCandidate = JoinedAssociationsTypeFromAssociations<DB, Schema, TableName, [
|
|
380
|
+
...Arr,
|
|
381
|
+
LastArg
|
|
382
|
+
]>, const JoinedAssociations extends readonly JoinedAssociation[] = JoinedAssociationsCandidate extends readonly JoinedAssociation[] ? JoinedAssociationsCandidate : never, RetQuery = Query<DreamInstance, ExtendQueryType<QueryTypeOpts, Readonly<{
|
|
383
|
+
joinedAssociations: JoinedAssociations;
|
|
384
|
+
}>>>>(...args: [...Arr, LastArg]): RetQuery;
|
|
385
|
+
/**
|
|
386
|
+
* @internal
|
|
387
|
+
*
|
|
388
|
+
*/
|
|
389
|
+
private fleshOutJoinStatements;
|
|
390
|
+
/**
|
|
391
|
+
* @internal
|
|
392
|
+
*
|
|
393
|
+
*
|
|
394
|
+
*/
|
|
395
|
+
private associationNamesToDreamClassesMap;
|
|
396
|
+
/**
|
|
397
|
+
* @internal
|
|
398
|
+
*
|
|
399
|
+
*
|
|
400
|
+
*/
|
|
401
|
+
private associationNamesToAssociationsMap;
|
|
402
|
+
/**
|
|
403
|
+
* @internal
|
|
404
|
+
*/
|
|
405
|
+
private associationNamesToAssociationDataAndDreamClassesMap;
|
|
406
|
+
/**
|
|
407
|
+
* @internal
|
|
408
|
+
*/
|
|
409
|
+
private throughAssociationDetails;
|
|
410
|
+
/**
|
|
411
|
+
* @internal
|
|
412
|
+
*
|
|
413
|
+
*
|
|
414
|
+
*/
|
|
415
|
+
private joinStatementsToDreamClassesMap;
|
|
416
|
+
/**
|
|
417
|
+
* @internal
|
|
418
|
+
*
|
|
419
|
+
*
|
|
420
|
+
*/
|
|
421
|
+
private joinStatementsToAssociationsMap;
|
|
422
|
+
/**
|
|
423
|
+
* @internal
|
|
424
|
+
*
|
|
425
|
+
* Adds Dream class to temporary innerJoinDreamClasses array based on association name
|
|
426
|
+
*
|
|
427
|
+
*/
|
|
428
|
+
private addAssociatedDreamClassToInnerJoinDreamClasses;
|
|
429
|
+
private addThroughAssociatedDreamClassToInnerJoinDreamClasses;
|
|
430
|
+
/**
|
|
431
|
+
* @internal
|
|
432
|
+
*
|
|
433
|
+
* Changes the base sql alias
|
|
434
|
+
*
|
|
435
|
+
*/
|
|
436
|
+
private setBaseSQLAlias;
|
|
437
|
+
/**
|
|
438
|
+
* @internal
|
|
439
|
+
*
|
|
440
|
+
* Association queries start from the table corresponding to an instance
|
|
441
|
+
* of a Dream and join the association. However, the Dream may have
|
|
442
|
+
* default scopes that would preclude finding that instance, so the
|
|
443
|
+
* Query that forms the base of an association query must be unscoped,
|
|
444
|
+
* but that unscoping should not carry through to other associations
|
|
445
|
+
* (thus the use of `removeAllDefaultScopesExceptOnAssociations` instead of
|
|
446
|
+
* `removeAllDefaultScopes`).
|
|
447
|
+
*
|
|
448
|
+
* The association that this query is loading leverages `joins`, and the
|
|
449
|
+
* joining code explicitly handles applying / omitting default scopes.
|
|
450
|
+
* We set `bypassAllDefaultScopesExceptOnAssociations: true` on this Query
|
|
451
|
+
* to let that code do its work. This keeps the implementation DRY and simpler
|
|
452
|
+
* (without `bypassAllDefaultScopesExceptOnAssociations`, the default scopes would
|
|
453
|
+
* be applied twice, and when the association attempts to remove a default
|
|
454
|
+
* association would be foiled because it would be applied outside of the context
|
|
455
|
+
* where the association is modifying the query).
|
|
456
|
+
*
|
|
457
|
+
*/
|
|
458
|
+
private setAssociationQueryBase;
|
|
459
|
+
/**
|
|
460
|
+
* Prevents default scopes from applying when
|
|
461
|
+
* the Query is executed
|
|
462
|
+
*
|
|
463
|
+
* @returns A new Query which will prevent default scopes from applying
|
|
464
|
+
*/
|
|
465
|
+
removeAllDefaultScopes(): Query<DreamInstance, QueryTypeOpts>;
|
|
466
|
+
/**
|
|
467
|
+
* Prevents default scopes from applying when
|
|
468
|
+
* the Query is executed, but not when applying to associations
|
|
469
|
+
*
|
|
470
|
+
* @returns A new Query which will prevent default scopes from applying, but not when applying to asociations
|
|
471
|
+
*/
|
|
472
|
+
protected removeAllDefaultScopesExceptOnAssociations(): Query<DreamInstance, QueryTypeOpts>;
|
|
473
|
+
/**
|
|
474
|
+
* Prevents a specific default scope from applying when
|
|
475
|
+
* the Query is executed
|
|
476
|
+
*
|
|
477
|
+
* @returns A new Query which will prevent a specific default scope from applying
|
|
478
|
+
*/
|
|
479
|
+
removeDefaultScope(scopeName: AllDefaultScopeNames<DreamInstance>): Query<DreamInstance, QueryTypeOpts>;
|
|
480
|
+
/**
|
|
481
|
+
* Prevents a specific default scope from applying when
|
|
482
|
+
* the Query is executed, but not when applying to asociations
|
|
483
|
+
*
|
|
484
|
+
* @returns A new Query which will prevent a specific default scope from applying, but not when applying to asociations
|
|
485
|
+
*/
|
|
486
|
+
protected removeDefaultScopeExceptOnAssociations(scopeName: DefaultScopeName<DreamInstance>): Query<DreamInstance, QueryTypeOpts>;
|
|
487
|
+
/**
|
|
488
|
+
* Sends data through for use as passthrough data
|
|
489
|
+
* for the associations that require it.
|
|
490
|
+
*
|
|
491
|
+
* ```ts
|
|
492
|
+
* class Post {
|
|
493
|
+
* @Deco.HasMany('LocalizedText')
|
|
494
|
+
* public localizedTexts: LocalizedText[]
|
|
495
|
+
*
|
|
496
|
+
* @Deco.HasOne('LocalizedText', {
|
|
497
|
+
* on: { locale: DreamConst.passthrough },
|
|
498
|
+
* })
|
|
499
|
+
* public currentLocalizedText: LocalizedText
|
|
500
|
+
* }
|
|
501
|
+
*
|
|
502
|
+
* await User.query().passthrough({ locale: 'es-ES' })
|
|
503
|
+
* .preload('posts', 'currentLocalizedText')
|
|
504
|
+
* .first()
|
|
505
|
+
* ```
|
|
506
|
+
*
|
|
507
|
+
* @param passthroughOnStatement - where statement used for associations that require passthrough data
|
|
508
|
+
* @returns A cloned Query with the passthrough data
|
|
509
|
+
*/
|
|
510
|
+
passthrough(passthroughOnStatement: PassthroughOnClause<PassthroughColumnNames<DreamInstance>>): this;
|
|
511
|
+
/**
|
|
512
|
+
* Applies a where statement to the Query instance
|
|
513
|
+
*
|
|
514
|
+
* ```ts
|
|
515
|
+
* await User.where({ email: 'how@yadoin' }).first()
|
|
516
|
+
* // User{email: 'how@yadoin'}
|
|
517
|
+
* ```
|
|
518
|
+
*
|
|
519
|
+
* @param whereStatement - Where statement to apply to the Query
|
|
520
|
+
* @returns A cloned Query with the where clause applied
|
|
521
|
+
*/
|
|
522
|
+
where<DB extends DreamInstance['DB'], Schema extends DreamInstance['schema']>(whereStatement: WhereStatementForJoinedAssociation<QueryTypeOpts['joinedAssociations'], DB, Schema, QueryTypeOpts['rootTableName']> | null): Query<DreamInstance, QueryTypeOpts>;
|
|
523
|
+
/**
|
|
524
|
+
* Accepts a list of where statements, each of
|
|
525
|
+
* which is combined via `OR`
|
|
526
|
+
*
|
|
527
|
+
* ```ts
|
|
528
|
+
* await User.query().whereAny([{ email: 'how@yadoin' }, { name: 'fred' }]).first()
|
|
529
|
+
* // [User{email: 'how@yadoin'}, User{name: 'fred'}, User{name: 'fred'}]
|
|
530
|
+
* ```
|
|
531
|
+
*
|
|
532
|
+
* @param whereStatements - a list of where statements to `OR` together
|
|
533
|
+
* @returns A cloned Query with the whereAny clause applied
|
|
534
|
+
*/
|
|
535
|
+
whereAny<DB extends DreamInstance['DB'], Schema extends DreamInstance['schema']>(whereStatements: WhereStatementForJoinedAssociation<QueryTypeOpts['joinedAssociations'], DB, Schema, QueryTypeOpts['rootTableName']>[] | null): Query<DreamInstance, QueryTypeOpts>;
|
|
536
|
+
/**
|
|
537
|
+
* Applies a whereNot statement to the Query instance
|
|
538
|
+
*
|
|
539
|
+
* ```ts
|
|
540
|
+
* await User.query().whereNot({ email: 'how@yadoin' }).first()
|
|
541
|
+
* // User{email: 'hello@world'}
|
|
542
|
+
* ```
|
|
543
|
+
*
|
|
544
|
+
* @param whereStatement - A where statement to negate and apply to the Query
|
|
545
|
+
* @returns A cloned Query with the whereNot clause applied
|
|
546
|
+
*/
|
|
547
|
+
whereNot<DB extends DreamInstance['DB'], Schema extends DreamInstance['schema']>(whereStatement: WhereStatementForJoinedAssociation<QueryTypeOpts['joinedAssociations'], DB, Schema, QueryTypeOpts['rootTableName']> | null): Query<DreamInstance, QueryTypeOpts>;
|
|
548
|
+
/**
|
|
549
|
+
* @internal
|
|
550
|
+
*
|
|
551
|
+
* Applies a where clause
|
|
552
|
+
*/
|
|
553
|
+
private _where;
|
|
554
|
+
/**
|
|
555
|
+
* Returns a new Kysely SelectQueryBuilder instance to be used
|
|
556
|
+
* in a sub Query
|
|
557
|
+
*
|
|
558
|
+
* ```ts
|
|
559
|
+
* const records = await User.where({
|
|
560
|
+
* id: Post.query().nestedSelect('userId'),
|
|
561
|
+
* }).all()
|
|
562
|
+
* // [User{id: 1}, ...]
|
|
563
|
+
* ```
|
|
564
|
+
*
|
|
565
|
+
* @param selection - the column to use for your nested Query
|
|
566
|
+
* @returns A Kysely SelectQueryBuilder instance
|
|
567
|
+
*/
|
|
568
|
+
nestedSelect<SimpleFieldType extends keyof DreamColumnNames<DreamInstance>, PluckThroughFieldType>(this: Query<DreamInstance, QueryTypeOpts>, selection: SimpleFieldType | PluckThroughFieldType): SelectQueryBuilder<any, any, any>;
|
|
569
|
+
/**
|
|
570
|
+
* Returns a new Query instance, attaching the provided
|
|
571
|
+
* order statement
|
|
572
|
+
*
|
|
573
|
+
* ```ts
|
|
574
|
+
* await User.query().order('id').all()
|
|
575
|
+
* // [User{id: 1}, User{id: 2}, ...]
|
|
576
|
+
* ```
|
|
577
|
+
*
|
|
578
|
+
* ```ts
|
|
579
|
+
* await User.query().order({ name: 'asc', id: 'desc' }).all()
|
|
580
|
+
* // [User{name: 'a', id: 99}, User{name: 'a', id: 97}, User{ name: 'b', id: 98 } ...]
|
|
581
|
+
* ```
|
|
582
|
+
*
|
|
583
|
+
* @param orderStatement - Either a string or an object specifying order. If a string, the order is implicitly ascending. If the orderStatement is an object, statements will be provided in the order of the keys set in the object
|
|
584
|
+
* @returns A cloned Query with the order clause applied
|
|
585
|
+
*/
|
|
586
|
+
order<Q extends Query<DreamInstance, QueryTypeOpts>, DB extends DreamInstance['DB'], ColumnName extends ColumnNamesAccountingForJoinedAssociations<Q['queryTypeOpts']['joinedAssociations'], DB, QueryTypeOpts['rootTableName'], QueryTypeOpts['rootTableAlias']>>(arg: ColumnName | Partial<Record<ColumnName, OrderDir>> | null): this;
|
|
587
|
+
/**
|
|
588
|
+
* Returns a new Query instance, specifying a limit
|
|
589
|
+
*
|
|
590
|
+
* ```ts
|
|
591
|
+
* await User.order('id').limit(2).all()
|
|
592
|
+
* // [User{id: 1}, User{id: 2}]
|
|
593
|
+
* ```
|
|
594
|
+
*
|
|
595
|
+
* @returns A cloned Query with the limit clause applied
|
|
596
|
+
*/
|
|
597
|
+
limit(limit: number | null): Query<DreamInstance, QueryTypeOpts>;
|
|
598
|
+
/**
|
|
599
|
+
* Returns a new Query instance, specifying an offset
|
|
600
|
+
*
|
|
601
|
+
* ```ts
|
|
602
|
+
* await User.order('id').offset(2).limit(2).all()
|
|
603
|
+
* // [User{id: 3}, User{id: 4}]
|
|
604
|
+
* ```
|
|
605
|
+
*
|
|
606
|
+
* @returns A cloned Query with the offset clause applied
|
|
607
|
+
*/
|
|
608
|
+
offset(offset: number | null): Query<DreamInstance, QueryTypeOpts>;
|
|
609
|
+
/**
|
|
610
|
+
* Returns the sql that would be executed by this Query
|
|
611
|
+
*
|
|
612
|
+
* ```ts
|
|
613
|
+
* User.where({ email: 'how@yadoin' }).sql()
|
|
614
|
+
* // {
|
|
615
|
+
* // query: {
|
|
616
|
+
* // kind: 'SelectQueryNode',
|
|
617
|
+
* // from: { kind: 'FromNode', froms: [Array] },
|
|
618
|
+
* // selections: [ [Object] ],
|
|
619
|
+
* // distinctOn: undefined,
|
|
620
|
+
* // joins: undefined,
|
|
621
|
+
* // groupBy: undefined,
|
|
622
|
+
* // orderBy: undefined,
|
|
623
|
+
* // where: { kind: 'WhereNode', where: [Object] },
|
|
624
|
+
* // frontModifiers: undefined,
|
|
625
|
+
* // endModifiers: undefined,
|
|
626
|
+
* // limit: undefined,
|
|
627
|
+
* // offset: undefined,
|
|
628
|
+
* // with: undefined,
|
|
629
|
+
* // having: undefined,
|
|
630
|
+
* // explain: undefined,
|
|
631
|
+
* // setOperations: undefined
|
|
632
|
+
* // },
|
|
633
|
+
* // sql: 'select "users".* from "users" where ("users"."email" = $1 and "users"."deleted_at" is null)',
|
|
634
|
+
* // parameters: [ 'how@yadoin' ]
|
|
635
|
+
* //}
|
|
636
|
+
* ```
|
|
637
|
+
*
|
|
638
|
+
* @returns An object representing the underlying sql statement
|
|
639
|
+
*
|
|
640
|
+
*/
|
|
641
|
+
sql(): import("kysely").CompiledQuery<{
|
|
642
|
+
[x: string]: any;
|
|
643
|
+
}>;
|
|
644
|
+
/**
|
|
645
|
+
* Converts the given dream class into a Kysely query, enabling
|
|
646
|
+
* you to build custom queries using the Kysely API
|
|
647
|
+
*
|
|
648
|
+
* ```ts
|
|
649
|
+
* await User.query().toKysely('select').where('email', '=', 'how@yadoin').execute()
|
|
650
|
+
* ```
|
|
651
|
+
*
|
|
652
|
+
* @param type - the type of Kysely query builder instance you would like to obtain
|
|
653
|
+
* @returns A Kysely query. Depending on the type passed, it will return either a SelectQueryBuilder, DeleteQueryBuilder, or an UpdateQueryBuilder
|
|
654
|
+
*/
|
|
655
|
+
toKysely<QueryType extends 'select' | 'delete' | 'update', ToKyselyReturnType = QueryType extends 'select' ? SelectQueryBuilder<DreamInstance['DB'], DreamInstance['table'], unknown> : QueryType extends 'delete' ? DeleteQueryBuilder<DreamInstance['DB'], DreamInstance['table'], unknown> : QueryType extends 'update' ? UpdateQueryBuilder<DreamInstance['DB'], DreamInstance['table'], DreamInstance['table'], unknown> : never>(type: QueryType): ToKyselyReturnType;
|
|
656
|
+
/**
|
|
657
|
+
* Applies transaction to the Query instance
|
|
658
|
+
*
|
|
659
|
+
* ```ts
|
|
660
|
+
* await ApplicationModel.transaction(async txn => {
|
|
661
|
+
* await User.query().txn(txn).create({ email: 'how@yadoin' })
|
|
662
|
+
* })
|
|
663
|
+
* ```
|
|
664
|
+
*
|
|
665
|
+
* @param txn - A DreamTransaction instance (usually collected by calling `ApplicationModel.transaction`)
|
|
666
|
+
* @returns A cloned Query with the transaction applied
|
|
667
|
+
*
|
|
668
|
+
*/
|
|
669
|
+
txn(dreamTransaction: DreamTransaction<Dream>): this;
|
|
670
|
+
/**
|
|
671
|
+
* Retrieves the number of records in the database
|
|
672
|
+
*
|
|
673
|
+
* ```ts
|
|
674
|
+
* await User.query().count()
|
|
675
|
+
* ```
|
|
676
|
+
*
|
|
677
|
+
* @returns The number of records in the database
|
|
678
|
+
*/
|
|
679
|
+
count(): Promise<number>;
|
|
680
|
+
/**
|
|
681
|
+
* Returns new Query with distinct clause applied
|
|
682
|
+
*
|
|
683
|
+
* ```ts
|
|
684
|
+
* await User.query().distinct('name').pluck('name')
|
|
685
|
+
* ```
|
|
686
|
+
*
|
|
687
|
+
* @returns A cloned Query with the distinct clause applied
|
|
688
|
+
*/
|
|
689
|
+
distinct(column?: TableColumnNames<DreamInstance['DB'], DreamInstance['table']> | boolean): this;
|
|
690
|
+
/**
|
|
691
|
+
* @internal
|
|
692
|
+
*
|
|
693
|
+
* Returns a namespaced column name
|
|
694
|
+
*
|
|
695
|
+
* @returns A string
|
|
696
|
+
*/
|
|
697
|
+
private namespaceColumn;
|
|
698
|
+
/**
|
|
699
|
+
* Retrieves the max value of the specified column
|
|
700
|
+
* for this Query
|
|
701
|
+
*
|
|
702
|
+
* ```ts
|
|
703
|
+
* await User.query().max('id')
|
|
704
|
+
* // 99
|
|
705
|
+
* ```
|
|
706
|
+
*
|
|
707
|
+
* @param columnName - a column name on the model
|
|
708
|
+
* @returns the max value of the specified column for this Query
|
|
709
|
+
*
|
|
710
|
+
*/
|
|
711
|
+
max<Q extends Query<DreamInstance, QueryTypeOpts>, DB extends DreamInstance['DB'], ColumnName extends ColumnNamesAccountingForJoinedAssociations<Q['queryTypeOpts']['joinedAssociations'], DB, QueryTypeOpts['rootTableName'], QueryTypeOpts['rootTableAlias']>, ReturnType extends NamespacedOrBaseModelColumnTypes<[ColumnName], Q, DreamInstance>[0]>(columnName: ColumnName): Promise<ReturnType>;
|
|
712
|
+
/**
|
|
713
|
+
* Retrieves the min value of the specified column
|
|
714
|
+
* for this Query
|
|
715
|
+
*
|
|
716
|
+
* ```ts
|
|
717
|
+
* await User.query().min('id')
|
|
718
|
+
* // 1
|
|
719
|
+
* ```
|
|
720
|
+
*
|
|
721
|
+
* @param columnName - a column name on the model
|
|
722
|
+
* @returns the min value of the specified column for this Query
|
|
723
|
+
*/
|
|
724
|
+
min<Q extends Query<DreamInstance, QueryTypeOpts>, DB extends DreamInstance['DB'], ColumnName extends ColumnNamesAccountingForJoinedAssociations<Q['queryTypeOpts']['joinedAssociations'], DB, QueryTypeOpts['rootTableName'], QueryTypeOpts['rootTableAlias']>, ReturnType extends NamespacedOrBaseModelColumnTypes<[ColumnName], Q, DreamInstance>[0]>(columnName: ColumnName): Promise<ReturnType>;
|
|
725
|
+
/**
|
|
726
|
+
* @internal
|
|
727
|
+
*
|
|
728
|
+
* Runs the query and extracts plucked values
|
|
729
|
+
*
|
|
730
|
+
* @returns An array of plucked values
|
|
731
|
+
*/
|
|
732
|
+
private executePluck;
|
|
733
|
+
/**
|
|
734
|
+
* @internal
|
|
735
|
+
*
|
|
736
|
+
*/
|
|
737
|
+
private executeJoinLoad;
|
|
738
|
+
private fleshOutJoinLoadExecutionResults;
|
|
739
|
+
private hydratePreloadedThroughColumns;
|
|
740
|
+
/**
|
|
741
|
+
* Plucks the provided fields from the given dream class table
|
|
742
|
+
*
|
|
743
|
+
* ```ts
|
|
744
|
+
* await User.order('id').pluck('id')
|
|
745
|
+
* // [1, 2, 3]
|
|
746
|
+
* ```
|
|
747
|
+
*
|
|
748
|
+
* If more than one column is requested, a multi-dimensional
|
|
749
|
+
* array is returned:
|
|
750
|
+
*
|
|
751
|
+
* ```ts
|
|
752
|
+
* await User.order('id').pluck('id', 'email')
|
|
753
|
+
* // [[1, 'a@a.com'], [2, 'b@b.com']]
|
|
754
|
+
* ```
|
|
755
|
+
*
|
|
756
|
+
* @param columnNames - The column or array of columns to pluck
|
|
757
|
+
* @returns An array of pluck results
|
|
758
|
+
*/
|
|
759
|
+
pluck<Q extends Query<DreamInstance, QueryTypeOpts>, DB extends DreamInstance['DB'], const ColumnNames extends ColumnNamesAccountingForJoinedAssociations<Q['queryTypeOpts']['joinedAssociations'], DB, QueryTypeOpts['rootTableName'], QueryTypeOpts['rootTableAlias']>[], ReturnValue extends ColumnNames['length'] extends 1 ? NamespacedOrBaseModelColumnTypes<ColumnNames, Q, DreamInstance>[0][] : NamespacedOrBaseModelColumnTypes<ColumnNames, Q, DreamInstance>[]>(this: Q, ...columnNames: ColumnNames): Promise<ReturnValue>;
|
|
760
|
+
/**
|
|
761
|
+
* Plucks the specified column names from the given dream class table
|
|
762
|
+
* in batches, passing each found columns into the
|
|
763
|
+
* provided callback function
|
|
764
|
+
*
|
|
765
|
+
* ```ts
|
|
766
|
+
* await User.order('id').pluckEach('id', (id) => {
|
|
767
|
+
* console.log(id)
|
|
768
|
+
* })
|
|
769
|
+
* // 1
|
|
770
|
+
* // 2
|
|
771
|
+
* // 3
|
|
772
|
+
* ```
|
|
773
|
+
*
|
|
774
|
+
* @param args - a list of column names to pluck, followed by a callback function to call for each set of found fields
|
|
775
|
+
* @returns void
|
|
776
|
+
*/
|
|
777
|
+
pluckEach<Q extends Query<DreamInstance, QueryTypeOpts>, DB extends DreamInstance['DB'], const ColumnNames extends ColumnNamesAccountingForJoinedAssociations<Q['queryTypeOpts']['joinedAssociations'], DB, QueryTypeOpts['rootTableName'], QueryTypeOpts['rootTableAlias']>[], CbArgTypes extends NamespacedOrBaseModelColumnTypes<ColumnNames, Q, DreamInstance>>(this: Q, ...args: PluckEachArgs<ColumnNames, CbArgTypes>): Promise<void>;
|
|
778
|
+
/**
|
|
779
|
+
* Retrieves an array containing all records matching the Query.
|
|
780
|
+
* Be careful using this, since it will attempt to pull every
|
|
781
|
+
* record into memory at once. When querying might return a large
|
|
782
|
+
* number of records, consider using `.findEach`, which will pull
|
|
783
|
+
* the records in batches.
|
|
784
|
+
*
|
|
785
|
+
* ```ts
|
|
786
|
+
* await User.query().all()
|
|
787
|
+
* ```
|
|
788
|
+
*
|
|
789
|
+
* @returns an array of dreams
|
|
790
|
+
*/
|
|
791
|
+
all(options?: {
|
|
792
|
+
columns?: DreamColumnNames<DreamInstance>[];
|
|
793
|
+
}): Promise<DreamInstance[]>;
|
|
794
|
+
/**
|
|
795
|
+
* Forces use of a database connection (e.g. 'primary') during the query.
|
|
796
|
+
*
|
|
797
|
+
* NOTE: all queries within a transaction always use the 'primary' replica, so
|
|
798
|
+
* explicitly setting connection within a transaction has no effect.
|
|
799
|
+
*
|
|
800
|
+
* @param connection - The connection you wish to access ('primary' or 'replica')
|
|
801
|
+
* @returns A Query with the requested connection
|
|
802
|
+
*/
|
|
803
|
+
connection(connection: DbConnectionType): this;
|
|
804
|
+
private _connection;
|
|
805
|
+
/**
|
|
806
|
+
* Returns true if a record exists for the given
|
|
807
|
+
* Query
|
|
808
|
+
*
|
|
809
|
+
* ```ts
|
|
810
|
+
* await User.query().exists()
|
|
811
|
+
* // false
|
|
812
|
+
*
|
|
813
|
+
* await User.create({ email: 'how@yadoin' })
|
|
814
|
+
*
|
|
815
|
+
* await User.query().exists()
|
|
816
|
+
* // true
|
|
817
|
+
* ```
|
|
818
|
+
*
|
|
819
|
+
* @returns boolean
|
|
820
|
+
*/
|
|
821
|
+
exists(): Promise<boolean>;
|
|
822
|
+
/**
|
|
823
|
+
* Returns the first record in the database
|
|
824
|
+
* matching the Query. If the Query is not
|
|
825
|
+
* ordered, it will automatically order
|
|
826
|
+
* by primary key.
|
|
827
|
+
*
|
|
828
|
+
* ```ts
|
|
829
|
+
* await User.query().first()
|
|
830
|
+
* // User{id: 1}
|
|
831
|
+
* ```
|
|
832
|
+
*
|
|
833
|
+
* @returns First record in the database, or null if no record exists
|
|
834
|
+
*/
|
|
835
|
+
first(): Promise<DreamInstance | null>;
|
|
836
|
+
/**
|
|
837
|
+
* Returns the first record in the database
|
|
838
|
+
* matching the Query. If the Query is not
|
|
839
|
+
* ordered, it will automatically order
|
|
840
|
+
* by primary key. If no record is found,
|
|
841
|
+
* an exception is raised.
|
|
842
|
+
*
|
|
843
|
+
* ```ts
|
|
844
|
+
* await User.query().first()
|
|
845
|
+
* // User{id: 1}
|
|
846
|
+
* ```
|
|
847
|
+
*
|
|
848
|
+
* @returns First record in the database, or null if no record exists
|
|
849
|
+
*/
|
|
850
|
+
firstOrFail(): Promise<DreamInstance>;
|
|
851
|
+
/**
|
|
852
|
+
* Returns the last record in the database
|
|
853
|
+
* matching the Query. If the Query is not
|
|
854
|
+
* ordered, it will automatically order
|
|
855
|
+
* by primary key.
|
|
856
|
+
*
|
|
857
|
+
* ```ts
|
|
858
|
+
* await User.query().last()
|
|
859
|
+
* // User{id: 99}
|
|
860
|
+
* ```
|
|
861
|
+
*
|
|
862
|
+
* @returns Last record in the database, or null if no record exists
|
|
863
|
+
*/
|
|
864
|
+
last(): Promise<DreamInstance | null>;
|
|
865
|
+
/**
|
|
866
|
+
* Returns the last record in the database
|
|
867
|
+
* matching the Query. If the Query is not
|
|
868
|
+
* ordered, it will automatically order
|
|
869
|
+
* by primary key. If no record is found,
|
|
870
|
+
* it will raise an exception.
|
|
871
|
+
*
|
|
872
|
+
* ```ts
|
|
873
|
+
* await User.where(...).lastOrFail()
|
|
874
|
+
* // User{id: 99}
|
|
875
|
+
* ```
|
|
876
|
+
*
|
|
877
|
+
* @returns Last record in the database, or null if no record exists
|
|
878
|
+
*/
|
|
879
|
+
lastOrFail(): Promise<DreamInstance>;
|
|
880
|
+
/**
|
|
881
|
+
* Destroys all records matching the Query,
|
|
882
|
+
* calling model hooks and cascading destroy
|
|
883
|
+
* to associations with `dependent: 'destroy'`,
|
|
884
|
+
* and returns the number of records that
|
|
885
|
+
* were destroyed.
|
|
886
|
+
*
|
|
887
|
+
* To delete in a single database query,
|
|
888
|
+
* ignoring model hooks and association
|
|
889
|
+
* dependent-destroy declarations, use
|
|
890
|
+
* {@link Query.delete | delete} instead.
|
|
891
|
+
*
|
|
892
|
+
* ```ts
|
|
893
|
+
* await User.where({ email: ops.ilike('%burpcollaborator%') }).destroy()
|
|
894
|
+
* // 12
|
|
895
|
+
* ```
|
|
896
|
+
*
|
|
897
|
+
* @param options - Options for destroying the instance
|
|
898
|
+
* @param options.skipHooks - If true, skips applying model hooks during the destroy operation. Defaults to false
|
|
899
|
+
* @param options.cascade - If false, skips destroying associations marked `dependent: 'destroy'`. Defaults to true
|
|
900
|
+
* @param options.bypassAllDefaultScopes - If true, bypasses all default scopes when cascade destroying. Defaults to false
|
|
901
|
+
* @param options.defaultScopesToBypass - An array of default scope names to bypass when cascade destroying. Defaults to an empty array
|
|
902
|
+
* @returns The number of records that were removed
|
|
903
|
+
*/
|
|
904
|
+
destroy({ skipHooks, cascade, }?: {
|
|
905
|
+
skipHooks?: boolean;
|
|
906
|
+
cascade?: boolean;
|
|
907
|
+
}): Promise<number>;
|
|
908
|
+
/**
|
|
909
|
+
* Destroys all records matching the Query,
|
|
910
|
+
* ignoring the SoftDelete decorator and
|
|
911
|
+
* permanently removing records from the database.
|
|
912
|
+
*
|
|
913
|
+
* Calls model hooks and applies cascade destroy
|
|
914
|
+
* to associations with `dependent: 'destroy'`,
|
|
915
|
+
* returning the number of records that
|
|
916
|
+
* were destroyed.
|
|
917
|
+
*
|
|
918
|
+
* To destroy without bypassing the SoftDelete
|
|
919
|
+
* decorator, use {@link Query.(destroy:instance) | destroy} instead.
|
|
920
|
+
*
|
|
921
|
+
* ```ts
|
|
922
|
+
* await User.where({ email: ops.ilike('%burpcollaborator%') }).reallyDestroy()
|
|
923
|
+
* // 12
|
|
924
|
+
* ```
|
|
925
|
+
*
|
|
926
|
+
* @param options - Options for destroying the instance
|
|
927
|
+
* @param options.skipHooks - If true, skips applying model hooks during the destroy operation. Defaults to false
|
|
928
|
+
* @param options.cascade - If false, skips destroying associations marked `dependent: 'destroy'`. Defaults to true
|
|
929
|
+
* @param options.bypassAllDefaultScopes - If true, bypasses all default scopes when cascade destroying. Defaults to false
|
|
930
|
+
* @param options.defaultScopesToBypass - An array of default scope names to bypass when cascade destroying. Defaults to an empty array
|
|
931
|
+
* @returns The number of records that were removed
|
|
932
|
+
*/
|
|
933
|
+
reallyDestroy({ skipHooks, cascade, }?: {
|
|
934
|
+
skipHooks?: boolean;
|
|
935
|
+
cascade?: boolean;
|
|
936
|
+
}): Promise<number>;
|
|
937
|
+
/**
|
|
938
|
+
* Undestroys a SoftDelete model, unsetting
|
|
939
|
+
* the `deletedAt` field in the database.
|
|
940
|
+
*
|
|
941
|
+
* If the model is not a SoftDelete model,
|
|
942
|
+
* this will raise an exception.
|
|
943
|
+
*
|
|
944
|
+
* ```ts
|
|
945
|
+
* await User.where({ email: ops.ilike('%burpcollaborator%') }).undestroy()
|
|
946
|
+
* // 12
|
|
947
|
+
* ```
|
|
948
|
+
*
|
|
949
|
+
* @param options - Options for undestroying the instance
|
|
950
|
+
* @param options.skipHooks - If true, skips applying model hooks during the undestroy operation. Defaults to false
|
|
951
|
+
* @param options.cascade - If false, skips undestroying associations marked `dependent: 'destroy'`. Defaults to true
|
|
952
|
+
* @param options.bypassAllDefaultScopes - If true, bypasses all default scopes when cascade undestroying. Defaults to false
|
|
953
|
+
* @param options.defaultScopesToBypass - An array of default scope names to bypass when cascade undestroying (soft delete is always bypassed). Defaults to an empty array
|
|
954
|
+
* @returns The number of records that were removed
|
|
955
|
+
*/
|
|
956
|
+
undestroy({ cascade, skipHooks, }?: {
|
|
957
|
+
cascade?: boolean;
|
|
958
|
+
skipHooks?: boolean;
|
|
959
|
+
}): Promise<number>;
|
|
960
|
+
/**
|
|
961
|
+
* Deletes all records matching query using a single
|
|
962
|
+
* database query, but does not call underlying callbacks.
|
|
963
|
+
* Ignores association dependent destroy declarations,
|
|
964
|
+
* though cascading may still happen at the database level.
|
|
965
|
+
*
|
|
966
|
+
* To apply model hooks and association dependent destroy,
|
|
967
|
+
* use {@link Query.(destroy:instance) | destroy} instead.
|
|
968
|
+
*
|
|
969
|
+
* ```ts
|
|
970
|
+
* await User.where({ email: ops.ilike('%burpcollaborator%').delete() })
|
|
971
|
+
* // 12
|
|
972
|
+
* ```
|
|
973
|
+
*
|
|
974
|
+
* @returns The number of records that were removed
|
|
975
|
+
*/
|
|
976
|
+
delete(): Promise<number>;
|
|
977
|
+
/**
|
|
978
|
+
* Updates all records matching the Query
|
|
979
|
+
*
|
|
980
|
+
* ```ts
|
|
981
|
+
* await User.where({ email: ops.ilike('%burpcollaborator%') }).updateAll({ email: null })
|
|
982
|
+
* // 12
|
|
983
|
+
* ```
|
|
984
|
+
* @param attributes - The attributes used to update the records
|
|
985
|
+
* @param options - Options for updating the instance
|
|
986
|
+
* @param options.skipHooks - If true, skips applying model hooks. Defaults to false
|
|
987
|
+
* @returns The number of records that were updated
|
|
988
|
+
*/
|
|
989
|
+
update(attributes: DreamTableSchema<DreamInstance>, { skipHooks }?: {
|
|
990
|
+
skipHooks?: boolean;
|
|
991
|
+
}): Promise<number>;
|
|
992
|
+
private updateWithoutCallingModelHooks;
|
|
993
|
+
/**
|
|
994
|
+
* @internal
|
|
995
|
+
*
|
|
996
|
+
* Used for applying first and last queries
|
|
997
|
+
*
|
|
998
|
+
* @returns A dream instance or null
|
|
999
|
+
*/
|
|
1000
|
+
private takeOne;
|
|
1001
|
+
/**
|
|
1002
|
+
* @internal
|
|
1003
|
+
*
|
|
1004
|
+
* Used to hydrate dreams with the provided associations
|
|
1005
|
+
*/
|
|
1006
|
+
private hydrateAssociation;
|
|
1007
|
+
/**
|
|
1008
|
+
* @internal
|
|
1009
|
+
*
|
|
1010
|
+
* Used to bridge through associations
|
|
1011
|
+
*/
|
|
1012
|
+
private followThroughAssociation;
|
|
1013
|
+
/**
|
|
1014
|
+
* @internal
|
|
1015
|
+
*
|
|
1016
|
+
* Polymorphic BelongsTo. Since polymorphic associations may point to multiple tables,
|
|
1017
|
+
* preload by loading each target class separately.
|
|
1018
|
+
*
|
|
1019
|
+
* Used to preload polymorphic belongs to associations
|
|
1020
|
+
*/
|
|
1021
|
+
private preloadPolymorphicBelongsTo;
|
|
1022
|
+
private preloadPolymorphicAssociationModel;
|
|
1023
|
+
/**
|
|
1024
|
+
* @internal
|
|
1025
|
+
*
|
|
1026
|
+
* Applies a preload statement
|
|
1027
|
+
*/
|
|
1028
|
+
private applyOnePreload;
|
|
1029
|
+
/**
|
|
1030
|
+
* @internal
|
|
1031
|
+
*
|
|
1032
|
+
* Used by loadBuider
|
|
1033
|
+
*/
|
|
1034
|
+
private hydratePreload;
|
|
1035
|
+
/**
|
|
1036
|
+
* @internal
|
|
1037
|
+
*
|
|
1038
|
+
* Applies a preload statement
|
|
1039
|
+
*/
|
|
1040
|
+
private applyPreload;
|
|
1041
|
+
/**
|
|
1042
|
+
* @internal
|
|
1043
|
+
*
|
|
1044
|
+
* retrieves on statements that can be applied to a preload
|
|
1045
|
+
*/
|
|
1046
|
+
private applyablePreloadOnStatements;
|
|
1047
|
+
private conditionallyApplyDefaultScopes;
|
|
1048
|
+
private joinsBridgeThroughAssociations;
|
|
1049
|
+
private applyOneJoin;
|
|
1050
|
+
private applyAssociationOnStatementsToJoinStatement;
|
|
1051
|
+
private conditionallyApplyDefaultScopesDependentOnAssociation;
|
|
1052
|
+
private distinctColumnNameForAssociation;
|
|
1053
|
+
private recursivelyJoin;
|
|
1054
|
+
private throwUnlessAllRequiredWhereClausesProvided;
|
|
1055
|
+
private applyOrderStatementForAssociation;
|
|
1056
|
+
private inArrayWithNull_or_notInArrayWithoutNull_ExpressionBuilder;
|
|
1057
|
+
private inArrayWithoutNullExpressionBuilder;
|
|
1058
|
+
private notInArrayWithNullExpressionBuilder;
|
|
1059
|
+
private whereStatementToExpressionWrapper;
|
|
1060
|
+
private dreamWhereStatementToExpressionBuilderParts;
|
|
1061
|
+
private applyJoinOnStatements;
|
|
1062
|
+
private _applyJoinOnStatements;
|
|
1063
|
+
private _applyJoinOnAnyStatements;
|
|
1064
|
+
private joinOnStatementToExpressionWrapper;
|
|
1065
|
+
private buildCommon;
|
|
1066
|
+
private checkForQueryViolations;
|
|
1067
|
+
private aliasWhereStatements;
|
|
1068
|
+
private aliasWhereStatement;
|
|
1069
|
+
private rawifiedSelfOnClause;
|
|
1070
|
+
private buildDelete;
|
|
1071
|
+
private buildSelect;
|
|
1072
|
+
private columnsWithRequiredLoadColumns;
|
|
1073
|
+
private buildUpdate;
|
|
1074
|
+
private attachLimitAndOrderStatementsToNonSelectQuery;
|
|
1075
|
+
private get hasSimilarityClauses();
|
|
1076
|
+
private similarityStatementBuilder;
|
|
1077
|
+
private conditionallyAttachSimilarityColumnsToSelect;
|
|
1078
|
+
private conditionallyAttachSimilarityColumnsToUpdate;
|
|
1079
|
+
private invertOrder;
|
|
1080
|
+
}
|
|
1081
|
+
export interface QueryOpts<DreamInstance extends Dream, ColumnType extends DreamColumnNames<DreamInstance> = DreamColumnNames<DreamInstance>, Schema extends DreamInstance['schema'] = DreamInstance['schema'], DB extends DreamInstance['DB'] = DreamInstance['DB'], PassthroughColumns extends PassthroughColumnNames<DreamInstance> = PassthroughColumnNames<DreamInstance>> {
|
|
1082
|
+
baseSqlAlias?: TableOrAssociationName<Schema>;
|
|
1083
|
+
baseSelectQuery?: Query<any, any> | null;
|
|
1084
|
+
passthroughOnStatement?: PassthroughOnClause<PassthroughColumns> | null;
|
|
1085
|
+
where?: readonly WhereStatement<DB, Schema, any>[] | null;
|
|
1086
|
+
whereNot?: readonly WhereStatement<DB, Schema, any>[] | null;
|
|
1087
|
+
limit?: LimitStatement | null;
|
|
1088
|
+
offset?: OffsetStatement | null;
|
|
1089
|
+
or?: WhereStatement<DB, Schema, any>[][] | null;
|
|
1090
|
+
order?: OrderQueryStatement<ColumnType>[] | null;
|
|
1091
|
+
loadFromJoins?: boolean;
|
|
1092
|
+
preloadStatements?: RelaxedPreloadStatement;
|
|
1093
|
+
preloadOnStatements?: RelaxedPreloadOnStatement<DB, Schema>;
|
|
1094
|
+
distinctColumn?: ColumnType | null;
|
|
1095
|
+
innerJoinDreamClasses?: readonly (typeof Dream)[];
|
|
1096
|
+
innerJoinStatements?: RelaxedJoinStatement;
|
|
1097
|
+
innerJoinOnStatements?: RelaxedJoinOnStatement<DB, Schema>;
|
|
1098
|
+
leftJoinStatements?: RelaxedJoinStatement;
|
|
1099
|
+
leftJoinOnStatements?: RelaxedJoinOnStatement<DB, Schema>;
|
|
1100
|
+
bypassAllDefaultScopes?: boolean;
|
|
1101
|
+
bypassAllDefaultScopesExceptOnAssociations?: boolean;
|
|
1102
|
+
defaultScopesToBypass?: AllDefaultScopeNames<DreamInstance>[];
|
|
1103
|
+
defaultScopesToBypassExceptOnAssociations?: DefaultScopeName<DreamInstance>[];
|
|
1104
|
+
transaction?: DreamTransaction<Dream> | null | undefined;
|
|
1105
|
+
connection?: DbConnectionType;
|
|
1106
|
+
shouldReallyDestroy?: boolean;
|
|
1107
|
+
}
|
|
1108
|
+
export interface PreloadedDreamsAndWhatTheyPointTo {
|
|
1109
|
+
dream: Dream;
|
|
1110
|
+
pointsToPrimaryKey: IdType;
|
|
1111
|
+
}
|
|
1112
|
+
export interface FindEachOpts {
|
|
1113
|
+
batchSize?: number;
|
|
1114
|
+
}
|
|
1115
|
+
export type ExtendQueryType<OriginalOpts extends Readonly<QueryTypeOptions>, Opts extends Readonly<Partial<QueryTypeOptions>>> = Readonly<{
|
|
1116
|
+
joinedAssociations: Opts['joinedAssociations'] extends Readonly<JoinedAssociation[]> ? Readonly<[...OriginalOpts['joinedAssociations'], ...Opts['joinedAssociations']]> : OriginalOpts['joinedAssociations'];
|
|
1117
|
+
rootTableName: OriginalOpts['rootTableName'];
|
|
1118
|
+
rootTableAlias: OriginalOpts['rootTableAlias'];
|
|
1119
|
+
allowPreload: Opts['allowPreload'] extends false ? false : OriginalOpts['allowPreload'];
|
|
1120
|
+
allowLeftJoinPreload: Opts['allowLeftJoinPreload'] extends false ? false : OriginalOpts['allowLeftJoinPreload'];
|
|
1121
|
+
}>;
|
|
1122
|
+
export type NamespacedColumnType<ColumnName, Q extends Query<any, any>, DreamInstance extends Dream, JoinedAssociationsArr = Q['queryTypeOpts']['joinedAssociations'], AssociationName = ColumnName extends `${infer Name extends string}.${string}` ? Name : never, RealColumnName = ColumnName extends `${string}.${infer Col extends string}` ? Col : never, JoinedAssociation extends FindInterfaceWithValue<JoinedAssociationsArr, 'alias', AssociationName> = FindInterfaceWithValue<JoinedAssociationsArr, 'alias', AssociationName>, JoinedTable = JoinedAssociation['table'] extends never ? DreamInstance['table'] : JoinedAssociation['table'], ReturnType = TableColumnType<DreamInstance['schema'], JoinedTable, RealColumnName>> = ReturnType;
|
|
1123
|
+
type NamespacedColumnTypes<ColumnNames, Q extends Query<any, any>, DreamInstance extends Dream> = ColumnNames extends Readonly<[infer First, ...infer Rest]> ? [
|
|
1124
|
+
NamespacedColumnType<First, Q, DreamInstance>,
|
|
1125
|
+
...NamespacedColumnTypes<Readonly<Rest>, Q, DreamInstance>
|
|
1126
|
+
] : [];
|
|
1127
|
+
export type BaseModelColumnTypes<ColumnNames, DreamInstance extends Dream> = ColumnNames extends Readonly<[infer First, ...infer Rest]> ? [
|
|
1128
|
+
TableColumnType<DreamInstance['schema'], DreamInstance['table'], First>,
|
|
1129
|
+
...BaseModelColumnTypes<Readonly<Rest>, DreamInstance>
|
|
1130
|
+
] : [];
|
|
1131
|
+
export type NamespacedOrBaseModelColumnTypes<ColumnNames, Q extends Query<any, any>, DreamInstance extends Dream> = Q['queryTypeOpts']['joinedAssociations']['length'] extends 0 ? BaseModelColumnTypes<ColumnNames, DreamInstance> : NamespacedColumnTypes<ColumnNames, Q, DreamInstance>;
|
|
1132
|
+
export {};
|