diff --git a/packages/xod-cli/.gitignore b/packages/xod-cli/.gitignore index e660fd93..02c31b35 100644 --- a/packages/xod-cli/.gitignore +++ b/packages/xod-cli/.gitignore @@ -1 +1,2 @@ bin/ +__lib__/ diff --git a/packages/xod-cli/package.json b/packages/xod-cli/package.json index edee8f64..f9e2109d 100644 --- a/packages/xod-cli/package.json +++ b/packages/xod-cli/package.json @@ -3,7 +3,9 @@ "version": "0.14.0", "description": "XOD project: Command Line Interface", "scripts": { - "build": "babel src/ -d bin/ --source-maps", + "build:workspace": "cpx \"../../workspace/__lib__/**\" \"./__lib__\"", + "build:src": "babel src/ -d bin/ --source-maps", + "build": "yarn run build:src && yarn run build:workspace", "dev": "yarn run build --watch", "test": "mocha test/**/*.spec.js" }, @@ -33,6 +35,7 @@ "devDependencies": { "chai": "^4.0.0", "child-process-promise": "^2.2.1", + "cpx": "^1.5.0", "fs-extra": "^3.0.1" } } diff --git a/packages/xod-cli/src/xodc-install.js b/packages/xod-cli/src/xodc-install.js index 2101853f..bec1a348 100644 --- a/packages/xod-cli/src/xodc-install.js +++ b/packages/xod-cli/src/xodc-install.js @@ -101,8 +101,10 @@ export default function install(swaggerUrl, libUri, path2) { xodFs.findClosestWorkspaceDir(path2), ]) .then(([libUri2, swaggerClient, workspaceDir]) => { - const orgDir = path.resolve(workspaceDir, 'lib', - xodFs.fsSafeName(libUri2.orgname)); + const orgDir = path.resolve( + xodFs.resolveLibPath(workspaceDir), + xodFs.fsSafeName(libUri2.orgname) + ); const libDir = path.resolve(orgDir, xodFs.fsSafeName(libUri2.libname)); return libDirDoesNotExist(libDir, libUri2) .then(() => getProject(swaggerClient, libUri2)) diff --git a/packages/xod-cli/src/xodc-pack.js b/packages/xod-cli/src/xodc-pack.js index 97585e6a..68d20ea0 100644 --- a/packages/xod-cli/src/xodc-pack.js +++ b/packages/xod-cli/src/xodc-pack.js @@ -12,7 +12,7 @@ export default (projectDir, output) => { msg.notice(`Packing ${dirName} into ${output} ...`); - loadProjectWithLibs(projectPath, workspace) + loadProjectWithLibs([], projectPath, workspace) .then(({ project, libs }) => pack(project, libs)) .then(packed => writeJSON(output, packed)) .then(() => { diff --git a/packages/xod-cli/src/xodc-transpile.js b/packages/xod-cli/src/xodc-transpile.js index d823ba47..39dc5a7e 100644 --- a/packages/xod-cli/src/xodc-transpile.js +++ b/packages/xod-cli/src/xodc-transpile.js @@ -8,6 +8,8 @@ import { loadProject, readJSON, writeFile } from 'xod-fs'; import { transformProject, transpile } from 'xod-arduino'; import * as msg from './messages'; +const bundledLibs = path.resolve(__dirname, '../__lib__'); + const showErrorAndExit = (err) => { msg.error(err); process.exit(1); @@ -38,7 +40,7 @@ export default (input, patchPath, program) => { } if (isDirectory) { - loadProject(dir) + loadProject(dir, [bundledLibs]) .then(resolve) .catch(reject); } diff --git a/packages/xod-client-electron/package.json b/packages/xod-client-electron/package.json index 7c1e961e..03742e16 100644 --- a/packages/xod-client-electron/package.json +++ b/packages/xod-client-electron/package.json @@ -7,10 +7,10 @@ "name": "xod-client-electron", "version": "0.14.0", "scripts": { - "copy-workspace": "cpx \"../../workspace/**/*\" \"src-babel/workspace\"", + "build:workspace": "cpx \"../../workspace/**/*\" \"src-babel/workspace\"", "build:gui": "webpack --colors", "build:app": "babel src/app/ -d src-babel/app/ && babel src/shared/ -d src-babel/shared/", - "build": "yarn build:gui && yarn build:app && yarn copy-workspace", + "build": "yarn build:gui && yarn build:app && yarn build:workspace", "start": "electron .", "postinstall": "electron-builder install-app-deps", "test": "electron-mocha ./test", diff --git a/packages/xod-client-electron/src/app/workspaceActions.js b/packages/xod-client-electron/src/app/workspaceActions.js index d48317d5..c3e72a7b 100644 --- a/packages/xod-client-electron/src/app/workspaceActions.js +++ b/packages/xod-client-electron/src/app/workspaceActions.js @@ -4,8 +4,8 @@ import path from 'path'; import * as XP from 'xod-project'; import { + resolveLibPath, spawnWorkspaceFile, - spawnStdLib, spawnDefaultProject, saveProject, getLocalProjects, @@ -14,7 +14,6 @@ import { getFilePath, filterDefaultProject, findProjectMetaByName, - resolveLibPath, resolveDefaultProjectPath, ensureWorkspacePath, ERROR_CODES as FS_ERROR_CODES, @@ -32,6 +31,7 @@ import * as EVENTS from '../shared/events'; export const getPathToBundledWorkspace = () => path.resolve(__dirname, '../workspace'); +export const getPathToBundledLibs = () => resolveLibPath(getPathToBundledWorkspace()); // ============================================================================= // @@ -86,8 +86,6 @@ export const updateWorkspace = R.curry( // // ============================================================================= -// :: () -> Path -const getStdLibPath = () => resolveLibPath(getPathToBundledWorkspace()); // :: () -> Path export const getDefaultProjectPath = () => resolveDefaultProjectPath(getPathToBundledWorkspace()); @@ -150,10 +148,6 @@ export const saveWorkspacePath = workspacePath => R.compose( settings.load )(); -// :: Path -> Promise Path Error -const spawnWorkspace = workspacePath => spawnWorkspaceFile(workspacePath) - .then(spawnStdLib(getStdLibPath())); - // :: (String -> a -> ()) ->Path -> Promise ProjectMeta[] Error const spawnAndLoadDefaultProject = (send, workspacePath) => spawnDefaultProject(getDefaultProjectPath(), workspacePath) @@ -204,7 +198,7 @@ export const onOpenProject = R.curry( // :: (String -> a -> ()) -> (() -> Path) -> Path -> Promise Project Error export const onSelectProject = R.curry( (send, pathGetter, projectMeta) => pathGetter() - .then(() => loadProject(getFilePath(projectMeta))) + .then(() => loadProject(getFilePath(projectMeta), [getPathToBundledLibs()])) .then(requestShowProject(send)) .catch(R.ifElse( R.prop('errorCode'), @@ -217,7 +211,7 @@ export const onSelectProject = R.curry( // :: (String -> a -> ()) -> (Path -> Promise Path Error) -> Path -> Promise ProjectMeta[] Error export const onCreateWorkspace = R.curry( (send, pathSaver, workspacePath) => R.pipeP( - spawnWorkspace, + spawnWorkspaceFile, pathSaver, updateWorkspace(send, ''), loadProjectsOrSpawnDefault(send) diff --git a/packages/xod-fs/src/constants.js b/packages/xod-fs/src/constants.js index 28635b81..fee2cd21 100644 --- a/packages/xod-fs/src/constants.js +++ b/packages/xod-fs/src/constants.js @@ -1,7 +1,7 @@ export const WORKSPACE_FILENAME = '.xodworkspace'; export const DEFAULT_WORKSPACE_PATH = '~/xod/'; export const DEFAULT_PROJECT_NAME = 'welcome-to-xod'; -export const LIBS_FOLDERNAME = 'lib'; +export const LIBS_DIRNAME = '__lib__'; export const IMPL_FILENAMES = { cpp: 'any.cpp', diff --git a/packages/xod-fs/src/index.js b/packages/xod-fs/src/index.js index b21ff405..e40967db 100644 --- a/packages/xod-fs/src/index.js +++ b/packages/xod-fs/src/index.js @@ -13,7 +13,7 @@ export { loadProjectWithLibs, loadProjectWithoutLibs, } from './load'; -export { loadAllLibs } from './loadLibs'; +export { loadLibsFromWorkspaceList } from './loadLibs'; export * from './utils'; export { findClosestProjectDir, diff --git a/packages/xod-fs/src/load.js b/packages/xod-fs/src/load.js index e6796bca..0c166f19 100644 --- a/packages/xod-fs/src/load.js +++ b/packages/xod-fs/src/load.js @@ -7,11 +7,12 @@ import * as XP from 'xod-project'; import pack from './pack'; import { findClosestWorkspaceDir } from './find'; -import { loadAllLibs } from './loadLibs'; +import { loadLibs } from './loadLibs'; import { readDir, readJSON } from './read'; import * as ERROR_CODES from './errorCodes'; import { resolvePath, + resolveLibPath, resolveProjectFile, isLocalProjectDirectory, basenameEquals, @@ -122,35 +123,61 @@ export const loadProjectWithoutLibs = projectPath => R.composeP( readDir )(projectPath); -// :: Path -> Path -> Path -> Promise [File] Error -export const loadProjectWithLibs = (projectPath, workspace, libWorkspace = workspace) => { - const fullProjectPath = resolvePath(path.resolve(workspace, projectPath)); - const libPath = resolvePath(libWorkspace); +// :: [Path] -> Path -> Path -> Promise [File] Error +export const loadProjectWithLibs = R.curry( + (extraLibDirs, projectPath, workspace) => { + const fullProjectPath = resolvePath(path.resolve(workspace, projectPath)); + const userLibsPath = resolveLibPath(workspace); - return Promise.all([ - loadProjectWithoutLibs(fullProjectPath), - loadAllLibs(libPath), - ]).then(([projectFiles, libs]) => ({ project: projectFiles, libs })) - .catch(err => Promise.reject( - Object.assign(err, { - libPath, - fullProjectPath, - workspace, - }) - )); -}; + const libDirPaths = R.compose( + R.concat([userLibsPath]), + R.map(resolvePath) + )(extraLibDirs); + + return Promise.all([ + loadProjectWithoutLibs(fullProjectPath), + loadLibs(libDirPaths), + ]).then(([projectFiles, libs]) => ({ project: projectFiles, libs })) + .catch(err => Promise.reject( + Object.assign(err, { + libPath: userLibsPath, + fullProjectPath, + workspace, + }) + )); + } +); // :: Path -> Promise Project Error -// -// Loads a regular XOD project placed in a workspace. The workspace and project -// name are determined by path provided. It is expected to be a path to the -// project directory, e.g. `/path/to/workspace/my-proj`. -// -// Returns a Promise of complete `Project` (see `xod-project`). -export const loadProject = projectPath => +/** + * Loads a regular XOD project placed in a workspace. Workspace and project + * names are determined by path provided. It is expected to be a path to the + * project directory, e.g. `/path/to/workspace/my-proj`. + * + * Also it loads libraries from libs directory inside of the user workspace + * and from `extraLibDirs` list, if it is not empty. + * The lib directory in the user workspace has a highest priority, + * all extra lib dirs has a smaller priority in accordance to its index + * (more index is less priority). + * + * If lib directories contains libraries with the same names — only one will + * be loaded, from lib directory with the highest priority. + * + * E.G. + * - user workspace contains `xod/units` + * - extraLibDir[0] contains `xod/core`, `xod/common-hardware`, `xod/units` + * - extraLibDir[1] contains `xod/core`, `xod/awesome` + * As a result: + * - `xod/units` will be loaded from user workspace + * - `xod/core` and `xod/common-hardware` will be loaded from extraLibDir[0] + * - `xod/awesome` will be loaded from extraLibDir[1] + * + * Returns a Promise of complete `Project` (see `xod-project`). + */ +export const loadProject = (projectPath, extraLibDirs = []) => findClosestWorkspaceDir(projectPath) .then(workspace => [path.relative(workspace, projectPath), workspace]) - .then(R.apply(loadProjectWithLibs)) + .then(R.apply(loadProjectWithLibs(extraLibDirs))) .then(({ project, libs }) => pack(project, libs)) .then(XP.injectProjectTypeHints) .then(XP.resolveNodeTypesInProject); diff --git a/packages/xod-fs/src/loadLibs.js b/packages/xod-fs/src/loadLibs.js index e0fab487..09fc809e 100644 --- a/packages/xod-fs/src/loadLibs.js +++ b/packages/xod-fs/src/loadLibs.js @@ -2,10 +2,10 @@ import R from 'ramda'; import path from 'path'; import * as XP from 'xod-project'; +import { uniqLists } from 'xod-func-tools'; import { readDir, readJSON } from './read'; import { - resolvePath, getPatchName, hasExt, rejectOnInvalidPatchFileContents, @@ -17,18 +17,19 @@ import { addMissingOptionsToPatchFileContents, } from './convertTypes'; -const scanLibsFolder = (libs, libsDir) => Promise.all( - libs.map( - lib => readDir(path.resolve(libsDir, lib)) - .then(R.filter(hasExt('.xodp'))) - .catch((err) => { - throw Object.assign(err, { - path: path.resolve(libsDir, lib), - libName: lib, - }); - }) - )) - .then(R.zipObj(libs)); +const scanLibsFolder = (libs, libsDir) => + Promise.all( + libs.map( + lib => readDir(path.resolve(libsDir, lib)) + .then(R.filter(hasExt('.xodp'))) + .catch((err) => { + throw Object.assign(err, { + path: path.resolve(libsDir, lib), + libName: lib, + }); + }) + )) + .then(R.zipObj(libs)); const readLibFiles = (libfiles) => { const libNames = Object.keys(libfiles); @@ -55,12 +56,10 @@ const readLibFiles = (libfiles) => { return Promise.all(libPromises); }; -export const loadLibs = (libs, workspace) => { - const libsDir = path.resolve(resolvePath(workspace), 'lib'); - return scanLibsFolder(libs, libsDir) +export const loadLibrary = (libs, libsDir) => + scanLibsFolder(libs, libsDir) .then(readLibFiles) .then(R.indexBy(XP.getPatchPath)); -}; // extract libNames from paths to xod-files // for example: '/Users/vasya/xod/lib/xod/core/and/patch.xodm' -> 'xod/core' @@ -77,16 +76,15 @@ const extractLibNamesFromFilenames = libsDir => R.compose( ) ); -export const loadAllLibs = (workspace) => { - const libsDir = path.resolve(resolvePath(workspace), 'lib'); +// :: Path -> Promise [LibName] +const scanForLibNames = (libDir) => { const folder = '.'; - return scanLibsFolder([folder], libsDir) - .then(R.compose( - extractLibNamesFromFilenames(libsDir), - R.prop(folder) - )) - .then(libs => loadLibs(libs, workspace)) + return R.composeP( + extractLibNamesFromFilenames(libDir), + R.prop(folder), + scanLibsFolder + )([folder], libDir) .catch((err) => { // Catch error ENOENT in case if libsDir is not found. // E.G. User deleted it before select project. @@ -95,3 +93,20 @@ export const loadAllLibs = (workspace) => { return Promise.reject(err); }); }; + +// :: [Path] -> Map PatchPath Patch +export const loadLibs = libDirs => R.composeP( + R.mergeAll, + R.unnest, + libPairs => Promise.all( + R.map( + ([libDir, libs]) => loadLibrary(libs, libDir), + libPairs + ) + ), + R.toPairs, + R.reject(R.isEmpty), + R.zipObj(libDirs), + uniqLists, + libDir => Promise.all(R.map(scanForLibNames, libDir)) +)(libDirs); diff --git a/packages/xod-fs/src/spawn.js b/packages/xod-fs/src/spawn.js index 902b44a0..35fdfd8a 100644 --- a/packages/xod-fs/src/spawn.js +++ b/packages/xod-fs/src/spawn.js @@ -4,7 +4,7 @@ import copy from 'recursive-copy'; import { rejectWithCode } from 'xod-func-tools'; import { writeFile } from './write'; -import { resolvePath, resolveLibPath, resolveDefaultProjectPath } from './utils'; +import { resolvePath, resolveDefaultProjectPath } from './utils'; import { WORKSPACE_FILENAME } from './constants'; import * as ERROR_CODES from './errorCodes'; @@ -20,13 +20,6 @@ export const spawnWorkspaceFile = workspacePath => .then(() => workspacePath) .catch(rejectWithCode(ERROR_CODES.CANT_CREATE_WORKSPACE_FILE)); -// :: Path -> Promise Path Error -export const spawnStdLib = curry((stdLibPath, workspacePath) => - copy(stdLibPath, resolveLibPath(workspacePath), copyOptions) - .then(() => workspacePath) - .catch(rejectWithCode(ERROR_CODES.CANT_COPY_STDLIB)) -); - // :: Path -> Promise Path Error export const spawnDefaultProject = curry((defaultProjectPath, workspacePath) => copy(defaultProjectPath, resolveDefaultProjectPath(workspacePath), copyOptions) diff --git a/packages/xod-fs/src/utils.js b/packages/xod-fs/src/utils.js index 94224909..35124d5d 100644 --- a/packages/xod-fs/src/utils.js +++ b/packages/xod-fs/src/utils.js @@ -16,7 +16,7 @@ import { PatchFileContents, Path, def } from './types'; import { DEFAULT_WORKSPACE_PATH, DEFAULT_PROJECT_NAME, - LIBS_FOLDERNAME, + LIBS_DIRNAME, WORKSPACE_FILENAME, IMPL_FILENAMES, } from './constants'; @@ -231,7 +231,7 @@ export const resolveWorkspacePath = R.compose( export const resolveLibPath = def( 'resolveLibPath :: Path -> Path', workspacePath => path.resolve( - workspacePath, LIBS_FOLDERNAME + workspacePath, LIBS_DIRNAME ) ); export const resolveDefaultProjectPath = def( @@ -265,18 +265,11 @@ const isWorkspaceDirEmptyOrNotExist = def( R.T ) ); -const doesWorkspaceHaveStdLib = def( - 'doesWorkspaceHaveStdLib :: Path -> Boolean', - R.compose( - doesDirectoryExist, - resolveLibPath - ) -); // :: Path -> Promise Path Error export const isWorkspaceValid = R.cond([ [ - R.both(doesWorkspaceFileExist, doesWorkspaceHaveStdLib), + doesWorkspaceFileExist, Promise.resolve.bind(Promise), ], [ diff --git a/packages/xod-fs/test/fixtures/broken-workspace/lib/user/broken/patch-with-missing-stuff/patch.xodp b/packages/xod-fs/test/fixtures/broken-workspace/__lib__/user/broken/patch-with-missing-stuff/patch.xodp similarity index 100% rename from packages/xod-fs/test/fixtures/broken-workspace/lib/user/broken/patch-with-missing-stuff/patch.xodp rename to packages/xod-fs/test/fixtures/broken-workspace/__lib__/user/broken/patch-with-missing-stuff/patch.xodp diff --git a/packages/xod-fs/test/fixtures/broken-workspace/lib/user/broken/project.xod b/packages/xod-fs/test/fixtures/broken-workspace/__lib__/user/broken/project.xod similarity index 100% rename from packages/xod-fs/test/fixtures/broken-workspace/lib/user/broken/project.xod rename to packages/xod-fs/test/fixtures/broken-workspace/__lib__/user/broken/project.xod diff --git a/packages/xod-fs/test/fixtures/emptyWorkspace/.xodworkspace b/packages/xod-fs/test/fixtures/emptyWorkspace/.xodworkspace deleted file mode 100644 index e69de29b..00000000 diff --git a/packages/xod-fs/test/fixtures/notEmpty/awesome-project/empty-local-patch/patch.xodp b/packages/xod-fs/test/fixtures/notEmpty/awesome-project/empty-local-patch/patch.xodp new file mode 100644 index 00000000..7a73a41b --- /dev/null +++ b/packages/xod-fs/test/fixtures/notEmpty/awesome-project/empty-local-patch/patch.xodp @@ -0,0 +1,2 @@ +{ +} \ No newline at end of file diff --git a/packages/xod-fs/test/fixtures/notEmpty/awesome-project/main/patch.xodp b/packages/xod-fs/test/fixtures/notEmpty/awesome-project/main/patch.xodp new file mode 100644 index 00000000..a53e6d32 --- /dev/null +++ b/packages/xod-fs/test/fixtures/notEmpty/awesome-project/main/patch.xodp @@ -0,0 +1,52 @@ +{ + "links": [ + { + "id": "1d78b081-ebfe-4a2d-b857-08a3b9ddd90f", + "input": { + "nodeId": "2c03e470-fefd-4f58-be6a-58d209d9158c", + "pinKey": "value" + }, + "output": { + "nodeId": "4d716df5-81e7-4845-9b82-31a54c1634d7", + "pinKey": "38395ee5-8634-40f9-b7fa-dfe9eee208e8" + } + }, + { + "id": "3ed564cd-71e5-4ad3-9361-e7b9719bc82a", + "input": { + "nodeId": "2c03e470-fefd-4f58-be6a-58d209d9158c", + "pinKey": "value" + }, + "output": { + "nodeId": "89c69d91-b484-478d-8990-027e5f0a2e3e", + "pinKey": "b" + } + } + ], + "nodes": [ + { + "id": "2c03e470-fefd-4f58-be6a-58d209d9158c", + "position": { + "x": 292, + "y": 182 + }, + "type": "xod/core/pot" + }, + { + "id": "4d716df5-81e7-4845-9b82-31a54c1634d7", + "position": { + "x": 363, + "y": 322 + }, + "type": "@/qux" + }, + { + "id": "89c69d91-b484-478d-8990-027e5f0a2e3e", + "position": { + "x": 163, + "y": 314 + }, + "type": "xod/core/and" + } + ] +} \ No newline at end of file diff --git a/packages/xod-fs/test/fixtures/notEmpty/awesome-project/project.xod b/packages/xod-fs/test/fixtures/notEmpty/awesome-project/project.xod new file mode 100644 index 00000000..a6797179 --- /dev/null +++ b/packages/xod-fs/test/fixtures/notEmpty/awesome-project/project.xod @@ -0,0 +1,7 @@ +{ + "authors": [ + "Amperka team" + ], + "name": "awesome-project", + "version": "0.0.42" +} \ No newline at end of file diff --git a/packages/xod-fs/test/fixtures/notEmpty/awesome-project/qux/README.md b/packages/xod-fs/test/fixtures/notEmpty/awesome-project/qux/README.md new file mode 100644 index 00000000..946bad4a --- /dev/null +++ b/packages/xod-fs/test/fixtures/notEmpty/awesome-project/qux/README.md @@ -0,0 +1,7 @@ +# Hello world! + +- It's a test file +- If you see a correct content — it passed! +- Also it could contain any UTF-8 characters, like this one 😎 or even кириллица! + +Have a nice day! diff --git a/packages/xod-fs/test/fixtures/notEmpty/awesome-project/qux/any.cpp b/packages/xod-fs/test/fixtures/notEmpty/awesome-project/qux/any.cpp new file mode 100644 index 00000000..56a9ca85 --- /dev/null +++ b/packages/xod-fs/test/fixtures/notEmpty/awesome-project/qux/any.cpp @@ -0,0 +1 @@ +// Impl loaded fine! diff --git a/packages/xod-fs/test/fixtures/notEmpty/awesome-project/qux/img/20x20.png b/packages/xod-fs/test/fixtures/notEmpty/awesome-project/qux/img/20x20.png new file mode 100644 index 00000000..77abf4cc Binary files /dev/null and b/packages/xod-fs/test/fixtures/notEmpty/awesome-project/qux/img/20x20.png differ diff --git a/packages/xod-fs/test/fixtures/notEmpty/awesome-project/qux/patch.xodp b/packages/xod-fs/test/fixtures/notEmpty/awesome-project/qux/patch.xodp new file mode 100644 index 00000000..66362dfc --- /dev/null +++ b/packages/xod-fs/test/fixtures/notEmpty/awesome-project/qux/patch.xodp @@ -0,0 +1,33 @@ +{ + "links": [ + { + "id": "30dafe79-37e6-4fc0-a8b8-fa5e912ffef1", + "input": { + "nodeId": "38395ee5-8634-40f9-b7fa-dfe9eee208e8", + "pinKey": "PIN" + }, + "output": { + "nodeId": "4da4c29d-f482-47c2-825e-a969084b1116", + "pinKey": "brightness" + } + } + ], + "nodes": [ + { + "id": "38395ee5-8634-40f9-b7fa-dfe9eee208e8", + "position": { + "x": 276, + "y": 155 + }, + "type": "xod/patch-nodes/input-number" + }, + { + "id": "4da4c29d-f482-47c2-825e-a969084b1116", + "position": { + "x": 310, + "y": 307 + }, + "type": "xod/core/led" + } + ] +} \ No newline at end of file diff --git a/packages/xod-fs/test/fixtures/workspace/lib/user/utils/project.xod b/packages/xod-fs/test/fixtures/workspace/__lib__/user/utils/project.xod similarity index 100% rename from packages/xod-fs/test/fixtures/workspace/lib/user/utils/project.xod rename to packages/xod-fs/test/fixtures/workspace/__lib__/user/utils/project.xod diff --git a/packages/xod-fs/test/fixtures/workspace/lib/user/utils/test/patch.xodp b/packages/xod-fs/test/fixtures/workspace/__lib__/user/utils/test/patch.xodp similarity index 100% rename from packages/xod-fs/test/fixtures/workspace/lib/user/utils/test/patch.xodp rename to packages/xod-fs/test/fixtures/workspace/__lib__/user/utils/test/patch.xodp diff --git a/packages/xod-fs/test/fixtures/workspace/lib/user/with-omitted-optionals/empty-lib-patch/patch.xodp b/packages/xod-fs/test/fixtures/workspace/__lib__/user/with-omitted-optionals/empty-lib-patch/patch.xodp similarity index 100% rename from packages/xod-fs/test/fixtures/workspace/lib/user/with-omitted-optionals/empty-lib-patch/patch.xodp rename to packages/xod-fs/test/fixtures/workspace/__lib__/user/with-omitted-optionals/empty-lib-patch/patch.xodp diff --git a/packages/xod-fs/test/fixtures/workspace/lib/user/with-omitted-optionals/optional-node-fields-omitted/patch.xodp b/packages/xod-fs/test/fixtures/workspace/__lib__/user/with-omitted-optionals/optional-node-fields-omitted/patch.xodp similarity index 100% rename from packages/xod-fs/test/fixtures/workspace/lib/user/with-omitted-optionals/optional-node-fields-omitted/patch.xodp rename to packages/xod-fs/test/fixtures/workspace/__lib__/user/with-omitted-optionals/optional-node-fields-omitted/patch.xodp diff --git a/packages/xod-fs/test/fixtures/workspace/lib/user/with-omitted-optionals/project.xod b/packages/xod-fs/test/fixtures/workspace/__lib__/user/with-omitted-optionals/project.xod similarity index 100% rename from packages/xod-fs/test/fixtures/workspace/lib/user/with-omitted-optionals/project.xod rename to packages/xod-fs/test/fixtures/workspace/__lib__/user/with-omitted-optionals/project.xod diff --git a/packages/xod-fs/test/fixtures/workspace/lib/xod/core/and/any.js b/packages/xod-fs/test/fixtures/workspace/__lib__/xod/core/and/any.js similarity index 100% rename from packages/xod-fs/test/fixtures/workspace/lib/xod/core/and/any.js rename to packages/xod-fs/test/fixtures/workspace/__lib__/xod/core/and/any.js diff --git a/packages/xod-fs/test/fixtures/workspace/lib/xod/core/and/patch.xodp b/packages/xod-fs/test/fixtures/workspace/__lib__/xod/core/and/patch.xodp similarity index 100% rename from packages/xod-fs/test/fixtures/workspace/lib/xod/core/and/patch.xodp rename to packages/xod-fs/test/fixtures/workspace/__lib__/xod/core/and/patch.xodp diff --git a/packages/xod-fs/test/fixtures/workspace/lib/xod/core/led/espruino.js b/packages/xod-fs/test/fixtures/workspace/__lib__/xod/core/led/espruino.js similarity index 100% rename from packages/xod-fs/test/fixtures/workspace/lib/xod/core/led/espruino.js rename to packages/xod-fs/test/fixtures/workspace/__lib__/xod/core/led/espruino.js diff --git a/packages/xod-fs/test/fixtures/workspace/lib/xod/core/led/patch.xodp b/packages/xod-fs/test/fixtures/workspace/__lib__/xod/core/led/patch.xodp similarity index 100% rename from packages/xod-fs/test/fixtures/workspace/lib/xod/core/led/patch.xodp rename to packages/xod-fs/test/fixtures/workspace/__lib__/xod/core/led/patch.xodp diff --git a/packages/xod-fs/test/fixtures/workspace/lib/xod/core/pot/espruino.js b/packages/xod-fs/test/fixtures/workspace/__lib__/xod/core/pot/espruino.js similarity index 100% rename from packages/xod-fs/test/fixtures/workspace/lib/xod/core/pot/espruino.js rename to packages/xod-fs/test/fixtures/workspace/__lib__/xod/core/pot/espruino.js diff --git a/packages/xod-fs/test/fixtures/workspace/lib/xod/core/pot/patch.xodp b/packages/xod-fs/test/fixtures/workspace/__lib__/xod/core/pot/patch.xodp similarity index 100% rename from packages/xod-fs/test/fixtures/workspace/lib/xod/core/pot/patch.xodp rename to packages/xod-fs/test/fixtures/workspace/__lib__/xod/core/pot/patch.xodp diff --git a/packages/xod-fs/test/fixtures/workspace/lib/xod/core/project.xod b/packages/xod-fs/test/fixtures/workspace/__lib__/xod/core/project.xod similarity index 100% rename from packages/xod-fs/test/fixtures/workspace/lib/xod/core/project.xod rename to packages/xod-fs/test/fixtures/workspace/__lib__/xod/core/project.xod diff --git a/packages/xod-fs/test/fixtures/workspace/lib/xod/core/test/patch.xodp b/packages/xod-fs/test/fixtures/workspace/__lib__/xod/core/test/patch.xodp similarity index 100% rename from packages/xod-fs/test/fixtures/workspace/lib/xod/core/test/patch.xodp rename to packages/xod-fs/test/fixtures/workspace/__lib__/xod/core/test/patch.xodp diff --git a/packages/xod-fs/test/fixtures/workspace/lib/xod/math/project.xod b/packages/xod-fs/test/fixtures/workspace/__lib__/xod/math/project.xod similarity index 100% rename from packages/xod-fs/test/fixtures/workspace/lib/xod/math/project.xod rename to packages/xod-fs/test/fixtures/workspace/__lib__/xod/math/project.xod diff --git a/packages/xod-fs/test/fixtures/workspace/lib/xod/math/test/patch.xodp b/packages/xod-fs/test/fixtures/workspace/__lib__/xod/math/test/patch.xodp similarity index 100% rename from packages/xod-fs/test/fixtures/workspace/lib/xod/math/test/patch.xodp rename to packages/xod-fs/test/fixtures/workspace/__lib__/xod/math/test/patch.xodp diff --git a/packages/xod-fs/test/load.spec.js b/packages/xod-fs/test/load.spec.js index 5020baac..998eac45 100644 --- a/packages/xod-fs/test/load.spec.js +++ b/packages/xod-fs/test/load.spec.js @@ -70,7 +70,7 @@ describe('Loader', () => { describe('loadProjectWithLibs', () => { it('should return project with libs', () => - Loader.loadProjectWithLibs(projectPath, workspace) + Loader.loadProjectWithLibs([], projectPath, workspace) .then(({ project, libs }) => { const quxPatch = R.find(R.pathEq(['content', 'path'], '@/qux'), project); assert.isDefined(quxPatch); @@ -90,7 +90,7 @@ describe('Loader', () => { const okProject = path.resolve(brokenWorkspace, './ok-project'); return expectRejectedWithCode( - Loader.loadProjectWithLibs(okProject, brokenWorkspace), + Loader.loadProjectWithLibs([], okProject, brokenWorkspace), ERROR_CODES.INVALID_FILE_CONTENTS ); } @@ -100,7 +100,7 @@ describe('Loader', () => { describe('loadProjectWithoutLibs', () => { it('should return project without libs', () => { - const xodCore = path.resolve(workspace, './lib/xod/core'); + const xodCore = path.resolve(workspace, './__lib__/xod/core'); const xodCoreOwner = path.resolve(xodCore, '..'); return Loader.loadProjectWithoutLibs(xodCore) diff --git a/packages/xod-fs/test/loadLibs.spec.js b/packages/xod-fs/test/loadLibs.spec.js index 581e0c90..42d63116 100644 --- a/packages/xod-fs/test/loadLibs.spec.js +++ b/packages/xod-fs/test/loadLibs.spec.js @@ -2,26 +2,28 @@ import R from 'ramda'; import { assert } from 'chai'; import path from 'path'; -import { loadLibs, loadAllLibs } from '../src/loadLibs'; +import { loadLibrary, loadLibs } from '../src/loadLibs'; +import { resolveLibPath } from '../src/utils'; const workspaceDir = './fixtures/workspace'; describe('Library loader', () => { const workspace = path.resolve(__dirname, workspaceDir); + const libDir = resolveLibPath(workspace); - it('should load xod/core libs from ./fixtures/workspace/lib', () => - loadLibs(['xod/core'], workspace).then((libs) => { + it('should load xod/core libs from ./fixtures/workspace/lib', () => { + loadLibrary(['xod/core'], libDir).then((libs) => { assert.sameMembers(R.keys(libs), [ 'xod/core/and', 'xod/core/led', 'xod/core/pot', 'xod/core/test', ]); - }) - ); + }); + }); it('should load all libs from ./fixtures/workspace/lib', () => - loadAllLibs(workspace).then((libs) => { + loadLibs([libDir]).then((libs) => { assert.sameMembers(R.keys(libs), [ 'user/utils/test', 'user/with-omitted-optionals/empty-lib-patch', diff --git a/packages/xod-fs/test/spawn.spec.js b/packages/xod-fs/test/spawn.spec.js index 4f218b80..c510930c 100644 --- a/packages/xod-fs/test/spawn.spec.js +++ b/packages/xod-fs/test/spawn.spec.js @@ -1,7 +1,7 @@ import { assert } from 'chai'; import fs from 'fs-extra'; -import { spawnWorkspaceFile, spawnStdLib, spawnDefaultProject } from '../src/spawn'; +import { spawnWorkspaceFile, spawnDefaultProject } from '../src/spawn'; import { doesFileExist, doesDirectoryExist } from '../src/utils'; import * as ERROR_CODES from '../src/errorCodes'; @@ -17,23 +17,6 @@ describe('Spawn', () => { }); }); - it('spawnStdLib resolves to workspace path on success', () => { - after(() => fs.remove(fixture('./new-workspace'))); - return spawnStdLib(fixture('./workspace/lib'), fixture('./new-workspace')) - .then(() => { - assert.ok(doesDirectoryExist(fixture('./new-workspace/lib'))); - fs.readdir(fixture('./new-workspace/lib'), (err, files) => { - assert.includeMembers(files, ['xod', 'user']); - }); - }); - }); - it('spawnStdLib rejects CANT_COPY_STDLIB on failure', () => - expectRejectedWithCode( - spawnStdLib(fixture('./no-dir/no-lib'), fixture('./new-workspace')), - ERROR_CODES.CANT_COPY_STDLIB - ) - ); - it('spawnDefaultProject resolves to workspace path on success', () => { after(() => fs.remove(fixture('./new-workspace'))); return spawnDefaultProject(fixture('./workspace/awesome-project'), fixture('./new-workspace')) diff --git a/packages/xod-fs/test/utils.spec.js b/packages/xod-fs/test/utils.spec.js index f1927bab..f4fa8a9a 100644 --- a/packages/xod-fs/test/utils.spec.js +++ b/packages/xod-fs/test/utils.spec.js @@ -53,7 +53,7 @@ describe('Utils', () => { ); it('isWorkspaceValid: if specified directory is not empty, rejects with error code WORKSPACE_DIR_NOT_EMPTY', () => expectRejectedWithCode( - U.isWorkspaceValid(fixture('./emptyWorkspace')), + U.isWorkspaceValid(fixture('./notEmpty')), ERROR_CODES.WORKSPACE_DIR_NOT_EMPTY ) ); diff --git a/packages/xod-fs/test/welcomeToXod.spec.js b/packages/xod-fs/test/welcomeToXod.spec.js index 8922e55b..e611c4ea 100644 --- a/packages/xod-fs/test/welcomeToXod.spec.js +++ b/packages/xod-fs/test/welcomeToXod.spec.js @@ -11,7 +11,7 @@ describe('welcome-to-xod', () => { const projectPath = 'welcome-to-xod'; it('should load as a valid project', () => - loadProjectWithLibs(projectPath, workspace) + loadProjectWithLibs([], projectPath, workspace) .then(({ project, libs }) => { const packed = pack(project, libs); assert.isAtLeast( diff --git a/packages/xod-func-tools/src/index.js b/packages/xod-func-tools/src/index.js index a29905c7..b86ae2ff 100644 --- a/packages/xod-func-tools/src/index.js +++ b/packages/xod-func-tools/src/index.js @@ -332,6 +332,26 @@ export const invertMap = def( ) ); +/** + * Returns the list of list of strings. + * Removes all duplicates from the subsequent list + * on the basis of already filtered values lists. + * + * E.G. + * [['a', 'b', 'c'], ['b','c','d'], ['a','d','e']] + * will become + * [['a', 'b', 'c'], ['d'], ['e']] + */ +export const uniqLists = def( + 'uniqLists :: [[String]] -> [[String]]', + R.reduce( + (acc, nextList) => R.append( + R.without(R.unnest(acc), nextList), + acc + ), + [] + ) +); export default Object.assign( { @@ -358,6 +378,7 @@ export default Object.assign( mapIndexed, swap, reverseLookup, + uniqLists, }, types ); diff --git a/packages/xod-func-tools/test/index.spec.js b/packages/xod-func-tools/test/index.spec.js index 3c68ec0c..85ef3f99 100644 --- a/packages/xod-func-tools/test/index.spec.js +++ b/packages/xod-func-tools/test/index.spec.js @@ -10,6 +10,7 @@ import { reduceMaybe, reduceEither, omitRecursively, + uniqLists, } from '../src/index'; describe('explode', () => { @@ -142,3 +143,24 @@ describe('omitRecursively', () => { assert.deepEqual(cleanObj, [[{ foo: 2 }]]); }); }); + +describe('uniqLists', () => { + it('returns filtered list', () => { + assert.deepEqual( + uniqLists([['a', 'b', 'c'], ['b', 'c', 'd'], ['a', 'd', 'e', 'f']]), + [['a', 'b', 'c'], ['d'], ['e', 'f']] + ); + }); + it('returns filtered list with untouched empty lists', () => { + assert.deepEqual( + uniqLists([['a', 'b', 'c'], ['b', 'c', 'd'], [], []]), + [['a', 'b', 'c'], ['d'], [], []] + ); + }); + it('returns empty list for empty list', () => { + assert.deepEqual( + uniqLists([]), + [] + ); + }); +}); diff --git a/workspace/lib/xod/common-hardware/adxl335-accelerometer/patch.xodp b/workspace/__lib__/xod/common-hardware/adxl335-accelerometer/patch.xodp similarity index 100% rename from workspace/lib/xod/common-hardware/adxl335-accelerometer/patch.xodp rename to workspace/__lib__/xod/common-hardware/adxl335-accelerometer/patch.xodp diff --git a/workspace/lib/xod/common-hardware/adxl335-convert/patch.xodp b/workspace/__lib__/xod/common-hardware/adxl335-convert/patch.xodp similarity index 100% rename from workspace/lib/xod/common-hardware/adxl335-convert/patch.xodp rename to workspace/__lib__/xod/common-hardware/adxl335-convert/patch.xodp diff --git a/workspace/lib/xod/common-hardware/button/patch.xodp b/workspace/__lib__/xod/common-hardware/button/patch.xodp similarity index 100% rename from workspace/lib/xod/common-hardware/button/patch.xodp rename to workspace/__lib__/xod/common-hardware/button/patch.xodp diff --git a/workspace/lib/xod/common-hardware/dht11-thermometer/arduino.cpp b/workspace/__lib__/xod/common-hardware/dht11-thermometer/arduino.cpp similarity index 100% rename from workspace/lib/xod/common-hardware/dht11-thermometer/arduino.cpp rename to workspace/__lib__/xod/common-hardware/dht11-thermometer/arduino.cpp diff --git a/workspace/lib/xod/common-hardware/dht11-thermometer/patch.xodp b/workspace/__lib__/xod/common-hardware/dht11-thermometer/patch.xodp similarity index 100% rename from workspace/lib/xod/common-hardware/dht11-thermometer/patch.xodp rename to workspace/__lib__/xod/common-hardware/dht11-thermometer/patch.xodp diff --git a/workspace/lib/xod/common-hardware/gp2y0a-linearize/patch.xodp b/workspace/__lib__/xod/common-hardware/gp2y0a-linearize/patch.xodp similarity index 100% rename from workspace/lib/xod/common-hardware/gp2y0a-linearize/patch.xodp rename to workspace/__lib__/xod/common-hardware/gp2y0a-linearize/patch.xodp diff --git a/workspace/lib/xod/common-hardware/gp2y0a02-range-meter/patch.xodp b/workspace/__lib__/xod/common-hardware/gp2y0a02-range-meter/patch.xodp similarity index 100% rename from workspace/lib/xod/common-hardware/gp2y0a02-range-meter/patch.xodp rename to workspace/__lib__/xod/common-hardware/gp2y0a02-range-meter/patch.xodp diff --git a/workspace/lib/xod/common-hardware/gp2y0a21-range-meter/patch.xodp b/workspace/__lib__/xod/common-hardware/gp2y0a21-range-meter/patch.xodp similarity index 100% rename from workspace/lib/xod/common-hardware/gp2y0a21-range-meter/patch.xodp rename to workspace/__lib__/xod/common-hardware/gp2y0a21-range-meter/patch.xodp diff --git a/workspace/lib/xod/common-hardware/gp2y0a41-range-meter/patch.xodp b/workspace/__lib__/xod/common-hardware/gp2y0a41-range-meter/patch.xodp similarity index 100% rename from workspace/lib/xod/common-hardware/gp2y0a41-range-meter/patch.xodp rename to workspace/__lib__/xod/common-hardware/gp2y0a41-range-meter/patch.xodp diff --git a/workspace/lib/xod/common-hardware/h-bridge-dc-motor/patch.xodp b/workspace/__lib__/xod/common-hardware/h-bridge-dc-motor/patch.xodp similarity index 100% rename from workspace/lib/xod/common-hardware/h-bridge-dc-motor/patch.xodp rename to workspace/__lib__/xod/common-hardware/h-bridge-dc-motor/patch.xodp diff --git a/workspace/lib/xod/common-hardware/hc-sr04-ultrasonic-range/patch.xodp b/workspace/__lib__/xod/common-hardware/hc-sr04-ultrasonic-range/patch.xodp similarity index 100% rename from workspace/lib/xod/common-hardware/hc-sr04-ultrasonic-range/patch.xodp rename to workspace/__lib__/xod/common-hardware/hc-sr04-ultrasonic-range/patch.xodp diff --git a/workspace/lib/xod/common-hardware/hc-sr04-ultrasonic-time/arduino.cpp b/workspace/__lib__/xod/common-hardware/hc-sr04-ultrasonic-time/arduino.cpp similarity index 100% rename from workspace/lib/xod/common-hardware/hc-sr04-ultrasonic-time/arduino.cpp rename to workspace/__lib__/xod/common-hardware/hc-sr04-ultrasonic-time/arduino.cpp diff --git a/workspace/lib/xod/common-hardware/hc-sr04-ultrasonic-time/patch.xodp b/workspace/__lib__/xod/common-hardware/hc-sr04-ultrasonic-time/patch.xodp similarity index 100% rename from workspace/lib/xod/common-hardware/hc-sr04-ultrasonic-time/patch.xodp rename to workspace/__lib__/xod/common-hardware/hc-sr04-ultrasonic-time/patch.xodp diff --git a/workspace/lib/xod/common-hardware/l3g4200-gyro/patch.xodp b/workspace/__lib__/xod/common-hardware/l3g4200-gyro/patch.xodp similarity index 100% rename from workspace/lib/xod/common-hardware/l3g4200-gyro/patch.xodp rename to workspace/__lib__/xod/common-hardware/l3g4200-gyro/patch.xodp diff --git a/workspace/lib/xod/common-hardware/l3gd20h-gyro/patch.xodp b/workspace/__lib__/xod/common-hardware/l3gd20h-gyro/patch.xodp similarity index 100% rename from workspace/lib/xod/common-hardware/l3gd20h-gyro/patch.xodp rename to workspace/__lib__/xod/common-hardware/l3gd20h-gyro/patch.xodp diff --git a/workspace/lib/xod/common-hardware/led/patch.xodp b/workspace/__lib__/xod/common-hardware/led/patch.xodp similarity index 100% rename from workspace/lib/xod/common-hardware/led/patch.xodp rename to workspace/__lib__/xod/common-hardware/led/patch.xodp diff --git a/workspace/lib/xod/common-hardware/lis331dlh-accelerometer/patch.xodp b/workspace/__lib__/xod/common-hardware/lis331dlh-accelerometer/patch.xodp similarity index 100% rename from workspace/lib/xod/common-hardware/lis331dlh-accelerometer/patch.xodp rename to workspace/__lib__/xod/common-hardware/lis331dlh-accelerometer/patch.xodp diff --git a/workspace/lib/xod/common-hardware/lis331hh-accelerometer/patch.xodp b/workspace/__lib__/xod/common-hardware/lis331hh-accelerometer/patch.xodp similarity index 100% rename from workspace/lib/xod/common-hardware/lis331hh-accelerometer/patch.xodp rename to workspace/__lib__/xod/common-hardware/lis331hh-accelerometer/patch.xodp diff --git a/workspace/lib/xod/common-hardware/lis3dh-accelerometer/patch.xodp b/workspace/__lib__/xod/common-hardware/lis3dh-accelerometer/patch.xodp similarity index 100% rename from workspace/lib/xod/common-hardware/lis3dh-accelerometer/patch.xodp rename to workspace/__lib__/xod/common-hardware/lis3dh-accelerometer/patch.xodp diff --git a/workspace/lib/xod/common-hardware/pot/patch.xodp b/workspace/__lib__/xod/common-hardware/pot/patch.xodp similarity index 100% rename from workspace/lib/xod/common-hardware/pot/patch.xodp rename to workspace/__lib__/xod/common-hardware/pot/patch.xodp diff --git a/workspace/lib/xod/common-hardware/project.xod b/workspace/__lib__/xod/common-hardware/project.xod similarity index 100% rename from workspace/lib/xod/common-hardware/project.xod rename to workspace/__lib__/xod/common-hardware/project.xod diff --git a/workspace/lib/xod/common-hardware/servo/arduino.cpp b/workspace/__lib__/xod/common-hardware/servo/arduino.cpp similarity index 100% rename from workspace/lib/xod/common-hardware/servo/arduino.cpp rename to workspace/__lib__/xod/common-hardware/servo/arduino.cpp diff --git a/workspace/lib/xod/common-hardware/servo/patch.xodp b/workspace/__lib__/xod/common-hardware/servo/patch.xodp similarity index 100% rename from workspace/lib/xod/common-hardware/servo/patch.xodp rename to workspace/__lib__/xod/common-hardware/servo/patch.xodp diff --git a/workspace/lib/xod/common-hardware/st-imu-generic-sensor/patch.xodp b/workspace/__lib__/xod/common-hardware/st-imu-generic-sensor/patch.xodp similarity index 100% rename from workspace/lib/xod/common-hardware/st-imu-generic-sensor/patch.xodp rename to workspace/__lib__/xod/common-hardware/st-imu-generic-sensor/patch.xodp diff --git a/workspace/lib/xod/common-hardware/st-imu-normalize-acc/patch.xodp b/workspace/__lib__/xod/common-hardware/st-imu-normalize-acc/patch.xodp similarity index 100% rename from workspace/lib/xod/common-hardware/st-imu-normalize-acc/patch.xodp rename to workspace/__lib__/xod/common-hardware/st-imu-normalize-acc/patch.xodp diff --git a/workspace/lib/xod/common-hardware/st-imu-normalize-va/patch.xodp b/workspace/__lib__/xod/common-hardware/st-imu-normalize-va/patch.xodp similarity index 100% rename from workspace/lib/xod/common-hardware/st-imu-normalize-va/patch.xodp rename to workspace/__lib__/xod/common-hardware/st-imu-normalize-va/patch.xodp diff --git a/workspace/lib/xod/common-hardware/st-imu-round-sensitivity/patch.xodp b/workspace/__lib__/xod/common-hardware/st-imu-round-sensitivity/patch.xodp similarity index 100% rename from workspace/lib/xod/common-hardware/st-imu-round-sensitivity/patch.xodp rename to workspace/__lib__/xod/common-hardware/st-imu-round-sensitivity/patch.xodp diff --git a/workspace/lib/xod/common-hardware/text-lcd-16x2/arduino.cpp b/workspace/__lib__/xod/common-hardware/text-lcd-16x2/arduino.cpp similarity index 100% rename from workspace/lib/xod/common-hardware/text-lcd-16x2/arduino.cpp rename to workspace/__lib__/xod/common-hardware/text-lcd-16x2/arduino.cpp diff --git a/workspace/lib/xod/common-hardware/text-lcd-16x2/patch.xodp b/workspace/__lib__/xod/common-hardware/text-lcd-16x2/patch.xodp similarity index 100% rename from workspace/lib/xod/common-hardware/text-lcd-16x2/patch.xodp rename to workspace/__lib__/xod/common-hardware/text-lcd-16x2/patch.xodp diff --git a/workspace/lib/xod/common-hardware/thermometer-tmp36/patch.xodp b/workspace/__lib__/xod/common-hardware/thermometer-tmp36/patch.xodp similarity index 100% rename from workspace/lib/xod/common-hardware/thermometer-tmp36/patch.xodp rename to workspace/__lib__/xod/common-hardware/thermometer-tmp36/patch.xodp diff --git a/workspace/lib/xod/core/absolute/any.cpp b/workspace/__lib__/xod/core/absolute/any.cpp similarity index 100% rename from workspace/lib/xod/core/absolute/any.cpp rename to workspace/__lib__/xod/core/absolute/any.cpp diff --git a/workspace/lib/xod/core/absolute/patch.xodp b/workspace/__lib__/xod/core/absolute/patch.xodp similarity index 100% rename from workspace/lib/xod/core/absolute/patch.xodp rename to workspace/__lib__/xod/core/absolute/patch.xodp diff --git a/workspace/lib/xod/core/acos/any.cpp b/workspace/__lib__/xod/core/acos/any.cpp similarity index 100% rename from workspace/lib/xod/core/acos/any.cpp rename to workspace/__lib__/xod/core/acos/any.cpp diff --git a/workspace/lib/xod/core/acos/patch.xodp b/workspace/__lib__/xod/core/acos/patch.xodp similarity index 100% rename from workspace/lib/xod/core/acos/patch.xodp rename to workspace/__lib__/xod/core/acos/patch.xodp diff --git a/workspace/lib/xod/core/add/any.cpp b/workspace/__lib__/xod/core/add/any.cpp similarity index 100% rename from workspace/lib/xod/core/add/any.cpp rename to workspace/__lib__/xod/core/add/any.cpp diff --git a/workspace/lib/xod/core/add/patch.xodp b/workspace/__lib__/xod/core/add/patch.xodp similarity index 100% rename from workspace/lib/xod/core/add/patch.xodp rename to workspace/__lib__/xod/core/add/patch.xodp diff --git a/workspace/lib/xod/core/analog-input/arduino.cpp b/workspace/__lib__/xod/core/analog-input/arduino.cpp similarity index 100% rename from workspace/lib/xod/core/analog-input/arduino.cpp rename to workspace/__lib__/xod/core/analog-input/arduino.cpp diff --git a/workspace/lib/xod/core/analog-input/patch.xodp b/workspace/__lib__/xod/core/analog-input/patch.xodp similarity index 100% rename from workspace/lib/xod/core/analog-input/patch.xodp rename to workspace/__lib__/xod/core/analog-input/patch.xodp diff --git a/workspace/lib/xod/core/and/any.cpp b/workspace/__lib__/xod/core/and/any.cpp similarity index 100% rename from workspace/lib/xod/core/and/any.cpp rename to workspace/__lib__/xod/core/and/any.cpp diff --git a/workspace/lib/xod/core/and/patch.xodp b/workspace/__lib__/xod/core/and/patch.xodp similarity index 100% rename from workspace/lib/xod/core/and/patch.xodp rename to workspace/__lib__/xod/core/and/patch.xodp diff --git a/workspace/lib/xod/core/any/any.cpp b/workspace/__lib__/xod/core/any/any.cpp similarity index 100% rename from workspace/lib/xod/core/any/any.cpp rename to workspace/__lib__/xod/core/any/any.cpp diff --git a/workspace/lib/xod/core/any/patch.xodp b/workspace/__lib__/xod/core/any/patch.xodp similarity index 100% rename from workspace/lib/xod/core/any/patch.xodp rename to workspace/__lib__/xod/core/any/patch.xodp diff --git a/workspace/lib/xod/core/asin/any.cpp b/workspace/__lib__/xod/core/asin/any.cpp similarity index 100% rename from workspace/lib/xod/core/asin/any.cpp rename to workspace/__lib__/xod/core/asin/any.cpp diff --git a/workspace/lib/xod/core/asin/patch.xodp b/workspace/__lib__/xod/core/asin/patch.xodp similarity index 100% rename from workspace/lib/xod/core/asin/patch.xodp rename to workspace/__lib__/xod/core/asin/patch.xodp diff --git a/workspace/lib/xod/core/atan/any.cpp b/workspace/__lib__/xod/core/atan/any.cpp similarity index 100% rename from workspace/lib/xod/core/atan/any.cpp rename to workspace/__lib__/xod/core/atan/any.cpp diff --git a/workspace/lib/xod/core/atan/patch.xodp b/workspace/__lib__/xod/core/atan/patch.xodp similarity index 100% rename from workspace/lib/xod/core/atan/patch.xodp rename to workspace/__lib__/xod/core/atan/patch.xodp diff --git a/workspace/lib/xod/core/boot/any.cpp b/workspace/__lib__/xod/core/boot/any.cpp similarity index 100% rename from workspace/lib/xod/core/boot/any.cpp rename to workspace/__lib__/xod/core/boot/any.cpp diff --git a/workspace/lib/xod/core/boot/patch.xodp b/workspace/__lib__/xod/core/boot/patch.xodp similarity index 100% rename from workspace/lib/xod/core/boot/patch.xodp rename to workspace/__lib__/xod/core/boot/patch.xodp diff --git a/workspace/lib/xod/core/buffer/any.cpp b/workspace/__lib__/xod/core/buffer/any.cpp similarity index 100% rename from workspace/lib/xod/core/buffer/any.cpp rename to workspace/__lib__/xod/core/buffer/any.cpp diff --git a/workspace/lib/xod/core/buffer/patch.xodp b/workspace/__lib__/xod/core/buffer/patch.xodp similarity index 100% rename from workspace/lib/xod/core/buffer/patch.xodp rename to workspace/__lib__/xod/core/buffer/patch.xodp diff --git a/workspace/lib/xod/core/cast-boolean-to-number/any.cpp b/workspace/__lib__/xod/core/cast-boolean-to-number/any.cpp similarity index 100% rename from workspace/lib/xod/core/cast-boolean-to-number/any.cpp rename to workspace/__lib__/xod/core/cast-boolean-to-number/any.cpp diff --git a/workspace/lib/xod/core/cast-boolean-to-number/patch.xodp b/workspace/__lib__/xod/core/cast-boolean-to-number/patch.xodp similarity index 100% rename from workspace/lib/xod/core/cast-boolean-to-number/patch.xodp rename to workspace/__lib__/xod/core/cast-boolean-to-number/patch.xodp diff --git a/workspace/lib/xod/core/cast-boolean-to-pulse/any.cpp b/workspace/__lib__/xod/core/cast-boolean-to-pulse/any.cpp similarity index 100% rename from workspace/lib/xod/core/cast-boolean-to-pulse/any.cpp rename to workspace/__lib__/xod/core/cast-boolean-to-pulse/any.cpp diff --git a/workspace/lib/xod/core/cast-boolean-to-pulse/patch.xodp b/workspace/__lib__/xod/core/cast-boolean-to-pulse/patch.xodp similarity index 100% rename from workspace/lib/xod/core/cast-boolean-to-pulse/patch.xodp rename to workspace/__lib__/xod/core/cast-boolean-to-pulse/patch.xodp diff --git a/workspace/lib/xod/core/cast-boolean-to-string/any.cpp b/workspace/__lib__/xod/core/cast-boolean-to-string/any.cpp similarity index 100% rename from workspace/lib/xod/core/cast-boolean-to-string/any.cpp rename to workspace/__lib__/xod/core/cast-boolean-to-string/any.cpp diff --git a/workspace/lib/xod/core/cast-boolean-to-string/patch.xodp b/workspace/__lib__/xod/core/cast-boolean-to-string/patch.xodp similarity index 100% rename from workspace/lib/xod/core/cast-boolean-to-string/patch.xodp rename to workspace/__lib__/xod/core/cast-boolean-to-string/patch.xodp diff --git a/workspace/lib/xod/core/cast-number-to-boolean/any.cpp b/workspace/__lib__/xod/core/cast-number-to-boolean/any.cpp similarity index 100% rename from workspace/lib/xod/core/cast-number-to-boolean/any.cpp rename to workspace/__lib__/xod/core/cast-number-to-boolean/any.cpp diff --git a/workspace/lib/xod/core/cast-number-to-boolean/patch.xodp b/workspace/__lib__/xod/core/cast-number-to-boolean/patch.xodp similarity index 100% rename from workspace/lib/xod/core/cast-number-to-boolean/patch.xodp rename to workspace/__lib__/xod/core/cast-number-to-boolean/patch.xodp diff --git a/workspace/lib/xod/core/cast-number-to-string/any.cpp b/workspace/__lib__/xod/core/cast-number-to-string/any.cpp similarity index 100% rename from workspace/lib/xod/core/cast-number-to-string/any.cpp rename to workspace/__lib__/xod/core/cast-number-to-string/any.cpp diff --git a/workspace/lib/xod/core/cast-number-to-string/patch.xodp b/workspace/__lib__/xod/core/cast-number-to-string/patch.xodp similarity index 100% rename from workspace/lib/xod/core/cast-number-to-string/patch.xodp rename to workspace/__lib__/xod/core/cast-number-to-string/patch.xodp diff --git a/workspace/lib/xod/core/ceil/any.cpp b/workspace/__lib__/xod/core/ceil/any.cpp similarity index 100% rename from workspace/lib/xod/core/ceil/any.cpp rename to workspace/__lib__/xod/core/ceil/any.cpp diff --git a/workspace/lib/xod/core/ceil/patch.xodp b/workspace/__lib__/xod/core/ceil/patch.xodp similarity index 100% rename from workspace/lib/xod/core/ceil/patch.xodp rename to workspace/__lib__/xod/core/ceil/patch.xodp diff --git a/workspace/lib/xod/core/clip/any.cpp b/workspace/__lib__/xod/core/clip/any.cpp similarity index 100% rename from workspace/lib/xod/core/clip/any.cpp rename to workspace/__lib__/xod/core/clip/any.cpp diff --git a/workspace/lib/xod/core/clip/patch.xodp b/workspace/__lib__/xod/core/clip/patch.xodp similarity index 100% rename from workspace/lib/xod/core/clip/patch.xodp rename to workspace/__lib__/xod/core/clip/patch.xodp diff --git a/workspace/lib/xod/core/clock/any.cpp b/workspace/__lib__/xod/core/clock/any.cpp similarity index 100% rename from workspace/lib/xod/core/clock/any.cpp rename to workspace/__lib__/xod/core/clock/any.cpp diff --git a/workspace/lib/xod/core/clock/patch.xodp b/workspace/__lib__/xod/core/clock/patch.xodp similarity index 100% rename from workspace/lib/xod/core/clock/patch.xodp rename to workspace/__lib__/xod/core/clock/patch.xodp diff --git a/workspace/lib/xod/core/concat/any.cpp b/workspace/__lib__/xod/core/concat/any.cpp similarity index 100% rename from workspace/lib/xod/core/concat/any.cpp rename to workspace/__lib__/xod/core/concat/any.cpp diff --git a/workspace/lib/xod/core/concat/patch.xodp b/workspace/__lib__/xod/core/concat/patch.xodp similarity index 100% rename from workspace/lib/xod/core/concat/patch.xodp rename to workspace/__lib__/xod/core/concat/patch.xodp diff --git a/workspace/lib/xod/core/console-log/arduino.cpp b/workspace/__lib__/xod/core/console-log/arduino.cpp similarity index 100% rename from workspace/lib/xod/core/console-log/arduino.cpp rename to workspace/__lib__/xod/core/console-log/arduino.cpp diff --git a/workspace/lib/xod/core/console-log/patch.xodp b/workspace/__lib__/xod/core/console-log/patch.xodp similarity index 100% rename from workspace/lib/xod/core/console-log/patch.xodp rename to workspace/__lib__/xod/core/console-log/patch.xodp diff --git a/workspace/lib/xod/core/constant-boolean/any.cpp b/workspace/__lib__/xod/core/constant-boolean/any.cpp similarity index 100% rename from workspace/lib/xod/core/constant-boolean/any.cpp rename to workspace/__lib__/xod/core/constant-boolean/any.cpp diff --git a/workspace/lib/xod/core/constant-boolean/patch.xodp b/workspace/__lib__/xod/core/constant-boolean/patch.xodp similarity index 100% rename from workspace/lib/xod/core/constant-boolean/patch.xodp rename to workspace/__lib__/xod/core/constant-boolean/patch.xodp diff --git a/workspace/lib/xod/core/constant-number/any.cpp b/workspace/__lib__/xod/core/constant-number/any.cpp similarity index 100% rename from workspace/lib/xod/core/constant-number/any.cpp rename to workspace/__lib__/xod/core/constant-number/any.cpp diff --git a/workspace/lib/xod/core/constant-number/patch.xodp b/workspace/__lib__/xod/core/constant-number/patch.xodp similarity index 100% rename from workspace/lib/xod/core/constant-number/patch.xodp rename to workspace/__lib__/xod/core/constant-number/patch.xodp diff --git a/workspace/lib/xod/core/constant-string/any.cpp b/workspace/__lib__/xod/core/constant-string/any.cpp similarity index 100% rename from workspace/lib/xod/core/constant-string/any.cpp rename to workspace/__lib__/xod/core/constant-string/any.cpp diff --git a/workspace/lib/xod/core/constant-string/patch.xodp b/workspace/__lib__/xod/core/constant-string/patch.xodp similarity index 100% rename from workspace/lib/xod/core/constant-string/patch.xodp rename to workspace/__lib__/xod/core/constant-string/patch.xodp diff --git a/workspace/lib/xod/core/constrain/any.cpp b/workspace/__lib__/xod/core/constrain/any.cpp similarity index 100% rename from workspace/lib/xod/core/constrain/any.cpp rename to workspace/__lib__/xod/core/constrain/any.cpp diff --git a/workspace/lib/xod/core/constrain/patch.xodp b/workspace/__lib__/xod/core/constrain/patch.xodp similarity index 100% rename from workspace/lib/xod/core/constrain/patch.xodp rename to workspace/__lib__/xod/core/constrain/patch.xodp diff --git a/workspace/lib/xod/core/continuously/any.cpp b/workspace/__lib__/xod/core/continuously/any.cpp similarity index 100% rename from workspace/lib/xod/core/continuously/any.cpp rename to workspace/__lib__/xod/core/continuously/any.cpp diff --git a/workspace/lib/xod/core/continuously/patch.xodp b/workspace/__lib__/xod/core/continuously/patch.xodp similarity index 100% rename from workspace/lib/xod/core/continuously/patch.xodp rename to workspace/__lib__/xod/core/continuously/patch.xodp diff --git a/workspace/lib/xod/core/cos/any.cpp b/workspace/__lib__/xod/core/cos/any.cpp similarity index 100% rename from workspace/lib/xod/core/cos/any.cpp rename to workspace/__lib__/xod/core/cos/any.cpp diff --git a/workspace/lib/xod/core/cos/patch.xodp b/workspace/__lib__/xod/core/cos/patch.xodp similarity index 100% rename from workspace/lib/xod/core/cos/patch.xodp rename to workspace/__lib__/xod/core/cos/patch.xodp diff --git a/workspace/lib/xod/core/count/any.cpp b/workspace/__lib__/xod/core/count/any.cpp similarity index 100% rename from workspace/lib/xod/core/count/any.cpp rename to workspace/__lib__/xod/core/count/any.cpp diff --git a/workspace/lib/xod/core/count/patch.xodp b/workspace/__lib__/xod/core/count/patch.xodp similarity index 100% rename from workspace/lib/xod/core/count/patch.xodp rename to workspace/__lib__/xod/core/count/patch.xodp diff --git a/workspace/lib/xod/core/cube/any.cpp b/workspace/__lib__/xod/core/cube/any.cpp similarity index 100% rename from workspace/lib/xod/core/cube/any.cpp rename to workspace/__lib__/xod/core/cube/any.cpp diff --git a/workspace/lib/xod/core/cube/patch.xodp b/workspace/__lib__/xod/core/cube/patch.xodp similarity index 100% rename from workspace/lib/xod/core/cube/patch.xodp rename to workspace/__lib__/xod/core/cube/patch.xodp diff --git a/workspace/lib/xod/core/debounce-boolean/any.cpp b/workspace/__lib__/xod/core/debounce-boolean/any.cpp similarity index 100% rename from workspace/lib/xod/core/debounce-boolean/any.cpp rename to workspace/__lib__/xod/core/debounce-boolean/any.cpp diff --git a/workspace/lib/xod/core/debounce-boolean/patch.xodp b/workspace/__lib__/xod/core/debounce-boolean/patch.xodp similarity index 100% rename from workspace/lib/xod/core/debounce-boolean/patch.xodp rename to workspace/__lib__/xod/core/debounce-boolean/patch.xodp diff --git a/workspace/lib/xod/core/defer-boolean/any.cpp b/workspace/__lib__/xod/core/defer-boolean/any.cpp similarity index 100% rename from workspace/lib/xod/core/defer-boolean/any.cpp rename to workspace/__lib__/xod/core/defer-boolean/any.cpp diff --git a/workspace/lib/xod/core/defer-boolean/patch.xodp b/workspace/__lib__/xod/core/defer-boolean/patch.xodp similarity index 100% rename from workspace/lib/xod/core/defer-boolean/patch.xodp rename to workspace/__lib__/xod/core/defer-boolean/patch.xodp diff --git a/workspace/lib/xod/core/defer-number/any.cpp b/workspace/__lib__/xod/core/defer-number/any.cpp similarity index 100% rename from workspace/lib/xod/core/defer-number/any.cpp rename to workspace/__lib__/xod/core/defer-number/any.cpp diff --git a/workspace/lib/xod/core/defer-number/patch.xodp b/workspace/__lib__/xod/core/defer-number/patch.xodp similarity index 100% rename from workspace/lib/xod/core/defer-number/patch.xodp rename to workspace/__lib__/xod/core/defer-number/patch.xodp diff --git a/workspace/lib/xod/core/defer-pulse/any.cpp b/workspace/__lib__/xod/core/defer-pulse/any.cpp similarity index 100% rename from workspace/lib/xod/core/defer-pulse/any.cpp rename to workspace/__lib__/xod/core/defer-pulse/any.cpp diff --git a/workspace/lib/xod/core/defer-pulse/patch.xodp b/workspace/__lib__/xod/core/defer-pulse/patch.xodp similarity index 100% rename from workspace/lib/xod/core/defer-pulse/patch.xodp rename to workspace/__lib__/xod/core/defer-pulse/patch.xodp diff --git a/workspace/lib/xod/core/defer-string/any.cpp b/workspace/__lib__/xod/core/defer-string/any.cpp similarity index 100% rename from workspace/lib/xod/core/defer-string/any.cpp rename to workspace/__lib__/xod/core/defer-string/any.cpp diff --git a/workspace/lib/xod/core/defer-string/patch.xodp b/workspace/__lib__/xod/core/defer-string/patch.xodp similarity index 100% rename from workspace/lib/xod/core/defer-string/patch.xodp rename to workspace/__lib__/xod/core/defer-string/patch.xodp diff --git a/workspace/lib/xod/core/delay/any.cpp b/workspace/__lib__/xod/core/delay/any.cpp similarity index 100% rename from workspace/lib/xod/core/delay/any.cpp rename to workspace/__lib__/xod/core/delay/any.cpp diff --git a/workspace/lib/xod/core/delay/arduino.cpp b/workspace/__lib__/xod/core/delay/arduino.cpp similarity index 100% rename from workspace/lib/xod/core/delay/arduino.cpp rename to workspace/__lib__/xod/core/delay/arduino.cpp diff --git a/workspace/lib/xod/core/delay/patch.xodp b/workspace/__lib__/xod/core/delay/patch.xodp similarity index 100% rename from workspace/lib/xod/core/delay/patch.xodp rename to workspace/__lib__/xod/core/delay/patch.xodp diff --git a/workspace/lib/xod/core/digital-input/arduino.cpp b/workspace/__lib__/xod/core/digital-input/arduino.cpp similarity index 100% rename from workspace/lib/xod/core/digital-input/arduino.cpp rename to workspace/__lib__/xod/core/digital-input/arduino.cpp diff --git a/workspace/lib/xod/core/digital-input/patch.xodp b/workspace/__lib__/xod/core/digital-input/patch.xodp similarity index 100% rename from workspace/lib/xod/core/digital-input/patch.xodp rename to workspace/__lib__/xod/core/digital-input/patch.xodp diff --git a/workspace/lib/xod/core/digital-output/arduino.cpp b/workspace/__lib__/xod/core/digital-output/arduino.cpp similarity index 100% rename from workspace/lib/xod/core/digital-output/arduino.cpp rename to workspace/__lib__/xod/core/digital-output/arduino.cpp diff --git a/workspace/lib/xod/core/digital-output/patch.xodp b/workspace/__lib__/xod/core/digital-output/patch.xodp similarity index 100% rename from workspace/lib/xod/core/digital-output/patch.xodp rename to workspace/__lib__/xod/core/digital-output/patch.xodp diff --git a/workspace/lib/xod/core/discretize-2/patch.xodp b/workspace/__lib__/xod/core/discretize-2/patch.xodp similarity index 100% rename from workspace/lib/xod/core/discretize-2/patch.xodp rename to workspace/__lib__/xod/core/discretize-2/patch.xodp diff --git a/workspace/lib/xod/core/discretize-3/patch.xodp b/workspace/__lib__/xod/core/discretize-3/patch.xodp similarity index 100% rename from workspace/lib/xod/core/discretize-3/patch.xodp rename to workspace/__lib__/xod/core/discretize-3/patch.xodp diff --git a/workspace/lib/xod/core/discretize-4/patch.xodp b/workspace/__lib__/xod/core/discretize-4/patch.xodp similarity index 100% rename from workspace/lib/xod/core/discretize-4/patch.xodp rename to workspace/__lib__/xod/core/discretize-4/patch.xodp diff --git a/workspace/lib/xod/core/divide/any.cpp b/workspace/__lib__/xod/core/divide/any.cpp similarity index 100% rename from workspace/lib/xod/core/divide/any.cpp rename to workspace/__lib__/xod/core/divide/any.cpp diff --git a/workspace/lib/xod/core/divide/patch.xodp b/workspace/__lib__/xod/core/divide/patch.xodp similarity index 100% rename from workspace/lib/xod/core/divide/patch.xodp rename to workspace/__lib__/xod/core/divide/patch.xodp diff --git a/workspace/lib/xod/core/equal/any.cpp b/workspace/__lib__/xod/core/equal/any.cpp similarity index 100% rename from workspace/lib/xod/core/equal/any.cpp rename to workspace/__lib__/xod/core/equal/any.cpp diff --git a/workspace/lib/xod/core/equal/patch.xodp b/workspace/__lib__/xod/core/equal/patch.xodp similarity index 100% rename from workspace/lib/xod/core/equal/patch.xodp rename to workspace/__lib__/xod/core/equal/patch.xodp diff --git a/workspace/lib/xod/core/fade/any.cpp b/workspace/__lib__/xod/core/fade/any.cpp similarity index 100% rename from workspace/lib/xod/core/fade/any.cpp rename to workspace/__lib__/xod/core/fade/any.cpp diff --git a/workspace/lib/xod/core/fade/patch.xodp b/workspace/__lib__/xod/core/fade/patch.xodp similarity index 100% rename from workspace/lib/xod/core/fade/patch.xodp rename to workspace/__lib__/xod/core/fade/patch.xodp diff --git a/workspace/lib/xod/core/flip-flop/any.cpp b/workspace/__lib__/xod/core/flip-flop/any.cpp similarity index 100% rename from workspace/lib/xod/core/flip-flop/any.cpp rename to workspace/__lib__/xod/core/flip-flop/any.cpp diff --git a/workspace/lib/xod/core/flip-flop/patch.xodp b/workspace/__lib__/xod/core/flip-flop/patch.xodp similarity index 100% rename from workspace/lib/xod/core/flip-flop/patch.xodp rename to workspace/__lib__/xod/core/flip-flop/patch.xodp diff --git a/workspace/lib/xod/core/floor/any.cpp b/workspace/__lib__/xod/core/floor/any.cpp similarity index 100% rename from workspace/lib/xod/core/floor/any.cpp rename to workspace/__lib__/xod/core/floor/any.cpp diff --git a/workspace/lib/xod/core/floor/patch.xodp b/workspace/__lib__/xod/core/floor/patch.xodp similarity index 100% rename from workspace/lib/xod/core/floor/patch.xodp rename to workspace/__lib__/xod/core/floor/patch.xodp diff --git a/workspace/lib/xod/core/format-number/any.cpp b/workspace/__lib__/xod/core/format-number/any.cpp similarity index 100% rename from workspace/lib/xod/core/format-number/any.cpp rename to workspace/__lib__/xod/core/format-number/any.cpp diff --git a/workspace/lib/xod/core/format-number/patch.xodp b/workspace/__lib__/xod/core/format-number/patch.xodp similarity index 100% rename from workspace/lib/xod/core/format-number/patch.xodp rename to workspace/__lib__/xod/core/format-number/patch.xodp diff --git a/workspace/lib/xod/core/gate/any.cpp b/workspace/__lib__/xod/core/gate/any.cpp similarity index 100% rename from workspace/lib/xod/core/gate/any.cpp rename to workspace/__lib__/xod/core/gate/any.cpp diff --git a/workspace/lib/xod/core/gate/patch.xodp b/workspace/__lib__/xod/core/gate/patch.xodp similarity index 100% rename from workspace/lib/xod/core/gate/patch.xodp rename to workspace/__lib__/xod/core/gate/patch.xodp diff --git a/workspace/lib/xod/core/greater/any.cpp b/workspace/__lib__/xod/core/greater/any.cpp similarity index 100% rename from workspace/lib/xod/core/greater/any.cpp rename to workspace/__lib__/xod/core/greater/any.cpp diff --git a/workspace/lib/xod/core/greater/patch.xodp b/workspace/__lib__/xod/core/greater/patch.xodp similarity index 100% rename from workspace/lib/xod/core/greater/patch.xodp rename to workspace/__lib__/xod/core/greater/patch.xodp diff --git a/workspace/lib/xod/core/i2c-begin-transmission/arduino.cpp b/workspace/__lib__/xod/core/i2c-begin-transmission/arduino.cpp similarity index 100% rename from workspace/lib/xod/core/i2c-begin-transmission/arduino.cpp rename to workspace/__lib__/xod/core/i2c-begin-transmission/arduino.cpp diff --git a/workspace/lib/xod/core/i2c-begin-transmission/patch.xodp b/workspace/__lib__/xod/core/i2c-begin-transmission/patch.xodp similarity index 100% rename from workspace/lib/xod/core/i2c-begin-transmission/patch.xodp rename to workspace/__lib__/xod/core/i2c-begin-transmission/patch.xodp diff --git a/workspace/lib/xod/core/i2c-end-transmission/arduino.cpp b/workspace/__lib__/xod/core/i2c-end-transmission/arduino.cpp similarity index 100% rename from workspace/lib/xod/core/i2c-end-transmission/arduino.cpp rename to workspace/__lib__/xod/core/i2c-end-transmission/arduino.cpp diff --git a/workspace/lib/xod/core/i2c-end-transmission/patch.xodp b/workspace/__lib__/xod/core/i2c-end-transmission/patch.xodp similarity index 100% rename from workspace/lib/xod/core/i2c-end-transmission/patch.xodp rename to workspace/__lib__/xod/core/i2c-end-transmission/patch.xodp diff --git a/workspace/lib/xod/core/i2c-read/arduino.cpp b/workspace/__lib__/xod/core/i2c-read/arduino.cpp similarity index 100% rename from workspace/lib/xod/core/i2c-read/arduino.cpp rename to workspace/__lib__/xod/core/i2c-read/arduino.cpp diff --git a/workspace/lib/xod/core/i2c-read/patch.xodp b/workspace/__lib__/xod/core/i2c-read/patch.xodp similarity index 100% rename from workspace/lib/xod/core/i2c-read/patch.xodp rename to workspace/__lib__/xod/core/i2c-read/patch.xodp diff --git a/workspace/lib/xod/core/i2c-request-bytes-6/patch.xodp b/workspace/__lib__/xod/core/i2c-request-bytes-6/patch.xodp similarity index 100% rename from workspace/lib/xod/core/i2c-request-bytes-6/patch.xodp rename to workspace/__lib__/xod/core/i2c-request-bytes-6/patch.xodp diff --git a/workspace/lib/xod/core/i2c-request/arduino.cpp b/workspace/__lib__/xod/core/i2c-request/arduino.cpp similarity index 100% rename from workspace/lib/xod/core/i2c-request/arduino.cpp rename to workspace/__lib__/xod/core/i2c-request/arduino.cpp diff --git a/workspace/lib/xod/core/i2c-request/patch.xodp b/workspace/__lib__/xod/core/i2c-request/patch.xodp similarity index 100% rename from workspace/lib/xod/core/i2c-request/patch.xodp rename to workspace/__lib__/xod/core/i2c-request/patch.xodp diff --git a/workspace/lib/xod/core/i2c-send-byte/patch.xodp b/workspace/__lib__/xod/core/i2c-send-byte/patch.xodp similarity index 100% rename from workspace/lib/xod/core/i2c-send-byte/patch.xodp rename to workspace/__lib__/xod/core/i2c-send-byte/patch.xodp diff --git a/workspace/lib/xod/core/i2c-send-bytes-2/patch.xodp b/workspace/__lib__/xod/core/i2c-send-bytes-2/patch.xodp similarity index 100% rename from workspace/lib/xod/core/i2c-send-bytes-2/patch.xodp rename to workspace/__lib__/xod/core/i2c-send-bytes-2/patch.xodp diff --git a/workspace/lib/xod/core/i2c-write/arduino.cpp b/workspace/__lib__/xod/core/i2c-write/arduino.cpp similarity index 100% rename from workspace/lib/xod/core/i2c-write/arduino.cpp rename to workspace/__lib__/xod/core/i2c-write/arduino.cpp diff --git a/workspace/lib/xod/core/i2c-write/patch.xodp b/workspace/__lib__/xod/core/i2c-write/patch.xodp similarity index 100% rename from workspace/lib/xod/core/i2c-write/patch.xodp rename to workspace/__lib__/xod/core/i2c-write/patch.xodp diff --git a/workspace/lib/xod/core/if-else/any.cpp b/workspace/__lib__/xod/core/if-else/any.cpp similarity index 100% rename from workspace/lib/xod/core/if-else/any.cpp rename to workspace/__lib__/xod/core/if-else/any.cpp diff --git a/workspace/lib/xod/core/if-else/patch.xodp b/workspace/__lib__/xod/core/if-else/patch.xodp similarity index 100% rename from workspace/lib/xod/core/if-else/patch.xodp rename to workspace/__lib__/xod/core/if-else/patch.xodp diff --git a/workspace/lib/xod/core/less/any.cpp b/workspace/__lib__/xod/core/less/any.cpp similarity index 100% rename from workspace/lib/xod/core/less/any.cpp rename to workspace/__lib__/xod/core/less/any.cpp diff --git a/workspace/lib/xod/core/less/patch.xodp b/workspace/__lib__/xod/core/less/patch.xodp similarity index 100% rename from workspace/lib/xod/core/less/patch.xodp rename to workspace/__lib__/xod/core/less/patch.xodp diff --git a/workspace/lib/xod/core/map-clip-range/patch.xodp b/workspace/__lib__/xod/core/map-clip-range/patch.xodp similarity index 100% rename from workspace/lib/xod/core/map-clip-range/patch.xodp rename to workspace/__lib__/xod/core/map-clip-range/patch.xodp diff --git a/workspace/lib/xod/core/map-range/any.cpp b/workspace/__lib__/xod/core/map-range/any.cpp similarity index 100% rename from workspace/lib/xod/core/map-range/any.cpp rename to workspace/__lib__/xod/core/map-range/any.cpp diff --git a/workspace/lib/xod/core/map-range/patch.xodp b/workspace/__lib__/xod/core/map-range/patch.xodp similarity index 100% rename from workspace/lib/xod/core/map-range/patch.xodp rename to workspace/__lib__/xod/core/map-range/patch.xodp diff --git a/workspace/lib/xod/core/multiply/any.cpp b/workspace/__lib__/xod/core/multiply/any.cpp similarity index 100% rename from workspace/lib/xod/core/multiply/any.cpp rename to workspace/__lib__/xod/core/multiply/any.cpp diff --git a/workspace/lib/xod/core/multiply/patch.xodp b/workspace/__lib__/xod/core/multiply/patch.xodp similarity index 100% rename from workspace/lib/xod/core/multiply/patch.xodp rename to workspace/__lib__/xod/core/multiply/patch.xodp diff --git a/workspace/lib/xod/core/nand/any.cpp b/workspace/__lib__/xod/core/nand/any.cpp similarity index 100% rename from workspace/lib/xod/core/nand/any.cpp rename to workspace/__lib__/xod/core/nand/any.cpp diff --git a/workspace/lib/xod/core/nand/patch.xodp b/workspace/__lib__/xod/core/nand/patch.xodp similarity index 100% rename from workspace/lib/xod/core/nand/patch.xodp rename to workspace/__lib__/xod/core/nand/patch.xodp diff --git a/workspace/lib/xod/core/nor/any.cpp b/workspace/__lib__/xod/core/nor/any.cpp similarity index 100% rename from workspace/lib/xod/core/nor/any.cpp rename to workspace/__lib__/xod/core/nor/any.cpp diff --git a/workspace/lib/xod/core/nor/patch.xodp b/workspace/__lib__/xod/core/nor/patch.xodp similarity index 100% rename from workspace/lib/xod/core/nor/patch.xodp rename to workspace/__lib__/xod/core/nor/patch.xodp diff --git a/workspace/lib/xod/core/not/any.cpp b/workspace/__lib__/xod/core/not/any.cpp similarity index 100% rename from workspace/lib/xod/core/not/any.cpp rename to workspace/__lib__/xod/core/not/any.cpp diff --git a/workspace/lib/xod/core/not/patch.xodp b/workspace/__lib__/xod/core/not/patch.xodp similarity index 100% rename from workspace/lib/xod/core/not/patch.xodp rename to workspace/__lib__/xod/core/not/patch.xodp diff --git a/workspace/lib/xod/core/nth-number-2/patch.xodp b/workspace/__lib__/xod/core/nth-number-2/patch.xodp similarity index 100% rename from workspace/lib/xod/core/nth-number-2/patch.xodp rename to workspace/__lib__/xod/core/nth-number-2/patch.xodp diff --git a/workspace/lib/xod/core/nth-number-3/patch.xodp b/workspace/__lib__/xod/core/nth-number-3/patch.xodp similarity index 100% rename from workspace/lib/xod/core/nth-number-3/patch.xodp rename to workspace/__lib__/xod/core/nth-number-3/patch.xodp diff --git a/workspace/lib/xod/core/nth-number-4/patch.xodp b/workspace/__lib__/xod/core/nth-number-4/patch.xodp similarity index 100% rename from workspace/lib/xod/core/nth-number-4/patch.xodp rename to workspace/__lib__/xod/core/nth-number-4/patch.xodp diff --git a/workspace/lib/xod/core/or/any.cpp b/workspace/__lib__/xod/core/or/any.cpp similarity index 100% rename from workspace/lib/xod/core/or/any.cpp rename to workspace/__lib__/xod/core/or/any.cpp diff --git a/workspace/lib/xod/core/or/patch.xodp b/workspace/__lib__/xod/core/or/patch.xodp similarity index 100% rename from workspace/lib/xod/core/or/patch.xodp rename to workspace/__lib__/xod/core/or/patch.xodp diff --git a/workspace/lib/xod/core/pi/patch.xodp b/workspace/__lib__/xod/core/pi/patch.xodp similarity index 100% rename from workspace/lib/xod/core/pi/patch.xodp rename to workspace/__lib__/xod/core/pi/patch.xodp diff --git a/workspace/lib/xod/core/pow/any.cpp b/workspace/__lib__/xod/core/pow/any.cpp similarity index 100% rename from workspace/lib/xod/core/pow/any.cpp rename to workspace/__lib__/xod/core/pow/any.cpp diff --git a/workspace/lib/xod/core/pow/patch.xodp b/workspace/__lib__/xod/core/pow/patch.xodp similarity index 100% rename from workspace/lib/xod/core/pow/patch.xodp rename to workspace/__lib__/xod/core/pow/patch.xodp diff --git a/workspace/lib/xod/core/project.xod b/workspace/__lib__/xod/core/project.xod similarity index 100% rename from workspace/lib/xod/core/project.xod rename to workspace/__lib__/xod/core/project.xod diff --git a/workspace/lib/xod/core/pulse-on-change/any.cpp b/workspace/__lib__/xod/core/pulse-on-change/any.cpp similarity index 100% rename from workspace/lib/xod/core/pulse-on-change/any.cpp rename to workspace/__lib__/xod/core/pulse-on-change/any.cpp diff --git a/workspace/lib/xod/core/pulse-on-change/patch.xodp b/workspace/__lib__/xod/core/pulse-on-change/patch.xodp similarity index 100% rename from workspace/lib/xod/core/pulse-on-change/patch.xodp rename to workspace/__lib__/xod/core/pulse-on-change/patch.xodp diff --git a/workspace/lib/xod/core/pulse-on-false/patch.xodp b/workspace/__lib__/xod/core/pulse-on-false/patch.xodp similarity index 100% rename from workspace/lib/xod/core/pulse-on-false/patch.xodp rename to workspace/__lib__/xod/core/pulse-on-false/patch.xodp diff --git a/workspace/lib/xod/core/pulse-on-true/any.cpp b/workspace/__lib__/xod/core/pulse-on-true/any.cpp similarity index 100% rename from workspace/lib/xod/core/pulse-on-true/any.cpp rename to workspace/__lib__/xod/core/pulse-on-true/any.cpp diff --git a/workspace/lib/xod/core/pulse-on-true/patch.xodp b/workspace/__lib__/xod/core/pulse-on-true/patch.xodp similarity index 100% rename from workspace/lib/xod/core/pulse-on-true/patch.xodp rename to workspace/__lib__/xod/core/pulse-on-true/patch.xodp diff --git a/workspace/lib/xod/core/pwm-output/arduino.cpp b/workspace/__lib__/xod/core/pwm-output/arduino.cpp similarity index 100% rename from workspace/lib/xod/core/pwm-output/arduino.cpp rename to workspace/__lib__/xod/core/pwm-output/arduino.cpp diff --git a/workspace/lib/xod/core/pwm-output/patch.xodp b/workspace/__lib__/xod/core/pwm-output/patch.xodp similarity index 100% rename from workspace/lib/xod/core/pwm-output/patch.xodp rename to workspace/__lib__/xod/core/pwm-output/patch.xodp diff --git a/workspace/lib/xod/core/round/any.cpp b/workspace/__lib__/xod/core/round/any.cpp similarity index 100% rename from workspace/lib/xod/core/round/any.cpp rename to workspace/__lib__/xod/core/round/any.cpp diff --git a/workspace/lib/xod/core/round/patch.xodp b/workspace/__lib__/xod/core/round/patch.xodp similarity index 100% rename from workspace/lib/xod/core/round/patch.xodp rename to workspace/__lib__/xod/core/round/patch.xodp diff --git a/workspace/lib/xod/core/select/patch.xodp b/workspace/__lib__/xod/core/select/patch.xodp similarity index 100% rename from workspace/lib/xod/core/select/patch.xodp rename to workspace/__lib__/xod/core/select/patch.xodp diff --git a/workspace/lib/xod/core/sin/any.cpp b/workspace/__lib__/xod/core/sin/any.cpp similarity index 100% rename from workspace/lib/xod/core/sin/any.cpp rename to workspace/__lib__/xod/core/sin/any.cpp diff --git a/workspace/lib/xod/core/sin/patch.xodp b/workspace/__lib__/xod/core/sin/patch.xodp similarity index 100% rename from workspace/lib/xod/core/sin/patch.xodp rename to workspace/__lib__/xod/core/sin/patch.xodp diff --git a/workspace/lib/xod/core/sqrt/any.cpp b/workspace/__lib__/xod/core/sqrt/any.cpp similarity index 100% rename from workspace/lib/xod/core/sqrt/any.cpp rename to workspace/__lib__/xod/core/sqrt/any.cpp diff --git a/workspace/lib/xod/core/sqrt/patch.xodp b/workspace/__lib__/xod/core/sqrt/patch.xodp similarity index 100% rename from workspace/lib/xod/core/sqrt/patch.xodp rename to workspace/__lib__/xod/core/sqrt/patch.xodp diff --git a/workspace/lib/xod/core/square/any.cpp b/workspace/__lib__/xod/core/square/any.cpp similarity index 100% rename from workspace/lib/xod/core/square/any.cpp rename to workspace/__lib__/xod/core/square/any.cpp diff --git a/workspace/lib/xod/core/square/patch.xodp b/workspace/__lib__/xod/core/square/patch.xodp similarity index 100% rename from workspace/lib/xod/core/square/patch.xodp rename to workspace/__lib__/xod/core/square/patch.xodp diff --git a/workspace/lib/xod/core/subtract/any.cpp b/workspace/__lib__/xod/core/subtract/any.cpp similarity index 100% rename from workspace/lib/xod/core/subtract/any.cpp rename to workspace/__lib__/xod/core/subtract/any.cpp diff --git a/workspace/lib/xod/core/subtract/patch.xodp b/workspace/__lib__/xod/core/subtract/patch.xodp similarity index 100% rename from workspace/lib/xod/core/subtract/patch.xodp rename to workspace/__lib__/xod/core/subtract/patch.xodp diff --git a/workspace/lib/xod/core/system-time/arduino.cpp b/workspace/__lib__/xod/core/system-time/arduino.cpp similarity index 100% rename from workspace/lib/xod/core/system-time/arduino.cpp rename to workspace/__lib__/xod/core/system-time/arduino.cpp diff --git a/workspace/lib/xod/core/system-time/patch.xodp b/workspace/__lib__/xod/core/system-time/patch.xodp similarity index 100% rename from workspace/lib/xod/core/system-time/patch.xodp rename to workspace/__lib__/xod/core/system-time/patch.xodp diff --git a/workspace/lib/xod/core/tan/any.cpp b/workspace/__lib__/xod/core/tan/any.cpp similarity index 100% rename from workspace/lib/xod/core/tan/any.cpp rename to workspace/__lib__/xod/core/tan/any.cpp diff --git a/workspace/lib/xod/core/tan/patch.xodp b/workspace/__lib__/xod/core/tan/patch.xodp similarity index 100% rename from workspace/lib/xod/core/tan/patch.xodp rename to workspace/__lib__/xod/core/tan/patch.xodp diff --git a/workspace/lib/xod/core/to-percent/patch.xodp b/workspace/__lib__/xod/core/to-percent/patch.xodp similarity index 100% rename from workspace/lib/xod/core/to-percent/patch.xodp rename to workspace/__lib__/xod/core/to-percent/patch.xodp diff --git a/workspace/lib/xod/core/watch/any.cpp b/workspace/__lib__/xod/core/watch/any.cpp similarity index 100% rename from workspace/lib/xod/core/watch/any.cpp rename to workspace/__lib__/xod/core/watch/any.cpp diff --git a/workspace/lib/xod/core/watch/patch.xodp b/workspace/__lib__/xod/core/watch/patch.xodp similarity index 100% rename from workspace/lib/xod/core/watch/patch.xodp rename to workspace/__lib__/xod/core/watch/patch.xodp diff --git a/workspace/lib/xod/core/word-to-number/any.cpp b/workspace/__lib__/xod/core/word-to-number/any.cpp similarity index 100% rename from workspace/lib/xod/core/word-to-number/any.cpp rename to workspace/__lib__/xod/core/word-to-number/any.cpp diff --git a/workspace/lib/xod/core/word-to-number/patch.xodp b/workspace/__lib__/xod/core/word-to-number/patch.xodp similarity index 100% rename from workspace/lib/xod/core/word-to-number/patch.xodp rename to workspace/__lib__/xod/core/word-to-number/patch.xodp diff --git a/workspace/lib/xod/core/xor/any.cpp b/workspace/__lib__/xod/core/xor/any.cpp similarity index 100% rename from workspace/lib/xod/core/xor/any.cpp rename to workspace/__lib__/xod/core/xor/any.cpp diff --git a/workspace/lib/xod/core/xor/patch.xodp b/workspace/__lib__/xod/core/xor/patch.xodp similarity index 100% rename from workspace/lib/xod/core/xor/patch.xodp rename to workspace/__lib__/xod/core/xor/patch.xodp diff --git a/workspace/lib/xod/units/c-to-f/patch.xodp b/workspace/__lib__/xod/units/c-to-f/patch.xodp similarity index 100% rename from workspace/lib/xod/units/c-to-f/patch.xodp rename to workspace/__lib__/xod/units/c-to-f/patch.xodp diff --git a/workspace/lib/xod/units/deg-to-rad/patch.xodp b/workspace/__lib__/xod/units/deg-to-rad/patch.xodp similarity index 100% rename from workspace/lib/xod/units/deg-to-rad/patch.xodp rename to workspace/__lib__/xod/units/deg-to-rad/patch.xodp diff --git a/workspace/lib/xod/units/m-to-cm/patch.xodp b/workspace/__lib__/xod/units/m-to-cm/patch.xodp similarity index 100% rename from workspace/lib/xod/units/m-to-cm/patch.xodp rename to workspace/__lib__/xod/units/m-to-cm/patch.xodp diff --git a/workspace/lib/xod/units/m-to-ft/patch.xodp b/workspace/__lib__/xod/units/m-to-ft/patch.xodp similarity index 100% rename from workspace/lib/xod/units/m-to-ft/patch.xodp rename to workspace/__lib__/xod/units/m-to-ft/patch.xodp diff --git a/workspace/lib/xod/units/m-to-in/patch.xodp b/workspace/__lib__/xod/units/m-to-in/patch.xodp similarity index 100% rename from workspace/lib/xod/units/m-to-in/patch.xodp rename to workspace/__lib__/xod/units/m-to-in/patch.xodp diff --git a/workspace/lib/xod/units/m-to-mm/patch.xodp b/workspace/__lib__/xod/units/m-to-mm/patch.xodp similarity index 100% rename from workspace/lib/xod/units/m-to-mm/patch.xodp rename to workspace/__lib__/xod/units/m-to-mm/patch.xodp diff --git a/workspace/lib/xod/units/project.xod b/workspace/__lib__/xod/units/project.xod similarity index 100% rename from workspace/lib/xod/units/project.xod rename to workspace/__lib__/xod/units/project.xod diff --git a/workspace/lib/xod/units/rad-to-deg/patch.xodp b/workspace/__lib__/xod/units/rad-to-deg/patch.xodp similarity index 100% rename from workspace/lib/xod/units/rad-to-deg/patch.xodp rename to workspace/__lib__/xod/units/rad-to-deg/patch.xodp diff --git a/yarn.lock b/yarn.lock index 57f81214..6d7bbbbe 100644 --- a/yarn.lock +++ b/yarn.lock @@ -14,7 +14,7 @@ version "2.1.1" resolved "https://registry.yarnpkg.com/7zip-bin-win/-/7zip-bin-win-2.1.1.tgz#8acfc28bb34e53a9476b46ae85a97418e6035c20" -"7zip-bin@^2.2.7": +"7zip-bin@^2.2.4": version "2.2.7" resolved "https://registry.yarnpkg.com/7zip-bin/-/7zip-bin-2.2.7.tgz#724802b8d6bda0bf2cfe61a4b86a820efc8ece93" optionalDependencies: @@ -248,7 +248,7 @@ ajv@^4.7.0, ajv@^4.9.1: co "^4.6.0" json-stable-stringify "^1.0.1" -ajv@^5.1.0, ajv@^5.2.3: +ajv@^5.1.0: version "5.2.3" resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.2.3.tgz#c06f598778c44c6b161abafe3466b81ad1814ed2" dependencies: @@ -257,6 +257,15 @@ ajv@^5.1.0, ajv@^5.2.3: json-schema-traverse "^0.3.0" json-stable-stringify "^1.0.1" +ajv@^5.2.2: + version "5.2.4" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.2.4.tgz#3daf9a8b67221299fdae8d82d117ed8e6c80244b" + dependencies: + co "^4.6.0" + fast-deep-equal "^1.0.0" + json-schema-traverse "^0.3.0" + json-stable-stringify "^1.0.1" + align-text@^0.1.1, align-text@^0.1.3: version "0.1.4" resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117" @@ -320,17 +329,16 @@ anymatch@^1.3.0: micromatch "^2.1.5" normalize-path "^2.0.0" -app-package-builder@1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/app-package-builder/-/app-package-builder-1.3.1.tgz#191eddb4e3f8be754f77469994447bed3891449e" +app-package-builder@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/app-package-builder/-/app-package-builder-1.0.3.tgz#39eeb95d3e67c9e0444c20bbcec6f3ea03ce2033" dependencies: - bluebird-lst "^1.0.5" - builder-util "^3.0.13" - builder-util-runtime "^2.3.0" - fs-extra-p "^4.4.4" + bluebird-lst "^1.0.3" + builder-util "^2.0.5" + builder-util-runtime "^1.0.5" + fs-extra-p "^4.4.2" int64-buffer "^0.1.9" js-yaml "^3.10.0" - rabin-bindings "~1.7.3" append-transform@^0.4.0: version "0.4.0" @@ -478,12 +486,12 @@ asap@^2.0.6, asap@~2.0.3: version "2.0.6" resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" -asar-integrity@0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/asar-integrity/-/asar-integrity-0.2.3.tgz#b238a68ef1218561b4904db8400c0943fbc62c62" +asar-integrity@0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/asar-integrity/-/asar-integrity-0.2.1.tgz#68a49aaafa407c0720ae683f9aefda09fdce60f1" dependencies: - bluebird-lst "^1.0.5" - fs-extra-p "^4.4.4" + bluebird-lst "^1.0.3" + fs-extra-p "^4.4.2" asn1.js@^4.0.0: version "4.9.1" @@ -1607,7 +1615,7 @@ bindings@1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.2.1.tgz#14ad6113812d2d37d72e67b4cacb4bb726505f11" -bindings@1.3.0, bindings@^1.3.0: +bindings@1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.3.0.tgz#b346f6ecf6a95f5a815c5839fc7cdb22502f1ed7" @@ -1864,7 +1872,23 @@ buffer@^4.3.0, buffer@^4.9.0: ieee754 "^1.1.4" isarray "^1.0.0" -builder-util-runtime@2.3.0, builder-util-runtime@^2.3.0, builder-util-runtime@~2.3.0: +builder-util-runtime@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-1.0.6.tgz#3087c39608470fa1b6ee90a4c565d96bd768c531" + dependencies: + bluebird-lst "^1.0.3" + debug "^3.1.0" + fs-extra-p "^4.4.2" + +builder-util-runtime@^1.0.5, builder-util-runtime@^1.0.6, builder-util-runtime@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-1.0.8.tgz#a2f7639180e5b5f2aa2c9641e4c970110c832e95" + dependencies: + bluebird-lst "^1.0.4" + debug "^3.1.0" + fs-extra-p "^4.4.3" + +builder-util-runtime@~2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-2.3.0.tgz#1d4ba8b38335907bd43e3a14ab7c8b0a701cff25" dependencies: @@ -1873,16 +1897,37 @@ builder-util-runtime@2.3.0, builder-util-runtime@^2.3.0, builder-util-runtime@~2 fs-extra-p "^4.4.4" sax "^1.2.4" -builder-util@3.0.13, builder-util@^3.0.13: - version "3.0.13" - resolved "https://registry.yarnpkg.com/builder-util/-/builder-util-3.0.13.tgz#f35612b06c546dac4d31c44317b992290a0e6b08" +builder-util@2.0.8: + version "2.0.8" + resolved "https://registry.yarnpkg.com/builder-util/-/builder-util-2.0.8.tgz#c7487be16848a2880ce7b50867d8ea366fe51e6e" dependencies: - "7zip-bin" "^2.2.7" - bluebird-lst "^1.0.5" - builder-util-runtime "^2.3.0" - chalk "2.1.0" + "7zip-bin" "^2.2.4" + bluebird-lst "^1.0.3" + builder-util-runtime "^1.0.6" + chalk "^2.1.0" debug "^3.1.0" - fs-extra-p "^4.4.4" + fs-extra-p "^4.4.2" + ini "^1.3.4" + is-ci "^1.0.10" + js-yaml "^3.10.0" + lazy-val "^1.0.2" + node-emoji "^1.8.1" + semver "^5.4.1" + source-map-support "^0.5.0" + stat-mode "^0.2.2" + temp-file "^2.0.3" + tunnel-agent "^0.6.0" + +builder-util@^2.0.2, builder-util@^2.0.5, builder-util@^2.0.7: + version "2.0.10" + resolved "https://registry.yarnpkg.com/builder-util/-/builder-util-2.0.10.tgz#d280ab7b9fbbcab4057f17282b733b1f641610f0" + dependencies: + "7zip-bin" "^2.2.4" + bluebird-lst "^1.0.4" + builder-util-runtime "^1.0.8" + chalk "^2.1.0" + debug "^3.1.0" + fs-extra-p "^4.4.3" ini "^1.3.4" is-ci "^1.0.10" js-yaml "^3.10.0" @@ -2044,7 +2089,7 @@ chalk@1.1.3, chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3: strip-ansi "^3.0.0" supports-color "^2.0.0" -chalk@2.1.0, chalk@^2.0.0, chalk@^2.1.0: +chalk@^2.0.0, chalk@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.1.0.tgz#ac5becf14fa21b99c6c92ca7a7d7cfd5b17e743e" dependencies: @@ -3015,7 +3060,7 @@ debug@2.6.9, debug@^2.1.1, debug@^2.1.3, debug@^2.2.0, debug@^2.3.2, debug@^2.3. dependencies: ms "2.0.0" -debug@^3.0.0, debug@^3.1.0: +debug@^3.0.0, debug@^3.0.1, debug@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" dependencies: @@ -3217,14 +3262,14 @@ disposables@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/disposables/-/disposables-1.0.1.tgz#064727a25b54f502bd82b89aa2dfb8df9f1b39e3" -dmg-builder@2.1.3: - version "2.1.3" - resolved "https://registry.yarnpkg.com/dmg-builder/-/dmg-builder-2.1.3.tgz#823b0560314312e59725ec779a4373d051ae1617" +dmg-builder@2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/dmg-builder/-/dmg-builder-2.1.0.tgz#fdeaa0d210bb3e27f31d9ceb485d90cfac3fdedc" dependencies: - bluebird-lst "^1.0.5" - builder-util "^3.0.13" - debug "^3.1.0" - fs-extra-p "^4.4.4" + bluebird-lst "^1.0.3" + builder-util "^2.0.2" + debug "^3.0.1" + fs-extra-p "^4.4.2" iconv-lite "^0.4.19" js-yaml "^3.10.0" parse-color "^1.0.0" @@ -3396,27 +3441,29 @@ ejs@^2.5.7, ejs@~2.5.6: version "2.5.7" resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.5.7.tgz#cc872c168880ae3c7189762fd5ffc00896c9518a" -electron-builder@^19.39.0: - version "19.39.0" - resolved "https://registry.yarnpkg.com/electron-builder/-/electron-builder-19.39.0.tgz#91d1a3efef84371fe6214a9f8cbce55b5f9234c8" +"electron-builder@git+https://github.com/xodio/electron-builder#monorepo-fix-npm": + version "19.34.2" + resolved "git+https://github.com/xodio/electron-builder#07c72f8066b28ec2ea925865272528aaa9e047b5" dependencies: - "7zip-bin" "^2.2.7" - app-package-builder "1.3.1" - asar-integrity "0.2.3" + "7zip-bin" "^2.2.4" + app-package-builder "1.0.3" + asar-integrity "0.2.1" async-exit-hook "^2.0.1" - bluebird-lst "^1.0.5" - builder-util "3.0.13" - builder-util-runtime "2.3.0" - chalk "2.1.0" + bluebird-lst "^1.0.3" + builder-util "2.0.8" + builder-util-runtime "1.0.6" + chalk "^2.1.0" chromium-pickle-js "^0.2.0" cuint "^0.2.2" debug "^3.1.0" - dmg-builder "2.1.3" + dmg-builder "2.1.0" + dotenv "^4.0.0" + dotenv-expand "^4.0.1" ejs "^2.5.7" electron-download-tf "4.3.4" electron-osx-sign "0.4.7" - electron-publish "19.39.0" - fs-extra-p "^4.4.4" + electron-publish "19.34.0" + fs-extra-p "^4.4.2" hosted-git-info "^2.5.0" is-ci "^1.0.10" isbinaryfile "^3.0.2" @@ -3425,11 +3472,11 @@ electron-builder@^19.39.0: minimatch "^3.0.4" normalize-package-data "^2.4.0" plist "^2.1.0" - read-config-file "1.2.0" + read-config-file "1.1.1" sanitize-filename "^1.6.1" semver "^5.4.1" temp-file "^2.0.3" - update-notifier "^2.3.0" + update-notifier "^2.2.0" yargs "^9.0.1" electron-chromedriver@~1.7.1: @@ -3514,15 +3561,15 @@ electron-osx-sign@0.4.7: minimist "^1.2.0" plist "^2.1.0" -electron-publish@19.39.0: - version "19.39.0" - resolved "https://registry.yarnpkg.com/electron-publish/-/electron-publish-19.39.0.tgz#e355a375d0fbd462256931424f5d338d9bcdf07a" +electron-publish@19.34.0: + version "19.34.0" + resolved "https://registry.yarnpkg.com/electron-publish/-/electron-publish-19.34.0.tgz#b29b95ecf205eabf193b521881a8189457e67a55" dependencies: - bluebird-lst "^1.0.5" - builder-util "^3.0.13" - builder-util-runtime "^2.3.0" - chalk "2.1.0" - fs-extra-p "^4.4.4" + bluebird-lst "^1.0.3" + builder-util "^2.0.7" + builder-util-runtime "^1.0.6" + chalk "^2.1.0" + fs-extra-p "^4.4.2" mime "^2.0.3" electron-settings@^3.0.14: @@ -3998,10 +4045,6 @@ expand-range@^1.8.1: dependencies: fill-range "^2.1.0" -expand-template@^1.0.2: - version "1.1.0" - resolved "https://registry.yarnpkg.com/expand-template/-/expand-template-1.1.0.tgz#e09efba977bf98f9ee0ed25abd0c692e02aec3fc" - expand-tilde@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-1.2.2.tgz#0b81eba897e5a3d31d1c3d102f8f01441e559449" @@ -4388,7 +4431,7 @@ fs-extra-p@^4.4.0: bluebird-lst "^1.0.2" fs-extra "^4.0.2" -fs-extra-p@^4.4.4: +fs-extra-p@^4.4.2, fs-extra-p@^4.4.3, fs-extra-p@^4.4.4: version "4.4.4" resolved "https://registry.yarnpkg.com/fs-extra-p/-/fs-extra-p-4.4.4.tgz#396ad6f914eb2954e1700fd0e18288301ed45f04" dependencies: @@ -4650,10 +4693,6 @@ gitconfiglocal@^1.0.0: dependencies: ini "^1.3.2" -github-from-package@0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/github-from-package/-/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce" - github-slugger@1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/github-slugger/-/github-slugger-1.1.3.tgz#314a6e759a18c2b0cc5760d512ccbab549c549a7" @@ -6939,7 +6978,7 @@ mute-stream@0.0.7: version "0.0.7" resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" -nan@^2.3.0, nan@^2.3.2, nan@^2.4.0, nan@^2.6.2, nan@^2.7.0: +nan@^2.3.0, nan@^2.3.2, nan@^2.4.0, nan@^2.6.2: version "2.7.0" resolved "https://registry.yarnpkg.com/nan/-/nan-2.7.0.tgz#d95bf721ec877e08db276ed3fc6eb78f9083ad46" @@ -6979,10 +7018,6 @@ next-tick@1: version "1.0.0" resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" -node-abi@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.1.1.tgz#c9cda256ec8aa99bcab2f6446db38af143338b2a" - node-dir@^0.1.10: version "0.1.17" resolved "https://registry.yarnpkg.com/node-dir/-/node-dir-0.1.17.tgz#5f5665d93351335caabef8f1c554516cf5f1e4e5" @@ -7127,10 +7162,6 @@ nomnom@~1.6.2: colors "0.5.x" underscore "~1.4.4" -noop-logger@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/noop-logger/-/noop-logger-0.1.1.tgz#94a2b1633c4f1317553007d8966fd0e841b6a4c2" - "nopt@2 || 3": version "3.0.6" resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" @@ -7182,7 +7213,7 @@ npm-run-path@^2.0.0: dependencies: path-key "^2.0.0" -"npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.0.0, npmlog@^4.0.1, npmlog@^4.0.2, npmlog@^4.1.2: +"npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.0.0, npmlog@^4.0.2, npmlog@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" dependencies: @@ -8007,25 +8038,6 @@ postcss@^6.0.1: source-map "^0.5.7" supports-color "^4.4.0" -prebuild-install@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-2.3.0.tgz#19481247df728b854ab57b187ce234211311b485" - dependencies: - expand-template "^1.0.2" - github-from-package "0.0.0" - minimist "^1.2.0" - mkdirp "^0.5.1" - node-abi "^2.1.1" - noop-logger "^0.1.1" - npmlog "^4.0.1" - os-homedir "^1.0.1" - pump "^1.0.1" - rc "^1.1.6" - simple-get "^1.4.2" - tar-fs "^1.13.0" - tunnel-agent "^0.6.0" - xtend "4.0.1" - prelude-ls@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" @@ -8135,7 +8147,7 @@ public-encrypt@^4.0.0: parse-asn1 "^5.0.0" randombytes "^2.0.1" -pump@^1.0.0, pump@^1.0.1: +pump@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/pump/-/pump-1.0.2.tgz#3b3ee6512f94f0e575538c17995f9f16990a5d51" dependencies: @@ -8193,14 +8205,6 @@ querystringify@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-1.0.0.tgz#6286242112c5b712fa654e526652bf6a13ff05cb" -rabin-bindings@~1.7.3: - version "1.7.3" - resolved "https://registry.yarnpkg.com/rabin-bindings/-/rabin-bindings-1.7.3.tgz#fb6ae9dbf897988bc2504ccf4832ee4f0546d32a" - dependencies: - bindings "^1.3.0" - nan "^2.7.0" - prebuild-install "^2.3.0" - railroad-diagrams@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/railroad-diagrams/-/railroad-diagrams-1.0.0.tgz#eb7e6267548ddedfb899c1b90e57374559cddb7e" @@ -8612,16 +8616,14 @@ read-cmd-shim@^1.0.1: dependencies: graceful-fs "^4.1.2" -read-config-file@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/read-config-file/-/read-config-file-1.2.0.tgz#1fd7dc8ccdad838cac9f686182625290fc94f456" +read-config-file@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/read-config-file/-/read-config-file-1.1.1.tgz#26b3d38a3ccbdacae9c168dc479828e68878a5d6" dependencies: - ajv "^5.2.3" + ajv "^5.2.2" ajv-keywords "^2.1.0" - bluebird-lst "^1.0.4" - dotenv "^4.0.0" - dotenv-expand "^4.0.1" - fs-extra-p "^4.4.4" + bluebird-lst "^1.0.3" + fs-extra-p "^4.4.0" js-yaml "^3.10.0" json5 "^0.5.1" lazy-val "^1.0.2" @@ -9537,14 +9539,6 @@ signal-exit@^3.0.0, signal-exit@^3.0.1, signal-exit@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" -simple-get@^1.4.2: - version "1.4.3" - resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-1.4.3.tgz#e9755eda407e96da40c5e5158c9ea37b33becbeb" - dependencies: - once "^1.3.1" - unzip-response "^1.0.0" - xtend "^4.0.0" - single-line-log@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/single-line-log/-/single-line-log-1.1.2.tgz#c2f83f273a3e1a16edb0995661da0ed5ef033364" @@ -10079,15 +10073,6 @@ tapable@^0.1.8, tapable@~0.1.8: version "0.1.10" resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.1.10.tgz#29c35707c2b70e50d07482b5d202e8ed446dafd4" -tar-fs@^1.13.0: - version "1.16.0" - resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-1.16.0.tgz#e877a25acbcc51d8c790da1c57c9cf439817b896" - dependencies: - chownr "^1.0.1" - mkdirp "^0.5.1" - pump "^1.0.0" - tar-stream "^1.1.2" - tar-pack@^3.4.0: version "3.4.0" resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.4.0.tgz#23be2d7f671a8339376cbdb0b8fe3fdebf317984" @@ -10101,7 +10086,7 @@ tar-pack@^3.4.0: tar "^2.2.1" uid-number "^0.0.6" -tar-stream@^1.1.2, tar-stream@^1.5.0: +tar-stream@^1.5.0: version "1.5.4" resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.5.4.tgz#36549cf04ed1aee9b2a30c0143252238daf94016" dependencies: @@ -10558,15 +10543,11 @@ unset-value@^1.0.0: has-value "^0.3.1" isobject "^3.0.0" -unzip-response@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-1.0.2.tgz#b984f0877fc0a89c2c773cc1ef7b5b232b5b06fe" - unzip-response@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97" -update-notifier@^2.3.0: +update-notifier@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-2.3.0.tgz#4e8827a6bb915140ab093559d7014e3ebb837451" dependencies: @@ -11103,7 +11084,7 @@ xmldom@0.1.x: version "0.1.27" resolved "https://registry.yarnpkg.com/xmldom/-/xmldom-0.1.27.tgz#d501f97b3bdb403af8ef9ecc20573187aadac0e9" -xtend@4.0.1, "xtend@>=4.0.0 <4.1.0-0", xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.0, xtend@~4.0.1: +"xtend@>=4.0.0 <4.1.0-0", xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.0, xtend@~4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af"