feat: bundle assets with content (#2958)

* fix(media_folder_relative): use collection name in unpublished entry

* refactor: pass arguments as object to AssetProxy ctor

* feat: support media folders per collection

* feat: resolve media files path based on entry path

* fix: asset public path resolving

* refactor: introduce typescript for AssetProxy

* refactor: code cleanup

* refactor(asset-proxy): add tests,switch to typescript,extract arguments

* refactor: typescript for editorialWorkflow

* refactor: add typescript for media library actions

* refactor: fix type error on map set

* refactor: move locale selector into reducer

* refactor: add typescript for entries actions

* refactor: remove duplication between asset store and media lib

* feat: load assets from backend using API

* refactor(github): add typescript, cache media files

* fix: don't load media URL if already loaded

* feat: add media folder config to collection

* fix: load assets from API when not in UI state

* feat: load entry media files when opening media library

* fix: editorial workflow draft media files bug fixes

* test(unit): fix unit tests

* fix: editor control losing focus

* style: add eslint object-shorthand rule

* test(cypress): re-record mock data

* fix: fix non github backends, large media

* test: uncomment only in tests

* fix(backend-test): add missing displayURL property

* test(e2e): add media library tests

* test(e2e): enable visual testing

* test(e2e): add github backend media library tests

* test(e2e): add git-gateway large media tests

* chore: post rebase fixes

* test: fix tests

* test: fix tests

* test(cypress): fix tests

* docs: add media_folder docs

* test(e2e): add media library delete test

* test(e2e): try and fix image comparison on CI

* ci: reduce test machines from 9 to 8

* test: add reducers and selectors unit tests

* test(e2e): disable visual regression testing for now

* test: add getAsset unit tests

* refactor: use Asset class component instead of hooks

* build: don't inline source maps

* test: add more media path tests
This commit is contained in:
Erez Rokah
2019-12-18 18:16:02 +02:00
committed by Shawn Erquhart
parent 7e4d4c1cc4
commit 2b41d8a838
231 changed files with 37961 additions and 18373 deletions

View File

@ -10,10 +10,12 @@
"build-preview:lerna": "lerna run build-preview",
"build:demo": "run-s build build:demo:copy",
"build:demo:copy": "ncp packages/netlify-cms/dist dev-test/dist/",
"type-check": "tsc --noEmit",
"type-check:watch": "npm run type-check -- --watch",
"clean": "rimraf \"packages/*/dist\" dev-test/dist",
"clean:lerna": "lerna clean --yes",
"reset": "run-s clean clean:lerna",
"test": "run-s clean lint test:unit",
"test": "run-s clean lint type-check test:unit",
"test:ci": "run-s clean lint-quiet test:unit",
"test:all": "run-s test test:e2e",
"test:all:ci": "run-s test:ci test:e2e:ci",
@ -32,11 +34,11 @@
"mock:server:stop": "node -e 'require(\"./cypress/utils/mock-server\").stop()'",
"lint": "run-p -c --aggregate-output \"lint:*\"",
"lint-quiet": "run-p -c --aggregate-output \"lint:* --quiet\"",
"lint:css": "stylelint --ignore-path .gitignore \"{packages/**/*.{css,js},website/**/*.css}\"",
"lint:js": "eslint --color --ignore-path .gitignore \"{{packages,scripts,website}/**/,}*.js\"",
"lint:format": "prettier \"{{packages,scripts,website}/**/,}*.{js,css}\" --list-different",
"lint:css": "stylelint --ignore-path .gitignore \"{packages/**/*.{css,js,jsx,ts,tsx},website/**/*.css}\"",
"lint:js": "eslint --color --ignore-path .gitignore \"{{packages,scripts,website}/**/,}*.{js,jsx,ts,tsx}\"",
"lint:format": "prettier \"{{packages,scripts,website}/**/,}*.{js,jsx,ts,tsx,css}\" --list-different",
"format": "run-s \"lint:js --fix --quiet\" \"format:prettier --write\"",
"format:prettier": "prettier \"{{packages,scripts,website}/**/,}*.{js,css}\"",
"format:prettier": "prettier \"{{packages,scripts,website}/**/,}*.{js,jsx,ts,tsx,css}\"",
"publish": "run-s publish:before-manual-version publish:after-manual-version",
"publish:ci": "run-s publish:prepare \"publish:version --yes\" build publish:push-git \"publish:from-git --yes\"",
"publish:before-manual-version": "run-s publish:prepare publish:version",
@ -68,24 +70,33 @@
"last 2 ChromeAndroid versions"
],
"devDependencies": {
"@babel/cli": "^7.2.3",
"@babel/core": "^7.3.4",
"@babel/plugin-proposal-class-properties": "^7.3.4",
"@babel/cli": "^7.7.4",
"@babel/core": "^7.7.4",
"@babel/plugin-proposal-class-properties": "^7.7.4",
"@babel/plugin-proposal-export-default-from": "^7.2.0",
"@babel/plugin-proposal-nullish-coalescing-operator": "^7.4.4",
"@babel/plugin-proposal-object-rest-spread": "^7.3.4",
"@babel/plugin-proposal-optional-chaining": "^7.2.0",
"@babel/plugin-proposal-numeric-separator": "^7.7.4",
"@babel/plugin-proposal-object-rest-spread": "^7.7.4",
"@babel/plugin-proposal-optional-chaining": "^7.7.4",
"@babel/plugin-syntax-dynamic-import": "^7.2.0",
"@babel/preset-env": "^7.3.4",
"@babel/preset-env": "^7.7.4",
"@babel/preset-react": "^7.0.0",
"@babel/preset-typescript": "^7.7.4",
"@commitlint/cli": "^8.3.3",
"@commitlint/config-conventional": "^8.2.0",
"@octokit/rest": "^16.28.7",
"@testing-library/jest-dom": "^4.2.3",
"@testing-library/react": "^9.3.2",
"@types/common-tags": "^1.8.0",
"@types/jest": "^24.0.23",
"@types/js-base64": "^2.3.1",
"@types/lodash": "^4.14.149",
"@types/uuid": "^3.4.6",
"@typescript-eslint/eslint-plugin": "^2.9.0",
"@typescript-eslint/parser": "^2.9.0",
"all-contributors-cli": "^6.0.0",
"babel-core": "^7.0.0-bridge.0",
"babel-eslint": "^11.0.0-beta.0",
"babel-eslint": "^11.0.0-beta.2",
"babel-jest": "^24.5.0",
"babel-loader": "^8.0.5",
"babel-plugin-emotion": "^10.0.9",
@ -101,26 +112,30 @@
"copy-webpack-plugin": "^5.0.1",
"cross-env": "^6.0.0",
"css-loader": "^3.0.0",
"cypress": "^3.4.1",
"cypress-jest-adapter": "^0.0.3",
"cypress": "^3.8.0",
"cypress-file-upload": "^3.5.1",
"cypress-image-snapshot": "^3.1.1",
"cypress-jest-adapter": "^0.1.1",
"cypress-plugin-tab": "^1.0.0",
"dom-testing-library": "^4.0.0",
"dotenv": "^8.0.0",
"eslint": "^5.15.1",
"eslint": "^6.7.2",
"eslint-plugin-cypress": "^2.6.0",
"eslint-plugin-emotion": "^10.0.7",
"eslint-plugin-react": "^7.12.4",
"eslint-plugin-import": "^2.18.2",
"eslint-plugin-prettier": "^3.1.1",
"eslint-plugin-react": "^7.17.0",
"friendly-errors-webpack-plugin": "^1.7.0",
"fs-extra": "^8.1.0",
"http-server": "^0.12.0",
"husky": "^3.0.9",
"jest": "^24.5.0",
"jest": "^24.9.0",
"jest-cli": "^24.5.0",
"jest-dom": "^3.1.3",
"jest-emotion": "^10.0.9",
"js-yaml": "^3.13.1",
"mockserver-client": "^5.6.1",
"mockserver-node": "^5.6.1",
"mockserver-client": "^5.8.0",
"mockserver-node": "^5.8.0",
"ncp": "^2.0.0",
"nock": "^11.0.0",
"node-fetch": "^2.3.0",
@ -137,6 +152,7 @@
"stylelint-config-styled-components": "^0.1.1",
"svg-inline-loader": "^0.8.0",
"to-string-loader": "^1.1.5",
"typescript": "^3.7.2",
"unist-util-visit": "^1.4.0",
"webpack": "^4.29.6",
"webpack-cli": "^3.2.3",
@ -155,7 +171,7 @@
"dependencies": {
"@emotion/babel-preset-css-prop": "^10.0.9",
"emotion": "^10.0.9",
"eslint-config-prettier": "^6.5.0",
"eslint-config-prettier": "^6.7.0",
"eslint-plugin-babel": "^5.3.0",
"lerna": "^3.15.0"
},