From 2e07865c390099857e8b344fe4d7b05614827019 Mon Sep 17 00:00:00 2001 From: Stefanos Togkoulidis Date: Thu, 26 Jul 2018 15:07:39 +0300 Subject: [PATCH] Update to latest GB master * using the @wordpress/blocks packages now, and directly from src * For some reason, Flow doesn't like pointing to the root of the blocks package (while it's not complaining for the same reason for the `element` package). Having the flow config pointing inside the `src` dir of the package now. * Need to expose `window.Node` for a couple of its constants. Using jsdom's definitions for that. * Code block needs a css class defined (wp-block-code) in the innerHTML for validation to succeed --- .babelrc | 1 - .flowconfig | 1 + gutenberg | 2 +- jest.config.js | 4 +-- package.json | 2 ++ rn-cli.config.js | 2 +- src/block-management/block-holder.js | 2 +- src/block-management/block-manager.js | 2 +- src/globals.js | 5 ++++ src/parser/block-parser-code.test.js | 4 +-- src/parser/block-parser-more.test.js | 2 +- src/store/index.js | 4 +-- yarn.lock | 39 ++++++++++++++++++++++++--- 13 files changed, 55 insertions(+), 15 deletions(-) diff --git a/.babelrc b/.babelrc index ec32fd7691..5ac86c6325 100644 --- a/.babelrc +++ b/.babelrc @@ -10,7 +10,6 @@ "cwd": "babelrc", "alias": { "react-native-aztec": "./react-native-aztec", - "@wordpress/blocks": "./blocks", "@wordpress/editor": "./editor", "@gutenberg": "./gutenberg" }, diff --git a/.flowconfig b/.flowconfig index f0033200c8..4ebb3ee09d 100644 --- a/.flowconfig +++ b/.flowconfig @@ -85,6 +85,7 @@ munge_underscores=true module.name_mapper='^[./a-zA-Z0-9$_-]+\.\(bmp\|gif\|jpg\|jpeg\|png\|psd\|svg\|webp\|m4v\|mov\|mp4\|mpeg\|mpg\|webm\|aac\|aiff\|caf\|m4a\|mp3\|wav\|html\|pdf\)$' -> 'RelativeImageStub' module.name_mapper='@gutenberg' -> '/gutenberg' +module.name_mapper='@wordpress/blocks' -> '/gutenberg/packages/blocks/src' module.name_mapper='@wordpress/data' -> '/gutenberg/packages/data' module.name_mapper='@wordpress/element' -> '/gutenberg/packages/element' module.name_mapper='@wordpress/deprecated' -> '/gutenberg/packages/deprecated' diff --git a/gutenberg b/gutenberg index 6042f35091..ac89b86a15 160000 --- a/gutenberg +++ b/gutenberg @@ -1 +1 @@ -Subproject commit 6042f35091e38e6525c946f307c781f19b47480d +Subproject commit ac89b86a15bde90be52f2be2ce42d9aba8efbc9d diff --git a/jest.config.js b/jest.config.js index f8cd1e7468..b949a59d7c 100644 --- a/jest.config.js +++ b/jest.config.js @@ -30,8 +30,8 @@ module.exports = { 'node', ], moduleNameMapper: { - '@wordpress\\/(blocks|editor)$': '/gutenberg/$1', - '@wordpress\\/(data|element|deprecated)$': '/gutenberg/packages/$1/src/index', + '@wordpress\\/(editor)$': '/gutenberg/$1', + '@wordpress\\/(blocks|data|element|deprecated)$': '/gutenberg/packages/$1/src/index', '@gutenberg': '/gutenberg', // Mock the CSS modules. See https://facebook.github.io/jest/docs/en/webpack.html#handling-static-assets diff --git a/package.json b/package.json index a84d6a4f0f..54d527fffc 100644 --- a/package.json +++ b/package.json @@ -8,6 +8,7 @@ }, "devDependencies": { "@wordpress/babel-preset-default": "^1.1.2", + "@wordpress/block-serialization-spec-parser": "^1.0.0", "babel-eslint": "^8.2.2", "babel-plugin-react-native-classname-to-style": "^1.2.1", "babel-plugin-react-native-platform-specific-extensions": "^1.0.1", @@ -61,6 +62,7 @@ }, "dependencies": { "@wordpress/autop": "^1.0.6", + "@wordpress/compose": "^1.0.1", "@wordpress/deprecated": "^1.0.0-alpha.2", "@wordpress/hooks": "^1.2.1", "@wordpress/i18n": "^1.1.0", diff --git a/rn-cli.config.js b/rn-cli.config.js index f5a981f5d7..ee2c401027 100644 --- a/rn-cli.config.js +++ b/rn-cli.config.js @@ -13,7 +13,7 @@ module.exports = { // On the other hand, GB packages that are loaded from the source tree directly // are automagically resolved by Metro so, there is no list of them anywhere. return blacklist( [ - /gutenberg\/packages\/(autop|deprecated|hooks|i18n|is-shallow-equal)\/.*/, + /gutenberg\/packages\/(autop|compose|deprecated|hooks|i18n|is-shallow-equal)\/.*/, ] ); }, getTransformModulePath() { diff --git a/src/block-management/block-holder.js b/src/block-management/block-holder.js index 0685567f07..56dd9a95c2 100644 --- a/src/block-management/block-holder.js +++ b/src/block-management/block-holder.js @@ -13,7 +13,7 @@ import type { BlockType } from '../store/'; import styles from './block-holder.scss'; // Gutenberg imports -import { getBlockType } from '@gutenberg/blocks/api'; +import { getBlockType } from '@wordpress/blocks'; type PropsType = BlockType & { onChange: ( uid: string, attributes: mixed ) => void, diff --git a/src/block-management/block-manager.js b/src/block-management/block-manager.js index 607e6df442..478bb7b787 100644 --- a/src/block-management/block-manager.js +++ b/src/block-management/block-manager.js @@ -14,7 +14,7 @@ import type { BlockType } from '../store/'; import styles from './block-manager.scss'; // Gutenberg imports -import { getBlockType, serialize } from '@gutenberg/blocks/api'; +import { getBlockType, serialize } from '@wordpress/blocks'; export type BlockListType = { onChange: ( uid: string, attributes: mixed ) => void, diff --git a/src/globals.js b/src/globals.js index 991ad555a2..da68f5461a 100644 --- a/src/globals.js +++ b/src/globals.js @@ -2,6 +2,7 @@ import { createElement } from '@wordpress/element'; import jsdom from 'jsdom-jscore'; +import jsdomLevel1Core from 'jsdom-jscore/lib/jsdom/level1/core'; global.wp = { element: { @@ -18,3 +19,7 @@ doc.implementation.createHTMLDocument = function( html ) { // `hpq` depends on `document` be available globally global.document = doc; + +if ( ! global.window.Node ) { + global.window.Node = jsdomLevel1Core.dom.level1.core.Node; +} diff --git a/src/parser/block-parser-code.test.js b/src/parser/block-parser-code.test.js index e8e7220ed9..2074f3d7cd 100644 --- a/src/parser/block-parser-code.test.js +++ b/src/parser/block-parser-code.test.js @@ -3,7 +3,7 @@ import '../globals'; import { registerCoreBlocks } from '@gutenberg/core-blocks'; -import { parse } from '@gutenberg/blocks'; +import { parse } from '@wordpress/blocks'; registerCoreBlocks(); @@ -14,7 +14,7 @@ describe( 'Parser', () => { else: return "Hello Pony"`; - const originalCodeBlockHtml = `
${ codeContent }
`; + const originalCodeBlockHtml = `
${ codeContent }
`; const gbCodeBlockHtml = ` diff --git a/src/parser/block-parser-more.test.js b/src/parser/block-parser-more.test.js index 05fcc85d2f..c54b78416d 100644 --- a/src/parser/block-parser-more.test.js +++ b/src/parser/block-parser-more.test.js @@ -3,7 +3,7 @@ import '../globals'; import { registerCoreBlocks } from '@gutenberg/core-blocks'; -import { parse } from '@gutenberg/blocks'; +import { parse } from '@wordpress/blocks'; registerCoreBlocks(); diff --git a/src/store/index.js b/src/store/index.js index 43db8a312d..aaac5f760e 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -5,7 +5,7 @@ // Gutenberg imports import { registerCoreBlocks } from '@gutenberg/core-blocks'; -import { parse } from '@gutenberg/blocks'; +import { parse } from '@wordpress/blocks'; import { createStore } from 'redux'; import { reducer } from './reducers'; @@ -28,7 +28,7 @@ registerCoreBlocks(); const initialCodeBlockHtml = ` -
if name == "World":
+
if name == "World":
     return "Hello World"
 else:
     return "Hello Pony"
