create-steedos-app 2.5.18 → 2.5.19-beta.2

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 (34) hide show
  1. package/dist/create-app.js +185 -0
  2. package/dist/create-app.js.map +1 -0
  3. package/dist/helpers/examples.d.ts +1 -0
  4. package/dist/helpers/examples.js +63 -0
  5. package/dist/helpers/examples.js.map +1 -0
  6. package/dist/helpers/get-pkg-manager.js +30 -0
  7. package/dist/helpers/get-pkg-manager.js.map +1 -0
  8. package/dist/helpers/git.js +53 -0
  9. package/dist/helpers/git.js.map +1 -0
  10. package/dist/helpers/install.js +66 -0
  11. package/dist/helpers/install.js.map +1 -0
  12. package/dist/helpers/is-folder-empty.js +60 -0
  13. package/dist/helpers/is-folder-empty.js.map +1 -0
  14. package/dist/helpers/is-online.js +43 -0
  15. package/dist/helpers/is-online.js.map +1 -0
  16. package/dist/helpers/is-writeable.js +18 -0
  17. package/dist/helpers/is-writeable.js.map +1 -0
  18. package/dist/helpers/make-dir.js +12 -0
  19. package/dist/helpers/make-dir.js.map +1 -0
  20. package/dist/helpers/validate-pkg.js +22 -0
  21. package/dist/helpers/validate-pkg.js.map +1 -0
  22. package/dist/index.d.ts +1 -0
  23. package/dist/index.js +162 -384
  24. package/dist/index.js.map +1 -0
  25. package/package.json +7 -7
  26. package/dist/default/README-template.md +0 -87
  27. package/dist/default/moleculer.config.js +0 -18
  28. package/dist/default/package.json +0 -18
  29. package/dist/default/steedos-packages/example-service/package.json +0 -8
  30. package/dist/default/steedos-packages/example-service/package.service.js +0 -86
  31. package/dist/default/steedos-platform/docker-compose.yml +0 -49
  32. package/dist/default/steedos-platform/package.json +0 -13
  33. package/dist/default/steedos-platform/steedos.config.js +0 -22
  34. package/templates/default/README-template.md +0 -87
