@rvoh/dream 2.35.0 → 2.36.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/README.md +2 -2
- package/dist/cjs/src/Dream.js +260 -55
- package/dist/cjs/src/bin/index.js +13 -0
- package/dist/cjs/src/cli/index.js +28 -17
- package/dist/cjs/src/db/migration-helpers/DreamMigrationHelpers.js +23 -21
- package/dist/cjs/src/decorators/Decorators.js +26 -4
- package/dist/cjs/src/decorators/field/Encrypted.js +35 -6
- package/dist/cjs/src/dream/DreamClassTransactionBuilder.js +6 -6
- package/dist/cjs/src/dream/DreamInstanceTransactionBuilder.js +63 -27
- package/dist/cjs/src/dream/LeftJoinLoadBuilder.js +3 -3
- package/dist/cjs/src/dream/LoadBuilder.js +1 -1
- package/dist/cjs/src/dream/Query.js +542 -167
- package/dist/cjs/src/dream/QueryDriver/Base.js +72 -0
- package/dist/cjs/src/dream/QueryDriver/Kysely.js +216 -50
- package/dist/cjs/src/dream/internal/associations/assertRecognizedAssociationConditionKeys.js +48 -0
- package/dist/cjs/src/dream/internal/associations/associationQuery.js +4 -0
- package/dist/cjs/src/dream/internal/reload.js +6 -1
- package/dist/cjs/src/dream/internal/saveDream.js +8 -2
- package/dist/cjs/src/dream/internal/sqlResultToDreamInstance.js +2 -0
- package/dist/cjs/src/dream/internal/undestroyDream.js +1 -1
- package/dist/cjs/src/dream-app/index.js +38 -0
- package/dist/cjs/src/encrypt/InternalEncrypt.js +77 -4
- package/dist/cjs/src/encrypt/defaultEncryptedColumnName.js +10 -0
- package/dist/cjs/src/encrypt/index.js +76 -9
- package/dist/cjs/src/errors/DoNotSetEncryptedFieldsDirectly.js +4 -0
- package/dist/cjs/src/errors/associations/UnrecognizedAssociationConditionKeys.js +25 -0
- package/dist/cjs/src/helpers/Env.js +28 -0
- package/dist/cjs/src/helpers/cli/generateDreamContent.js +2 -1
- package/dist/cjs/src/helpers/cli/generateFactoryContent.js +1 -1
- package/dist/cjs/src/helpers/cli/generateMigrationContent.js +9 -9
- package/dist/cjs/src/helpers/cli/generateSerializerContent.js +21 -8
- package/dist/cjs/src/serializer/SerializerRenderer.js +65 -13
- package/dist/cjs/src/serializer/builders/DreamSerializerBuilder.js +54 -38
- package/dist/cjs/src/serializer/builders/ObjectSerializerBuilder.js +34 -14
- package/dist/cjs/src/serializer/helpers/serializersForAssociatedClass.js +43 -0
- package/dist/esm/src/Dream.js +260 -55
- package/dist/esm/src/bin/index.js +13 -0
- package/dist/esm/src/cli/index.js +28 -17
- package/dist/esm/src/db/migration-helpers/DreamMigrationHelpers.js +23 -21
- package/dist/esm/src/decorators/Decorators.js +26 -4
- package/dist/esm/src/decorators/field/Encrypted.js +35 -6
- package/dist/esm/src/dream/DreamClassTransactionBuilder.js +6 -6
- package/dist/esm/src/dream/DreamInstanceTransactionBuilder.js +63 -27
- package/dist/esm/src/dream/LeftJoinLoadBuilder.js +3 -3
- package/dist/esm/src/dream/LoadBuilder.js +1 -1
- package/dist/esm/src/dream/Query.js +542 -167
- package/dist/esm/src/dream/QueryDriver/Base.js +72 -0
- package/dist/esm/src/dream/QueryDriver/Kysely.js +216 -50
- package/dist/esm/src/dream/internal/associations/assertRecognizedAssociationConditionKeys.js +48 -0
- package/dist/esm/src/dream/internal/associations/associationQuery.js +4 -0
- package/dist/esm/src/dream/internal/reload.js +6 -1
- package/dist/esm/src/dream/internal/saveDream.js +8 -2
- package/dist/esm/src/dream/internal/sqlResultToDreamInstance.js +2 -0
- package/dist/esm/src/dream/internal/undestroyDream.js +1 -1
- package/dist/esm/src/dream-app/index.js +38 -0
- package/dist/esm/src/encrypt/InternalEncrypt.js +77 -4
- package/dist/esm/src/encrypt/defaultEncryptedColumnName.js +10 -0
- package/dist/esm/src/encrypt/index.js +76 -9
- package/dist/esm/src/errors/DoNotSetEncryptedFieldsDirectly.js +4 -0
- package/dist/esm/src/errors/associations/UnrecognizedAssociationConditionKeys.js +25 -0
- package/dist/esm/src/helpers/Env.js +28 -0
- package/dist/esm/src/helpers/cli/generateDreamContent.js +2 -1
- package/dist/esm/src/helpers/cli/generateFactoryContent.js +1 -1
- package/dist/esm/src/helpers/cli/generateMigrationContent.js +9 -9
- package/dist/esm/src/helpers/cli/generateSerializerContent.js +21 -8
- package/dist/esm/src/serializer/SerializerRenderer.js +65 -13
- package/dist/esm/src/serializer/builders/DreamSerializerBuilder.js +54 -38
- package/dist/esm/src/serializer/builders/ObjectSerializerBuilder.js +34 -14
- package/dist/esm/src/serializer/helpers/serializersForAssociatedClass.js +43 -0
- package/dist/types/src/Dream.d.ts +208 -42
- package/dist/types/src/bin/index.d.ts +7 -1
- package/dist/types/src/cli/index.d.ts +13 -0
- package/dist/types/src/db/migration-helpers/DreamMigrationHelpers.d.ts +2 -2
- package/dist/types/src/decorators/Decorators.d.ts +26 -3
- package/dist/types/src/decorators/field/Encrypted.d.ts +6 -1
- package/dist/types/src/dream/DreamClassTransactionBuilder.d.ts +9 -9
- package/dist/types/src/dream/DreamInstanceTransactionBuilder.d.ts +52 -25
- package/dist/types/src/dream/LeftJoinLoadBuilder.d.ts +4 -4
- package/dist/types/src/dream/LoadBuilder.d.ts +1 -1
- package/dist/types/src/dream/Query.d.ts +272 -33
- package/dist/types/src/dream/QueryDriver/Base.d.ts +63 -1
- package/dist/types/src/dream/QueryDriver/Kysely.d.ts +85 -1
- package/dist/types/src/dream/internal/associations/assertRecognizedAssociationConditionKeys.d.ts +29 -0
- package/dist/types/src/dream-app/index.d.ts +56 -2
- package/dist/types/src/encrypt/InternalEncrypt.d.ts +29 -1
- package/dist/types/src/encrypt/defaultEncryptedColumnName.d.ts +7 -0
- package/dist/types/src/encrypt/index.d.ts +75 -6
- package/dist/types/src/errors/associations/UnrecognizedAssociationConditionKeys.d.ts +8 -0
- package/dist/types/src/helpers/Env.d.ts +28 -0
- package/dist/types/src/package-exports/openapi.d.ts +1 -1
- package/dist/types/src/package-exports/types.d.ts +2 -2
- package/dist/types/src/serializer/SerializerRenderer.d.ts +13 -0
- package/dist/types/src/serializer/builders/DreamSerializerBuilder.d.ts +59 -55
- package/dist/types/src/serializer/builders/ObjectSerializerBuilder.d.ts +40 -19
- package/dist/types/src/serializer/helpers/serializersForAssociatedClass.d.ts +17 -0
- package/dist/types/src/types/lifecycle.d.ts +6 -0
- package/dist/types/src/types/openapi.d.ts +52 -29
- package/dist/types/src/types/serializer.d.ts +43 -2
- package/dist/types/src/types/types/lifecycle.ts +6 -0
- package/dist/types/src/types/types/openapi.ts +51 -37
- package/dist/types/src/types/types/serializer.ts +62 -2
- package/dist/types/src/types/types/variadic.ts +99 -43
- package/dist/types/src/types/variadic.d.ts +29 -3
- package/docs/assets/hierarchy.js +1 -1
- package/docs/assets/highlight.css +4 -11
- package/docs/assets/navigation.js +1 -1
- package/docs/assets/search.js +1 -1
- package/docs/classes/db.DreamMigrationHelpers.html +13 -13
- package/docs/classes/db.KyselyQueryDriver.html +85 -46
- package/docs/classes/db.PostgresQueryDriver.html +86 -47
- package/docs/classes/db.QueryDriverBase.html +84 -45
- package/docs/classes/errors.CannotSaveMissingDream.html +2 -2
- package/docs/classes/errors.CheckConstraintViolation.html +3 -3
- package/docs/classes/errors.ColumnOverflow.html +3 -3
- package/docs/classes/errors.CreateOrFindByFailedToCreateAndFind.html +3 -3
- package/docs/classes/errors.DataIncompatibleWithDatabaseField.html +3 -3
- package/docs/classes/errors.DataTypeColumnTypeMismatch.html +3 -3
- package/docs/classes/errors.DecryptionError.html +2 -2
- package/docs/classes/errors.DecryptionParseError.html +2 -2
- package/docs/classes/errors.DecryptionRotationError.html +3 -3
- package/docs/classes/errors.GlobalNameNotSet.html +3 -3
- package/docs/classes/errors.InvalidCalendarDate.html +2 -2
- package/docs/classes/errors.InvalidClockTime.html +2 -2
- package/docs/classes/errors.InvalidClockTimeTz.html +2 -2
- package/docs/classes/errors.InvalidDateTime.html +2 -2
- package/docs/classes/errors.MissingSerializersDefinition.html +3 -3
- package/docs/classes/errors.NonLoadedAssociation.html +3 -3
- package/docs/classes/errors.NotNullViolation.html +3 -3
- package/docs/classes/errors.RecordNotFound.html +3 -3
- package/docs/classes/errors.SortableScopeDidNotStabilize.html +3 -3
- package/docs/classes/errors.SortableScopeLockWaitTimedOut.html +3 -3
- package/docs/classes/errors.ValidationError.html +3 -3
- package/docs/classes/index.CalendarDate.html +33 -33
- package/docs/classes/index.ClockTime.html +32 -32
- package/docs/classes/index.ClockTimeTz.html +35 -35
- package/docs/classes/index.DateTime.html +86 -86
- package/docs/classes/index.Decorators.html +37 -23
- package/docs/classes/index.Dream.html +270 -142
- package/docs/classes/index.DreamApp.html +40 -10
- package/docs/classes/index.DreamTransaction.html +3 -3
- package/docs/classes/index.Env.html +16 -2
- package/docs/classes/index.Query.html +331 -129
- package/docs/classes/system.CliFileWriter.html +4 -4
- package/docs/classes/system.DreamBin.html +6 -2
- package/docs/classes/system.DreamCLI.html +7 -7
- package/docs/classes/system.DreamImporter.html +2 -2
- package/docs/classes/system.DreamLogos.html +2 -2
- package/docs/classes/system.DreamSerializerBuilder.html +52 -34
- package/docs/classes/system.ObjectSerializerBuilder.html +41 -22
- package/docs/classes/system.PathHelpers.html +4 -4
- package/docs/classes/utils.Encrypt.html +54 -10
- package/docs/classes/utils.Range.html +2 -2
- package/docs/functions/db.closeAllDbConnections.html +1 -1
- package/docs/functions/db.dreamDbConnections.html +1 -1
- package/docs/functions/db.untypedDb.html +1 -1
- package/docs/functions/db.validateColumn.html +1 -1
- package/docs/functions/db.validateTable.html +1 -1
- package/docs/functions/errors.pgErrorType.html +1 -1
- package/docs/functions/index.DreamSerializer.html +1 -1
- package/docs/functions/index.ObjectSerializer.html +1 -1
- package/docs/functions/index.ReplicaSafe.html +1 -1
- package/docs/functions/index.STI.html +1 -1
- package/docs/functions/index.SoftDelete.html +1 -1
- package/docs/functions/utils.camelize.html +1 -1
- package/docs/functions/utils.capitalize.html +1 -1
- package/docs/functions/utils.cloneDeepSafe.html +1 -1
- package/docs/functions/utils.compact.html +1 -1
- package/docs/functions/utils.groupBy.html +1 -1
- package/docs/functions/utils.hyphenize.html +1 -1
- package/docs/functions/utils.intersection.html +1 -1
- package/docs/functions/utils.isEmpty.html +1 -1
- package/docs/functions/utils.normalizeUnicode.html +1 -1
- package/docs/functions/utils.pascalize.html +1 -1
- package/docs/functions/utils.percent.html +1 -1
- package/docs/functions/utils.range.html +1 -1
- package/docs/functions/utils.round.html +1 -1
- package/docs/functions/utils.sanitizeString.html +1 -1
- package/docs/functions/utils.snakeify.html +1 -1
- package/docs/functions/utils.sort.html +1 -1
- package/docs/functions/utils.sortBy.html +1 -1
- package/docs/functions/utils.sortObjectByKey.html +1 -1
- package/docs/functions/utils.sortObjectByValue.html +1 -1
- package/docs/functions/utils.uncapitalize.html +1 -1
- package/docs/functions/utils.uniq.html +1 -1
- package/docs/hierarchy.html +1 -1
- package/docs/index.html +1 -1
- package/docs/interfaces/openapi.OpenapiDescription.html +2 -2
- package/docs/interfaces/openapi.OpenapiSchemaProperties.html +1 -1
- package/docs/interfaces/openapi.OpenapiSchemaPropertiesShorthand.html +1 -1
- package/docs/interfaces/openapi.OpenapiTypeFieldObject.html +1 -1
- package/docs/interfaces/types.BelongsToStatement.html +2 -2
- package/docs/interfaces/types.DecoratorContext.html +2 -2
- package/docs/interfaces/types.DecryptCallbacks.html +6 -0
- package/docs/interfaces/types.DreamAppInitOptions.html +2 -2
- package/docs/interfaces/types.DreamAppOpts.html +2 -2
- package/docs/interfaces/types.DreamDbConfig.html +6 -6
- package/docs/interfaces/types.DurationObject.html +2 -2
- package/docs/interfaces/types.EncryptOptions.html +2 -2
- package/docs/interfaces/types.EncryptionLegacyKeyUsedEvent.html +10 -0
- package/docs/interfaces/types.InternalAnyTypedSerializerRendersMany.html +2 -2
- package/docs/interfaces/types.InternalAnyTypedSerializerRendersOne.html +2 -2
- package/docs/interfaces/types.SerializerRendererOpts.html +2 -2
- package/docs/modules/openapi.html +1 -1
- package/docs/modules/types.html +1 -1
- package/docs/types/openapi.CommonOpenapiSchemaObjectFields.html +1 -1
- package/docs/types/openapi.OpenapiAllTypes.html +1 -1
- package/docs/types/openapi.OpenapiFormats.html +1 -1
- package/docs/types/openapi.OpenapiNumberFormats.html +1 -1
- package/docs/types/openapi.OpenapiPrimitiveBaseTypes.html +1 -1
- package/docs/types/openapi.OpenapiPrimitiveTypes.html +1 -1
- package/docs/types/openapi.OpenapiSchemaArray.html +1 -1
- package/docs/types/openapi.OpenapiSchemaArrayShorthand.html +1 -1
- package/docs/types/openapi.OpenapiSchemaBase.html +1 -1
- package/docs/types/openapi.OpenapiSchemaBody.html +1 -1
- package/docs/types/openapi.OpenapiSchemaBodyShorthand.html +1 -1
- package/docs/types/openapi.OpenapiSchemaCombinatorFields.html +4 -0
- package/docs/types/openapi.OpenapiSchemaCommonFields.html +5 -1
- package/docs/types/openapi.OpenapiSchemaExpressionAllOf.html +1 -2
- package/docs/types/openapi.OpenapiSchemaExpressionAnyOf.html +1 -2
- package/docs/types/openapi.OpenapiSchemaExpressionOneOf.html +1 -2
- package/docs/types/openapi.OpenapiSchemaExpressionRef.html +2 -2
- package/docs/types/openapi.OpenapiSchemaExpressionRefSchemaShorthand.html +2 -2
- package/docs/types/openapi.OpenapiSchemaInteger.html +1 -1
- package/docs/types/openapi.OpenapiSchemaNull.html +4 -2
- package/docs/types/openapi.OpenapiSchemaNumber.html +1 -1
- package/docs/types/openapi.OpenapiSchemaObject.html +1 -1
- package/docs/types/openapi.OpenapiSchemaObjectAllOf.html +5 -1
- package/docs/types/openapi.OpenapiSchemaObjectAllOfShorthand.html +2 -1
- package/docs/types/openapi.OpenapiSchemaObjectBase.html +1 -1
- package/docs/types/openapi.OpenapiSchemaObjectBaseShorthand.html +1 -1
- package/docs/types/openapi.OpenapiSchemaObjectShorthand.html +1 -1
- package/docs/types/openapi.OpenapiSchemaPrimitiveGeneric.html +1 -1
- package/docs/types/openapi.OpenapiSchemaShorthandExpressionAllOf.html +1 -2
- package/docs/types/openapi.OpenapiSchemaShorthandExpressionAnyOf.html +1 -2
- package/docs/types/openapi.OpenapiSchemaShorthandExpressionOneOf.html +1 -2
- package/docs/types/openapi.OpenapiSchemaShorthandExpressionSerializableRef.html +2 -2
- package/docs/types/openapi.OpenapiSchemaShorthandExpressionSerializerRef.html +2 -2
- package/docs/types/openapi.OpenapiSchemaShorthandPrimitiveGeneric.html +1 -1
- package/docs/types/openapi.OpenapiSchemaString.html +1 -1
- package/docs/types/openapi.OpenapiShorthandAllTypes.html +1 -1
- package/docs/types/openapi.OpenapiShorthandPrimitiveBaseTypes.html +1 -1
- package/docs/types/openapi.OpenapiShorthandPrimitiveTypes.html +1 -1
- package/docs/types/openapi.OpenapiTypeField.html +1 -1
- package/docs/types/system.DreamAppAllowedPackageManagersEnum.html +1 -1
- package/docs/types/types.CalendarDateDurationUnit.html +1 -1
- package/docs/types/types.CalendarDateObject.html +1 -1
- package/docs/types/types.Camelized.html +1 -1
- package/docs/types/types.ClockTimeObject.html +1 -1
- package/docs/types/types.DbConnectionType.html +1 -1
- package/docs/types/types.DbTypes.html +1 -1
- package/docs/types/types.DreamAssociationMetadata.html +1 -1
- package/docs/types/types.DreamAttributes.html +1 -1
- package/docs/types/types.DreamClassAssociationAndStatement.html +1 -1
- package/docs/types/types.DreamClassColumn.html +1 -1
- package/docs/types/types.DreamColumn.html +1 -1
- package/docs/types/types.DreamColumnNames.html +1 -1
- package/docs/types/types.DreamLogLevel.html +1 -1
- package/docs/types/types.DreamLogger.html +2 -2
- package/docs/types/types.DreamModelSerializerType.html +1 -1
- package/docs/types/types.DreamOrViewModelClassSerializerKey.html +1 -1
- package/docs/types/types.DreamOrViewModelSerializerKey.html +1 -1
- package/docs/types/types.DreamParamSafeAttributes.html +1 -1
- package/docs/types/types.DreamParamSafeColumnNames.html +1 -1
- package/docs/types/types.DreamSerializable.html +1 -1
- package/docs/types/types.DreamSerializableArray.html +1 -1
- package/docs/types/types.DreamSerializerKey.html +1 -1
- package/docs/types/types.DreamSerializers.html +1 -1
- package/docs/types/types.DreamVirtualColumns.html +1 -1
- package/docs/types/types.DurationUnit.html +1 -1
- package/docs/types/types.EncryptAlgorithm.html +1 -1
- package/docs/types/types.HasManyStatement.html +1 -1
- package/docs/types/types.HasOneStatement.html +1 -1
- package/docs/types/types.Hyphenized.html +1 -1
- package/docs/types/types.Pascalized.html +1 -1
- package/docs/types/types.PrimaryKeyType.html +1 -1
- package/docs/types/types.RoundingPrecision.html +1 -1
- package/docs/types/types.SerializerCasing.html +1 -1
- package/docs/types/types.SimpleObjectSerializerType.html +1 -1
- package/docs/types/types.Snakeified.html +1 -1
- package/docs/types/types.StrictInterface.html +1 -1
- package/docs/types/types.UpdateableAssociationProperties.html +1 -1
- package/docs/types/types.UpdateableProperties.html +1 -1
- package/docs/types/types.ValidationType.html +1 -1
- package/docs/types/types.ViewModel.html +2 -2
- package/docs/types/types.ViewModelClass.html +1 -1
- package/docs/types/types.WeekdayName.html +1 -1
- package/docs/types/types.WhereStatementForDream.html +1 -1
- package/docs/types/types.WhereStatementForDreamClass.html +1 -1
- package/docs/variables/index.DreamConst.html +1 -1
- package/docs/variables/index.ops.html +1 -1
- package/docs/variables/openapi.openapiPrimitiveTypes.html +1 -1
- package/docs/variables/openapi.openapiShorthandPrimitiveTypes.html +1 -1
- package/docs/variables/system.DreamAppAllowedPackageManagersEnumValues.html +1 -1
- package/docs/variables/system.primaryKeyTypes.html +1 -1
- package/package.json +1 -1
- package/dist/cjs/src/serializer/helpers/serializerForAssociatedClass.js +0 -37
- package/dist/esm/src/serializer/helpers/serializerForAssociatedClass.js +0 -37
- package/dist/types/src/serializer/helpers/serializerForAssociatedClass.d.ts +0 -9
- package/docs/types/openapi.OpenapiSchemaObjectAnyOf.html +0 -1
- package/docs/types/openapi.OpenapiSchemaObjectAnyOfShorthand.html +0 -1
- package/docs/types/openapi.OpenapiSchemaObjectOneOf.html +0 -1
- package/docs/types/openapi.OpenapiSchemaObjectOneOfShorthand.html +0 -1
|
@@ -32,17 +32,17 @@ export type OpenapiSchemaBase =
|
|
|
32
32
|
| OpenapiSchemaNull
|
|
33
33
|
| OpenapiSchemaExpressionRef
|
|
34
34
|
|
|
35
|
-
export type OpenapiSchemaShorthandExpressionAnyOf = {
|
|
35
|
+
export type OpenapiSchemaShorthandExpressionAnyOf = OpenapiSchemaCombinatorFields<{
|
|
36
36
|
anyOf: OpenapiSchemaBodyShorthand[]
|
|
37
|
-
}
|
|
37
|
+
}>
|
|
38
38
|
|
|
39
|
-
export type OpenapiSchemaShorthandExpressionOneOf = {
|
|
39
|
+
export type OpenapiSchemaShorthandExpressionOneOf = OpenapiSchemaCombinatorFields<{
|
|
40
40
|
oneOf: OpenapiSchemaBodyShorthand[]
|
|
41
|
-
}
|
|
41
|
+
}>
|
|
42
42
|
|
|
43
|
-
export type OpenapiSchemaShorthandExpressionAllOf = {
|
|
43
|
+
export type OpenapiSchemaShorthandExpressionAllOf = OpenapiSchemaCombinatorFields<{
|
|
44
44
|
allOf: OpenapiSchemaBodyShorthand[]
|
|
45
|
-
}
|
|
45
|
+
}>
|
|
46
46
|
|
|
47
47
|
export type OpenapiSchemaShorthandExpressionSerializerRef = {
|
|
48
48
|
$serializer: DreamModelSerializerType | SimpleObjectSerializerType
|
|
@@ -66,21 +66,40 @@ export type OpenapiSchemaExpressionRefSchemaShorthand = {
|
|
|
66
66
|
$schema: string
|
|
67
67
|
}
|
|
68
68
|
|
|
69
|
-
export type OpenapiSchemaExpressionAllOf = {
|
|
69
|
+
export type OpenapiSchemaExpressionAllOf = OpenapiSchemaCombinatorFields<{
|
|
70
70
|
allOf: OpenapiSchemaBody[]
|
|
71
|
-
}
|
|
71
|
+
}>
|
|
72
72
|
|
|
73
|
-
export type OpenapiSchemaExpressionAnyOf = {
|
|
73
|
+
export type OpenapiSchemaExpressionAnyOf = OpenapiSchemaCombinatorFields<{
|
|
74
74
|
anyOf: OpenapiSchemaBody[]
|
|
75
|
-
}
|
|
75
|
+
}>
|
|
76
76
|
|
|
77
|
-
export type OpenapiSchemaExpressionOneOf = {
|
|
77
|
+
export type OpenapiSchemaExpressionOneOf = OpenapiSchemaCombinatorFields<{
|
|
78
78
|
oneOf: OpenapiSchemaBody[]
|
|
79
|
-
}
|
|
79
|
+
}>
|
|
80
80
|
|
|
81
|
+
/**
|
|
82
|
+
* The fields of a schema that declares a `type`. `anyOf` and `oneOf` are not
|
|
83
|
+
* among them: they apply to every value, `null` included, so a nullable `type`
|
|
84
|
+
* beside one cannot admit `null`. A schema that may be null lists a
|
|
85
|
+
* `{ type: 'null' }` branch in its `anyOf` or `oneOf` instead.
|
|
86
|
+
*/
|
|
81
87
|
export type OpenapiSchemaCommonFields<T> = T & {
|
|
82
88
|
description?: string
|
|
83
89
|
summary?: string
|
|
90
|
+
anyOf?: never
|
|
91
|
+
oneOf?: never
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* The fields of a schema that is an `allOf`, `anyOf` or `oneOf`: the
|
|
96
|
+
* combinator and the fields that describe it, but no `type` (see
|
|
97
|
+
* `OpenapiSchemaCommonFields`).
|
|
98
|
+
*/
|
|
99
|
+
export type OpenapiSchemaCombinatorFields<T> = T & {
|
|
100
|
+
description?: string
|
|
101
|
+
summary?: string
|
|
102
|
+
type?: never
|
|
84
103
|
}
|
|
85
104
|
|
|
86
105
|
export type OpenapiSchemaString = OpenapiSchemaCommonFields<{
|
|
@@ -108,15 +127,13 @@ export type OpenapiSchemaNumber = OpenapiSchemaCommonFields<{
|
|
|
108
127
|
|
|
109
128
|
export type OpenapiSchemaNull = {
|
|
110
129
|
type: 'null'
|
|
130
|
+
anyOf?: never
|
|
131
|
+
oneOf?: never
|
|
111
132
|
}
|
|
112
133
|
|
|
113
134
|
export type OpenapiNumberFormats = 'decimal' | 'double'
|
|
114
135
|
|
|
115
|
-
export type OpenapiSchemaObject =
|
|
116
|
-
| OpenapiSchemaObjectBase
|
|
117
|
-
| OpenapiSchemaObjectOneOf
|
|
118
|
-
| OpenapiSchemaObjectAnyOf
|
|
119
|
-
| OpenapiSchemaObjectAllOf
|
|
136
|
+
export type OpenapiSchemaObject = OpenapiSchemaObjectBase | OpenapiSchemaObjectAllOf
|
|
120
137
|
|
|
121
138
|
export type OpenapiSchemaObjectBase = CommonOpenapiSchemaObjectFields<{
|
|
122
139
|
minProperties?: number
|
|
@@ -132,24 +149,23 @@ export type OpenapiSchemaObjectBase = CommonOpenapiSchemaObjectFields<{
|
|
|
132
149
|
| OpenapiSchemaExpressionAnyOf
|
|
133
150
|
| OpenapiSchemaExpressionAllOf
|
|
134
151
|
| false
|
|
152
|
+
allOf?: never
|
|
135
153
|
}>
|
|
136
154
|
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
155
|
+
/**
|
|
156
|
+
* An object schema that is also an `allOf`. Its `type` cannot be nullable:
|
|
157
|
+
* `allOf` applies to every value, so `null` would have to match each of its
|
|
158
|
+
* object members. A schema that may be null is an `anyOf` or `oneOf` with a
|
|
159
|
+
* `{ type: 'null' }` branch.
|
|
160
|
+
*/
|
|
161
|
+
export type OpenapiSchemaObjectAllOf = OpenapiSchemaCommonFields<{
|
|
162
|
+
type: 'object'
|
|
163
|
+
required?: string[]
|
|
146
164
|
allOf?: OpenapiSchemaBody[]
|
|
147
165
|
}>
|
|
148
166
|
|
|
149
167
|
export type OpenapiSchemaObjectShorthand =
|
|
150
168
|
| OpenapiSchemaObjectBaseShorthand
|
|
151
|
-
| OpenapiSchemaObjectOneOfShorthand
|
|
152
|
-
| OpenapiSchemaObjectAnyOfShorthand
|
|
153
169
|
| OpenapiSchemaObjectAllOfShorthand
|
|
154
170
|
|
|
155
171
|
export type OpenapiSchemaObjectBaseShorthand = CommonOpenapiSchemaObjectFields<{
|
|
@@ -171,17 +187,15 @@ export type OpenapiSchemaObjectBaseShorthand = CommonOpenapiSchemaObjectFields<{
|
|
|
171
187
|
| OpenapiSchemaShorthandExpressionSerializerRef
|
|
172
188
|
| OpenapiSchemaShorthandExpressionSerializableRef
|
|
173
189
|
| false
|
|
190
|
+
allOf?: never
|
|
174
191
|
}>
|
|
175
192
|
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
}>
|
|
183
|
-
|
|
184
|
-
export type OpenapiSchemaObjectAllOfShorthand = CommonOpenapiSchemaObjectFields<{
|
|
193
|
+
/**
|
|
194
|
+
* The shorthand form of `OpenapiSchemaObjectAllOf`.
|
|
195
|
+
*/
|
|
196
|
+
export type OpenapiSchemaObjectAllOfShorthand = OpenapiSchemaCommonFields<{
|
|
197
|
+
type: 'object'
|
|
198
|
+
required?: string[]
|
|
185
199
|
allOf?: OpenapiSchemaBodyShorthand[]
|
|
186
200
|
}>
|
|
187
201
|
|
|
@@ -2,7 +2,13 @@ import Dream from '../Dream.js'
|
|
|
2
2
|
import { RoundingPrecision } from '../helpers/round.js'
|
|
3
3
|
import DreamSerializerBuilder from '../serializer/builders/DreamSerializerBuilder.js'
|
|
4
4
|
import ObjectSerializerBuilder from '../serializer/builders/ObjectSerializerBuilder.js'
|
|
5
|
-
import {
|
|
5
|
+
import {
|
|
6
|
+
DreamSerializable,
|
|
7
|
+
DreamSerializableArray,
|
|
8
|
+
DreamVirtualColumns,
|
|
9
|
+
NonJsonDreamColumnNames,
|
|
10
|
+
ViewModelClass,
|
|
11
|
+
} from './dream.js'
|
|
6
12
|
import { OpenapiDescription, OpenapiSchemaBodyShorthand, OpenapiShorthandPrimitiveTypes } from './openapi.js'
|
|
7
13
|
|
|
8
14
|
export type SerializerCasing = 'camel' | 'snake'
|
|
@@ -32,7 +38,11 @@ export interface InternalAnyTypedSerializerCustomAttribute {
|
|
|
32
38
|
type: 'customAttribute'
|
|
33
39
|
name: string
|
|
34
40
|
fn: (x?: any, y?: any) => any
|
|
35
|
-
options:
|
|
41
|
+
options: {
|
|
42
|
+
openapi: CustomAttributeOpenapi
|
|
43
|
+
required?: false
|
|
44
|
+
flatten?: boolean
|
|
45
|
+
}
|
|
36
46
|
}
|
|
37
47
|
|
|
38
48
|
export interface InternalAnyRendersOneOrManyOpts {
|
|
@@ -143,6 +153,56 @@ export type NonAutomaticSerializerAttributeOptionsWithPossibleDecimalRenderOptio
|
|
|
143
153
|
precision?: RoundingPrecision
|
|
144
154
|
}
|
|
145
155
|
|
|
156
|
+
/**
|
|
157
|
+
* The options argument of `DreamSerializer#delegatedAttribute`. A Dream model's non-json
|
|
158
|
+
* column infers its OpenAPI shape, so its `openapi` takes only a description and the
|
|
159
|
+
* argument may be left out. A json/jsonb column or a non-Dream target has no shape to
|
|
160
|
+
* infer, so the argument is required and its `openapi` takes a full shape.
|
|
161
|
+
*/
|
|
162
|
+
export type DelegatedAttributeOptionsArgs<AssociatedModelType, TargetAttributeName> =
|
|
163
|
+
DelegatedAttributeOptions<AssociatedModelType, TargetAttributeName> extends infer Options
|
|
164
|
+
? Partial<Options> extends Options
|
|
165
|
+
? [options?: Options]
|
|
166
|
+
: [options: Options]
|
|
167
|
+
: never
|
|
168
|
+
|
|
169
|
+
type DelegatedAttributeOptions<AssociatedModelType, TargetAttributeName> = AssociatedModelType extends Dream
|
|
170
|
+
? TargetAttributeName extends NonJsonDreamColumnNames<AssociatedModelType> &
|
|
171
|
+
keyof AssociatedModelType &
|
|
172
|
+
'type'
|
|
173
|
+
? AutomaticSerializerAttributeOptionsForType & {
|
|
174
|
+
optional?: boolean
|
|
175
|
+
required?: false
|
|
176
|
+
}
|
|
177
|
+
: TargetAttributeName extends DreamVirtualColumns<AssociatedModelType>[number]
|
|
178
|
+
? SerializerAttributeOptionsForVirtualColumn & { optional?: boolean }
|
|
179
|
+
: TargetAttributeName extends NonJsonDreamColumnNames<AssociatedModelType> &
|
|
180
|
+
keyof AssociatedModelType &
|
|
181
|
+
string
|
|
182
|
+
? AutomaticSerializerAttributeOptions & { optional?: boolean }
|
|
183
|
+
: NonAutomaticSerializerAttributeOptionsWithPossibleDecimalRenderOption & {
|
|
184
|
+
optional?: boolean
|
|
185
|
+
}
|
|
186
|
+
: NonAutomaticSerializerAttributeOptionsWithPossibleDecimalRenderOption & { optional?: boolean }
|
|
187
|
+
|
|
188
|
+
type CustomAttributeOpenapi = OpenapiSchemaBodyShorthand | OpenapiShorthandPrimitiveTypes
|
|
189
|
+
|
|
190
|
+
/**
|
|
191
|
+
* The options of `customAttribute`. The callback's return value renders as is, so there is
|
|
192
|
+
* no `as`, `default` or `precision`. With `flatten: true`, `openapi` may be anything but a
|
|
193
|
+
* serializer ref with `many: true`: flattening spreads one object's properties into the
|
|
194
|
+
* parent, and a list has none to spread.
|
|
195
|
+
*/
|
|
196
|
+
export type CustomAttributeOptions =
|
|
197
|
+
| { openapi: CustomAttributeOpenapi; required?: false; flatten?: false }
|
|
198
|
+
| { openapi: OpenapiForFlattening<CustomAttributeOpenapi>; required?: false; flatten: true }
|
|
199
|
+
|
|
200
|
+
type OpenapiForFlattening<Openapi> = Openapi extends unknown
|
|
201
|
+
? 'many' extends keyof Openapi
|
|
202
|
+
? Omit<Openapi, 'many'> & { many?: false }
|
|
203
|
+
: Openapi
|
|
204
|
+
: never
|
|
205
|
+
|
|
146
206
|
export type DreamModelSerializerType = (data: any, passthroughData?: any) => DreamSerializerBuilder<any, any>
|
|
147
207
|
|
|
148
208
|
export type SimpleObjectSerializerType = (
|
|
@@ -27,6 +27,46 @@ type IS_ASSOCIATION_NAME = 'association_name'
|
|
|
27
27
|
type IS_NOT_ASSOCIATION_NAME = 'not_association_name'
|
|
28
28
|
type RecursionTypes = 'load' | 'leftJoinLoad' | 'join'
|
|
29
29
|
|
|
30
|
+
/**
|
|
31
|
+
* The keys of a condition object that a chain argument does not
|
|
32
|
+
* accept: anything other than `and`, `andNot` and `andAny`. Association
|
|
33
|
+
* names, arrays and non-objects yield `never`. Index-signature keys
|
|
34
|
+
* (`string`, `number`) yield `never` too, since they name no key the
|
|
35
|
+
* checker can reject; the runtime check covers those values.
|
|
36
|
+
*/
|
|
37
|
+
type StrayConditionKeys<T> = T extends string | readonly unknown[]
|
|
38
|
+
? never
|
|
39
|
+
: T extends object
|
|
40
|
+
? StrayConditionKey<keyof T>
|
|
41
|
+
: never
|
|
42
|
+
type StrayConditionKey<K> = K extends 'and' | 'andNot' | 'andAny'
|
|
43
|
+
? never
|
|
44
|
+
: string extends K
|
|
45
|
+
? never
|
|
46
|
+
: number extends K
|
|
47
|
+
? never
|
|
48
|
+
: K
|
|
49
|
+
|
|
50
|
+
declare const onlyConditionKeys: unique symbol
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* The join variants infer their final argument as a `const LastArg` type
|
|
54
|
+
* parameter (it drives the joined-associations return type), so the
|
|
55
|
+
* argument is checked against its own inferred type and an extra key on
|
|
56
|
+
* an object literal escapes the excess-property check. Given the inferred
|
|
57
|
+
* `LastArg`, this narrows the object members of `Allowed` to a shape no
|
|
58
|
+
* value carries whenever `LastArg` has a key other than `and`, `andNot`
|
|
59
|
+
* or `andAny`: the inferred type then fails its constraint, TypeScript
|
|
60
|
+
* falls back to the constraint, and an object literal gets the ordinary
|
|
61
|
+
* excess-property error at the stray key.
|
|
62
|
+
*/
|
|
63
|
+
type WithoutStrayConditionKeys<LastArg, Allowed> = [StrayConditionKeys<LastArg>] extends [never]
|
|
64
|
+
? Allowed
|
|
65
|
+
:
|
|
66
|
+
| Exclude<Allowed, object>
|
|
67
|
+
| Extract<Allowed, readonly unknown[]>
|
|
68
|
+
| (Exclude<Extract<Allowed, object>, readonly unknown[]> & { [onlyConditionKeys]: never })
|
|
69
|
+
|
|
30
70
|
/**
|
|
31
71
|
* Given a union of table names and an association name, returns the
|
|
32
72
|
* specific table(s) from the union that have that association defined.
|
|
@@ -82,6 +122,9 @@ export type VariadicLeftJoinLoadArgs<
|
|
|
82
122
|
Schema,
|
|
83
123
|
ConcreteTableName extends keyof Schema & AssociationTableNames<DB, Schema> & keyof DB,
|
|
84
124
|
ConcreteArgs extends readonly unknown[],
|
|
125
|
+
// the final argument, when the caller infers it as a type parameter
|
|
126
|
+
// (see WithoutStrayConditionKeys)
|
|
127
|
+
LastArg = never,
|
|
85
128
|
//
|
|
86
129
|
SchemaAssociations = Schema[ConcreteTableName]['associations' & keyof Schema[ConcreteTableName]],
|
|
87
130
|
// joining a polymorphic BelongsTo raises CannotJoinPolymorphicBelongsToError
|
|
@@ -93,23 +136,26 @@ export type VariadicLeftJoinLoadArgs<
|
|
|
93
136
|
AliasedSchemaAssociation<Schema, ConcreteTableName>,
|
|
94
137
|
`${PolymorphicBelongsToNames & string} as ${string}`
|
|
95
138
|
>,
|
|
96
|
-
> =
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
139
|
+
> = WithoutStrayConditionKeys<
|
|
140
|
+
LastArg,
|
|
141
|
+
VariadicCheckThenRecurse<
|
|
142
|
+
I,
|
|
143
|
+
DB,
|
|
144
|
+
Schema,
|
|
145
|
+
ConcreteTableName,
|
|
146
|
+
ConcreteArgs,
|
|
147
|
+
'leftJoinLoad',
|
|
148
|
+
// Dream configures Kysely to use camel case in Typescript land and
|
|
149
|
+
// convert to snake case in SQL; however, Dream reference snake-cased table names.
|
|
150
|
+
// Without camelizing, the table name of the starting model could conflict with the
|
|
151
|
+
// snake-cased version of an association name. By camelizing the table that goes
|
|
152
|
+
// into the UsedNamespaces, we prevent this from happeing at the type level.
|
|
153
|
+
Camelized<ConcreteTableName>,
|
|
154
|
+
0,
|
|
155
|
+
null,
|
|
156
|
+
never,
|
|
157
|
+
AllowedNextArgValues | Readonly<AllowedNextArgValues[]>
|
|
158
|
+
>
|
|
113
159
|
>
|
|
114
160
|
///////////////////////////////
|
|
115
161
|
// end:VARIADIC LEFT JOIN LOAD
|
|
@@ -123,6 +169,9 @@ export type VariadicJoinsArgs<
|
|
|
123
169
|
Schema,
|
|
124
170
|
ConcreteTableName extends keyof Schema & AssociationTableNames<DB, Schema> & keyof DB,
|
|
125
171
|
ConcreteArgs extends readonly unknown[],
|
|
172
|
+
// the final argument, when the caller infers it as a type parameter
|
|
173
|
+
// (see WithoutStrayConditionKeys)
|
|
174
|
+
LastArg = never,
|
|
126
175
|
//
|
|
127
176
|
SchemaAssociations = Schema[ConcreteTableName]['associations' & keyof Schema[ConcreteTableName]],
|
|
128
177
|
// joining a polymorphic BelongsTo raises CannotJoinPolymorphicBelongsToError
|
|
@@ -134,23 +183,26 @@ export type VariadicJoinsArgs<
|
|
|
134
183
|
AliasedSchemaAssociation<Schema, ConcreteTableName>,
|
|
135
184
|
`${PolymorphicBelongsToNames & string} as ${string}`
|
|
136
185
|
>,
|
|
137
|
-
> =
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
186
|
+
> = WithoutStrayConditionKeys<
|
|
187
|
+
LastArg,
|
|
188
|
+
VariadicCheckThenRecurse<
|
|
189
|
+
I,
|
|
190
|
+
DB,
|
|
191
|
+
Schema,
|
|
192
|
+
ConcreteTableName,
|
|
193
|
+
ConcreteArgs,
|
|
194
|
+
'join',
|
|
195
|
+
// Dream configures Kysely to use camel case in Typescript land and
|
|
196
|
+
// convert to snake case in SQL; however, Dream reference snake-cased table names.
|
|
197
|
+
// Without camelizing, the table name of the starting model could conflict with the
|
|
198
|
+
// snake-cased version of an association name. By camelizing the table that goes
|
|
199
|
+
// into the UsedNamespaces, we prevent this from happeing at the type level.
|
|
200
|
+
Camelized<ConcreteTableName>,
|
|
201
|
+
0,
|
|
202
|
+
null,
|
|
203
|
+
never,
|
|
204
|
+
AllowedNextArgValues
|
|
205
|
+
>
|
|
154
206
|
>
|
|
155
207
|
///////////////////////////////
|
|
156
208
|
// end: VARIADIC JOINS
|
|
@@ -222,15 +274,19 @@ type VariadicCheckThenRecurse<
|
|
|
222
274
|
ConcreteTableName,
|
|
223
275
|
RequiredOnClauseKeys<Schema, PreviousConcreteTableName, ConcreteAssociationName>
|
|
224
276
|
>
|
|
225
|
-
?
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
277
|
+
? // `extends` is structural, so it accepts extra keys alongside a
|
|
278
|
+
// valid one; a condition accepts only and/andNot/andAny
|
|
279
|
+
[StrayConditionKeys<ConcreteArgs[0]>] extends [never]
|
|
280
|
+
? RecursionType extends 'join'
|
|
281
|
+
? VALID
|
|
282
|
+
: IsNonOptionalBelongsToAssociation<
|
|
283
|
+
Schema,
|
|
284
|
+
PreviousConcreteTableName,
|
|
285
|
+
ConcreteAssociationName
|
|
286
|
+
> extends true
|
|
287
|
+
? INVALID_CONSTRAINT_ON_REQUIRED_BELONGS_TO
|
|
288
|
+
: VALID
|
|
289
|
+
: INVALID
|
|
234
290
|
: INVALID,
|
|
235
291
|
> = NthArgument extends INVALID_NON_TERMINAL_ARRAY
|
|
236
292
|
? `an array of association names is only allowed as the final argument (argument ${Inc<Depth>})`
|
|
@@ -13,6 +13,30 @@ type IS_ASSOCIATION_ALIAS = 'association_alias';
|
|
|
13
13
|
type IS_ASSOCIATION_NAME = 'association_name';
|
|
14
14
|
type IS_NOT_ASSOCIATION_NAME = 'not_association_name';
|
|
15
15
|
type RecursionTypes = 'load' | 'leftJoinLoad' | 'join';
|
|
16
|
+
/**
|
|
17
|
+
* The keys of a condition object that a chain argument does not
|
|
18
|
+
* accept: anything other than `and`, `andNot` and `andAny`. Association
|
|
19
|
+
* names, arrays and non-objects yield `never`. Index-signature keys
|
|
20
|
+
* (`string`, `number`) yield `never` too, since they name no key the
|
|
21
|
+
* checker can reject; the runtime check covers those values.
|
|
22
|
+
*/
|
|
23
|
+
type StrayConditionKeys<T> = T extends string | readonly unknown[] ? never : T extends object ? StrayConditionKey<keyof T> : never;
|
|
24
|
+
type StrayConditionKey<K> = K extends 'and' | 'andNot' | 'andAny' ? never : string extends K ? never : number extends K ? never : K;
|
|
25
|
+
declare const onlyConditionKeys: unique symbol;
|
|
26
|
+
/**
|
|
27
|
+
* The join variants infer their final argument as a `const LastArg` type
|
|
28
|
+
* parameter (it drives the joined-associations return type), so the
|
|
29
|
+
* argument is checked against its own inferred type and an extra key on
|
|
30
|
+
* an object literal escapes the excess-property check. Given the inferred
|
|
31
|
+
* `LastArg`, this narrows the object members of `Allowed` to a shape no
|
|
32
|
+
* value carries whenever `LastArg` has a key other than `and`, `andNot`
|
|
33
|
+
* or `andAny`: the inferred type then fails its constraint, TypeScript
|
|
34
|
+
* falls back to the constraint, and an object literal gets the ordinary
|
|
35
|
+
* excess-property error at the stray key.
|
|
36
|
+
*/
|
|
37
|
+
type WithoutStrayConditionKeys<LastArg, Allowed> = [StrayConditionKeys<LastArg>] extends [never] ? Allowed : Exclude<Allowed, object> | Extract<Allowed, readonly unknown[]> | (Exclude<Extract<Allowed, object>, readonly unknown[]> & {
|
|
38
|
+
[onlyConditionKeys]: never;
|
|
39
|
+
});
|
|
16
40
|
/**
|
|
17
41
|
* Given a union of table names and an association name, returns the
|
|
18
42
|
* specific table(s) from the union that have that association defined.
|
|
@@ -21,9 +45,11 @@ type RecursionTypes = 'load' | 'leftJoinLoad' | 'join';
|
|
|
21
45
|
*/
|
|
22
46
|
type TableContainingAssociationInUnion<Schema, TableNamesUnion, AssociationName> = TableNamesUnion extends keyof Schema ? AssociationName extends keyof Schema[TableNamesUnion]['associations' & keyof Schema[TableNamesUnion]] ? TableNamesUnion : never : never;
|
|
23
47
|
export type VariadicLoadArgs<I extends Dream, DB, Schema, ConcreteTableName extends keyof Schema & AssociationTableNames<DB, Schema> & keyof DB, ConcreteArgs extends readonly unknown[], SchemaAssociations = Schema[ConcreteTableName]['associations' & keyof Schema[ConcreteTableName]], AllowedNextArgValues = (keyof SchemaAssociations & string) | AliasedSchemaAssociation<Schema, ConcreteTableName>> = VariadicCheckThenRecurse<I, DB, Schema, ConcreteTableName, ConcreteArgs, 'load', never, 0, null, never, AllowedNextArgValues | Readonly<AllowedNextArgValues[]>>;
|
|
24
|
-
export type VariadicLeftJoinLoadArgs<I extends Dream, DB, Schema, ConcreteTableName extends keyof Schema & AssociationTableNames<DB, Schema> & keyof DB, ConcreteArgs extends readonly unknown[], SchemaAssociations = Schema[ConcreteTableName]['associations' & keyof Schema[ConcreteTableName]], PolymorphicBelongsToNames = PolymorphicBelongsToAssociationNames<Schema, ConcreteTableName>, AllowedNextArgValues = Exclude<keyof SchemaAssociations & string, PolymorphicBelongsToNames> | Exclude<AliasedSchemaAssociation<Schema, ConcreteTableName>, `${PolymorphicBelongsToNames & string} as ${string}`>> = VariadicCheckThenRecurse<I, DB, Schema, ConcreteTableName, ConcreteArgs, 'leftJoinLoad', Camelized<ConcreteTableName>, 0, null, never, AllowedNextArgValues | Readonly<AllowedNextArgValues[]
|
|
25
|
-
export type VariadicJoinsArgs<I extends Dream, DB, Schema, ConcreteTableName extends keyof Schema & AssociationTableNames<DB, Schema> & keyof DB, ConcreteArgs extends readonly unknown[], SchemaAssociations = Schema[ConcreteTableName]['associations' & keyof Schema[ConcreteTableName]], PolymorphicBelongsToNames = PolymorphicBelongsToAssociationNames<Schema, ConcreteTableName>, AllowedNextArgValues = Exclude<keyof SchemaAssociations & string, PolymorphicBelongsToNames> | Exclude<AliasedSchemaAssociation<Schema, ConcreteTableName>, `${PolymorphicBelongsToNames & string} as ${string}`>> = VariadicCheckThenRecurse<I, DB, Schema, ConcreteTableName, ConcreteArgs, 'join', Camelized<ConcreteTableName>, 0, null, never, AllowedNextArgValues
|
|
26
|
-
type VariadicCheckThenRecurse<I extends Dream, DB, Schema, ConcreteTableName extends keyof Schema & AssociationTableNames<DB, Schema> & keyof DB, ConcreteArgs extends readonly unknown[], RecursionType extends RecursionTypes, UsedNamespaces, Depth extends number, PreviousConcreteTableName, ConcreteAssociationName, AssociationNamesOrOnClause, LastDream extends Dream = I, SchemaAssociations = Schema[ConcreteTableName]['associations' & keyof Schema[ConcreteTableName]], AllowedNamesForNthArg = PreviousConcreteTableName extends keyof Schema ? AssociationNamesForAssociation<Schema, PreviousConcreteTableName, ConcreteAssociationName> : keyof SchemaAssociations & string, UnaliasedNthArg = ConcreteArgs[0] extends `${infer AssociationName extends string} as ${string}` ? AssociationName : ConcreteArgs[0], NthArgumentNamespace = ConcreteArgs[0] extends `${string} as ${infer Alias extends string}` ? Alias : ConcreteArgs[0], NthArgument extends VALID | INVALID | INVALID_NON_TERMINAL_ARRAY | INVALID_NAMESPACE_REUSE | INVALID_POLYMORPHIC_BELONGS_TO_JOIN | INVALID_CONSTRAINT_ON_REQUIRED_BELONGS_TO = ConcreteArgs['length'] extends 0 ? VALID : ConcreteArgs[0] extends (keyof SchemaAssociations & string) | AliasedSchemaAssociation<Schema, ConcreteTableName> | AllowedNamesForNthArg ? RecursionType extends 'load' ? VALID : NthArgumentNamespace extends UsedNamespaces ? INVALID_NAMESPACE_REUSE : IsPolymorphicBelongsToAssociation<Schema, ConcreteTableName, UnaliasedNthArg> extends true ? INVALID_POLYMORPHIC_BELONGS_TO_JOIN : VALID : ConcreteArgs[0] extends readonly unknown[] ? INVALID_NON_TERMINAL_ARRAY : ConcreteArgs[0] extends JoinAndStatements<LastDream, DB, Schema, ConcreteTableName, RequiredOnClauseKeys<Schema, PreviousConcreteTableName, ConcreteAssociationName>> ?
|
|
48
|
+
export type VariadicLeftJoinLoadArgs<I extends Dream, DB, Schema, ConcreteTableName extends keyof Schema & AssociationTableNames<DB, Schema> & keyof DB, ConcreteArgs extends readonly unknown[], LastArg = never, SchemaAssociations = Schema[ConcreteTableName]['associations' & keyof Schema[ConcreteTableName]], PolymorphicBelongsToNames = PolymorphicBelongsToAssociationNames<Schema, ConcreteTableName>, AllowedNextArgValues = Exclude<keyof SchemaAssociations & string, PolymorphicBelongsToNames> | Exclude<AliasedSchemaAssociation<Schema, ConcreteTableName>, `${PolymorphicBelongsToNames & string} as ${string}`>> = WithoutStrayConditionKeys<LastArg, VariadicCheckThenRecurse<I, DB, Schema, ConcreteTableName, ConcreteArgs, 'leftJoinLoad', Camelized<ConcreteTableName>, 0, null, never, AllowedNextArgValues | Readonly<AllowedNextArgValues[]>>>;
|
|
49
|
+
export type VariadicJoinsArgs<I extends Dream, DB, Schema, ConcreteTableName extends keyof Schema & AssociationTableNames<DB, Schema> & keyof DB, ConcreteArgs extends readonly unknown[], LastArg = never, SchemaAssociations = Schema[ConcreteTableName]['associations' & keyof Schema[ConcreteTableName]], PolymorphicBelongsToNames = PolymorphicBelongsToAssociationNames<Schema, ConcreteTableName>, AllowedNextArgValues = Exclude<keyof SchemaAssociations & string, PolymorphicBelongsToNames> | Exclude<AliasedSchemaAssociation<Schema, ConcreteTableName>, `${PolymorphicBelongsToNames & string} as ${string}`>> = WithoutStrayConditionKeys<LastArg, VariadicCheckThenRecurse<I, DB, Schema, ConcreteTableName, ConcreteArgs, 'join', Camelized<ConcreteTableName>, 0, null, never, AllowedNextArgValues>>;
|
|
50
|
+
type VariadicCheckThenRecurse<I extends Dream, DB, Schema, ConcreteTableName extends keyof Schema & AssociationTableNames<DB, Schema> & keyof DB, ConcreteArgs extends readonly unknown[], RecursionType extends RecursionTypes, UsedNamespaces, Depth extends number, PreviousConcreteTableName, ConcreteAssociationName, AssociationNamesOrOnClause, LastDream extends Dream = I, SchemaAssociations = Schema[ConcreteTableName]['associations' & keyof Schema[ConcreteTableName]], AllowedNamesForNthArg = PreviousConcreteTableName extends keyof Schema ? AssociationNamesForAssociation<Schema, PreviousConcreteTableName, ConcreteAssociationName> : keyof SchemaAssociations & string, UnaliasedNthArg = ConcreteArgs[0] extends `${infer AssociationName extends string} as ${string}` ? AssociationName : ConcreteArgs[0], NthArgumentNamespace = ConcreteArgs[0] extends `${string} as ${infer Alias extends string}` ? Alias : ConcreteArgs[0], NthArgument extends VALID | INVALID | INVALID_NON_TERMINAL_ARRAY | INVALID_NAMESPACE_REUSE | INVALID_POLYMORPHIC_BELONGS_TO_JOIN | INVALID_CONSTRAINT_ON_REQUIRED_BELONGS_TO = ConcreteArgs['length'] extends 0 ? VALID : ConcreteArgs[0] extends (keyof SchemaAssociations & string) | AliasedSchemaAssociation<Schema, ConcreteTableName> | AllowedNamesForNthArg ? RecursionType extends 'load' ? VALID : NthArgumentNamespace extends UsedNamespaces ? INVALID_NAMESPACE_REUSE : IsPolymorphicBelongsToAssociation<Schema, ConcreteTableName, UnaliasedNthArg> extends true ? INVALID_POLYMORPHIC_BELONGS_TO_JOIN : VALID : ConcreteArgs[0] extends readonly unknown[] ? INVALID_NON_TERMINAL_ARRAY : ConcreteArgs[0] extends JoinAndStatements<LastDream, DB, Schema, ConcreteTableName, RequiredOnClauseKeys<Schema, PreviousConcreteTableName, ConcreteAssociationName>> ? [
|
|
51
|
+
StrayConditionKeys<ConcreteArgs[0]>
|
|
52
|
+
] extends [never] ? RecursionType extends 'join' ? VALID : IsNonOptionalBelongsToAssociation<Schema, PreviousConcreteTableName, ConcreteAssociationName> extends true ? INVALID_CONSTRAINT_ON_REQUIRED_BELONGS_TO : VALID : INVALID : INVALID> = NthArgument extends INVALID_NON_TERMINAL_ARRAY ? `an array of association names is only allowed as the final argument (argument ${Inc<Depth>})` : NthArgument extends INVALID_NAMESPACE_REUSE ? `association name or alias already used earlier in this chain (argument ${Inc<Depth>})` : NthArgument extends INVALID_POLYMORPHIC_BELONGS_TO_JOIN ? `cannot join a polymorphic BelongsTo association (argument ${Inc<Depth>})` : NthArgument extends INVALID_CONSTRAINT_ON_REQUIRED_BELONGS_TO ? `${CannotConstrainRequiredBelongsTo} (argument ${Inc<Depth>})` : NthArgument extends INVALID ? `invalid where clause in argument ${Inc<Depth>}` : ConcreteArgs['length'] extends 0 ? AssociationNamesOrOnClause : VariadicRecurse<I, DB, Schema, ConcreteTableName, ConcreteArgs, RecursionType, UsedNamespaces, Depth, PreviousConcreteTableName, ConcreteAssociationName, LastDream>;
|
|
27
53
|
export type AliasedSchemaAssociation<Schema, ConcreteTableName extends keyof Schema, SchemaAssociations = Schema[ConcreteTableName]['associations' & keyof Schema[ConcreteTableName]]> = `${keyof SchemaAssociations & string} as ${string}`;
|
|
28
54
|
type VariadicRecurse<I extends Dream, DB, Schema, ConcreteTableName extends keyof Schema & AssociationTableNames<DB, Schema> & keyof DB, ConcreteArgs extends readonly unknown[], RecursionType extends RecursionTypes, UsedNamespaces, Depth extends number, PreviousConcreteTableName, ConcreteAssociationName, LastDream extends Dream, SchemaAssociations = Schema[ConcreteTableName]['associations' & keyof Schema[ConcreteTableName]], UnaliasedNthArg = ConcreteArgs[0] extends `${infer AssociationName extends string} as ${string}` ? AssociationName : ConcreteArgs[0], PolymorphicTableNamesUnion = PreviousConcreteTableName extends keyof Schema ? AssociationTableNamesForAssociation<Schema, PreviousConcreteTableName, ConcreteAssociationName> : ConcreteTableName, CrossPolymorphicTableForCurrentArg = UnaliasedNthArg extends string ? TableContainingAssociationInUnion<Schema, PolymorphicTableNamesUnion, UnaliasedNthArg> : never, EffectiveConcreteTableName extends keyof Schema & AssociationTableNames<DB, Schema> & keyof DB = UnaliasedNthArg extends keyof SchemaAssociations & string ? ConcreteTableName : [CrossPolymorphicTableForCurrentArg] extends [never] ? ConcreteTableName : CrossPolymorphicTableForCurrentArg extends keyof Schema & AssociationTableNames<DB, Schema> & keyof DB ? CrossPolymorphicTableForCurrentArg : ConcreteTableName, EffectiveSchemaAssociations = Schema[EffectiveConcreteTableName]['associations' & keyof Schema[EffectiveConcreteTableName]], IsAssociationNameOrAlias extends boolean = UnaliasedNthArg extends keyof EffectiveSchemaAssociations & string ? true : false, NextUnaliasedAssociationName = IsAssociationNameOrAlias extends true ? UnaliasedNthArg & keyof EffectiveSchemaAssociations & string : never, NextAliasedAssociationName = IsAssociationNameOrAlias extends true ? ConcreteArgs[0] extends `${string} as ${infer AssociationAlias extends string}` ? AssociationAlias : NextUnaliasedAssociationName : ConcreteAssociationName, NextPreviousConcreteTableName = IsAssociationNameOrAlias extends true ? EffectiveConcreteTableName : PreviousConcreteTableName, NextUsedNamespaces = RecursionType extends 'load' ? never : IsAssociationNameOrAlias extends true ? UsedNamespaces | NextAliasedAssociationName : UsedNamespaces, NextTableName extends keyof Schema & AssociationTableNames<DB, Schema> & keyof DB = IsAssociationNameOrAlias extends true ? AssociationTableName<Schema, EffectiveConcreteTableName, NextUnaliasedAssociationName> : ConcreteTableName, AllowedAssociationNames = IsAssociationNameOrAlias extends true ? AssociationNamesForAssociation<Schema, EffectiveConcreteTableName, NextUnaliasedAssociationName> : PreviousConcreteTableName extends keyof Schema ? AssociationNamesForAssociation<Schema, PreviousConcreteTableName, ConcreteAssociationName> : AssociationNamesForTable<Schema, ConcreteTableName>, // fall back to association names for table for root only
|
|
29
55
|
CurrentRequiredOnClauseKeys = IsAssociationNameOrAlias extends true ? RequiredOnClauseKeys<Schema, EffectiveConcreteTableName, NextUnaliasedAssociationName> : RequiredOnClauseKeys<Schema, PreviousConcreteTableName, ConcreteAssociationName>, CurrentAssociationIsNonOptionalBelongsTo = IsAssociationNameOrAlias extends true ? IsNonOptionalBelongsToAssociation<Schema, EffectiveConcreteTableName, NextUnaliasedAssociationName> : IsNonOptionalBelongsToAssociation<Schema, PreviousConcreteTableName, ConcreteAssociationName>, NextDreamCandidate = IsAssociationNameOrAlias extends true ? LastDream extends Dream ? NextUnaliasedAssociationName extends keyof LastDream ? DreamAssociationNameToAssociatedModel<LastDream, NextUnaliasedAssociationName & keyof LastDream> : never : never : LastDream, NextDream extends Dream = [NextDreamCandidate] extends [never] ? LastDream : NextDreamCandidate extends Dream ? NextDreamCandidate : LastDream, NextPolymorphicBelongsToNames = RecursionType extends 'load' ? never : PolymorphicBelongsToAssociationNames<Schema, NextTableName>, JoinSafeAllowedAssociationNames = Exclude<AllowedAssociationNames, NextPolymorphicBelongsToNames | `${NextPolymorphicBelongsToNames & string} as ${string}`>, AllowedNextArgValues = RecursionType extends 'load' ? AllowedNextArgValuesForLoad<NextDream, DB, Schema, AllowedAssociationNames, NextTableName, CurrentRequiredOnClauseKeys, CurrentAssociationIsNonOptionalBelongsTo> : RecursionType extends 'leftJoinLoad' ? AllowedNextArgValuesForLeftJoinLoad<NextDream, DB, Schema, JoinSafeAllowedAssociationNames, NextTableName, CurrentRequiredOnClauseKeys, NextUsedNamespaces, CurrentAssociationIsNonOptionalBelongsTo> : RecursionType extends 'join' ? AllowedNextArgValuesForJoin<NextDream, DB, Schema, JoinSafeAllowedAssociationNames, NextTableName, CurrentRequiredOnClauseKeys, NextUsedNamespaces> : never> = Depth extends MAX_VARIADIC_DEPTH ? never : VariadicCheckThenRecurse<I, DB, Schema, NextTableName, ReadonlyTail<ConcreteArgs>, RecursionType, NextUsedNamespaces, Inc<Depth>, NextPreviousConcreteTableName, [
|
package/docs/assets/hierarchy.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
window.hierarchyData = "
|
|
1
|
+
window.hierarchyData = "eJyVklFPwjAQx7/LPVf0GGxjj0JMjBE1MfpAeCjb4Rq6lrQdZiF8d1N5qYiuPLVp7t/fr9fbg9HaWSgWmE5yhohLBobWkkontLJQ7AER/aJ4Q1DAS0ummxmxI3PLLQGDjVAVFDjMGbRGQgGl5NaSva5Wg5PqQe0aCexYAQU4W135+NXxgEFZC1kZUlAsEhwtDwwSHAX0h86S7IJbe/i/6i8xwCSdeAW/Bg7P2roPQzbe4kyix8NT03QYUKc1lZupVtYZLpR7E1py/0X/ockYbezgr2iMQ34TOmjZNuppR2Yt9WcM+UcghjfJA96MO36vSt1suRMrSe/C1f5sxS3dCZJVhELvHRdNRJoOmW8Kwwwzhlky/h6QDLMT7dduS8fX+92jsA13ZR3pez4c0b4sGQcec+3mrZSXjMpppI95OHwBEYFvHQ=="
|
|
@@ -19,12 +19,10 @@
|
|
|
19
19
|
--dark-hl-8: #B5CEA8;
|
|
20
20
|
--light-hl-9: #267F99;
|
|
21
21
|
--dark-hl-9: #4EC9B0;
|
|
22
|
-
--light-hl-10: #
|
|
23
|
-
--dark-hl-10: #
|
|
24
|
-
--light-hl-11: #
|
|
25
|
-
--dark-hl-11: #
|
|
26
|
-
--light-hl-12: #EE0000;
|
|
27
|
-
--dark-hl-12: #D7BA7D;
|
|
22
|
+
--light-hl-10: #000000FF;
|
|
23
|
+
--dark-hl-10: #D4D4D4;
|
|
24
|
+
--light-hl-11: #EE0000;
|
|
25
|
+
--dark-hl-11: #D7BA7D;
|
|
28
26
|
--light-code-background: #FFFFFF;
|
|
29
27
|
--dark-code-background: #1E1E1E;
|
|
30
28
|
}
|
|
@@ -42,7 +40,6 @@
|
|
|
42
40
|
--hl-9: var(--light-hl-9);
|
|
43
41
|
--hl-10: var(--light-hl-10);
|
|
44
42
|
--hl-11: var(--light-hl-11);
|
|
45
|
-
--hl-12: var(--light-hl-12);
|
|
46
43
|
--code-background: var(--light-code-background);
|
|
47
44
|
} }
|
|
48
45
|
|
|
@@ -59,7 +56,6 @@
|
|
|
59
56
|
--hl-9: var(--dark-hl-9);
|
|
60
57
|
--hl-10: var(--dark-hl-10);
|
|
61
58
|
--hl-11: var(--dark-hl-11);
|
|
62
|
-
--hl-12: var(--dark-hl-12);
|
|
63
59
|
--code-background: var(--dark-code-background);
|
|
64
60
|
} }
|
|
65
61
|
|
|
@@ -76,7 +72,6 @@
|
|
|
76
72
|
--hl-9: var(--light-hl-9);
|
|
77
73
|
--hl-10: var(--light-hl-10);
|
|
78
74
|
--hl-11: var(--light-hl-11);
|
|
79
|
-
--hl-12: var(--light-hl-12);
|
|
80
75
|
--code-background: var(--light-code-background);
|
|
81
76
|
}
|
|
82
77
|
|
|
@@ -93,7 +88,6 @@
|
|
|
93
88
|
--hl-9: var(--dark-hl-9);
|
|
94
89
|
--hl-10: var(--dark-hl-10);
|
|
95
90
|
--hl-11: var(--dark-hl-11);
|
|
96
|
-
--hl-12: var(--dark-hl-12);
|
|
97
91
|
--code-background: var(--dark-code-background);
|
|
98
92
|
}
|
|
99
93
|
|
|
@@ -109,5 +103,4 @@
|
|
|
109
103
|
.hl-9 { color: var(--hl-9); }
|
|
110
104
|
.hl-10 { color: var(--hl-10); }
|
|
111
105
|
.hl-11 { color: var(--hl-11); }
|
|
112
|
-
.hl-12 { color: var(--hl-12); }
|
|
113
106
|
pre, code { background: var(--code-background); }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
window.navigationData = "
|
|
1
|
+
window.navigationData = "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"
|