diff --git a/yarn.lock b/yarn.lock index 8ff53ea919..599534812b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -536,16 +536,40 @@ babel-plugin-transform-runtime "^6.23.0" babel-preset-env "^1.6.1" +"@wordpress/block-serialization-spec-parser@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@wordpress/block-serialization-spec-parser/-/block-serialization-spec-parser-1.0.0.tgz#a51a9276421629d4be398dfcc9bab52e303c3403" + "@wordpress/browserslist-config@^2.1.4": version "2.2.0" resolved "https://registry.yarnpkg.com/@wordpress/browserslist-config/-/browserslist-config-2.2.0.tgz#7fcc77db40d4d846dbb158e485a6badc143c76d2" -"@wordpress/deprecated@^1.0.0-alpha.2": +"@wordpress/compose@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@wordpress/compose/-/compose-1.0.1.tgz#fdfb24b27390ca97db432108c47188b4fc96dea8" + dependencies: + "@babel/runtime" "^7.0.0-beta.52" + "@wordpress/element" "^1.0.1" + "@wordpress/is-shallow-equal" "^1.1.1" + lodash "^4.17.10" + +"@wordpress/deprecated@^1.0.0-alpha.2", "@wordpress/deprecated@^1.0.1": version "1.0.1" resolved "https://registry.yarnpkg.com/@wordpress/deprecated/-/deprecated-1.0.1.tgz#8769d791b228022caef156dbbff0f21eb2b21f3e" dependencies: "@babel/runtime" "^7.0.0-beta.52" +"@wordpress/element@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@wordpress/element/-/element-1.0.1.tgz#d9e31e437793655556816e6328bc67bfbecc4a27" + dependencies: + "@babel/runtime" "^7.0.0-beta.52" + "@wordpress/deprecated" "^1.0.1" + "@wordpress/is-shallow-equal" "^1.1.1" + lodash "^4.17.10" + react "^16.4.1" + react-dom "^16.4.1" + "@wordpress/hooks@^1.2.1": version "1.3.1" resolved "https://registry.yarnpkg.com/@wordpress/hooks/-/hooks-1.3.1.tgz#1ee50c777938060a96b202e22ca2e902eacce335" @@ -562,7 +586,7 @@ lodash "^4.17.10" memize "^1.0.5" -"@wordpress/is-shallow-equal@^1.0.1": +"@wordpress/is-shallow-equal@^1.0.1", "@wordpress/is-shallow-equal@^1.1.1": version "1.1.1" resolved "https://registry.yarnpkg.com/@wordpress/is-shallow-equal/-/is-shallow-equal-1.1.1.tgz#377db18206afe2a6e787862106c3ff5c27d65e36" dependencies: @@ -6208,7 +6232,7 @@ react-devtools-core@3.1.0: shell-quote "^1.6.1" ws "^2.0.3" -react-dom@^16.2.0: +react-dom@^16.2.0, react-dom@^16.4.1: version "16.4.1" resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.4.1.tgz#7f8b0223b3a5fbe205116c56deb85de32685dad6" dependencies: @@ -6369,6 +6393,15 @@ react@^0.14.0: envify "^3.0.0" fbjs "^0.6.1" +react@^16.4.1: + version "16.4.1" + resolved "https://registry.yarnpkg.com/react/-/react-16.4.1.tgz#de51ba5764b5dbcd1f9079037b862bd26b82fe32" + dependencies: + fbjs "^0.8.16" + loose-envify "^1.1.0" + object-assign "^4.1.1" + prop-types "^15.6.0" + read-pkg-up@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02"