uploadcare / file-uploader

Stack-agnostic library for uploading, processing, and editing images on-the-fly
https://uploadcare.com/docs/file-uploader/
MIT License
61 stars 12 forks source link

feat(entry-file): added file upload source #736

Closed egordidenko closed 2 weeks ago

egordidenko commented 2 weeks ago

Description

Checklist

Summary by CodeRabbit

coderabbitai[bot] commented 2 weeks ago

Walkthrough

The changes introduce a new property, source, across multiple components, enhancing the output and documentation with additional context about the origin of uploads. New methods and typedefs improve functionality and type-checking. The UploaderBlock class includes deprecation notices for certain enums, and the handling of source types has been updated throughout the codebase. A new conditional branch is added to handle object types in the build-ssr-stubs.js file.

Changes

File Path Change Summary
abstract/UploaderPublicApi.js Added source property to the output object, derived from uploadEntryData?.source.
abstract/uploadEntrySchema.js Updated documentation to include source as a String property in the upload entry schema.
blocks/FileItem/FileItem.js Introduced source property in the FileItem class, populated from entry.getValue('source').
abstract/UploaderBlock.js Added getList method to return sourceTypes, added deprecation notices for extSrcList and sourceTypes, and defined SourceTypes typedef.
blocks/DropArea/DropArea.js Updated isEnabled logic to check for UploadSource.LOCAL instead of UploaderBlock.sourceTypes.LOCAL.
blocks/EditorFilerobotImage/EditorFilerobotImage.js Introduced new class for managing image editing activities with lifecycle methods.
blocks/SourceBtn/SourceBtn.js Replaced UploaderBlock.sourceTypes with UploadSource for defining source types.
blocks/UrlSource/UrlSource.js Updated addFileFromUrl method to use UploadSource.URL instead of UploadSource.URL_TAB.
blocks/utils/UploadSource.js Added ExternalUploadSource and new properties URL and DRAW to UploadSource, and defined SourceTypes typedef.
index.js Exported new entities UploadSource and ExternalUploadSource from blocks/utils/UploadSource.js.
build-ssr-stubs.js Added handling for object types in stubbedExports, converting them to JSON strings.

Sequence Diagram(s)

sequenceDiagram
    participant User
    participant UploaderPublicApi
    participant FileItem

    User->>UploaderPublicApi: Initiate upload
    UploaderPublicApi->>FileItem: Create FileItem with entry
    FileItem->>entry: Retrieve source value
    FileItem-->>UploaderPublicApi: Return FileItem with source
    UploaderPublicApi-->>User: Upload result with source

Poem

πŸ‡ In the meadow, a change did bloom,
A new source to dispel the gloom.
With every upload, a tale to tell,
Of where it came from, all is well!
Hopping with joy, we celebrate,
Data enriched, oh, isn’t it great? πŸŽ‰


Tips ### Chat There are 3 ways to chat with [CodeRabbit](https://coderabbit.ai): - Review comments: Directly reply to a review comment made by CodeRabbit. Example: - `I pushed a fix in commit .` - `Generate unit testing code for this file.` - `Open a follow-up GitHub issue for this discussion.` - Files and specific lines of code (under the "Files changed" tab): Tag `@coderabbitai` in a new review comment at the desired location with your query. Examples: - `@coderabbitai generate unit testing code for this file.` - `@coderabbitai modularize this function.` - PR comments: Tag `@coderabbitai` in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples: - `@coderabbitai generate interesting stats about this repository and render them as a table.` - `@coderabbitai show all the console.log statements in this repository.` - `@coderabbitai read src/utils.ts and generate unit testing code.` - `@coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.` - `@coderabbitai help me debug CodeRabbit configuration file.` Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. ### CodeRabbit Commands (Invoked using PR comments) - `@coderabbitai pause` to pause the reviews on a PR. - `@coderabbitai resume` to resume the paused reviews. - `@coderabbitai review` to trigger an incremental review. This is useful when automatic reviews are disabled for the repository. - `@coderabbitai full review` to do a full review from scratch and review all the files again. - `@coderabbitai summary` to regenerate the summary of the PR. - `@coderabbitai resolve` resolve all the CodeRabbit review comments. - `@coderabbitai configuration` to show the current CodeRabbit configuration for the repository. - `@coderabbitai help` to get help. ### Other keywords and placeholders - Add `@coderabbitai ignore` anywhere in the PR description to prevent this PR from being reviewed. - Add `@coderabbitai summary` to generate the high-level summary at a specific location in the PR description. - Add `@coderabbitai` anywhere in the PR title to generate the title automatically. ### CodeRabbit Configuration File (`.coderabbit.yaml`) - You can programmatically configure CodeRabbit by adding a `.coderabbit.yaml` file to the root of your repository. - Please see the [configuration documentation](https://docs.coderabbit.ai/guides/configure-coderabbit) for more information. - If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: `# yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json` ### Documentation and Community - Visit our [Documentation](https://coderabbit.ai/docs) for detailed information on how to use CodeRabbit. - Join our [Discord Community](https://discord.com/invite/GsXnASn26c) to get help, request features, and share feedback. - Follow us on [X/Twitter](https://twitter.com/coderabbitai) for updates and announcements.
Early access features: disabled We are currently testing the following features in early access: - **Anthropic `claude-3-5-sonnet` for code reviews**: Anthropic claims that the new Claude model has stronger code understanding and code generation capabilities than their previous models. Note: Our default code review model was also updated late last week. Please compare the quality of the reviews between the two models by toggling the early access feature. Note: - You can enable or disable early access features from the CodeRabbit UI or by updating the CodeRabbit configuration file. - Please join our [Discord Community](https://discord.com/invite/GsXnASn26c) to provide feedback and report issues on the [discussion post](https://discordapp.com/channels/1134356397673414807/1279579842131787838).