From f651ed7639181fb0a3db91706cb1c13950bfe654 Mon Sep 17 00:00:00 2001 From: Sam Tolmay Date: Mon, 22 Nov 2021 16:10:02 +0200 Subject: [PATCH] feat: Restructure plugin files. --- .pnp.cjs | 18 +-- .../api/src/routes/request/callRequest.js | 29 ++-- .../src/routes/request/callRequestResolver.js | 4 +- .../src/routes/request/checkConnectionRead.js | 4 +- .../routes/request/checkConnectionWrite.js | 4 +- ...tConnectionHandler.js => getConnection.js} | 10 +- ...equestHandler.js => getRequestResolver.js} | 10 +- .../api/src/routes/request/validateSchemas.js | 6 +- .../blocks-basic/src/blocks/Box/index.js | 26 ---- .../blocks-basic/src/blocks/List/index.js | 27 ---- .../blocks-basic/src/blocks/Span/index.js | 26 ---- packages/blocks/blocks-basic/src/index.js | 38 ----- .../blocks/blocks-basic/.babelrc | 0 .../blocks/blocks-basic/CHANGELOG.md | 0 .../blocks/blocks-basic/README.md | 0 .../blocks/blocks-basic/jest.config.cjs | 0 .../blocks/blocks-basic/package.json | 5 +- .../blocks/blocks-basic/src/blocks.js} | 22 +-- .../blocks-basic/src/blocks/Anchor/Anchor.js | 10 ++ .../src/blocks/Anchor/Anchor.test.js | 0 .../Anchor/__snapshots__/Anchor.test.js.snap | 0 .../src/blocks/Anchor/examples.yaml | 0 .../src/blocks/Anchor/schema.json | 0 .../blocks/blocks-basic/src/blocks/Box/Box.js | 5 + .../blocks-basic/src/blocks/Box/Box.test.js | 0 .../blocks/Box/__snapshots__/Box.test.js.snap | 0 .../blocks-basic/src/blocks/Box/examples.yaml | 0 .../blocks-basic/src/blocks/Box/schema.json | 0 .../src/blocks/DangerousHtml/DangerousHtml.js | 5 + .../DangerousHtml/DangerousHtml.test.js | 0 .../__snapshots__/DangerousHtml.test.js.snap | 0 .../src/blocks/DangerousHtml/examples.yaml | 0 .../src/blocks/DangerousHtml/index.js | 0 .../src/blocks/DangerousHtml/schema.json | 0 .../blocks-basic/src/blocks/Html/Html.js | 5 + .../blocks-basic/src/blocks/Html/Html.test.js | 0 .../Html/__snapshots__/Html.test.js.snap | 0 .../src/blocks/Html/examples.yaml | 0 .../blocks-basic/src/blocks/Html/schema.json | 0 .../blocks-basic/src/blocks/Icon/Icon.js | 5 + .../blocks-basic/src/blocks/Icon/Icon.test.js | 0 .../Icon/__snapshots__/Icon.test.js.snap | 0 .../src/blocks/Icon/examples.yaml | 0 .../blocks-basic/src/blocks/Icon/schema.json | 0 .../blocks/blocks-basic/src/blocks/Img/Img.js | 5 + .../blocks-basic/src/blocks/Img/Img.test.js | 0 .../blocks/Img/__snapshots__/Img.test.js.snap | 0 .../blocks-basic/src/blocks/Img/examples.yaml | 0 .../blocks-basic/src/blocks/Img/schema.json | 0 .../blocks-basic/src/blocks/List/List.js | 6 + .../blocks-basic/src/blocks/List/List.test.js | 0 .../List/__snapshots__/List.test.js.snap | 0 .../src/blocks/List/examples.yaml | 0 .../blocks-basic/src/blocks/List/schema.json | 0 .../blocks-basic/src/blocks/Span/Span.js | 5 + .../blocks-basic/src/blocks/Span/Span.test.js | 0 .../Span/__snapshots__/Span.test.js.snap | 0 .../src/blocks/Span/examples.yaml | 0 .../blocks-basic/src/blocks/Span/schema.json | 0 .../blocks/blocks-basic/src/styles.js} | 11 +- .../connection-axios-http/package.json | 3 +- .../connection-axios-http/src/connections.js} | 11 +- .../src/connections/AxiosHttp/AxiosHttp.js} | 13 +- ...tpConnection.test.js => AxiosHttp.test.js} | 5 +- .../AxiosHttp.js} | 12 +- .../AxiosHttp.test.js} | 23 ++- .../AxiosHttp/AxiosHttpConnection.js | 27 ---- .../AxiosHttp/AxiosHttpConnectionSchema.json | 122 --------------- .../AxiosHttp/AxiosHttpRequest/index.js | 28 ---- .../src/connections/AxiosHttp/schema.js | 144 ++++++++++++++++++ .../connection-axios-http/src/index.js | 7 - .../src/components/block/CategorySwitch.js | 5 +- packages/server/src/plugins/blocks.js | 58 ++----- packages/server/src/plugins/connections.js | 2 +- yarn.lock | 4 +- 75 files changed, 289 insertions(+), 461 deletions(-) rename packages/api/src/routes/request/{getConnectionHandler.js => getConnection.js} (79%) rename packages/api/src/routes/request/{getRequestHandler.js => getRequestResolver.js} (79%) delete mode 100644 packages/blocks/blocks-basic/src/blocks/Box/index.js delete mode 100644 packages/blocks/blocks-basic/src/blocks/List/index.js delete mode 100644 packages/blocks/blocks-basic/src/blocks/Span/index.js delete mode 100644 packages/blocks/blocks-basic/src/index.js rename packages/{ => plugins}/blocks/blocks-basic/.babelrc (100%) rename packages/{ => plugins}/blocks/blocks-basic/CHANGELOG.md (100%) rename packages/{ => plugins}/blocks/blocks-basic/README.md (100%) rename packages/{ => plugins}/blocks/blocks-basic/jest.config.cjs (100%) rename packages/{ => plugins}/blocks/blocks-basic/package.json (90%) rename packages/{blocks/blocks-basic/src/blocks/Anchor/index.js => plugins/blocks/blocks-basic/src/blocks.js} (57%) rename packages/{ => plugins}/blocks/blocks-basic/src/blocks/Anchor/Anchor.js (93%) rename packages/{ => plugins}/blocks/blocks-basic/src/blocks/Anchor/Anchor.test.js (100%) rename packages/{ => plugins}/blocks/blocks-basic/src/blocks/Anchor/__snapshots__/Anchor.test.js.snap (100%) rename packages/{ => plugins}/blocks/blocks-basic/src/blocks/Anchor/examples.yaml (100%) rename packages/{ => plugins}/blocks/blocks-basic/src/blocks/Anchor/schema.json (100%) rename packages/{ => plugins}/blocks/blocks-basic/src/blocks/Box/Box.js (93%) rename packages/{ => plugins}/blocks/blocks-basic/src/blocks/Box/Box.test.js (100%) rename packages/{ => plugins}/blocks/blocks-basic/src/blocks/Box/__snapshots__/Box.test.js.snap (100%) rename packages/{ => plugins}/blocks/blocks-basic/src/blocks/Box/examples.yaml (100%) rename packages/{ => plugins}/blocks/blocks-basic/src/blocks/Box/schema.json (100%) rename packages/{ => plugins}/blocks/blocks-basic/src/blocks/DangerousHtml/DangerousHtml.js (95%) rename packages/{ => plugins}/blocks/blocks-basic/src/blocks/DangerousHtml/DangerousHtml.test.js (100%) rename packages/{ => plugins}/blocks/blocks-basic/src/blocks/DangerousHtml/__snapshots__/DangerousHtml.test.js.snap (100%) rename packages/{ => plugins}/blocks/blocks-basic/src/blocks/DangerousHtml/examples.yaml (100%) rename packages/{ => plugins}/blocks/blocks-basic/src/blocks/DangerousHtml/index.js (100%) rename packages/{ => plugins}/blocks/blocks-basic/src/blocks/DangerousHtml/schema.json (100%) rename packages/{ => plugins}/blocks/blocks-basic/src/blocks/Html/Html.js (91%) rename packages/{ => plugins}/blocks/blocks-basic/src/blocks/Html/Html.test.js (100%) rename packages/{ => plugins}/blocks/blocks-basic/src/blocks/Html/__snapshots__/Html.test.js.snap (100%) rename packages/{ => plugins}/blocks/blocks-basic/src/blocks/Html/examples.yaml (100%) rename packages/{ => plugins}/blocks/blocks-basic/src/blocks/Html/schema.json (100%) rename packages/{ => plugins}/blocks/blocks-basic/src/blocks/Icon/Icon.js (90%) rename packages/{ => plugins}/blocks/blocks-basic/src/blocks/Icon/Icon.test.js (100%) rename packages/{ => plugins}/blocks/blocks-basic/src/blocks/Icon/__snapshots__/Icon.test.js.snap (100%) rename packages/{ => plugins}/blocks/blocks-basic/src/blocks/Icon/examples.yaml (100%) rename packages/{ => plugins}/blocks/blocks-basic/src/blocks/Icon/schema.json (100%) rename packages/{ => plugins}/blocks/blocks-basic/src/blocks/Img/Img.js (93%) rename packages/{ => plugins}/blocks/blocks-basic/src/blocks/Img/Img.test.js (100%) rename packages/{ => plugins}/blocks/blocks-basic/src/blocks/Img/__snapshots__/Img.test.js.snap (100%) rename packages/{ => plugins}/blocks/blocks-basic/src/blocks/Img/examples.yaml (100%) rename packages/{ => plugins}/blocks/blocks-basic/src/blocks/Img/schema.json (100%) rename packages/{ => plugins}/blocks/blocks-basic/src/blocks/List/List.js (94%) rename packages/{ => plugins}/blocks/blocks-basic/src/blocks/List/List.test.js (100%) rename packages/{ => plugins}/blocks/blocks-basic/src/blocks/List/__snapshots__/List.test.js.snap (100%) rename packages/{ => plugins}/blocks/blocks-basic/src/blocks/List/examples.yaml (100%) rename packages/{ => plugins}/blocks/blocks-basic/src/blocks/List/schema.json (100%) rename packages/{ => plugins}/blocks/blocks-basic/src/blocks/Span/Span.js (93%) rename packages/{ => plugins}/blocks/blocks-basic/src/blocks/Span/Span.test.js (100%) rename packages/{ => plugins}/blocks/blocks-basic/src/blocks/Span/__snapshots__/Span.test.js.snap (100%) rename packages/{ => plugins}/blocks/blocks-basic/src/blocks/Span/examples.yaml (100%) rename packages/{ => plugins}/blocks/blocks-basic/src/blocks/Span/schema.json (100%) rename packages/{blocks/blocks-basic/src/blocks/Img/index.js => plugins/blocks/blocks-basic/src/styles.js} (80%) rename packages/{blocks/blocks-basic/src/blocks/Icon/index.js => plugins/connections/connection-axios-http/src/connections.js} (79%) rename packages/{blocks/blocks-basic/src/blocks/Html/index.js => plugins/connections/connection-axios-http/src/connections/AxiosHttp/AxiosHttp.js} (83%) rename packages/plugins/connections/connection-axios-http/src/connections/AxiosHttp/{AxiosHttpConnection.test.js => AxiosHttp.test.js} (94%) rename packages/plugins/connections/connection-axios-http/src/connections/AxiosHttp/{AxiosHttpRequest/AxiosHttpRequest.js => AxiosHttp/AxiosHttp.js} (87%) rename packages/plugins/connections/connection-axios-http/src/connections/AxiosHttp/{AxiosHttpRequest/AxiosHttpRequest.test.js => AxiosHttp/AxiosHttp.test.js} (85%) delete mode 100644 packages/plugins/connections/connection-axios-http/src/connections/AxiosHttp/AxiosHttpConnection.js delete mode 100644 packages/plugins/connections/connection-axios-http/src/connections/AxiosHttp/AxiosHttpConnectionSchema.json delete mode 100644 packages/plugins/connections/connection-axios-http/src/connections/AxiosHttp/AxiosHttpRequest/index.js create mode 100644 packages/plugins/connections/connection-axios-http/src/connections/AxiosHttp/schema.js delete mode 100644 packages/plugins/connections/connection-axios-http/src/index.js diff --git a/.pnp.cjs b/.pnp.cjs index a55c43f68..e93cae06f 100755 --- a/.pnp.cjs +++ b/.pnp.cjs @@ -42,10 +42,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { "name": "@lowdefy/blocks-antd", "reference": "workspace:packages/blocks/blocks-antd" }, - { - "name": "@lowdefy/blocks-basic", - "reference": "workspace:packages/blocks/blocks-basic" - }, { "name": "@lowdefy/blocks-color-selectors", "reference": "workspace:packages/blocks/blocks-color-selectors" @@ -110,6 +106,10 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { "name": "@lowdefy/operators", "reference": "workspace:packages/operators" }, + { + "name": "@lowdefy/blocks-basic", + "reference": "workspace:packages/plugins/blocks/blocks-basic" + }, { "name": "@lowdefy/connection-axios-http", "reference": "workspace:packages/plugins/connections/connection-axios-http" @@ -159,7 +159,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["@lowdefy/block-dev", ["workspace:packages/block-dev"]], ["@lowdefy/block-utils", ["workspace:packages/block-utils"]], ["@lowdefy/blocks-antd", ["workspace:packages/blocks/blocks-antd"]], - ["@lowdefy/blocks-basic", ["workspace:packages/blocks/blocks-basic"]], + ["@lowdefy/blocks-basic", ["workspace:packages/plugins/blocks/blocks-basic"]], ["@lowdefy/blocks-color-selectors", ["workspace:packages/blocks/blocks-color-selectors"]], ["@lowdefy/blocks-echarts", ["workspace:packages/blocks/blocks-echarts"]], ["@lowdefy/blocks-loaders", ["workspace:packages/blocks/blocks-loaders"]], @@ -5234,10 +5234,10 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { }] ]], ["@lowdefy/blocks-basic", [ - ["workspace:packages/blocks/blocks-basic", { - "packageLocation": "./packages/blocks/blocks-basic/", + ["workspace:packages/plugins/blocks/blocks-basic", { + "packageLocation": "./packages/plugins/blocks/blocks-basic/", "packageDependencies": [ - ["@lowdefy/blocks-basic", "workspace:packages/blocks/blocks-basic"], + ["@lowdefy/blocks-basic", "workspace:packages/plugins/blocks/blocks-basic"], ["@babel/preset-react", "virtual:04055f037dce009b6d437327a3df2c0a05f0436e14e2b705672dd0d1e0a3dfd29d8d62e0db8cb7e152c4b95e36ad3ccd6a68c9e962121dec9e597b25e0481519#npm:7.16.0"], ["@emotion/jest", "virtual:04055f037dce009b6d437327a3df2c0a05f0436e14e2b705672dd0d1e0a3dfd29d8d62e0db8cb7e152c4b95e36ad3ccd6a68c9e962121dec9e597b25e0481519#npm:11.5.0"], ["@lowdefy/block-dev", "workspace:packages/block-dev"], @@ -5735,7 +5735,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["@lowdefy/api", "workspace:packages/api"], ["@lowdefy/block-utils", "workspace:packages/block-utils"], ["@lowdefy/blocks-antd", "workspace:packages/blocks/blocks-antd"], - ["@lowdefy/blocks-basic", "workspace:packages/blocks/blocks-basic"], + ["@lowdefy/blocks-basic", "workspace:packages/plugins/blocks/blocks-basic"], ["@lowdefy/connection-axios-http", "workspace:packages/plugins/connections/connection-axios-http"], ["@lowdefy/engine", "workspace:packages/engine"], ["@lowdefy/helpers", "workspace:packages/helpers"], diff --git a/packages/api/src/routes/request/callRequest.js b/packages/api/src/routes/request/callRequest.js index 52635dc82..8609d62a3 100644 --- a/packages/api/src/routes/request/callRequest.js +++ b/packages/api/src/routes/request/callRequest.js @@ -21,10 +21,10 @@ import callRequestResolver from './callRequestResolver.js'; import checkConnectionRead from './checkConnectionRead.js'; import checkConnectionWrite from './checkConnectionWrite.js'; import evaluateOperators from './evaluateOperators.js'; +import getConnection from './getConnection.js'; import getConnectionConfig from './getConnectionConfig.js'; -import getConnectionHandler from './getConnectionHandler.js'; import getRequestConfig from './getRequestConfig.js'; -import getRequestHandler from './getRequestHandler.js'; +import getRequestResolver from './getRequestResolver.js'; import validateSchemas from './validateSchemas.js'; async function callRequest(context, { pageId, payload, requestId }) { @@ -34,8 +34,9 @@ async function callRequest(context, { pageId, payload, requestId }) { const connectionConfig = await getConnectionConfig(context, { requestConfig }); authorizeRequest(context, { requestConfig }); - const connectionHandler = getConnectionHandler(context, { connectionConfig }); - const requestHandler = getRequestHandler(context, { connectionHandler, requestConfig }); + const connection = getConnection(context, { connectionConfig }); + const requestResolver = getRequestResolver(context, { connection, requestConfig }); + const { connectionProperties, requestProperties } = await evaluateOperators(context, { connectionConfig, payload: serializer.deserialize(payload), @@ -45,25 +46,25 @@ async function callRequest(context, { pageId, payload, requestId }) { connectionConfig, connectionProperties, requestConfig, - requestHandler, + requestResolver, }); checkConnectionWrite(context, { connectionConfig, connectionProperties, requestConfig, - requestHandler, + requestResolver, + }); + validateSchemas(context, { + connection, + connectionProperties, + requestConfig, + requestResolver, + requestProperties, }); - // validateSchemas(context, { - // connectionHandler, - // connectionProperties, - // requestConfig, - // requestHandler, - // requestProperties, - // }); const response = await callRequestResolver(context, { connectionProperties, requestConfig, - requestHandler, + requestResolver, requestProperties, }); return { diff --git a/packages/api/src/routes/request/callRequestResolver.js b/packages/api/src/routes/request/callRequestResolver.js index ed11dcb22..ce5cf4c0b 100644 --- a/packages/api/src/routes/request/callRequestResolver.js +++ b/packages/api/src/routes/request/callRequestResolver.js @@ -18,10 +18,10 @@ import { RequestError } from '../../context/errors.js'; async function callRequestResolver( { logger }, - { connectionProperties, requestConfig, requestProperties, requestHandler } + { connectionProperties, requestConfig, requestProperties, requestResolver } ) { try { - const response = await requestHandler.resolver({ + const response = await requestResolver({ request: requestProperties, connection: connectionProperties, }); diff --git a/packages/api/src/routes/request/checkConnectionRead.js b/packages/api/src/routes/request/checkConnectionRead.js index 7160c0c9b..f30566a92 100644 --- a/packages/api/src/routes/request/checkConnectionRead.js +++ b/packages/api/src/routes/request/checkConnectionRead.js @@ -17,9 +17,9 @@ import { ConfigurationError } from '../../context/errors.js'; function checkConnectionRead( { logger }, - { connectionConfig, connectionProperties, requestConfig, requestHandler } + { connectionConfig, connectionProperties, requestConfig, requestResolver } ) { - if (requestHandler.meta.checkRead && connectionProperties.read === false) { + if (requestResolver.meta.checkRead && connectionProperties.read === false) { const err = new ConfigurationError( `Connection "${connectionConfig.connectionId}" does not allow reads.` ); diff --git a/packages/api/src/routes/request/checkConnectionWrite.js b/packages/api/src/routes/request/checkConnectionWrite.js index e6a57be81..a542a96bc 100644 --- a/packages/api/src/routes/request/checkConnectionWrite.js +++ b/packages/api/src/routes/request/checkConnectionWrite.js @@ -17,9 +17,9 @@ import { ConfigurationError } from '../../context/errors.js'; function checkConnectionWrite( { logger }, - { connectionConfig, connectionProperties, requestConfig, requestHandler } + { connectionConfig, connectionProperties, requestConfig, requestResolver } ) { - if (requestHandler.meta.checkWrite && connectionProperties.write !== true) { + if (requestResolver.meta.checkWrite && connectionProperties.write !== true) { const err = new ConfigurationError( `Connection "${connectionConfig.connectionId}" does not allow writes.` ); diff --git a/packages/api/src/routes/request/getConnectionHandler.js b/packages/api/src/routes/request/getConnection.js similarity index 79% rename from packages/api/src/routes/request/getConnectionHandler.js rename to packages/api/src/routes/request/getConnection.js index b6636f98c..c8ddf3980 100644 --- a/packages/api/src/routes/request/getConnectionHandler.js +++ b/packages/api/src/routes/request/getConnection.js @@ -15,9 +15,9 @@ */ import { ConfigurationError } from '../../context/errors.js'; -function getConnectionHandler({ connections, logger }, { connectionConfig }) { - const connectionHandler = connections[connectionConfig.type]; - if (!connectionHandler) { +function getConnection({ connections, logger }, { connectionConfig }) { + const connection = connections[connectionConfig.type]; + if (!connection) { const err = new ConfigurationError( `Connection type "${connectionConfig.type}" can not be found.` ); @@ -28,7 +28,7 @@ function getConnectionHandler({ connections, logger }, { connectionConfig }) { throw err; } - return connectionHandler; + return connection; } -export default getConnectionHandler; +export default getConnection; diff --git a/packages/api/src/routes/request/getRequestHandler.js b/packages/api/src/routes/request/getRequestResolver.js similarity index 79% rename from packages/api/src/routes/request/getRequestHandler.js rename to packages/api/src/routes/request/getRequestResolver.js index 9e8917bbb..313b67546 100644 --- a/packages/api/src/routes/request/getRequestHandler.js +++ b/packages/api/src/routes/request/getRequestResolver.js @@ -16,10 +16,10 @@ import { ConfigurationError } from '../../context/errors.js'; -function getRequestHandler({ logger }, { connectionHandler, requestConfig }) { - const requestHandler = connectionHandler.requests[requestConfig.type]; +function getRequestResolver({ logger }, { connection, requestConfig }) { + const requestResolver = connection.requests[requestConfig.type]; - if (!requestHandler) { + if (!requestResolver) { const err = new ConfigurationError(`Request type "${requestConfig.type}" can not be found.`); logger.debug( { params: { id: requestConfig.requestId, type: requestConfig.type }, err }, @@ -28,7 +28,7 @@ function getRequestHandler({ logger }, { connectionHandler, requestConfig }) { throw err; } - return requestHandler; + return requestResolver; } -export default getRequestHandler; +export default getRequestResolver; diff --git a/packages/api/src/routes/request/validateSchemas.js b/packages/api/src/routes/request/validateSchemas.js index 69855e0db..5523ce1f7 100644 --- a/packages/api/src/routes/request/validateSchemas.js +++ b/packages/api/src/routes/request/validateSchemas.js @@ -20,11 +20,11 @@ import { ConfigurationError } from '../../context/errors.js'; function validateSchemas( { logger }, - { connectionHandler, connectionProperties, requestConfig, requestHandler, requestProperties } + { connection, connectionProperties, requestConfig, requestResolver, requestProperties } ) { try { - validate({ schema: connectionHandler.schema, data: connectionProperties }); - validate({ schema: requestHandler.schema, data: requestProperties }); + validate({ schema: connection.schema, data: connectionProperties }); + validate({ schema: requestResolver.schema, data: requestProperties }); } catch (error) { const err = new ConfigurationError(error.message); logger.debug( diff --git a/packages/blocks/blocks-basic/src/blocks/Box/index.js b/packages/blocks/blocks-basic/src/blocks/Box/index.js deleted file mode 100644 index ec77033f5..000000000 --- a/packages/blocks/blocks-basic/src/blocks/Box/index.js +++ /dev/null @@ -1,26 +0,0 @@ -/* - Copyright 2020-2021 Lowdefy, Inc - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -export default { - import: { - block: 'blocks/Box/Box.js', - styles: [], - }, - meta: { - category: 'container', - loading: false, - }, -}; diff --git a/packages/blocks/blocks-basic/src/blocks/List/index.js b/packages/blocks/blocks-basic/src/blocks/List/index.js deleted file mode 100644 index ba331c2d8..000000000 --- a/packages/blocks/blocks-basic/src/blocks/List/index.js +++ /dev/null @@ -1,27 +0,0 @@ -/* - Copyright 2020-2021 Lowdefy, Inc - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -export default { - import: { - block: 'blocks/List/List.js', - styles: [], - }, - meta: { - category: 'list', - valueType: 'array', - loading: false, - }, -}; diff --git a/packages/blocks/blocks-basic/src/blocks/Span/index.js b/packages/blocks/blocks-basic/src/blocks/Span/index.js deleted file mode 100644 index b90a1d62c..000000000 --- a/packages/blocks/blocks-basic/src/blocks/Span/index.js +++ /dev/null @@ -1,26 +0,0 @@ -/* - Copyright 2020-2021 Lowdefy, Inc - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -export default { - import: { - block: 'block/Span/Span.js', - styles: [], - }, - meta: { - category: 'container', - loading: false, - }, -}; diff --git a/packages/blocks/blocks-basic/src/index.js b/packages/blocks/blocks-basic/src/index.js deleted file mode 100644 index 66394b5e5..000000000 --- a/packages/blocks/blocks-basic/src/index.js +++ /dev/null @@ -1,38 +0,0 @@ -/* - Copyright 2020-2021 Lowdefy, Inc - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -import Anchor from './blocks/Anchor/index.js'; -import Box from './blocks/Box/index.js'; -import DangerousHtml from './blocks/DangerousHtml/index.js'; -import Html from './blocks/Html/index.js'; -import Img from './blocks/Img/index.js'; -import List from './blocks/List/index.js'; -import Span from './blocks/Span/index.js'; - -export default { - blocks: { - Anchor, - Box, - DangerousHtml, - Html, - Img, - List, - Span, - }, - import: { - styles: [], - }, -}; diff --git a/packages/blocks/blocks-basic/.babelrc b/packages/plugins/blocks/blocks-basic/.babelrc similarity index 100% rename from packages/blocks/blocks-basic/.babelrc rename to packages/plugins/blocks/blocks-basic/.babelrc diff --git a/packages/blocks/blocks-basic/CHANGELOG.md b/packages/plugins/blocks/blocks-basic/CHANGELOG.md similarity index 100% rename from packages/blocks/blocks-basic/CHANGELOG.md rename to packages/plugins/blocks/blocks-basic/CHANGELOG.md diff --git a/packages/blocks/blocks-basic/README.md b/packages/plugins/blocks/blocks-basic/README.md similarity index 100% rename from packages/blocks/blocks-basic/README.md rename to packages/plugins/blocks/blocks-basic/README.md diff --git a/packages/blocks/blocks-basic/jest.config.cjs b/packages/plugins/blocks/blocks-basic/jest.config.cjs similarity index 100% rename from packages/blocks/blocks-basic/jest.config.cjs rename to packages/plugins/blocks/blocks-basic/jest.config.cjs diff --git a/packages/blocks/blocks-basic/package.json b/packages/plugins/blocks/blocks-basic/package.json similarity index 90% rename from packages/blocks/blocks-basic/package.json rename to packages/plugins/blocks/blocks-basic/package.json index 7da2d9a6a..7ae26243b 100644 --- a/packages/blocks/blocks-basic/package.json +++ b/packages/plugins/blocks/blocks-basic/package.json @@ -27,8 +27,7 @@ }, "type": "module", "exports": { - ".": "./dist/index.js", - "./blocks/*": "./dist/blocks/*" + "./blocks.js": "./dist/blocks.js" }, "files": [ "dist/*" @@ -37,7 +36,7 @@ "build": "yarn swc", "clean": "rm -rf dist", "prepare": "yarn build", - "swc": "swc src --out-dir dist --config-file ../../../.swcrc --delete-dir-on-start --copy-files", + "swc": "swc src --out-dir dist --config-file ../../../../.swcrc --delete-dir-on-start --copy-files", "test:watch": "jest --coverage --watch", "test": "jest --coverage" }, diff --git a/packages/blocks/blocks-basic/src/blocks/Anchor/index.js b/packages/plugins/blocks/blocks-basic/src/blocks.js similarity index 57% rename from packages/blocks/blocks-basic/src/blocks/Anchor/index.js rename to packages/plugins/blocks/blocks-basic/src/blocks.js index 01fac5254..7dd204f30 100644 --- a/packages/blocks/blocks-basic/src/blocks/Anchor/index.js +++ b/packages/plugins/blocks/blocks-basic/src/blocks.js @@ -14,18 +14,10 @@ limitations under the License. */ -export default { - import: { - block: 'blocks/Anchor/Anchor.js', - styles: [], - }, - meta: { - category: 'display', - loading: { - type: 'SkeletonParagraph', - properties: { - lines: 1, - }, - }, - }, -}; +export { default as Anchor } from './blocks/Anchor/Anchor.js'; +export { default as Box } from './blocks/Box/Box.js'; +export { default as DangerousHtml } from './blocks/DangerousHtml/DangerousHtml.js'; +export { default as Html } from './blocks/Html/Html.js'; +export { default as Img } from './blocks/Img/Img.js'; +export { default as List } from './blocks/List/List.js'; +export { default as Span } from './blocks/Span/Span.js'; diff --git a/packages/blocks/blocks-basic/src/blocks/Anchor/Anchor.js b/packages/plugins/blocks/blocks-basic/src/blocks/Anchor/Anchor.js similarity index 93% rename from packages/blocks/blocks-basic/src/blocks/Anchor/Anchor.js rename to packages/plugins/blocks/blocks-basic/src/blocks/Anchor/Anchor.js index 3b2e18803..fbcf2c437 100644 --- a/packages/blocks/blocks-basic/src/blocks/Anchor/Anchor.js +++ b/packages/plugins/blocks/blocks-basic/src/blocks/Anchor/Anchor.js @@ -81,5 +81,15 @@ const AnchorBlock = ({ }; AnchorBlock.defaultProps = blockDefaultProps; +AnchorBlock.meta = { + category: 'display', + loading: { + type: 'SkeletonParagraph', + properties: { + lines: 1, + }, + }, +}; +AnchorBlock.styles = []; export default AnchorBlock; diff --git a/packages/blocks/blocks-basic/src/blocks/Anchor/Anchor.test.js b/packages/plugins/blocks/blocks-basic/src/blocks/Anchor/Anchor.test.js similarity index 100% rename from packages/blocks/blocks-basic/src/blocks/Anchor/Anchor.test.js rename to packages/plugins/blocks/blocks-basic/src/blocks/Anchor/Anchor.test.js diff --git a/packages/blocks/blocks-basic/src/blocks/Anchor/__snapshots__/Anchor.test.js.snap b/packages/plugins/blocks/blocks-basic/src/blocks/Anchor/__snapshots__/Anchor.test.js.snap similarity index 100% rename from packages/blocks/blocks-basic/src/blocks/Anchor/__snapshots__/Anchor.test.js.snap rename to packages/plugins/blocks/blocks-basic/src/blocks/Anchor/__snapshots__/Anchor.test.js.snap diff --git a/packages/blocks/blocks-basic/src/blocks/Anchor/examples.yaml b/packages/plugins/blocks/blocks-basic/src/blocks/Anchor/examples.yaml similarity index 100% rename from packages/blocks/blocks-basic/src/blocks/Anchor/examples.yaml rename to packages/plugins/blocks/blocks-basic/src/blocks/Anchor/examples.yaml diff --git a/packages/blocks/blocks-basic/src/blocks/Anchor/schema.json b/packages/plugins/blocks/blocks-basic/src/blocks/Anchor/schema.json similarity index 100% rename from packages/blocks/blocks-basic/src/blocks/Anchor/schema.json rename to packages/plugins/blocks/blocks-basic/src/blocks/Anchor/schema.json diff --git a/packages/blocks/blocks-basic/src/blocks/Box/Box.js b/packages/plugins/blocks/blocks-basic/src/blocks/Box/Box.js similarity index 93% rename from packages/blocks/blocks-basic/src/blocks/Box/Box.js rename to packages/plugins/blocks/blocks-basic/src/blocks/Box/Box.js index 4a5319f0c..88a36a7ce 100644 --- a/packages/blocks/blocks-basic/src/blocks/Box/Box.js +++ b/packages/plugins/blocks/blocks-basic/src/blocks/Box/Box.js @@ -32,5 +32,10 @@ const Box = ({ blockId, content, events, methods, properties }) => ( ); Box.defaultProps = blockDefaultProps; +Box.meta = { + category: 'container', + loading: false, +}; +Box.styles = []; export default Box; diff --git a/packages/blocks/blocks-basic/src/blocks/Box/Box.test.js b/packages/plugins/blocks/blocks-basic/src/blocks/Box/Box.test.js similarity index 100% rename from packages/blocks/blocks-basic/src/blocks/Box/Box.test.js rename to packages/plugins/blocks/blocks-basic/src/blocks/Box/Box.test.js diff --git a/packages/blocks/blocks-basic/src/blocks/Box/__snapshots__/Box.test.js.snap b/packages/plugins/blocks/blocks-basic/src/blocks/Box/__snapshots__/Box.test.js.snap similarity index 100% rename from packages/blocks/blocks-basic/src/blocks/Box/__snapshots__/Box.test.js.snap rename to packages/plugins/blocks/blocks-basic/src/blocks/Box/__snapshots__/Box.test.js.snap diff --git a/packages/blocks/blocks-basic/src/blocks/Box/examples.yaml b/packages/plugins/blocks/blocks-basic/src/blocks/Box/examples.yaml similarity index 100% rename from packages/blocks/blocks-basic/src/blocks/Box/examples.yaml rename to packages/plugins/blocks/blocks-basic/src/blocks/Box/examples.yaml diff --git a/packages/blocks/blocks-basic/src/blocks/Box/schema.json b/packages/plugins/blocks/blocks-basic/src/blocks/Box/schema.json similarity index 100% rename from packages/blocks/blocks-basic/src/blocks/Box/schema.json rename to packages/plugins/blocks/blocks-basic/src/blocks/Box/schema.json diff --git a/packages/blocks/blocks-basic/src/blocks/DangerousHtml/DangerousHtml.js b/packages/plugins/blocks/blocks-basic/src/blocks/DangerousHtml/DangerousHtml.js similarity index 95% rename from packages/blocks/blocks-basic/src/blocks/DangerousHtml/DangerousHtml.js rename to packages/plugins/blocks/blocks-basic/src/blocks/DangerousHtml/DangerousHtml.js index 33e930733..6d8d7125e 100644 --- a/packages/blocks/blocks-basic/src/blocks/DangerousHtml/DangerousHtml.js +++ b/packages/plugins/blocks/blocks-basic/src/blocks/DangerousHtml/DangerousHtml.js @@ -61,5 +61,10 @@ class DangerousHtml extends React.Component { } DangerousHtml.defaultProps = blockDefaultProps; +DangerousHtml.meta = { + category: 'display', + loading: false, +}; +DangerousHtml.styles = []; export default DangerousHtml; diff --git a/packages/blocks/blocks-basic/src/blocks/DangerousHtml/DangerousHtml.test.js b/packages/plugins/blocks/blocks-basic/src/blocks/DangerousHtml/DangerousHtml.test.js similarity index 100% rename from packages/blocks/blocks-basic/src/blocks/DangerousHtml/DangerousHtml.test.js rename to packages/plugins/blocks/blocks-basic/src/blocks/DangerousHtml/DangerousHtml.test.js diff --git a/packages/blocks/blocks-basic/src/blocks/DangerousHtml/__snapshots__/DangerousHtml.test.js.snap b/packages/plugins/blocks/blocks-basic/src/blocks/DangerousHtml/__snapshots__/DangerousHtml.test.js.snap similarity index 100% rename from packages/blocks/blocks-basic/src/blocks/DangerousHtml/__snapshots__/DangerousHtml.test.js.snap rename to packages/plugins/blocks/blocks-basic/src/blocks/DangerousHtml/__snapshots__/DangerousHtml.test.js.snap diff --git a/packages/blocks/blocks-basic/src/blocks/DangerousHtml/examples.yaml b/packages/plugins/blocks/blocks-basic/src/blocks/DangerousHtml/examples.yaml similarity index 100% rename from packages/blocks/blocks-basic/src/blocks/DangerousHtml/examples.yaml rename to packages/plugins/blocks/blocks-basic/src/blocks/DangerousHtml/examples.yaml diff --git a/packages/blocks/blocks-basic/src/blocks/DangerousHtml/index.js b/packages/plugins/blocks/blocks-basic/src/blocks/DangerousHtml/index.js similarity index 100% rename from packages/blocks/blocks-basic/src/blocks/DangerousHtml/index.js rename to packages/plugins/blocks/blocks-basic/src/blocks/DangerousHtml/index.js diff --git a/packages/blocks/blocks-basic/src/blocks/DangerousHtml/schema.json b/packages/plugins/blocks/blocks-basic/src/blocks/DangerousHtml/schema.json similarity index 100% rename from packages/blocks/blocks-basic/src/blocks/DangerousHtml/schema.json rename to packages/plugins/blocks/blocks-basic/src/blocks/DangerousHtml/schema.json diff --git a/packages/blocks/blocks-basic/src/blocks/Html/Html.js b/packages/plugins/blocks/blocks-basic/src/blocks/Html/Html.js similarity index 91% rename from packages/blocks/blocks-basic/src/blocks/Html/Html.js rename to packages/plugins/blocks/blocks-basic/src/blocks/Html/Html.js index 7713001da..5989a289d 100644 --- a/packages/blocks/blocks-basic/src/blocks/Html/Html.js +++ b/packages/plugins/blocks/blocks-basic/src/blocks/Html/Html.js @@ -28,5 +28,10 @@ const HtmlBlock = ({ blockId, properties, methods }) => ( ); HtmlBlock.defaultProps = blockDefaultProps; +HtmlBlock.meta = { + category: 'display', + loading: false, +}; +HtmlBlock.styles = []; export default HtmlBlock; diff --git a/packages/blocks/blocks-basic/src/blocks/Html/Html.test.js b/packages/plugins/blocks/blocks-basic/src/blocks/Html/Html.test.js similarity index 100% rename from packages/blocks/blocks-basic/src/blocks/Html/Html.test.js rename to packages/plugins/blocks/blocks-basic/src/blocks/Html/Html.test.js diff --git a/packages/blocks/blocks-basic/src/blocks/Html/__snapshots__/Html.test.js.snap b/packages/plugins/blocks/blocks-basic/src/blocks/Html/__snapshots__/Html.test.js.snap similarity index 100% rename from packages/blocks/blocks-basic/src/blocks/Html/__snapshots__/Html.test.js.snap rename to packages/plugins/blocks/blocks-basic/src/blocks/Html/__snapshots__/Html.test.js.snap diff --git a/packages/blocks/blocks-basic/src/blocks/Html/examples.yaml b/packages/plugins/blocks/blocks-basic/src/blocks/Html/examples.yaml similarity index 100% rename from packages/blocks/blocks-basic/src/blocks/Html/examples.yaml rename to packages/plugins/blocks/blocks-basic/src/blocks/Html/examples.yaml diff --git a/packages/blocks/blocks-basic/src/blocks/Html/schema.json b/packages/plugins/blocks/blocks-basic/src/blocks/Html/schema.json similarity index 100% rename from packages/blocks/blocks-basic/src/blocks/Html/schema.json rename to packages/plugins/blocks/blocks-basic/src/blocks/Html/schema.json diff --git a/packages/blocks/blocks-basic/src/blocks/Icon/Icon.js b/packages/plugins/blocks/blocks-basic/src/blocks/Icon/Icon.js similarity index 90% rename from packages/blocks/blocks-basic/src/blocks/Icon/Icon.js rename to packages/plugins/blocks/blocks-basic/src/blocks/Icon/Icon.js index d6cee4b09..b3a344d02 100644 --- a/packages/blocks/blocks-basic/src/blocks/Icon/Icon.js +++ b/packages/plugins/blocks/blocks-basic/src/blocks/Icon/Icon.js @@ -20,5 +20,10 @@ import { blockDefaultProps } from '@lowdefy/block-utils'; const IconBlock = ({ components: { Icon }, ...props }) => ; IconBlock.defaultProps = blockDefaultProps; +IconBlock.meta = { + category: 'display', + loading: false, +}; +IconBlock.styles = []; export default IconBlock; diff --git a/packages/blocks/blocks-basic/src/blocks/Icon/Icon.test.js b/packages/plugins/blocks/blocks-basic/src/blocks/Icon/Icon.test.js similarity index 100% rename from packages/blocks/blocks-basic/src/blocks/Icon/Icon.test.js rename to packages/plugins/blocks/blocks-basic/src/blocks/Icon/Icon.test.js diff --git a/packages/blocks/blocks-basic/src/blocks/Icon/__snapshots__/Icon.test.js.snap b/packages/plugins/blocks/blocks-basic/src/blocks/Icon/__snapshots__/Icon.test.js.snap similarity index 100% rename from packages/blocks/blocks-basic/src/blocks/Icon/__snapshots__/Icon.test.js.snap rename to packages/plugins/blocks/blocks-basic/src/blocks/Icon/__snapshots__/Icon.test.js.snap diff --git a/packages/blocks/blocks-basic/src/blocks/Icon/examples.yaml b/packages/plugins/blocks/blocks-basic/src/blocks/Icon/examples.yaml similarity index 100% rename from packages/blocks/blocks-basic/src/blocks/Icon/examples.yaml rename to packages/plugins/blocks/blocks-basic/src/blocks/Icon/examples.yaml diff --git a/packages/blocks/blocks-basic/src/blocks/Icon/schema.json b/packages/plugins/blocks/blocks-basic/src/blocks/Icon/schema.json similarity index 100% rename from packages/blocks/blocks-basic/src/blocks/Icon/schema.json rename to packages/plugins/blocks/blocks-basic/src/blocks/Icon/schema.json diff --git a/packages/blocks/blocks-basic/src/blocks/Img/Img.js b/packages/plugins/blocks/blocks-basic/src/blocks/Img/Img.js similarity index 93% rename from packages/blocks/blocks-basic/src/blocks/Img/Img.js rename to packages/plugins/blocks/blocks-basic/src/blocks/Img/Img.js index 7ab060038..331a5f22a 100644 --- a/packages/blocks/blocks-basic/src/blocks/Img/Img.js +++ b/packages/plugins/blocks/blocks-basic/src/blocks/Img/Img.js @@ -34,5 +34,10 @@ const ImgBlock = ({ blockId, events, properties, methods }) => { }; ImgBlock.defaultProps = blockDefaultProps; +ImgBlock.meta = { + category: 'display', + loading: false, +}; +ImgBlock.styles = []; export default ImgBlock; diff --git a/packages/blocks/blocks-basic/src/blocks/Img/Img.test.js b/packages/plugins/blocks/blocks-basic/src/blocks/Img/Img.test.js similarity index 100% rename from packages/blocks/blocks-basic/src/blocks/Img/Img.test.js rename to packages/plugins/blocks/blocks-basic/src/blocks/Img/Img.test.js diff --git a/packages/blocks/blocks-basic/src/blocks/Img/__snapshots__/Img.test.js.snap b/packages/plugins/blocks/blocks-basic/src/blocks/Img/__snapshots__/Img.test.js.snap similarity index 100% rename from packages/blocks/blocks-basic/src/blocks/Img/__snapshots__/Img.test.js.snap rename to packages/plugins/blocks/blocks-basic/src/blocks/Img/__snapshots__/Img.test.js.snap diff --git a/packages/blocks/blocks-basic/src/blocks/Img/examples.yaml b/packages/plugins/blocks/blocks-basic/src/blocks/Img/examples.yaml similarity index 100% rename from packages/blocks/blocks-basic/src/blocks/Img/examples.yaml rename to packages/plugins/blocks/blocks-basic/src/blocks/Img/examples.yaml diff --git a/packages/blocks/blocks-basic/src/blocks/Img/schema.json b/packages/plugins/blocks/blocks-basic/src/blocks/Img/schema.json similarity index 100% rename from packages/blocks/blocks-basic/src/blocks/Img/schema.json rename to packages/plugins/blocks/blocks-basic/src/blocks/Img/schema.json diff --git a/packages/blocks/blocks-basic/src/blocks/List/List.js b/packages/plugins/blocks/blocks-basic/src/blocks/List/List.js similarity index 94% rename from packages/blocks/blocks-basic/src/blocks/List/List.js rename to packages/plugins/blocks/blocks-basic/src/blocks/List/List.js index d4ce13f32..40ebb3586 100644 --- a/packages/blocks/blocks-basic/src/blocks/List/List.js +++ b/packages/plugins/blocks/blocks-basic/src/blocks/List/List.js @@ -52,5 +52,11 @@ const List = ({ blockId, events, list, methods, properties }) => { }; List.defaultProps = blockDefaultProps; +List.meta = { + category: 'list', + valueType: 'array', + loading: false, +}; +List.styles = []; export default List; diff --git a/packages/blocks/blocks-basic/src/blocks/List/List.test.js b/packages/plugins/blocks/blocks-basic/src/blocks/List/List.test.js similarity index 100% rename from packages/blocks/blocks-basic/src/blocks/List/List.test.js rename to packages/plugins/blocks/blocks-basic/src/blocks/List/List.test.js diff --git a/packages/blocks/blocks-basic/src/blocks/List/__snapshots__/List.test.js.snap b/packages/plugins/blocks/blocks-basic/src/blocks/List/__snapshots__/List.test.js.snap similarity index 100% rename from packages/blocks/blocks-basic/src/blocks/List/__snapshots__/List.test.js.snap rename to packages/plugins/blocks/blocks-basic/src/blocks/List/__snapshots__/List.test.js.snap diff --git a/packages/blocks/blocks-basic/src/blocks/List/examples.yaml b/packages/plugins/blocks/blocks-basic/src/blocks/List/examples.yaml similarity index 100% rename from packages/blocks/blocks-basic/src/blocks/List/examples.yaml rename to packages/plugins/blocks/blocks-basic/src/blocks/List/examples.yaml diff --git a/packages/blocks/blocks-basic/src/blocks/List/schema.json b/packages/plugins/blocks/blocks-basic/src/blocks/List/schema.json similarity index 100% rename from packages/blocks/blocks-basic/src/blocks/List/schema.json rename to packages/plugins/blocks/blocks-basic/src/blocks/List/schema.json diff --git a/packages/blocks/blocks-basic/src/blocks/Span/Span.js b/packages/plugins/blocks/blocks-basic/src/blocks/Span/Span.js similarity index 93% rename from packages/blocks/blocks-basic/src/blocks/Span/Span.js rename to packages/plugins/blocks/blocks-basic/src/blocks/Span/Span.js index 9023be90c..e4a60b2a9 100644 --- a/packages/blocks/blocks-basic/src/blocks/Span/Span.js +++ b/packages/plugins/blocks/blocks-basic/src/blocks/Span/Span.js @@ -32,5 +32,10 @@ const Span = ({ blockId, content, events, methods, properties }) => ( ); Span.defaultProps = blockDefaultProps; +Span.meta = { + category: 'container', + loading: false, +}; +Span.styles = []; export default Span; diff --git a/packages/blocks/blocks-basic/src/blocks/Span/Span.test.js b/packages/plugins/blocks/blocks-basic/src/blocks/Span/Span.test.js similarity index 100% rename from packages/blocks/blocks-basic/src/blocks/Span/Span.test.js rename to packages/plugins/blocks/blocks-basic/src/blocks/Span/Span.test.js diff --git a/packages/blocks/blocks-basic/src/blocks/Span/__snapshots__/Span.test.js.snap b/packages/plugins/blocks/blocks-basic/src/blocks/Span/__snapshots__/Span.test.js.snap similarity index 100% rename from packages/blocks/blocks-basic/src/blocks/Span/__snapshots__/Span.test.js.snap rename to packages/plugins/blocks/blocks-basic/src/blocks/Span/__snapshots__/Span.test.js.snap diff --git a/packages/blocks/blocks-basic/src/blocks/Span/examples.yaml b/packages/plugins/blocks/blocks-basic/src/blocks/Span/examples.yaml similarity index 100% rename from packages/blocks/blocks-basic/src/blocks/Span/examples.yaml rename to packages/plugins/blocks/blocks-basic/src/blocks/Span/examples.yaml diff --git a/packages/blocks/blocks-basic/src/blocks/Span/schema.json b/packages/plugins/blocks/blocks-basic/src/blocks/Span/schema.json similarity index 100% rename from packages/blocks/blocks-basic/src/blocks/Span/schema.json rename to packages/plugins/blocks/blocks-basic/src/blocks/Span/schema.json diff --git a/packages/blocks/blocks-basic/src/blocks/Img/index.js b/packages/plugins/blocks/blocks-basic/src/styles.js similarity index 80% rename from packages/blocks/blocks-basic/src/blocks/Img/index.js rename to packages/plugins/blocks/blocks-basic/src/styles.js index 6071efaa9..77c7351a1 100644 --- a/packages/blocks/blocks-basic/src/blocks/Img/index.js +++ b/packages/plugins/blocks/blocks-basic/src/styles.js @@ -14,13 +14,4 @@ limitations under the License. */ -export default { - import: { - block: 'blocks/Img/Img.js', - styles: [], - }, - meta: { - category: 'display', - loading: false, - }, -}; +export default []; diff --git a/packages/plugins/connections/connection-axios-http/package.json b/packages/plugins/connections/connection-axios-http/package.json index 7696633e0..f64c8addb 100644 --- a/packages/plugins/connections/connection-axios-http/package.json +++ b/packages/plugins/connections/connection-axios-http/package.json @@ -27,8 +27,7 @@ }, "type": "module", "exports": { - ".": "./dist/index.js", - "./connections/*": "./dist/connections/*" + "./connections.js": "./dist/connections.js" }, "files": [ "dist/*" diff --git a/packages/blocks/blocks-basic/src/blocks/Icon/index.js b/packages/plugins/connections/connection-axios-http/src/connections.js similarity index 79% rename from packages/blocks/blocks-basic/src/blocks/Icon/index.js rename to packages/plugins/connections/connection-axios-http/src/connections.js index ad2368dbc..45c507d0b 100644 --- a/packages/blocks/blocks-basic/src/blocks/Icon/index.js +++ b/packages/plugins/connections/connection-axios-http/src/connections.js @@ -14,13 +14,4 @@ limitations under the License. */ -export default { - import: { - block: 'blocks/Icon/Icon.js', - styles: [], - }, - meta: { - category: 'display', - loading: false, - }, -}; +export { default as AxiosHttp } from './connections/AxiosHttp/AxiosHttp.js'; diff --git a/packages/blocks/blocks-basic/src/blocks/Html/index.js b/packages/plugins/connections/connection-axios-http/src/connections/AxiosHttp/AxiosHttp.js similarity index 83% rename from packages/blocks/blocks-basic/src/blocks/Html/index.js rename to packages/plugins/connections/connection-axios-http/src/connections/AxiosHttp/AxiosHttp.js index e60d8ac5c..6b4ccf204 100644 --- a/packages/blocks/blocks-basic/src/blocks/Html/index.js +++ b/packages/plugins/connections/connection-axios-http/src/connections/AxiosHttp/AxiosHttp.js @@ -14,13 +14,12 @@ limitations under the License. */ +import AxiosHttp from './AxiosHttp/AxiosHttp.js'; +import schema from './schema.js'; + export default { - import: { - block: 'blocks/Html/Html.js', - styles: [], - }, - meta: { - category: 'display', - loading: false, + schema, + requests: { + AxiosHttp, }, }; diff --git a/packages/plugins/connections/connection-axios-http/src/connections/AxiosHttp/AxiosHttpConnection.test.js b/packages/plugins/connections/connection-axios-http/src/connections/AxiosHttp/AxiosHttp.test.js similarity index 94% rename from packages/plugins/connections/connection-axios-http/src/connections/AxiosHttp/AxiosHttpConnection.test.js rename to packages/plugins/connections/connection-axios-http/src/connections/AxiosHttp/AxiosHttp.test.js index 42734132c..1c8e93f48 100644 --- a/packages/plugins/connections/connection-axios-http/src/connections/AxiosHttp/AxiosHttpConnection.test.js +++ b/packages/plugins/connections/connection-axios-http/src/connections/AxiosHttp/AxiosHttp.test.js @@ -15,8 +15,9 @@ */ import { validate } from '@lowdefy/ajv'; -import AxiosHttp from './AxiosHttpConnection.js'; -import schema from './AxiosHttpConnectionSchema.json'; +import AxiosHttp from './AxiosHttp.js'; + +const schema = AxiosHttp.schema; test('All requests are present', () => { expect(AxiosHttp.requests.AxiosHttp).toBeDefined(); diff --git a/packages/plugins/connections/connection-axios-http/src/connections/AxiosHttp/AxiosHttpRequest/AxiosHttpRequest.js b/packages/plugins/connections/connection-axios-http/src/connections/AxiosHttp/AxiosHttp/AxiosHttp.js similarity index 87% rename from packages/plugins/connections/connection-axios-http/src/connections/AxiosHttp/AxiosHttpRequest/AxiosHttpRequest.js rename to packages/plugins/connections/connection-axios-http/src/connections/AxiosHttp/AxiosHttp/AxiosHttp.js index e59cf09d1..79f2a6b7f 100644 --- a/packages/plugins/connections/connection-axios-http/src/connections/AxiosHttp/AxiosHttpRequest/AxiosHttpRequest.js +++ b/packages/plugins/connections/connection-axios-http/src/connections/AxiosHttp/AxiosHttp/AxiosHttp.js @@ -20,7 +20,9 @@ import https from 'https'; import axios from 'axios'; import { mergeObjects } from '@lowdefy/helpers'; -async function axiosHttpRequest({ request, connection }) { +import schema from '../schema.js'; + +async function AxiosHttp({ request, connection }) { try { const config = mergeObjects([connection, request]); if (config.httpAgentOptions) { @@ -44,4 +46,10 @@ async function axiosHttpRequest({ request, connection }) { } } -export default axiosHttpRequest; +AxiosHttp.schema = schema; +AxiosHttp.meta = { + checkRead: false, + checkWrite: false, +}; + +export default AxiosHttp; diff --git a/packages/plugins/connections/connection-axios-http/src/connections/AxiosHttp/AxiosHttpRequest/AxiosHttpRequest.test.js b/packages/plugins/connections/connection-axios-http/src/connections/AxiosHttp/AxiosHttp/AxiosHttp.test.js similarity index 85% rename from packages/plugins/connections/connection-axios-http/src/connections/AxiosHttp/AxiosHttpRequest/AxiosHttpRequest.test.js rename to packages/plugins/connections/connection-axios-http/src/connections/AxiosHttp/AxiosHttp/AxiosHttp.test.js index 57e18a5ad..fe2b13f5e 100644 --- a/packages/plugins/connections/connection-axios-http/src/connections/AxiosHttp/AxiosHttpRequest/AxiosHttpRequest.test.js +++ b/packages/plugins/connections/connection-axios-http/src/connections/AxiosHttp/AxiosHttp/AxiosHttp.test.js @@ -14,17 +14,16 @@ limitations under the License. */ -import axiosHttpRequest from './AxiosHttpRequest.js'; -import requestIndex from './index.js'; +import AxiosHttp from './AxiosHttp.js'; -const { checkRead, checkWrite } = requestIndex.meta; +const { checkRead, checkWrite } = AxiosHttp.meta; test('get default method,', async () => { const request = { url: 'https://postman-echo.com/get', }; const connection = {}; - const res = await axiosHttpRequest({ request, connection }); + const res = await AxiosHttp({ request, connection }); expect(res.status).toBe(200); expect(res.statusText).toBe('OK'); expect(res.method).toBe(undefined); @@ -52,7 +51,7 @@ test('get specify method', async () => { method: 'get', }; const connection = {}; - const res = await axiosHttpRequest({ request, connection }); + const res = await AxiosHttp({ request, connection }); expect(res.status).toBe(200); expect(res.statusText).toBe('OK'); expect(res.method).toBe(undefined); @@ -83,7 +82,7 @@ test('get with params', async () => { }, }; const connection = {}; - const res = await axiosHttpRequest({ request, connection }); + const res = await AxiosHttp({ request, connection }); expect(res.status).toBe(200); expect(res.statusText).toBe('OK'); expect(res.method).toBe(undefined); @@ -116,13 +115,13 @@ test('axios error', async () => { }, }; const connection = {}; - await expect(axiosHttpRequest({ request, connection })).rejects.toThrow( + await expect(AxiosHttp({ request, connection })).rejects.toThrow( 'Request failed with status code 404; Http response "404: Not Found"; Data: "".' ); }); test('other error', async () => { - await expect(axiosHttpRequest({ request: { url: true } })).rejects.toThrow( + await expect(AxiosHttp({ request: { url: true } })).rejects.toThrow( 'The "url" argument must be of type string. Received type boolean (true)' ); }); @@ -133,7 +132,7 @@ test('https Agent options in request', async () => { httpsAgentOptions: { keepAlive: true }, }; const connection = {}; - const res = await axiosHttpRequest({ request, connection }); + const res = await AxiosHttp({ request, connection }); expect(res.headers.connection).toEqual('keep-alive'); }); @@ -142,7 +141,7 @@ test('https Agent options in connection', async () => { url: 'https://postman-echo.com/get', }; const connection = { httpsAgentOptions: { keepAlive: true } }; - const res = await axiosHttpRequest({ request, connection }); + const res = await AxiosHttp({ request, connection }); expect(res.headers.connection).toEqual('keep-alive'); }); @@ -152,7 +151,7 @@ test('http Agent options in request', async () => { httpAgentOptions: { keepAlive: true }, }; const connection = {}; - const res = await axiosHttpRequest({ request, connection }); + const res = await AxiosHttp({ request, connection }); expect(res.headers.connection).toEqual('keep-alive'); }); @@ -161,7 +160,7 @@ test('http Agent options in connection', async () => { url: 'http://postman-echo.com/get', }; const connection = { httpAgentOptions: { keepAlive: true } }; - const res = await axiosHttpRequest({ request, connection }); + const res = await AxiosHttp({ request, connection }); expect(res.headers.connection).toEqual('keep-alive'); }); diff --git a/packages/plugins/connections/connection-axios-http/src/connections/AxiosHttp/AxiosHttpConnection.js b/packages/plugins/connections/connection-axios-http/src/connections/AxiosHttp/AxiosHttpConnection.js deleted file mode 100644 index 8cbf67925..000000000 --- a/packages/plugins/connections/connection-axios-http/src/connections/AxiosHttp/AxiosHttpConnection.js +++ /dev/null @@ -1,27 +0,0 @@ -/* - Copyright 2020-2021 Lowdefy, Inc - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -import AxiosHttp from './AxiosHttpRequest/index.js'; - -export default { - import: { - path: 'connections/AxiosHttp/AxiosHttpConnection.js', - schema: 'connections/AxiosHttp/AxiosHttpConnectionSchema.json', - }, - requests: { - AxiosHttp, - }, -}; diff --git a/packages/plugins/connections/connection-axios-http/src/connections/AxiosHttp/AxiosHttpConnectionSchema.json b/packages/plugins/connections/connection-axios-http/src/connections/AxiosHttp/AxiosHttpConnectionSchema.json deleted file mode 100644 index 5b2430306..000000000 --- a/packages/plugins/connections/connection-axios-http/src/connections/AxiosHttp/AxiosHttpConnectionSchema.json +++ /dev/null @@ -1,122 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "Lowdefy Connection Schema - AxiosHttp", - "type": "object", - "properties": { - "url": { - "type": "string", - "description": "The server URL that will be used for the request.", - "errorMessage": { - "type": "AxiosHttp property \"url\" should be a string." - } - }, - "method": { - "type": "string", - "enum": ["get", "delete", "head", "options", "post", "put", "patch"], - "description": "The request method to be used when making the request", - "errorMessage": { - "type": "AxiosHttp property \"method\" should be a string.", - "enum": "AxiosHttp property \"method\" is not a valid value." - } - }, - "baseURL": { - "type": "string", - "description": "baseURL will be prepended to url unless url is absolute. It can be convenient to set baseURL for an axios connection so that requests can use relative urls.", - "errorMessage": { - "type": "AxiosHttp property \"baseURL\" should be a string." - } - }, - "headers": { - "type": "object", - "description": "An object with custom headers to be sent with the request. The object keys should be header names, and the values should be the string header values.", - "errorMessage": { - "type": "AxiosHttp property \"headers\" should be an object." - } - }, - "params": { - "type": "object", - "description": "An object with URL parameters to be sent with the request.", - "errorMessage": { - "type": "AxiosHttp property \"params\" should be an object." - } - }, - "data": { - "type": ["string", "object"], - "description": "The data to be sent as the request body. Only applicable for request methods 'put', 'post', and 'patch'. Can be an object or a string in the format 'Country=USA&City=New York'.", - "errorMessage": { - "type": "AxiosHttp property \"data\" should be an object or string." - } - }, - "timeout": { - "type": "number", - "description": "The number of milliseconds before the request times out. If the request takes longer than timeout, the request will be aborted. Set to 0 for no timeout.", - "default": 0, - "errorMessage": { - "type": "AxiosHttp property \"timeout\" should be a number." - } - }, - "auth": { - "type": "object", - "description": "Indicates that HTTP Basic authorization should be used, and supplies credentials. This will set an Authorization header, overwriting any existing Authorization custom headers you have set using headers. Only HTTP Basic auth is configurable through this parameter, for Bearer tokens and such, use Authorization custom headers instead.", - "properties": { - "username": { - "type": "string", - "description": "HTTP Basic authorization username.", - "errorMessage": { - "type": "AxiosHttp property \"auth.username\" should be a string." - } - }, - "password": { - "type": "string", - "description": "HTTP Basic authorization password.", - "errorMessage": { - "type": "AxiosHttp property \"auth.password\" should be a string." - } - } - }, - "errorMessage": { - "type": "AxiosHttp property \"auth\" should be an object." - } - }, - "responseType": { - "type": "string", - "enum": ["json", "document", "text"], - "description": "The type of data that the server should respond with.", - "default": "json", - "errorMessage": { - "type": "AxiosHttp property \"responseType\" should be a string.", - "enum": "AxiosHttp property \"responseType\" is not a valid value." - } - }, - "responseEncoding": { - "type": "string", - "description": "Indicates encoding to use for decoding responses.", - "default": "utf8", - "errorMessage": { - "type": "AxiosHttp property \"responseEncoding\" should be a string." - } - }, - "maxContentLength": { - "type": "number", - "description": "Defines the max size of the http response content allowed in bytes.", - "errorMessage": { - "type": "AxiosHttp property \"maxContentLength\" should be a number." - } - }, - "maxRedirects": { - "type": "number", - "description": "Defines the maximum number of redirects to follow. If set to 0, no redirects will be followed.", - "default": 5, - "errorMessage": { - "type": "AxiosHttp property \"maxRedirects\" should be a number." - } - }, - "proxy": { - "type": "object", - "description": "Defines the hostname and port of the proxy server.", - "errorMessage": { - "type": "AxiosHttp property \"proxy\" should be an object." - } - } - } -} diff --git a/packages/plugins/connections/connection-axios-http/src/connections/AxiosHttp/AxiosHttpRequest/index.js b/packages/plugins/connections/connection-axios-http/src/connections/AxiosHttp/AxiosHttpRequest/index.js deleted file mode 100644 index 9387d9ea7..000000000 --- a/packages/plugins/connections/connection-axios-http/src/connections/AxiosHttp/AxiosHttpRequest/index.js +++ /dev/null @@ -1,28 +0,0 @@ -/* - Copyright 2020-2021 Lowdefy, Inc - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -import AxiosHttpRequest from './AxiosHttpRequest.js'; - -export default { - import: { - schema: 'connections/AxiosHttp/AxiosHttpConnection.json', - }, - resolver: AxiosHttpRequest, - meta: { - checkRead: false, - checkWrite: false, - }, -}; diff --git a/packages/plugins/connections/connection-axios-http/src/connections/AxiosHttp/schema.js b/packages/plugins/connections/connection-axios-http/src/connections/AxiosHttp/schema.js new file mode 100644 index 000000000..4481af39c --- /dev/null +++ b/packages/plugins/connections/connection-axios-http/src/connections/AxiosHttp/schema.js @@ -0,0 +1,144 @@ +/* + Copyright 2020-2021 Lowdefy, Inc + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +export default { + $schema: 'http://json-schema.org/draft-07/schema#', + title: 'Lowdefy Connection Schema - AxiosHttp', + type: 'object', + properties: { + url: { + type: 'string', + description: 'The server URL that will be used for the request.', + errorMessage: { + type: 'AxiosHttp property "url" should be a string.', + }, + }, + method: { + type: 'string', + enum: ['get', 'delete', 'head', 'options', 'post', 'put', 'patch'], + description: 'The request method to be used when making the request', + errorMessage: { + type: 'AxiosHttp property "method" should be a string.', + enum: 'AxiosHttp property "method" is not a valid value.', + }, + }, + baseURL: { + type: 'string', + description: + 'baseURL will be prepended to url unless url is absolute. It can be convenient to set baseURL for an axios connection so that requests can use relative urls.', + errorMessage: { + type: 'AxiosHttp property "baseURL" should be a string.', + }, + }, + headers: { + type: 'object', + description: + 'An object with custom headers to be sent with the request. The object keys should be header names, and the values should be the string header values.', + errorMessage: { + type: 'AxiosHttp property "headers" should be an object.', + }, + }, + params: { + type: 'object', + description: 'An object with URL parameters to be sent with the request.', + errorMessage: { + type: 'AxiosHttp property "params" should be an object.', + }, + }, + data: { + type: ['string', 'object'], + description: + "The data to be sent as the request body. Only applicable for request methods 'put', 'post', and 'patch'. Can be an object or a string in the format 'Country=USA&City=New York'.", + errorMessage: { + type: 'AxiosHttp property "data" should be an object or string.', + }, + }, + timeout: { + type: 'number', + description: + 'The number of milliseconds before the request times out. If the request takes longer than timeout, the request will be aborted. Set to 0 for no timeout.', + default: 0, + errorMessage: { + type: 'AxiosHttp property "timeout" should be a number.', + }, + }, + auth: { + type: 'object', + description: + 'Indicates that HTTP Basic authorization should be used, and supplies credentials. This will set an Authorization header, overwriting any existing Authorization custom headers you have set using headers. Only HTTP Basic auth is configurable through this parameter, for Bearer tokens and such, use Authorization custom headers instead.', + properties: { + username: { + type: 'string', + description: 'HTTP Basic authorization username.', + errorMessage: { + type: 'AxiosHttp property "auth.username" should be a string.', + }, + }, + password: { + type: 'string', + description: 'HTTP Basic authorization password.', + errorMessage: { + type: 'AxiosHttp property "auth.password" should be a string.', + }, + }, + }, + errorMessage: { + type: 'AxiosHttp property "auth" should be an object.', + }, + }, + responseType: { + type: 'string', + enum: ['json', 'document', 'text'], + description: 'The type of data that the server should respond with.', + default: 'json', + errorMessage: { + type: 'AxiosHttp property "responseType" should be a string.', + enum: 'AxiosHttp property "responseType" is not a valid value.', + }, + }, + responseEncoding: { + type: 'string', + description: 'Indicates encoding to use for decoding responses.', + default: 'utf8', + errorMessage: { + type: 'AxiosHttp property "responseEncoding" should be a string.', + }, + }, + maxContentLength: { + type: 'number', + description: 'Defines the max size of the http response content allowed in bytes.', + errorMessage: { + type: 'AxiosHttp property "maxContentLength" should be a number.', + }, + }, + maxRedirects: { + type: 'number', + description: + 'Defines the maximum number of redirects to follow. If set to 0, no redirects will be followed.', + default: 5, + errorMessage: { + type: 'AxiosHttp property "maxRedirects" should be a number.', + }, + }, + proxy: { + type: 'object', + description: 'Defines the hostname and port of the proxy server.', + errorMessage: { + type: 'AxiosHttp property "proxy" should be an object.', + }, + }, + }, +}; diff --git a/packages/plugins/connections/connection-axios-http/src/index.js b/packages/plugins/connections/connection-axios-http/src/index.js deleted file mode 100644 index 777f02b39..000000000 --- a/packages/plugins/connections/connection-axios-http/src/index.js +++ /dev/null @@ -1,7 +0,0 @@ -import AxiosHttp from './connections/AxiosHttp/AxiosHttpConnection.js'; - -export const connections = { - AxiosHttp, -}; - -export default { connections }; diff --git a/packages/server/src/components/block/CategorySwitch.js b/packages/server/src/components/block/CategorySwitch.js index b84851c59..a85c3174d 100644 --- a/packages/server/src/components/block/CategorySwitch.js +++ b/packages/server/src/components/block/CategorySwitch.js @@ -25,9 +25,8 @@ const CategorySwitch = ({ block, Blocks, context, lowdefy }) => { if (!block.eval) return null; // Renderer updates before eval is executed for the first time on lists. See #520 if (block.eval.visible === false) return
; - const Component = lowdefy._internal.blockComponents[block.type].Component; - const meta = lowdefy._internal.blockComponents[block.type].meta; - switch (meta.category) { + const Component = lowdefy._internal.blockComponents[block.type]; + switch (Component.meta.category) { case 'list': return (