@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.
Files changed (231) hide show
  1. package/.build/getFilesToBuild.js +38 -0
  2. package/.build/index.js +69 -0
  3. package/HMRNOTES.txt +23 -0
  4. package/README.md +7 -0
  5. package/_package.json +55 -0
  6. package/canary.js +12 -0
  7. package/dist/cli.js +69 -0
  8. package/dist/functions/build/getTarIgnoreList.js +25 -0
  9. package/dist/functions/build/index.js +54 -0
  10. package/dist/functions/create/buildPackageJSON.js +20 -0
  11. package/dist/functions/create/index.js +193 -0
  12. package/dist/functions/create/templates/api/index.js +4 -0
  13. package/dist/functions/create/templates/i18n/en-US.js +4 -0
  14. package/dist/functions/create/templates/index.client.js +7 -0
  15. package/dist/functions/create/templates/index.css +20 -0
  16. package/dist/functions/create/templates/index.html +23 -0
  17. package/dist/functions/create/templates/index.server.js +21 -0
  18. package/dist/functions/create/templates/public/apple-touch-icon-152x152.png +0 -0
  19. package/dist/functions/create/templates/public/favicon.ico +0 -0
  20. package/dist/functions/create/templates/public/manifest.json +25 -0
  21. package/dist/functions/create/templates/public/service-worker.js +32 -0
  22. package/dist/functions/create/templates/public/splash-screen-1024x1024.png +0 -0
  23. package/dist/functions/create/templates/settings.development.json +27 -0
  24. package/dist/functions/create/templates/ui/components/button/index.js +50 -0
  25. package/dist/functions/create/templates/ui/layouts/app/index.js +13 -0
  26. package/dist/functions/create/templates/ui/pages/error/index.js +31 -0
  27. package/dist/functions/create/templates/ui/pages/index/index.js +94 -0
  28. package/dist/functions/index.js +243 -0
  29. package/dist/functions/logout/index.js +20 -0
  30. package/dist/functions/push/checkIfProvisionAvailable.js +19 -0
  31. package/dist/functions/push/deploy/index.js +173 -0
  32. package/dist/functions/push/deploy/initial.js +100 -0
  33. package/dist/functions/push/deploy/version.js +100 -0
  34. package/dist/functions/push/domains.js +23 -0
  35. package/dist/functions/push/getAvailableCDN.js +23 -0
  36. package/dist/functions/push/getDeployment.js +41 -0
  37. package/dist/functions/push/getDeploymentSummary.js +38 -0
  38. package/dist/functions/push/getInstanceSizeRegions.js +37 -0
  39. package/dist/functions/push/getInstanceSizesForRegion.js +34 -0
  40. package/dist/functions/push/getProviderInstanceSizes.js +34 -0
  41. package/dist/functions/push/getProviderRegions.js +36 -0
  42. package/dist/functions/push/getProvidersWithConnectionStatus.js +20 -0
  43. package/dist/functions/push/getSessionToken.js +23 -0
  44. package/dist/functions/push/getUserFromSessionToken.js +37 -0
  45. package/dist/functions/push/index.js +210 -0
  46. package/dist/functions/push/loginToCheatCode.js +33 -0
  47. package/dist/functions/push/pingProvisionAPI.js +31 -0
  48. package/dist/functions/push/prompts.js +332 -0
  49. package/dist/functions/push/providerMap.js +11 -0
  50. package/dist/functions/push/providers.js +9 -0
  51. package/dist/functions/reset/index.js +0 -0
  52. package/dist/functions/reset/reset.js +127 -0
  53. package/dist/functions/start/bootstrapLayoutComponent.js +54 -0
  54. package/dist/functions/start/bootstrapPageComponent.js +51 -0
  55. package/dist/functions/start/buildFile.js +85 -0
  56. package/dist/functions/start/buildFiles.js +76 -0
  57. package/dist/functions/start/buildPlugins.js +183 -0
  58. package/dist/functions/start/checkIfPortAvailable.js +18 -0
  59. package/dist/functions/start/cleanup/index.js +18 -0
  60. package/dist/functions/start/databases/mongodb/availableQueryParameters.js +42 -0
  61. package/dist/functions/start/databases/mongodb/buildConnectionString.js +22 -0
  62. package/dist/functions/start/databases/mongodb/buildQueryParameters.js +14 -0
  63. package/dist/functions/start/databases/mongodb/checkConnection.js +38 -0
  64. package/dist/functions/start/databases/mongodb/connect.js +25 -0
  65. package/dist/functions/start/databases/mongodb/index.js +93 -0
  66. package/dist/functions/start/databases/postgresql/checkConnection.js +41 -0
  67. package/dist/functions/start/databases/postgresql/connect.js +27 -0
  68. package/dist/functions/start/databases/postgresql/index.js +106 -0
  69. package/dist/functions/start/databases/redis.js +0 -0
  70. package/dist/functions/start/databases/startProvider.js +16 -0
  71. package/dist/functions/start/fileDependencyMapper.js +22 -0
  72. package/dist/functions/start/filesToCopy.js +18 -0
  73. package/dist/functions/start/generateId.js +74 -0
  74. package/dist/functions/start/getCodependenciesForFile.js +64 -0
  75. package/dist/functions/start/getFilesToBuild.js +39 -0
  76. package/dist/functions/start/getProcessIdFromPort.js +60 -0
  77. package/dist/functions/start/hmrServer.js +66 -0
  78. package/dist/functions/start/index.js +535 -0
  79. package/dist/functions/start/isWindows.js +5 -0
  80. package/dist/functions/start/minifyFile.js +12 -0
  81. package/dist/functions/start/onWarn.js +63 -0
  82. package/dist/functions/start/readFileDependencyMap.js +16 -0
  83. package/dist/functions/start/removeDeletedDependenciesFromMap.js +18 -0
  84. package/dist/functions/start/setComponentId.js +46 -0
  85. package/dist/functions/start/updateFileMap.js +67 -0
  86. package/dist/functions/update/index.js +21 -0
  87. package/dist/functions/use/index.js +61 -0
  88. package/dist/index.js +8 -0
  89. package/dist/lib/CLILog.js +49 -0
  90. package/dist/lib/buildResolvePlugin.js +21 -0
  91. package/dist/lib/checkIfValidJSON.js +11 -0
  92. package/dist/lib/colorLog.js +7 -0
  93. package/dist/lib/getArgs.js +14 -0
  94. package/dist/lib/getCodeFrame.js +10 -0
  95. package/dist/lib/getOptions.js +15 -0
  96. package/dist/lib/getPlatformSafePath.js +7 -0
  97. package/dist/lib/getProvider.js +8 -0
  98. package/dist/lib/help.js +56 -0
  99. package/dist/lib/isObject.js +6 -0
  100. package/dist/lib/isValidJSONString.js +11 -0
  101. package/dist/lib/isWindows.js +5 -0
  102. package/dist/lib/killProcesses.js +0 -0
  103. package/dist/lib/loadSettings.js +33 -0
  104. package/dist/lib/loader.js +82 -0
  105. package/dist/lib/masterIgnoreList.js +16 -0
  106. package/dist/lib/nodeEnvironment.js +9 -0
  107. package/dist/lib/nodeEnvironments.js +8 -0
  108. package/dist/lib/parseCookiesFromLogin.js +18 -0
  109. package/dist/lib/rainbowRoad.js +7 -0
  110. package/dist/lib/readDirectorySync.js +14 -0
  111. package/dist/lib/regexes.js +12 -0
  112. package/dist/lib/replaceBackslashesWithForwardSlashes.js +8 -0
  113. package/dist/lib/replaceFileProtocol.js +8 -0
  114. package/dist/lib/serializeQueryParameters.js +8 -0
  115. package/dist/lib/settings.js +4 -0
  116. package/dist/lib/validateDatabasesFromSettings.js +34 -0
  117. package/dist/lib/wait.js +8 -0
  118. package/package.json +54 -0
  119. package/release.js +40 -0
  120. package/src/cli.js +88 -0
  121. package/src/functions/build/getTarIgnoreList.js +30 -0
  122. package/src/functions/build/index.js +63 -0
  123. package/src/functions/create/buildPackageJSON.js +18 -0
  124. package/src/functions/create/index.js +209 -0
  125. package/src/functions/create/templates/api/index.js +4 -0
  126. package/src/functions/create/templates/i18n/en-US.js +4 -0
  127. package/src/functions/create/templates/index.client.js +7 -0
  128. package/src/functions/create/templates/index.css +20 -0
  129. package/src/functions/create/templates/index.html +23 -0
  130. package/src/functions/create/templates/index.server.js +21 -0
  131. package/src/functions/create/templates/public/apple-touch-icon-152x152.png +0 -0
  132. package/src/functions/create/templates/public/favicon.ico +0 -0
  133. package/src/functions/create/templates/public/manifest.json +25 -0
  134. package/src/functions/create/templates/public/service-worker.js +32 -0
  135. package/src/functions/create/templates/public/splash-screen-1024x1024.png +0 -0
  136. package/src/functions/create/templates/settings.development.json +27 -0
  137. package/src/functions/create/templates/ui/components/button/index.js +50 -0
  138. package/src/functions/create/templates/ui/layouts/app/index.js +13 -0
  139. package/src/functions/create/templates/ui/pages/error/index.js +31 -0
  140. package/src/functions/create/templates/ui/pages/index/index.js +94 -0
  141. package/src/functions/index.js +243 -0
  142. package/src/functions/logout/index.js +20 -0
  143. package/src/functions/push/checkIfProvisionAvailable.js +20 -0
  144. package/src/functions/push/deploy/index.js +199 -0
  145. package/src/functions/push/deploy/initial.js +108 -0
  146. package/src/functions/push/deploy/version.js +108 -0
  147. package/src/functions/push/domains.js +23 -0
  148. package/src/functions/push/getAvailableCDN.js +27 -0
  149. package/src/functions/push/getDeployment.js +43 -0
  150. package/src/functions/push/getDeploymentSummary.js +39 -0
  151. package/src/functions/push/getInstanceSizeRegions.js +40 -0
  152. package/src/functions/push/getInstanceSizesForRegion.js +35 -0
  153. package/src/functions/push/getProviderInstanceSizes.js +35 -0
  154. package/src/functions/push/getProviderRegions.js +39 -0
  155. package/src/functions/push/getProvidersWithConnectionStatus.js +25 -0
  156. package/src/functions/push/getSessionToken.js +26 -0
  157. package/src/functions/push/getUserFromSessionToken.js +39 -0
  158. package/src/functions/push/index.js +245 -0
  159. package/src/functions/push/loginToCheatCode.js +34 -0
  160. package/src/functions/push/pingProvisionAPI.js +33 -0
  161. package/src/functions/push/prompts.js +276 -0
  162. package/src/functions/push/providerMap.js +8 -0
  163. package/src/functions/push/providers.js +6 -0
  164. package/src/functions/reset/index.js +0 -0
  165. package/src/functions/reset/reset.js +163 -0
  166. package/src/functions/start/bootstrapLayoutComponent.js +57 -0
  167. package/src/functions/start/bootstrapPageComponent.js +54 -0
  168. package/src/functions/start/buildFile.js +97 -0
  169. package/src/functions/start/buildFiles.js +101 -0
  170. package/src/functions/start/buildPlugins.js +215 -0
  171. package/src/functions/start/checkIfPortAvailable.js +21 -0
  172. package/src/functions/start/cleanup/index.js +23 -0
  173. package/src/functions/start/databases/mongodb/availableQueryParameters.js +39 -0
  174. package/src/functions/start/databases/mongodb/buildConnectionString.js +28 -0
  175. package/src/functions/start/databases/mongodb/buildQueryParameters.js +15 -0
  176. package/src/functions/start/databases/mongodb/checkConnection.js +40 -0
  177. package/src/functions/start/databases/mongodb/connect.js +25 -0
  178. package/src/functions/start/databases/mongodb/index.js +108 -0
  179. package/src/functions/start/databases/postgresql/checkConnection.js +43 -0
  180. package/src/functions/start/databases/postgresql/connect.js +27 -0
  181. package/src/functions/start/databases/postgresql/index.js +127 -0
  182. package/src/functions/start/databases/redis.js +0 -0
  183. package/src/functions/start/databases/startProvider.js +15 -0
  184. package/src/functions/start/fileDependencyMapper.js +24 -0
  185. package/src/functions/start/filesToCopy.js +15 -0
  186. package/src/functions/start/generateId.js +73 -0
  187. package/src/functions/start/getCodependenciesForFile.js +84 -0
  188. package/src/functions/start/getFilesToBuild.js +49 -0
  189. package/src/functions/start/getProcessIdFromPort.js +92 -0
  190. package/src/functions/start/hmrServer.js +78 -0
  191. package/src/functions/start/index.js +688 -0
  192. package/src/functions/start/isWindows.js +3 -0
  193. package/src/functions/start/minifyFile.js +10 -0
  194. package/src/functions/start/onWarn.js +68 -0
  195. package/src/functions/start/readFileDependencyMap.js +19 -0
  196. package/src/functions/start/removeDeletedDependenciesFromMap.js +19 -0
  197. package/src/functions/start/setComponentId.js +58 -0
  198. package/src/functions/start/updateFileMap.js +100 -0
  199. package/src/functions/update/index.js +20 -0
  200. package/src/functions/use/index.js +62 -0
  201. package/src/index.js +13 -0
  202. package/src/lib/CLILog.js +40 -0
  203. package/src/lib/buildResolvePlugin.js +32 -0
  204. package/src/lib/checkIfValidJSON.js +8 -0
  205. package/src/lib/colorLog.js +5 -0
  206. package/src/lib/getArgs.js +14 -0
  207. package/src/lib/getCodeFrame.js +8 -0
  208. package/src/lib/getOptions.js +12 -0
  209. package/src/lib/getPlatformSafePath.js +6 -0
  210. package/src/lib/getProvider.js +5 -0
  211. package/src/lib/help.js +56 -0
  212. package/src/lib/isObject.js +3 -0
  213. package/src/lib/isValidJSONString.js +8 -0
  214. package/src/lib/isWindows.js +3 -0
  215. package/src/lib/killProcesses.js +5 -0
  216. package/src/lib/loadSettings.js +40 -0
  217. package/src/lib/loader.js +94 -0
  218. package/src/lib/masterIgnoreList.js +13 -0
  219. package/src/lib/nodeEnvironment.js +6 -0
  220. package/src/lib/nodeEnvironments.js +8 -0
  221. package/src/lib/parseCookiesFromLogin.js +21 -0
  222. package/src/lib/rainbowRoad.js +5 -0
  223. package/src/lib/readDirectorySync.js +13 -0
  224. package/src/lib/regexes.js +5 -0
  225. package/src/lib/replaceBackslashesWithForwardSlashes.js +8 -0
  226. package/src/lib/replaceFileProtocol.js +8 -0
  227. package/src/lib/serializeQueryParameters.js +5 -0
  228. package/src/lib/settings.js +1 -0
  229. package/src/lib/validateDatabasesFromSettings.js +37 -0
  230. package/src/lib/wait.js +5 -0
  231. 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,11 @@
