payload 4.0.0-internal.e16cf59 → 4.0.0-internal.e55ccef
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/bin.js +11 -0
- package/dist/__testing__/predefinedMigration.d.ts +4 -3
- package/dist/__testing__/predefinedMigration.d.ts.map +1 -1
- package/dist/admin/RichText.d.ts +4 -17
- package/dist/admin/RichText.d.ts.map +1 -1
- package/dist/admin/RichText.js.map +1 -1
- package/dist/admin/adapters/cookies.d.ts +21 -0
- package/dist/admin/adapters/cookies.d.ts.map +1 -0
- package/dist/admin/adapters/cookies.js +3 -0
- package/dist/admin/adapters/cookies.js.map +1 -0
- package/dist/admin/adapters/devReload.d.ts +9 -0
- package/dist/admin/adapters/devReload.d.ts.map +1 -0
- package/dist/admin/adapters/devReload.js +6 -0
- package/dist/admin/adapters/devReload.js.map +1 -0
- package/dist/admin/adapters/index.d.ts +7 -0
- package/dist/admin/adapters/index.d.ts.map +1 -0
- package/dist/admin/adapters/index.js +3 -0
- package/dist/admin/adapters/index.js.map +1 -0
- package/dist/admin/adapters/render.d.ts +16 -0
- package/dist/admin/adapters/render.d.ts.map +1 -0
- package/dist/admin/adapters/render.js +7 -0
- package/dist/admin/adapters/render.js.map +1 -0
- package/dist/admin/adapters/router.d.ts +64 -0
- package/dist/admin/adapters/router.d.ts.map +1 -0
- package/dist/admin/adapters/router.js +3 -0
- package/dist/admin/adapters/router.js.map +1 -0
- package/dist/admin/adapters/server.d.ts +23 -0
- package/dist/admin/adapters/server.d.ts.map +1 -0
- package/dist/admin/adapters/server.js +6 -0
- package/dist/admin/adapters/server.js.map +1 -0
- package/dist/admin/adapters/views.d.ts +36 -0
- package/dist/admin/adapters/views.d.ts.map +1 -0
- package/dist/admin/adapters/views.js +7 -0
- package/dist/admin/adapters/views.js.map +1 -0
- package/dist/admin/elements/Table.d.ts +1 -0
- package/dist/admin/elements/Table.d.ts.map +1 -1
- package/dist/admin/elements/Table.js.map +1 -1
- package/dist/admin/fields/Row.d.ts +2 -2
- package/dist/admin/fields/Row.d.ts.map +1 -1
- package/dist/admin/fields/Row.js.map +1 -1
- package/dist/admin/forms/Description.d.ts +2 -2
- package/dist/admin/forms/Description.d.ts.map +1 -1
- package/dist/admin/forms/Description.js.map +1 -1
- package/dist/admin/forms/Field.d.ts +10 -5
- package/dist/admin/forms/Field.d.ts.map +1 -1
- package/dist/admin/forms/Field.js.map +1 -1
- package/dist/admin/functions/index.d.ts +10 -1
- package/dist/admin/functions/index.d.ts.map +1 -1
- package/dist/admin/functions/index.js.map +1 -1
- package/dist/admin/types.d.ts +3 -2
- package/dist/admin/types.d.ts.map +1 -1
- package/dist/admin/types.js.map +1 -1
- package/dist/admin/views/dashboard.d.ts +7 -0
- package/dist/admin/views/dashboard.d.ts.map +1 -1
- package/dist/admin/views/dashboard.js.map +1 -1
- package/dist/admin/views/document.d.ts +5 -3
- package/dist/admin/views/document.d.ts.map +1 -1
- package/dist/admin/views/document.js.map +1 -1
- package/dist/admin/views/hierarchyList.d.ts +1 -0
- package/dist/admin/views/hierarchyList.d.ts.map +1 -1
- package/dist/admin/views/hierarchyList.js.map +1 -1
- package/dist/admin/views/list.d.ts +10 -1
- package/dist/admin/views/list.d.ts.map +1 -1
- package/dist/admin/views/list.js.map +1 -1
- package/dist/auth/baseFields/apiKey.d.ts +10 -2
- package/dist/auth/baseFields/apiKey.d.ts.map +1 -1
- package/dist/auth/baseFields/apiKey.js +35 -24
- package/dist/auth/baseFields/apiKey.js.map +1 -1
- package/dist/auth/cookies.d.ts +2 -2
- package/dist/auth/cookies.d.ts.map +1 -1
- package/dist/auth/defaultAccess.d.ts +1 -1
- package/dist/auth/defaultAccess.d.ts.map +1 -1
- package/dist/auth/defaultAccess.js +1 -1
- package/dist/auth/defaultAccess.js.map +1 -1
- package/dist/auth/defaultUser.d.ts.map +1 -1
- package/dist/auth/defaultUser.js +2 -1
- package/dist/auth/defaultUser.js.map +1 -1
- package/dist/auth/extractJWT.d.ts +1 -1
- package/dist/auth/getAuthFields.js +2 -2
- package/dist/auth/getAuthFields.js.map +1 -1
- package/dist/auth/getFieldsToSign.d.ts +1 -1
- package/dist/auth/getLoginOptions.d.ts +1 -1
- package/dist/auth/operations/auth.d.ts +2 -2
- package/dist/auth/operations/auth.d.ts.map +1 -1
- package/dist/auth/operations/auth.js.map +1 -1
- package/dist/auth/operations/login.d.ts +2 -1
- package/dist/auth/operations/login.d.ts.map +1 -1
- package/dist/auth/operations/login.js.map +1 -1
- package/dist/auth/operations/me.d.ts +2 -2
- package/dist/auth/operations/me.d.ts.map +1 -1
- package/dist/auth/operations/me.js.map +1 -1
- package/dist/auth/operations/refresh.d.ts.map +1 -1
- package/dist/auth/operations/refresh.js +9 -3
- package/dist/auth/operations/refresh.js.map +1 -1
- package/dist/auth/operations/resetPassword.d.ts.map +1 -1
- package/dist/auth/operations/resetPassword.js.map +1 -1
- package/dist/auth/sendVerificationEmail.d.ts +2 -2
- package/dist/auth/sendVerificationEmail.d.ts.map +1 -1
- package/dist/auth/sendVerificationEmail.js +1 -1
- package/dist/auth/sendVerificationEmail.js.map +1 -1
- package/dist/auth/sessions.d.ts +4 -5
- package/dist/auth/sessions.d.ts.map +1 -1
- package/dist/auth/sessions.js +5 -3
- package/dist/auth/sessions.js.map +1 -1
- package/dist/auth/strategies/apiKey.d.ts.map +1 -1
- package/dist/auth/strategies/apiKey.js +6 -17
- package/dist/auth/strategies/apiKey.js.map +1 -1
- package/dist/auth/strategies/local/incrementLoginAttempts.d.ts +2 -2
- package/dist/auth/strategies/local/incrementLoginAttempts.d.ts.map +1 -1
- package/dist/auth/strategies/local/incrementLoginAttempts.js +1 -1
- package/dist/auth/strategies/local/incrementLoginAttempts.js.map +1 -1
- package/dist/auth/types.d.ts +25 -21
- package/dist/auth/types.d.ts.map +1 -1
- package/dist/auth/types.js.map +1 -1
- package/dist/bin/build.d.ts +49 -0
- package/dist/bin/build.d.ts.map +1 -0
- package/dist/bin/build.js +226 -0
- package/dist/bin/build.js.map +1 -0
- package/dist/bin/build.spec.js +594 -0
- package/dist/bin/build.spec.js.map +1 -0
- package/dist/bin/frameworkConventions.d.ts +8 -0
- package/dist/bin/frameworkConventions.d.ts.map +1 -0
- package/dist/bin/frameworkConventions.js +8 -0
- package/dist/bin/frameworkConventions.js.map +1 -0
- package/dist/bin/generateImportMap/index.d.ts.map +1 -1
- package/dist/bin/generateImportMap/index.js +8 -5
- package/dist/bin/generateImportMap/index.js.map +1 -1
- package/dist/bin/generateImportMap/iterateCollections.d.ts.map +1 -1
- package/dist/bin/generateImportMap/iterateCollections.js +11 -0
- package/dist/bin/generateImportMap/iterateCollections.js.map +1 -1
- package/dist/bin/generateImportMap/iterateConfig.d.ts.map +1 -1
- package/dist/bin/generateImportMap/iterateConfig.js +12 -0
- package/dist/bin/generateImportMap/iterateConfig.js.map +1 -1
- package/dist/bin/generateImportMap/iterateFields.d.ts.map +1 -1
- package/dist/bin/generateImportMap/iterateFields.js +4 -1
- package/dist/bin/generateImportMap/iterateFields.js.map +1 -1
- package/dist/bin/generateImportMap/utilities/resolveImportMapFilePath.d.ts +5 -1
- package/dist/bin/generateImportMap/utilities/resolveImportMapFilePath.d.ts.map +1 -1
- package/dist/bin/generateImportMap/utilities/resolveImportMapFilePath.js +33 -18
- package/dist/bin/generateImportMap/utilities/resolveImportMapFilePath.js.map +1 -1
- package/dist/bin/generateTypes.d.ts +3 -2
- package/dist/bin/generateTypes.d.ts.map +1 -1
- package/dist/bin/generateTypes.js +11 -1
- package/dist/bin/generateTypes.js.map +1 -1
- package/dist/bin/index.d.ts.map +1 -1
- package/dist/bin/index.js +9 -0
- package/dist/bin/index.js.map +1 -1
- package/dist/bin/loadEnv.d.ts +3 -1
- package/dist/bin/loadEnv.d.ts.map +1 -1
- package/dist/bin/loadEnv.js +40 -10
- package/dist/bin/loadEnv.js.map +1 -1
- package/dist/collections/config/client.d.ts +3 -3
- package/dist/collections/config/client.d.ts.map +1 -1
- package/dist/collections/config/client.js +1 -0
- package/dist/collections/config/client.js.map +1 -1
- package/dist/collections/config/defaults.d.ts +0 -4
- package/dist/collections/config/defaults.d.ts.map +1 -1
- package/dist/collections/config/defaults.js +2 -17
- package/dist/collections/config/defaults.js.map +1 -1
- package/dist/collections/config/defaults.spec.js +47 -0
- package/dist/collections/config/defaults.spec.js.map +1 -0
- package/dist/collections/config/sanitize.d.ts +10 -1
- package/dist/collections/config/sanitize.d.ts.map +1 -1
- package/dist/collections/config/sanitize.js +1 -11
- package/dist/collections/config/sanitize.js.map +1 -1
- package/dist/collections/config/types.d.ts +13 -9
- package/dist/collections/config/types.d.ts.map +1 -1
- package/dist/collections/config/types.js.map +1 -1
- package/dist/collections/dataloader.d.ts +1 -1
- package/dist/collections/endpoints/create.d.ts.map +1 -1
- package/dist/collections/endpoints/create.js +0 -2
- package/dist/collections/endpoints/create.js.map +1 -1
- package/dist/collections/endpoints/updateByID.d.ts.map +1 -1
- package/dist/collections/endpoints/updateByID.js +1 -2
- package/dist/collections/endpoints/updateByID.js.map +1 -1
- package/dist/collections/operations/count.d.ts.map +1 -1
- package/dist/collections/operations/count.js +1 -0
- package/dist/collections/operations/count.js.map +1 -1
- package/dist/collections/operations/create.d.ts +0 -1
- package/dist/collections/operations/create.d.ts.map +1 -1
- package/dist/collections/operations/create.js +15 -6
- package/dist/collections/operations/create.js.map +1 -1
- package/dist/collections/operations/delete.d.ts.map +1 -1
- package/dist/collections/operations/delete.js +3 -0
- package/dist/collections/operations/delete.js.map +1 -1
- package/dist/collections/operations/findDistinct.d.ts.map +1 -1
- package/dist/collections/operations/findDistinct.js +1 -0
- package/dist/collections/operations/findDistinct.js.map +1 -1
- package/dist/collections/operations/findVersionByID.d.ts.map +1 -1
- package/dist/collections/operations/local/count.d.ts +3 -3
- package/dist/collections/operations/local/count.d.ts.map +1 -1
- package/dist/collections/operations/local/count.js.map +1 -1
- package/dist/collections/operations/local/countVersions.d.ts +3 -3
- package/dist/collections/operations/local/countVersions.d.ts.map +1 -1
- package/dist/collections/operations/local/countVersions.js.map +1 -1
- package/dist/collections/operations/local/create.d.ts +3 -3
- package/dist/collections/operations/local/create.d.ts.map +1 -1
- package/dist/collections/operations/local/create.js.map +1 -1
- package/dist/collections/operations/local/delete.d.ts +3 -3
- package/dist/collections/operations/local/delete.d.ts.map +1 -1
- package/dist/collections/operations/local/delete.js.map +1 -1
- package/dist/collections/operations/local/duplicate.d.ts +3 -3
- package/dist/collections/operations/local/duplicate.d.ts.map +1 -1
- package/dist/collections/operations/local/duplicate.js.map +1 -1
- package/dist/collections/operations/local/find.d.ts +3 -3
- package/dist/collections/operations/local/find.d.ts.map +1 -1
- package/dist/collections/operations/local/find.js.map +1 -1
- package/dist/collections/operations/local/findByID.d.ts +3 -3
- package/dist/collections/operations/local/findByID.d.ts.map +1 -1
- package/dist/collections/operations/local/findByID.js.map +1 -1
- package/dist/collections/operations/local/findDistinct.d.ts +2 -2
- package/dist/collections/operations/local/findDistinct.d.ts.map +1 -1
- package/dist/collections/operations/local/findDistinct.js.map +1 -1
- package/dist/collections/operations/local/findVersionByID.d.ts +3 -3
- package/dist/collections/operations/local/findVersionByID.d.ts.map +1 -1
- package/dist/collections/operations/local/findVersionByID.js.map +1 -1
- package/dist/collections/operations/local/findVersions.d.ts +3 -3
- package/dist/collections/operations/local/findVersions.d.ts.map +1 -1
- package/dist/collections/operations/local/findVersions.js.map +1 -1
- package/dist/collections/operations/local/restoreVersion.d.ts +3 -3
- package/dist/collections/operations/local/restoreVersion.d.ts.map +1 -1
- package/dist/collections/operations/local/restoreVersion.js.map +1 -1
- package/dist/collections/operations/local/update.d.ts +7 -11
- package/dist/collections/operations/local/update.d.ts.map +1 -1
- package/dist/collections/operations/local/update.js +1 -2
- package/dist/collections/operations/local/update.js.map +1 -1
- package/dist/collections/operations/restoreVersion.d.ts.map +1 -1
- package/dist/collections/operations/update.d.ts +0 -1
- package/dist/collections/operations/update.d.ts.map +1 -1
- package/dist/collections/operations/update.js +8 -4
- package/dist/collections/operations/update.js.map +1 -1
- package/dist/collections/operations/updateByID.d.ts +0 -1
- package/dist/collections/operations/updateByID.d.ts.map +1 -1
- package/dist/collections/operations/updateByID.js +1 -5
- package/dist/collections/operations/updateByID.js.map +1 -1
- package/dist/collections/operations/utilities/buildAfterOperation.d.ts +1 -1
- package/dist/collections/operations/utilities/buildAfterOperation.d.ts.map +1 -1
- package/dist/collections/operations/utilities/copyDataWithFreshRowIDs.d.ts +9 -0
- package/dist/collections/operations/utilities/copyDataWithFreshRowIDs.d.ts.map +1 -0
- package/dist/collections/operations/utilities/copyDataWithFreshRowIDs.js +170 -0
- package/dist/collections/operations/utilities/copyDataWithFreshRowIDs.js.map +1 -0
- package/dist/collections/operations/utilities/types.d.ts +20 -29
- package/dist/collections/operations/utilities/types.d.ts.map +1 -1
- package/dist/collections/operations/utilities/types.js.map +1 -1
- package/dist/collections/operations/utilities/update.d.ts +1 -2
- package/dist/collections/operations/utilities/update.d.ts.map +1 -1
- package/dist/collections/operations/utilities/update.js +64 -65
- package/dist/collections/operations/utilities/update.js.map +1 -1
- package/dist/config/build.d.ts.map +1 -1
- package/dist/config/build.js +8 -0
- package/dist/config/build.js.map +1 -1
- package/dist/config/client.d.ts +3 -3
- package/dist/config/client.d.ts.map +1 -1
- package/dist/config/client.js +2 -1
- package/dist/config/client.js.map +1 -1
- package/dist/config/defaults.d.ts +0 -4
- package/dist/config/defaults.d.ts.map +1 -1
- package/dist/config/defaults.js +0 -78
- package/dist/config/defaults.js.map +1 -1
- package/dist/config/definePlugin.d.ts +10 -10
- package/dist/config/definePlugin.d.ts.map +1 -1
- package/dist/config/definePlugin.js +7 -11
- package/dist/config/definePlugin.js.map +1 -1
- package/dist/config/orderable/fractional-indexing.d.ts +23 -23
- package/dist/config/orderable/fractional-indexing.d.ts.map +1 -1
- package/dist/config/orderable/index.d.ts.map +1 -1
- package/dist/config/orderable/index.js +23 -0
- package/dist/config/orderable/index.js.map +1 -1
- package/dist/config/sanitize.d.ts.map +1 -1
- package/dist/config/sanitize.js +139 -27
- package/dist/config/sanitize.js.map +1 -1
- package/dist/config/types.d.ts +126 -38
- package/dist/config/types.d.ts.map +1 -1
- package/dist/config/types.js +2 -0
- package/dist/config/types.js.map +1 -1
- package/dist/database/getLocalizedPaths.d.ts.map +1 -1
- package/dist/database/getLocalizedPaths.js +1 -1
- package/dist/database/getLocalizedPaths.js.map +1 -1
- package/dist/database/migrations/migrationsCollection.d.ts.map +1 -1
- package/dist/database/migrations/migrationsCollection.js +2 -1
- package/dist/database/migrations/migrationsCollection.js.map +1 -1
- package/dist/database/types.d.ts +1 -5
- package/dist/database/types.d.ts.map +1 -1
- package/dist/database/types.js.map +1 -1
- package/dist/errors/APIError.d.ts.map +1 -1
- package/dist/errors/AuthenticationError.d.ts.map +1 -1
- package/dist/errors/DuplicateCollection.d.ts.map +1 -1
- package/dist/errors/DuplicateFieldName.d.ts.map +1 -1
- package/dist/errors/DuplicateGlobal.d.ts.map +1 -1
- package/dist/errors/ErrorDeletingFile.d.ts.map +1 -1
- package/dist/errors/FileRetrievalError.d.ts.map +1 -1
- package/dist/errors/FileUploadError.d.ts.map +1 -1
- package/dist/errors/Forbidden.d.ts.map +1 -1
- package/dist/errors/InvalidConfiguration.d.ts.map +1 -1
- package/dist/errors/InvalidFieldJoin.d.ts.map +1 -1
- package/dist/errors/InvalidFieldName.d.ts.map +1 -1
- package/dist/errors/InvalidFieldRelationship.d.ts.map +1 -1
- package/dist/errors/InvalidSchema.d.ts.map +1 -1
- package/dist/errors/Locked.d.ts.map +1 -1
- package/dist/errors/LockedAuth.d.ts.map +1 -1
- package/dist/errors/MissingCollectionLabel.d.ts.map +1 -1
- package/dist/errors/MissingEditorProp.d.ts.map +1 -1
- package/dist/errors/MissingFieldInputOptions.d.ts.map +1 -1
- package/dist/errors/MissingFieldType.d.ts.map +1 -1
- package/dist/errors/MissingFile.d.ts.map +1 -1
- package/dist/errors/NotFound.d.ts.map +1 -1
- package/dist/errors/QueryError.d.ts.map +1 -1
- package/dist/errors/ReservedFieldName.d.ts.map +1 -1
- package/dist/errors/TimestampsRequired.d.ts.map +1 -1
- package/dist/errors/UnauthorizedError.d.ts.map +1 -1
- package/dist/errors/UnverifiedEmail.d.ts.map +1 -1
- package/dist/errors/ValidationError.d.ts +1 -0
- package/dist/errors/ValidationError.d.ts.map +1 -1
- package/dist/errors/ValidationError.js.map +1 -1
- package/dist/exports/internal.d.ts +2 -0
- package/dist/exports/internal.d.ts.map +1 -1
- package/dist/exports/internal.js +2 -0
- package/dist/exports/internal.js.map +1 -1
- package/dist/exports/migrations.d.ts +5 -13
- package/dist/exports/migrations.d.ts.map +1 -1
- package/dist/exports/migrations.js +5 -13
- package/dist/exports/migrations.js.map +1 -1
- package/dist/exports/shared.d.ts +24 -2
- package/dist/exports/shared.d.ts.map +1 -1
- package/dist/exports/shared.js +23 -1
- package/dist/exports/shared.js.map +1 -1
- package/dist/fields/baseFields/slug/countVersions.d.ts.map +1 -1
- package/dist/fields/baseFields/slug/countVersions.js +6 -8
- package/dist/fields/baseFields/slug/countVersions.js.map +1 -1
- package/dist/fields/baseFields/slug/generateSlug.d.ts +14 -7
- package/dist/fields/baseFields/slug/generateSlug.d.ts.map +1 -1
- package/dist/fields/baseFields/slug/generateSlug.js +53 -73
- package/dist/fields/baseFields/slug/generateSlug.js.map +1 -1
- package/dist/fields/baseFields/slug/types.d.ts +14 -0
- package/dist/fields/baseFields/slug/types.d.ts.map +1 -0
- package/dist/fields/baseFields/slug/types.js +6 -0
- package/dist/fields/baseFields/slug/types.js.map +1 -0
- package/dist/fields/config/client.d.ts +6 -6
- package/dist/fields/config/client.d.ts.map +1 -1
- package/dist/fields/config/client.js +14 -14
- package/dist/fields/config/client.js.map +1 -1
- package/dist/fields/config/sanitize.d.ts.map +1 -1
- package/dist/fields/config/sanitize.js +41 -14
- package/dist/fields/config/sanitize.js.map +1 -1
- package/dist/fields/config/types.d.ts +80 -76
- package/dist/fields/config/types.d.ts.map +1 -1
- package/dist/fields/config/types.js +1 -1
- package/dist/fields/config/types.js.map +1 -1
- package/dist/fields/hooks/afterChange/promise.js +1 -1
- package/dist/fields/hooks/afterChange/promise.js.map +1 -1
- package/dist/fields/hooks/afterRead/promise.d.ts.map +1 -1
- package/dist/fields/hooks/afterRead/promise.js +13 -3
- package/dist/fields/hooks/afterRead/promise.js.map +1 -1
- package/dist/fields/hooks/beforeChange/promise.d.ts.map +1 -1
- package/dist/fields/hooks/beforeChange/promise.js +3 -3
- package/dist/fields/hooks/beforeChange/promise.js.map +1 -1
- package/dist/fields/hooks/beforeDuplicate/promise.js +2 -2
- package/dist/fields/hooks/beforeDuplicate/promise.js.map +1 -1
- package/dist/fields/hooks/beforeValidate/promise.d.ts.map +1 -1
- package/dist/fields/hooks/beforeValidate/promise.js +16 -5
- package/dist/fields/hooks/beforeValidate/promise.js.map +1 -1
- package/dist/fields/hooks/beforeValidate/stripNullRows.d.ts +10 -0
- package/dist/fields/hooks/beforeValidate/stripNullRows.d.ts.map +1 -0
- package/dist/fields/hooks/beforeValidate/stripNullRows.js +18 -0
- package/dist/fields/hooks/beforeValidate/stripNullRows.js.map +1 -0
- package/dist/fields/setDefaultBeforeDuplicate.js +1 -0
- package/dist/fields/setDefaultBeforeDuplicate.js.map +1 -1
- package/dist/fields/sortableFieldTypes.d.ts.map +1 -1
- package/dist/fields/sortableFieldTypes.js +1 -0
- package/dist/fields/sortableFieldTypes.js.map +1 -1
- package/dist/fields/validations.d.ts +4 -1
- package/dist/fields/validations.d.ts.map +1 -1
- package/dist/fields/validations.js +12 -4
- package/dist/fields/validations.js.map +1 -1
- package/dist/globals/config/client.d.ts +4 -4
- package/dist/globals/config/sanitize.d.ts +6 -1
- package/dist/globals/config/sanitize.d.ts.map +1 -1
- package/dist/globals/config/sanitize.js +2 -6
- package/dist/globals/config/sanitize.js.map +1 -1
- package/dist/globals/config/sanitize.spec.js +43 -0
- package/dist/globals/config/sanitize.spec.js.map +1 -0
- package/dist/globals/endpoints/update.d.ts.map +1 -1
- package/dist/globals/endpoints/update.js +0 -2
- package/dist/globals/endpoints/update.js.map +1 -1
- package/dist/globals/operations/findVersionByID.d.ts.map +1 -1
- package/dist/globals/operations/local/countVersions.d.ts +3 -3
- package/dist/globals/operations/local/countVersions.d.ts.map +1 -1
- package/dist/globals/operations/local/countVersions.js.map +1 -1
- package/dist/globals/operations/local/findOne.d.ts +3 -3
- package/dist/globals/operations/local/findOne.d.ts.map +1 -1
- package/dist/globals/operations/local/findOne.js.map +1 -1
- package/dist/globals/operations/local/findVersionByID.d.ts +3 -3
- package/dist/globals/operations/local/findVersionByID.d.ts.map +1 -1
- package/dist/globals/operations/local/findVersionByID.js.map +1 -1
- package/dist/globals/operations/local/findVersions.d.ts +3 -3
- package/dist/globals/operations/local/findVersions.d.ts.map +1 -1
- package/dist/globals/operations/local/findVersions.js.map +1 -1
- package/dist/globals/operations/local/restoreVersion.d.ts +3 -3
- package/dist/globals/operations/local/restoreVersion.d.ts.map +1 -1
- package/dist/globals/operations/local/restoreVersion.js.map +1 -1
- package/dist/globals/operations/local/update.d.ts +7 -9
- package/dist/globals/operations/local/update.d.ts.map +1 -1
- package/dist/globals/operations/local/update.js +1 -2
- package/dist/globals/operations/local/update.js.map +1 -1
- package/dist/globals/operations/restoreVersion.d.ts.map +1 -1
- package/dist/globals/operations/update.d.ts +0 -1
- package/dist/globals/operations/update.d.ts.map +1 -1
- package/dist/globals/operations/update.js +52 -58
- package/dist/globals/operations/update.js.map +1 -1
- package/dist/hierarchy/resolveHierarchyCollections.js +1 -1
- package/dist/hierarchy/resolveHierarchyCollections.js.map +1 -1
- package/dist/hierarchy/sanitizeHierarchyCollection.d.ts.map +1 -1
- package/dist/hierarchy/sanitizeHierarchyCollection.js +3 -1
- package/dist/hierarchy/sanitizeHierarchyCollection.js.map +1 -1
- package/dist/hierarchy/types.d.ts +8 -1
- package/dist/hierarchy/types.d.ts.map +1 -1
- package/dist/hierarchy/types.js.map +1 -1
- package/dist/index.bundled.d.ts +864 -468
- package/dist/index.d.ts +82 -35
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +55 -37
- package/dist/index.js.map +1 -1
- package/dist/kv/adapters/DatabaseKVAdapter.d.ts.map +1 -1
- package/dist/kv/adapters/DatabaseKVAdapter.js +1 -0
- package/dist/kv/adapters/DatabaseKVAdapter.js.map +1 -1
- package/dist/kv/adapters/InMemoryKVAdapter.d.ts.map +1 -1
- package/dist/locked-documents/config.d.ts.map +1 -1
- package/dist/locked-documents/config.js +2 -1
- package/dist/locked-documents/config.js.map +1 -1
- package/dist/preferences/config.d.ts.map +1 -1
- package/dist/preferences/config.js +2 -1
- package/dist/preferences/config.js.map +1 -1
- package/dist/preferences/keys.d.ts +8 -4
- package/dist/preferences/keys.d.ts.map +1 -1
- package/dist/preferences/keys.js +4 -1
- package/dist/preferences/keys.js.map +1 -1
- package/dist/preferences/types.d.ts +15 -0
- package/dist/preferences/types.d.ts.map +1 -1
- package/dist/preferences/types.js +3 -1
- package/dist/preferences/types.js.map +1 -1
- package/dist/query-presets/config.d.ts.map +1 -1
- package/dist/query-presets/config.js +77 -37
- package/dist/query-presets/config.js.map +1 -1
- package/dist/query-presets/constraints.d.ts.map +1 -1
- package/dist/query-presets/constraints.js +3 -2
- package/dist/query-presets/constraints.js.map +1 -1
- package/dist/query-presets/types.d.ts +1 -1
- package/dist/query-presets/types.d.ts.map +1 -1
- package/dist/queues/config/collection.d.ts.map +1 -1
- package/dist/queues/config/collection.js +2 -1
- package/dist/queues/config/collection.js.map +1 -1
- package/dist/queues/config/generateJobsJSONSchemas.d.ts +1 -1
- package/dist/queues/config/generateJobsJSONSchemas.d.ts.map +1 -1
- package/dist/queues/config/generateJobsJSONSchemas.js +33 -12
- package/dist/queues/config/generateJobsJSONSchemas.js.map +1 -1
- package/dist/queues/config/global.d.ts.map +1 -1
- package/dist/queues/config/global.js +2 -1
- package/dist/queues/config/global.js.map +1 -1
- package/dist/queues/errors/index.d.ts.map +1 -1
- package/dist/queues/localAPI.d.ts +8 -8
- package/dist/queues/localAPI.d.ts.map +1 -1
- package/dist/queues/operations/runJobs/runJob/importHandlerPath.d.ts +1 -1
- package/dist/queues/operations/runJobs/runJob/importHandlerPath.d.ts.map +1 -1
- package/dist/queues/utilities/getCurrentDate.d.ts.map +1 -1
- package/dist/types/constants.d.ts +2 -2
- package/dist/types/constants.d.ts.map +1 -1
- package/dist/types/index.d.ts +18 -8
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js.map +1 -1
- package/dist/uploads/cropImage.d.ts.map +1 -1
- package/dist/uploads/endpoints/getFileFromURL.d.ts.map +1 -1
- package/dist/uploads/endpoints/getFileFromURL.js +9 -5
- package/dist/uploads/endpoints/getFileFromURL.js.map +1 -1
- package/dist/uploads/fetchAPI-multipart/processMultipart.d.ts.map +1 -1
- package/dist/uploads/fetchAPI-multipart/processMultipart.js +4 -0
- package/dist/uploads/fetchAPI-multipart/processMultipart.js.map +1 -1
- package/dist/uploads/generateFileData.d.ts +2 -1
- package/dist/uploads/generateFileData.d.ts.map +1 -1
- package/dist/uploads/generateFileData.js +5 -2
- package/dist/uploads/generateFileData.js.map +1 -1
- package/dist/uploads/getBaseFields.d.ts.map +1 -1
- package/dist/uploads/getBaseFields.js +7 -19
- package/dist/uploads/getBaseFields.js.map +1 -1
- package/dist/uploads/getFileByPath.d.ts +1 -1
- package/dist/uploads/image-resizing/getImageResizeAction.d.ts +1 -1
- package/dist/uploads/matchMimeType.d.ts +8 -0
- package/dist/uploads/matchMimeType.d.ts.map +1 -0
- package/dist/uploads/matchMimeType.js +19 -0
- package/dist/uploads/matchMimeType.js.map +1 -0
- package/dist/uploads/matchMimeType.spec.js +66 -0
- package/dist/uploads/matchMimeType.spec.js.map +1 -0
- package/dist/uploads/safeFetch.d.ts +1 -1
- package/dist/uploads/safeFetch.d.ts.map +1 -1
- package/dist/uploads/safeFetch.js +11 -5
- package/dist/uploads/safeFetch.js.map +1 -1
- package/dist/uploads/types.d.ts +33 -29
- package/dist/uploads/types.d.ts.map +1 -1
- package/dist/uploads/types.js.map +1 -1
- package/dist/utilities/addDataAndFileToRequest.d.ts.map +1 -1
- package/dist/utilities/addDataAndFileToRequest.js +6 -0
- package/dist/utilities/addDataAndFileToRequest.js.map +1 -1
- package/dist/utilities/appendDateTimezoneSelectFields.js +2 -2
- package/dist/utilities/appendDateTimezoneSelectFields.js.map +1 -1
- package/dist/utilities/configToJSONSchema.d.ts +68 -16
- package/dist/utilities/configToJSONSchema.d.ts.map +1 -1
- package/dist/utilities/configToJSONSchema.js +312 -117
- package/dist/utilities/configToJSONSchema.js.map +1 -1
- package/dist/utilities/configToJSONSchema.spec.js +656 -85
- package/dist/utilities/configToJSONSchema.spec.js.map +1 -1
- package/dist/utilities/createLocalReq.d.ts +2 -2
- package/dist/utilities/createLocalReq.d.ts.map +1 -1
- package/dist/utilities/createLocalReq.js.map +1 -1
- package/dist/utilities/createPayloadRequest.d.ts.map +1 -1
- package/dist/utilities/createPayloadRequest.js +1 -0
- package/dist/utilities/createPayloadRequest.js.map +1 -1
- package/dist/utilities/deepCopyObject.d.ts.map +1 -1
- package/dist/utilities/deepCopyObject.js +8 -0
- package/dist/utilities/deepCopyObject.js.map +1 -1
- package/dist/utilities/dependencies/dependencyChecker.js +1 -1
- package/dist/utilities/dependencies/dependencyChecker.js.map +1 -1
- package/dist/utilities/dependencies/getDependencies.d.ts.map +1 -1
- package/dist/utilities/dependencies/getDependencies.js +5 -5
- package/dist/utilities/dependencies/getDependencies.js.map +1 -1
- package/dist/utilities/dynamicImport.js +1 -1
- package/dist/utilities/dynamicImport.js.map +1 -1
- package/dist/utilities/filterDataToSelectedLocales.d.ts.map +1 -1
- package/dist/utilities/filterDataToSelectedLocales.js +5 -12
- package/dist/utilities/filterDataToSelectedLocales.js.map +1 -1
- package/dist/utilities/filterDataToSelectedLocales.spec.js +1 -2
- package/dist/utilities/filterDataToSelectedLocales.spec.js.map +1 -1
- package/dist/utilities/flattenAllFields.d.ts.map +1 -1
- package/dist/utilities/flattenAllFields.js +7 -22
- package/dist/utilities/flattenAllFields.js.map +1 -1
- package/dist/utilities/formatErrors.d.ts.map +1 -1
- package/dist/utilities/formatErrors.js +3 -1
- package/dist/utilities/formatErrors.js.map +1 -1
- package/dist/utilities/getDataByPath.d.ts.map +1 -1
- package/dist/utilities/getEntityPermissions/getEntityPermissions.d.ts.map +1 -1
- package/dist/utilities/getEntityPermissions/getEntityPermissions.js +2 -0
- package/dist/utilities/getEntityPermissions/getEntityPermissions.js.map +1 -1
- package/dist/utilities/getEntityPermissions/populateFieldPermissions.d.ts +7 -1
- package/dist/utilities/getEntityPermissions/populateFieldPermissions.d.ts.map +1 -1
- package/dist/utilities/getEntityPermissions/populateFieldPermissions.js +24 -7
- package/dist/utilities/getEntityPermissions/populateFieldPermissions.js.map +1 -1
- package/dist/utilities/getFieldByPath.d.ts.map +1 -1
- package/dist/utilities/getFieldByPath.js +1 -1
- package/dist/utilities/getFieldByPath.js.map +1 -1
- package/dist/utilities/getRequestLanguage.d.ts +2 -2
- package/dist/utilities/getRequestLanguage.d.ts.map +1 -1
- package/dist/utilities/getRequestLanguage.js.map +1 -1
- package/dist/utilities/getRequestOrigin.d.ts +2 -2
- package/dist/utilities/getVersionsConfig.d.ts +1 -1
- package/dist/utilities/getVersionsConfig.js.map +1 -1
- package/dist/utilities/handleEndpoints.d.ts.map +1 -1
- package/dist/utilities/handleEndpoints.js +7 -4
- package/dist/utilities/handleEndpoints.js.map +1 -1
- package/dist/utilities/isEntityHidden.d.ts +2 -2
- package/dist/utilities/isURLAllowed.d.ts.map +1 -1
- package/dist/utilities/isURLAllowed.js +9 -3
- package/dist/utilities/isURLAllowed.js.map +1 -1
- package/dist/utilities/isURLAllowed.spec.js +78 -0
- package/dist/utilities/isURLAllowed.spec.js.map +1 -0
- package/dist/utilities/isValidID.d.ts +1 -1
- package/dist/utilities/logger.d.ts +1 -1
- package/dist/utilities/mergeLocalizedData.d.ts +14 -4
- package/dist/utilities/mergeLocalizedData.d.ts.map +1 -1
- package/dist/utilities/mergeLocalizedData.js +54 -46
- package/dist/utilities/mergeLocalizedData.js.map +1 -1
- package/dist/utilities/mergeLocalizedData.spec.js +23 -23
- package/dist/utilities/mergeLocalizedData.spec.js.map +1 -1
- package/dist/utilities/miniChalk.d.ts.map +1 -1
- package/dist/utilities/parseCookies.d.ts +1 -1
- package/dist/utilities/parseParams/index.d.ts +2 -5
- package/dist/utilities/parseParams/index.d.ts.map +1 -1
- package/dist/utilities/parseParams/index.js.map +1 -1
- package/dist/utilities/parseParams/index.spec.js +0 -9
- package/dist/utilities/parseParams/index.spec.js.map +1 -1
- package/dist/utilities/resolveSelect.d.ts.map +1 -1
- package/dist/utilities/telemetry/conf/index.d.ts.map +1 -1
- package/dist/utilities/telemetry/events/adminInit.d.ts.map +1 -1
- package/dist/utilities/telemetry/events/adminInit.js +2 -3
- package/dist/utilities/telemetry/events/adminInit.js.map +1 -1
- package/dist/utilities/telemetry/events/serverInit.d.ts.map +1 -1
- package/dist/utilities/telemetry/events/serverInit.js +2 -3
- package/dist/utilities/telemetry/events/serverInit.js.map +1 -1
- package/dist/utilities/telemetry/index.d.ts +15 -4
- package/dist/utilities/telemetry/index.d.ts.map +1 -1
- package/dist/utilities/telemetry/index.js +6 -1
- package/dist/utilities/telemetry/index.js.map +1 -1
- package/dist/utilities/telemetry/index.spec.js +43 -0
- package/dist/utilities/telemetry/index.spec.js.map +1 -0
- package/dist/utilities/transformColumnPreferences.js +4 -2
- package/dist/utilities/transformColumnPreferences.js.map +1 -1
- package/dist/utilities/traverseFields.d.ts.map +1 -1
- package/dist/utilities/traverseFields.js +2 -4
- package/dist/utilities/traverseFields.js.map +1 -1
- package/dist/utilities/traverseForLocalizedFields.d.ts.map +1 -1
- package/dist/utilities/traverseForLocalizedFields.js +3 -0
- package/dist/utilities/traverseForLocalizedFields.js.map +1 -1
- package/dist/versions/baseFields.d.ts +1 -2
- package/dist/versions/baseFields.d.ts.map +1 -1
- package/dist/versions/baseFields.js +0 -13
- package/dist/versions/baseFields.js.map +1 -1
- package/dist/versions/buildCollectionFields.d.ts.map +1 -1
- package/dist/versions/buildCollectionFields.js +0 -2
- package/dist/versions/buildCollectionFields.js.map +1 -1
- package/dist/versions/buildGlobalFields.d.ts.map +1 -1
- package/dist/versions/buildGlobalFields.js +0 -2
- package/dist/versions/buildGlobalFields.js.map +1 -1
- package/dist/versions/buildSingleLocalePublishData.d.ts +32 -0
- package/dist/versions/buildSingleLocalePublishData.d.ts.map +1 -0
- package/dist/versions/buildSingleLocalePublishData.js +37 -0
- package/dist/versions/buildSingleLocalePublishData.js.map +1 -0
- package/dist/versions/defaults.d.ts.map +1 -1
- package/dist/versions/getLatestCollectionVersion.d.ts.map +1 -1
- package/dist/versions/payloadPackageList.d.ts.map +1 -1
- package/dist/versions/payloadPackageList.js +0 -1
- package/dist/versions/payloadPackageList.js.map +1 -1
- package/dist/versions/saveVersion.d.ts +0 -2
- package/dist/versions/saveVersion.d.ts.map +1 -1
- package/dist/versions/saveVersion.js +12 -17
- package/dist/versions/saveVersion.js.map +1 -1
- package/dist/versions/schedule/job.d.ts.map +1 -1
- package/dist/versions/schedule/job.js +6 -10
- package/dist/versions/schedule/job.js.map +1 -1
- package/dist/versions/types.d.ts +2 -15
- package/dist/versions/types.d.ts.map +1 -1
- package/dist/versions/types.js.map +1 -1
- package/package.json +23 -20
- package/dist/database/migrations/templates/localizeStatus.d.ts +0 -10
- package/dist/database/migrations/templates/localizeStatus.d.ts.map +0 -1
- package/dist/database/migrations/templates/localizeStatus.js +0 -54
- package/dist/database/migrations/templates/localizeStatus.js.map +0 -1
- package/dist/fields/baseFields/slug/index.d.ts +0 -89
- package/dist/fields/baseFields/slug/index.d.ts.map +0 -1
- package/dist/fields/baseFields/slug/index.js +0 -81
- package/dist/fields/baseFields/slug/index.js.map +0 -1
- package/dist/versions/migrations/localizeStatus/index.d.ts +0 -12
- package/dist/versions/migrations/localizeStatus/index.d.ts.map +0 -1
- package/dist/versions/migrations/localizeStatus/index.js +0 -33
- package/dist/versions/migrations/localizeStatus/index.js.map +0 -1
- package/dist/versions/migrations/localizeStatus/mongo/down.d.ts +0 -9
- package/dist/versions/migrations/localizeStatus/mongo/down.d.ts.map +0 -1
- package/dist/versions/migrations/localizeStatus/mongo/down.js +0 -112
- package/dist/versions/migrations/localizeStatus/mongo/down.js.map +0 -1
- package/dist/versions/migrations/localizeStatus/mongo/index.d.ts +0 -8
- package/dist/versions/migrations/localizeStatus/mongo/index.d.ts.map +0 -1
- package/dist/versions/migrations/localizeStatus/mongo/index.js +0 -8
- package/dist/versions/migrations/localizeStatus/mongo/index.js.map +0 -1
- package/dist/versions/migrations/localizeStatus/mongo/up.d.ts +0 -9
- package/dist/versions/migrations/localizeStatus/mongo/up.d.ts.map +0 -1
- package/dist/versions/migrations/localizeStatus/mongo/up.js +0 -220
- package/dist/versions/migrations/localizeStatus/mongo/up.js.map +0 -1
- package/dist/versions/migrations/localizeStatus/sql/down.d.ts +0 -11
- package/dist/versions/migrations/localizeStatus/sql/down.d.ts.map +0 -1
- package/dist/versions/migrations/localizeStatus/sql/down.js +0 -213
- package/dist/versions/migrations/localizeStatus/sql/down.js.map +0 -1
- package/dist/versions/migrations/localizeStatus/sql/index.d.ts +0 -8
- package/dist/versions/migrations/localizeStatus/sql/index.d.ts.map +0 -1
- package/dist/versions/migrations/localizeStatus/sql/index.js +0 -8
- package/dist/versions/migrations/localizeStatus/sql/index.js.map +0 -1
- package/dist/versions/migrations/localizeStatus/sql/migrateMainCollection.d.ts +0 -13
- package/dist/versions/migrations/localizeStatus/sql/migrateMainCollection.d.ts.map +0 -1
- package/dist/versions/migrations/localizeStatus/sql/migrateMainCollection.js +0 -51
- package/dist/versions/migrations/localizeStatus/sql/migrateMainCollection.js.map +0 -1
- package/dist/versions/migrations/localizeStatus/sql/migrateMainGlobal.d.ts +0 -13
- package/dist/versions/migrations/localizeStatus/sql/migrateMainGlobal.d.ts.map +0 -1
- package/dist/versions/migrations/localizeStatus/sql/migrateMainGlobal.js +0 -54
- package/dist/versions/migrations/localizeStatus/sql/migrateMainGlobal.js.map +0 -1
- package/dist/versions/migrations/localizeStatus/sql/up.d.ts +0 -11
- package/dist/versions/migrations/localizeStatus/sql/up.d.ts.map +0 -1
- package/dist/versions/migrations/localizeStatus/sql/up.js +0 -277
- package/dist/versions/migrations/localizeStatus/sql/up.js.map +0 -1
- package/dist/versions/saveSnapshot.d.ts +0 -18
- package/dist/versions/saveSnapshot.d.ts.map +0 -1
- package/dist/versions/saveSnapshot.js +0 -38
- package/dist/versions/saveSnapshot.js.map +0 -1
|
@@ -0,0 +1,594 @@
|
|
|
1
|
+
import { existsSync, mkdirSync, mkdtempSync, realpathSync, rmSync, writeFileSync } from 'node:fs';
|
|
2
|
+
import os from 'node:os';
|
|
3
|
+
import path from 'node:path';
|
|
4
|
+
import { describe, expect, it, vi, beforeEach, afterEach } from 'vitest';
|
|
5
|
+
// Default fake child auto-fires `exit(0)` synchronously so ordering/generation
|
|
6
|
+
// tests resolve. Specific tests override via `mockReturnValueOnce` to drive the
|
|
7
|
+
// exit/error handlers manually.
|
|
8
|
+
const spawnMock = vi.fn(()=>({
|
|
9
|
+
on (event, cb) {
|
|
10
|
+
if (event === 'exit') {
|
|
11
|
+
cb(0);
|
|
12
|
+
}
|
|
13
|
+
return this;
|
|
14
|
+
}
|
|
15
|
+
}));
|
|
16
|
+
const generateImportMapMock = vi.fn(async ()=>{});
|
|
17
|
+
const generateTypesMock = vi.fn(async ()=>{});
|
|
18
|
+
vi.mock('node:child_process', ()=>({
|
|
19
|
+
spawn: spawnMock
|
|
20
|
+
}));
|
|
21
|
+
vi.mock('./generateImportMap/index.js', ()=>({
|
|
22
|
+
generateImportMap: generateImportMapMock
|
|
23
|
+
}));
|
|
24
|
+
vi.mock('./generateTypes.js', ()=>({
|
|
25
|
+
generateTypes: generateTypesMock
|
|
26
|
+
}));
|
|
27
|
+
// Imported after mocks are registered
|
|
28
|
+
const { build, detectFramework, getForwardedArgs, resolveBuildCommand, resolveNextBin, resolveViteBin } = await import('./build.js');
|
|
29
|
+
const fakeConfig = {};
|
|
30
|
+
describe('getForwardedArgs', ()=>{
|
|
31
|
+
it('returns args after the build token and strips --no-types', ()=>{
|
|
32
|
+
expect(getForwardedArgs([
|
|
33
|
+
'build',
|
|
34
|
+
'--turbopack',
|
|
35
|
+
'--no-types',
|
|
36
|
+
'foo'
|
|
37
|
+
])).toEqual([
|
|
38
|
+
'--turbopack',
|
|
39
|
+
'foo'
|
|
40
|
+
]);
|
|
41
|
+
});
|
|
42
|
+
it('returns empty array when only build is present', ()=>{
|
|
43
|
+
expect(getForwardedArgs([
|
|
44
|
+
'build'
|
|
45
|
+
])).toEqual([]);
|
|
46
|
+
});
|
|
47
|
+
});
|
|
48
|
+
describe('resolveNextBin', ()=>{
|
|
49
|
+
it('resolves next bin from the current project', ()=>{
|
|
50
|
+
// next is installed at the repo root; resolving from cwd must succeed
|
|
51
|
+
const binPath = resolveNextBin(process.cwd());
|
|
52
|
+
expect(binPath).toMatch(/next[\\/].*bin[\\/]next$/);
|
|
53
|
+
expect(existsSync(binPath)).toBe(true);
|
|
54
|
+
});
|
|
55
|
+
it('throws a clear error when next cannot be resolved', ()=>{
|
|
56
|
+
expect(()=>resolveNextBin('/nonexistent-project-root')).toThrow(/next/i);
|
|
57
|
+
});
|
|
58
|
+
});
|
|
59
|
+
describe('resolveViteBin', ()=>{
|
|
60
|
+
it('resolves the vite bin from the current project', ()=>{
|
|
61
|
+
// vite is installed at the repo root; resolving from cwd must succeed
|
|
62
|
+
const binPath = resolveViteBin(process.cwd());
|
|
63
|
+
expect(binPath).toMatch(/vite[\\/].*bin[\\/]vite\.js$/);
|
|
64
|
+
expect(existsSync(binPath)).toBe(true);
|
|
65
|
+
});
|
|
66
|
+
it('throws a clear error when vite cannot be resolved', async ()=>{
|
|
67
|
+
// Vitest injects its own transitive `vite` dep onto NODE_PATH, so resolving
|
|
68
|
+
// "vite" from any cwd would otherwise succeed in this test process even
|
|
69
|
+
// when the project under test has no vite installed. Mock module
|
|
70
|
+
// resolution itself to simulate a real "vite not installed" project.
|
|
71
|
+
vi.resetModules();
|
|
72
|
+
vi.doMock('node:module', async (importOriginal)=>{
|
|
73
|
+
const actual = await importOriginal();
|
|
74
|
+
return {
|
|
75
|
+
...actual,
|
|
76
|
+
createRequire: ()=>({
|
|
77
|
+
resolve: ()=>{
|
|
78
|
+
throw new Error('Cannot find module');
|
|
79
|
+
}
|
|
80
|
+
})
|
|
81
|
+
};
|
|
82
|
+
});
|
|
83
|
+
const { resolveViteBin: resolveViteBinWithoutVite } = await import('./build.js');
|
|
84
|
+
expect(()=>resolveViteBinWithoutVite('/nonexistent-project-root')).toThrow(/vite/i);
|
|
85
|
+
vi.doUnmock('node:module');
|
|
86
|
+
vi.resetModules();
|
|
87
|
+
});
|
|
88
|
+
});
|
|
89
|
+
describe('resolveBuildCommand', ()=>{
|
|
90
|
+
it('maps next to the next bin and build args', ()=>{
|
|
91
|
+
const { args, bin } = resolveBuildCommand({
|
|
92
|
+
cwd: process.cwd(),
|
|
93
|
+
forwardedArgs: [
|
|
94
|
+
'--turbopack'
|
|
95
|
+
],
|
|
96
|
+
framework: 'next'
|
|
97
|
+
});
|
|
98
|
+
expect(bin).toMatch(/next[\\/].*bin[\\/]next$/);
|
|
99
|
+
expect(args).toEqual([
|
|
100
|
+
'build',
|
|
101
|
+
'--turbopack'
|
|
102
|
+
]);
|
|
103
|
+
});
|
|
104
|
+
it('maps tanstack-start to the vite bin and build args', ()=>{
|
|
105
|
+
const { args, bin } = resolveBuildCommand({
|
|
106
|
+
cwd: process.cwd(),
|
|
107
|
+
forwardedArgs: [
|
|
108
|
+
'--mode',
|
|
109
|
+
'staging'
|
|
110
|
+
],
|
|
111
|
+
framework: 'tanstack-start'
|
|
112
|
+
});
|
|
113
|
+
expect(bin).toMatch(/vite[\\/].*bin[\\/]vite\.js$/);
|
|
114
|
+
expect(args).toEqual([
|
|
115
|
+
'build',
|
|
116
|
+
'--mode',
|
|
117
|
+
'staging'
|
|
118
|
+
]);
|
|
119
|
+
});
|
|
120
|
+
});
|
|
121
|
+
// Resolution against isolated fixture projects, complementing the cwd/real-install
|
|
122
|
+
// checks above. Installing a fake package into a real temp node_modules proves
|
|
123
|
+
// `createRequire` walks the consumer's node_modules rather than repo hoisting or
|
|
124
|
+
// vitest's ambient NODE_PATH, and exercises bin-field shapes the real installs don't.
|
|
125
|
+
describe('bin resolution walks the consumer project node_modules', ()=>{
|
|
126
|
+
const binFixtureDirs = [];
|
|
127
|
+
/**
|
|
128
|
+
* Build a throwaway project with a fake installed package whose package.json
|
|
129
|
+
* carries the given `bin` field. Returns the project root to pass as `cwd`. The
|
|
130
|
+
* bin target file is created so existsSync assertions are meaningful.
|
|
131
|
+
*/ const makeProjectWithPackage = ({ binField, binRelPath, packageName })=>{
|
|
132
|
+
// realpath so exact path comparisons hold on macOS, where /var symlinks to
|
|
133
|
+
// /private/var and require.resolve returns the resolved path.
|
|
134
|
+
const root = realpathSync(mkdtempSync(path.join(os.tmpdir(), 'payload-build-bin-')));
|
|
135
|
+
binFixtureDirs.push(root);
|
|
136
|
+
writeFileSync(path.join(root, 'package.json'), JSON.stringify({
|
|
137
|
+
name: 'fixture-app'
|
|
138
|
+
}));
|
|
139
|
+
const pkgDir = path.join(root, 'node_modules', packageName);
|
|
140
|
+
mkdirSync(pkgDir, {
|
|
141
|
+
recursive: true
|
|
142
|
+
});
|
|
143
|
+
writeFileSync(path.join(pkgDir, 'package.json'), JSON.stringify({
|
|
144
|
+
bin: binField,
|
|
145
|
+
name: packageName,
|
|
146
|
+
version: '0.0.0'
|
|
147
|
+
}));
|
|
148
|
+
if (binRelPath) {
|
|
149
|
+
const binFull = path.join(pkgDir, binRelPath);
|
|
150
|
+
mkdirSync(path.dirname(binFull), {
|
|
151
|
+
recursive: true
|
|
152
|
+
});
|
|
153
|
+
writeFileSync(binFull, '');
|
|
154
|
+
}
|
|
155
|
+
return root;
|
|
156
|
+
};
|
|
157
|
+
afterEach(()=>{
|
|
158
|
+
for (const dir of binFixtureDirs){
|
|
159
|
+
rmSync(dir, {
|
|
160
|
+
force: true,
|
|
161
|
+
recursive: true
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
binFixtureDirs.length = 0;
|
|
165
|
+
});
|
|
166
|
+
it('resolves the next bin from an isolated project using the object-form bin field', ()=>{
|
|
167
|
+
const root = makeProjectWithPackage({
|
|
168
|
+
binField: {
|
|
169
|
+
next: './dist/bin/next'
|
|
170
|
+
},
|
|
171
|
+
binRelPath: 'dist/bin/next',
|
|
172
|
+
packageName: 'next'
|
|
173
|
+
});
|
|
174
|
+
const binPath = resolveNextBin(root);
|
|
175
|
+
expect(binPath).toBe(path.join(root, 'node_modules', 'next', 'dist', 'bin', 'next'));
|
|
176
|
+
expect(existsSync(binPath)).toBe(true);
|
|
177
|
+
});
|
|
178
|
+
it('resolves the vite bin from an isolated project using the object-form bin field', ()=>{
|
|
179
|
+
const root = makeProjectWithPackage({
|
|
180
|
+
binField: {
|
|
181
|
+
vite: 'bin/vite.js'
|
|
182
|
+
},
|
|
183
|
+
binRelPath: 'bin/vite.js',
|
|
184
|
+
packageName: 'vite'
|
|
185
|
+
});
|
|
186
|
+
const binPath = resolveViteBin(root);
|
|
187
|
+
expect(binPath).toBe(path.join(root, 'node_modules', 'vite', 'bin', 'vite.js'));
|
|
188
|
+
expect(existsSync(binPath)).toBe(true);
|
|
189
|
+
});
|
|
190
|
+
it('resolves a string-form bin field', ()=>{
|
|
191
|
+
const root = makeProjectWithPackage({
|
|
192
|
+
binField: './cli.js',
|
|
193
|
+
binRelPath: 'cli.js',
|
|
194
|
+
packageName: 'vite'
|
|
195
|
+
});
|
|
196
|
+
const binPath = resolveViteBin(root);
|
|
197
|
+
expect(binPath).toBe(path.join(root, 'node_modules', 'vite', 'cli.js'));
|
|
198
|
+
expect(existsSync(binPath)).toBe(true);
|
|
199
|
+
});
|
|
200
|
+
it('throws a clear error when the package declares no bin field', ()=>{
|
|
201
|
+
const root = makeProjectWithPackage({
|
|
202
|
+
binField: undefined,
|
|
203
|
+
packageName: 'vite'
|
|
204
|
+
});
|
|
205
|
+
expect(()=>resolveViteBin(root)).toThrow(/binary path/i);
|
|
206
|
+
});
|
|
207
|
+
});
|
|
208
|
+
describe('build', ()=>{
|
|
209
|
+
let exitMock;
|
|
210
|
+
let originalArgv;
|
|
211
|
+
let originalFrameworkEnv;
|
|
212
|
+
let cwdSpy;
|
|
213
|
+
const buildTempDirs = [];
|
|
214
|
+
beforeEach(()=>{
|
|
215
|
+
spawnMock.mockClear();
|
|
216
|
+
generateImportMapMock.mockClear();
|
|
217
|
+
generateTypesMock.mockClear();
|
|
218
|
+
originalArgv = process.argv;
|
|
219
|
+
process.argv = [
|
|
220
|
+
'node',
|
|
221
|
+
'payload',
|
|
222
|
+
'build'
|
|
223
|
+
];
|
|
224
|
+
exitMock = vi.spyOn(process, 'exit').mockImplementation(()=>undefined);
|
|
225
|
+
originalFrameworkEnv = process.env.PAYLOAD_FRAMEWORK;
|
|
226
|
+
// Force next for the legacy tests so they don't depend on the repo-root
|
|
227
|
+
// package.json's ambient `next` dependency for auto-detection.
|
|
228
|
+
process.env.PAYLOAD_FRAMEWORK = 'next';
|
|
229
|
+
});
|
|
230
|
+
afterEach(()=>{
|
|
231
|
+
process.argv = originalArgv;
|
|
232
|
+
exitMock.mockRestore();
|
|
233
|
+
if (originalFrameworkEnv === undefined) {
|
|
234
|
+
delete process.env.PAYLOAD_FRAMEWORK;
|
|
235
|
+
} else {
|
|
236
|
+
process.env.PAYLOAD_FRAMEWORK = originalFrameworkEnv;
|
|
237
|
+
}
|
|
238
|
+
if (cwdSpy) {
|
|
239
|
+
cwdSpy.mockRestore();
|
|
240
|
+
cwdSpy = undefined;
|
|
241
|
+
}
|
|
242
|
+
for (const dir of buildTempDirs){
|
|
243
|
+
rmSync(dir, {
|
|
244
|
+
force: true,
|
|
245
|
+
recursive: true
|
|
246
|
+
});
|
|
247
|
+
}
|
|
248
|
+
buildTempDirs.length = 0;
|
|
249
|
+
});
|
|
250
|
+
it('generates the import map before spawning, and generates types by default', async ()=>{
|
|
251
|
+
await build({
|
|
252
|
+
config: fakeConfig
|
|
253
|
+
});
|
|
254
|
+
expect(generateImportMapMock).toHaveBeenCalledTimes(1);
|
|
255
|
+
expect(generateTypesMock).toHaveBeenCalledTimes(1);
|
|
256
|
+
expect(spawnMock).toHaveBeenCalledTimes(1);
|
|
257
|
+
expect(generateImportMapMock.mock.invocationCallOrder[0]).toBeLessThan(spawnMock.mock.invocationCallOrder[0]);
|
|
258
|
+
});
|
|
259
|
+
it('skips type generation with --no-types', async ()=>{
|
|
260
|
+
process.argv = [
|
|
261
|
+
'node',
|
|
262
|
+
'payload',
|
|
263
|
+
'build',
|
|
264
|
+
'--no-types'
|
|
265
|
+
];
|
|
266
|
+
await build({
|
|
267
|
+
config: fakeConfig
|
|
268
|
+
});
|
|
269
|
+
expect(generateImportMapMock).toHaveBeenCalledTimes(1);
|
|
270
|
+
expect(generateTypesMock).not.toHaveBeenCalled();
|
|
271
|
+
expect(spawnMock).toHaveBeenCalledTimes(1);
|
|
272
|
+
});
|
|
273
|
+
it('exits 1 and does not spawn when generation fails', async ()=>{
|
|
274
|
+
generateImportMapMock.mockRejectedValueOnce(new Error('boom'));
|
|
275
|
+
await build({
|
|
276
|
+
config: fakeConfig
|
|
277
|
+
});
|
|
278
|
+
expect(exitMock).toHaveBeenCalledWith(1);
|
|
279
|
+
expect(spawnMock).not.toHaveBeenCalled();
|
|
280
|
+
});
|
|
281
|
+
it('spawns next build with forwarded args and propagates the child exit code', async ()=>{
|
|
282
|
+
process.argv = [
|
|
283
|
+
'node',
|
|
284
|
+
'payload',
|
|
285
|
+
'build',
|
|
286
|
+
'--turbopack'
|
|
287
|
+
];
|
|
288
|
+
let exitCb;
|
|
289
|
+
spawnMock.mockReturnValueOnce({
|
|
290
|
+
on (event, cb) {
|
|
291
|
+
if (event === 'exit') {
|
|
292
|
+
exitCb = cb;
|
|
293
|
+
}
|
|
294
|
+
return this;
|
|
295
|
+
}
|
|
296
|
+
});
|
|
297
|
+
const buildPromise = build({
|
|
298
|
+
config: fakeConfig
|
|
299
|
+
});
|
|
300
|
+
// generation awaits before spawn; let those microtasks settle
|
|
301
|
+
await vi.waitFor(()=>expect(spawnMock).toHaveBeenCalledTimes(1));
|
|
302
|
+
const [execPath, spawnArgs, opts] = spawnMock.mock.calls[0];
|
|
303
|
+
expect(execPath).toBe(process.execPath);
|
|
304
|
+
expect(spawnArgs[1]).toBe('build');
|
|
305
|
+
expect(spawnArgs).toContain('--turbopack');
|
|
306
|
+
expect(opts).toEqual({
|
|
307
|
+
stdio: 'inherit'
|
|
308
|
+
});
|
|
309
|
+
// Simulate the child exiting with a non-zero code
|
|
310
|
+
exitCb?.(2);
|
|
311
|
+
await buildPromise;
|
|
312
|
+
expect(exitMock).toHaveBeenCalledWith(2);
|
|
313
|
+
});
|
|
314
|
+
it('does not exit until the spawned child exits, then propagates its code', async ()=>{
|
|
315
|
+
let exitCb;
|
|
316
|
+
spawnMock.mockReturnValueOnce({
|
|
317
|
+
on (event, cb) {
|
|
318
|
+
if (event === 'exit') {
|
|
319
|
+
exitCb = cb;
|
|
320
|
+
}
|
|
321
|
+
return this;
|
|
322
|
+
}
|
|
323
|
+
});
|
|
324
|
+
let resolved = false;
|
|
325
|
+
const buildPromise = build({
|
|
326
|
+
config: fakeConfig
|
|
327
|
+
}).then(()=>{
|
|
328
|
+
resolved = true;
|
|
329
|
+
});
|
|
330
|
+
// Wait for generation to settle and the child to be spawned. build() must
|
|
331
|
+
// still be pending because the child has not exited yet.
|
|
332
|
+
await vi.waitFor(()=>expect(exitCb).toBeDefined());
|
|
333
|
+
// Flush all pending microtasks; the OLD (buggy) build() resolved here
|
|
334
|
+
// without awaiting the child, so this assertion catches the race.
|
|
335
|
+
await new Promise((r)=>setTimeout(r, 0));
|
|
336
|
+
expect(resolved).toBe(false);
|
|
337
|
+
expect(exitMock).not.toHaveBeenCalled();
|
|
338
|
+
// Child exits non-zero -> build() must exit with that exact code
|
|
339
|
+
exitCb?.(3);
|
|
340
|
+
await buildPromise;
|
|
341
|
+
expect(resolved).toBe(true);
|
|
342
|
+
expect(exitMock).toHaveBeenCalledWith(3);
|
|
343
|
+
});
|
|
344
|
+
it('spawns vite build for a detected tanstack project', async ()=>{
|
|
345
|
+
delete process.env.PAYLOAD_FRAMEWORK;
|
|
346
|
+
process.argv = [
|
|
347
|
+
'node',
|
|
348
|
+
'payload',
|
|
349
|
+
'build',
|
|
350
|
+
'--mode',
|
|
351
|
+
'staging'
|
|
352
|
+
];
|
|
353
|
+
const tanstackDir = mkdtempSync(path.join(os.tmpdir(), 'payload-build-ts-'));
|
|
354
|
+
buildTempDirs.push(tanstackDir);
|
|
355
|
+
writeFileSync(path.join(tanstackDir, 'package.json'), JSON.stringify({
|
|
356
|
+
dependencies: {
|
|
357
|
+
'@tanstack/react-start': '1.168.26'
|
|
358
|
+
}
|
|
359
|
+
}));
|
|
360
|
+
cwdSpy = vi.spyOn(process, 'cwd').mockReturnValue(tanstackDir);
|
|
361
|
+
await build({
|
|
362
|
+
config: fakeConfig
|
|
363
|
+
});
|
|
364
|
+
expect(spawnMock).toHaveBeenCalledTimes(1);
|
|
365
|
+
const [, spawnArgs] = spawnMock.mock.calls[0];
|
|
366
|
+
expect(spawnArgs[0]).toMatch(/vite[\\/].*bin[\\/]vite\.js$/);
|
|
367
|
+
expect(spawnArgs.slice(1)).toEqual([
|
|
368
|
+
'build',
|
|
369
|
+
'--mode',
|
|
370
|
+
'staging'
|
|
371
|
+
]);
|
|
372
|
+
});
|
|
373
|
+
it('exits 1 and does not spawn when the framework cannot be detected', async ()=>{
|
|
374
|
+
delete process.env.PAYLOAD_FRAMEWORK;
|
|
375
|
+
const emptyDir = mkdtempSync(path.join(os.tmpdir(), 'payload-build-empty-'));
|
|
376
|
+
buildTempDirs.push(emptyDir);
|
|
377
|
+
writeFileSync(path.join(emptyDir, 'package.json'), JSON.stringify({}));
|
|
378
|
+
cwdSpy = vi.spyOn(process, 'cwd').mockReturnValue(emptyDir);
|
|
379
|
+
await build({
|
|
380
|
+
config: fakeConfig
|
|
381
|
+
});
|
|
382
|
+
expect(exitMock).toHaveBeenCalledWith(1);
|
|
383
|
+
expect(spawnMock).not.toHaveBeenCalled();
|
|
384
|
+
});
|
|
385
|
+
});
|
|
386
|
+
describe('detectFramework', ()=>{
|
|
387
|
+
const createdDirs = [];
|
|
388
|
+
let originalFrameworkEnv;
|
|
389
|
+
const makeProject = (files)=>{
|
|
390
|
+
const dir = mkdtempSync(path.join(os.tmpdir(), 'payload-build-'));
|
|
391
|
+
createdDirs.push(dir);
|
|
392
|
+
for (const file of files){
|
|
393
|
+
const full = path.join(dir, file.path);
|
|
394
|
+
mkdirSync(path.dirname(full), {
|
|
395
|
+
recursive: true
|
|
396
|
+
});
|
|
397
|
+
writeFileSync(full, file.contents ?? '');
|
|
398
|
+
}
|
|
399
|
+
return dir;
|
|
400
|
+
};
|
|
401
|
+
const pkg = (deps)=>JSON.stringify({
|
|
402
|
+
dependencies: deps
|
|
403
|
+
});
|
|
404
|
+
beforeEach(()=>{
|
|
405
|
+
originalFrameworkEnv = process.env.PAYLOAD_FRAMEWORK;
|
|
406
|
+
delete process.env.PAYLOAD_FRAMEWORK;
|
|
407
|
+
});
|
|
408
|
+
afterEach(()=>{
|
|
409
|
+
if (originalFrameworkEnv === undefined) {
|
|
410
|
+
delete process.env.PAYLOAD_FRAMEWORK;
|
|
411
|
+
} else {
|
|
412
|
+
process.env.PAYLOAD_FRAMEWORK = originalFrameworkEnv;
|
|
413
|
+
}
|
|
414
|
+
for (const dir of createdDirs){
|
|
415
|
+
rmSync(dir, {
|
|
416
|
+
force: true,
|
|
417
|
+
recursive: true
|
|
418
|
+
});
|
|
419
|
+
}
|
|
420
|
+
createdDirs.length = 0;
|
|
421
|
+
});
|
|
422
|
+
it('honors PAYLOAD_FRAMEWORK=tanstack-start over auto-detection', ()=>{
|
|
423
|
+
process.env.PAYLOAD_FRAMEWORK = 'tanstack-start';
|
|
424
|
+
const dir = makeProject([
|
|
425
|
+
{
|
|
426
|
+
contents: pkg({
|
|
427
|
+
next: '15.0.0'
|
|
428
|
+
}),
|
|
429
|
+
path: 'package.json'
|
|
430
|
+
}
|
|
431
|
+
]);
|
|
432
|
+
expect(detectFramework(dir)).toBe('tanstack-start');
|
|
433
|
+
});
|
|
434
|
+
it('honors PAYLOAD_FRAMEWORK=next over auto-detection', ()=>{
|
|
435
|
+
process.env.PAYLOAD_FRAMEWORK = 'next';
|
|
436
|
+
const dir = makeProject([
|
|
437
|
+
{
|
|
438
|
+
contents: pkg({
|
|
439
|
+
'@tanstack/react-start': '1.168.26'
|
|
440
|
+
}),
|
|
441
|
+
path: 'package.json'
|
|
442
|
+
}
|
|
443
|
+
]);
|
|
444
|
+
expect(detectFramework(dir)).toBe('next');
|
|
445
|
+
});
|
|
446
|
+
it('throws when PAYLOAD_FRAMEWORK is an unsupported value', ()=>{
|
|
447
|
+
process.env.PAYLOAD_FRAMEWORK = 'svelte';
|
|
448
|
+
const dir = makeProject([
|
|
449
|
+
{
|
|
450
|
+
contents: pkg({
|
|
451
|
+
next: '15.0.0'
|
|
452
|
+
}),
|
|
453
|
+
path: 'package.json'
|
|
454
|
+
}
|
|
455
|
+
]);
|
|
456
|
+
expect(()=>detectFramework(dir)).toThrow(/PAYLOAD_FRAMEWORK/);
|
|
457
|
+
});
|
|
458
|
+
it('detects next from the next dependency', ()=>{
|
|
459
|
+
const dir = makeProject([
|
|
460
|
+
{
|
|
461
|
+
contents: pkg({
|
|
462
|
+
next: '15.0.0'
|
|
463
|
+
}),
|
|
464
|
+
path: 'package.json'
|
|
465
|
+
}
|
|
466
|
+
]);
|
|
467
|
+
expect(detectFramework(dir)).toBe('next');
|
|
468
|
+
});
|
|
469
|
+
it('detects tanstack-start from the @tanstack/react-start dependency', ()=>{
|
|
470
|
+
const dir = makeProject([
|
|
471
|
+
{
|
|
472
|
+
contents: pkg({
|
|
473
|
+
'@tanstack/react-start': '1.168.26'
|
|
474
|
+
}),
|
|
475
|
+
path: 'package.json'
|
|
476
|
+
}
|
|
477
|
+
]);
|
|
478
|
+
expect(detectFramework(dir)).toBe('tanstack-start');
|
|
479
|
+
});
|
|
480
|
+
it('falls back to next.config when deps are inconclusive', ()=>{
|
|
481
|
+
const dir = makeProject([
|
|
482
|
+
{
|
|
483
|
+
contents: pkg({}),
|
|
484
|
+
path: 'package.json'
|
|
485
|
+
},
|
|
486
|
+
{
|
|
487
|
+
path: 'next.config.ts'
|
|
488
|
+
}
|
|
489
|
+
]);
|
|
490
|
+
expect(detectFramework(dir)).toBe('next');
|
|
491
|
+
});
|
|
492
|
+
it('falls back to vite.config when deps are inconclusive', ()=>{
|
|
493
|
+
const dir = makeProject([
|
|
494
|
+
{
|
|
495
|
+
contents: pkg({}),
|
|
496
|
+
path: 'package.json'
|
|
497
|
+
},
|
|
498
|
+
{
|
|
499
|
+
path: 'vite.config.ts'
|
|
500
|
+
}
|
|
501
|
+
]);
|
|
502
|
+
expect(detectFramework(dir)).toBe('tanstack-start');
|
|
503
|
+
});
|
|
504
|
+
it('falls back to the (payload) folder convention', ()=>{
|
|
505
|
+
const dir = makeProject([
|
|
506
|
+
{
|
|
507
|
+
path: 'app/(payload)/admin/page.tsx'
|
|
508
|
+
}
|
|
509
|
+
]);
|
|
510
|
+
expect(detectFramework(dir)).toBe('next');
|
|
511
|
+
});
|
|
512
|
+
it('falls back to the _payload folder convention', ()=>{
|
|
513
|
+
const dir = makeProject([
|
|
514
|
+
{
|
|
515
|
+
path: 'app/_payload/route.tsx'
|
|
516
|
+
}
|
|
517
|
+
]);
|
|
518
|
+
expect(detectFramework(dir)).toBe('tanstack-start');
|
|
519
|
+
});
|
|
520
|
+
it('resolves ambiguous deps using the config-file layer', ()=>{
|
|
521
|
+
const dir = makeProject([
|
|
522
|
+
{
|
|
523
|
+
contents: pkg({
|
|
524
|
+
'@tanstack/react-start': '1.168.26',
|
|
525
|
+
next: '15.0.0'
|
|
526
|
+
}),
|
|
527
|
+
path: 'package.json'
|
|
528
|
+
},
|
|
529
|
+
{
|
|
530
|
+
path: 'next.config.ts'
|
|
531
|
+
}
|
|
532
|
+
]);
|
|
533
|
+
expect(detectFramework(dir)).toBe('next');
|
|
534
|
+
});
|
|
535
|
+
it('resolves ambiguous deps to tanstack-start via the config-file layer', ()=>{
|
|
536
|
+
const dir = makeProject([
|
|
537
|
+
{
|
|
538
|
+
contents: pkg({
|
|
539
|
+
'@tanstack/react-start': '1.168.26',
|
|
540
|
+
next: '15.0.0'
|
|
541
|
+
}),
|
|
542
|
+
path: 'package.json'
|
|
543
|
+
},
|
|
544
|
+
{
|
|
545
|
+
path: 'vite.config.ts'
|
|
546
|
+
}
|
|
547
|
+
]);
|
|
548
|
+
expect(detectFramework(dir)).toBe('tanstack-start');
|
|
549
|
+
});
|
|
550
|
+
it('resolves ambiguous deps and configs via the folder-convention layer', ()=>{
|
|
551
|
+
const dir = makeProject([
|
|
552
|
+
{
|
|
553
|
+
contents: pkg({
|
|
554
|
+
'@tanstack/react-start': '1.168.26',
|
|
555
|
+
next: '15.0.0'
|
|
556
|
+
}),
|
|
557
|
+
path: 'package.json'
|
|
558
|
+
},
|
|
559
|
+
{
|
|
560
|
+
path: 'app/_payload/route.tsx'
|
|
561
|
+
}
|
|
562
|
+
]);
|
|
563
|
+
expect(detectFramework(dir)).toBe('tanstack-start');
|
|
564
|
+
});
|
|
565
|
+
it('throws a no-framework error when nothing is detected', ()=>{
|
|
566
|
+
const dir = makeProject([
|
|
567
|
+
{
|
|
568
|
+
contents: pkg({}),
|
|
569
|
+
path: 'package.json'
|
|
570
|
+
}
|
|
571
|
+
]);
|
|
572
|
+
expect(()=>detectFramework(dir)).toThrow(/Could not determine your framework/);
|
|
573
|
+
});
|
|
574
|
+
it('throws a conflict error when signals stay ambiguous', ()=>{
|
|
575
|
+
const dir = makeProject([
|
|
576
|
+
{
|
|
577
|
+
contents: pkg({
|
|
578
|
+
'@tanstack/react-start': '1.168.26',
|
|
579
|
+
next: '15.0.0'
|
|
580
|
+
}),
|
|
581
|
+
path: 'package.json'
|
|
582
|
+
},
|
|
583
|
+
{
|
|
584
|
+
path: 'next.config.ts'
|
|
585
|
+
},
|
|
586
|
+
{
|
|
587
|
+
path: 'vite.config.ts'
|
|
588
|
+
}
|
|
589
|
+
]);
|
|
590
|
+
expect(()=>detectFramework(dir)).toThrow(/conflicting signals/);
|
|
591
|
+
});
|
|
592
|
+
});
|
|
593
|
+
|
|
594
|
+
//# sourceMappingURL=build.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/bin/build.spec.ts"],"sourcesContent":["import { existsSync, mkdirSync, mkdtempSync, realpathSync, rmSync, writeFileSync } from 'node:fs'\nimport os from 'node:os'\nimport path from 'node:path'\n\nimport { describe, expect, it, vi, beforeEach, afterEach } from 'vitest'\n\n// Default fake child auto-fires `exit(0)` synchronously so ordering/generation\n// tests resolve. Specific tests override via `mockReturnValueOnce` to drive the\n// exit/error handlers manually.\nconst spawnMock = vi.fn(() => ({\n on(event: string, cb: (arg?: never) => void) {\n if (event === 'exit') {\n cb(0 as never)\n }\n return this\n },\n}))\nconst generateImportMapMock = vi.fn(async () => {})\nconst generateTypesMock = vi.fn(async () => {})\n\nvi.mock('node:child_process', () => ({ spawn: spawnMock }))\nvi.mock('./generateImportMap/index.js', () => ({ generateImportMap: generateImportMapMock }))\nvi.mock('./generateTypes.js', () => ({ generateTypes: generateTypesMock }))\n\n// Imported after mocks are registered\nconst {\n build,\n detectFramework,\n getForwardedArgs,\n resolveBuildCommand,\n resolveNextBin,\n resolveViteBin,\n} = await import('./build.js')\n\nconst fakeConfig = {} as never\n\ndescribe('getForwardedArgs', () => {\n it('returns args after the build token and strips --no-types', () => {\n expect(getForwardedArgs(['build', '--turbopack', '--no-types', 'foo'])).toEqual([\n '--turbopack',\n 'foo',\n ])\n })\n\n it('returns empty array when only build is present', () => {\n expect(getForwardedArgs(['build'])).toEqual([])\n })\n})\n\ndescribe('resolveNextBin', () => {\n it('resolves next bin from the current project', () => {\n // next is installed at the repo root; resolving from cwd must succeed\n const binPath = resolveNextBin(process.cwd())\n expect(binPath).toMatch(/next[\\\\/].*bin[\\\\/]next$/)\n expect(existsSync(binPath)).toBe(true)\n })\n\n it('throws a clear error when next cannot be resolved', () => {\n expect(() => resolveNextBin('/nonexistent-project-root')).toThrow(/next/i)\n })\n})\n\ndescribe('resolveViteBin', () => {\n it('resolves the vite bin from the current project', () => {\n // vite is installed at the repo root; resolving from cwd must succeed\n const binPath = resolveViteBin(process.cwd())\n expect(binPath).toMatch(/vite[\\\\/].*bin[\\\\/]vite\\.js$/)\n expect(existsSync(binPath)).toBe(true)\n })\n\n it('throws a clear error when vite cannot be resolved', async () => {\n // Vitest injects its own transitive `vite` dep onto NODE_PATH, so resolving\n // \"vite\" from any cwd would otherwise succeed in this test process even\n // when the project under test has no vite installed. Mock module\n // resolution itself to simulate a real \"vite not installed\" project.\n vi.resetModules()\n vi.doMock('node:module', async (importOriginal) => {\n const actual = await importOriginal<typeof import('node:module')>()\n return {\n ...actual,\n createRequire: () => ({\n resolve: () => {\n throw new Error('Cannot find module')\n },\n }),\n }\n })\n\n const { resolveViteBin: resolveViteBinWithoutVite } = await import('./build.js')\n expect(() => resolveViteBinWithoutVite('/nonexistent-project-root')).toThrow(/vite/i)\n\n vi.doUnmock('node:module')\n vi.resetModules()\n })\n})\n\ndescribe('resolveBuildCommand', () => {\n it('maps next to the next bin and build args', () => {\n const { args, bin } = resolveBuildCommand({\n cwd: process.cwd(),\n forwardedArgs: ['--turbopack'],\n framework: 'next',\n })\n expect(bin).toMatch(/next[\\\\/].*bin[\\\\/]next$/)\n expect(args).toEqual(['build', '--turbopack'])\n })\n\n it('maps tanstack-start to the vite bin and build args', () => {\n const { args, bin } = resolveBuildCommand({\n cwd: process.cwd(),\n forwardedArgs: ['--mode', 'staging'],\n framework: 'tanstack-start',\n })\n expect(bin).toMatch(/vite[\\\\/].*bin[\\\\/]vite\\.js$/)\n expect(args).toEqual(['build', '--mode', 'staging'])\n })\n})\n\n// Resolution against isolated fixture projects, complementing the cwd/real-install\n// checks above. Installing a fake package into a real temp node_modules proves\n// `createRequire` walks the consumer's node_modules rather than repo hoisting or\n// vitest's ambient NODE_PATH, and exercises bin-field shapes the real installs don't.\ndescribe('bin resolution walks the consumer project node_modules', () => {\n const binFixtureDirs: string[] = []\n\n /**\n * Build a throwaway project with a fake installed package whose package.json\n * carries the given `bin` field. Returns the project root to pass as `cwd`. The\n * bin target file is created so existsSync assertions are meaningful.\n */\n const makeProjectWithPackage = ({\n binField,\n binRelPath,\n packageName,\n }: {\n binField: unknown\n binRelPath?: string\n packageName: string\n }): string => {\n // realpath so exact path comparisons hold on macOS, where /var symlinks to\n // /private/var and require.resolve returns the resolved path.\n const root = realpathSync(mkdtempSync(path.join(os.tmpdir(), 'payload-build-bin-')))\n binFixtureDirs.push(root)\n writeFileSync(path.join(root, 'package.json'), JSON.stringify({ name: 'fixture-app' }))\n\n const pkgDir = path.join(root, 'node_modules', packageName)\n mkdirSync(pkgDir, { recursive: true })\n writeFileSync(\n path.join(pkgDir, 'package.json'),\n JSON.stringify({ bin: binField, name: packageName, version: '0.0.0' }),\n )\n\n if (binRelPath) {\n const binFull = path.join(pkgDir, binRelPath)\n mkdirSync(path.dirname(binFull), { recursive: true })\n writeFileSync(binFull, '')\n }\n\n return root\n }\n\n afterEach(() => {\n for (const dir of binFixtureDirs) {\n rmSync(dir, { force: true, recursive: true })\n }\n binFixtureDirs.length = 0\n })\n\n it('resolves the next bin from an isolated project using the object-form bin field', () => {\n const root = makeProjectWithPackage({\n binField: { next: './dist/bin/next' },\n binRelPath: 'dist/bin/next',\n packageName: 'next',\n })\n\n const binPath = resolveNextBin(root)\n\n expect(binPath).toBe(path.join(root, 'node_modules', 'next', 'dist', 'bin', 'next'))\n expect(existsSync(binPath)).toBe(true)\n })\n\n it('resolves the vite bin from an isolated project using the object-form bin field', () => {\n const root = makeProjectWithPackage({\n binField: { vite: 'bin/vite.js' },\n binRelPath: 'bin/vite.js',\n packageName: 'vite',\n })\n\n const binPath = resolveViteBin(root)\n\n expect(binPath).toBe(path.join(root, 'node_modules', 'vite', 'bin', 'vite.js'))\n expect(existsSync(binPath)).toBe(true)\n })\n\n it('resolves a string-form bin field', () => {\n const root = makeProjectWithPackage({\n binField: './cli.js',\n binRelPath: 'cli.js',\n packageName: 'vite',\n })\n\n const binPath = resolveViteBin(root)\n\n expect(binPath).toBe(path.join(root, 'node_modules', 'vite', 'cli.js'))\n expect(existsSync(binPath)).toBe(true)\n })\n\n it('throws a clear error when the package declares no bin field', () => {\n const root = makeProjectWithPackage({ binField: undefined, packageName: 'vite' })\n\n expect(() => resolveViteBin(root)).toThrow(/binary path/i)\n })\n})\n\ndescribe('build', () => {\n let exitMock: ReturnType<typeof vi.spyOn>\n let originalArgv: string[]\n let originalFrameworkEnv: string | undefined\n let cwdSpy: ReturnType<typeof vi.spyOn> | undefined\n const buildTempDirs: string[] = []\n\n beforeEach(() => {\n spawnMock.mockClear()\n generateImportMapMock.mockClear()\n generateTypesMock.mockClear()\n originalArgv = process.argv\n process.argv = ['node', 'payload', 'build']\n exitMock = vi.spyOn(process, 'exit').mockImplementation((() => undefined) as never)\n originalFrameworkEnv = process.env.PAYLOAD_FRAMEWORK\n // Force next for the legacy tests so they don't depend on the repo-root\n // package.json's ambient `next` dependency for auto-detection.\n process.env.PAYLOAD_FRAMEWORK = 'next'\n })\n\n afterEach(() => {\n process.argv = originalArgv\n exitMock.mockRestore()\n if (originalFrameworkEnv === undefined) {\n delete process.env.PAYLOAD_FRAMEWORK\n } else {\n process.env.PAYLOAD_FRAMEWORK = originalFrameworkEnv\n }\n if (cwdSpy) {\n cwdSpy.mockRestore()\n cwdSpy = undefined\n }\n for (const dir of buildTempDirs) {\n rmSync(dir, { force: true, recursive: true })\n }\n buildTempDirs.length = 0\n })\n\n it('generates the import map before spawning, and generates types by default', async () => {\n await build({ config: fakeConfig })\n\n expect(generateImportMapMock).toHaveBeenCalledTimes(1)\n expect(generateTypesMock).toHaveBeenCalledTimes(1)\n expect(spawnMock).toHaveBeenCalledTimes(1)\n expect(generateImportMapMock.mock.invocationCallOrder[0]).toBeLessThan(\n spawnMock.mock.invocationCallOrder[0],\n )\n })\n\n it('skips type generation with --no-types', async () => {\n process.argv = ['node', 'payload', 'build', '--no-types']\n\n await build({ config: fakeConfig })\n\n expect(generateImportMapMock).toHaveBeenCalledTimes(1)\n expect(generateTypesMock).not.toHaveBeenCalled()\n expect(spawnMock).toHaveBeenCalledTimes(1)\n })\n\n it('exits 1 and does not spawn when generation fails', async () => {\n generateImportMapMock.mockRejectedValueOnce(new Error('boom'))\n\n await build({ config: fakeConfig })\n\n expect(exitMock).toHaveBeenCalledWith(1)\n expect(spawnMock).not.toHaveBeenCalled()\n })\n\n it('spawns next build with forwarded args and propagates the child exit code', async () => {\n process.argv = ['node', 'payload', 'build', '--turbopack']\n let exitCb: ((code: number | null) => void) | undefined\n spawnMock.mockReturnValueOnce({\n on(event: string, cb: (code: number | null) => void) {\n if (event === 'exit') {\n exitCb = cb\n }\n return this\n },\n })\n\n const buildPromise = build({ config: fakeConfig })\n\n // generation awaits before spawn; let those microtasks settle\n await vi.waitFor(() => expect(spawnMock).toHaveBeenCalledTimes(1))\n const [execPath, spawnArgs, opts] = spawnMock.mock.calls[0]\n expect(execPath).toBe(process.execPath)\n expect(spawnArgs[1]).toBe('build')\n expect(spawnArgs).toContain('--turbopack')\n expect(opts).toEqual({ stdio: 'inherit' })\n\n // Simulate the child exiting with a non-zero code\n exitCb?.(2)\n await buildPromise\n expect(exitMock).toHaveBeenCalledWith(2)\n })\n\n it('does not exit until the spawned child exits, then propagates its code', async () => {\n let exitCb: ((code: number | null) => void) | undefined\n spawnMock.mockReturnValueOnce({\n on(event: string, cb: (code: number | null) => void) {\n if (event === 'exit') {\n exitCb = cb\n }\n return this\n },\n })\n\n let resolved = false\n const buildPromise = build({ config: fakeConfig }).then(() => {\n resolved = true\n })\n\n // Wait for generation to settle and the child to be spawned. build() must\n // still be pending because the child has not exited yet.\n await vi.waitFor(() => expect(exitCb).toBeDefined())\n // Flush all pending microtasks; the OLD (buggy) build() resolved here\n // without awaiting the child, so this assertion catches the race.\n await new Promise((r) => setTimeout(r, 0))\n expect(resolved).toBe(false)\n expect(exitMock).not.toHaveBeenCalled()\n\n // Child exits non-zero -> build() must exit with that exact code\n exitCb?.(3)\n await buildPromise\n expect(resolved).toBe(true)\n expect(exitMock).toHaveBeenCalledWith(3)\n })\n\n it('spawns vite build for a detected tanstack project', async () => {\n delete process.env.PAYLOAD_FRAMEWORK\n process.argv = ['node', 'payload', 'build', '--mode', 'staging']\n const tanstackDir = mkdtempSync(path.join(os.tmpdir(), 'payload-build-ts-'))\n buildTempDirs.push(tanstackDir)\n writeFileSync(\n path.join(tanstackDir, 'package.json'),\n JSON.stringify({ dependencies: { '@tanstack/react-start': '1.168.26' } }),\n )\n cwdSpy = vi.spyOn(process, 'cwd').mockReturnValue(tanstackDir)\n\n await build({ config: fakeConfig })\n\n expect(spawnMock).toHaveBeenCalledTimes(1)\n const [, spawnArgs] = spawnMock.mock.calls[0]\n expect(spawnArgs[0]).toMatch(/vite[\\\\/].*bin[\\\\/]vite\\.js$/)\n expect(spawnArgs.slice(1)).toEqual(['build', '--mode', 'staging'])\n })\n\n it('exits 1 and does not spawn when the framework cannot be detected', async () => {\n delete process.env.PAYLOAD_FRAMEWORK\n const emptyDir = mkdtempSync(path.join(os.tmpdir(), 'payload-build-empty-'))\n buildTempDirs.push(emptyDir)\n writeFileSync(path.join(emptyDir, 'package.json'), JSON.stringify({}))\n cwdSpy = vi.spyOn(process, 'cwd').mockReturnValue(emptyDir)\n\n await build({ config: fakeConfig })\n\n expect(exitMock).toHaveBeenCalledWith(1)\n expect(spawnMock).not.toHaveBeenCalled()\n })\n})\n\ndescribe('detectFramework', () => {\n const createdDirs: string[] = []\n let originalFrameworkEnv: string | undefined\n\n const makeProject = (files: { contents?: string; path: string }[]): string => {\n const dir = mkdtempSync(path.join(os.tmpdir(), 'payload-build-'))\n createdDirs.push(dir)\n for (const file of files) {\n const full = path.join(dir, file.path)\n mkdirSync(path.dirname(full), { recursive: true })\n writeFileSync(full, file.contents ?? '')\n }\n return dir\n }\n\n const pkg = (deps: Record<string, string>): string => JSON.stringify({ dependencies: deps })\n\n beforeEach(() => {\n originalFrameworkEnv = process.env.PAYLOAD_FRAMEWORK\n delete process.env.PAYLOAD_FRAMEWORK\n })\n\n afterEach(() => {\n if (originalFrameworkEnv === undefined) {\n delete process.env.PAYLOAD_FRAMEWORK\n } else {\n process.env.PAYLOAD_FRAMEWORK = originalFrameworkEnv\n }\n for (const dir of createdDirs) {\n rmSync(dir, { force: true, recursive: true })\n }\n createdDirs.length = 0\n })\n\n it('honors PAYLOAD_FRAMEWORK=tanstack-start over auto-detection', () => {\n process.env.PAYLOAD_FRAMEWORK = 'tanstack-start'\n const dir = makeProject([{ contents: pkg({ next: '15.0.0' }), path: 'package.json' }])\n expect(detectFramework(dir)).toBe('tanstack-start')\n })\n\n it('honors PAYLOAD_FRAMEWORK=next over auto-detection', () => {\n process.env.PAYLOAD_FRAMEWORK = 'next'\n const dir = makeProject([\n { contents: pkg({ '@tanstack/react-start': '1.168.26' }), path: 'package.json' },\n ])\n expect(detectFramework(dir)).toBe('next')\n })\n\n it('throws when PAYLOAD_FRAMEWORK is an unsupported value', () => {\n process.env.PAYLOAD_FRAMEWORK = 'svelte'\n const dir = makeProject([{ contents: pkg({ next: '15.0.0' }), path: 'package.json' }])\n expect(() => detectFramework(dir)).toThrow(/PAYLOAD_FRAMEWORK/)\n })\n\n it('detects next from the next dependency', () => {\n const dir = makeProject([{ contents: pkg({ next: '15.0.0' }), path: 'package.json' }])\n expect(detectFramework(dir)).toBe('next')\n })\n\n it('detects tanstack-start from the @tanstack/react-start dependency', () => {\n const dir = makeProject([\n { contents: pkg({ '@tanstack/react-start': '1.168.26' }), path: 'package.json' },\n ])\n expect(detectFramework(dir)).toBe('tanstack-start')\n })\n\n it('falls back to next.config when deps are inconclusive', () => {\n const dir = makeProject([\n { contents: pkg({}), path: 'package.json' },\n { path: 'next.config.ts' },\n ])\n expect(detectFramework(dir)).toBe('next')\n })\n\n it('falls back to vite.config when deps are inconclusive', () => {\n const dir = makeProject([\n { contents: pkg({}), path: 'package.json' },\n { path: 'vite.config.ts' },\n ])\n expect(detectFramework(dir)).toBe('tanstack-start')\n })\n\n it('falls back to the (payload) folder convention', () => {\n const dir = makeProject([{ path: 'app/(payload)/admin/page.tsx' }])\n expect(detectFramework(dir)).toBe('next')\n })\n\n it('falls back to the _payload folder convention', () => {\n const dir = makeProject([{ path: 'app/_payload/route.tsx' }])\n expect(detectFramework(dir)).toBe('tanstack-start')\n })\n\n it('resolves ambiguous deps using the config-file layer', () => {\n const dir = makeProject([\n {\n contents: pkg({ '@tanstack/react-start': '1.168.26', next: '15.0.0' }),\n path: 'package.json',\n },\n { path: 'next.config.ts' },\n ])\n expect(detectFramework(dir)).toBe('next')\n })\n\n it('resolves ambiguous deps to tanstack-start via the config-file layer', () => {\n const dir = makeProject([\n {\n contents: pkg({ '@tanstack/react-start': '1.168.26', next: '15.0.0' }),\n path: 'package.json',\n },\n { path: 'vite.config.ts' },\n ])\n expect(detectFramework(dir)).toBe('tanstack-start')\n })\n\n it('resolves ambiguous deps and configs via the folder-convention layer', () => {\n const dir = makeProject([\n {\n contents: pkg({ '@tanstack/react-start': '1.168.26', next: '15.0.0' }),\n path: 'package.json',\n },\n { path: 'app/_payload/route.tsx' },\n ])\n expect(detectFramework(dir)).toBe('tanstack-start')\n })\n\n it('throws a no-framework error when nothing is detected', () => {\n const dir = makeProject([{ contents: pkg({}), path: 'package.json' }])\n expect(() => detectFramework(dir)).toThrow(/Could not determine your framework/)\n })\n\n it('throws a conflict error when signals stay ambiguous', () => {\n const dir = makeProject([\n {\n contents: pkg({ '@tanstack/react-start': '1.168.26', next: '15.0.0' }),\n path: 'package.json',\n },\n { path: 'next.config.ts' },\n { path: 'vite.config.ts' },\n ])\n expect(() => detectFramework(dir)).toThrow(/conflicting signals/)\n })\n})\n"],"names":["existsSync","mkdirSync","mkdtempSync","realpathSync","rmSync","writeFileSync","os","path","describe","expect","it","vi","beforeEach","afterEach","spawnMock","fn","on","event","cb","generateImportMapMock","generateTypesMock","mock","spawn","generateImportMap","generateTypes","build","detectFramework","getForwardedArgs","resolveBuildCommand","resolveNextBin","resolveViteBin","fakeConfig","toEqual","binPath","process","cwd","toMatch","toBe","toThrow","resetModules","doMock","importOriginal","actual","createRequire","resolve","Error","resolveViteBinWithoutVite","doUnmock","args","bin","forwardedArgs","framework","binFixtureDirs","makeProjectWithPackage","binField","binRelPath","packageName","root","join","tmpdir","push","JSON","stringify","name","pkgDir","recursive","version","binFull","dirname","dir","force","length","next","vite","undefined","exitMock","originalArgv","originalFrameworkEnv","cwdSpy","buildTempDirs","mockClear","argv","spyOn","mockImplementation","env","PAYLOAD_FRAMEWORK","mockRestore","config","toHaveBeenCalledTimes","invocationCallOrder","toBeLessThan","not","toHaveBeenCalled","mockRejectedValueOnce","toHaveBeenCalledWith","exitCb","mockReturnValueOnce","buildPromise","waitFor","execPath","spawnArgs","opts","calls","toContain","stdio","resolved","then","toBeDefined","Promise","r","setTimeout","tanstackDir","dependencies","mockReturnValue","slice","emptyDir","createdDirs","makeProject","files","file","full","contents","pkg","deps"],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Folder-name markers that distinguish the supported framework conventions.
|
|
3
|
+
* Shared between import-map resolution and `payload build` framework detection so
|
|
4
|
+
* the two cannot drift.
|
|
5
|
+
*/
|
|
6
|
+
export declare const NEXT_PAYLOAD_ROUTE_GROUP = "(payload)";
|
|
7
|
+
export declare const TANSTACK_PAYLOAD_DIR = "_payload";
|
|
8
|
+
//# sourceMappingURL=frameworkConventions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"frameworkConventions.d.ts","sourceRoot":"","sources":["../../src/bin/frameworkConventions.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,cAAc,CAAA;AACnD,eAAO,MAAM,oBAAoB,aAAa,CAAA"}
|