@rvoh/dream 2.29.0 → 2.30.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (208) hide show
  1. package/dist/cjs/src/Dream.js +1 -1
  2. package/dist/cjs/src/decorators/field/sortable/helpers/setPosition.js +11 -2
  3. package/dist/cjs/src/dream/DreamInstanceTransactionBuilder.js +1 -1
  4. package/dist/cjs/src/dream/QueryDriver/Kysely.js +69 -32
  5. package/dist/cjs/src/dream/internal/associations/loadedOrLoadAssociation.js +2 -0
  6. package/dist/cjs/src/dream/internal/installPersistedAttribute.js +9 -0
  7. package/dist/cjs/src/dream/internal/instanceMutationOptions.js +1 -0
  8. package/dist/cjs/src/errors/associations/IncompatibleThroughAssociationTarget.js +11 -0
  9. package/dist/esm/src/Dream.js +1 -1
  10. package/dist/esm/src/decorators/field/sortable/helpers/setPosition.js +11 -2
  11. package/dist/esm/src/dream/DreamInstanceTransactionBuilder.js +1 -1
  12. package/dist/esm/src/dream/QueryDriver/Kysely.js +69 -32
  13. package/dist/esm/src/dream/internal/associations/loadedOrLoadAssociation.js +2 -0
  14. package/dist/esm/src/dream/internal/installPersistedAttribute.js +9 -0
  15. package/dist/esm/src/dream/internal/instanceMutationOptions.js +1 -0
  16. package/dist/esm/src/errors/associations/IncompatibleThroughAssociationTarget.js +11 -0
  17. package/dist/types/src/Dream.d.ts +36 -24
  18. package/dist/types/src/dream/DreamInstanceTransactionBuilder.d.ts +14 -20
  19. package/dist/types/src/dream/QueryDriver/Kysely.d.ts +1 -1
  20. package/dist/types/src/dream/internal/associations/loadedOrLoadAssociation.d.ts +2 -0
  21. package/dist/types/src/dream/internal/installPersistedAttribute.d.ts +6 -0
  22. package/dist/types/src/dream/internal/instanceMutationOptions.d.ts +13 -0
  23. package/dist/types/src/errors/associations/IncompatibleThroughAssociationTarget.d.ts +9 -0
  24. package/docs/classes/db.DreamMigrationHelpers.html +11 -11
  25. package/docs/classes/db.KyselyQueryDriver.html +43 -43
  26. package/docs/classes/db.PostgresQueryDriver.html +44 -44
  27. package/docs/classes/db.QueryDriverBase.html +42 -42
  28. package/docs/classes/errors.CheckConstraintViolation.html +3 -3
  29. package/docs/classes/errors.ColumnOverflow.html +3 -3
  30. package/docs/classes/errors.CreateOrFindByFailedToCreateAndFind.html +3 -3
  31. package/docs/classes/errors.DataIncompatibleWithDatabaseField.html +3 -3
  32. package/docs/classes/errors.DataTypeColumnTypeMismatch.html +3 -3
  33. package/docs/classes/errors.DecryptionError.html +2 -2
  34. package/docs/classes/errors.DecryptionParseError.html +2 -2
  35. package/docs/classes/errors.DecryptionRotationError.html +3 -3
  36. package/docs/classes/errors.GlobalNameNotSet.html +3 -3
  37. package/docs/classes/errors.InvalidCalendarDate.html +2 -2
  38. package/docs/classes/errors.InvalidClockTime.html +2 -2
  39. package/docs/classes/errors.InvalidClockTimeTz.html +2 -2
  40. package/docs/classes/errors.InvalidDateTime.html +2 -2
  41. package/docs/classes/errors.MissingSerializersDefinition.html +3 -3
  42. package/docs/classes/errors.NonLoadedAssociation.html +3 -3
  43. package/docs/classes/errors.NotNullViolation.html +3 -3
  44. package/docs/classes/errors.RecordNotFound.html +3 -3
  45. package/docs/classes/errors.SortableBatchRequiresTooManyScopeLocks.html +3 -3
  46. package/docs/classes/errors.SortableScopeDidNotStabilize.html +3 -3
  47. package/docs/classes/errors.SortableScopeLockWaitTimedOut.html +3 -3
  48. package/docs/classes/errors.ValidationError.html +3 -3
  49. package/docs/classes/index.CalendarDate.html +33 -33
  50. package/docs/classes/index.ClockTime.html +32 -32
  51. package/docs/classes/index.ClockTimeTz.html +35 -35
  52. package/docs/classes/index.DateTime.html +86 -86
  53. package/docs/classes/index.Decorators.html +19 -19
  54. package/docs/classes/index.Dream.html +145 -141
  55. package/docs/classes/index.DreamApp.html +10 -10
  56. package/docs/classes/index.DreamTransaction.html +2 -2
  57. package/docs/classes/index.Env.html +2 -2
  58. package/docs/classes/index.Query.html +65 -65
  59. package/docs/classes/system.CliFileWriter.html +4 -4
  60. package/docs/classes/system.DreamBin.html +2 -2
  61. package/docs/classes/system.DreamCLI.html +7 -7
  62. package/docs/classes/system.DreamImporter.html +2 -2
  63. package/docs/classes/system.DreamLogos.html +2 -2
  64. package/docs/classes/system.DreamSerializerBuilder.html +11 -11
  65. package/docs/classes/system.ObjectSerializerBuilder.html +8 -8
  66. package/docs/classes/system.PathHelpers.html +3 -3
  67. package/docs/classes/utils.Encrypt.html +3 -3
  68. package/docs/classes/utils.Range.html +2 -2
  69. package/docs/functions/db.closeAllDbConnections.html +1 -1
  70. package/docs/functions/db.dreamDbConnections.html +1 -1
  71. package/docs/functions/db.untypedDb.html +1 -1
  72. package/docs/functions/db.validateColumn.html +1 -1
  73. package/docs/functions/db.validateTable.html +1 -1
  74. package/docs/functions/errors.pgErrorType.html +1 -1
  75. package/docs/functions/index.DreamSerializer.html +1 -1
  76. package/docs/functions/index.ObjectSerializer.html +1 -1
  77. package/docs/functions/index.ReplicaSafe.html +1 -1
  78. package/docs/functions/index.STI.html +1 -1
  79. package/docs/functions/index.SoftDelete.html +1 -1
  80. package/docs/functions/utils.camelize.html +1 -1
  81. package/docs/functions/utils.capitalize.html +1 -1
  82. package/docs/functions/utils.cloneDeepSafe.html +1 -1
  83. package/docs/functions/utils.compact.html +1 -1
  84. package/docs/functions/utils.groupBy.html +1 -1
  85. package/docs/functions/utils.hyphenize.html +1 -1
  86. package/docs/functions/utils.intersection.html +1 -1
  87. package/docs/functions/utils.isEmpty.html +1 -1
  88. package/docs/functions/utils.normalizeUnicode.html +1 -1
  89. package/docs/functions/utils.pascalize.html +1 -1
  90. package/docs/functions/utils.percent.html +1 -1
  91. package/docs/functions/utils.range.html +1 -1
  92. package/docs/functions/utils.round.html +1 -1
  93. package/docs/functions/utils.sanitizeString.html +1 -1
  94. package/docs/functions/utils.snakeify.html +1 -1
  95. package/docs/functions/utils.sort.html +1 -1
  96. package/docs/functions/utils.sortBy.html +1 -1
  97. package/docs/functions/utils.sortObjectByKey.html +1 -1
  98. package/docs/functions/utils.sortObjectByValue.html +1 -1
  99. package/docs/functions/utils.uncapitalize.html +1 -1
  100. package/docs/functions/utils.uniq.html +1 -1
  101. package/docs/interfaces/openapi.OpenapiDescription.html +2 -2
  102. package/docs/interfaces/openapi.OpenapiSchemaProperties.html +1 -1
  103. package/docs/interfaces/openapi.OpenapiSchemaPropertiesShorthand.html +1 -1
  104. package/docs/interfaces/openapi.OpenapiTypeFieldObject.html +1 -1
  105. package/docs/interfaces/types.BelongsToStatement.html +2 -2
  106. package/docs/interfaces/types.DecoratorContext.html +2 -2
  107. package/docs/interfaces/types.DreamAppInitOptions.html +2 -2
  108. package/docs/interfaces/types.DreamAppOpts.html +2 -2
  109. package/docs/interfaces/types.DreamDbConfig.html +5 -5
  110. package/docs/interfaces/types.DurationObject.html +2 -2
  111. package/docs/interfaces/types.EncryptOptions.html +2 -2
  112. package/docs/interfaces/types.InternalAnyTypedSerializerRendersMany.html +2 -2
  113. package/docs/interfaces/types.InternalAnyTypedSerializerRendersOne.html +2 -2
  114. package/docs/interfaces/types.SerializerRendererOpts.html +2 -2
  115. package/docs/types/openapi.CommonOpenapiSchemaObjectFields.html +1 -1
  116. package/docs/types/openapi.OpenapiAllTypes.html +1 -1
  117. package/docs/types/openapi.OpenapiFormats.html +1 -1
  118. package/docs/types/openapi.OpenapiNumberFormats.html +1 -1
  119. package/docs/types/openapi.OpenapiPrimitiveBaseTypes.html +1 -1
  120. package/docs/types/openapi.OpenapiPrimitiveTypes.html +1 -1
  121. package/docs/types/openapi.OpenapiSchemaArray.html +1 -1
  122. package/docs/types/openapi.OpenapiSchemaArrayShorthand.html +1 -1
  123. package/docs/types/openapi.OpenapiSchemaBase.html +1 -1
  124. package/docs/types/openapi.OpenapiSchemaBody.html +1 -1
  125. package/docs/types/openapi.OpenapiSchemaBodyShorthand.html +1 -1
  126. package/docs/types/openapi.OpenapiSchemaCommonFields.html +1 -1
  127. package/docs/types/openapi.OpenapiSchemaExpressionAllOf.html +2 -2
  128. package/docs/types/openapi.OpenapiSchemaExpressionAnyOf.html +2 -2
  129. package/docs/types/openapi.OpenapiSchemaExpressionOneOf.html +2 -2
  130. package/docs/types/openapi.OpenapiSchemaExpressionRef.html +2 -2
  131. package/docs/types/openapi.OpenapiSchemaExpressionRefSchemaShorthand.html +2 -2
  132. package/docs/types/openapi.OpenapiSchemaInteger.html +1 -1
  133. package/docs/types/openapi.OpenapiSchemaNull.html +2 -2
  134. package/docs/types/openapi.OpenapiSchemaNumber.html +1 -1
  135. package/docs/types/openapi.OpenapiSchemaObject.html +1 -1
  136. package/docs/types/openapi.OpenapiSchemaObjectAllOf.html +1 -1
  137. package/docs/types/openapi.OpenapiSchemaObjectAllOfShorthand.html +1 -1
  138. package/docs/types/openapi.OpenapiSchemaObjectAnyOf.html +1 -1
  139. package/docs/types/openapi.OpenapiSchemaObjectAnyOfShorthand.html +1 -1
  140. package/docs/types/openapi.OpenapiSchemaObjectBase.html +1 -1
  141. package/docs/types/openapi.OpenapiSchemaObjectBaseShorthand.html +1 -1
  142. package/docs/types/openapi.OpenapiSchemaObjectOneOf.html +1 -1
  143. package/docs/types/openapi.OpenapiSchemaObjectOneOfShorthand.html +1 -1
  144. package/docs/types/openapi.OpenapiSchemaObjectShorthand.html +1 -1
  145. package/docs/types/openapi.OpenapiSchemaPrimitiveGeneric.html +1 -1
  146. package/docs/types/openapi.OpenapiSchemaShorthandExpressionAllOf.html +2 -2
  147. package/docs/types/openapi.OpenapiSchemaShorthandExpressionAnyOf.html +2 -2
  148. package/docs/types/openapi.OpenapiSchemaShorthandExpressionOneOf.html +2 -2
  149. package/docs/types/openapi.OpenapiSchemaShorthandExpressionSerializableRef.html +2 -2
  150. package/docs/types/openapi.OpenapiSchemaShorthandExpressionSerializerRef.html +2 -2
  151. package/docs/types/openapi.OpenapiSchemaShorthandPrimitiveGeneric.html +1 -1
  152. package/docs/types/openapi.OpenapiSchemaString.html +1 -1
  153. package/docs/types/openapi.OpenapiShorthandAllTypes.html +1 -1
  154. package/docs/types/openapi.OpenapiShorthandPrimitiveBaseTypes.html +1 -1
  155. package/docs/types/openapi.OpenapiShorthandPrimitiveTypes.html +1 -1
  156. package/docs/types/openapi.OpenapiTypeField.html +1 -1
  157. package/docs/types/system.DreamAppAllowedPackageManagersEnum.html +1 -1
  158. package/docs/types/types.CalendarDateDurationUnit.html +1 -1
  159. package/docs/types/types.CalendarDateObject.html +1 -1
  160. package/docs/types/types.Camelized.html +1 -1
  161. package/docs/types/types.ClockTimeObject.html +1 -1
  162. package/docs/types/types.DbConnectionType.html +1 -1
  163. package/docs/types/types.DbTypes.html +1 -1
  164. package/docs/types/types.DreamAssociationMetadata.html +1 -1
  165. package/docs/types/types.DreamAttributes.html +1 -1
  166. package/docs/types/types.DreamClassAssociationAndStatement.html +1 -1
  167. package/docs/types/types.DreamClassColumn.html +1 -1
  168. package/docs/types/types.DreamColumn.html +1 -1
  169. package/docs/types/types.DreamColumnNames.html +1 -1
  170. package/docs/types/types.DreamLogLevel.html +1 -1
  171. package/docs/types/types.DreamLogger.html +2 -2
  172. package/docs/types/types.DreamModelSerializerType.html +1 -1
  173. package/docs/types/types.DreamOrViewModelClassSerializerKey.html +1 -1
  174. package/docs/types/types.DreamOrViewModelSerializerKey.html +1 -1
  175. package/docs/types/types.DreamParamSafeAttributes.html +1 -1
  176. package/docs/types/types.DreamParamSafeColumnNames.html +1 -1
  177. package/docs/types/types.DreamSerializable.html +1 -1
  178. package/docs/types/types.DreamSerializableArray.html +1 -1
  179. package/docs/types/types.DreamSerializerKey.html +1 -1
  180. package/docs/types/types.DreamSerializers.html +1 -1
  181. package/docs/types/types.DreamVirtualColumns.html +1 -1
  182. package/docs/types/types.DurationUnit.html +1 -1
  183. package/docs/types/types.EncryptAlgorithm.html +1 -1
  184. package/docs/types/types.HasManyStatement.html +1 -1
  185. package/docs/types/types.HasOneStatement.html +1 -1
  186. package/docs/types/types.Hyphenized.html +1 -1
  187. package/docs/types/types.Pascalized.html +1 -1
  188. package/docs/types/types.PrimaryKeyType.html +1 -1
  189. package/docs/types/types.RoundingPrecision.html +1 -1
  190. package/docs/types/types.SerializerCasing.html +1 -1
  191. package/docs/types/types.SimpleObjectSerializerType.html +1 -1
  192. package/docs/types/types.Snakeified.html +1 -1
  193. package/docs/types/types.StrictInterface.html +1 -1
  194. package/docs/types/types.UpdateableAssociationProperties.html +1 -1
  195. package/docs/types/types.UpdateableProperties.html +1 -1
  196. package/docs/types/types.ValidationType.html +1 -1
  197. package/docs/types/types.ViewModel.html +2 -2
  198. package/docs/types/types.ViewModelClass.html +1 -1
  199. package/docs/types/types.WeekdayName.html +1 -1
  200. package/docs/types/types.WhereStatementForDream.html +1 -1
  201. package/docs/types/types.WhereStatementForDreamClass.html +1 -1
  202. package/docs/variables/index.DreamConst.html +1 -1
  203. package/docs/variables/index.ops.html +1 -1
  204. package/docs/variables/openapi.openapiPrimitiveTypes.html +1 -1
  205. package/docs/variables/openapi.openapiShorthandPrimitiveTypes.html +1 -1
  206. package/docs/variables/system.DreamAppAllowedPackageManagersEnumValues.html +1 -1
  207. package/docs/variables/system.primaryKeyTypes.html +1 -1
  208. package/package.json +1 -1