1
+ var checkIfValidJSON_default = (text = "") => {
2
+ try {
3
+ const json = JSON.parse(text);
4
+ return json;
5
+ } catch (exception) {
6
+ return {};
7
+ }
8
+ };
9
+ export {
10
+ checkIfValidJSON_default as default
11
+ };
@@ -0,0 +1,7 @@
1
+ import chalk from "chalk";
2
+ var colorLog_default = (message = "", color = "blueBright") => {
3
+ return console.log(chalk[color](message));
4
+ };
5
+ export {
6
+ colorLog_default as default
7
+ };
@@ -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
+ };
@@ -0,0 +1,7 @@
1
+ import isWindows from "./isWindows.js";
2
+ var getPlatformSafePath_default = (path = "") => {
3
+ return isWindows ? path.replace("/", "\\") : path;
4
+ };
5
+ export {
6
+ getPlatformSafePath_default as default
7
+ };
@@ -0,0 +1,8 @@
1
+ var getProvider_default = (providers = [], provider = "") => {
2
+ return providers.find((providerOption) => {
3
+ return providerOption?.value === provider;
4
+ });
5
+ };
6
+ export {
7
+ getProvider_default as default
8
+ };
@@ -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
+ };
@@ -0,0 +1,6 @@
1
+ var isObject_default = (value) => {
2
+ return !!(value && typeof value === "object" && !Array.isArray(value));
3
+ };
4
+ export {
5
+ isObject_default as default
6
+ };
@@ -0,0 +1,11 @@
1
+ var isValidJSONString_default = (JSONString = "") => {
2
+ try {
3
+ const json = JSON.parse(JSONString);
4
+ return json;
5
+ } catch (error) {
6
+ return false;
7
+ }
8
+ };
9
+ export {
10
+ isValidJSONString_default as default
11
+ };
@@ -0,0 +1,5 @@
1
+ import os from "os";
2
+ var isWindows_default = os.platform() === "win32";
3
+ export {
4
+ isWindows_default as default
5
+ };
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,7 @@
1
+ import chalk from "chalk";
2
+ var rainbowRoad_default = () => {
3
+ return `${chalk.red("=")}${chalk.green("=")}${chalk.blue("=")}${chalk.red("=")}${chalk.green("=")}${chalk.blue("=")}`;
4
+ };
5
+ export {
6
+ rainbowRoad_default as default
7
+ };
@@ -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
+ };