@joystick.js/cli-canary 0.0.0-canary.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.build/getFilesToBuild.js +38 -0
- package/.build/index.js +69 -0
- package/HMRNOTES.txt +23 -0
- package/README.md +7 -0
- package/_package.json +55 -0
- package/canary.js +12 -0
- package/dist/cli.js +69 -0
- package/dist/functions/build/getTarIgnoreList.js +25 -0
- package/dist/functions/build/index.js +54 -0
- package/dist/functions/create/buildPackageJSON.js +20 -0
- package/dist/functions/create/index.js +193 -0
- package/dist/functions/create/templates/api/index.js +4 -0
- package/dist/functions/create/templates/i18n/en-US.js +4 -0
- package/dist/functions/create/templates/index.client.js +7 -0
- package/dist/functions/create/templates/index.css +20 -0
- package/dist/functions/create/templates/index.html +23 -0
- package/dist/functions/create/templates/index.server.js +21 -0
- package/dist/functions/create/templates/public/apple-touch-icon-152x152.png +0 -0
- package/dist/functions/create/templates/public/favicon.ico +0 -0
- package/dist/functions/create/templates/public/manifest.json +25 -0
- package/dist/functions/create/templates/public/service-worker.js +32 -0
- package/dist/functions/create/templates/public/splash-screen-1024x1024.png +0 -0
- package/dist/functions/create/templates/settings.development.json +27 -0
- package/dist/functions/create/templates/ui/components/button/index.js +50 -0
- package/dist/functions/create/templates/ui/layouts/app/index.js +13 -0
- package/dist/functions/create/templates/ui/pages/error/index.js +31 -0
- package/dist/functions/create/templates/ui/pages/index/index.js +94 -0
- package/dist/functions/index.js +243 -0
- package/dist/functions/logout/index.js +20 -0
- package/dist/functions/push/checkIfProvisionAvailable.js +19 -0
- package/dist/functions/push/deploy/index.js +173 -0
- package/dist/functions/push/deploy/initial.js +100 -0
- package/dist/functions/push/deploy/version.js +100 -0
- package/dist/functions/push/domains.js +23 -0
- package/dist/functions/push/getAvailableCDN.js +23 -0
- package/dist/functions/push/getDeployment.js +41 -0
- package/dist/functions/push/getDeploymentSummary.js +38 -0
- package/dist/functions/push/getInstanceSizeRegions.js +37 -0
- package/dist/functions/push/getInstanceSizesForRegion.js +34 -0
- package/dist/functions/push/getProviderInstanceSizes.js +34 -0
- package/dist/functions/push/getProviderRegions.js +36 -0
- package/dist/functions/push/getProvidersWithConnectionStatus.js +20 -0
- package/dist/functions/push/getSessionToken.js +23 -0
- package/dist/functions/push/getUserFromSessionToken.js +37 -0
- package/dist/functions/push/index.js +210 -0
- package/dist/functions/push/loginToCheatCode.js +33 -0
- package/dist/functions/push/pingProvisionAPI.js +31 -0
- package/dist/functions/push/prompts.js +332 -0
- package/dist/functions/push/providerMap.js +11 -0
- package/dist/functions/push/providers.js +9 -0
- package/dist/functions/reset/index.js +0 -0
- package/dist/functions/reset/reset.js +127 -0
- package/dist/functions/start/bootstrapLayoutComponent.js +54 -0
- package/dist/functions/start/bootstrapPageComponent.js +51 -0
- package/dist/functions/start/buildFile.js +85 -0
- package/dist/functions/start/buildFiles.js +76 -0
- package/dist/functions/start/buildPlugins.js +183 -0
- package/dist/functions/start/checkIfPortAvailable.js +18 -0
- package/dist/functions/start/cleanup/index.js +18 -0
- package/dist/functions/start/databases/mongodb/availableQueryParameters.js +42 -0
- package/dist/functions/start/databases/mongodb/buildConnectionString.js +22 -0
- package/dist/functions/start/databases/mongodb/buildQueryParameters.js +14 -0
- package/dist/functions/start/databases/mongodb/checkConnection.js +38 -0
- package/dist/functions/start/databases/mongodb/connect.js +25 -0
- package/dist/functions/start/databases/mongodb/index.js +93 -0
- package/dist/functions/start/databases/postgresql/checkConnection.js +41 -0
- package/dist/functions/start/databases/postgresql/connect.js +27 -0
- package/dist/functions/start/databases/postgresql/index.js +106 -0
- package/dist/functions/start/databases/redis.js +0 -0
- package/dist/functions/start/databases/startProvider.js +16 -0
- package/dist/functions/start/fileDependencyMapper.js +22 -0
- package/dist/functions/start/filesToCopy.js +18 -0
- package/dist/functions/start/generateId.js +74 -0
- package/dist/functions/start/getCodependenciesForFile.js +64 -0
- package/dist/functions/start/getFilesToBuild.js +39 -0
- package/dist/functions/start/getProcessIdFromPort.js +60 -0
- package/dist/functions/start/hmrServer.js +66 -0
- package/dist/functions/start/index.js +535 -0
- package/dist/functions/start/isWindows.js +5 -0
- package/dist/functions/start/minifyFile.js +12 -0
- package/dist/functions/start/onWarn.js +63 -0
- package/dist/functions/start/readFileDependencyMap.js +16 -0
- package/dist/functions/start/removeDeletedDependenciesFromMap.js +18 -0
- package/dist/functions/start/setComponentId.js +46 -0
- package/dist/functions/start/updateFileMap.js +67 -0
- package/dist/functions/update/index.js +21 -0
- package/dist/functions/use/index.js +61 -0
- package/dist/index.js +8 -0
- package/dist/lib/CLILog.js +49 -0
- package/dist/lib/buildResolvePlugin.js +21 -0
- package/dist/lib/checkIfValidJSON.js +11 -0
- package/dist/lib/colorLog.js +7 -0
- package/dist/lib/getArgs.js +14 -0
- package/dist/lib/getCodeFrame.js +10 -0
- package/dist/lib/getOptions.js +15 -0
- package/dist/lib/getPlatformSafePath.js +7 -0
- package/dist/lib/getProvider.js +8 -0
- package/dist/lib/help.js +56 -0
- package/dist/lib/isObject.js +6 -0
- package/dist/lib/isValidJSONString.js +11 -0
- package/dist/lib/isWindows.js +5 -0
- package/dist/lib/killProcesses.js +0 -0
- package/dist/lib/loadSettings.js +33 -0
- package/dist/lib/loader.js +82 -0
- package/dist/lib/masterIgnoreList.js +16 -0
- package/dist/lib/nodeEnvironment.js +9 -0
- package/dist/lib/nodeEnvironments.js +8 -0
- package/dist/lib/parseCookiesFromLogin.js +18 -0
- package/dist/lib/rainbowRoad.js +7 -0
- package/dist/lib/readDirectorySync.js +14 -0
- package/dist/lib/regexes.js +12 -0
- package/dist/lib/replaceBackslashesWithForwardSlashes.js +8 -0
- package/dist/lib/replaceFileProtocol.js +8 -0
- package/dist/lib/serializeQueryParameters.js +8 -0
- package/dist/lib/settings.js +4 -0
- package/dist/lib/validateDatabasesFromSettings.js +34 -0
- package/dist/lib/wait.js +8 -0
- package/package.json +54 -0
- package/release.js +40 -0
- package/src/cli.js +88 -0
- package/src/functions/build/getTarIgnoreList.js +30 -0
- package/src/functions/build/index.js +63 -0
- package/src/functions/create/buildPackageJSON.js +18 -0
- package/src/functions/create/index.js +209 -0
- package/src/functions/create/templates/api/index.js +4 -0
- package/src/functions/create/templates/i18n/en-US.js +4 -0
- package/src/functions/create/templates/index.client.js +7 -0
- package/src/functions/create/templates/index.css +20 -0
- package/src/functions/create/templates/index.html +23 -0
- package/src/functions/create/templates/index.server.js +21 -0
- package/src/functions/create/templates/public/apple-touch-icon-152x152.png +0 -0
- package/src/functions/create/templates/public/favicon.ico +0 -0
- package/src/functions/create/templates/public/manifest.json +25 -0
- package/src/functions/create/templates/public/service-worker.js +32 -0
- package/src/functions/create/templates/public/splash-screen-1024x1024.png +0 -0
- package/src/functions/create/templates/settings.development.json +27 -0
- package/src/functions/create/templates/ui/components/button/index.js +50 -0
- package/src/functions/create/templates/ui/layouts/app/index.js +13 -0
- package/src/functions/create/templates/ui/pages/error/index.js +31 -0
- package/src/functions/create/templates/ui/pages/index/index.js +94 -0
- package/src/functions/index.js +243 -0
- package/src/functions/logout/index.js +20 -0
- package/src/functions/push/checkIfProvisionAvailable.js +20 -0
- package/src/functions/push/deploy/index.js +199 -0
- package/src/functions/push/deploy/initial.js +108 -0
- package/src/functions/push/deploy/version.js +108 -0
- package/src/functions/push/domains.js +23 -0
- package/src/functions/push/getAvailableCDN.js +27 -0
- package/src/functions/push/getDeployment.js +43 -0
- package/src/functions/push/getDeploymentSummary.js +39 -0
- package/src/functions/push/getInstanceSizeRegions.js +40 -0
- package/src/functions/push/getInstanceSizesForRegion.js +35 -0
- package/src/functions/push/getProviderInstanceSizes.js +35 -0
- package/src/functions/push/getProviderRegions.js +39 -0
- package/src/functions/push/getProvidersWithConnectionStatus.js +25 -0
- package/src/functions/push/getSessionToken.js +26 -0
- package/src/functions/push/getUserFromSessionToken.js +39 -0
- package/src/functions/push/index.js +245 -0
- package/src/functions/push/loginToCheatCode.js +34 -0
- package/src/functions/push/pingProvisionAPI.js +33 -0
- package/src/functions/push/prompts.js +276 -0
- package/src/functions/push/providerMap.js +8 -0
- package/src/functions/push/providers.js +6 -0
- package/src/functions/reset/index.js +0 -0
- package/src/functions/reset/reset.js +163 -0
- package/src/functions/start/bootstrapLayoutComponent.js +57 -0
- package/src/functions/start/bootstrapPageComponent.js +54 -0
- package/src/functions/start/buildFile.js +97 -0
- package/src/functions/start/buildFiles.js +101 -0
- package/src/functions/start/buildPlugins.js +215 -0
- package/src/functions/start/checkIfPortAvailable.js +21 -0
- package/src/functions/start/cleanup/index.js +23 -0
- package/src/functions/start/databases/mongodb/availableQueryParameters.js +39 -0
- package/src/functions/start/databases/mongodb/buildConnectionString.js +28 -0
- package/src/functions/start/databases/mongodb/buildQueryParameters.js +15 -0
- package/src/functions/start/databases/mongodb/checkConnection.js +40 -0
- package/src/functions/start/databases/mongodb/connect.js +25 -0
- package/src/functions/start/databases/mongodb/index.js +108 -0
- package/src/functions/start/databases/postgresql/checkConnection.js +43 -0
- package/src/functions/start/databases/postgresql/connect.js +27 -0
- package/src/functions/start/databases/postgresql/index.js +127 -0
- package/src/functions/start/databases/redis.js +0 -0
- package/src/functions/start/databases/startProvider.js +15 -0
- package/src/functions/start/fileDependencyMapper.js +24 -0
- package/src/functions/start/filesToCopy.js +15 -0
- package/src/functions/start/generateId.js +73 -0
- package/src/functions/start/getCodependenciesForFile.js +84 -0
- package/src/functions/start/getFilesToBuild.js +49 -0
- package/src/functions/start/getProcessIdFromPort.js +92 -0
- package/src/functions/start/hmrServer.js +78 -0
- package/src/functions/start/index.js +688 -0
- package/src/functions/start/isWindows.js +3 -0
- package/src/functions/start/minifyFile.js +10 -0
- package/src/functions/start/onWarn.js +68 -0
- package/src/functions/start/readFileDependencyMap.js +19 -0
- package/src/functions/start/removeDeletedDependenciesFromMap.js +19 -0
- package/src/functions/start/setComponentId.js +58 -0
- package/src/functions/start/updateFileMap.js +100 -0
- package/src/functions/update/index.js +20 -0
- package/src/functions/use/index.js +62 -0
- package/src/index.js +13 -0
- package/src/lib/CLILog.js +40 -0
- package/src/lib/buildResolvePlugin.js +32 -0
- package/src/lib/checkIfValidJSON.js +8 -0
- package/src/lib/colorLog.js +5 -0
- package/src/lib/getArgs.js +14 -0
- package/src/lib/getCodeFrame.js +8 -0
- package/src/lib/getOptions.js +12 -0
- package/src/lib/getPlatformSafePath.js +6 -0
- package/src/lib/getProvider.js +5 -0
- package/src/lib/help.js +56 -0
- package/src/lib/isObject.js +3 -0
- package/src/lib/isValidJSONString.js +8 -0
- package/src/lib/isWindows.js +3 -0
- package/src/lib/killProcesses.js +5 -0
- package/src/lib/loadSettings.js +40 -0
- package/src/lib/loader.js +94 -0
- package/src/lib/masterIgnoreList.js +13 -0
- package/src/lib/nodeEnvironment.js +6 -0
- package/src/lib/nodeEnvironments.js +8 -0
- package/src/lib/parseCookiesFromLogin.js +21 -0
- package/src/lib/rainbowRoad.js +5 -0
- package/src/lib/readDirectorySync.js +13 -0
- package/src/lib/regexes.js +5 -0
- package/src/lib/replaceBackslashesWithForwardSlashes.js +8 -0
- package/src/lib/replaceFileProtocol.js +8 -0
- package/src/lib/serializeQueryParameters.js +5 -0
- package/src/lib/settings.js +1 -0
- package/src/lib/validateDatabasesFromSettings.js +37 -0
- package/src/lib/wait.js +5 -0
- package/storage/.verdaccio-db.json +1 -0
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import fs from "fs";
|
|
2
|
+
import readFileDependencyMap from "./readFileDependencyMap.js";
|
|
3
|
+
var removeDeletedDependenciesFromMap_default = (deletedDependencies = []) => {
|
|
4
|
+
const fileDependencyMap = readFileDependencyMap();
|
|
5
|
+
deletedDependencies.forEach((dependency) => {
|
|
6
|
+
const match = Object.keys(fileDependencyMap).find((key) => key.includes(dependency));
|
|
7
|
+
if (match) {
|
|
8
|
+
delete fileDependencyMap[match];
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
fs.writeFileSync(
|
|
12
|
+
`.joystick/build/fileMap.json`,
|
|
13
|
+
JSON.stringify(fileDependencyMap, null, 2)
|
|
14
|
+
);
|
|
15
|
+
};
|
|
16
|
+
export {
|
|
17
|
+
removeDeletedDependenciesFromMap_default as default
|
|
18
|
+
};
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import fs from "fs";
|
|
2
|
+
import generateId from "./generateId.js";
|
|
3
|
+
var setComponentId_default = (file = "") => {
|
|
4
|
+
const componentMapPath = process.env.NODE_ENV === "development" ? `./.joystick/build/componentMap.json` : `./.build/componentMap.json`;
|
|
5
|
+
const componentMapExists = fs.existsSync(componentMapPath);
|
|
6
|
+
const componentMap = componentMapExists ? JSON.parse(fs.readFileSync(componentMapPath, "utf-8")) : {};
|
|
7
|
+
const parts = [...file?.matchAll(/\/\/ ui+.*/gi)]?.map((match) => {
|
|
8
|
+
return {
|
|
9
|
+
path: match[0],
|
|
10
|
+
index: match.index
|
|
11
|
+
};
|
|
12
|
+
});
|
|
13
|
+
const components = (parts || [])?.map((part, partIndex) => {
|
|
14
|
+
const nextPart = parts[partIndex + 1];
|
|
15
|
+
return {
|
|
16
|
+
path: part.path.replace("// ", ""),
|
|
17
|
+
index: part.index,
|
|
18
|
+
source: file.substring(
|
|
19
|
+
part.index,
|
|
20
|
+
nextPart ? nextPart.index : file.length
|
|
21
|
+
)
|
|
22
|
+
};
|
|
23
|
+
});
|
|
24
|
+
for (let i = 0; i < components.length; i += 1) {
|
|
25
|
+
const component = components[i];
|
|
26
|
+
const componentId = componentMap && componentMap[component.path] || generateId();
|
|
27
|
+
if (componentMap) {
|
|
28
|
+
componentMap[component.path] = componentId;
|
|
29
|
+
}
|
|
30
|
+
const tainted = component.source.replace(
|
|
31
|
+
/\.component\(\{+(?!\n + _componentId)/g,
|
|
32
|
+
() => {
|
|
33
|
+
return `.component({
|
|
34
|
+
_componentId: '${componentId}',`;
|
|
35
|
+
}
|
|
36
|
+
);
|
|
37
|
+
file = file.replace(component.source, tainted);
|
|
38
|
+
}
|
|
39
|
+
if (componentMap) {
|
|
40
|
+
fs.writeFileSync(componentMapPath, JSON.stringify(componentMap));
|
|
41
|
+
}
|
|
42
|
+
return file;
|
|
43
|
+
};
|
|
44
|
+
export {
|
|
45
|
+
setComponentId_default as default
|
|
46
|
+
};
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import fs from "fs";
|
|
2
|
+
import * as acorn from "acorn";
|
|
3
|
+
const getImportsAndRequires = (map = {}) => {
|
|
4
|
+
const { body } = map;
|
|
5
|
+
const imports = body && body.filter(({ type }) => {
|
|
6
|
+
return type === "ImportDeclaration";
|
|
7
|
+
});
|
|
8
|
+
const requires = body && body.filter((statement) => {
|
|
9
|
+
const type = statement && statement.type;
|
|
10
|
+
const declarations = statement && statement.declarations || [];
|
|
11
|
+
const isVariableDeclaration = type === "VariableDeclaration";
|
|
12
|
+
const hasRequireStatement = declarations.some((declaration) => {
|
|
13
|
+
const isVariableDeclarator = declaration.type === "VariableDeclarator";
|
|
14
|
+
const calleeName = declaration && declaration.init && declaration.init.callee && declaration.init.callee.name;
|
|
15
|
+
return isVariableDeclarator && calleeName === "require";
|
|
16
|
+
});
|
|
17
|
+
return isVariableDeclaration && hasRequireStatement;
|
|
18
|
+
});
|
|
19
|
+
return {
|
|
20
|
+
imports: imports.map((importDeclaration) => {
|
|
21
|
+
return {
|
|
22
|
+
path: importDeclaration && importDeclaration.source && importDeclaration.source.value
|
|
23
|
+
};
|
|
24
|
+
}),
|
|
25
|
+
requires: requires.map((requireDeclaration) => {
|
|
26
|
+
const declarations = requireDeclaration.declarations;
|
|
27
|
+
const declaration = declarations && declarations[0];
|
|
28
|
+
return {
|
|
29
|
+
path: declaration && declaration.init && declaration.init.arguments && declaration.init.arguments[0] && declaration.init.arguments[0].value
|
|
30
|
+
};
|
|
31
|
+
})
|
|
32
|
+
};
|
|
33
|
+
};
|
|
34
|
+
const parseFileToAST = (source = "") => {
|
|
35
|
+
return acorn.parse(source, {
|
|
36
|
+
ecmaVersion: "latest",
|
|
37
|
+
sourceType: "module"
|
|
38
|
+
});
|
|
39
|
+
};
|
|
40
|
+
const readFileDependencyMap = () => {
|
|
41
|
+
const fileDependencyMapPath = `.joystick/build/fileMap.json`;
|
|
42
|
+
if (fs.existsSync(fileDependencyMapPath)) {
|
|
43
|
+
const fileDependencyMapAsJSON = fs.readFileSync(
|
|
44
|
+
fileDependencyMapPath,
|
|
45
|
+
"utf-8"
|
|
46
|
+
);
|
|
47
|
+
const fileMap = fileDependencyMapAsJSON ? JSON.parse(fileDependencyMapAsJSON) : {};
|
|
48
|
+
return fileMap;
|
|
49
|
+
}
|
|
50
|
+
return {};
|
|
51
|
+
};
|
|
52
|
+
var updateFileMap_default = (path = "", source = "") => {
|
|
53
|
+
try {
|
|
54
|
+
const fileDependencyMap = readFileDependencyMap();
|
|
55
|
+
const fileAST = parseFileToAST(source);
|
|
56
|
+
const imports = fileAST ? getImportsAndRequires(fileAST) : [];
|
|
57
|
+
fileDependencyMap[path] = imports;
|
|
58
|
+
fs.writeFileSync(
|
|
59
|
+
`.joystick/build/fileMap.json`,
|
|
60
|
+
JSON.stringify(fileDependencyMap, null, 2)
|
|
61
|
+
);
|
|
62
|
+
} catch (exception) {
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
export {
|
|
66
|
+
updateFileMap_default as default
|
|
67
|
+
};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import chalk from "chalk";
|
|
2
|
+
import child_process from "child_process";
|
|
3
|
+
import Loader from "../../lib/loader.js";
|
|
4
|
+
process.loader = new Loader({ defaultMessage: "Updating Joystick dependencies..." });
|
|
5
|
+
var update_default = () => {
|
|
6
|
+
process.loader.text("Updating @joystick.js/node...");
|
|
7
|
+
child_process.exec("npm i @joystick.js/node@latest", () => {
|
|
8
|
+
process.loader.text("Updating @joystick.js/ui...");
|
|
9
|
+
child_process.exec("npm i @joystick.js/ui@latest", () => {
|
|
10
|
+
process.loader.text("Updating @joystick.js/cli...");
|
|
11
|
+
child_process.exec("npm i -g @joystick.js/cli@latest", () => {
|
|
12
|
+
process.loader.stop();
|
|
13
|
+
console.log(chalk.green("Joystick updated!"));
|
|
14
|
+
process.exit(0);
|
|
15
|
+
});
|
|
16
|
+
});
|
|
17
|
+
});
|
|
18
|
+
};
|
|
19
|
+
export {
|
|
20
|
+
update_default as default
|
|
21
|
+
};
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import replaceInFiles from "replace-in-files";
|
|
2
|
+
import child_process from "child_process";
|
|
3
|
+
var use_default = async (args = {}) => {
|
|
4
|
+
if (args?.version === "canary") {
|
|
5
|
+
await replaceInFiles({
|
|
6
|
+
files: ["./index.server.js", "./api/**/*.js", "lib/node/**/*.js"],
|
|
7
|
+
from: /(@joystick.js\/node)(?!-)/g,
|
|
8
|
+
to: "@joystick.js/node-canary",
|
|
9
|
+
optionsForFiles: {
|
|
10
|
+
// default
|
|
11
|
+
"ignore": [
|
|
12
|
+
"**/node_modules/**"
|
|
13
|
+
]
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
await replaceInFiles({
|
|
17
|
+
files: ["./index.client.js", "./ui/**/*.js", "lib/**/*.js"],
|
|
18
|
+
from: /(@joystick.js\/ui)(?!-)/g,
|
|
19
|
+
to: "@joystick.js/ui-canary",
|
|
20
|
+
optionsForFiles: {
|
|
21
|
+
// default
|
|
22
|
+
"ignore": [
|
|
23
|
+
"**/node_modules/**"
|
|
24
|
+
]
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
console.log("\nSwapping production packages for canary versions...\n");
|
|
28
|
+
child_process.execSync("npm uninstall @joystick.js/node && npm i @joystick.js/node-canary");
|
|
29
|
+
child_process.execSync("npm uninstall @joystick.js/ui && npm i @joystick.js/ui-canary");
|
|
30
|
+
}
|
|
31
|
+
if (args?.version === "production") {
|
|
32
|
+
await replaceInFiles({
|
|
33
|
+
files: ["./index.server.js", "./api/**/*.js", "lib/node/**/*.js"],
|
|
34
|
+
from: /(@joystick.js\/node-canary)/g,
|
|
35
|
+
to: "@joystick.js/node",
|
|
36
|
+
optionsForFiles: {
|
|
37
|
+
// default
|
|
38
|
+
"ignore": [
|
|
39
|
+
"**/node_modules/**"
|
|
40
|
+
]
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
await replaceInFiles({
|
|
44
|
+
files: ["./index.client.js", "./ui/**/*.js", "lib/**/*.js"],
|
|
45
|
+
from: /(@joystick.js\/ui-canary)/g,
|
|
46
|
+
to: "@joystick.js/ui",
|
|
47
|
+
optionsForFiles: {
|
|
48
|
+
// default
|
|
49
|
+
"ignore": [
|
|
50
|
+
"**/node_modules/**"
|
|
51
|
+
]
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
console.log("\nSwapping canary packages for production versions...\n");
|
|
55
|
+
child_process.execSync("npm uninstall @joystick.js/node-canary && npm i @joystick.js/node");
|
|
56
|
+
child_process.execSync("npm uninstall @joystick.js/ui-canary && npm i @joystick.js/ui");
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
export {
|
|
60
|
+
use_default as default
|
|
61
|
+
};
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { spawn } from "child_process";
|
|
3
|
+
import { fileURLToPath } from "url";
|
|
4
|
+
import { dirname } from "path";
|
|
5
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
6
|
+
const __dirname = dirname(__filename);
|
|
7
|
+
const args = process.argv.slice(2, process.argv.length);
|
|
8
|
+
spawn("node", ["--no-warnings", `${__dirname}/cli.js`, ...args], { stdio: "inherit" });
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import chalk from "chalk";
|
|
2
|
+
import rainbowRoad from "./rainbowRoad.js";
|
|
3
|
+
var CLILog_default = (message = "", options = {}) => {
|
|
4
|
+
const colors = {
|
|
5
|
+
info: "blue",
|
|
6
|
+
success: "green",
|
|
7
|
+
warning: "yellowBright",
|
|
8
|
+
danger: "red"
|
|
9
|
+
};
|
|
10
|
+
const titles = {
|
|
11
|
+
info: "\u2771 Info",
|
|
12
|
+
success: "\u2771 Ok",
|
|
13
|
+
warning: "\u2771 Warning",
|
|
14
|
+
danger: "\u2771 Error"
|
|
15
|
+
};
|
|
16
|
+
const color = options.level ? colors[options.level] : "gray";
|
|
17
|
+
const title = options.level ? titles[options.level] : "Log";
|
|
18
|
+
const docs = options.docs || "https://github.com/cheatcode/joystick";
|
|
19
|
+
console.log(`
|
|
20
|
+
${options.padding || ""}${rainbowRoad()}
|
|
21
|
+
`);
|
|
22
|
+
console.log(`${options.padding || ""}${chalk[color](`${title}:`)}
|
|
23
|
+
`);
|
|
24
|
+
console.log(`${options.padding || ""}${chalk.white(message)}
|
|
25
|
+
`);
|
|
26
|
+
console.log(`${options.padding || ""}${chalk.grey("---")}
|
|
27
|
+
`);
|
|
28
|
+
console.log(`${options.padding || ""}${chalk.white("Relevant Documentation:")}
|
|
29
|
+
`);
|
|
30
|
+
console.log(`${options.padding || ""}${chalk.blue(docs)}
|
|
31
|
+
`);
|
|
32
|
+
console.log(`${options.padding || ""}${chalk.white("Stuck? Ask a Question:")}
|
|
33
|
+
`);
|
|
34
|
+
console.log(`${options.padding || ""}${chalk.blue("https://github.com/cheatcode/joystick/discussions")}
|
|
35
|
+
`);
|
|
36
|
+
if (options.tools && Array.isArray(options.tools)) {
|
|
37
|
+
console.log(`${options.padding || ""}${chalk.white("Helpful Tools:")}
|
|
38
|
+
`);
|
|
39
|
+
options.tools.forEach((tool) => {
|
|
40
|
+
console.log(`${options.padding || ""}${chalk.blue(`${tool.title} \u2014 ${tool.url}`)}
|
|
41
|
+
`);
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
console.log(`${options.padding || ""}${rainbowRoad()}
|
|
45
|
+
`);
|
|
46
|
+
};
|
|
47
|
+
export {
|
|
48
|
+
CLILog_default as default
|
|
49
|
+
};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
function myExample() {
|
|
2
|
+
return {
|
|
3
|
+
name: "joystick-build-resolve",
|
|
4
|
+
// this name will show up in warnings and errors
|
|
5
|
+
buildEnd() {
|
|
6
|
+
const moduleIds = Array.from(this.getModuleIds());
|
|
7
|
+
const modules = moduleIds.map((moduleId) => this.getModuleInfo(moduleId)).filter(({ id }) => {
|
|
8
|
+
const ignorePaths = ["node_modules", "dist"];
|
|
9
|
+
const noResolvePaths = ["/ui", "/api"];
|
|
10
|
+
if (!ignorePaths.some((path) => id.includes(path)) && noResolvePaths.some((path) => id.includes(path))) {
|
|
11
|
+
return true;
|
|
12
|
+
}
|
|
13
|
+
return false;
|
|
14
|
+
});
|
|
15
|
+
return null;
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
export {
|
|
20
|
+
myExample as default
|
|
21
|
+
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
var getArgs_default = (args = {}) => {
|
|
2
|
+
return Object.entries(args).reduce((values, [argName, argData]) => {
|
|
3
|
+
if (argData && argData.value && argData.parent && argData.parent === "create") {
|
|
4
|
+
values[argName] = argData.value;
|
|
5
|
+
}
|
|
6
|
+
if (argData && argData.value && (!argData.parent || argData.parent !== "create")) {
|
|
7
|
+
values[argName] = !argData.value.includes("-") ? argData.value : null;
|
|
8
|
+
}
|
|
9
|
+
return values;
|
|
10
|
+
}, {});
|
|
11
|
+
};
|
|
12
|
+
export {
|
|
13
|
+
getArgs_default as default
|
|
14
|
+
};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import fs from "fs";
|
|
2
|
+
import { codeFrameColumns } from "@babel/code-frame";
|
|
3
|
+
var getCodeFrame_default = (id = "", location = {}) => {
|
|
4
|
+
const file = fs.readFileSync(id, "utf-8");
|
|
5
|
+
const frame = codeFrameColumns(file, { start: location });
|
|
6
|
+
return frame;
|
|
7
|
+
};
|
|
8
|
+
export {
|
|
9
|
+
getCodeFrame_default as default
|
|
10
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
var getOptions_default = (options = {}) => {
|
|
2
|
+
return Object.entries(options).reduce((values, [optionName, optionData]) => {
|
|
3
|
+
if (optionData && optionData.flags) {
|
|
4
|
+
Object.entries(optionData.flags).forEach(([_flagName, flag]) => {
|
|
5
|
+
if (flag && flag.value) {
|
|
6
|
+
values[optionName] = flag.value && ![`${flag.value}`.substring(0, 1)].includes("-") ? flag.value : null;
|
|
7
|
+
}
|
|
8
|
+
});
|
|
9
|
+
}
|
|
10
|
+
return values;
|
|
11
|
+
}, {});
|
|
12
|
+
};
|
|
13
|
+
export {
|
|
14
|
+
getOptions_default as default
|
|
15
|
+
};
|
package/dist/lib/help.js
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import chalk from "chalk";
|
|
2
|
+
import { createRequire } from "module";
|
|
3
|
+
import functions from "../functions/index.js";
|
|
4
|
+
import rainbowRoad from "./rainbowRoad.js";
|
|
5
|
+
const require2 = createRequire(import.meta.url);
|
|
6
|
+
const packageJSON = require2("../../package.json");
|
|
7
|
+
const createSpacer = (target = 5, start = "") => {
|
|
8
|
+
const numberOfSpaces = target - start.length;
|
|
9
|
+
const spaces = [...numberOfSpaces > 0 ? Array(target - start.length) : ""].map(() => " ");
|
|
10
|
+
return spaces.join("");
|
|
11
|
+
};
|
|
12
|
+
const getArgsForFunction = (functionArgs = {}) => {
|
|
13
|
+
return Object.keys(functionArgs).map((functionArg) => `<${functionArg}>`).join(" ");
|
|
14
|
+
};
|
|
15
|
+
const buildOptionsForFunction = (functionOptions = {}) => {
|
|
16
|
+
return Object.entries(functionOptions).map(([optionName, optionSettings]) => {
|
|
17
|
+
return `
|
|
18
|
+
${chalk.green(optionName)}${createSpacer(15, optionName)}${optionSettings.flags && Object.keys(optionSettings.flags).map((flag) => chalk.magenta(flag)).join(", ")}${createSpacer(15, optionName)}${optionSettings.description}
|
|
19
|
+
`;
|
|
20
|
+
}).join("\r");
|
|
21
|
+
};
|
|
22
|
+
var help_default = () => {
|
|
23
|
+
console.log(`
|
|
24
|
+
|
|
25
|
+
${rainbowRoad()}
|
|
26
|
+
|
|
27
|
+
${chalk.yellowBright("@joystick.js/cli")} ${chalk.magenta(`(v${packageJSON.version})`)}
|
|
28
|
+
|
|
29
|
+
${chalk.blue("Create, start, build, and update your Joystick app.")}
|
|
30
|
+
|
|
31
|
+
${chalk.gray("https://github.com/cheatcode/joystick")}
|
|
32
|
+
|
|
33
|
+
${rainbowRoad()}
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
${chalk.magenta("Functions:")}
|
|
37
|
+
|
|
38
|
+
${Object.entries(functions).map(([functionName, functionSettings]) => {
|
|
39
|
+
return `
|
|
40
|
+
${chalk.green(functionName)}${createSpacer(8, functionName)}${chalk.gray(functionSettings.description)}
|
|
41
|
+
|
|
42
|
+
${chalk.yellow("Usage:")}
|
|
43
|
+
|
|
44
|
+
joystick ${functionName} ${chalk.yellow(getArgsForFunction(functionSettings.args))}
|
|
45
|
+
|
|
46
|
+
${functionSettings.options && Object.keys(functionSettings.options).length > 0 ? `
|
|
47
|
+
${chalk.yellow("Options:")}
|
|
48
|
+
${buildOptionsForFunction(functionSettings.options)}
|
|
49
|
+
` : ""}
|
|
50
|
+
`;
|
|
51
|
+
}).join("")}
|
|
52
|
+
`);
|
|
53
|
+
};
|
|
54
|
+
export {
|
|
55
|
+
help_default as default
|
|
56
|
+
};
|
|
File without changes
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import fs from "fs";
|
|
2
|
+
import CLILog from "./CLILog.js";
|
|
3
|
+
import isValidJSONString from "./isValidJSONString.js";
|
|
4
|
+
var loadSettings_default = async (env = null) => {
|
|
5
|
+
const environment = env;
|
|
6
|
+
const settingsFilePath = `${process.cwd()}/settings.${environment}.json`;
|
|
7
|
+
const hasSettingsFile = fs.existsSync(settingsFilePath);
|
|
8
|
+
if (!hasSettingsFile) {
|
|
9
|
+
CLILog(`A settings file could not be found for this environment (${environment}). Create a settings.${environment}.json file at the root of your project and restart Joystick.`, {
|
|
10
|
+
level: "danger",
|
|
11
|
+
docs: "https://github.com/cheatcode/joystick#settings"
|
|
12
|
+
});
|
|
13
|
+
process.exit(0);
|
|
14
|
+
}
|
|
15
|
+
const rawSettingsFile = fs.readFileSync(settingsFilePath, "utf-8");
|
|
16
|
+
const isValidJSON = isValidJSONString(rawSettingsFile);
|
|
17
|
+
if (!isValidJSON) {
|
|
18
|
+
CLILog(`Failed to parse settings file. Double-check the syntax in your settings.${environment}.json file at the root of your project and restart Joystick.`, {
|
|
19
|
+
level: "danger",
|
|
20
|
+
docs: "https://github.com/cheatcode/joystick#settings",
|
|
21
|
+
tools: [
|
|
22
|
+
{ title: "JSON Linter", url: "https://jsonlint.com/" }
|
|
23
|
+
]
|
|
24
|
+
});
|
|
25
|
+
process.exit(0);
|
|
26
|
+
}
|
|
27
|
+
const settingsFile = isValidJSON ? rawSettingsFile : "{}";
|
|
28
|
+
process.env.JOYSTICK_SETTINGS = settingsFile;
|
|
29
|
+
return JSON.parse(settingsFile);
|
|
30
|
+
};
|
|
31
|
+
export {
|
|
32
|
+
loadSettings_default as default
|
|
33
|
+
};
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import chalk from "chalk";
|
|
2
|
+
import readline from "readline";
|
|
3
|
+
class Loader {
|
|
4
|
+
constructor(options = {}) {
|
|
5
|
+
this.message = options.defaultMessage;
|
|
6
|
+
this.frame = 0;
|
|
7
|
+
this.frames = [
|
|
8
|
+
chalk.yellowBright((options.padding || "") + ">>-----"),
|
|
9
|
+
chalk.yellowBright((options.padding || "") + "->>----"),
|
|
10
|
+
chalk.yellowBright((options.padding || "") + "-->>---"),
|
|
11
|
+
chalk.yellowBright((options.padding || "") + "--->>--"),
|
|
12
|
+
chalk.yellowBright((options.padding || "") + "---->>-"),
|
|
13
|
+
chalk.yellowBright((options.padding || "") + "----->>"),
|
|
14
|
+
chalk.yellowBright((options.padding || "") + "----<<-"),
|
|
15
|
+
chalk.yellowBright((options.padding || "") + "---<<--"),
|
|
16
|
+
chalk.yellowBright((options.padding || "") + "--<<---"),
|
|
17
|
+
chalk.yellowBright((options.padding || "") + "-<<----"),
|
|
18
|
+
chalk.yellowBright((options.padding || "") + "<<-----")
|
|
19
|
+
];
|
|
20
|
+
this.freezeFrames = {
|
|
21
|
+
stable: chalk.yellowBright((options.padding || "") + "--->---"),
|
|
22
|
+
error: chalk.redBright((options.padding || "") + "!!!")
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
getFrame() {
|
|
26
|
+
if (this.frame === this.frames.length - 1) {
|
|
27
|
+
this.frame = 0;
|
|
28
|
+
return this.frame;
|
|
29
|
+
}
|
|
30
|
+
this.frame += 1;
|
|
31
|
+
return this.frame;
|
|
32
|
+
}
|
|
33
|
+
start(message = "") {
|
|
34
|
+
if (message) {
|
|
35
|
+
this.message = message;
|
|
36
|
+
}
|
|
37
|
+
this.interval = setInterval(() => {
|
|
38
|
+
const frameToRender = this.getFrame();
|
|
39
|
+
readline.cursorTo(process.stdout, 0);
|
|
40
|
+
process.stdout.write(`${this.frames[frameToRender]} ${this.message}`);
|
|
41
|
+
}, 80);
|
|
42
|
+
}
|
|
43
|
+
stop() {
|
|
44
|
+
clearInterval(this.interval);
|
|
45
|
+
readline.cursorTo(process.stdout, 0);
|
|
46
|
+
readline.clearLine(process.stdout);
|
|
47
|
+
this.message = "";
|
|
48
|
+
this.interval = null;
|
|
49
|
+
}
|
|
50
|
+
text(message = "") {
|
|
51
|
+
readline.clearLine(process.stdout);
|
|
52
|
+
if (message) {
|
|
53
|
+
this.message = message;
|
|
54
|
+
}
|
|
55
|
+
if (!this.interval) {
|
|
56
|
+
this.start();
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
pause(message = "", frame = "stable") {
|
|
60
|
+
readline.clearLine(process.stdout);
|
|
61
|
+
if (message) {
|
|
62
|
+
this.message = message;
|
|
63
|
+
}
|
|
64
|
+
clearInterval(this.interval);
|
|
65
|
+
this.interval = null;
|
|
66
|
+
const freezeFrame = this.freezeFrames[frame];
|
|
67
|
+
readline.cursorTo(process.stdout, 0);
|
|
68
|
+
process.stdout.write(
|
|
69
|
+
`${freezeFrame ? `${freezeFrame} ` : ""}${this.message}`
|
|
70
|
+
);
|
|
71
|
+
}
|
|
72
|
+
stable(message = "") {
|
|
73
|
+
this.pause(message);
|
|
74
|
+
}
|
|
75
|
+
error(message = "") {
|
|
76
|
+
this.pause(message, "error");
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
var loader_default = Loader;
|
|
80
|
+
export {
|
|
81
|
+
loader_default as default
|
|
82
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
var masterIgnoreList_default = [
|
|
2
|
+
`.build`,
|
|
3
|
+
`.DS_Store`,
|
|
4
|
+
`.git`,
|
|
5
|
+
`.joystick/build`,
|
|
6
|
+
`.joystick/data`,
|
|
7
|
+
`.push`,
|
|
8
|
+
`node_modules`,
|
|
9
|
+
`storage`,
|
|
10
|
+
`settings.development.json`,
|
|
11
|
+
`settings.staging.json`,
|
|
12
|
+
`settings.production.json`
|
|
13
|
+
];
|
|
14
|
+
export {
|
|
15
|
+
masterIgnoreList_default as default
|
|
16
|
+
};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
const nodeEnvironment = process && process.NODE_ENV;
|
|
2
|
+
const isDevelopment = nodeEnvironment === "development";
|
|
3
|
+
const isProduction = nodeEnvironment === "production";
|
|
4
|
+
var nodeEnvironment_default = nodeEnvironment;
|
|
5
|
+
export {
|
|
6
|
+
nodeEnvironment_default as default,
|
|
7
|
+
isDevelopment,
|
|
8
|
+
isProduction
|
|
9
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
const isDevelopment = process.env.NODE_ENV && process.env.NODE_ENV === "development";
|
|
2
|
+
const isStaging = process.env.NODE_ENV && process.env.NODE_ENV === "staging";
|
|
3
|
+
const isProduction = process.env.NODE_ENV && process.env.NODE_ENV === "production";
|
|
4
|
+
export {
|
|
5
|
+
isDevelopment,
|
|
6
|
+
isProduction,
|
|
7
|
+
isStaging
|
|
8
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
var parseCookiesFromLogin_default = (response = {}) => {
|
|
2
|
+
const cookiesToSet = response?.headers.get("set-cookie");
|
|
3
|
+
const cookies = cookiesToSet.split(";").map((value) => value.split("=")).filter(([key, value]) => {
|
|
4
|
+
return (key === " HttpOnly, joystickLoginTokenExpiresAt" || key === " HttpOnly, joystickLoginToken") && !value.includes("null");
|
|
5
|
+
}).reduce((parsedCookies = {}, [key, value]) => {
|
|
6
|
+
if (key.trim() === "HttpOnly, joystickLoginToken") {
|
|
7
|
+
parsedCookies["joystickLoginToken"] = value;
|
|
8
|
+
}
|
|
9
|
+
if (key.trim() === "HttpOnly, joystickLoginTokenExpiresAt") {
|
|
10
|
+
parsedCookies["joystickLoginTokenExpiresAt"] = value;
|
|
11
|
+
}
|
|
12
|
+
return parsedCookies;
|
|
13
|
+
}, {});
|
|
14
|
+
return cookies;
|
|
15
|
+
};
|
|
16
|
+
export {
|
|
17
|
+
parseCookiesFromLogin_default as default
|
|
18
|
+
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import fs from "fs";
|
|
2
|
+
import { join } from "path";
|
|
3
|
+
const readDirectorySync = (directory, allFiles = []) => {
|
|
4
|
+
const files = fs.readdirSync(directory).map((file) => join(directory, file));
|
|
5
|
+
allFiles.push(...files);
|
|
6
|
+
files.forEach((file) => {
|
|
7
|
+
fs.statSync(file).isDirectory() && readDirectorySync(file, allFiles);
|
|
8
|
+
});
|
|
9
|
+
return allFiles;
|
|
10
|
+
};
|
|
11
|
+
var readDirectorySync_default = readDirectorySync;
|
|
12
|
+
export {
|
|
13
|
+
readDirectorySync_default as default
|
|
14
|
+
};
|