@rvoh/dream 1.0.5 → 1.1.0

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 (212) hide show
  1. package/dist/cjs/src/Dream.js +2 -3
  2. package/dist/cjs/src/decorators/field/association/BelongsTo.js +3 -0
  3. package/dist/cjs/src/decorators/field/association/HasMany.js +1 -3
  4. package/dist/cjs/src/decorators/field/association/HasOne.js +1 -3
  5. package/dist/cjs/src/dream/QueryDriver/Kysely.js +349 -346
  6. package/dist/cjs/src/dream/internal/{extractAssociationMetadataFromAssociationName.js → associationStringToNameAndAlias.js} +3 -3
  7. package/dist/cjs/src/dream/internal/associations/throughAssociationHasOptionsBesidesThroughAndSource.js +14 -0
  8. package/dist/cjs/src/dream/internal/unaliasTableName.js +2 -2
  9. package/dist/cjs/src/errors/UnexpectedUndefined.js +1 -3
  10. package/dist/cjs/src/errors/associations/{ArrayTargetsIncompatibleWithThroughAssociation.js → ArrayTargetIncompatibleWithThroughAssociation.js} +2 -2
  11. package/dist/cjs/src/errors/associations/ArrayTargetOnlyOnPolymorphicBelongsTo.js +19 -0
  12. package/dist/cjs/src/errors/associations/JoinAttemptedOnMissingAssociation.js +1 -1
  13. package/dist/cjs/src/errors/associations/ThroughAssociationConditionsIncompatibleWithThroughAssociationSource.js +20 -0
  14. package/dist/esm/src/Dream.js +2 -3
  15. package/dist/esm/src/decorators/field/association/BelongsTo.js +3 -0
  16. package/dist/esm/src/decorators/field/association/HasMany.js +1 -3
  17. package/dist/esm/src/decorators/field/association/HasOne.js +1 -3
  18. package/dist/esm/src/dream/QueryDriver/Kysely.js +349 -346
  19. package/dist/esm/src/dream/internal/{extractAssociationMetadataFromAssociationName.js → associationStringToNameAndAlias.js} +2 -2
  20. package/dist/esm/src/dream/internal/associations/throughAssociationHasOptionsBesidesThroughAndSource.js +11 -0
  21. package/dist/esm/src/dream/internal/unaliasTableName.js +2 -2
  22. package/dist/esm/src/errors/UnexpectedUndefined.js +1 -3
  23. package/dist/esm/src/errors/associations/{ArrayTargetsIncompatibleWithThroughAssociation.js → ArrayTargetIncompatibleWithThroughAssociation.js} +1 -1
  24. package/dist/esm/src/errors/associations/ArrayTargetOnlyOnPolymorphicBelongsTo.js +16 -0
  25. package/dist/esm/src/errors/associations/JoinAttemptedOnMissingAssociation.js +1 -1
  26. package/dist/esm/src/errors/associations/ThroughAssociationConditionsIncompatibleWithThroughAssociationSource.js +17 -0
  27. package/dist/types/src/Dream.d.ts +0 -1
  28. package/dist/types/src/dream/QueryDriver/Kysely.d.ts +55 -27
  29. package/dist/types/src/dream/internal/associationStringToNameAndAlias.d.ts +4 -0
  30. package/dist/types/src/dream/internal/associations/throughAssociationHasOptionsBesidesThroughAndSource.d.ts +11 -0
  31. package/dist/types/src/errors/associations/{ArrayTargetsIncompatibleWithThroughAssociation.d.ts → ArrayTargetIncompatibleWithThroughAssociation.d.ts} +1 -1
  32. package/dist/types/src/errors/associations/ArrayTargetOnlyOnPolymorphicBelongsTo.d.ts +10 -0
  33. package/dist/types/src/errors/associations/ThroughAssociationConditionsIncompatibleWithThroughAssociationSource.d.ts +12 -0
  34. package/dist/types/src/types/associations/shared.d.ts +2 -4
  35. package/dist/types/src/types/associations/shared.ts +2 -12
  36. package/docs/classes/Benchmark.html +2 -2
  37. package/docs/classes/CalendarDate.html +2 -2
  38. package/docs/classes/CliFileWriter.html +2 -2
  39. package/docs/classes/CreateOrFindByFailedToCreateAndFind.html +3 -3
  40. package/docs/classes/Decorators.html +19 -19
  41. package/docs/classes/Dream.html +136 -136
  42. package/docs/classes/DreamApp.html +4 -4
  43. package/docs/classes/DreamBin.html +2 -2
  44. package/docs/classes/DreamCLI.html +4 -4
  45. package/docs/classes/DreamImporter.html +2 -2
  46. package/docs/classes/DreamLogos.html +2 -2
  47. package/docs/classes/DreamMigrationHelpers.html +7 -7
  48. package/docs/classes/DreamSerializerBuilder.html +8 -8
  49. package/docs/classes/DreamTransaction.html +2 -2
  50. package/docs/classes/Encrypt.html +2 -2
  51. package/docs/classes/Env.html +2 -2
  52. package/docs/classes/GlobalNameNotSet.html +3 -3
  53. package/docs/classes/NonLoadedAssociation.html +3 -3
  54. package/docs/classes/ObjectSerializerBuilder.html +8 -8
  55. package/docs/classes/Query.html +60 -60
  56. package/docs/classes/Range.html +2 -2
  57. package/docs/classes/RecordNotFound.html +3 -3
  58. package/docs/classes/ValidationError.html +3 -3
  59. package/docs/functions/DreamSerializer.html +1 -1
  60. package/docs/functions/ObjectSerializer.html +1 -1
  61. package/docs/functions/ReplicaSafe.html +1 -1
  62. package/docs/functions/STI.html +1 -1
  63. package/docs/functions/SoftDelete.html +1 -1
  64. package/docs/functions/camelize.html +1 -1
  65. package/docs/functions/capitalize.html +1 -1
  66. package/docs/functions/cloneDeepSafe.html +1 -1
  67. package/docs/functions/closeAllDbConnections.html +1 -1
  68. package/docs/functions/compact.html +1 -1
  69. package/docs/functions/dreamDbConnections.html +1 -1
  70. package/docs/functions/dreamPath.html +1 -1
  71. package/docs/functions/expandStiClasses.html +1 -1
  72. package/docs/functions/generateDream.html +1 -1
  73. package/docs/functions/globalClassNameFromFullyQualifiedModelName.html +1 -1
  74. package/docs/functions/groupBy.html +1 -1
  75. package/docs/functions/hyphenize.html +1 -1
  76. package/docs/functions/inferSerializerFromDreamOrViewModel.html +1 -1
  77. package/docs/functions/inferSerializersFromDreamClassOrViewModelClass.html +1 -1
  78. package/docs/functions/intersection.html +1 -1
  79. package/docs/functions/isDreamSerializer.html +1 -1
  80. package/docs/functions/isEmpty.html +1 -1
  81. package/docs/functions/loadRepl.html +1 -1
  82. package/docs/functions/lookupClassByGlobalName.html +1 -1
  83. package/docs/functions/normalizeUnicode.html +1 -1
  84. package/docs/functions/pascalize.html +1 -1
  85. package/docs/functions/pgErrorType.html +1 -1
  86. package/docs/functions/range-1.html +1 -1
  87. package/docs/functions/relativeDreamPath.html +1 -1
  88. package/docs/functions/round.html +1 -1
  89. package/docs/functions/serializerNameFromFullyQualifiedModelName.html +1 -1
  90. package/docs/functions/sharedPathPrefix.html +1 -1
  91. package/docs/functions/snakeify.html +1 -1
  92. package/docs/functions/sort.html +1 -1
  93. package/docs/functions/sortBy.html +1 -1
  94. package/docs/functions/sortObjectByKey.html +1 -1
  95. package/docs/functions/sortObjectByValue.html +1 -1
  96. package/docs/functions/standardizeFullyQualifiedModelName.html +1 -1
  97. package/docs/functions/uncapitalize.html +1 -1
  98. package/docs/functions/uniq.html +1 -1
  99. package/docs/functions/untypedDb.html +1 -1
  100. package/docs/functions/validateColumn.html +1 -1
  101. package/docs/functions/validateTable.html +1 -1
  102. package/docs/interfaces/BelongsToStatement.html +2 -2
  103. package/docs/interfaces/DecoratorContext.html +2 -2
  104. package/docs/interfaces/DreamAppInitOptions.html +2 -2
  105. package/docs/interfaces/DreamAppOpts.html +2 -2
  106. package/docs/interfaces/EncryptOptions.html +2 -2
  107. package/docs/interfaces/InternalAnyTypedSerializerRendersMany.html +2 -2
  108. package/docs/interfaces/InternalAnyTypedSerializerRendersOne.html +2 -2
  109. package/docs/interfaces/OpenapiDescription.html +2 -2
  110. package/docs/interfaces/OpenapiSchemaProperties.html +1 -1
  111. package/docs/interfaces/OpenapiSchemaPropertiesShorthand.html +1 -1
  112. package/docs/interfaces/OpenapiTypeFieldObject.html +1 -1
  113. package/docs/interfaces/SerializerRendererOpts.html +2 -2
  114. package/docs/types/Camelized.html +1 -1
  115. package/docs/types/CommonOpenapiSchemaObjectFields.html +1 -1
  116. package/docs/types/DateTime.html +1 -1
  117. package/docs/types/DbConnectionType.html +1 -1
  118. package/docs/types/DbTypes.html +1 -1
  119. package/docs/types/DreamAppAllowedPackageManagersEnum.html +1 -1
  120. package/docs/types/DreamAssociationMetadata.html +1 -1
  121. package/docs/types/DreamAttributes.html +1 -1
  122. package/docs/types/DreamClassAssociationAndStatement.html +1 -1
  123. package/docs/types/DreamClassColumn.html +1 -1
  124. package/docs/types/DreamColumn.html +1 -1
  125. package/docs/types/DreamColumnNames.html +1 -1
  126. package/docs/types/DreamLogLevel.html +1 -1
  127. package/docs/types/DreamLogger.html +1 -1
  128. package/docs/types/DreamModelSerializerType.html +1 -1
  129. package/docs/types/DreamOrViewModelClassSerializerKey.html +1 -1
  130. package/docs/types/DreamOrViewModelSerializerKey.html +1 -1
  131. package/docs/types/DreamParamSafeAttributes.html +1 -1
  132. package/docs/types/DreamParamSafeColumnNames.html +1 -1
  133. package/docs/types/DreamSerializable.html +1 -1
  134. package/docs/types/DreamSerializableArray.html +1 -1
  135. package/docs/types/DreamSerializerKey.html +1 -1
  136. package/docs/types/DreamSerializers.html +1 -1
  137. package/docs/types/DreamTableSchema.html +1 -1
  138. package/docs/types/DreamVirtualColumns.html +1 -1
  139. package/docs/types/EncryptAlgorithm.html +1 -1
  140. package/docs/types/HasManyStatement.html +1 -1
  141. package/docs/types/HasOneStatement.html +1 -1
  142. package/docs/types/Hyphenized.html +1 -1
  143. package/docs/types/IdType.html +1 -1
  144. package/docs/types/OpenapiAllTypes.html +1 -1
  145. package/docs/types/OpenapiFormats.html +1 -1
  146. package/docs/types/OpenapiNumberFormats.html +1 -1
  147. package/docs/types/OpenapiPrimitiveBaseTypes.html +1 -1
  148. package/docs/types/OpenapiPrimitiveTypes.html +1 -1
  149. package/docs/types/OpenapiSchemaArray.html +1 -1
  150. package/docs/types/OpenapiSchemaArrayShorthand.html +1 -1
  151. package/docs/types/OpenapiSchemaBase.html +1 -1
  152. package/docs/types/OpenapiSchemaBody.html +1 -1
  153. package/docs/types/OpenapiSchemaBodyShorthand.html +1 -1
  154. package/docs/types/OpenapiSchemaCommonFields.html +1 -1
  155. package/docs/types/OpenapiSchemaExpressionAllOf.html +1 -1
  156. package/docs/types/OpenapiSchemaExpressionAnyOf.html +1 -1
  157. package/docs/types/OpenapiSchemaExpressionOneOf.html +1 -1
  158. package/docs/types/OpenapiSchemaExpressionRef.html +1 -1
  159. package/docs/types/OpenapiSchemaExpressionRefSchemaShorthand.html +1 -1
  160. package/docs/types/OpenapiSchemaInteger.html +1 -1
  161. package/docs/types/OpenapiSchemaNull.html +1 -1
  162. package/docs/types/OpenapiSchemaNumber.html +1 -1
  163. package/docs/types/OpenapiSchemaObject.html +1 -1
  164. package/docs/types/OpenapiSchemaObjectAllOf.html +1 -1
  165. package/docs/types/OpenapiSchemaObjectAllOfShorthand.html +1 -1
  166. package/docs/types/OpenapiSchemaObjectAnyOf.html +1 -1
  167. package/docs/types/OpenapiSchemaObjectAnyOfShorthand.html +1 -1
  168. package/docs/types/OpenapiSchemaObjectBase.html +1 -1
  169. package/docs/types/OpenapiSchemaObjectBaseShorthand.html +1 -1
  170. package/docs/types/OpenapiSchemaObjectOneOf.html +1 -1
  171. package/docs/types/OpenapiSchemaObjectOneOfShorthand.html +1 -1
  172. package/docs/types/OpenapiSchemaObjectShorthand.html +1 -1
  173. package/docs/types/OpenapiSchemaPrimitiveGeneric.html +1 -1
  174. package/docs/types/OpenapiSchemaShorthandExpressionAllOf.html +1 -1
  175. package/docs/types/OpenapiSchemaShorthandExpressionAnyOf.html +1 -1
  176. package/docs/types/OpenapiSchemaShorthandExpressionOneOf.html +1 -1
  177. package/docs/types/OpenapiSchemaShorthandExpressionSerializableRef.html +1 -1
  178. package/docs/types/OpenapiSchemaShorthandExpressionSerializerRef.html +1 -1
  179. package/docs/types/OpenapiSchemaShorthandPrimitiveGeneric.html +1 -1
  180. package/docs/types/OpenapiSchemaString.html +1 -1
  181. package/docs/types/OpenapiShorthandAllTypes.html +1 -1
  182. package/docs/types/OpenapiShorthandPrimitiveBaseTypes.html +1 -1
  183. package/docs/types/OpenapiShorthandPrimitiveTypes.html +1 -1
  184. package/docs/types/OpenapiTypeField.html +1 -1
  185. package/docs/types/Pascalized.html +1 -1
  186. package/docs/types/PrimaryKeyType.html +1 -1
  187. package/docs/types/RoundingPrecision.html +1 -1
  188. package/docs/types/SerializerCasing.html +1 -1
  189. package/docs/types/SimpleObjectSerializerType.html +1 -1
  190. package/docs/types/Snakeified.html +1 -1
  191. package/docs/types/Timestamp.html +1 -1
  192. package/docs/types/UpdateableAssociationProperties.html +1 -1
  193. package/docs/types/UpdateableProperties.html +1 -1
  194. package/docs/types/ValidationType.html +1 -1
  195. package/docs/types/ViewModel.html +1 -1
  196. package/docs/types/ViewModelClass.html +1 -1
  197. package/docs/types/WhereStatementForDream.html +1 -1
  198. package/docs/types/WhereStatementForDreamClass.html +1 -1
  199. package/docs/variables/DateTime-1.html +1 -1
  200. package/docs/variables/DreamAppAllowedPackageManagersEnumValues.html +1 -1
  201. package/docs/variables/DreamConst.html +1 -1
  202. package/docs/variables/TRIGRAM_OPERATORS.html +1 -1
  203. package/docs/variables/openapiPrimitiveTypes-1.html +1 -1
  204. package/docs/variables/openapiShorthandPrimitiveTypes-1.html +1 -1
  205. package/docs/variables/ops.html +1 -1
  206. package/docs/variables/primaryKeyTypes.html +1 -1
  207. package/package.json +2 -2
  208. package/CHANGELOG.md +0 -23
  209. package/dist/cjs/src/errors/associations/CannotAssociateThroughMultiplePolymorphics.js +0 -27
  210. package/dist/esm/src/errors/associations/CannotAssociateThroughMultiplePolymorphics.js +0 -24
  211. package/dist/types/src/dream/internal/extractAssociationMetadataFromAssociationName.d.ts +0 -4
  212. package/dist/types/src/errors/associations/CannotAssociateThroughMultiplePolymorphics.d.ts +0 -17