@@ -0,0 +1,185 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.createApp = exports.DownloadError = void 0;
7
+ const async_retry_1 = __importDefault(require("async-retry"));
8
+ const chalk_1 = __importDefault(require("chalk"));
9
+ const cpy_1 = __importDefault(require("cpy"));
10
+ const fs_1 = __importDefault(require("fs"));
11
+ const os_1 = __importDefault(require("os"));
12
+ const path_1 = __importDefault(require("path"));
13
+ const examples_1 = require("./helpers/examples");
14
+ const make_dir_1 = require("./helpers/make-dir");
15
+ const git_1 = require("./helpers/git");
16
+ const install_1 = require("./helpers/install");
17
+ const is_folder_empty_1 = require("./helpers/is-folder-empty");
18
+ const is_online_1 = require("./helpers/is-online");
19
+ const is_writeable_1 = require("./helpers/is-writeable");
20
+ class DownloadError extends Error {
21
+ }
22
+ exports.DownloadError = DownloadError;
23
+ async function createApp({ appPath, packageManager, example, examplePath, typescript, }) {
24
+ let repoInfo;
25
+ const template = 'default';
26
+ if (example) {
27
+ let repoUrl;
28
+ try {
29
+ repoUrl = new URL(example);
30
+ }
31
+ catch (error) {
32
+ if (error.code !== 'ERR_INVALID_URL') {
33
+ console.error(error);
34
+ process.exit(1);
35
+ }
36
+ }
37
+ if (repoUrl) {
38
+ if (repoUrl.origin !== 'https://github.com') {
39
+ console.error(`Invalid URL: ${chalk_1.default.red(`"${example}"`)}. Only GitHub repositories are supported. Please use a GitHub URL and try again.`);
40
+ process.exit(1);
41
+ }
42
+ repoInfo = await (0, examples_1.getRepoInfo)(repoUrl, examplePath);
43
+ if (!repoInfo) {
44
+ console.error(`Found invalid GitHub URL: ${chalk_1.default.red(`"${example}"`)}. Please fix the URL and try again.`);
45
+ process.exit(1);
46
+ }
47
+ const found = await (0, examples_1.hasRepo)(repoInfo);
48
+ if (!found) {
49
+ console.error(`Could not locate the repository for ${chalk_1.default.red(`"${example}"`)}. Please check that the repository exists and try again.`);
50
+ process.exit(1);
51
+ }
52
+ }
53
+ else if (example !== '__internal-testing-retry') {
54
+ const found = await (0, examples_1.existsInRepo)(example);
55
+ if (!found) {
56
+ console.error(`Could not locate an example named ${chalk_1.default.red(`"${example}"`)}. It could be due to the following:\n`, `1. Your spelling of example ${chalk_1.default.red(`"${example}"`)} might be incorrect.\n`, `2. You might not be connected to the internet or you are behind a proxy.`);
57
+ process.exit(1);
58
+ }
59
+ }
60
+ }
61
+ const root = path_1.default.resolve(appPath);
62
+ if (!(await (0, is_writeable_1.isWriteable)(path_1.default.dirname(root)))) {
63
+ console.error('The application path is not writable, please check folder permissions and try again.');
64
+ console.error('It is likely you do not have write permissions for this folder.');
65
+ process.exit(1);
66
+ }
67
+ const appName = path_1.default.basename(root);
68
+ await (0, make_dir_1.makeDir)(root);
69
+ if (!(0, is_folder_empty_1.isFolderEmpty)(root, appName)) {
70
+ process.exit(1);
71
+ }
72
+ const useYarn = packageManager === 'yarn';
73
+ const isOnline = !useYarn || (await (0, is_online_1.getOnline)());
74
+ const originalDirectory = process.cwd();
75
+ console.log(`Creating a new steedos app in ${chalk_1.default.green(root)}.`);
76
+ console.log();
77
+ process.chdir(root);
78
+ const packageJsonPath = path_1.default.join(root, 'package.json');
79
+ let hasPackageJson = false;
80
+ if (example) {
81
+ try {
82
+ if (repoInfo) {
83
+ const repoInfo2 = repoInfo;
84
+ console.log(`Downloading files from repo ${chalk_1.default.cyan(example)}. This might take a moment.`);
85
+ console.log();
86
+ await (0, async_retry_1.default)(() => (0, examples_1.downloadAndExtractRepo)(root, repoInfo2), {
87
+ retries: 3,
88
+ });
89
+ }
90
+ else {
91
+ console.log(`Downloading files for example ${chalk_1.default.cyan(example)}. This might take a moment.`);
92
+ console.log();
93
+ await (0, async_retry_1.default)(() => (0, examples_1.downloadAndExtractExample)(root, example), {
94
+ retries: 3,
95
+ });
96
+ }
97
+ }
98
+ catch (reason) {
99
+ function isErrorLike(err) {
100
+ return (typeof err === 'object' &&
101
+ err !== null &&
102
+ typeof err.message === 'string');
103
+ }
104
+ throw new DownloadError(isErrorLike(reason) ? reason.message : reason + '');
105
+ }
106
+ const ignorePath = path_1.default.join(root, '.gitignore');
107
+ if (!fs_1.default.existsSync(ignorePath)) {
108
+ fs_1.default.copyFileSync(path_1.default.join(__dirname, '..', 'templates', template, 'gitignore'), ignorePath);
109
+ }
110
+ const tsconfigPath = path_1.default.join(root, 'tsconfig.json');
111
+ if (fs_1.default.existsSync(tsconfigPath)) {
112
+ fs_1.default.copyFileSync(path_1.default.join(__dirname, '..', 'templates', 'typescript', 'next-env.d.ts'), path_1.default.join(root, 'next-env.d.ts'));
113
+ }
114
+ hasPackageJson = fs_1.default.existsSync(packageJsonPath);
115
+ if (hasPackageJson) {
116
+ console.log('Installing packages. This might take a couple of minutes.');
117
+ console.log();
118
+ await (0, install_1.install)(root, null, { packageManager, isOnline });
119
+ console.log();
120
+ }
121
+ }
122
+ else {
123
+ console.log(chalk_1.default.bold(`Using ${packageManager}.`));
124
+ const packageJson = {
125
+ name: appName,
126
+ version: '0.1.0',
127
+ private: true,
128
+ scripts: {
129
+ start: "moleculer-runner services/*/package.service.js --hot --repl",
130
+ repl: "moleculer-runner --repl",
131
+ }
132
+ };
133
+ fs_1.default.writeFileSync(path_1.default.join(root, 'package.json'), JSON.stringify(packageJson, null, 2) + os_1.default.EOL);
134
+ const installFlags = { packageManager, isOnline };
135
+ const dependencies = [
136
+ '@steedos/service-package-loader'
137
+ ];
138
+ const devDependencies = [
139
+ 'moleculer-repl'
140
+ ];
141
+ if (typescript) {
142
+ devDependencies.push('typescript');
143
+ }
144
+ if (dependencies.length) {
145
+ console.log();
146
+ console.log('Installing dependencies:');
147
+ for (const dependency of dependencies) {
148
+ console.log(`- ${chalk_1.default.cyan(dependency)}`);
149
+ }
150
+ console.log();
151
+ await (0, install_1.install)(root, dependencies, installFlags);
152
+ }
153
+ if (devDependencies.length) {
154
+ console.log();
155
+ console.log('Installing devDependencies:');
156
+ for (const devDependency of devDependencies) {
157
+ console.log(`- ${chalk_1.default.cyan(devDependency)}`);
158
+ }
159
+ console.log();
160
+ const devInstallFlags = Object.assign({ devDependencies: true }, installFlags);
161
+ await (0, install_1.install)(root, devDependencies, devInstallFlags);
162
+ }
163
+ console.log();
164
+ await (0, cpy_1.default)(['**'], root, {
165
+ dot: true,
166
+ parents: true,
167
+ cwd: path_1.default.join(__dirname, '..', 'templates', template),
168
+ });
169
+ }
170
+ if ((0, git_1.tryGitInit)(root)) {
171
+ console.log('Initialized a git repository.');
172
+ console.log();
173
+ }
174
+ let cdpath;
175
+ if (path_1.default.join(originalDirectory, appName) === appPath) {
176
+ cdpath = appName;
177
+ }
178
+ else {
179
+ cdpath = appPath;
180
+ }
181
+ console.log(`${chalk_1.default.green('Success!')} Created ${appName} at ${appPath}`);
182
+ console.log();
183
+ }
184
+ exports.createApp = createApp;
185
+ //# sourceMappingURL=create-app.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-app.js","sourceRoot":"","sources":["../src/create-app.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ /// <reference types="node" />
1
2
  export declare type RepoInfo = {
2
3
  username: string;
3
4
  name: string;
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.downloadAndExtractExample = exports.downloadAndExtractRepo = exports.existsInRepo = exports.hasRepo = exports.getRepoInfo = exports.isUrlOk = void 0;
7
+ const got_1 = __importDefault(require("got"));
8
+ const tar_1 = __importDefault(require("tar"));
9
+ const stream_1 = require("stream");
10
+ const util_1 = require("util");
11
+ const pipeline = (0, util_1.promisify)(stream_1.Stream.pipeline);
12
+ async function isUrlOk(url) {
13
+ const res = await got_1.default.head(url).catch((e) => e);
14
+ return res.statusCode === 200;
15
+ }
16
+ exports.isUrlOk = isUrlOk;
17
+ async function getRepoInfo(url, examplePath) {
18
+ const [, username, name, t, _branch, ...file] = url.pathname.split('/');
19
+ const filePath = examplePath ? examplePath.replace(/^\//, '') : file.join('/');
20
+ if (t === undefined) {
21
+ const infoResponse = await (0, got_1.default)(`https://api.github.com/repos/${username}/${name}`).catch((e) => e);
22
+ if (infoResponse.statusCode !== 200) {
23
+ return;
24
+ }
25
+ const info = JSON.parse(infoResponse.body);
26
+ return { username, name, branch: info['default_branch'], filePath };
27
+ }
28
+ const branch = examplePath
29
+ ? `${_branch}/${file.join('/')}`.replace(new RegExp(`/${filePath}|/$`), '')
30
+ : _branch;
31
+ if (username && name && branch && t === 'tree') {
32
+ return { username, name, branch, filePath };
33
+ }
34
+ }
35
+ exports.getRepoInfo = getRepoInfo;
36
+ function hasRepo({ username, name, branch, filePath, }) {
37
+ const contentsUrl = `https://api.github.com/repos/${username}/${name}/contents`;
38
+ const packagePath = `${filePath ? `/${filePath}` : ''}/package.json`;
39
+ return isUrlOk(contentsUrl + packagePath + `?ref=${branch}`);
40
+ }
41
+ exports.hasRepo = hasRepo;
42
+ function existsInRepo(nameOrUrl) {
43
+ try {
44
+ const url = new URL(nameOrUrl);
45
+ return isUrlOk(url.href);
46
+ }
47
+ catch (_a) {
48
+ return isUrlOk(`https://api.github.com/repos/steedos/steedos-examples/contents/${encodeURIComponent(nameOrUrl)}`);
49
+ }
50
+ }
51
+ exports.existsInRepo = existsInRepo;
52
+ function downloadAndExtractRepo(root, { username, name, branch, filePath }) {
53
+ return pipeline(got_1.default.stream(`https://codeload.github.com/${username}/${name}/tar.gz/${branch}`), tar_1.default.extract({ cwd: root, strip: filePath ? filePath.split('/').length + 1 : 1 }, [`${name}-${branch.replace(/\//g, '-')}${filePath ? `/${filePath}` : ''}`]));
54
+ }
55
+ exports.downloadAndExtractRepo = downloadAndExtractRepo;
56
+ function downloadAndExtractExample(root, name) {
57
+ if (name === '__internal-testing-retry') {
58
+ throw new Error('This is an internal example for testing the CLI.');
59
+ }
60
+ return pipeline(got_1.default.stream('https://codeload.github.com/steedos/steedos-examples/tar.gz/main'), tar_1.default.extract({ cwd: root, strip: 2 }, [`steedos-examples-main/${name}`]));
61
+ }
62
+ exports.downloadAndExtractExample = downloadAndExtractExample;
63
+ //# sourceMappingURL=examples.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"examples.js","sourceRoot":"","sources":["../../src/helpers/examples.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getPkgManager = void 0;
4
+ const child_process_1 = require("child_process");
5
+ function getPkgManager() {
6
+ try {
7
+ const userAgent = process.env.npm_config_user_agent;
8
+ if (userAgent) {
9
+ if (userAgent.startsWith('yarn')) {
10
+ return 'yarn';
11
+ }
12
+ else if (userAgent.startsWith('pnpm')) {
13
+ return 'pnpm';
14
+ }
15
+ }
16
+ try {
17
+ (0, child_process_1.execSync)('yarn --version', { stdio: 'ignore' });
18
+ return 'yarn';
19
+ }
20
+ catch (_a) {
21
+ (0, child_process_1.execSync)('pnpm --version', { stdio: 'ignore' });
22
+ return 'pnpm';
23
+ }
24
+ }
25
+ catch (_b) {
26
+ return 'npm';
27
+ }
28
+ }
29
+ exports.getPkgManager = getPkgManager;
30
+ //# sourceMappingURL=get-pkg-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-pkg-manager.js","sourceRoot":"","sources":["../../src/helpers/get-pkg-manager.ts"],"names":[],"mappings":";;;AAAA,iDAAwC;AAIxC,SAAgB,aAAa;IAC3B,IAAI;QACF,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAA;QACnD,IAAI,SAAS,EAAE;YACb,IAAI,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;gBAChC,OAAO,MAAM,CAAA;aACd;iBAAM,IAAI,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;gBACvC,OAAO,MAAM,CAAA;aACd;SACF;QACD,IAAI;YACF,IAAA,wBAAQ,EAAC,gBAAgB,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAA;YAC/C,OAAO,MAAM,CAAA;SACd;QAAC,WAAM;YACN,IAAA,wBAAQ,EAAC,gBAAgB,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAA;YAC/C,OAAO,MAAM,CAAA;SACd;KACF;IAAC,WAAM;QACN,OAAO,KAAK,CAAA;KACb;AACH,CAAC;AApBD,sCAoBC"}
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.tryGitInit = void 0;
7
+ const child_process_1 = require("child_process");
8
+ const path_1 = __importDefault(require("path"));
9
+ const rimraf_1 = __importDefault(require("rimraf"));
10
+ function isInGitRepository() {
11
+ try {
12
+ (0, child_process_1.execSync)('git rev-parse --is-inside-work-tree', { stdio: 'ignore' });
13
+ return true;
14
+ }
15
+ catch (_) { }
16
+ return false;
17
+ }
18
+ function isInMercurialRepository() {
19
+ try {
20
+ (0, child_process_1.execSync)('hg --cwd . root', { stdio: 'ignore' });
21
+ return true;
22
+ }
23
+ catch (_) { }
24
+ return false;
25
+ }
26
+ function tryGitInit(root) {
27
+ let didInit = false;
28
+ try {
29
+ (0, child_process_1.execSync)('git --version', { stdio: 'ignore' });
30
+ if (isInGitRepository() || isInMercurialRepository()) {
31
+ return false;
32
+ }
33
+ (0, child_process_1.execSync)('git init', { stdio: 'ignore' });
34
+ didInit = true;
35
+ (0, child_process_1.execSync)('git checkout -b main', { stdio: 'ignore' });
36
+ (0, child_process_1.execSync)('git add -A', { stdio: 'ignore' });
37
+ (0, child_process_1.execSync)('git commit -m "Initial commit from Create Next App"', {
38
+ stdio: 'ignore',
39
+ });
40
+ return true;
41
+ }
42
+ catch (e) {
43
+ if (didInit) {
44
+ try {
45
+ rimraf_1.default.sync(path_1.default.join(root, '.git'));
46
+ }
47
+ catch (_) { }
48
+ }
49
+ return false;
50
+ }
51
+ }
52
+ exports.tryGitInit = tryGitInit;
53
+ //# sourceMappingURL=git.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/helpers/git.ts"],"names":[],"mappings":";;;;;;AACA,iDAAwC;AACxC,gDAAuB;AACvB,oDAA2B;AAE3B,SAAS,iBAAiB;IACxB,IAAI;QACF,IAAA,wBAAQ,EAAC,qCAAqC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAA;QACpE,OAAO,IAAI,CAAA;KACZ;IAAC,OAAO,CAAC,EAAE,GAAE;IACd,OAAO,KAAK,CAAA;AACd,CAAC;AAED,SAAS,uBAAuB;IAC9B,IAAI;QACF,IAAA,wBAAQ,EAAC,iBAAiB,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAA;QAChD,OAAO,IAAI,CAAA;KACZ;IAAC,OAAO,CAAC,EAAE,GAAE;IACd,OAAO,KAAK,CAAA;AACd,CAAC;AAED,SAAgB,UAAU,CAAC,IAAY;IACrC,IAAI,OAAO,GAAG,KAAK,CAAA;IACnB,IAAI;QACF,IAAA,wBAAQ,EAAC,eAAe,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAA;QAC9C,IAAI,iBAAiB,EAAE,IAAI,uBAAuB,EAAE,EAAE;YACpD,OAAO,KAAK,CAAA;SACb;QAED,IAAA,wBAAQ,EAAC,UAAU,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAA;QACzC,OAAO,GAAG,IAAI,CAAA;QAEd,IAAA,wBAAQ,EAAC,sBAAsB,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAA;QAErD,IAAA,wBAAQ,EAAC,YAAY,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAA;QAC3C,IAAA,wBAAQ,EAAC,qDAAqD,EAAE;YAC9D,KAAK,EAAE,QAAQ;SAChB,CAAC,CAAA;QACF,OAAO,IAAI,CAAA;KACZ;IAAC,OAAO,CAAC,EAAE;QACV,IAAI,OAAO,EAAE;YACX,IAAI;gBACF,gBAAM,CAAC,IAAI,CAAC,cAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAA;aACrC;YAAC,OAAO,CAAC,EAAE,GAAE;SACf;QACD,OAAO,KAAK,CAAA;KACb;AACH,CAAC;AA1BD,gCA0BC"}
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.install = void 0;
7
+ const chalk_1 = __importDefault(require("chalk"));
8
+ const cross_spawn_1 = __importDefault(require("cross-spawn"));
9
+ function install(root, dependencies, { packageManager, isOnline, devDependencies }) {
10
+ const npmFlags = [];
11
+ const yarnFlags = [];
12
+ return new Promise((resolve, reject) => {
13
+ let args;
14
+ let command = packageManager;
15
+ const useYarn = packageManager === 'yarn';
16
+ if (dependencies && dependencies.length) {
17
+ if (useYarn) {
18
+ args = ['add', '--exact'];
19
+ if (!isOnline)
20
+ args.push('--offline');
21
+ args.push('--cwd', root);
22
+ if (devDependencies)
23
+ args.push('--dev');
24
+ args.push(...dependencies);
25
+ }
26
+ else {
27
+ args = ['install', '--save-exact'];
28
+ args.push(devDependencies ? '--save-dev' : '--save');
29
+ args.push(...dependencies);
30
+ }
31
+ }
32
+ else {
33
+ args = ['install'];
34
+ if (!isOnline) {
35
+ console.log(chalk_1.default.yellow('You appear to be offline.'));
36
+ if (useYarn) {
37
+ console.log(chalk_1.default.yellow('Falling back to the local Yarn cache.'));
38
+ console.log();
39
+ args.push('--offline');
40
+ }
41
+ else {
42
+ console.log();
43
+ }
44
+ }
45
+ }
46
+ if (useYarn) {
47
+ args.push(...yarnFlags);
48
+ }
49
+ else {
50
+ args.push(...npmFlags);
51
+ }
52
+ const child = (0, cross_spawn_1.default)(command, args, {
53
+ stdio: 'inherit',
54
+ env: Object.assign(Object.assign({}, process.env), { ADBLOCK: '1', DISABLE_OPENCOLLECTIVE: '1' }),
55
+ });
56
+ child.on('close', (code) => {
57
+ if (code !== 0) {
58
+ reject({ command: `${command} ${args.join(' ')}` });
59
+ return;
60
+ }
61
+ resolve();
62
+ });
63
+ });
64
+ }
65
+ exports.install = install;
66
+ //# sourceMappingURL=install.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/helpers/install.ts"],"names":[],"mappings":";;;;;;AACA,kDAAyB;AACzB,8DAA+B;AAuB/B,SAAgB,OAAO,CACrB,IAAY,EACZ,YAA6B,EAC7B,EAAE,cAAc,EAAE,QAAQ,EAAE,eAAe,EAAe;IAK1D,MAAM,QAAQ,GAAa,EAAE,CAAA;IAI7B,MAAM,SAAS,GAAa,EAAE,CAAA;IAI9B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,IAAI,IAAc,CAAA;QAClB,IAAI,OAAO,GAAG,cAAc,CAAA;QAC5B,MAAM,OAAO,GAAG,cAAc,KAAK,MAAM,CAAA;QAEzC,IAAI,YAAY,IAAI,YAAY,CAAC,MAAM,EAAE;YAIvC,IAAI,OAAO,EAAE;gBAIX,IAAI,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;gBACzB,IAAI,CAAC,QAAQ;oBAAE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;gBACrC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;gBACxB,IAAI,eAAe;oBAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;gBACvC,IAAI,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,CAAA;aAC3B;iBAAM;gBAIL,IAAI,GAAG,CAAC,SAAS,EAAE,cAAc,CAAC,CAAA;gBAClC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAA;gBACpD,IAAI,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,CAAA;aAC3B;SACF;aAAM;YAKL,IAAI,GAAG,CAAC,SAAS,CAAC,CAAA;YAClB,IAAI,CAAC,QAAQ,EAAE;gBACb,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,2BAA2B,CAAC,CAAC,CAAA;gBACtD,IAAI,OAAO,EAAE;oBACX,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,uCAAuC,CAAC,CAAC,CAAA;oBAClE,OAAO,CAAC,GAAG,EAAE,CAAA;oBACb,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;iBACvB;qBAAM;oBACL,OAAO,CAAC,GAAG,EAAE,CAAA;iBACd;aACF;SACF;QAID,IAAI,OAAO,EAAE;YACX,IAAI,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAA;SACxB;aAAM;YACL,IAAI,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAA;SACvB;QAID,MAAM,KAAK,GAAG,IAAA,qBAAK,EAAC,OAAO,EAAE,IAAI,EAAE;YACjC,KAAK,EAAE,SAAS;YAChB,GAAG,kCAAO,OAAO,CAAC,GAAG,KAAE,OAAO,EAAE,GAAG,EAAE,sBAAsB,EAAE,GAAG,GAAE;SACnE,CAAC,CAAA;QACF,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YACzB,IAAI,IAAI,KAAK,CAAC,EAAE;gBACd,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAA;gBACnD,OAAM;aACP;YACD,OAAO,EAAE,CAAA;QACX,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC;AAlFD,0BAkFC"}
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.isFolderEmpty = void 0;
7
+ const chalk_1 = __importDefault(require("chalk"));
8
+ const fs_1 = __importDefault(require("fs"));
9
+ const path_1 = __importDefault(require("path"));
10
+ function isFolderEmpty(root, name) {
11
+ const validFiles = [
12
+ '.DS_Store',
13
+ '.git',
14
+ '.gitattributes',
15
+ '.gitignore',
16
+ '.gitlab-ci.yml',
17
+ '.hg',
18
+ '.hgcheck',
19
+ '.hgignore',
20
+ '.idea',
21
+ '.npmignore',
22
+ '.travis.yml',
23
+ 'LICENSE',
24
+ 'Thumbs.db',
25
+ 'docs',
26
+ 'mkdocs.yml',
27
+ 'npm-debug.log',
28
+ 'yarn-debug.log',
29
+ 'yarn-error.log',
30
+ ];
31
+ const conflicts = fs_1.default
32
+ .readdirSync(root)
33
+ .filter((file) => !validFiles.includes(file))
34
+ .filter((file) => !/\.iml$/.test(file));
35
+ if (conflicts.length > 0) {
36
+ console.log(`The directory ${chalk_1.default.green(name)} contains files that could conflict:`);
37
+ console.log();
38
+ for (const file of conflicts) {
39
+ try {
40
+ const stats = fs_1.default.lstatSync(path_1.default.join(root, file));
41
+ if (stats.isDirectory()) {
42
+ console.log(` ${chalk_1.default.blue(file)}/`);
43
+ }
44
+ else {
45
+ console.log(` ${file}`);
46
+ }
47
+ }
48
+ catch (_a) {
49
+ console.log(` ${file}`);
50
+ }
51
+ }
52
+ console.log();
53
+ console.log('Either try using a new directory name, or remove the files listed above.');
54
+ console.log();
55
+ return false;
56
+ }
57
+ return true;
58
+ }
59
+ exports.isFolderEmpty = isFolderEmpty;
60
+ //# sourceMappingURL=is-folder-empty.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-folder-empty.js","sourceRoot":"","sources":["../../src/helpers/is-folder-empty.ts"],"names":[],"mappings":";;;;;;AACA,kDAAyB;AACzB,4CAAmB;AACnB,gDAAuB;AAEvB,SAAgB,aAAa,CAAC,IAAY,EAAE,IAAY;IACtD,MAAM,UAAU,GAAG;QACjB,WAAW;QACX,MAAM;QACN,gBAAgB;QAChB,YAAY;QACZ,gBAAgB;QAChB,KAAK;QACL,UAAU;QACV,WAAW;QACX,OAAO;QACP,YAAY;QACZ,aAAa;QACb,SAAS;QACT,WAAW;QACX,MAAM;QACN,YAAY;QACZ,eAAe;QACf,gBAAgB;QAChB,gBAAgB;KACjB,CAAA;IAED,MAAM,SAAS,GAAG,YAAE;SACjB,WAAW,CAAC,IAAI,CAAC;SACjB,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;SAE5C,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;IAEzC,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;QACxB,OAAO,CAAC,GAAG,CACT,iBAAiB,eAAK,CAAC,KAAK,CAAC,IAAI,CAAC,sCAAsC,CACzE,CAAA;QACD,OAAO,CAAC,GAAG,EAAE,CAAA;QACb,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE;YAC5B,IAAI;gBACF,MAAM,KAAK,GAAG,YAAE,CAAC,SAAS,CAAC,cAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA;gBACjD,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE;oBACvB,OAAO,CAAC,GAAG,CAAC,KAAK,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;iBACtC;qBAAM;oBACL,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAA;iBACzB;aACF;YAAC,WAAM;gBACN,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAA;aACzB;SACF;QACD,OAAO,CAAC,GAAG,EAAE,CAAA;QACb,OAAO,CAAC,GAAG,CACT,0EAA0E,CAC3E,CAAA;QACD,OAAO,CAAC,GAAG,EAAE,CAAA;QACb,OAAO,KAAK,CAAA;KACb;IAED,OAAO,IAAI,CAAA;AACb,CAAC;AAtDD,sCAsDC"}
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.getOnline = void 0;
7
+ const child_process_1 = require("child_process");
8
+ const dns_1 = __importDefault(require("dns"));
9
+ const url_1 = __importDefault(require("url"));
10
+ function getProxy() {
11
+ if (process.env.https_proxy) {
12
+ return process.env.https_proxy;
13
+ }
14
+ try {
15
+ const httpsProxy = (0, child_process_1.execSync)('npm config get https-proxy').toString().trim();
16
+ return httpsProxy !== 'null' ? httpsProxy : undefined;
17
+ }
18
+ catch (e) {
19
+ return;
20
+ }
21
+ }
22
+ function getOnline() {
23
+ return new Promise((resolve) => {
24
+ dns_1.default.lookup('registry.yarnpkg.com', (registryErr) => {
25
+ if (!registryErr) {
26
+ return resolve(true);
27
+ }
28
+ const proxy = getProxy();
29
+ if (!proxy) {
30
+ return resolve(false);
31
+ }
32
+ const { hostname } = url_1.default.parse(proxy);
33
+ if (!hostname) {
34
+ return resolve(false);
35
+ }
36
+ dns_1.default.lookup(hostname, (proxyErr) => {
37
+ resolve(proxyErr == null);
38
+ });
39
+ });
40
+ });
41
+ }
42
+ exports.getOnline = getOnline;
43
+ //# sourceMappingURL=is-online.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-online.js","sourceRoot":"","sources":["../../src/helpers/is-online.ts"],"names":[],"mappings":";;;;;;AAAA,iDAAwC;AACxC,8CAAqB;AACrB,8CAAqB;AAErB,SAAS,QAAQ;IACf,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE;QAC3B,OAAO,OAAO,CAAC,GAAG,CAAC,WAAW,CAAA;KAC/B;IAED,IAAI;QACF,MAAM,UAAU,GAAG,IAAA,wBAAQ,EAAC,4BAA4B,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAA;QAC3E,OAAO,UAAU,KAAK,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAA;KACtD;IAAC,OAAO,CAAC,EAAE;QACV,OAAM;KACP;AACH,CAAC;AAED,SAAgB,SAAS;IACvB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,aAAG,CAAC,MAAM,CAAC,sBAAsB,EAAE,CAAC,WAAW,EAAE,EAAE;YACjD,IAAI,CAAC,WAAW,EAAE;gBAChB,OAAO,OAAO,CAAC,IAAI,CAAC,CAAA;aACrB;YAED,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAA;YACxB,IAAI,CAAC,KAAK,EAAE;gBACV,OAAO,OAAO,CAAC,KAAK,CAAC,CAAA;aACtB;YAED,MAAM,EAAE,QAAQ,EAAE,GAAG,aAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;YACrC,IAAI,CAAC,QAAQ,EAAE;gBACb,OAAO,OAAO,CAAC,KAAK,CAAC,CAAA;aACtB;YAED,aAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,EAAE;gBAChC,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAA;YAC3B,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC;AAtBD,8BAsBC"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.isWriteable = void 0;
7
+ const fs_1 = __importDefault(require("fs"));
8
+ async function isWriteable(directory) {
9
+ try {
10
+ await fs_1.default.promises.access(directory, (fs_1.default.constants).W_OK);
11
+ return true;
12
+ }
13
+ catch (err) {
14
+ return false;
15
+ }
16
+ }
17
+ exports.isWriteable = isWriteable;
18
+ //# sourceMappingURL=is-writeable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-writeable.js","sourceRoot":"","sources":["../../src/helpers/is-writeable.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAmB;AAEZ,KAAK,UAAU,WAAW,CAAC,SAAiB;IACjD,IAAI;QACF,MAAM,YAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,YAAE,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAA;QACxD,OAAO,IAAI,CAAA;KACZ;IAAC,OAAO,GAAG,EAAE;QACZ,OAAO,KAAK,CAAA;KACb;AACH,CAAC;AAPD,kCAOC"}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.makeDir = void 0;
7
+ const fs_1 = __importDefault(require("fs"));
8
+ function makeDir(root, options = { recursive: true }) {
9
+ return fs_1.default.promises.mkdir(root, options);
10
+ }
11
+ exports.makeDir = makeDir;
12
+ //# sourceMappingURL=make-dir.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"make-dir.js","sourceRoot":"","sources":["../../src/helpers/make-dir.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAmB;AAEnB,SAAgB,OAAO,CACrB,IAAY,EACZ,OAAO,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE;IAE7B,OAAO,YAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;AACzC,CAAC;AALD,0BAKC"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.validateNpmName = void 0;
7
+ const validate_npm_package_name_1 = __importDefault(require("validate-npm-package-name"));
8
+ function validateNpmName(name) {
9
+ const nameValidation = (0, validate_npm_package_name_1.default)(name);
10
+ if (nameValidation.validForNewPackages) {
11
+ return { valid: true };
12
+ }
13
+ return {
14
+ valid: false,
15
+ problems: [
16
+ ...(nameValidation.errors || []),
17
+ ...(nameValidation.warnings || []),
18
+ ],
19
+ };
20
+ }
21
+ exports.validateNpmName = validateNpmName;
22
+ //# sourceMappingURL=validate-pkg.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate-pkg.js","sourceRoot":"","sources":["../../src/helpers/validate-pkg.ts"],"names":[],"mappings":";;;;;;AACA,0FAA2D;AAE3D,SAAgB,eAAe,CAAC,IAAY;IAI1C,MAAM,cAAc,GAAG,IAAA,mCAAmB,EAAC,IAAI,CAAC,CAAA;IAChD,IAAI,cAAc,CAAC,mBAAmB,EAAE;QACtC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAA;KACvB;IAED,OAAO;QACL,KAAK,EAAE,KAAK;QACZ,QAAQ,EAAE;YACR,GAAG,CAAC,cAAc,CAAC,MAAM,IAAI,EAAE,CAAC;YAChC,GAAG,CAAC,cAAc,CAAC,QAAQ,IAAI,EAAE,CAAC;SACnC;KACF,CAAA;AACH,CAAC;AAhBD,0CAgBC"}
package/dist/index.d.ts CHANGED
@@ -1 +1,2 @@
1
+ #!/usr/bin/env node
1
2
  export {};