@@ -2,7 +2,7 @@ import { CompiledQuery, Selectable } from 'kysely';
2
2
  import DreamClassTransactionBuilder from './dream/DreamClassTransactionBuilder.js';
3
3
  import DreamInstanceTransactionBuilder from './dream/DreamInstanceTransactionBuilder.js';
4
4
  import DreamTransaction from './dream/DreamTransaction.js';
5
- import { DestroyOptions } from './dream/internal/destroyOptions.js';
5
+ import type { InstanceDestroyOptions, InstanceUpdateOptions } from './dream/internal/instanceMutationOptions.js';
6
6
  import LeftJoinLoadBuilder from './dream/LeftJoinLoadBuilder.js';
7
7
  import LoadBuilder from './dream/LoadBuilder.js';
8
8
  import Query from './dream/Query.js';
@@ -2478,7 +2478,7 @@ export default class Dream {
2478
2478
  * @param options.defaultScopesToBypass - An array of default scope names to bypass when cascade destroying. Defaults to an empty array
2479
2479
  * @returns The instance that was destroyed
2480
2480
  */
2481
- destroy<I extends Dream>(this: I, options?: DestroyOptions<I>): Promise<I>;
2481
+ destroy<I extends Dream>(this: I, options?: InstanceDestroyOptions<I>): Promise<I>;
2482
2482
  /**
2483
2483
  * Deletes the record represented by this instance
2484
2484
  * from the database, calling any destroy
@@ -2501,7 +2501,7 @@ export default class Dream {
2501
2501
  * @param options.defaultScopesToBypass - An array of default scope names to bypass when cascade destroying. Defaults to an empty array
2502
2502
  * @returns The instance that was destroyed
2503
2503
  */
2504
- reallyDestroy<I extends Dream>(this: I, options?: DestroyOptions<I>): Promise<I>;
2504
+ reallyDestroy<I extends Dream>(this: I, options?: InstanceDestroyOptions<I>): Promise<I>;
2505
2505
  /**
2506
2506
  * Undestroys a SoftDelete model, unsetting
2507
2507
  * the `deletedAt` field in the database.
@@ -2521,7 +2521,7 @@ export default class Dream {
2521
2521
  * @param options.defaultScopesToBypass - An array of default scope names to bypass when cascade undestroying (soft delete is always bypassed). Defaults to an empty array
2522
2522
  * @returns The undestroyed record
2523
2523
  */
2524
- undestroy<I extends Dream>(this: I, options?: DestroyOptions<I>): Promise<I>;
2524
+ undestroy<I extends Dream>(this: I, options?: InstanceDestroyOptions<I>): Promise<I>;
2525
2525
  /**
2526
2526
  * Returns true if the argument is the same Dream class
2527
2527
  * with the same primary key value.
@@ -2565,23 +2565,21 @@ export default class Dream {
2565
2565
  * @returns The created association
2566
2566
  */
2567
2567
  createAssociation<I extends Dream, AssociationName extends DreamAssociationNames<I>, PossibleArrayAssociationType extends I[AssociationName & keyof I], AssociationType extends PossibleArrayAssociationType extends (infer ElementType)[] ? ElementType : PossibleArrayAssociationType, RestrictedAssociationType extends AssociationType extends Dream ? AssociationType : never>(this: I, associationName: AssociationName, attributes?: UpdateableAssociationProperties<I, RestrictedAssociationType>): Promise<NonNullable<AssociationType>>;
2568
- destroyAssociation<I extends Dream, DB extends I['DB'], TableName extends I['table'], Schema extends I['schema'], AssociationName extends DreamAssociationNamesWithRequiredOnClauses<I>, RequiredOnClauseKeysForThisAssociation extends RequiredOnClauseKeys<Schema, TableName, AssociationName>, AssociationDream extends AssociationNameToDream<I, AssociationName>, AssociationTableName extends AssociationDream['table']>(this: I, associationName: AssociationName, options: DestroyOptions<I> & JoinAndStatements<I, DB, Schema, AssociationTableName, RequiredOnClauseKeysForThisAssociation>): Promise<number>;
2569
- destroyAssociation<I extends Dream, DB extends I['DB'], Schema extends I['schema'], AssociationName extends DreamAssociationNamesWithoutRequiredOnClauses<I>, AssociationDream extends AssociationNameToDream<I, AssociationName>, AssociationTableName extends AssociationDream['table']>(this: I, associationName: AssociationName, options?: DestroyOptions<I> & JoinAndStatements<I, DB, Schema, AssociationTableName, null>): Promise<number>;
2570
- reallyDestroyAssociation<I extends Dream, DB extends I['DB'], TableName extends I['table'], Schema extends I['schema'], AssociationName extends DreamAssociationNamesWithRequiredOnClauses<I>, RequiredOnClauseKeysForThisAssociation extends RequiredOnClauseKeys<Schema, TableName, AssociationName>, AssociationDream extends AssociationNameToDream<I, AssociationName>, AssociationTableName extends AssociationDream['table']>(this: I, associationName: AssociationName, options: DestroyOptions<I> & JoinAndStatements<I, DB, Schema, AssociationTableName, RequiredOnClauseKeysForThisAssociation>): Promise<number>;
2571
- reallyDestroyAssociation<I extends Dream, DB extends I['DB'], Schema extends I['schema'], AssociationName extends DreamAssociationNamesWithoutRequiredOnClauses<I>, AssociationDream extends AssociationNameToDream<I, AssociationName>, AssociationTableName extends AssociationDream['table']>(this: I, associationName: AssociationName, options?: DestroyOptions<I> & JoinAndStatements<I, DB, Schema, AssociationTableName, null>): Promise<number>;
2572
- undestroyAssociation<I extends Dream, DB extends I['DB'], TableName extends I['table'], Schema extends I['schema'], AssociationName extends DreamAssociationNamesWithRequiredOnClauses<I>, RequiredOnClauseKeysForThisAssociation extends RequiredOnClauseKeys<Schema, TableName, AssociationName>, AssociationDream extends AssociationNameToDream<I, AssociationName>, AssociationTableName extends AssociationDream['table']>(this: I, associationName: AssociationName, options: DestroyOptions<I> & JoinAndStatements<I, DB, Schema, AssociationTableName, RequiredOnClauseKeysForThisAssociation>): Promise<number>;
2573
- undestroyAssociation<I extends Dream, DB extends I['DB'], Schema extends I['schema'], AssociationName extends DreamAssociationNamesWithoutRequiredOnClauses<I>, AssociationDream extends AssociationNameToDream<I, AssociationName>, AssociationTableName extends AssociationDream['table']>(this: I, associationName: AssociationName, options?: DestroyOptions<I> & JoinAndStatements<I, DB, Schema, AssociationTableName, null>): Promise<number>;
2568
+ destroyAssociation<I extends Dream, DB extends I['DB'], TableName extends I['table'], Schema extends I['schema'], AssociationName extends DreamAssociationNamesWithRequiredOnClauses<I>, RequiredOnClauseKeysForThisAssociation extends RequiredOnClauseKeys<Schema, TableName, AssociationName>, AssociationDream extends AssociationNameToDream<I, AssociationName>, AssociationTableName extends AssociationDream['table']>(this: I, associationName: AssociationName, options: InstanceDestroyOptions<I> & JoinAndStatements<I, DB, Schema, AssociationTableName, RequiredOnClauseKeysForThisAssociation>): Promise<number>;
2569
+ destroyAssociation<I extends Dream, DB extends I['DB'], Schema extends I['schema'], AssociationName extends DreamAssociationNamesWithoutRequiredOnClauses<I>, AssociationDream extends AssociationNameToDream<I, AssociationName>, AssociationTableName extends AssociationDream['table']>(this: I, associationName: AssociationName, options?: InstanceDestroyOptions<I> & JoinAndStatements<I, DB, Schema, AssociationTableName, null>): Promise<number>;
2570
+ reallyDestroyAssociation<I extends Dream, DB extends I['DB'], TableName extends I['table'], Schema extends I['schema'], AssociationName extends DreamAssociationNamesWithRequiredOnClauses<I>, RequiredOnClauseKeysForThisAssociation extends RequiredOnClauseKeys<Schema, TableName, AssociationName>, AssociationDream extends AssociationNameToDream<I, AssociationName>, AssociationTableName extends AssociationDream['table']>(this: I, associationName: AssociationName, options: InstanceDestroyOptions<I> & JoinAndStatements<I, DB, Schema, AssociationTableName, RequiredOnClauseKeysForThisAssociation>): Promise<number>;
2571
+ reallyDestroyAssociation<I extends Dream, DB extends I['DB'], Schema extends I['schema'], AssociationName extends DreamAssociationNamesWithoutRequiredOnClauses<I>, AssociationDream extends AssociationNameToDream<I, AssociationName>, AssociationTableName extends AssociationDream['table']>(this: I, associationName: AssociationName, options?: InstanceDestroyOptions<I> & JoinAndStatements<I, DB, Schema, AssociationTableName, null>): Promise<number>;
2572
+ undestroyAssociation<I extends Dream, DB extends I['DB'], TableName extends I['table'], Schema extends I['schema'], AssociationName extends DreamAssociationNamesWithRequiredOnClauses<I>, RequiredOnClauseKeysForThisAssociation extends RequiredOnClauseKeys<Schema, TableName, AssociationName>, AssociationDream extends AssociationNameToDream<I, AssociationName>, AssociationTableName extends AssociationDream['table']>(this: I, associationName: AssociationName, options: InstanceDestroyOptions<I> & JoinAndStatements<I, DB, Schema, AssociationTableName, RequiredOnClauseKeysForThisAssociation>): Promise<number>;
2573
+ undestroyAssociation<I extends Dream, DB extends I['DB'], Schema extends I['schema'], AssociationName extends DreamAssociationNamesWithoutRequiredOnClauses<I>, AssociationDream extends AssociationNameToDream<I, AssociationName>, AssociationTableName extends AssociationDream['table']>(this: I, associationName: AssociationName, options?: InstanceDestroyOptions<I> & JoinAndStatements<I, DB, Schema, AssociationTableName, null>): Promise<number>;
2574
2574
  associationQuery<I extends Dream, DB extends I['DB'], TableName extends I['table'], Schema extends I['schema'], AssociationName extends DreamAssociationNamesWithRequiredOnClauses<I>, RequiredOnClauseKeysForThisAssociation extends RequiredOnClauseKeys<Schema, TableName, AssociationName>, AssociationDream extends AssociationNameToDream<I, AssociationName>, AssociationTableName extends AssociationDream['table']>(this: I, associationName: AssociationName, joinAndStatements: JoinAndStatements<AssociationDream, DB, Schema, AssociationTableName, RequiredOnClauseKeysForThisAssociation>): Query<AssociationDream, DefaultQueryTypeOptions<AssociationDream, AssociationName & string>>;
2575
2575
  associationQuery<I extends Dream, DB extends I['DB'], Schema extends I['schema'], AssociationName extends DreamAssociationNamesWithoutRequiredOnClauses<I>, AssociationDream extends AssociationNameToDream<I, AssociationName>, AssociationTableName extends AssociationDream['table']>(this: I, associationName: AssociationName, joinAndStatements?: JoinAndStatements<AssociationDream, DB, Schema, AssociationTableName, null>): Query<AssociationDream, DefaultQueryTypeOptions<AssociationDream, AssociationName & string>>;
2576
- updateAssociation<I extends Dream, DB extends I['DB'], TableName extends I['table'], Schema extends I['schema'], AssociationName extends DreamAssociationNamesWithRequiredOnClauses<I>, RequiredOnClauseKeysForThisAssociation extends RequiredOnClauseKeys<Schema, TableName, AssociationName>, AssociationDream extends AssociationNameToDream<I, AssociationName>, AssociationTableName extends AssociationDream['table'], PossibleArrayAssociationType extends I[AssociationName & keyof I], AssociationType extends PossibleArrayAssociationType extends (infer ElementType)[] ? ElementType : PossibleArrayAssociationType, RestrictedAssociationType extends AssociationType extends Dream ? AssociationType : never>(this: I, associationName: AssociationName, attributes: UpdateableAssociationProperties<I, RestrictedAssociationType>, updateAssociationOptions: {
2576
+ updateAssociation<I extends Dream, DB extends I['DB'], TableName extends I['table'], Schema extends I['schema'], AssociationName extends DreamAssociationNamesWithRequiredOnClauses<I>, RequiredOnClauseKeysForThisAssociation extends RequiredOnClauseKeys<Schema, TableName, AssociationName>, AssociationDream extends AssociationNameToDream<I, AssociationName>, AssociationTableName extends AssociationDream['table'], PossibleArrayAssociationType extends I[AssociationName & keyof I], AssociationType extends PossibleArrayAssociationType extends (infer ElementType)[] ? ElementType : PossibleArrayAssociationType, RestrictedAssociationType extends AssociationType extends Dream ? AssociationType : never>(this: I, associationName: AssociationName, attributes: UpdateableAssociationProperties<I, RestrictedAssociationType>, updateAssociationOptions: InstanceUpdateOptions & {
2577
2577
  bypassAllDefaultScopes?: boolean;
2578
2578
  defaultScopesToBypass?: AllDefaultScopeNames<I>[];
2579
- skipHooks?: boolean;
2580
2579
  } & JoinAndStatements<I, DB, Schema, AssociationTableName, RequiredOnClauseKeysForThisAssociation>): Promise<number>;
2581
- updateAssociation<I extends Dream, DB extends I['DB'], Schema extends I['schema'], AssociationName extends DreamAssociationNamesWithoutRequiredOnClauses<I>, AssociationDream extends AssociationNameToDream<I, AssociationName>, AssociationTableName extends AssociationDream['table'], PossibleArrayAssociationType extends I[AssociationName & keyof I], AssociationType extends PossibleArrayAssociationType extends (infer ElementType)[] ? ElementType : PossibleArrayAssociationType, RestrictedAssociationType extends AssociationType extends Dream ? AssociationType : never>(this: I, associationName: AssociationName, attributes: UpdateableAssociationProperties<I, RestrictedAssociationType>, updateAssociationOptions?: {
2580
+ updateAssociation<I extends Dream, DB extends I['DB'], Schema extends I['schema'], AssociationName extends DreamAssociationNamesWithoutRequiredOnClauses<I>, AssociationDream extends AssociationNameToDream<I, AssociationName>, AssociationTableName extends AssociationDream['table'], PossibleArrayAssociationType extends I[AssociationName & keyof I], AssociationType extends PossibleArrayAssociationType extends (infer ElementType)[] ? ElementType : PossibleArrayAssociationType, RestrictedAssociationType extends AssociationType extends Dream ? AssociationType : never>(this: I, associationName: AssociationName, attributes: UpdateableAssociationProperties<I, RestrictedAssociationType>, updateAssociationOptions?: InstanceUpdateOptions & {
2582
2581
  bypassAllDefaultScopes?: boolean;
2583
2582
  defaultScopesToBypass?: AllDefaultScopeNames<I>[];
2584
- skipHooks?: boolean;
2585
2583
  } & JoinAndStatements<I, DB, Schema, AssociationTableName, null>): Promise<number>;
2586
2584
  /**
2587
2585
  * Sends data through for use as passthrough data
@@ -2683,23 +2681,32 @@ export default class Dream {
2683
2681
  * passthrough: { name: 'My Composition' },
2684
2682
  * required: { locale: 'de-DE' }
2685
2683
  * })
2684
+ *
2685
+ * // With a specific database connection
2686
+ * const comments = await post.association('comments', { connection: 'replica' })
2686
2687
  * ```
2687
2688
  *
2688
2689
  * @param associationName - The name of the BelongsTo, HasOne, or HasMany association
2689
- * @param options - Optional configuration for required and passthrough clauses
2690
+ * @param options - Optional configuration for required and passthrough clauses and the database connection
2690
2691
  * @param options.required - for associations with DreamConst.required `and` clauses
2691
2692
  * @param options.passthrough - for associations with DreamConst.passthrough `and` clauses
2693
+ * @param options.connection - the database connection to use when loading the association ('primary' or 'replica')
2692
2694
  * @returns The associated model instance(s) or null/empty array if not found
2693
2695
  */
2694
2696
  association<I extends Dream, MaybeAssociationName extends DreamBelongsToAssociationNames<I> | DreamHasOneAssociationNames<I> | DreamHasManyAssociationNames<I>, AssociationName extends MaybeAssociationName extends DreamAssociationNamesWithPassthroughOnClauses<I> | DreamAssociationNamesWithRequiredOnClauses<I> ? MaybeAssociationName : never, AssociationDream extends AssociationNameToDream<I, AssociationName>, AssociationTableName extends AssociationDream['table'], DB extends I['DB'], TableName extends I['table'], Schema extends I['schema'], PassthroughOnStatement extends Required<OnStatementForSpecificColumns<I, DB, Schema, AssociationTableName, PassthroughOnClauseKeys<Schema, TableName, AssociationName> & string[]>>, RequiredOnStatement extends Required<OnStatementForSpecificColumns<I, DB, Schema, AssociationTableName, RequiredOnClauseKeys<Schema, TableName, AssociationName> & string[]>>, Opts extends AssociationName extends DreamAssociationNamesWithPassthroughOnClauses<I> & DreamAssociationNamesWithRequiredOnClauses<I> ? {
2695
2697
  passthrough: PassthroughOnStatement;
2696
2698
  required: RequiredOnStatement;
2699
+ connection?: DbConnectionType;
2697
2700
  } : AssociationName extends DreamAssociationNamesWithPassthroughOnClauses<I> ? {
2698
2701
  passthrough: PassthroughOnStatement;
2702
+ connection?: DbConnectionType;
2699
2703
  } : AssociationName extends DreamAssociationNamesWithRequiredOnClauses<I> ? {
2700
2704
  required: RequiredOnStatement;
2705
+ connection?: DbConnectionType;
2701
2706
  } : never, ReturnType extends AssociationName extends DreamHasManyAssociationNames<I> ? AssociationNameToDream<I, AssociationName>[] : AssociationNameToDream<I, AssociationName> | null>(this: I, associationName: AssociationName, options: Opts): Promise<ReturnType>;
2702
- association<I extends Dream, MaybeAssociationName extends DreamBelongsToAssociationNames<I> | DreamHasOneAssociationNames<I> | DreamHasManyAssociationNames<I>, AssociationName extends MaybeAssociationName extends DreamAssociationNamesWithPassthroughOnClauses<I> | DreamAssociationNamesWithRequiredOnClauses<I> ? never : MaybeAssociationName, ReturnType extends AssociationName extends DreamHasManyAssociationNames<I> ? AssociationNameToDream<I, AssociationName>[] : AssociationNameToDream<I, AssociationName> | null>(this: I, associationName: AssociationName): Promise<ReturnType>;
2707
+ association<I extends Dream, MaybeAssociationName extends DreamBelongsToAssociationNames<I> | DreamHasOneAssociationNames<I> | DreamHasManyAssociationNames<I>, AssociationName extends MaybeAssociationName extends DreamAssociationNamesWithPassthroughOnClauses<I> | DreamAssociationNamesWithRequiredOnClauses<I> ? never : MaybeAssociationName, ReturnType extends AssociationName extends DreamHasManyAssociationNames<I> ? AssociationNameToDream<I, AssociationName>[] : AssociationNameToDream<I, AssociationName> | null>(this: I, associationName: AssociationName, options?: {
2708
+ connection?: DbConnectionType;
2709
+ }): Promise<ReturnType>;
2703
2710
  /**
2704
2711
  * If the association is already loaded on the instance, it returns the loaded value
2705
2712
  * immediately without making a database query. If the association is not loaded,
@@ -2744,24 +2751,33 @@ export default class Dream {
2744
2751
  * passthrough: { name: 'My Composition' },
2745
2752
  * required: { locale: 'de-DE' }
2746
2753
  * })
2754
+ *
2755
+ * // With a specific database connection
2756
+ * const comments = await post.associationOrFail('comments', { connection: 'replica' })
2747
2757
  * ```
2748
2758
  *
2749
2759
  * @param associationName - The name of the BelongsTo, HasOne, or HasMany association
2750
- * @param options - Optional configuration for required and passthrough clauses
2760
+ * @param options - Optional configuration for required and passthrough clauses and the database connection
2751
2761
  * @param options.required - for associations with DreamConst.required `and` clauses
2752
2762
  * @param options.passthrough - for associations with DreamConst.passthrough `and` clauses
2763
+ * @param options.connection - the database connection to use when loading the association ('primary' or 'replica')
2753
2764
  * @returns The associated model instance(s) (never null for BelongsTo/HasOne)
2754
2765
  * @throws RecordNotFound if no associated record exists (BelongsTo/HasOne only)
2755
2766
  */
2756
2767
  associationOrFail<I extends Dream, MaybeAssociationName extends DreamBelongsToAssociationNames<I> | DreamHasOneAssociationNames<I> | DreamHasManyAssociationNames<I>, AssociationName extends MaybeAssociationName extends DreamAssociationNamesWithPassthroughOnClauses<I> | DreamAssociationNamesWithRequiredOnClauses<I> ? MaybeAssociationName : never, AssociationDream extends AssociationNameToDream<I, AssociationName>, AssociationTableName extends AssociationDream['table'], DB extends I['DB'], TableName extends I['table'], Schema extends I['schema'], PassthroughOnStatement extends Required<OnStatementForSpecificColumns<I, DB, Schema, AssociationTableName, PassthroughOnClauseKeys<Schema, TableName, AssociationName> & string[]>>, RequiredOnStatement extends Required<OnStatementForSpecificColumns<I, DB, Schema, AssociationTableName, RequiredOnClauseKeys<Schema, TableName, AssociationName> & string[]>>, Opts extends AssociationName extends DreamAssociationNamesWithPassthroughOnClauses<I> & DreamAssociationNamesWithRequiredOnClauses<I> ? {
2757
2768
  passthrough: PassthroughOnStatement;
2758
2769
  required: RequiredOnStatement;
2770
+ connection?: DbConnectionType;
2759
2771
  } : AssociationName extends DreamAssociationNamesWithPassthroughOnClauses<I> ? {
2760
2772
  passthrough: PassthroughOnStatement;
2773
+ connection?: DbConnectionType;
2761
2774
  } : AssociationName extends DreamAssociationNamesWithRequiredOnClauses<I> ? {
2762
2775
  required: RequiredOnStatement;
2776
+ connection?: DbConnectionType;
2763
2777
  } : never, ReturnType extends AssociationName extends DreamHasManyAssociationNames<I> ? AssociationNameToDream<I, AssociationName>[] : AssociationNameToDream<I, AssociationName>>(this: I, associationName: AssociationName, options: Opts): Promise<ReturnType>;
2764
- associationOrFail<I extends Dream, MaybeAssociationName extends DreamBelongsToAssociationNames<I> | DreamHasOneAssociationNames<I> | DreamHasManyAssociationNames<I>, AssociationName extends MaybeAssociationName extends DreamAssociationNamesWithPassthroughOnClauses<I> | DreamAssociationNamesWithRequiredOnClauses<I> ? never : MaybeAssociationName, ReturnType extends AssociationName extends DreamHasManyAssociationNames<I> ? AssociationNameToDream<I, AssociationName>[] : AssociationNameToDream<I, AssociationName>>(this: I, associationName: AssociationName): Promise<ReturnType>;
2778
+ associationOrFail<I extends Dream, MaybeAssociationName extends DreamBelongsToAssociationNames<I> | DreamHasOneAssociationNames<I> | DreamHasManyAssociationNames<I>, AssociationName extends MaybeAssociationName extends DreamAssociationNamesWithPassthroughOnClauses<I> | DreamAssociationNamesWithRequiredOnClauses<I> ? never : MaybeAssociationName, ReturnType extends AssociationName extends DreamHasManyAssociationNames<I> ? AssociationNameToDream<I, AssociationName>[] : AssociationNameToDream<I, AssociationName>>(this: I, associationName: AssociationName, options?: {
2779
+ connection?: DbConnectionType;
2780
+ }): Promise<ReturnType>;
2765
2781
  /**
2766
2782
  * Recursively loads all Dream associations referenced by `rendersOne` and `rendersMany`
2767
2783
  * in a DreamSerializer. This traverses the entire content tree of serializers to automatically
@@ -2986,9 +3002,7 @@ export default class Dream {
2986
3002
  * @param __namedParameters.skipHooks - if true, will skip applying model hooks. Defaults to false
2987
3003
  * @returns void
2988
3004
  */
2989
- update<I extends Dream>(this: I, attributes: UpdateableProperties<I>, { skipHooks }?: {
2990
- skipHooks?: boolean;
2991
- }): Promise<void>;
3005
+ update<I extends Dream>(this: I, attributes: UpdateableProperties<I>, { skipHooks }?: InstanceUpdateOptions): Promise<void>;
2992
3006
  /**
2993
3007
  * Applies all attribute changes passed to the dream,
2994
3008
  * bypassing any custom-defined setters,
@@ -3012,9 +3026,7 @@ export default class Dream {
3012
3026
  * @param __namedParameters.skipHooks - if true, will skip applying model hooks. Defaults to false
3013
3027
  * @returns - void
3014
3028
  */
3015
- updateAttributes<I extends Dream>(this: I, attributes: UpdateableProperties<I>, { skipHooks }?: {
3016
- skipHooks?: boolean;
3017
- }): Promise<void>;
3029
+ updateAttributes<I extends Dream>(this: I, attributes: UpdateableProperties<I>, { skipHooks }?: InstanceUpdateOptions): Promise<void>;
3018
3030
  /**
3019
3031
  * Flags a dream model so that it does not
3020
3032
  * actually destroy when in a destroy phase.
@@ -4,7 +4,7 @@ import { AllDefaultScopeNames, AssociationNameToDream, DreamAssociationNames, Dr
4
4
  import { DefaultQueryTypeOptions, LoadForModifierFn, QueryWithJoinedAssociationsType } from '../types/query.js';
5
5
  import { JoinedAssociation, JoinedAssociationsTypeFromAssociations, VariadicJoinsArgs, VariadicLeftJoinLoadArgs, VariadicLoadArgs } from '../types/variadic.js';
6
6
  import DreamTransaction from './DreamTransaction.js';
7
- import { DestroyOptions } from './internal/destroyOptions.js';
7
+ import type { InstanceDestroyOptions, InstanceUpdateOptions } from './internal/instanceMutationOptions.js';
8
8
  import LeftJoinLoadBuilder from './LeftJoinLoadBuilder.js';
9
9
  import LoadBuilder from './LoadBuilder.js';
10
10
  import Query from './Query.js';
@@ -178,7 +178,7 @@ export default class DreamInstanceTransactionBuilder<DreamInstance extends Dream
178
178
  * @param options.defaultScopesToBypass - An array of default scope names to bypass when cascade destroying. Defaults to an empty array
179
179
  * @returns The instance that was destroyed
180
180
  */
181
- destroy<I extends DreamInstanceTransactionBuilder<DreamInstance>>(this: I, options?: DestroyOptions<DreamInstance>): Promise<DreamInstance>;
181
+ destroy<I extends DreamInstanceTransactionBuilder<DreamInstance>>(this: I, options?: InstanceDestroyOptions<DreamInstance>): Promise<DreamInstance>;
182
182
  /**
183
183
  * Deletes the record represented by this instance
184
184
  * from the database, calling any destroy
@@ -198,7 +198,7 @@ export default class DreamInstanceTransactionBuilder<DreamInstance extends Dream
198
198
  * @param options.defaultScopesToBypass - An array of default scope names to bypass when cascade destroying. Defaults to an empty array
199
199
  * @returns The instance that was destroyed
200
200
  */
201
- reallyDestroy<I extends DreamInstanceTransactionBuilder<DreamInstance>>(this: I, options?: DestroyOptions<DreamInstance>): Promise<DreamInstance>;
201
+ reallyDestroy<I extends DreamInstanceTransactionBuilder<DreamInstance>>(this: I, options?: InstanceDestroyOptions<DreamInstance>): Promise<DreamInstance>;
202
202
  /**
203
203
  * Undestroys a SoftDelete model, unsetting
204
204
  * the `deletedAt` field in the database.
@@ -218,7 +218,7 @@ export default class DreamInstanceTransactionBuilder<DreamInstance extends Dream
218
218
  * @param options.defaultScopesToBypass - An array of default scope names to bypass when cascade undestroying (soft delete is always bypassed). Defaults to an empty array
219
219
  * @returns The undestroyed instance
220
220
  */
221
- undestroy<I extends DreamInstanceTransactionBuilder<DreamInstance>>(this: I, options?: DestroyOptions<DreamInstance>): Promise<DreamInstance>;
221
+ undestroy<I extends DreamInstanceTransactionBuilder<DreamInstance>>(this: I, options?: InstanceDestroyOptions<DreamInstance>): Promise<DreamInstance>;
222
222
  /**
223
223
  * Applies all attribute changes passed to the Dream
224
224
  * instance, leveraging any custom-defined setters,
@@ -242,9 +242,7 @@ export default class DreamInstanceTransactionBuilder<DreamInstance extends Dream
242
242
  * @param opts.skipHooks - if true, will skip applying model hooks. Defaults to false
243
243
  * @returns void
244
244
  */
245
- update<I extends DreamInstanceTransactionBuilder<DreamInstance>>(this: I, attributes: UpdateableProperties<DreamInstance>, { skipHooks }?: {
246
- skipHooks?: boolean;
247
- }): Promise<void>;
245
+ update<I extends DreamInstanceTransactionBuilder<DreamInstance>>(this: I, attributes: UpdateableProperties<DreamInstance>, { skipHooks }?: InstanceUpdateOptions): Promise<void>;
248
246
  /**
249
247
  * Applies all attribute changes passed to the dream,
250
248
  * bypassing any custom-defined setters,
@@ -269,9 +267,7 @@ export default class DreamInstanceTransactionBuilder<DreamInstance extends Dream
269
267
  * @param opts.skipHooks - if true, will skip applying model hooks. Defaults to false
270
268
  * @returns - void
271
269
  */
272
- updateAttributes<I extends DreamInstanceTransactionBuilder<DreamInstance>>(this: I, attributes: UpdateableProperties<DreamInstance>, { skipHooks }?: {
273
- skipHooks?: boolean;
274
- }): Promise<void>;
270
+ updateAttributes<I extends DreamInstanceTransactionBuilder<DreamInstance>>(this: I, attributes: UpdateableProperties<DreamInstance>, { skipHooks }?: InstanceUpdateOptions): Promise<void>;
275
271
  /**
276
272
  * Reloads an instance, refreshing all it's attribute values
277
273
  * to those in the database.
@@ -432,15 +428,13 @@ export default class DreamInstanceTransactionBuilder<DreamInstance extends Dream
432
428
  associationOrFail<I extends DreamInstanceTransactionBuilder<DreamInstance>, MaybeAssociationName extends DreamBelongsToAssociationNames<DreamInstance> | DreamHasOneAssociationNames<DreamInstance> | DreamHasManyAssociationNames<DreamInstance>, AssociationName extends MaybeAssociationName extends DreamAssociationNamesWithPassthroughOnClauses<DreamInstance> | DreamAssociationNamesWithRequiredOnClauses<DreamInstance> ? never : MaybeAssociationName, ReturnType extends AssociationName extends DreamHasManyAssociationNames<DreamInstance> ? AssociationNameToDream<DreamInstance, AssociationName>[] : AssociationNameToDream<DreamInstance, AssociationName>>(this: I, associationName: AssociationName): Promise<ReturnType>;
433
429
  associationQuery<I extends DreamInstanceTransactionBuilder<DreamInstance>, DB extends DreamInstance['DB'], TableName extends DreamInstance['table'], Schema extends DreamInstance['schema'], AssociationName extends DreamAssociationNamesWithRequiredOnClauses<DreamInstance>, RequiredOnClauseKeysForThisAssociation extends RequiredOnClauseKeys<Schema, TableName, AssociationName>, AssociationDream extends AssociationNameToDream<DreamInstance, AssociationName>, AssociationTableName extends AssociationDream['table']>(this: I, associationName: AssociationName, joinAndStatements: JoinAndStatements<AssociationDream, DB, Schema, AssociationTableName, RequiredOnClauseKeysForThisAssociation>): Query<AssociationDream, DefaultQueryTypeOptions<AssociationDream, AssociationName & string>>;
434
430
  associationQuery<I extends DreamInstanceTransactionBuilder<DreamInstance>, DB extends DreamInstance['DB'], Schema extends DreamInstance['schema'], AssociationName extends DreamAssociationNamesWithoutRequiredOnClauses<DreamInstance>, AssociationDream extends AssociationNameToDream<DreamInstance, AssociationName>, AssociationTableName extends AssociationDream['table']>(this: I, associationName: AssociationName, joinAndStatements?: JoinAndStatements<AssociationDream, DB, Schema, AssociationTableName, null>): Query<AssociationDream, DefaultQueryTypeOptions<AssociationDream, AssociationName & string>>;
435
- updateAssociation<I extends DreamInstanceTransactionBuilder<DreamInstance>, DB extends DreamInstance['DB'], TableName extends DreamInstance['table'], Schema extends DreamInstance['schema'], AssociationName extends DreamAssociationNamesWithRequiredOnClauses<DreamInstance>, RequiredOnClauseKeysForThisAssociation extends RequiredOnClauseKeys<Schema, TableName, AssociationName>, AssociationDream extends AssociationNameToDream<DreamInstance, AssociationName>, AssociationTableName extends AssociationDream['table'], PossibleArrayAssociationType = DreamInstance[AssociationName & keyof DreamInstance], AssociationType = PossibleArrayAssociationType extends (infer ElementType)[] ? ElementType : PossibleArrayAssociationType, RestrictedAssociationType extends AssociationType extends Dream ? AssociationType : never = AssociationType extends Dream ? AssociationType : never>(this: I, associationName: AssociationName, attributes: UpdateableAssociationProperties<DreamInstance, RestrictedAssociationType>, updateAssociationOptions: {
431
+ updateAssociation<I extends DreamInstanceTransactionBuilder<DreamInstance>, DB extends DreamInstance['DB'], TableName extends DreamInstance['table'], Schema extends DreamInstance['schema'], AssociationName extends DreamAssociationNamesWithRequiredOnClauses<DreamInstance>, RequiredOnClauseKeysForThisAssociation extends RequiredOnClauseKeys<Schema, TableName, AssociationName>, AssociationDream extends AssociationNameToDream<DreamInstance, AssociationName>, AssociationTableName extends AssociationDream['table'], PossibleArrayAssociationType = DreamInstance[AssociationName & keyof DreamInstance], AssociationType = PossibleArrayAssociationType extends (infer ElementType)[] ? ElementType : PossibleArrayAssociationType, RestrictedAssociationType extends AssociationType extends Dream ? AssociationType : never = AssociationType extends Dream ? AssociationType : never>(this: I, associationName: AssociationName, attributes: UpdateableAssociationProperties<DreamInstance, RestrictedAssociationType>, updateAssociationOptions: InstanceUpdateOptions & {
436
432
  bypassAllDefaultScopes?: boolean;
437
433
  defaultScopesToBypass?: AllDefaultScopeNames<DreamInstance>[];
438
- skipHooks?: boolean;
439
434
  } & JoinAndStatements<AssociationDream, DB, Schema, AssociationTableName, RequiredOnClauseKeysForThisAssociation>): Promise<number>;
440
- updateAssociation<I extends DreamInstanceTransactionBuilder<DreamInstance>, DB extends DreamInstance['DB'], Schema extends DreamInstance['schema'], AssociationName extends DreamAssociationNamesWithoutRequiredOnClauses<DreamInstance>, AssociationDream extends AssociationNameToDream<DreamInstance, AssociationName>, AssociationTableName extends AssociationDream['table'], PossibleArrayAssociationType = DreamInstance[AssociationName & keyof DreamInstance], AssociationType = PossibleArrayAssociationType extends (infer ElementType)[] ? ElementType : PossibleArrayAssociationType, RestrictedAssociationType extends AssociationType extends Dream ? AssociationType : never = AssociationType extends Dream ? AssociationType : never>(this: I, associationName: AssociationName, attributes: UpdateableAssociationProperties<DreamInstance, RestrictedAssociationType>, updateAssociationOptions?: {
435
+ updateAssociation<I extends DreamInstanceTransactionBuilder<DreamInstance>, DB extends DreamInstance['DB'], Schema extends DreamInstance['schema'], AssociationName extends DreamAssociationNamesWithoutRequiredOnClauses<DreamInstance>, AssociationDream extends AssociationNameToDream<DreamInstance, AssociationName>, AssociationTableName extends AssociationDream['table'], PossibleArrayAssociationType = DreamInstance[AssociationName & keyof DreamInstance], AssociationType = PossibleArrayAssociationType extends (infer ElementType)[] ? ElementType : PossibleArrayAssociationType, RestrictedAssociationType extends AssociationType extends Dream ? AssociationType : never = AssociationType extends Dream ? AssociationType : never>(this: I, associationName: AssociationName, attributes: UpdateableAssociationProperties<DreamInstance, RestrictedAssociationType>, updateAssociationOptions?: InstanceUpdateOptions & {
441
436
  bypassAllDefaultScopes?: boolean;
442
437
  defaultScopesToBypass?: AllDefaultScopeNames<DreamInstance>[];
443
- skipHooks?: boolean;
444
438
  } & JoinAndStatements<DreamInstance, DB, Schema, AssociationTableName, null>): Promise<number>;
445
439
  /**
446
440
  * Creates an association for an instance. Automatically
@@ -458,12 +452,12 @@ export default class DreamInstanceTransactionBuilder<DreamInstance extends Dream
458
452
  * @returns The created association
459
453
  */
460
454
  createAssociation<I extends DreamInstanceTransactionBuilder<DreamInstance>, AssociationName extends DreamAssociationNames<DreamInstance>, PossibleArrayAssociationType = DreamInstance[AssociationName & keyof DreamInstance], AssociationType = PossibleArrayAssociationType extends (infer ElementType)[] ? ElementType : PossibleArrayAssociationType, RestrictedAssociationType extends AssociationType extends Dream ? AssociationType : never = AssociationType extends Dream ? AssociationType : never>(this: I, associationName: AssociationName, opts?: UpdateableAssociationProperties<DreamInstance, RestrictedAssociationType>): Promise<NonNullable<AssociationType>>;
461
- destroyAssociation<I extends DreamInstanceTransactionBuilder<DreamInstance>, DB extends DreamInstance['DB'], TableName extends DreamInstance['table'], Schema extends DreamInstance['schema'], AssociationName extends DreamAssociationNamesWithRequiredOnClauses<DreamInstance>, RequiredOnClauseKeysForThisAssociation extends RequiredOnClauseKeys<Schema, TableName, AssociationName>, AssociationDream extends AssociationNameToDream<DreamInstance, AssociationName>, AssociationTableName extends AssociationDream['table']>(this: I, associationName: AssociationName, options: DestroyOptions<DreamInstance> & JoinAndStatements<AssociationDream, DB, Schema, AssociationTableName, RequiredOnClauseKeysForThisAssociation>): Promise<number>;
462
- destroyAssociation<I extends DreamInstanceTransactionBuilder<DreamInstance>, DB extends DreamInstance['DB'], Schema extends DreamInstance['schema'], AssociationName extends DreamAssociationNamesWithoutRequiredOnClauses<DreamInstance>, AssociationDream extends AssociationNameToDream<DreamInstance, AssociationName>, AssociationTableName extends AssociationDream['table']>(this: I, associationName: AssociationName, options?: DestroyOptions<DreamInstance> & JoinAndStatements<DreamInstance, DB, Schema, AssociationTableName, null>): Promise<number>;
463
- reallyDestroyAssociation<I extends DreamInstanceTransactionBuilder<DreamInstance>, DB extends DreamInstance['DB'], TableName extends DreamInstance['table'], Schema extends DreamInstance['schema'], AssociationName extends DreamAssociationNamesWithRequiredOnClauses<DreamInstance>, RequiredOnClauseKeysForThisAssociation extends RequiredOnClauseKeys<Schema, TableName, AssociationName>, AssociationDream extends AssociationNameToDream<DreamInstance, AssociationName>, AssociationTableName extends AssociationDream['table']>(this: I, associationName: AssociationName, options: DestroyOptions<DreamInstance> & JoinAndStatements<AssociationDream, DB, Schema, AssociationTableName, RequiredOnClauseKeysForThisAssociation>): Promise<number>;
464
- reallyDestroyAssociation<I extends DreamInstanceTransactionBuilder<DreamInstance>, DB extends DreamInstance['DB'], Schema extends DreamInstance['schema'], AssociationName extends DreamAssociationNamesWithoutRequiredOnClauses<DreamInstance>, AssociationDream extends AssociationNameToDream<DreamInstance, AssociationName>, AssociationTableName extends AssociationDream['table']>(this: I, associationName: AssociationName, options?: DestroyOptions<DreamInstance> & JoinAndStatements<AssociationDream, DB, Schema, AssociationTableName, null>): Promise<number>;
465
- undestroyAssociation<I extends DreamInstanceTransactionBuilder<DreamInstance>, DB extends DreamInstance['DB'], TableName extends DreamInstance['table'], Schema extends DreamInstance['schema'], AssociationName extends DreamAssociationNamesWithRequiredOnClauses<DreamInstance>, RequiredOnClauseKeysForThisAssociation extends RequiredOnClauseKeys<Schema, TableName, AssociationName>, AssociationDream extends AssociationNameToDream<DreamInstance, AssociationName>, AssociationTableName extends AssociationDream['table']>(this: I, associationName: AssociationName, options: DestroyOptions<DreamInstance> & JoinAndStatements<AssociationDream, DB, Schema, AssociationTableName, RequiredOnClauseKeysForThisAssociation>): Promise<number>;
466
- undestroyAssociation<I extends DreamInstanceTransactionBuilder<DreamInstance>, DB extends DreamInstance['DB'], Schema extends DreamInstance['schema'], AssociationName extends DreamAssociationNamesWithoutRequiredOnClauses<DreamInstance>, AssociationDream extends AssociationNameToDream<DreamInstance, AssociationName>, AssociationTableName extends AssociationDream['table']>(this: I, associationName: AssociationName, options?: DestroyOptions<DreamInstance> & JoinAndStatements<AssociationDream, DB, Schema, AssociationTableName, null>): Promise<number>;
455
+ destroyAssociation<I extends DreamInstanceTransactionBuilder<DreamInstance>, DB extends DreamInstance['DB'], TableName extends DreamInstance['table'], Schema extends DreamInstance['schema'], AssociationName extends DreamAssociationNamesWithRequiredOnClauses<DreamInstance>, RequiredOnClauseKeysForThisAssociation extends RequiredOnClauseKeys<Schema, TableName, AssociationName>, AssociationDream extends AssociationNameToDream<DreamInstance, AssociationName>, AssociationTableName extends AssociationDream['table']>(this: I, associationName: AssociationName, options: InstanceDestroyOptions<DreamInstance> & JoinAndStatements<AssociationDream, DB, Schema, AssociationTableName, RequiredOnClauseKeysForThisAssociation>): Promise<number>;
456
+ destroyAssociation<I extends DreamInstanceTransactionBuilder<DreamInstance>, DB extends DreamInstance['DB'], Schema extends DreamInstance['schema'], AssociationName extends DreamAssociationNamesWithoutRequiredOnClauses<DreamInstance>, AssociationDream extends AssociationNameToDream<DreamInstance, AssociationName>, AssociationTableName extends AssociationDream['table']>(this: I, associationName: AssociationName, options?: InstanceDestroyOptions<DreamInstance> & JoinAndStatements<DreamInstance, DB, Schema, AssociationTableName, null>): Promise<number>;
457
+ reallyDestroyAssociation<I extends DreamInstanceTransactionBuilder<DreamInstance>, DB extends DreamInstance['DB'], TableName extends DreamInstance['table'], Schema extends DreamInstance['schema'], AssociationName extends DreamAssociationNamesWithRequiredOnClauses<DreamInstance>, RequiredOnClauseKeysForThisAssociation extends RequiredOnClauseKeys<Schema, TableName, AssociationName>, AssociationDream extends AssociationNameToDream<DreamInstance, AssociationName>, AssociationTableName extends AssociationDream['table']>(this: I, associationName: AssociationName, options: InstanceDestroyOptions<DreamInstance> & JoinAndStatements<AssociationDream, DB, Schema, AssociationTableName, RequiredOnClauseKeysForThisAssociation>): Promise<number>;
458
+ reallyDestroyAssociation<I extends DreamInstanceTransactionBuilder<DreamInstance>, DB extends DreamInstance['DB'], Schema extends DreamInstance['schema'], AssociationName extends DreamAssociationNamesWithoutRequiredOnClauses<DreamInstance>, AssociationDream extends AssociationNameToDream<DreamInstance, AssociationName>, AssociationTableName extends AssociationDream['table']>(this: I, associationName: AssociationName, options?: InstanceDestroyOptions<DreamInstance> & JoinAndStatements<AssociationDream, DB, Schema, AssociationTableName, null>): Promise<number>;
459
+ undestroyAssociation<I extends DreamInstanceTransactionBuilder<DreamInstance>, DB extends DreamInstance['DB'], TableName extends DreamInstance['table'], Schema extends DreamInstance['schema'], AssociationName extends DreamAssociationNamesWithRequiredOnClauses<DreamInstance>, RequiredOnClauseKeysForThisAssociation extends RequiredOnClauseKeys<Schema, TableName, AssociationName>, AssociationDream extends AssociationNameToDream<DreamInstance, AssociationName>, AssociationTableName extends AssociationDream['table']>(this: I, associationName: AssociationName, options: InstanceDestroyOptions<DreamInstance> & JoinAndStatements<AssociationDream, DB, Schema, AssociationTableName, RequiredOnClauseKeysForThisAssociation>): Promise<number>;
460
+ undestroyAssociation<I extends DreamInstanceTransactionBuilder<DreamInstance>, DB extends DreamInstance['DB'], Schema extends DreamInstance['schema'], AssociationName extends DreamAssociationNamesWithoutRequiredOnClauses<DreamInstance>, AssociationDream extends AssociationNameToDream<DreamInstance, AssociationName>, AssociationTableName extends AssociationDream['table']>(this: I, associationName: AssociationName, options?: InstanceDestroyOptions<DreamInstance> & JoinAndStatements<AssociationDream, DB, Schema, AssociationTableName, null>): Promise<number>;
467
461
  /**
468
462
  * @internal
469
463
  *
@@ -672,7 +672,7 @@ export default class KyselyQueryDriver<DreamInstance extends Dream> extends Quer
672
672
  private applyPreviousThroughAssociationAndStatementsToJoinStatement;
673
673
  private applyAssociationAndStatementsToJoinStatement;
674
674
  private throwUnlessAllRequiredWhereClausesProvided;
675
- private conditionallyApplyDefaultScopesDependentOnAssociation;
675
+ private applyAssociationDefaultScopesToJoin;
676
676
  /**
677
677
  * @internal
678
678
  *
@@ -1,7 +1,9 @@
1
1
  import Dream from '../../../Dream.js';
2
+ import { DbConnectionType } from '../../../types/db.js';
2
3
  import { AssociationNameToDream, DreamBelongsToAssociationNames, DreamHasManyAssociationNames, DreamHasOneAssociationNames } from '../../../types/dream.js';
3
4
  import DreamInstanceTransactionBuilder from '../../DreamInstanceTransactionBuilder.js';
4
5
  export default function loadedOrLoadAssociation<DreamInstance extends Dream, DreamInstanceOrInstanceTransactionBuilder extends Dream | DreamInstanceTransactionBuilder<DreamInstance>, AssociationName extends DreamBelongsToAssociationNames<DreamInstance> | DreamHasOneAssociationNames<DreamInstance> | DreamHasManyAssociationNames<DreamInstance>, ReturnType extends AssociationName extends DreamHasManyAssociationNames<DreamInstance> ? AssociationNameToDream<DreamInstance, AssociationName>[] : AssociationNameToDream<DreamInstance, AssociationName> | null>(dream: DreamInstance, dreamOrTransactionBuilder: DreamInstanceOrInstanceTransactionBuilder, associationName: AssociationName, options?: {
5
6
  passthrough?: Record<string, string>;
6
7
  required?: Record<string, string>;
8
+ connection?: DbConnectionType;
7
9
  }): Promise<ReturnType>;
@@ -0,0 +1,6 @@
1
+ import Dream from '../../Dream.js';
2
+ /**
3
+ * Installs one database-sourced scalar as the persisted value without
4
+ * replacing the saved-change history established by the current save.
5
+ */
6
+ export default function installPersistedAttribute(dream: Dream, column: string, val: any): void;
@@ -0,0 +1,13 @@
1
+ import type Dream from '../../Dream.js';
2
+ import type { DestroyOptions } from './destroyOptions.js';
3
+ export interface InstanceMutationOptions {
4
+ /**
5
+ * @deprecated `lock` is a query-level option. Use `Model.where({ id }).destroy({ lock: true })`
6
+ * or `Model.where({ id }).update(attributes, { lock: true })` instead.
7
+ */
8
+ lock?: never;
9
+ }
10
+ export type InstanceDestroyOptions<DreamInstance extends Dream> = DestroyOptions<DreamInstance> & InstanceMutationOptions;
11
+ export interface InstanceUpdateOptions extends InstanceMutationOptions {
12
+ skipHooks?: boolean | undefined;
13
+ }
@@ -0,0 +1,9 @@
1
+ import Dream from '../../Dream.js';
2
+ import { AssociationStatement } from '../../types/associations/shared.js';
3
+ export default class IncompatibleThroughAssociationTarget extends Error {
4
+ constructor({ outermostAssociation, outermostTargetModelClass, sourceAssociation, }: {
5
+ outermostAssociation: AssociationStatement;
6
+ outermostTargetModelClass: typeof Dream;
7
+ sourceAssociation: AssociationStatement;
8
+ });
9
+ }