@@ -15,10 +15,10 @@ const associationUpdateQuery_js_1 = require("./dream/internal/associations/assoc
15
15
  const createAssociation_js_1 = require("./dream/internal/associations/createAssociation.js");
16
16
  const destroyAssociation_js_1 = require("./dream/internal/associations/destroyAssociation.js");
17
17
  const undestroyAssociation_js_1 = require("./dream/internal/associations/undestroyAssociation.js");
18
+ const associationStringToNameAndAlias_js_1 = require("./dream/internal/associationStringToNameAndAlias.js");
18
19
  const destroyDream_js_1 = require("./dream/internal/destroyDream.js");
19
20
  const destroyOptions_js_1 = require("./dream/internal/destroyOptions.js");
20
21
  const ensureSTITypeFieldIsSet_js_1 = require("./dream/internal/ensureSTITypeFieldIsSet.js");
21
- const extractAssociationMetadataFromAssociationName_js_1 = require("./dream/internal/extractAssociationMetadataFromAssociationName.js");
22
22
  const findOrCreateBy_js_1 = require("./dream/internal/findOrCreateBy.js");
23
23
  const reload_js_1 = require("./dream/internal/reload.js");
24
24
  const runValidations_js_1 = require("./dream/internal/runValidations.js");
@@ -636,7 +636,7 @@ class Dream {
636
636
  * @returns Association metadata for the requested association
637
637
  */
638
638
  static getAssociationMetadata(associationName) {
639
- return this.associationMetadataMap()[(0, extractAssociationMetadataFromAssociationName_js_1.default)(associationName).name];
639
+ return this.associationMetadataMap()[(0, associationStringToNameAndAlias_js_1.default)(associationName).name];
640
640
  }
641
641
  /**
642
642
  * @internal
@@ -1812,7 +1812,6 @@ class Dream {
1812
1812
  * // as: 'ratings',
1813
1813
  * // polymorphic: true,
1814
1814
  * // source: 'ratings',
1815
- * // preloadThroughColumns: undefined,
1816
1815
  * // where: undefined,
1817
1816
  * // whereNot: undefined,
1818
1817
  * // selfWhere: undefined,
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.default = BelongsTo;
4
4
  const lookupModelByGlobalNameOrNames_js_1 = require("../../../dream-app/helpers/lookupModelByGlobalNameOrNames.js");
5
+ const ArrayTargetOnlyOnPolymorphicBelongsTo_js_1 = require("../../../errors/associations/ArrayTargetOnlyOnPolymorphicBelongsTo.js");
5
6
  const Validates_js_1 = require("../validation/Validates.js");
6
7
  const shared_js_1 = require("./shared.js");
7
8
  /**
@@ -47,6 +48,8 @@ function BelongsTo(globalAssociationNameOrNames, opts = {}) {
47
48
  delete this[key];
48
49
  return;
49
50
  }
51
+ if (Array.isArray(globalAssociationNameOrNames) && !polymorphic)
52
+ throw new ArrayTargetOnlyOnPolymorphicBelongsTo_js_1.default({ dreamClass, associationName: key });
50
53
  const partialAssociation = (0, shared_js_1.associationPrimaryKeyAccessors)({
51
54
  modelCB: () => (0, lookupModelByGlobalNameOrNames_js_1.default)(globalAssociationNameOrNames),
52
55
  globalAssociationNameOrNames,
@@ -29,7 +29,6 @@ const shared_js_1 = require("./shared.js");
29
29
  * @param opts.andAny - An andAny clause to be applied when this association is loaded
30
30
  * @param opts.order - A custom order statement to apply to this association.
31
31
  * @param opts.polymorphic - If true, this association will be treated as a polymorphic association.
32
- * @param opts.preloadThroughColumns - An array of columns to pluck off the through association attached to this association. Can only be set if `through` is also set.
33
32
  * @param opts.primaryKeyOverride - A custom column name to use for the primary key.
34
33
  * @param opts.selfAnd - Adds an and-clause to an association between a column on the associated model and a column on this model.
35
34
  * @param opts.selfAndNot - Adds a not and-clause to an association between a column on the associated model and a column on this model.
@@ -38,7 +37,7 @@ const shared_js_1 = require("./shared.js");
38
37
  * @param opts.withoutDefaultScopes - A list of default scopes to bypass when loading this association
39
38
  */
40
39
  function HasMany(globalAssociationNameOrNames, opts = {}) {
41
- const { dependent, distinct, foreignKey, and, andNot, andAny, order, polymorphic = false, preloadThroughColumns, primaryKeyOverride = null, selfAnd, selfAndNot, source, through, withoutDefaultScopes, } = opts;
40
+ const { dependent, distinct, foreignKey, and, andNot, andAny, order, polymorphic = false, primaryKeyOverride = null, selfAnd, selfAndNot, source, through, withoutDefaultScopes, } = opts;
42
41
  return function (_, context) {
43
42
  const key = context.name;
44
43
  context.addInitializer(function () {
@@ -71,7 +70,6 @@ function HasMany(globalAssociationNameOrNames, opts = {}) {
71
70
  andNot,
72
71
  andAny,
73
72
  polymorphic,
74
- preloadThroughColumns,
75
73
  primaryKeyOverride,
76
74
  selfAnd,
77
75
  selfAndNot,
@@ -27,7 +27,6 @@ const shared_js_1 = require("./shared.js");
27
27
  * @param opts.andNot - A not and-clause to be applied when this association is loaded
28
28
  * @param opts.andAny - An andAny clause to be applied when this association is loaded
29
29
  * @param opts.polymorphic - If true, this association will be treated as a polymorphic association.
30
- * @param opts.preloadThroughColumns - An array of columns to pluck off the through association attached to this association. Can only be set if `through` is also set.
31
30
  * @param opts.primaryKeyOverride - A custom column name to use for the primary key.
32
31
  * @param opts.selfAnd - Adds an and-clause to an association between a column on the associated model and a column on this model.
33
32
  * @param opts.selfAndNot - Adds a not and-clause to an association between a column on the associated model and a column on this model.
@@ -36,7 +35,7 @@ const shared_js_1 = require("./shared.js");
36
35
  * @param opts.withoutDefaultScopes - A list of default scopes to bypass when loading this association
37
36
  */
38
37
  function HasOne(globalAssociationNameOrNames, opts = {}) {
39
- const { dependent, foreignKey, and, andNot, andAny, polymorphic = false, preloadThroughColumns, primaryKeyOverride = null, selfAnd, selfAndNot, source, through, withoutDefaultScopes, } = opts;
38
+ const { dependent, foreignKey, and, andNot, andAny, polymorphic = false, primaryKeyOverride = null, selfAnd, selfAndNot, source, through, withoutDefaultScopes, } = opts;
40
39
  return function (_, context) {
41
40
  const key = context.name;
42
41
  context.addInitializer(function () {
@@ -69,7 +68,6 @@ function HasOne(globalAssociationNameOrNames, opts = {}) {
69
68
  andNot,
70
69
  andAny,
71
70
  polymorphic,
72
- preloadThroughColumns,
73
71
  primaryKeyOverride,
74
72
  selfAnd,
75
73
  selfAndNot,