@payloadcms/drizzle 4.0.0-internal.183b315 → 4.0.0-internal.1ccb6d5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +1 -1
- package/dist/count.d.ts.map +1 -1
- package/dist/count.js +25 -3
- package/dist/count.js.map +1 -1
- package/dist/countGlobalVersions.js +8 -3
- package/dist/countGlobalVersions.js.map +1 -1
- package/dist/countVersions.d.ts.map +1 -1
- package/dist/countVersions.js +29 -4
- package/dist/countVersions.js.map +1 -1
- package/dist/createGlobalVersion.d.ts.map +1 -1
- package/dist/createGlobalVersion.js +17 -2
- package/dist/createGlobalVersion.js.map +1 -1
- package/dist/createTableName.d.ts.map +1 -1
- package/dist/createTableName.js +2 -7
- package/dist/createTableName.js.map +1 -1
- package/dist/createVersion.d.ts.map +1 -1
- package/dist/createVersion.js +12 -1
- package/dist/createVersion.js.map +1 -1
- package/dist/deleteBranchGlobal.d.ts +10 -0
- package/dist/deleteBranchGlobal.d.ts.map +1 -0
- package/dist/deleteBranchGlobal.js +27 -0
- package/dist/deleteBranchGlobal.js.map +1 -0
- package/dist/deleteOne.d.ts.map +1 -1
- package/dist/deleteOne.js +25 -1
- package/dist/deleteOne.js.map +1 -1
- package/dist/exports/postgres.d.ts +5 -1
- package/dist/exports/postgres.d.ts.map +1 -1
- package/dist/exports/postgres.js +5 -1
- package/dist/exports/postgres.js.map +1 -1
- package/dist/exports/sqlite.d.ts +3 -1
- package/dist/exports/sqlite.d.ts.map +1 -1
- package/dist/exports/sqlite.js +3 -1
- package/dist/exports/sqlite.js.map +1 -1
- package/dist/find/buildFindManyArgs.d.ts +3 -2
- package/dist/find/buildFindManyArgs.d.ts.map +1 -1
- package/dist/find/buildFindManyArgs.js +2 -1
- package/dist/find/buildFindManyArgs.js.map +1 -1
- package/dist/find/buildPolymorphicJoinQuery.d.ts +40 -0
- package/dist/find/buildPolymorphicJoinQuery.d.ts.map +1 -0
- package/dist/find/buildPolymorphicJoinQuery.js +163 -0
- package/dist/find/buildPolymorphicJoinQuery.js.map +1 -0
- package/dist/find/buildPolymorphicJoinWhere.d.ts +20 -0
- package/dist/find/buildPolymorphicJoinWhere.d.ts.map +1 -0
- package/dist/find/buildPolymorphicJoinWhere.js +301 -0
- package/dist/find/buildPolymorphicJoinWhere.js.map +1 -0
- package/dist/find/createPolymorphicJoinWherePlan.d.ts +38 -0
- package/dist/find/createPolymorphicJoinWherePlan.d.ts.map +1 -0
- package/dist/find/createPolymorphicJoinWherePlan.js +200 -0
- package/dist/find/createPolymorphicJoinWherePlan.js.map +1 -0
- package/dist/find/findMany.d.ts +6 -1
- package/dist/find/findMany.d.ts.map +1 -1
- package/dist/find/findMany.js +16 -3
- package/dist/find/findMany.js.map +1 -1
- package/dist/find/traverseFields.d.ts +3 -2
- package/dist/find/traverseFields.d.ts.map +1 -1
- package/dist/find/traverseFields.js +83 -200
- package/dist/find/traverseFields.js.map +1 -1
- package/dist/find.d.ts.map +1 -1
- package/dist/find.js +32 -4
- package/dist/find.js.map +1 -1
- package/dist/findDistinct.d.ts.map +1 -1
- package/dist/findDistinct.js +104 -8
- package/dist/findDistinct.js.map +1 -1
- package/dist/findGlobal.d.ts.map +1 -1
- package/dist/findGlobal.js +24 -5
- package/dist/findGlobal.js.map +1 -1
- package/dist/findGlobalVersions.js +8 -3
- package/dist/findGlobalVersions.js.map +1 -1
- package/dist/findOne.d.ts +1 -1
- package/dist/findOne.d.ts.map +1 -1
- package/dist/findOne.js +30 -3
- package/dist/findOne.js.map +1 -1
- package/dist/findVersions.d.ts.map +1 -1
- package/dist/findVersions.js +32 -5
- package/dist/findVersions.js.map +1 -1
- package/dist/index.d.ts +6 -11
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -9
- package/dist/index.js.map +1 -1
- package/dist/migrate.d.ts.map +1 -1
- package/dist/migrate.js +41 -15
- package/dist/migrate.js.map +1 -1
- package/dist/migrateDown.d.ts +2 -1
- package/dist/migrateDown.d.ts.map +1 -1
- package/dist/migrateDown.js +17 -4
- package/dist/migrateDown.js.map +1 -1
- package/dist/migrateFresh.d.ts +4 -2
- package/dist/migrateFresh.d.ts.map +1 -1
- package/dist/migrateFresh.js +26 -9
- package/dist/migrateFresh.js.map +1 -1
- package/dist/migrateRefresh.d.ts +2 -1
- package/dist/migrateRefresh.d.ts.map +1 -1
- package/dist/migrateRefresh.js +20 -5
- package/dist/migrateRefresh.js.map +1 -1
- package/dist/migrateReset.d.ts +2 -1
- package/dist/migrateReset.d.ts.map +1 -1
- package/dist/migrateReset.js +18 -4
- package/dist/migrateReset.js.map +1 -1
- package/dist/migrateStatus.d.ts +2 -1
- package/dist/migrateStatus.d.ts.map +1 -1
- package/dist/migrateStatus.js +11 -6
- package/dist/migrateStatus.js.map +1 -1
- package/dist/postgres/createDatabase.d.ts.map +1 -1
- package/dist/postgres/createExtensions.d.ts.map +1 -1
- package/dist/postgres/createJSONQuery/index.d.ts.map +1 -1
- package/dist/postgres/createJSONQuery/index.js +3 -3
- package/dist/postgres/createJSONQuery/index.js.map +1 -1
- package/dist/postgres/init.d.ts.map +1 -1
- package/dist/postgres/init.js +6 -0
- package/dist/postgres/init.js.map +1 -1
- package/dist/postgres/insert.d.ts.map +1 -1
- package/dist/postgres/insert.js +4 -2
- package/dist/postgres/insert.js.map +1 -1
- package/dist/postgres/predefinedMigrations/localize-status/index.d.ts +11 -0
- package/dist/postgres/predefinedMigrations/localize-status/index.d.ts.map +1 -0
- package/dist/postgres/predefinedMigrations/localize-status/index.js +296 -0
- package/dist/postgres/predefinedMigrations/localize-status/index.js.map +1 -0
- package/dist/postgres/predefinedMigrations/localize-status/migrateMainCollection.d.ts +13 -0
- package/dist/postgres/predefinedMigrations/localize-status/migrateMainCollection.d.ts.map +1 -0
- package/dist/postgres/predefinedMigrations/localize-status/migrateMainCollection.js +51 -0
- package/dist/postgres/predefinedMigrations/localize-status/migrateMainCollection.js.map +1 -0
- package/dist/postgres/predefinedMigrations/localize-status/migrateMainGlobal.d.ts +13 -0
- package/dist/postgres/predefinedMigrations/localize-status/migrateMainGlobal.d.ts.map +1 -0
- package/dist/postgres/predefinedMigrations/localize-status/migrateMainGlobal.js +54 -0
- package/dist/postgres/predefinedMigrations/localize-status/migrateMainGlobal.js.map +1 -0
- package/dist/postgres/predefinedMigrations/sizes-to-variants/index.d.ts +35 -0
- package/dist/postgres/predefinedMigrations/sizes-to-variants/index.d.ts.map +1 -0
- package/dist/postgres/predefinedMigrations/sizes-to-variants/index.js +185 -0
- package/dist/postgres/predefinedMigrations/sizes-to-variants/index.js.map +1 -0
- package/dist/postgres/predefinedMigrations/v2-v3/fetchAndResave/index.d.ts.map +1 -1
- package/dist/postgres/predefinedMigrations/v2-v3/fetchAndResave/index.js +8 -4
- package/dist/postgres/predefinedMigrations/v2-v3/fetchAndResave/index.js.map +1 -1
- package/dist/postgres/predefinedMigrations/v2-v3/fetchAndResave/traverseFields.d.ts.map +1 -1
- package/dist/postgres/predefinedMigrations/v2-v3/fetchAndResave/traverseFields.js.map +1 -1
- package/dist/postgres/predefinedMigrations/v2-v3/groupUpSQLStatements.d.ts.map +1 -1
- package/dist/postgres/predefinedMigrations/v2-v3/index.d.ts.map +1 -1
- package/dist/postgres/predefinedMigrations/v2-v3/index.js +2 -2
- package/dist/postgres/predefinedMigrations/v2-v3/index.js.map +1 -1
- package/dist/postgres/predefinedMigrations/v2-v3/migrateRelationships.d.ts.map +1 -1
- package/dist/postgres/predefinedMigrations/v2-v3/traverseFields.d.ts.map +1 -1
- package/dist/postgres/query/assertOperatorHandlerExtensionsInstalled.d.ts +15 -0
- package/dist/postgres/query/assertOperatorHandlerExtensionsInstalled.d.ts.map +1 -0
- package/dist/postgres/query/assertOperatorHandlerExtensionsInstalled.js +25 -0
- package/dist/postgres/query/assertOperatorHandlerExtensionsInstalled.js.map +1 -0
- package/dist/postgres/query/postgresUnaccent.d.ts +13 -0
- package/dist/postgres/query/postgresUnaccent.d.ts.map +1 -0
- package/dist/postgres/query/postgresUnaccent.js +40 -0
- package/dist/postgres/query/postgresUnaccent.js.map +1 -0
- package/dist/postgres/requireDrizzleKit.d.ts +4 -0
- package/dist/postgres/requireDrizzleKit.d.ts.map +1 -1
- package/dist/postgres/requireDrizzleKit.js +16 -10
- package/dist/postgres/requireDrizzleKit.js.map +1 -1
- package/dist/postgres/schema/buildDrizzleTable.d.ts.map +1 -1
- package/dist/postgres/schema/geometryColumn.d.ts +2 -2
- package/dist/postgres/schema/geometryColumn.d.ts.map +1 -1
- package/dist/postgres/types.d.ts +17 -2
- package/dist/postgres/types.d.ts.map +1 -1
- package/dist/postgres/types.js.map +1 -1
- package/dist/queries/addJoinTable.d.ts +1 -1
- package/dist/queries/addJoinTable.d.ts.map +1 -1
- package/dist/queries/buildAndOrConditions.d.ts +3 -2
- package/dist/queries/buildAndOrConditions.d.ts.map +1 -1
- package/dist/queries/buildAndOrConditions.js +2 -1
- package/dist/queries/buildAndOrConditions.js.map +1 -1
- package/dist/queries/buildBranchVisibility.d.ts +11 -0
- package/dist/queries/buildBranchVisibility.d.ts.map +1 -0
- package/dist/queries/buildBranchVisibility.js +48 -0
- package/dist/queries/buildBranchVisibility.js.map +1 -0
- package/dist/queries/buildOperatorConstraint.d.ts +22 -0
- package/dist/queries/buildOperatorConstraint.d.ts.map +1 -0
- package/dist/queries/buildOperatorConstraint.js +63 -0
- package/dist/queries/buildOperatorConstraint.js.map +1 -0
- package/dist/queries/buildOrderBy.d.ts +3 -2
- package/dist/queries/buildOrderBy.d.ts.map +1 -1
- package/dist/queries/buildOrderBy.js +2 -1
- package/dist/queries/buildOrderBy.js.map +1 -1
- package/dist/queries/buildQuery.d.ts +3 -2
- package/dist/queries/buildQuery.d.ts.map +1 -1
- package/dist/queries/buildQuery.js +4 -2
- package/dist/queries/buildQuery.js.map +1 -1
- package/dist/queries/getTableAlias.d.ts.map +1 -1
- package/dist/queries/getTableColumnFromPath.d.ts +15 -5
- package/dist/queries/getTableColumnFromPath.d.ts.map +1 -1
- package/dist/queries/getTableColumnFromPath.js +228 -58
- package/dist/queries/getTableColumnFromPath.js.map +1 -1
- package/dist/queries/operatorMap.d.ts +7 -3
- package/dist/queries/operatorMap.d.ts.map +1 -1
- package/dist/queries/operatorMap.js.map +1 -1
- package/dist/queries/parseParams.d.ts +3 -2
- package/dist/queries/parseParams.d.ts.map +1 -1
- package/dist/queries/parseParams.js +266 -11
- package/dist/queries/parseParams.js.map +1 -1
- package/dist/queries/resolveRelationshipPath.d.ts +36 -0
- package/dist/queries/resolveRelationshipPath.d.ts.map +1 -0
- package/dist/queries/resolveRelationshipPath.js +66 -0
- package/dist/queries/resolveRelationshipPath.js.map +1 -0
- package/dist/queries/sanitizeQueryValue.d.ts.map +1 -1
- package/dist/queries/selectDistinct.d.ts.map +1 -1
- package/dist/queries/validateOperatorHandlers.d.ts +8 -0
- package/dist/queries/validateOperatorHandlers.d.ts.map +1 -0
- package/dist/queries/validateOperatorHandlers.js +30 -0
- package/dist/queries/validateOperatorHandlers.js.map +1 -0
- package/dist/queryDrafts.d.ts.map +1 -1
- package/dist/queryDrafts.js +27 -5
- package/dist/queryDrafts.js.map +1 -1
- package/dist/schema/build.d.ts.map +1 -1
- package/dist/schema/build.js +28 -20
- package/dist/schema/build.js.map +1 -1
- package/dist/schema/buildDrizzleRelations.d.ts.map +1 -1
- package/dist/schema/buildRawSchema.d.ts.map +1 -1
- package/dist/schema/idToUUID.d.ts.map +1 -1
- package/dist/schema/traverseFields.d.ts.map +1 -1
- package/dist/schema/traverseFields.js +7 -6
- package/dist/schema/traverseFields.js.map +1 -1
- package/dist/schema/withDefault.d.ts.map +1 -1
- package/dist/sqlite/createJSONQuery/convertPathToJSONTraversal.d.ts.map +1 -1
- package/dist/sqlite/createJSONQuery/convertPathToJSONTraversal.js +3 -2
- package/dist/sqlite/createJSONQuery/convertPathToJSONTraversal.js.map +1 -1
- package/dist/sqlite/createJSONQuery/index.d.ts.map +1 -1
- package/dist/sqlite/createJSONQuery/index.js +6 -5
- package/dist/sqlite/createJSONQuery/index.js.map +1 -1
- package/dist/sqlite/createRequireDrizzleKit.d.ts +6 -0
- package/dist/sqlite/createRequireDrizzleKit.d.ts.map +1 -0
- package/dist/sqlite/createRequireDrizzleKit.js +15 -0
- package/dist/sqlite/createRequireDrizzleKit.js.map +1 -0
- package/dist/sqlite/execute.js.map +1 -1
- package/dist/sqlite/insert.d.ts.map +1 -1
- package/dist/sqlite/insert.js +9 -4
- package/dist/sqlite/insert.js.map +1 -1
- package/dist/sqlite/predefinedMigrations/localize-status/index.d.ts +28 -0
- package/dist/sqlite/predefinedMigrations/localize-status/index.d.ts.map +1 -0
- package/dist/sqlite/predefinedMigrations/localize-status/index.js +198 -0
- package/dist/sqlite/predefinedMigrations/localize-status/index.js.map +1 -0
- package/dist/sqlite/predefinedMigrations/localize-status/migrateMainCollection.d.ts +12 -0
- package/dist/sqlite/predefinedMigrations/localize-status/migrateMainCollection.d.ts.map +1 -0
- package/dist/sqlite/predefinedMigrations/localize-status/migrateMainCollection.js +24 -0
- package/dist/sqlite/predefinedMigrations/localize-status/migrateMainCollection.js.map +1 -0
- package/dist/sqlite/predefinedMigrations/localize-status/migrateMainGlobal.d.ts +12 -0
- package/dist/sqlite/predefinedMigrations/localize-status/migrateMainGlobal.d.ts.map +1 -0
- package/dist/sqlite/predefinedMigrations/localize-status/migrateMainGlobal.js +28 -0
- package/dist/sqlite/predefinedMigrations/localize-status/migrateMainGlobal.js.map +1 -0
- package/dist/sqlite/predefinedMigrations/sizes-to-variants/index.d.ts +15 -0
- package/dist/sqlite/predefinedMigrations/sizes-to-variants/index.d.ts.map +1 -0
- package/dist/sqlite/predefinedMigrations/sizes-to-variants/index.js +114 -0
- package/dist/sqlite/predefinedMigrations/sizes-to-variants/index.js.map +1 -0
- package/dist/sqlite/types.d.ts +4 -0
- package/dist/sqlite/types.d.ts.map +1 -1
- package/dist/sqlite/types.js.map +1 -1
- package/dist/transactions/beginTransaction.d.ts.map +1 -1
- package/dist/transactions/beginTransaction.js +13 -5
- package/dist/transactions/beginTransaction.js.map +1 -1
- package/dist/transactions/commitTransaction.d.ts.map +1 -1
- package/dist/transactions/commitTransaction.js +1 -5
- package/dist/transactions/commitTransaction.js.map +1 -1
- package/dist/transform/read/hasManyNumber.d.ts.map +1 -1
- package/dist/transform/read/hasManyText.d.ts.map +1 -1
- package/dist/transform/read/index.d.ts.map +1 -1
- package/dist/transform/read/relationship.d.ts.map +1 -1
- package/dist/transform/read/traverseFields.d.ts.map +1 -1
- package/dist/transform/read/traverseFields.js +2 -2
- package/dist/transform/read/traverseFields.js.map +1 -1
- package/dist/transform/write/array.d.ts +3 -2
- package/dist/transform/write/array.d.ts.map +1 -1
- package/dist/transform/write/array.js +2 -1
- package/dist/transform/write/array.js.map +1 -1
- package/dist/transform/write/blocks.d.ts +3 -2
- package/dist/transform/write/blocks.d.ts.map +1 -1
- package/dist/transform/write/blocks.js +3 -2
- package/dist/transform/write/blocks.js.map +1 -1
- package/dist/transform/write/index.d.ts.map +1 -1
- package/dist/transform/write/index.js +2 -0
- package/dist/transform/write/index.js.map +1 -1
- package/dist/transform/write/numbers.d.ts.map +1 -1
- package/dist/transform/write/relationships.d.ts.map +1 -1
- package/dist/transform/write/selects.d.ts.map +1 -1
- package/dist/transform/write/texts.d.ts.map +1 -1
- package/dist/transform/write/traverseFields.d.ts +2 -1
- package/dist/transform/write/traverseFields.d.ts.map +1 -1
- package/dist/transform/write/traverseFields.js +52 -23
- package/dist/transform/write/traverseFields.js.map +1 -1
- package/dist/transform/write/types.d.ts +7 -0
- package/dist/transform/write/types.d.ts.map +1 -1
- package/dist/transform/write/types.js.map +1 -1
- package/dist/types.d.ts +53 -8
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +1 -3
- package/dist/types.js.map +1 -1
- package/dist/updateGlobal.d.ts +5 -1
- package/dist/updateGlobal.d.ts.map +1 -1
- package/dist/updateGlobal.js +96 -4
- package/dist/updateGlobal.js.map +1 -1
- package/dist/updateJobs.d.ts.map +1 -1
- package/dist/updateJobs.js +37 -0
- package/dist/updateJobs.js.map +1 -1
- package/dist/updateOne.d.ts.map +1 -1
- package/dist/updateOne.js +93 -4
- package/dist/updateOne.js.map +1 -1
- package/dist/upsertBranchGlobalChange.d.ts +3 -0
- package/dist/upsertBranchGlobalChange.d.ts.map +1 -0
- package/dist/upsertBranchGlobalChange.js +35 -0
- package/dist/upsertBranchGlobalChange.js.map +1 -0
- package/dist/upsertRow/deleteExistingArrayRows.d.ts.map +1 -1
- package/dist/upsertRow/deleteExistingRowsByPath.d.ts.map +1 -1
- package/dist/upsertRow/deleteExistingRowsByPath.js +17 -12
- package/dist/upsertRow/deleteExistingRowsByPath.js.map +1 -1
- package/dist/upsertRow/handleUpsertError.d.ts.map +1 -1
- package/dist/upsertRow/handleUpsertError.js +2 -1
- package/dist/upsertRow/handleUpsertError.js.map +1 -1
- package/dist/upsertRow/index.d.ts +1 -1
- package/dist/upsertRow/index.d.ts.map +1 -1
- package/dist/upsertRow/index.js +161 -48
- package/dist/upsertRow/index.js.map +1 -1
- package/dist/upsertRow/insertArrays.d.ts.map +1 -1
- package/dist/upsertRow/insertArrays.js +2 -1
- package/dist/upsertRow/insertArrays.js.map +1 -1
- package/dist/upsertRow/shouldUseOptimizedUpsertRow.d.ts.map +1 -1
- package/dist/upsertRow/types.d.ts +3 -0
- package/dist/upsertRow/types.d.ts.map +1 -1
- package/dist/upsertRow/types.js.map +1 -1
- package/dist/utilities/appendPrefixToKeys.d.ts.map +1 -1
- package/dist/utilities/blocksToJsonMigrator.d.ts.map +1 -1
- package/dist/utilities/blocksToJsonMigrator.js +7 -18
- package/dist/utilities/blocksToJsonMigrator.js.map +1 -1
- package/dist/utilities/buildCreateMigration.d.ts.map +1 -1
- package/dist/utilities/buildCreateMigration.js +13 -9
- package/dist/utilities/buildCreateMigration.js.map +1 -1
- package/dist/utilities/buildDynamicPredefinedSizesToVariantsMigration.d.ts +15 -0
- package/dist/utilities/buildDynamicPredefinedSizesToVariantsMigration.d.ts.map +1 -0
- package/dist/utilities/buildDynamicPredefinedSizesToVariantsMigration.js +110 -0
- package/dist/utilities/buildDynamicPredefinedSizesToVariantsMigration.js.map +1 -0
- package/dist/utilities/buildForeignKeyName.d.ts.map +1 -1
- package/dist/utilities/buildForeignKeyName.js +3 -2
- package/dist/utilities/buildForeignKeyName.js.map +1 -1
- package/dist/utilities/buildIndexName.d.ts.map +1 -1
- package/dist/utilities/buildIndexName.js +3 -2
- package/dist/utilities/buildIndexName.js.map +1 -1
- package/dist/utilities/checkTruncatedIdentifiers.d.ts +13 -0
- package/dist/utilities/checkTruncatedIdentifiers.d.ts.map +1 -0
- package/dist/utilities/checkTruncatedIdentifiers.js +56 -0
- package/dist/utilities/checkTruncatedIdentifiers.js.map +1 -0
- package/dist/utilities/createBlocksMap.d.ts.map +1 -1
- package/dist/utilities/createRelationshipMap.d.ts.map +1 -1
- package/dist/utilities/createSchemaGenerator.d.ts.map +1 -1
- package/dist/utilities/createSchemaGenerator.js +10 -12
- package/dist/utilities/createSchemaGenerator.js.map +1 -1
- package/dist/utilities/escapeSQLValue.d.ts.map +1 -1
- package/dist/utilities/executeSchemaHooks.d.ts.map +1 -1
- package/dist/utilities/executeSchemaHooks.js +1 -1
- package/dist/utilities/executeSchemaHooks.js.map +1 -1
- package/dist/utilities/extendDrizzleTable.d.ts.map +1 -1
- package/dist/utilities/formatGeneratedFile.d.ts +10 -0
- package/dist/utilities/formatGeneratedFile.d.ts.map +1 -0
- package/dist/utilities/formatGeneratedFile.js +58 -0
- package/dist/utilities/formatGeneratedFile.js.map +1 -0
- package/dist/utilities/getArrayRelationName.d.ts.map +1 -1
- package/dist/utilities/getCollectionIdType.d.ts.map +1 -1
- package/dist/utilities/getMigrationTemplate.d.ts.map +1 -1
- package/dist/utilities/getNameFromDrizzleTable.d.ts.map +1 -1
- package/dist/utilities/getPrimaryDb.d.ts +1 -1
- package/dist/utilities/getPrimaryDb.d.ts.map +1 -1
- package/dist/utilities/getSizesToVariantsRenames.d.ts +54 -0
- package/dist/utilities/getSizesToVariantsRenames.d.ts.map +1 -0
- package/dist/utilities/getSizesToVariantsRenames.js +251 -0
- package/dist/utilities/getSizesToVariantsRenames.js.map +1 -0
- package/dist/utilities/getTransaction.d.ts +1 -1
- package/dist/utilities/getTransaction.d.ts.map +1 -1
- package/dist/utilities/getTransaction.js.map +1 -1
- package/dist/utilities/hasLocalesTable.d.ts.map +1 -1
- package/dist/utilities/isPolymorphicRelationship.d.ts.map +1 -1
- package/dist/utilities/isUUIDType.d.ts.map +1 -1
- package/dist/utilities/json.d.ts.map +1 -1
- package/dist/utilities/migrationTableExists.d.ts.map +1 -1
- package/dist/utilities/parseError.d.ts.map +1 -1
- package/dist/utilities/parseJSONPathSegment.d.ts +9 -0
- package/dist/utilities/parseJSONPathSegment.d.ts.map +1 -0
- package/dist/utilities/parseJSONPathSegment.js +17 -0
- package/dist/utilities/parseJSONPathSegment.js.map +1 -0
- package/dist/utilities/pushDevSchema.d.ts.map +1 -1
- package/dist/utilities/pushDevSchema.js +1 -1
- package/dist/utilities/pushDevSchema.js.map +1 -1
- package/dist/utilities/rawConstraint.d.ts.map +1 -1
- package/dist/utilities/sanitizePathSegment.d.ts.map +1 -1
- package/dist/utilities/validateExistingBlockIsIdentical.d.ts +1 -5
- package/dist/utilities/validateExistingBlockIsIdentical.d.ts.map +1 -1
- package/dist/utilities/validateExistingBlockIsIdentical.js.map +1 -1
- package/dist/utilities/validateIdentifierLength.d.ts +12 -0
- package/dist/utilities/validateIdentifierLength.d.ts.map +1 -0
- package/dist/utilities/validateIdentifierLength.js +18 -0
- package/dist/utilities/validateIdentifierLength.js.map +1 -0
- package/package.json +17 -19
- package/dist/find/chainMethods.d.ts +0 -20
- package/dist/find/chainMethods.d.ts.map +0 -1
- package/dist/find/chainMethods.js +0 -16
- package/dist/find/chainMethods.js.map +0 -1
- package/dist/sqlite/requireDrizzleKit.d.ts +0 -3
- package/dist/sqlite/requireDrizzleKit.d.ts.map +0 -1
- package/dist/sqlite/requireDrizzleKit.js +0 -12
- package/dist/sqlite/requireDrizzleKit.js.map +0 -1
- package/dist/utilities/isValidStringID.spec.js +0 -15
- package/dist/utilities/isValidStringID.spec.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sqlite.d.ts","sourceRoot":"","sources":["../../src/exports/sqlite.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAA;AAC1E,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC1D,OAAO,EAAE,0BAA0B,EAAE,MAAM,yDAAyD,CAAA;AACpG,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAA;AACpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAA;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"sqlite.d.ts","sourceRoot":"","sources":["../../src/exports/sqlite.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAA;AAC1E,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC1D,OAAO,EAAE,0BAA0B,EAAE,MAAM,yDAAyD,CAAA;AACpG,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAA;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAA;AAC9E,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAA;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,OAAO,EAAE,2BAA2B,EAAE,MAAM,yDAAyD,CAAA;AACrG,OAAO,EAAE,4BAA4B,EAAE,MAAM,2DAA2D,CAAA;AACxG,cAAc,oBAAoB,CAAA"}
|
package/dist/exports/sqlite.js
CHANGED
|
@@ -2,13 +2,15 @@ export { columnToCodeConverter } from '../sqlite/columnToCodeConverter.js';
|
|
|
2
2
|
export { countDistinct } from '../sqlite/countDistinct.js';
|
|
3
3
|
export { convertPathToJSONTraversal } from '../sqlite/createJSONQuery/convertPathToJSONTraversal.js';
|
|
4
4
|
export { createJSONQuery } from '../sqlite/createJSONQuery/index.js';
|
|
5
|
+
export { createRequireDrizzleKit } from '../sqlite/createRequireDrizzleKit.js';
|
|
5
6
|
export { defaultDrizzleSnapshot } from '../sqlite/defaultSnapshot.js';
|
|
6
7
|
export { deleteWhere } from '../sqlite/deleteWhere.js';
|
|
7
8
|
export { dropDatabase } from '../sqlite/dropDatabase.js';
|
|
8
9
|
export { execute } from '../sqlite/execute.js';
|
|
9
10
|
export { init } from '../sqlite/init.js';
|
|
10
11
|
export { insert } from '../sqlite/insert.js';
|
|
11
|
-
export {
|
|
12
|
+
export { migrateSqliteLocalizeStatus } from '../sqlite/predefinedMigrations/localize-status/index.js';
|
|
13
|
+
export { migrateSqliteSizesToVariants } from '../sqlite/predefinedMigrations/sizes-to-variants/index.js';
|
|
12
14
|
export * from '../sqlite/types.js';
|
|
13
15
|
|
|
14
16
|
//# sourceMappingURL=sqlite.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/exports/sqlite.ts"],"sourcesContent":["export { columnToCodeConverter } from '../sqlite/columnToCodeConverter.js'\nexport { countDistinct } from '../sqlite/countDistinct.js'\nexport { convertPathToJSONTraversal } from '../sqlite/createJSONQuery/convertPathToJSONTraversal.js'\nexport { createJSONQuery } from '../sqlite/createJSONQuery/index.js'\nexport { defaultDrizzleSnapshot } from '../sqlite/defaultSnapshot.js'\nexport { deleteWhere } from '../sqlite/deleteWhere.js'\nexport { dropDatabase } from '../sqlite/dropDatabase.js'\nexport { execute } from '../sqlite/execute.js'\nexport { init } from '../sqlite/init.js'\nexport { insert } from '../sqlite/insert.js'\nexport {
|
|
1
|
+
{"version":3,"sources":["../../src/exports/sqlite.ts"],"sourcesContent":["export { columnToCodeConverter } from '../sqlite/columnToCodeConverter.js'\nexport { countDistinct } from '../sqlite/countDistinct.js'\nexport { convertPathToJSONTraversal } from '../sqlite/createJSONQuery/convertPathToJSONTraversal.js'\nexport { createJSONQuery } from '../sqlite/createJSONQuery/index.js'\nexport { createRequireDrizzleKit } from '../sqlite/createRequireDrizzleKit.js'\nexport { defaultDrizzleSnapshot } from '../sqlite/defaultSnapshot.js'\nexport { deleteWhere } from '../sqlite/deleteWhere.js'\nexport { dropDatabase } from '../sqlite/dropDatabase.js'\nexport { execute } from '../sqlite/execute.js'\nexport { init } from '../sqlite/init.js'\nexport { insert } from '../sqlite/insert.js'\nexport { migrateSqliteLocalizeStatus } from '../sqlite/predefinedMigrations/localize-status/index.js'\nexport { migrateSqliteSizesToVariants } from '../sqlite/predefinedMigrations/sizes-to-variants/index.js'\nexport * from '../sqlite/types.js'\n"],"names":["columnToCodeConverter","countDistinct","convertPathToJSONTraversal","createJSONQuery","createRequireDrizzleKit","defaultDrizzleSnapshot","deleteWhere","dropDatabase","execute","init","insert","migrateSqliteLocalizeStatus","migrateSqliteSizesToVariants"],"mappings":"AAAA,SAASA,qBAAqB,QAAQ,qCAAoC;AAC1E,SAASC,aAAa,QAAQ,6BAA4B;AAC1D,SAASC,0BAA0B,QAAQ,0DAAyD;AACpG,SAASC,eAAe,QAAQ,qCAAoC;AACpE,SAASC,uBAAuB,QAAQ,uCAAsC;AAC9E,SAASC,sBAAsB,QAAQ,+BAA8B;AACrE,SAASC,WAAW,QAAQ,2BAA0B;AACtD,SAASC,YAAY,QAAQ,4BAA2B;AACxD,SAASC,OAAO,QAAQ,uBAAsB;AAC9C,SAASC,IAAI,QAAQ,oBAAmB;AACxC,SAASC,MAAM,QAAQ,sBAAqB;AAC5C,SAASC,2BAA2B,QAAQ,0DAAyD;AACrG,SAASC,4BAA4B,QAAQ,4DAA2D;AACxG,cAAc,qBAAoB"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { DBQueryConfig } from 'drizzle-orm';
|
|
2
|
-
import type { FlattenedField, JoinQuery, SelectType } from 'payload';
|
|
2
|
+
import type { FlattenedField, JoinQuery, PayloadRequest, SelectType } from 'payload';
|
|
3
3
|
import type { BuildQueryJoinAliases, DrizzleAdapter } from '../types.js';
|
|
4
4
|
type BuildFindQueryArgs = {
|
|
5
5
|
adapter: DrizzleAdapter;
|
|
@@ -13,6 +13,7 @@ type BuildFindQueryArgs = {
|
|
|
13
13
|
*/
|
|
14
14
|
joins?: BuildQueryJoinAliases;
|
|
15
15
|
locale?: string;
|
|
16
|
+
req?: Partial<PayloadRequest>;
|
|
16
17
|
select?: SelectType;
|
|
17
18
|
tableName: string;
|
|
18
19
|
versions?: boolean;
|
|
@@ -22,6 +23,6 @@ export type Result = {
|
|
|
22
23
|
_locales?: DBQueryConfig<'many', true, any, any>;
|
|
23
24
|
} & DBQueryConfig<'many', true, any, any>;
|
|
24
25
|
} & DBQueryConfig<'many', true, any, any>;
|
|
25
|
-
export declare const buildFindManyArgs: ({ adapter, collectionSlug, depth, draftsEnabled, fields, joinQuery, joins, locale, select, tableName, versions, }: BuildFindQueryArgs) => Result;
|
|
26
|
+
export declare const buildFindManyArgs: ({ adapter, collectionSlug, depth, draftsEnabled, fields, joinQuery, joins, locale, req, select, tableName, versions, }: BuildFindQueryArgs) => Result;
|
|
26
27
|
export {};
|
|
27
28
|
//# sourceMappingURL=buildFindManyArgs.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildFindManyArgs.d.ts","sourceRoot":"","sources":["../../src/find/buildFindManyArgs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"buildFindManyArgs.d.ts","sourceRoot":"","sources":["../../src/find/buildFindManyArgs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAIpF,OAAO,KAAK,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAIxE,KAAK,kBAAkB,GAAG;IACxB,OAAO,EAAE,cAAc,CAAA;IACvB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,KAAK,EAAE,MAAM,CAAA;IACb,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,MAAM,EAAE,cAAc,EAAE,CAAA;IACxB,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB;;OAEG;IACH,KAAK,CAAC,EAAE,qBAAqB,CAAA;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,GAAG,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAA;IAC7B,MAAM,CAAC,EAAE,UAAU,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,MAAM,GAAG;IACnB,IAAI,CAAC,EAAE;QACL,QAAQ,CAAC,EAAE,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;KACjD,GAAG,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;CAC1C,GAAG,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;AAIzC,eAAO,MAAM,iBAAiB,2HAa3B,kBAAkB,KAAG,MAmGvB,CAAA"}
|
|
@@ -2,7 +2,7 @@ import { getSelectMode } from 'payload/shared';
|
|
|
2
2
|
import { traverseFields } from './traverseFields.js';
|
|
3
3
|
// Generate the Drizzle query for findMany based on
|
|
4
4
|
// a collection field structure
|
|
5
|
-
export const buildFindManyArgs = ({ adapter, collectionSlug, depth, draftsEnabled, fields, joinQuery, joins = [], locale, select, tableName, versions })=>{
|
|
5
|
+
export const buildFindManyArgs = ({ adapter, collectionSlug, depth, draftsEnabled, fields, joinQuery, joins = [], locale, req, select, tableName, versions })=>{
|
|
6
6
|
const result = {
|
|
7
7
|
extras: {},
|
|
8
8
|
with: {}
|
|
@@ -40,6 +40,7 @@ export const buildFindManyArgs = ({ adapter, collectionSlug, depth, draftsEnable
|
|
|
40
40
|
joins,
|
|
41
41
|
locale,
|
|
42
42
|
path: '',
|
|
43
|
+
req,
|
|
43
44
|
select,
|
|
44
45
|
selectMode: select ? getSelectMode(select) : undefined,
|
|
45
46
|
tablePath: '',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/find/buildFindManyArgs.ts"],"sourcesContent":["import type { DBQueryConfig } from 'drizzle-orm'\nimport type { FlattenedField, JoinQuery, SelectType } from 'payload'\n\nimport { getSelectMode } from 'payload/shared'\n\nimport type { BuildQueryJoinAliases, DrizzleAdapter } from '../types.js'\n\nimport { traverseFields } from './traverseFields.js'\n\ntype BuildFindQueryArgs = {\n adapter: DrizzleAdapter\n collectionSlug?: string\n depth: number\n draftsEnabled?: boolean\n fields: FlattenedField[]\n joinQuery?: JoinQuery\n /**\n * The joins array will be mutated by pushing any joins needed for the where queries of join field joins\n */\n joins?: BuildQueryJoinAliases\n locale?: string\n select?: SelectType\n tableName: string\n versions?: boolean\n}\n\nexport type Result = {\n with?: {\n _locales?: DBQueryConfig<'many', true, any, any>\n } & DBQueryConfig<'many', true, any, any>\n} & DBQueryConfig<'many', true, any, any>\n\n// Generate the Drizzle query for findMany based on\n// a collection field structure\nexport const buildFindManyArgs = ({\n adapter,\n collectionSlug,\n depth,\n draftsEnabled,\n fields,\n joinQuery,\n joins = [],\n locale,\n select,\n tableName,\n versions,\n}: BuildFindQueryArgs): Result => {\n const result: Result = {\n extras: {},\n with: {},\n }\n\n if (select) {\n result.columns = {\n id: true,\n }\n }\n\n const _locales: Result = {\n columns: select\n ? { _locale: true }\n : {\n id: false,\n _parentID: false,\n },\n extras: {},\n with: {},\n }\n\n const withTabledFields = select\n ? {}\n : {\n numbers: true,\n rels: true,\n texts: true,\n }\n\n traverseFields({\n _locales,\n adapter,\n collectionSlug,\n currentArgs: result,\n currentTableName: tableName,\n depth,\n draftsEnabled,\n fields,\n joinQuery,\n joins,\n locale,\n path: '',\n select,\n selectMode: select ? getSelectMode(select) : undefined,\n tablePath: '',\n topLevelArgs: result,\n topLevelTableName: tableName,\n versions,\n withTabledFields,\n })\n\n if (adapter.tables[`${tableName}_texts`] && withTabledFields.texts) {\n result.with._texts = {\n columns: {\n id: false,\n parent: false,\n },\n orderBy: ({ order }, { asc: ASC }) => [ASC(order)],\n }\n }\n\n if (adapter.tables[`${tableName}_numbers`] && withTabledFields.numbers) {\n result.with._numbers = {\n columns: {\n id: false,\n parent: false,\n },\n orderBy: ({ order }, { asc: ASC }) => [ASC(order)],\n }\n }\n\n if (adapter.tables[`${tableName}${adapter.relationshipsSuffix}`] && withTabledFields.rels) {\n result.with._rels = {\n columns: {\n id: false,\n parent: false,\n },\n orderBy: ({ order }, { asc: ASC }) => [ASC(order)],\n }\n }\n\n if (\n adapter.tables[`${tableName}${adapter.localesSuffix}`] &&\n (!select || Object.keys(_locales.columns).length > 1)\n ) {\n result.with._locales = _locales\n }\n\n // Delete properties that are empty\n for (const key of Object.keys(result)) {\n if (!Object.keys(result[key]).length) {\n delete result[key]\n }\n }\n\n return result\n}\n"],"names":["getSelectMode","traverseFields","buildFindManyArgs","adapter","collectionSlug","depth","draftsEnabled","fields","joinQuery","joins","locale","select","tableName","versions","result","extras","with","columns","id","_locales","_locale","_parentID","withTabledFields","numbers","rels","texts","currentArgs","currentTableName","path","selectMode","undefined","tablePath","topLevelArgs","topLevelTableName","tables","_texts","parent","orderBy","order","asc","ASC","_numbers","relationshipsSuffix","_rels","localesSuffix","Object","keys","length","key"],"mappings":"AAGA,SAASA,aAAa,QAAQ,iBAAgB;AAI9C,SAASC,cAAc,QAAQ,sBAAqB;
|
|
1
|
+
{"version":3,"sources":["../../src/find/buildFindManyArgs.ts"],"sourcesContent":["import type { DBQueryConfig } from 'drizzle-orm'\nimport type { FlattenedField, JoinQuery, PayloadRequest, SelectType } from 'payload'\n\nimport { getSelectMode } from 'payload/shared'\n\nimport type { BuildQueryJoinAliases, DrizzleAdapter } from '../types.js'\n\nimport { traverseFields } from './traverseFields.js'\n\ntype BuildFindQueryArgs = {\n adapter: DrizzleAdapter\n collectionSlug?: string\n depth: number\n draftsEnabled?: boolean\n fields: FlattenedField[]\n joinQuery?: JoinQuery\n /**\n * The joins array will be mutated by pushing any joins needed for the where queries of join field joins\n */\n joins?: BuildQueryJoinAliases\n locale?: string\n req?: Partial<PayloadRequest>\n select?: SelectType\n tableName: string\n versions?: boolean\n}\n\nexport type Result = {\n with?: {\n _locales?: DBQueryConfig<'many', true, any, any>\n } & DBQueryConfig<'many', true, any, any>\n} & DBQueryConfig<'many', true, any, any>\n\n// Generate the Drizzle query for findMany based on\n// a collection field structure\nexport const buildFindManyArgs = ({\n adapter,\n collectionSlug,\n depth,\n draftsEnabled,\n fields,\n joinQuery,\n joins = [],\n locale,\n req,\n select,\n tableName,\n versions,\n}: BuildFindQueryArgs): Result => {\n const result: Result = {\n extras: {},\n with: {},\n }\n\n if (select) {\n result.columns = {\n id: true,\n }\n }\n\n const _locales: Result = {\n columns: select\n ? { _locale: true }\n : {\n id: false,\n _parentID: false,\n },\n extras: {},\n with: {},\n }\n\n const withTabledFields = select\n ? {}\n : {\n numbers: true,\n rels: true,\n texts: true,\n }\n\n traverseFields({\n _locales,\n adapter,\n collectionSlug,\n currentArgs: result,\n currentTableName: tableName,\n depth,\n draftsEnabled,\n fields,\n joinQuery,\n joins,\n locale,\n path: '',\n req,\n select,\n selectMode: select ? getSelectMode(select) : undefined,\n tablePath: '',\n topLevelArgs: result,\n topLevelTableName: tableName,\n versions,\n withTabledFields,\n })\n\n if (adapter.tables[`${tableName}_texts`] && withTabledFields.texts) {\n result.with._texts = {\n columns: {\n id: false,\n parent: false,\n },\n orderBy: ({ order }, { asc: ASC }) => [ASC(order)],\n }\n }\n\n if (adapter.tables[`${tableName}_numbers`] && withTabledFields.numbers) {\n result.with._numbers = {\n columns: {\n id: false,\n parent: false,\n },\n orderBy: ({ order }, { asc: ASC }) => [ASC(order)],\n }\n }\n\n if (adapter.tables[`${tableName}${adapter.relationshipsSuffix}`] && withTabledFields.rels) {\n result.with._rels = {\n columns: {\n id: false,\n parent: false,\n },\n orderBy: ({ order }, { asc: ASC }) => [ASC(order)],\n }\n }\n\n if (\n adapter.tables[`${tableName}${adapter.localesSuffix}`] &&\n (!select || Object.keys(_locales.columns).length > 1)\n ) {\n result.with._locales = _locales\n }\n\n // Delete properties that are empty\n for (const key of Object.keys(result)) {\n if (!Object.keys(result[key]).length) {\n delete result[key]\n }\n }\n\n return result\n}\n"],"names":["getSelectMode","traverseFields","buildFindManyArgs","adapter","collectionSlug","depth","draftsEnabled","fields","joinQuery","joins","locale","req","select","tableName","versions","result","extras","with","columns","id","_locales","_locale","_parentID","withTabledFields","numbers","rels","texts","currentArgs","currentTableName","path","selectMode","undefined","tablePath","topLevelArgs","topLevelTableName","tables","_texts","parent","orderBy","order","asc","ASC","_numbers","relationshipsSuffix","_rels","localesSuffix","Object","keys","length","key"],"mappings":"AAGA,SAASA,aAAa,QAAQ,iBAAgB;AAI9C,SAASC,cAAc,QAAQ,sBAAqB;AA0BpD,mDAAmD;AACnD,+BAA+B;AAC/B,OAAO,MAAMC,oBAAoB,CAAC,EAChCC,OAAO,EACPC,cAAc,EACdC,KAAK,EACLC,aAAa,EACbC,MAAM,EACNC,SAAS,EACTC,QAAQ,EAAE,EACVC,MAAM,EACNC,GAAG,EACHC,MAAM,EACNC,SAAS,EACTC,QAAQ,EACW;IACnB,MAAMC,SAAiB;QACrBC,QAAQ,CAAC;QACTC,MAAM,CAAC;IACT;IAEA,IAAIL,QAAQ;QACVG,OAAOG,OAAO,GAAG;YACfC,IAAI;QACN;IACF;IAEA,MAAMC,WAAmB;QACvBF,SAASN,SACL;YAAES,SAAS;QAAK,IAChB;YACEF,IAAI;YACJG,WAAW;QACb;QACJN,QAAQ,CAAC;QACTC,MAAM,CAAC;IACT;IAEA,MAAMM,mBAAmBX,SACrB,CAAC,IACD;QACEY,SAAS;QACTC,MAAM;QACNC,OAAO;IACT;IAEJzB,eAAe;QACbmB;QACAjB;QACAC;QACAuB,aAAaZ;QACba,kBAAkBf;QAClBR;QACAC;QACAC;QACAC;QACAC;QACAC;QACAmB,MAAM;QACNlB;QACAC;QACAkB,YAAYlB,SAASZ,cAAcY,UAAUmB;QAC7CC,WAAW;QACXC,cAAclB;QACdmB,mBAAmBrB;QACnBC;QACAS;IACF;IAEA,IAAIpB,QAAQgC,MAAM,CAAC,GAAGtB,UAAU,MAAM,CAAC,CAAC,IAAIU,iBAAiBG,KAAK,EAAE;QAClEX,OAAOE,IAAI,CAACmB,MAAM,GAAG;YACnBlB,SAAS;gBACPC,IAAI;gBACJkB,QAAQ;YACV;YACAC,SAAS,CAAC,EAAEC,KAAK,EAAE,EAAE,EAAEC,KAAKC,GAAG,EAAE,GAAK;oBAACA,IAAIF;iBAAO;QACpD;IACF;IAEA,IAAIpC,QAAQgC,MAAM,CAAC,GAAGtB,UAAU,QAAQ,CAAC,CAAC,IAAIU,iBAAiBC,OAAO,EAAE;QACtET,OAAOE,IAAI,CAACyB,QAAQ,GAAG;YACrBxB,SAAS;gBACPC,IAAI;gBACJkB,QAAQ;YACV;YACAC,SAAS,CAAC,EAAEC,KAAK,EAAE,EAAE,EAAEC,KAAKC,GAAG,EAAE,GAAK;oBAACA,IAAIF;iBAAO;QACpD;IACF;IAEA,IAAIpC,QAAQgC,MAAM,CAAC,GAAGtB,YAAYV,QAAQwC,mBAAmB,EAAE,CAAC,IAAIpB,iBAAiBE,IAAI,EAAE;QACzFV,OAAOE,IAAI,CAAC2B,KAAK,GAAG;YAClB1B,SAAS;gBACPC,IAAI;gBACJkB,QAAQ;YACV;YACAC,SAAS,CAAC,EAAEC,KAAK,EAAE,EAAE,EAAEC,KAAKC,GAAG,EAAE,GAAK;oBAACA,IAAIF;iBAAO;QACpD;IACF;IAEA,IACEpC,QAAQgC,MAAM,CAAC,GAAGtB,YAAYV,QAAQ0C,aAAa,EAAE,CAAC,IACrD,CAAA,CAACjC,UAAUkC,OAAOC,IAAI,CAAC3B,SAASF,OAAO,EAAE8B,MAAM,GAAG,CAAA,GACnD;QACAjC,OAAOE,IAAI,CAACG,QAAQ,GAAGA;IACzB;IAEA,mCAAmC;IACnC,KAAK,MAAM6B,OAAOH,OAAOC,IAAI,CAAChC,QAAS;QACrC,IAAI,CAAC+B,OAAOC,IAAI,CAAChC,MAAM,CAACkC,IAAI,EAAED,MAAM,EAAE;YACpC,OAAOjC,MAAM,CAACkC,IAAI;QACpB;IACF;IAEA,OAAOlC;AACT,EAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { SQL } from 'drizzle-orm';
|
|
2
|
+
import { type FlattenedJoinField, type PayloadRequest, type Where } from 'payload';
|
|
3
|
+
import type { DrizzleAdapter } from '../types.js';
|
|
4
|
+
type BuildPolymorphicJoinQueryArgs = {
|
|
5
|
+
adapter: DrizzleAdapter;
|
|
6
|
+
currentTableName: string;
|
|
7
|
+
field: FlattenedJoinField;
|
|
8
|
+
limit: number;
|
|
9
|
+
locale?: string;
|
|
10
|
+
page?: number;
|
|
11
|
+
pageSize?: number;
|
|
12
|
+
path: string;
|
|
13
|
+
req?: Partial<PayloadRequest>;
|
|
14
|
+
shouldCount: boolean;
|
|
15
|
+
sort?: string | string[];
|
|
16
|
+
where?: Where;
|
|
17
|
+
};
|
|
18
|
+
type PolymorphicJoinQuery = {
|
|
19
|
+
columnName: string;
|
|
20
|
+
count?: SQL.Aliased;
|
|
21
|
+
documents: SQL.Aliased;
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* Builds the correlated document and optional count projections for a join that targets multiple
|
|
25
|
+
* collections. Every collection branch exposes the same `id`, parent, `relationTo`, and sort
|
|
26
|
+
* columns before the branches are combined. A missing sort field resolves to SQL NULL so targets
|
|
27
|
+
* with different schemas can still share one ordered union.
|
|
28
|
+
*
|
|
29
|
+
* `field.collection` must contain at least one configured collection. Each mapped table must have
|
|
30
|
+
* an `id` column and the column named by `field.on`. The supplied `limit` is used as-is; callers can
|
|
31
|
+
* include an extra look-ahead row and supply the original `pageSize` for offset calculation.
|
|
32
|
+
*
|
|
33
|
+
* @returns The stable projection name, the document projection, and the count projection when
|
|
34
|
+
* `shouldCount` is true.
|
|
35
|
+
* @throws If the join definition, target collection, mapped table, required columns, or sort shape
|
|
36
|
+
* cannot be represented by the polymorphic query.
|
|
37
|
+
*/
|
|
38
|
+
export declare const buildPolymorphicJoinQuery: ({ adapter, currentTableName, field, limit, locale, page, pageSize, path, req, shouldCount, sort, where, }: BuildPolymorphicJoinQueryArgs) => PolymorphicJoinQuery;
|
|
39
|
+
export {};
|
|
40
|
+
//# sourceMappingURL=buildPolymorphicJoinQuery.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buildPolymorphicJoinQuery.d.ts","sourceRoot":"","sources":["../../src/find/buildPolymorphicJoinQuery.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AAKtC,OAAO,EAEL,KAAK,kBAAkB,EAEvB,KAAK,cAAc,EAEnB,KAAK,KAAK,EACX,MAAM,SAAS,CAAA;AAGhB,OAAO,KAAK,EAAE,cAAc,EAAgB,MAAM,aAAa,CAAA;AAQ/D,KAAK,6BAA6B,GAAG;IACnC,OAAO,EAAE,cAAc,CAAA;IACvB,gBAAgB,EAAE,MAAM,CAAA;IACxB,KAAK,EAAE,kBAAkB,CAAA;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAA;IAC7B,WAAW,EAAE,OAAO,CAAA;IACpB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IACxB,KAAK,CAAC,EAAE,KAAK,CAAA;CACd,CAAA;AAED,KAAK,oBAAoB,GAAG;IAC1B,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,GAAG,CAAC,OAAO,CAAA;IACnB,SAAS,EAAE,GAAG,CAAC,OAAO,CAAA;CACvB,CAAA;AAED;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,yBAAyB,8GAanC,6BAA6B,KAAG,oBAsKlC,CAAA"}
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
import { and, asc, count, desc, eq, getTableName, sql } from 'drizzle-orm';
|
|
2
|
+
import { combineQueries, getBranchPredicateSync, resolveBranchReadState } from 'payload';
|
|
3
|
+
import toSnakeCase from 'to-snake-case';
|
|
4
|
+
import { buildBranchVisibility } from '../queries/buildBranchVisibility.js';
|
|
5
|
+
import { jsonAggBuildObject } from '../utilities/json.js';
|
|
6
|
+
import { buildPolymorphicJoinWhere } from './buildPolymorphicJoinWhere.js';
|
|
7
|
+
import { createPolymorphicJoinWherePlan } from './createPolymorphicJoinWherePlan.js';
|
|
8
|
+
/**
|
|
9
|
+
* Builds the correlated document and optional count projections for a join that targets multiple
|
|
10
|
+
* collections. Every collection branch exposes the same `id`, parent, `relationTo`, and sort
|
|
11
|
+
* columns before the branches are combined. A missing sort field resolves to SQL NULL so targets
|
|
12
|
+
* with different schemas can still share one ordered union.
|
|
13
|
+
*
|
|
14
|
+
* `field.collection` must contain at least one configured collection. Each mapped table must have
|
|
15
|
+
* an `id` column and the column named by `field.on`. The supplied `limit` is used as-is; callers can
|
|
16
|
+
* include an extra look-ahead row and supply the original `pageSize` for offset calculation.
|
|
17
|
+
*
|
|
18
|
+
* @returns The stable projection name, the document projection, and the count projection when
|
|
19
|
+
* `shouldCount` is true.
|
|
20
|
+
* @throws If the join definition, target collection, mapped table, required columns, or sort shape
|
|
21
|
+
* cannot be represented by the polymorphic query.
|
|
22
|
+
*/ export const buildPolymorphicJoinQuery = ({ adapter, currentTableName, field, limit, locale, page, pageSize = limit, path, req, shouldCount, sort, where })=>{
|
|
23
|
+
if (!Array.isArray(field.collection)) {
|
|
24
|
+
throw new Error('A polymorphic join requires a collection array');
|
|
25
|
+
}
|
|
26
|
+
if (field.collection.length === 0) {
|
|
27
|
+
throw new Error('A polymorphic join requires at least one collection');
|
|
28
|
+
}
|
|
29
|
+
if (Array.isArray(sort)) {
|
|
30
|
+
throw new Error('Polymorphic joins do not support multiple sort fields');
|
|
31
|
+
}
|
|
32
|
+
const collections = field.collection;
|
|
33
|
+
const columnName = `${path.replaceAll('.', '_')}${field.name}`;
|
|
34
|
+
const db = adapter.drizzle;
|
|
35
|
+
const onPath = field.on.split('.').join('_');
|
|
36
|
+
const collectionTables = collections.map((collection)=>{
|
|
37
|
+
if (!adapter.payload.collections[collection]) {
|
|
38
|
+
throw new Error(`Unknown polymorphic join collection "${collection}"`);
|
|
39
|
+
}
|
|
40
|
+
const tableName = adapter.tableNameMap.get(toSnakeCase(collection));
|
|
41
|
+
const table = tableName ? adapter.tables[tableName] : undefined;
|
|
42
|
+
if (!table) {
|
|
43
|
+
throw new Error(`Polymorphic join collection "${collection}" has no database table`);
|
|
44
|
+
}
|
|
45
|
+
if (!table['id']) {
|
|
46
|
+
throw new Error(`Polymorphic join collection "${collection}" has no "id" column`);
|
|
47
|
+
}
|
|
48
|
+
if (!table[onPath]) {
|
|
49
|
+
throw new Error(`Polymorphic join collection "${collection}" has no "${onPath}" column`);
|
|
50
|
+
}
|
|
51
|
+
return {
|
|
52
|
+
collection,
|
|
53
|
+
table
|
|
54
|
+
};
|
|
55
|
+
});
|
|
56
|
+
const sortField = getSortField({
|
|
57
|
+
adapter,
|
|
58
|
+
collections,
|
|
59
|
+
sort
|
|
60
|
+
});
|
|
61
|
+
const sortOrder = sortField.startsWith('-') ? desc : asc;
|
|
62
|
+
const sortPath = sortField.replace('-', '').split('.').join('_');
|
|
63
|
+
let unionQuery = null;
|
|
64
|
+
for (const { collection, table } of collectionTables){
|
|
65
|
+
const branchReadState = resolveBranchReadState({
|
|
66
|
+
collectionSlug: collection,
|
|
67
|
+
req
|
|
68
|
+
});
|
|
69
|
+
const branchPredicate = branchReadState.useBranching ? null : getBranchPredicateSync({
|
|
70
|
+
collectionSlug: collection,
|
|
71
|
+
req
|
|
72
|
+
});
|
|
73
|
+
const collectionWhere = branchPredicate ? combineQueries(where ?? {}, branchPredicate) : where;
|
|
74
|
+
const wherePlan = collectionWhere ? createPolymorphicJoinWherePlan({
|
|
75
|
+
adapter,
|
|
76
|
+
collections,
|
|
77
|
+
where: collectionWhere
|
|
78
|
+
}) : new Map();
|
|
79
|
+
const sortColumn = table[sortPath];
|
|
80
|
+
const selectFields = {
|
|
81
|
+
id: (branchReadState.useBranching || branchPredicate) && table['_branchDocID'] ? sql`COALESCE(${table['_branchDocID']}, ${table['id']})`.as('id') : table['id'],
|
|
82
|
+
parent: sql`${table[onPath]}`.as(onPath),
|
|
83
|
+
relationTo: sql`${collection}`.as('relationTo'),
|
|
84
|
+
sortPath: sql`${sortColumn ?? null}`.as('sortPath')
|
|
85
|
+
};
|
|
86
|
+
const parsedCollectionWhere = collectionWhere && Object.keys(collectionWhere).length > 0 ? buildPolymorphicJoinWhere({
|
|
87
|
+
adapter,
|
|
88
|
+
collection,
|
|
89
|
+
locale,
|
|
90
|
+
table,
|
|
91
|
+
where: collectionWhere,
|
|
92
|
+
wherePlan
|
|
93
|
+
}) : undefined;
|
|
94
|
+
const collectionWhereSQL = branchReadState.useBranching ? and(parsedCollectionWhere, buildBranchVisibility({
|
|
95
|
+
adapter,
|
|
96
|
+
branch: branchReadState.branch,
|
|
97
|
+
collectionSlug: collection,
|
|
98
|
+
table
|
|
99
|
+
})) : parsedCollectionWhere;
|
|
100
|
+
const hasLocalizedWhere = [
|
|
101
|
+
...wherePlan.values()
|
|
102
|
+
].some((pathPlan)=>{
|
|
103
|
+
const collectionField = pathPlan.fieldsByCollection.get(collection);
|
|
104
|
+
return collectionField?.type === 'scalar' && collectionField.isLocalized;
|
|
105
|
+
});
|
|
106
|
+
const shouldDeduplicate = hasLocalizedWhere && (!locale || locale === 'all');
|
|
107
|
+
let collectionQuery = (shouldDeduplicate ? db.selectDistinct(selectFields) : db.select(selectFields)).from(table).$dynamic();
|
|
108
|
+
if (hasLocalizedWhere) {
|
|
109
|
+
const localesTable = adapter.tables[`${getTableName(table)}${adapter.localesSuffix}`];
|
|
110
|
+
collectionQuery = collectionQuery.leftJoin(localesTable, and(eq(table['id'], localesTable._parentID), locale && locale !== 'all' ? eq(localesTable._locale, locale) : undefined));
|
|
111
|
+
}
|
|
112
|
+
if (collectionWhereSQL) {
|
|
113
|
+
collectionQuery = collectionQuery.where(collectionWhereSQL);
|
|
114
|
+
}
|
|
115
|
+
if (unionQuery === null) {
|
|
116
|
+
unionQuery = collectionQuery;
|
|
117
|
+
} else {
|
|
118
|
+
unionQuery = unionQuery.unionAll(collectionQuery);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
const subQueryAlias = `${columnName}_subquery`;
|
|
122
|
+
const parentConstraint = eq(sql.raw(`"${currentTableName}"."id"`), sql.raw(`"${subQueryAlias}"."${onPath}"`));
|
|
123
|
+
const countExpression = shouldCount ? sql`${db.select({
|
|
124
|
+
count: count()
|
|
125
|
+
}).from(sql`${unionQuery.as(subQueryAlias)}`).where(parentConstraint)}`.as(`${columnName}_count`) : undefined;
|
|
126
|
+
unionQuery = unionQuery.orderBy(sortOrder(sql`"sortPath"`));
|
|
127
|
+
const sortedUnionAlias = `${columnName}_sorted`;
|
|
128
|
+
let limitOffsetSQL = sql.empty();
|
|
129
|
+
if (limit) {
|
|
130
|
+
limitOffsetSQL = sql` LIMIT ${limit}`;
|
|
131
|
+
}
|
|
132
|
+
if (page && limit !== 0) {
|
|
133
|
+
const offset = (page - 1) * pageSize;
|
|
134
|
+
if (offset > 0) {
|
|
135
|
+
limitOffsetSQL = sql`${limitOffsetSQL} OFFSET ${offset}`;
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
const parentWhere = sql.raw(`"${sortedUnionAlias}"."${onPath}" = "${currentTableName}"."id"`);
|
|
139
|
+
const documents = sql`(
|
|
140
|
+
SELECT ${jsonAggBuildObject(adapter, {
|
|
141
|
+
id: sql.raw(`"${subQueryAlias}"."id"`),
|
|
142
|
+
relationTo: sql.raw(`"${subQueryAlias}"."relationTo"`)
|
|
143
|
+
})}
|
|
144
|
+
FROM (
|
|
145
|
+
SELECT * FROM ${sql`${unionQuery.as(sortedUnionAlias)}`}
|
|
146
|
+
WHERE ${parentWhere}${limitOffsetSQL}
|
|
147
|
+
) AS ${sql.raw(`"${subQueryAlias}"`)}
|
|
148
|
+
)`.as(columnName);
|
|
149
|
+
return {
|
|
150
|
+
columnName,
|
|
151
|
+
count: countExpression,
|
|
152
|
+
documents
|
|
153
|
+
};
|
|
154
|
+
};
|
|
155
|
+
const getSortField = ({ adapter, collections, sort })=>{
|
|
156
|
+
if (sort) {
|
|
157
|
+
return sort;
|
|
158
|
+
}
|
|
159
|
+
const hasCreatedAt = collections.some((collection)=>adapter.payload.collections[collection].config.fields.some((field)=>field.type === 'date' && field.name === 'createdAt'));
|
|
160
|
+
return hasCreatedAt ? '-createdAt' : 'id';
|
|
161
|
+
};
|
|
162
|
+
|
|
163
|
+
//# sourceMappingURL=buildPolymorphicJoinQuery.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/find/buildPolymorphicJoinQuery.ts"],"sourcesContent":["import type { SQL } from 'drizzle-orm'\nimport type { LibSQLDatabase } from 'drizzle-orm/libsql'\nimport type { SQLiteSelect } from 'drizzle-orm/sqlite-core'\n\nimport { and, asc, count, desc, eq, getTableName, sql } from 'drizzle-orm'\nimport {\n combineQueries,\n type FlattenedJoinField,\n getBranchPredicateSync,\n type PayloadRequest,\n resolveBranchReadState,\n type Where,\n} from 'payload'\nimport toSnakeCase from 'to-snake-case'\n\nimport type { DrizzleAdapter, GenericTable } from '../types.js'\nimport type { PolymorphicJoinWherePlan } from './createPolymorphicJoinWherePlan.js'\n\nimport { buildBranchVisibility } from '../queries/buildBranchVisibility.js'\nimport { jsonAggBuildObject } from '../utilities/json.js'\nimport { buildPolymorphicJoinWhere } from './buildPolymorphicJoinWhere.js'\nimport { createPolymorphicJoinWherePlan } from './createPolymorphicJoinWherePlan.js'\n\ntype BuildPolymorphicJoinQueryArgs = {\n adapter: DrizzleAdapter\n currentTableName: string\n field: FlattenedJoinField\n limit: number\n locale?: string\n page?: number\n pageSize?: number\n path: string\n req?: Partial<PayloadRequest>\n shouldCount: boolean\n sort?: string | string[]\n where?: Where\n}\n\ntype PolymorphicJoinQuery = {\n columnName: string\n count?: SQL.Aliased\n documents: SQL.Aliased\n}\n\n/**\n * Builds the correlated document and optional count projections for a join that targets multiple\n * collections. Every collection branch exposes the same `id`, parent, `relationTo`, and sort\n * columns before the branches are combined. A missing sort field resolves to SQL NULL so targets\n * with different schemas can still share one ordered union.\n *\n * `field.collection` must contain at least one configured collection. Each mapped table must have\n * an `id` column and the column named by `field.on`. The supplied `limit` is used as-is; callers can\n * include an extra look-ahead row and supply the original `pageSize` for offset calculation.\n *\n * @returns The stable projection name, the document projection, and the count projection when\n * `shouldCount` is true.\n * @throws If the join definition, target collection, mapped table, required columns, or sort shape\n * cannot be represented by the polymorphic query.\n */\nexport const buildPolymorphicJoinQuery = ({\n adapter,\n currentTableName,\n field,\n limit,\n locale,\n page,\n pageSize = limit,\n path,\n req,\n shouldCount,\n sort,\n where,\n}: BuildPolymorphicJoinQueryArgs): PolymorphicJoinQuery => {\n if (!Array.isArray(field.collection)) {\n throw new Error('A polymorphic join requires a collection array')\n }\n\n if (field.collection.length === 0) {\n throw new Error('A polymorphic join requires at least one collection')\n }\n\n if (Array.isArray(sort)) {\n throw new Error('Polymorphic joins do not support multiple sort fields')\n }\n\n const collections = field.collection\n const columnName = `${path.replaceAll('.', '_')}${field.name}`\n const db = adapter.drizzle as LibSQLDatabase\n const onPath = field.on.split('.').join('_')\n const collectionTables = collections.map((collection) => {\n if (!adapter.payload.collections[collection]) {\n throw new Error(`Unknown polymorphic join collection \"${collection}\"`)\n }\n\n const tableName = adapter.tableNameMap.get(toSnakeCase(collection))\n const table = tableName ? (adapter.tables[tableName] as GenericTable | undefined) : undefined\n\n if (!table) {\n throw new Error(`Polymorphic join collection \"${collection}\" has no database table`)\n }\n\n if (!table['id']) {\n throw new Error(`Polymorphic join collection \"${collection}\" has no \"id\" column`)\n }\n\n if (!table[onPath]) {\n throw new Error(`Polymorphic join collection \"${collection}\" has no \"${onPath}\" column`)\n }\n\n return { collection, table }\n })\n const sortField = getSortField({ adapter, collections, sort })\n const sortOrder = sortField.startsWith('-') ? desc : asc\n const sortPath = sortField.replace('-', '').split('.').join('_')\n let unionQuery: null | SQLiteSelect = null\n\n for (const { collection, table } of collectionTables) {\n const branchReadState = resolveBranchReadState({ collectionSlug: collection, req })\n const branchPredicate = branchReadState.useBranching\n ? null\n : getBranchPredicateSync({ collectionSlug: collection, req })\n const collectionWhere = branchPredicate ? combineQueries(where ?? {}, branchPredicate) : where\n const wherePlan: PolymorphicJoinWherePlan = collectionWhere\n ? createPolymorphicJoinWherePlan({ adapter, collections, where: collectionWhere })\n : new Map()\n const sortColumn = table[sortPath]\n const selectFields = {\n id:\n (branchReadState.useBranching || branchPredicate) && table['_branchDocID']\n ? sql`COALESCE(${table['_branchDocID']}, ${table['id']})`.as('id')\n : table['id'],\n parent: sql`${table[onPath]}`.as(onPath),\n relationTo: sql`${collection}`.as('relationTo'),\n sortPath: sql`${sortColumn ?? null}`.as('sortPath'),\n }\n const parsedCollectionWhere =\n collectionWhere && Object.keys(collectionWhere).length > 0\n ? buildPolymorphicJoinWhere({\n adapter,\n collection,\n locale,\n table,\n where: collectionWhere,\n wherePlan,\n })\n : undefined\n const collectionWhereSQL = branchReadState.useBranching\n ? and(\n parsedCollectionWhere,\n buildBranchVisibility({\n adapter,\n branch: branchReadState.branch,\n collectionSlug: collection,\n table,\n }),\n )\n : parsedCollectionWhere\n const hasLocalizedWhere = [...wherePlan.values()].some((pathPlan) => {\n const collectionField = pathPlan.fieldsByCollection.get(collection)\n\n return collectionField?.type === 'scalar' && collectionField.isLocalized\n })\n const shouldDeduplicate = hasLocalizedWhere && (!locale || locale === 'all')\n let collectionQuery = (\n shouldDeduplicate ? db.selectDistinct(selectFields) : db.select(selectFields)\n )\n .from(table)\n .$dynamic()\n\n if (hasLocalizedWhere) {\n const localesTable = adapter.tables[`${getTableName(table)}${adapter.localesSuffix}`]\n\n collectionQuery = collectionQuery.leftJoin(\n localesTable,\n and(\n eq(table['id'], localesTable._parentID),\n locale && locale !== 'all' ? eq(localesTable._locale, locale) : undefined,\n ),\n )\n }\n\n if (collectionWhereSQL) {\n collectionQuery = collectionQuery.where(collectionWhereSQL)\n }\n\n if (unionQuery === null) {\n unionQuery = collectionQuery\n } else {\n unionQuery = unionQuery.unionAll(collectionQuery)\n }\n }\n\n const subQueryAlias = `${columnName}_subquery`\n const parentConstraint = eq(\n sql.raw(`\"${currentTableName}\".\"id\"`),\n sql.raw(`\"${subQueryAlias}\".\"${onPath}\"`),\n )\n const countExpression = shouldCount\n ? sql`${db\n .select({ count: count() })\n .from(sql`${unionQuery.as(subQueryAlias)}`)\n .where(parentConstraint)}`.as(`${columnName}_count`)\n : undefined\n\n unionQuery = unionQuery.orderBy(sortOrder(sql`\"sortPath\"`))\n\n const sortedUnionAlias = `${columnName}_sorted`\n let limitOffsetSQL = sql.empty()\n\n if (limit) {\n limitOffsetSQL = sql` LIMIT ${limit}`\n }\n\n if (page && limit !== 0) {\n const offset = (page - 1) * pageSize\n\n if (offset > 0) {\n limitOffsetSQL = sql`${limitOffsetSQL} OFFSET ${offset}`\n }\n }\n\n const parentWhere = sql.raw(`\"${sortedUnionAlias}\".\"${onPath}\" = \"${currentTableName}\".\"id\"`)\n const documents = sql`(\n SELECT ${jsonAggBuildObject(adapter, {\n id: sql.raw(`\"${subQueryAlias}\".\"id\"`),\n relationTo: sql.raw(`\"${subQueryAlias}\".\"relationTo\"`),\n })}\n FROM (\n SELECT * FROM ${sql`${unionQuery.as(sortedUnionAlias)}`}\n WHERE ${parentWhere}${limitOffsetSQL}\n ) AS ${sql.raw(`\"${subQueryAlias}\"`)}\n )`.as(columnName)\n\n return {\n columnName,\n count: countExpression,\n documents,\n }\n}\n\nconst getSortField = ({\n adapter,\n collections,\n sort,\n}: {\n adapter: DrizzleAdapter\n collections: string[]\n sort?: string\n}): string => {\n if (sort) {\n return sort\n }\n\n const hasCreatedAt = collections.some((collection) =>\n adapter.payload.collections[collection].config.fields.some(\n (field) => field.type === 'date' && field.name === 'createdAt',\n ),\n )\n\n return hasCreatedAt ? '-createdAt' : 'id'\n}\n"],"names":["and","asc","count","desc","eq","getTableName","sql","combineQueries","getBranchPredicateSync","resolveBranchReadState","toSnakeCase","buildBranchVisibility","jsonAggBuildObject","buildPolymorphicJoinWhere","createPolymorphicJoinWherePlan","buildPolymorphicJoinQuery","adapter","currentTableName","field","limit","locale","page","pageSize","path","req","shouldCount","sort","where","Array","isArray","collection","Error","length","collections","columnName","replaceAll","name","db","drizzle","onPath","on","split","join","collectionTables","map","payload","tableName","tableNameMap","get","table","tables","undefined","sortField","getSortField","sortOrder","startsWith","sortPath","replace","unionQuery","branchReadState","collectionSlug","branchPredicate","useBranching","collectionWhere","wherePlan","Map","sortColumn","selectFields","id","as","parent","relationTo","parsedCollectionWhere","Object","keys","collectionWhereSQL","branch","hasLocalizedWhere","values","some","pathPlan","collectionField","fieldsByCollection","type","isLocalized","shouldDeduplicate","collectionQuery","selectDistinct","select","from","$dynamic","localesTable","localesSuffix","leftJoin","_parentID","_locale","unionAll","subQueryAlias","parentConstraint","raw","countExpression","orderBy","sortedUnionAlias","limitOffsetSQL","empty","offset","parentWhere","documents","hasCreatedAt","config","fields"],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { SQL } from 'drizzle-orm';
|
|
2
|
+
import { type Where } from 'payload';
|
|
3
|
+
import type { DrizzleAdapter, GenericTable } from '../types.js';
|
|
4
|
+
import type { PolymorphicJoinWherePlan } from './createPolymorphicJoinWherePlan.js';
|
|
5
|
+
type BuildPolymorphicJoinWhereArgs = {
|
|
6
|
+
adapter: DrizzleAdapter;
|
|
7
|
+
collection: string;
|
|
8
|
+
locale?: string;
|
|
9
|
+
table: GenericTable;
|
|
10
|
+
where: Where;
|
|
11
|
+
wherePlan: PolymorphicJoinWherePlan;
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Builds a where clause for one collection before the polymorphic branches are combined. A field
|
|
15
|
+
* that is absent from this collection resolves to SQL NULL, and relationTo resolves to the current
|
|
16
|
+
* collection slug.
|
|
17
|
+
*/
|
|
18
|
+
export declare const buildPolymorphicJoinWhere: ({ adapter, collection, locale, table, where, wherePlan, }: BuildPolymorphicJoinWhereArgs) => SQL | undefined;
|
|
19
|
+
export {};
|
|
20
|
+
//# sourceMappingURL=buildPolymorphicJoinWhere.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buildPolymorphicJoinWhere.d.ts","sourceRoot":"","sources":["../../src/find/buildPolymorphicJoinWhere.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAU,GAAG,EAAE,MAAM,aAAa,CAAA;AAG9C,OAAO,EAAkD,KAAK,KAAK,EAAE,MAAM,SAAS,CAAA;AAIpF,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC/D,OAAO,KAAK,EACV,wBAAwB,EAGzB,MAAM,qCAAqC,CAAA;AAO5C,KAAK,6BAA6B,GAAG;IACnC,OAAO,EAAE,cAAc,CAAA;IACvB,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,YAAY,CAAA;IACnB,KAAK,EAAE,KAAK,CAAA;IACZ,SAAS,EAAE,wBAAwB,CAAA;CACpC,CAAA;AAqBD;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,8DAOnC,6BAA6B,KAAG,GAAG,GAAG,SAsMxC,CAAA"}
|