diff --git a/.pnp.cjs b/.pnp.cjs index 45d01b2bb..7cad1756c 100755 --- a/.pnp.cjs +++ b/.pnp.cjs @@ -3571,7 +3571,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["@next/eslint-plugin-next", "npm:12.0.10"], ["chokidar", "npm:3.5.3"], ["dotenv", "npm:15.0.0"], - ["js-yaml", "npm:4.1.0"], ["less", "npm:4.1.2"], ["less-loader", "virtual:003bebd8b7a948d12b44e2c11a621884feb1891eea3645171e827971487f79396db9f7422bc411ccf3f90877e94ec86f5c3da70b96efb5daddb2ee3b35eae5c6#npm:10.2.0"], ["next", "virtual:003bebd8b7a948d12b44e2c11a621884feb1891eea3645171e827971487f79396db9f7422bc411ccf3f90877e94ec86f5c3da70b96efb5daddb2ee3b35eae5c6#npm:12.0.10"], @@ -3582,6 +3581,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["react-dom", "virtual:573fe255dffc9c89f4f7aa60da718603753ee98acc55d6772bbd0ebdcf07f9183fb8e54b4f3f2246c538a14ead402db8d2e076039c667d1538702638a0cc87b8#npm:17.0.2"], ["react-icons", "virtual:003bebd8b7a948d12b44e2c11a621884feb1891eea3645171e827971487f79396db9f7422bc411ccf3f90877e94ec86f5c3da70b96efb5daddb2ee3b35eae5c6#npm:4.3.1"], ["swr", "virtual:b951ea20ab6cada5f665e8389a50d828047e6b6f10e6ebaddde1e74a94868ec6ec703ff140742f295ef663cf92da1bc80fe9bbeaab30196cba0e992f38cd19ea#npm:1.1.2"], + ["yaml", "npm:2.0.0-10"], ["yargs", "npm:17.3.1"] ], "linkType": "SOFT", diff --git a/.yarnrc.yml b/.yarnrc.yml index e264a3875..65d637172 100644 --- a/.yarnrc.yml +++ b/.yarnrc.yml @@ -6,7 +6,6 @@ packageExtensions: dependencies: react: "*" react-dom: "*" - classnames: "*" rc-checkbox@*: dependencies: react: "*" diff --git a/packages/build/src/build/buildRefs/getRefContent.js b/packages/build/src/build/buildRefs/getRefContent.js index abd02ced8..88357fda8 100644 --- a/packages/build/src/build/buildRefs/getRefContent.js +++ b/packages/build/src/build/buildRefs/getRefContent.js @@ -20,7 +20,7 @@ import runRefResolver from './runRefResolver.js'; async function getRefContent({ context, refDef, referencedFrom }) { let content; - if (refDef.path === 'lowdefy.yaml') { + if (refDef.path === 'lowdefy.yaml' || refDef.path === 'lowdefy.yml') { content = await getConfigFile({ context, refDef, referencedFrom }); } else if (refDef.resolver || context.refResolver) { content = await runRefResolver({ context, refDef, referencedFrom }); diff --git a/packages/cli/src/commands/build/build.js b/packages/cli/src/commands/build/build.js index 282908581..16e0b07fd 100644 --- a/packages/cli/src/commands/build/build.js +++ b/packages/cli/src/commands/build/build.js @@ -15,17 +15,23 @@ */ import getServer from '../../utils/getServer.js'; -import installServer from './installServer.js'; -import runLowdefyBuild from './runLowdefyBuild.js'; -import runNextBuild from './runNextBuild.js'; +import installServer from '../../utils/installServer.js'; +import mergePackageJson from '../../utils/mergePackageJson.js'; +import runLowdefyBuild from '../../utils/runLowdefyBuild.js'; +import runNextBuild from '../../utils/runNextBuild.js'; async function build({ context }) { context.print.info('Starting build.'); + const directory = context.directory.server; await getServer({ context, packageName: '@lowdefy/server' }); - await installServer({ context }); - await runLowdefyBuild({ context }); - await installServer({ context }); - await runNextBuild({ context }); + await mergePackageJson({ + context, + serverDirectory: directory, + }); + await installServer({ context, directory }); + await runLowdefyBuild({ context, directory }); + await installServer({ context, directory }); + await runNextBuild({ context, directory }); await context.sendTelemetry({ sendTypes: true }); context.print.succeed(`Build successful.`); } diff --git a/packages/cli/src/commands/build/installServer.js b/packages/cli/src/commands/build/installServer.js deleted file mode 100644 index 4b2f3ffde..000000000 --- a/packages/cli/src/commands/build/installServer.js +++ /dev/null @@ -1,43 +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 { spawnProcess } from '@lowdefy/node-utils'; - -const args = { - npm: ['install', '--legacy-peer-deps'], - yarn: ['install'], -}; - -async function installServer({ context }) { - context.print.spin(`Running ${context.packageManager} install.`); - try { - await spawnProcess({ - logger: context.print, - command: context.packageManager, // npm or yarn - args: args[context.packageManager], - processOptions: { - cwd: context.directories.server, - }, - silent: false, - }); - } catch (error) { - console.log(error); - throw new Error(`${context.packageManager} install failed.`); - } - context.print.log(`${context.packageManager} install successful.`); -} - -export default installServer; diff --git a/packages/cli/src/commands/dev/dev.js b/packages/cli/src/commands/dev/dev.js index b4976076c..49fef0c62 100644 --- a/packages/cli/src/commands/dev/dev.js +++ b/packages/cli/src/commands/dev/dev.js @@ -14,16 +14,22 @@ limitations under the License. */ -import installServer from './installServer.js'; +import installServer from '../../utils/installServer.js'; +import mergePackageJson from '../../utils/mergePackageJson.js'; import runDevServer from './runDevServer.js'; import getServer from '../../utils/getServer.js'; async function dev({ context }) { + const directory = context.directory.dev; context.print.info('Starting development server.'); await getServer({ context, packageName: '@lowdefy/server-dev' }); - await installServer({ context }); + await mergePackageJson({ + context, + serverDirectory: directory, + }); + await installServer({ context, directory }); context.sendTelemetry(); - await runDevServer({ context }); + await runDevServer({ context, directory }); } export default dev; diff --git a/packages/cli/src/commands/dev/runDevServer.js b/packages/cli/src/commands/dev/runDevServer.js index fdf96dd5e..504d7f2d2 100644 --- a/packages/cli/src/commands/dev/runDevServer.js +++ b/packages/cli/src/commands/dev/runDevServer.js @@ -16,13 +16,13 @@ import { spawnProcess } from '@lowdefy/node-utils'; -async function runDevServer({ context }) { +async function runDevServer({ context, directory }) { await spawnProcess({ logger: context.print, args: ['run', 'start'], command: context.packageManager, // npm or yarn processOptions: { - cwd: context.directories.dev, + cwd: directory, env: { ...process.env, LOWDEFY_BUILD_REF_RESOLVER: context.options.refResolver, diff --git a/packages/cli/src/commands/start/runStart.js b/packages/cli/src/commands/start/runStart.js index 2d785998f..2f20d39e9 100644 --- a/packages/cli/src/commands/start/runStart.js +++ b/packages/cli/src/commands/start/runStart.js @@ -16,14 +16,14 @@ import { spawnProcess } from '@lowdefy/node-utils'; -async function runStart({ context }) { +async function runStart({ context, directory }) { context.print.spin(`Running "${context.packageManager} run start".`); await spawnProcess({ logger: context.print, args: ['run', 'start'], command: context.packageManager, // npm or yarn processOptions: { - cwd: context.directories.server, + cwd: directory, env: { ...process.env, LOWDEFY_DIRECTORY_CONFIG: context.directories.config, diff --git a/packages/cli/src/commands/start/start.js b/packages/cli/src/commands/start/start.js index 80add2abf..c3ed933ed 100644 --- a/packages/cli/src/commands/start/start.js +++ b/packages/cli/src/commands/start/start.js @@ -21,7 +21,7 @@ import runStart from './runStart.js'; async function build({ context }) { context.print.info('Starting server.'); context.sendTelemetry({ sendTypes: true }); - await runStart({ context }); + await runStart({ context, directory: context.directory.server }); } export default build; diff --git a/packages/cli/src/utils/getServer.js b/packages/cli/src/utils/getServer.js index c029115dd..915c9099f 100644 --- a/packages/cli/src/utils/getServer.js +++ b/packages/cli/src/utils/getServer.js @@ -19,7 +19,7 @@ import path from 'path'; import { cleanDirectory, readFile } from '@lowdefy/node-utils'; import fetchNpmTarball from './fetchNpmTarball.js'; -async function getServer({ context, packageName }) { +async function getServer({ context, packageName, directory }) { if (context.lowdefyVersion === 'local') { context.print.warn(`Running local ${packageName}.`); return; @@ -27,28 +27,26 @@ async function getServer({ context, packageName }) { let fetchServer = false; - const serverExists = fs.existsSync(path.join(context.directories.server, 'package.json')); + const serverExists = fs.existsSync(path.join(directory, 'package.json')); if (!serverExists) fetchServer = true; if (serverExists) { - const serverPackageConfig = JSON.parse( - await readFile(path.join(context.directories.server, 'package.json')) - ); + const serverPackageConfig = JSON.parse(await readFile(path.join(directory, 'package.json'))); if (serverPackageConfig.version !== context.lowdefyVersion) { fetchServer = true; - context.print.warn(`Removing @lowdefy/server with version ${serverPackageConfig.version}`); - await cleanDirectory(context.directories.server); + context.print.warn(`Removing ${packageName} with version ${serverPackageConfig.version}`); + await cleanDirectory(directory); } } if (fetchServer) { - context.print.spin('Fetching @lowdefy/server from npm.'); + context.print.spin(`Fetching ${packageName} from npm.`); await fetchNpmTarball({ packageName, version: context.lowdefyVersion, - directory: context.directories.server, + directory: directory, }); - context.print.log('Fetched @lowdefy/server from npm.'); + context.print.log(`Fetched ${packageName} from npm.`); } } diff --git a/packages/cli/src/commands/dev/installServer.js b/packages/cli/src/utils/installServer.js similarity index 93% rename from packages/cli/src/commands/dev/installServer.js rename to packages/cli/src/utils/installServer.js index 3452a470e..3014b24b6 100644 --- a/packages/cli/src/commands/dev/installServer.js +++ b/packages/cli/src/utils/installServer.js @@ -21,7 +21,7 @@ const args = { yarn: ['install'], }; -async function installServer({ context }) { +async function installServer({ context, directory }) { context.print.spin(`Running ${context.packageManager} install.`); try { await spawnProcess({ @@ -29,7 +29,7 @@ async function installServer({ context }) { command: context.packageManager, // npm or yarn args: args[context.packageManager], processOptions: { - cwd: context.directories.dev, + cwd: directory, }, silent: false, }); diff --git a/packages/cli/src/utils/mergePackageJson.js b/packages/cli/src/utils/mergePackageJson.js new file mode 100644 index 000000000..1b30cf424 --- /dev/null +++ b/packages/cli/src/utils/mergePackageJson.js @@ -0,0 +1,34 @@ +/* + 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 path from 'path'; +import { mergeObjects } from '@lowdefy/helpers'; +import { readFile, writeFile } from '@lowdefy/node-utils'; + +async function mergePackageJson({ context, serverDirectory }) { + const serverPackageJsonPath = path.join(serverDirectory, 'package.json'); + const serverPackageJson = JSON.parse(await readFile(serverPackageJsonPath)); + const configPackageJson = JSON.parse( + await readFile(path.join(context.directories.config, 'package.json')) + ); + + const mergedPackageJson = mergeObjects([serverPackageJson, configPackageJson]); + + const mergedPackageJsonContent = JSON.stringify(mergedPackageJson, null, 2).concat('\n'); + await writeFile(serverPackageJsonPath, mergedPackageJsonContent); +} + +export default mergePackageJson; diff --git a/packages/cli/src/commands/build/runLowdefyBuild.js b/packages/cli/src/utils/runLowdefyBuild.js similarity index 94% rename from packages/cli/src/commands/build/runLowdefyBuild.js rename to packages/cli/src/utils/runLowdefyBuild.js index e1d062ec2..745c7ccfd 100644 --- a/packages/cli/src/commands/build/runLowdefyBuild.js +++ b/packages/cli/src/utils/runLowdefyBuild.js @@ -16,7 +16,7 @@ import { spawnProcess } from '@lowdefy/node-utils'; -async function runLowdefyBuild({ context }) { +async function runLowdefyBuild({ context, directory }) { context.print.log('Running Lowdefy build.'); try { await spawnProcess({ @@ -24,7 +24,7 @@ async function runLowdefyBuild({ context }) { command: context.packageManager, // npm or yarn args: ['run', 'build:lowdefy'], processOptions: { - cwd: context.directories.server, + cwd: directory, env: { ...process.env, LOWDEFY_BUILD_REF_RESOLVER: context.options.refResolver, diff --git a/packages/cli/src/commands/build/runNextBuild.js b/packages/cli/src/utils/runNextBuild.js similarity index 92% rename from packages/cli/src/commands/build/runNextBuild.js rename to packages/cli/src/utils/runNextBuild.js index f2c428944..4eb5efd46 100644 --- a/packages/cli/src/commands/build/runNextBuild.js +++ b/packages/cli/src/utils/runNextBuild.js @@ -16,7 +16,7 @@ import { spawnProcess } from '@lowdefy/node-utils'; -async function runNextBuild({ context }) { +async function runNextBuild({ context, directory }) { context.print.log('Running Next build.'); try { await spawnProcess({ @@ -24,7 +24,7 @@ async function runNextBuild({ context }) { command: context.packageManager, // npm or yarn args: ['run', 'build:next'], processOptions: { - cwd: context.directories.server, + cwd: directory, }, silent: false, }); diff --git a/packages/server-dev/src/components/App.js b/packages/server-dev/lib/components/App.js similarity index 100% rename from packages/server-dev/src/components/App.js rename to packages/server-dev/lib/components/App.js diff --git a/packages/server-dev/src/components/Context.js b/packages/server-dev/lib/components/Context.js similarity index 100% rename from packages/server-dev/src/components/Context.js rename to packages/server-dev/lib/components/Context.js diff --git a/packages/server-dev/src/components/Head.js b/packages/server-dev/lib/components/Head.js similarity index 100% rename from packages/server-dev/src/components/Head.js rename to packages/server-dev/lib/components/Head.js diff --git a/packages/server-dev/src/components/LowdefyContext.js b/packages/server-dev/lib/components/LowdefyContext.js similarity index 100% rename from packages/server-dev/src/components/LowdefyContext.js rename to packages/server-dev/lib/components/LowdefyContext.js diff --git a/packages/server-dev/src/components/Page.js b/packages/server-dev/lib/components/Page.js similarity index 100% rename from packages/server-dev/src/components/Page.js rename to packages/server-dev/lib/components/Page.js diff --git a/packages/server-dev/src/components/Reload.js b/packages/server-dev/lib/components/Reload.js similarity index 100% rename from packages/server-dev/src/components/Reload.js rename to packages/server-dev/lib/components/Reload.js diff --git a/packages/server-dev/src/components/block/Block.js b/packages/server-dev/lib/components/block/Block.js similarity index 100% rename from packages/server-dev/src/components/block/Block.js rename to packages/server-dev/lib/components/block/Block.js diff --git a/packages/server-dev/src/components/block/CategorySwitch.js b/packages/server-dev/lib/components/block/CategorySwitch.js similarity index 100% rename from packages/server-dev/src/components/block/CategorySwitch.js rename to packages/server-dev/lib/components/block/CategorySwitch.js diff --git a/packages/server-dev/src/components/block/Container.js b/packages/server-dev/lib/components/block/Container.js similarity index 100% rename from packages/server-dev/src/components/block/Container.js rename to packages/server-dev/lib/components/block/Container.js diff --git a/packages/server-dev/src/components/block/List.js b/packages/server-dev/lib/components/block/List.js similarity index 100% rename from packages/server-dev/src/components/block/List.js rename to packages/server-dev/lib/components/block/List.js diff --git a/packages/server-dev/src/components/block/LoadingBlock.js b/packages/server-dev/lib/components/block/LoadingBlock.js similarity index 100% rename from packages/server-dev/src/components/block/LoadingBlock.js rename to packages/server-dev/lib/components/block/LoadingBlock.js diff --git a/packages/server-dev/src/components/block/MountEvents.js b/packages/server-dev/lib/components/block/MountEvents.js similarity index 100% rename from packages/server-dev/src/components/block/MountEvents.js rename to packages/server-dev/lib/components/block/MountEvents.js diff --git a/packages/server-dev/src/components/createComponents.js b/packages/server-dev/lib/components/createComponents.js similarity index 100% rename from packages/server-dev/src/components/createComponents.js rename to packages/server-dev/lib/components/createComponents.js diff --git a/packages/server-dev/src/components/createLinkComponent.js b/packages/server-dev/lib/components/createLinkComponent.js similarity index 100% rename from packages/server-dev/src/components/createLinkComponent.js rename to packages/server-dev/lib/components/createLinkComponent.js diff --git a/packages/server-dev/src/utils/callRequest.js b/packages/server-dev/lib/utils/callRequest.js similarity index 100% rename from packages/server-dev/src/utils/callRequest.js rename to packages/server-dev/lib/utils/callRequest.js diff --git a/packages/server-dev/src/utils/request.js b/packages/server-dev/lib/utils/request.js similarity index 100% rename from packages/server-dev/src/utils/request.js rename to packages/server-dev/lib/utils/request.js diff --git a/packages/server-dev/src/utils/setPageId.js b/packages/server-dev/lib/utils/setPageId.js similarity index 100% rename from packages/server-dev/src/utils/setPageId.js rename to packages/server-dev/lib/utils/setPageId.js diff --git a/packages/server-dev/src/utils/setupLink.js b/packages/server-dev/lib/utils/setupLink.js similarity index 100% rename from packages/server-dev/src/utils/setupLink.js rename to packages/server-dev/lib/utils/setupLink.js diff --git a/packages/server-dev/src/utils/useMutateCache.js b/packages/server-dev/lib/utils/useMutateCache.js similarity index 100% rename from packages/server-dev/src/utils/useMutateCache.js rename to packages/server-dev/lib/utils/useMutateCache.js diff --git a/packages/server-dev/src/utils/usePageConfig.js b/packages/server-dev/lib/utils/usePageConfig.js similarity index 100% rename from packages/server-dev/src/utils/usePageConfig.js rename to packages/server-dev/lib/utils/usePageConfig.js diff --git a/packages/server-dev/src/utils/useRootConfig.js b/packages/server-dev/lib/utils/useRootConfig.js similarity index 100% rename from packages/server-dev/src/utils/useRootConfig.js rename to packages/server-dev/lib/utils/useRootConfig.js diff --git a/packages/server-dev/src/utils/waitForRestartedServer.js b/packages/server-dev/lib/utils/waitForRestartedServer.js similarity index 100% rename from packages/server-dev/src/utils/waitForRestartedServer.js rename to packages/server-dev/lib/utils/waitForRestartedServer.js diff --git a/packages/server-dev/src/manager/getContext.mjs b/packages/server-dev/manager/getContext.mjs similarity index 100% rename from packages/server-dev/src/manager/getContext.mjs rename to packages/server-dev/manager/getContext.mjs diff --git a/packages/server-dev/src/manager/processes/initialBuild.mjs b/packages/server-dev/manager/processes/initialBuild.mjs similarity index 100% rename from packages/server-dev/src/manager/processes/initialBuild.mjs rename to packages/server-dev/manager/processes/initialBuild.mjs diff --git a/packages/server-dev/src/manager/processes/installPlugins.mjs b/packages/server-dev/manager/processes/installPlugins.mjs similarity index 100% rename from packages/server-dev/src/manager/processes/installPlugins.mjs rename to packages/server-dev/manager/processes/installPlugins.mjs diff --git a/packages/server-dev/src/manager/processes/lowdefyBuild.mjs b/packages/server-dev/manager/processes/lowdefyBuild.mjs similarity index 100% rename from packages/server-dev/src/manager/processes/lowdefyBuild.mjs rename to packages/server-dev/manager/processes/lowdefyBuild.mjs diff --git a/packages/server-dev/src/manager/processes/nextBuild.mjs b/packages/server-dev/manager/processes/nextBuild.mjs similarity index 100% rename from packages/server-dev/src/manager/processes/nextBuild.mjs rename to packages/server-dev/manager/processes/nextBuild.mjs diff --git a/packages/server-dev/src/manager/processes/readDotEnv.mjs b/packages/server-dev/manager/processes/readDotEnv.mjs similarity index 100% rename from packages/server-dev/src/manager/processes/readDotEnv.mjs rename to packages/server-dev/manager/processes/readDotEnv.mjs diff --git a/packages/server-dev/src/manager/processes/reloadClients.mjs b/packages/server-dev/manager/processes/reloadClients.mjs similarity index 100% rename from packages/server-dev/src/manager/processes/reloadClients.mjs rename to packages/server-dev/manager/processes/reloadClients.mjs diff --git a/packages/server-dev/src/manager/processes/restartServer.mjs b/packages/server-dev/manager/processes/restartServer.mjs similarity index 100% rename from packages/server-dev/src/manager/processes/restartServer.mjs rename to packages/server-dev/manager/processes/restartServer.mjs diff --git a/packages/server-dev/src/manager/processes/shutdownServer.mjs b/packages/server-dev/manager/processes/shutdownServer.mjs similarity index 100% rename from packages/server-dev/src/manager/processes/shutdownServer.mjs rename to packages/server-dev/manager/processes/shutdownServer.mjs diff --git a/packages/server-dev/src/manager/processes/startNextServer.mjs b/packages/server-dev/manager/processes/startNextServer.mjs similarity index 100% rename from packages/server-dev/src/manager/processes/startNextServer.mjs rename to packages/server-dev/manager/processes/startNextServer.mjs diff --git a/packages/server-dev/src/manager/processes/startServer.mjs b/packages/server-dev/manager/processes/startServer.mjs similarity index 100% rename from packages/server-dev/src/manager/processes/startServer.mjs rename to packages/server-dev/manager/processes/startServer.mjs diff --git a/packages/server-dev/src/manager/processes/startWatchers.mjs b/packages/server-dev/manager/processes/startWatchers.mjs similarity index 100% rename from packages/server-dev/src/manager/processes/startWatchers.mjs rename to packages/server-dev/manager/processes/startWatchers.mjs diff --git a/packages/server-dev/src/manager/run.mjs b/packages/server-dev/manager/run.mjs similarity index 100% rename from packages/server-dev/src/manager/run.mjs rename to packages/server-dev/manager/run.mjs diff --git a/packages/server-dev/src/manager/utils/BatchChanges.mjs b/packages/server-dev/manager/utils/BatchChanges.mjs similarity index 100% rename from packages/server-dev/src/manager/utils/BatchChanges.mjs rename to packages/server-dev/manager/utils/BatchChanges.mjs diff --git a/packages/server-dev/src/manager/utils/getLowdefyVersion.mjs b/packages/server-dev/manager/utils/getLowdefyVersion.mjs similarity index 100% rename from packages/server-dev/src/manager/utils/getLowdefyVersion.mjs rename to packages/server-dev/manager/utils/getLowdefyVersion.mjs diff --git a/packages/server-dev/src/manager/utils/setupWatcher.mjs b/packages/server-dev/manager/utils/setupWatcher.mjs similarity index 100% rename from packages/server-dev/src/manager/utils/setupWatcher.mjs rename to packages/server-dev/manager/utils/setupWatcher.mjs diff --git a/packages/server-dev/src/manager/utils/spawnProcess.mjs b/packages/server-dev/manager/utils/spawnProcess.mjs similarity index 100% rename from packages/server-dev/src/manager/utils/spawnProcess.mjs rename to packages/server-dev/manager/utils/spawnProcess.mjs diff --git a/packages/server-dev/src/manager/watchers/envWatcher.mjs b/packages/server-dev/manager/watchers/envWatcher.mjs similarity index 100% rename from packages/server-dev/src/manager/watchers/envWatcher.mjs rename to packages/server-dev/manager/watchers/envWatcher.mjs diff --git a/packages/server-dev/src/manager/watchers/lowdefyBuildWatcher.mjs b/packages/server-dev/manager/watchers/lowdefyBuildWatcher.mjs similarity index 100% rename from packages/server-dev/src/manager/watchers/lowdefyBuildWatcher.mjs rename to packages/server-dev/manager/watchers/lowdefyBuildWatcher.mjs diff --git a/packages/server-dev/src/manager/watchers/nextBuildWatcher.mjs b/packages/server-dev/manager/watchers/nextBuildWatcher.mjs similarity index 100% rename from packages/server-dev/src/manager/watchers/nextBuildWatcher.mjs rename to packages/server-dev/manager/watchers/nextBuildWatcher.mjs diff --git a/packages/server-dev/package.json b/packages/server-dev/package.json index 852f66f83..190f6f2d2 100644 --- a/packages/server-dev/package.json +++ b/packages/server-dev/package.json @@ -34,8 +34,7 @@ "scripts": { "build:lowdefy": "lowdefy-build", "build:next": "next build", - "dev": "next dev", - "start": "node src/manager/run.mjs", + "start": "node manager/run.mjs", "lint": "next lint", "next": "next" }, @@ -63,7 +62,6 @@ "@lowdefy/operators-yaml": "4.0.0-alpha.7", "chokidar": "3.5.3", "dotenv": "15.0.0", - "js-yaml": "4.1.0", "next": "12.0.10", "next-auth": "4.1.2", "opener": "1.5.2", @@ -71,6 +69,7 @@ "react-dom": "17.0.2", "react-icons": "4.3.1", "swr": "1.1.2", + "yaml": "2.0.0-10", "yargs": "17.3.1" }, "devDependencies": { diff --git a/packages/server-dev/src/pages/404.js b/packages/server-dev/pages/404.js similarity index 93% rename from packages/server-dev/src/pages/404.js rename to packages/server-dev/pages/404.js index ce4cec47f..eb3e01419 100644 --- a/packages/server-dev/src/pages/404.js +++ b/packages/server-dev/pages/404.js @@ -14,6 +14,6 @@ limitations under the License. */ -import App from '../components/App.js'; +import App from '../lib/components/App.js'; export default App; diff --git a/packages/server-dev/src/pages/[pageId].js b/packages/server-dev/pages/[pageId].js similarity index 93% rename from packages/server-dev/src/pages/[pageId].js rename to packages/server-dev/pages/[pageId].js index ce4cec47f..eb3e01419 100644 --- a/packages/server-dev/src/pages/[pageId].js +++ b/packages/server-dev/pages/[pageId].js @@ -14,6 +14,6 @@ limitations under the License. */ -import App from '../components/App.js'; +import App from '../lib/components/App.js'; export default App; diff --git a/packages/server/src/pages/_app.js b/packages/server-dev/pages/_app.js similarity index 90% rename from packages/server/src/pages/_app.js rename to packages/server-dev/pages/_app.js index 550ea33cf..d5177f59c 100644 --- a/packages/server/src/pages/_app.js +++ b/packages/server-dev/pages/_app.js @@ -19,9 +19,9 @@ import dynamic from 'next/dynamic'; import { ErrorBoundary } from '@lowdefy/block-utils'; -import LowdefyContext from '../components/LowdefyContext.js'; +import LowdefyContext from '../lib/components/LowdefyContext.js'; -import '../../build/plugins/styles.less'; +import '../build/plugins/styles.less'; const lowdefy = {}; diff --git a/packages/server-dev/src/pages/_document.js b/packages/server-dev/pages/_document.js similarity index 100% rename from packages/server-dev/src/pages/_document.js rename to packages/server-dev/pages/_document.js diff --git a/packages/server-dev/src/pages/api/auth/[...nextauth].js b/packages/server-dev/pages/api/auth/[...nextauth].js similarity index 100% rename from packages/server-dev/src/pages/api/auth/[...nextauth].js rename to packages/server-dev/pages/api/auth/[...nextauth].js diff --git a/packages/server-dev/src/pages/api/page/[pageId].js b/packages/server-dev/pages/api/page/[pageId].js similarity index 100% rename from packages/server-dev/src/pages/api/page/[pageId].js rename to packages/server-dev/pages/api/page/[pageId].js diff --git a/packages/server-dev/src/pages/api/ping.js b/packages/server-dev/pages/api/ping.js similarity index 100% rename from packages/server-dev/src/pages/api/ping.js rename to packages/server-dev/pages/api/ping.js diff --git a/packages/server-dev/src/pages/api/reload.js b/packages/server-dev/pages/api/reload.js similarity index 100% rename from packages/server-dev/src/pages/api/reload.js rename to packages/server-dev/pages/api/reload.js diff --git a/packages/server-dev/src/pages/api/request/[pageId]/[requestId].js b/packages/server-dev/pages/api/request/[pageId]/[requestId].js similarity index 91% rename from packages/server-dev/src/pages/api/request/[pageId]/[requestId].js rename to packages/server-dev/pages/api/request/[pageId]/[requestId].js index a8c5d2d18..2df306131 100644 --- a/packages/server-dev/src/pages/api/request/[pageId]/[requestId].js +++ b/packages/server-dev/pages/api/request/[pageId]/[requestId].js @@ -16,8 +16,8 @@ import { callRequest, createApiContext } from '@lowdefy/api'; import { getSecretsFromEnv } from '@lowdefy/node-utils'; -import connections from '../../../../../build/plugins/connections.js'; -import operators from '../../../../../build/plugins/operatorsServer.js'; +import connections from '../../../../build/plugins/connections.js'; +import operators from '../../../../build/plugins/operatorsServer.js'; export default async function handler(req, res) { try { diff --git a/packages/server-dev/src/pages/api/root.js b/packages/server-dev/pages/api/root.js similarity index 100% rename from packages/server-dev/src/pages/api/root.js rename to packages/server-dev/pages/api/root.js diff --git a/packages/server-dev/src/pages/index.js b/packages/server-dev/pages/index.js similarity index 93% rename from packages/server-dev/src/pages/index.js rename to packages/server-dev/pages/index.js index ce4cec47f..eb3e01419 100644 --- a/packages/server-dev/src/pages/index.js +++ b/packages/server-dev/pages/index.js @@ -14,6 +14,6 @@ limitations under the License. */ -import App from '../components/App.js'; +import App from '../lib/components/App.js'; export default App; diff --git a/packages/server/src/components/Context.js b/packages/server/lib/components/Context.js similarity index 100% rename from packages/server/src/components/Context.js rename to packages/server/lib/components/Context.js diff --git a/packages/server/src/components/Head.js b/packages/server/lib/components/Head.js similarity index 100% rename from packages/server/src/components/Head.js rename to packages/server/lib/components/Head.js diff --git a/packages/server/src/components/LowdefyContext.js b/packages/server/lib/components/LowdefyContext.js similarity index 100% rename from packages/server/src/components/LowdefyContext.js rename to packages/server/lib/components/LowdefyContext.js diff --git a/packages/server/src/components/Page.js b/packages/server/lib/components/Page.js similarity index 100% rename from packages/server/src/components/Page.js rename to packages/server/lib/components/Page.js diff --git a/packages/server/src/components/block/Block.js b/packages/server/lib/components/block/Block.js similarity index 100% rename from packages/server/src/components/block/Block.js rename to packages/server/lib/components/block/Block.js diff --git a/packages/server/src/components/block/CategorySwitch.js b/packages/server/lib/components/block/CategorySwitch.js similarity index 100% rename from packages/server/src/components/block/CategorySwitch.js rename to packages/server/lib/components/block/CategorySwitch.js diff --git a/packages/server/src/components/block/Container.js b/packages/server/lib/components/block/Container.js similarity index 100% rename from packages/server/src/components/block/Container.js rename to packages/server/lib/components/block/Container.js diff --git a/packages/server/src/components/block/List.js b/packages/server/lib/components/block/List.js similarity index 100% rename from packages/server/src/components/block/List.js rename to packages/server/lib/components/block/List.js diff --git a/packages/server/src/components/block/LoadingBlock.js b/packages/server/lib/components/block/LoadingBlock.js similarity index 100% rename from packages/server/src/components/block/LoadingBlock.js rename to packages/server/lib/components/block/LoadingBlock.js diff --git a/packages/server/src/components/block/MountEvents.js b/packages/server/lib/components/block/MountEvents.js similarity index 100% rename from packages/server/src/components/block/MountEvents.js rename to packages/server/lib/components/block/MountEvents.js diff --git a/packages/server/src/components/createComponents.js b/packages/server/lib/components/createComponents.js similarity index 100% rename from packages/server/src/components/createComponents.js rename to packages/server/lib/components/createComponents.js diff --git a/packages/server/src/components/createLinkComponent.js b/packages/server/lib/components/createLinkComponent.js similarity index 100% rename from packages/server/src/components/createLinkComponent.js rename to packages/server/lib/components/createLinkComponent.js diff --git a/packages/server/src/utils/callRequest.js b/packages/server/lib/utils/callRequest.js similarity index 100% rename from packages/server/src/utils/callRequest.js rename to packages/server/lib/utils/callRequest.js diff --git a/packages/server/src/utils/request.js b/packages/server/lib/utils/request.js similarity index 100% rename from packages/server/src/utils/request.js rename to packages/server/lib/utils/request.js diff --git a/packages/server/src/utils/setupLink.js b/packages/server/lib/utils/setupLink.js similarity index 100% rename from packages/server/src/utils/setupLink.js rename to packages/server/lib/utils/setupLink.js diff --git a/packages/server/next.config.js b/packages/server/next.config.js index 3f2aaa47f..1d7e1e6ea 100644 --- a/packages/server/next.config.js +++ b/packages/server/next.config.js @@ -1,7 +1,7 @@ const withLess = require('next-with-less'); const lowdefyConfig = require('./build/config.json'); -// TODO: Trance env and args from cli that is required on the server. +// TODO: Trace env and args from cli that is required on the server. module.exports = withLess({ basePath: process.env.LOWDEFY_BASE_PATH || lowdefyConfig.basePath, lessLoaderOptions: { diff --git a/packages/server/src/pages/404.js b/packages/server/pages/404.js similarity index 95% rename from packages/server/src/pages/404.js rename to packages/server/pages/404.js index 3c59f283f..ee71c8298 100644 --- a/packages/server/src/pages/404.js +++ b/packages/server/pages/404.js @@ -16,7 +16,7 @@ import { createApiContext, getPageConfig, getRootConfig } from '@lowdefy/api'; -import Page from '../components/Page.js'; +import Page from '../lib/components/Page.js'; export async function getStaticProps() { // TODO: get the right api context options diff --git a/packages/server/src/pages/[pageId].js b/packages/server/pages/[pageId].js similarity index 96% rename from packages/server/src/pages/[pageId].js rename to packages/server/pages/[pageId].js index d4efec5c4..6c616477f 100644 --- a/packages/server/src/pages/[pageId].js +++ b/packages/server/pages/[pageId].js @@ -16,7 +16,7 @@ import { createApiContext, getPageConfig, getRootConfig } from '@lowdefy/api'; -import Page from '../components/Page.js'; +import Page from '../lib/components/Page.js'; export async function getServerSideProps(context) { const { pageId } = context.params; diff --git a/packages/server-dev/src/pages/_app.js b/packages/server/pages/_app.js similarity index 90% rename from packages/server-dev/src/pages/_app.js rename to packages/server/pages/_app.js index 82bf78128..0c306e874 100644 --- a/packages/server-dev/src/pages/_app.js +++ b/packages/server/pages/_app.js @@ -18,9 +18,9 @@ import React from 'react'; import { ErrorBoundary } from '@lowdefy/block-utils'; -import LowdefyContext from '../components/LowdefyContext.js'; +import LowdefyContext from '../lib/components/LowdefyContext.js'; -import '../../build/plugins/styles.less'; +import '../build/plugins/styles.less'; const lowdefy = {}; diff --git a/packages/server/src/pages/_document.js b/packages/server/pages/_document.js similarity index 100% rename from packages/server/src/pages/_document.js rename to packages/server/pages/_document.js diff --git a/packages/server/src/pages/api/auth/[...nextauth].js b/packages/server/pages/api/auth/[...nextauth].js similarity index 100% rename from packages/server/src/pages/api/auth/[...nextauth].js rename to packages/server/pages/api/auth/[...nextauth].js diff --git a/packages/server/src/pages/api/request/[pageId]/[requestId].js b/packages/server/pages/api/request/[pageId]/[requestId].js similarity index 90% rename from packages/server/src/pages/api/request/[pageId]/[requestId].js rename to packages/server/pages/api/request/[pageId]/[requestId].js index 054f6ac84..ca297f150 100644 --- a/packages/server/src/pages/api/request/[pageId]/[requestId].js +++ b/packages/server/pages/api/request/[pageId]/[requestId].js @@ -16,8 +16,8 @@ import { callRequest, createApiContext } from '@lowdefy/api'; import { getSecretsFromEnv } from '@lowdefy/node-utils'; -import connections from '../../../../../build/plugins/connections.js'; -import operators from '../../../../../build/plugins/operatorsServer.js'; +import connections from '../../../../build/plugins/connections.js'; +import operators from '../../../../build/plugins/operatorsServer.js'; export default async function handler(req, res) { try { diff --git a/packages/server/src/pages/index.js b/packages/server/pages/index.js similarity index 96% rename from packages/server/src/pages/index.js rename to packages/server/pages/index.js index 18395368e..b679e46de 100644 --- a/packages/server/src/pages/index.js +++ b/packages/server/pages/index.js @@ -16,7 +16,7 @@ import { createApiContext, getPageConfig, getRootConfig } from '@lowdefy/api'; -import Page from '../components/Page.js'; +import Page from '../lib/components/Page.js'; export async function getServerSideProps() { // TODO: is this build directory configurable from the cli? diff --git a/packages/utils/helpers/src/mergeObjects.test.js b/packages/utils/helpers/src/mergeObjects.test.js index 1fa62182b..ad763cfb0 100644 --- a/packages/utils/helpers/src/mergeObjects.test.js +++ b/packages/utils/helpers/src/mergeObjects.test.js @@ -96,3 +96,13 @@ test('merge list of objects, larger indices overwrite smaller', () => { } `); }); + +test('merge objects with null', () => { + const obj = { + a: 'a', + b: 1, + c: { a: 'b' }, + }; + expect(mergeObjects([obj, null])).toEqual(obj); + expect(mergeObjects([null, obj])).toEqual(obj); +}); diff --git a/yarn.lock b/yarn.lock index 4e956e2f4..490362aec 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2650,7 +2650,6 @@ __metadata: "@next/eslint-plugin-next": 12.0.10 chokidar: 3.5.3 dotenv: 15.0.0 - js-yaml: 4.1.0 less: 4.1.2 less-loader: 10.2.0 next: 12.0.10 @@ -2661,6 +2660,7 @@ __metadata: react-dom: 17.0.2 react-icons: 4.3.1 swr: 1.1.2 + yaml: 2.0.0-10 yargs: 17.3.1 languageName: unknown linkType: soft