create-checkly 0.0.4 → 4.0.10
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/dist/actions/creates.d.ts +2 -1
- package/dist/actions/creates.js +13 -16
- package/dist/actions/creates.js.map +1 -1
- package/dist/actions/dependencies.d.ts +2 -2
- package/dist/actions/dependencies.js +6 -10
- package/dist/actions/dependencies.js.map +1 -1
- package/dist/actions/git.d.ts +1 -0
- package/dist/actions/git.js +19 -0
- package/dist/actions/git.js.map +1 -0
- package/dist/actions/template.js +1 -0
- package/dist/actions/template.js.map +1 -1
- package/dist/commands/bootstrap.d.ts +4 -0
- package/dist/commands/bootstrap.js +21 -101
- package/dist/commands/bootstrap.js.map +1 -1
- package/dist/utils/directory.d.ts +13 -2
- package/dist/utils/directory.js +48 -6
- package/dist/utils/directory.js.map +1 -1
- package/dist/utils/installation.d.ts +16 -0
- package/dist/utils/installation.js +60 -0
- package/dist/utils/installation.js.map +1 -0
- package/dist/utils/messages.d.ts +0 -1
- package/dist/utils/messages.js +1 -6
- package/dist/utils/messages.js.map +1 -1
- package/dist/utils/prompts.d.ts +21 -0
- package/dist/utils/prompts.js +73 -0
- package/dist/utils/prompts.js.map +1 -0
- package/index.mjs +5 -5
- package/package.json +9 -39
- package/dist/utils/package.d.ts +0 -8
- package/dist/utils/package.js +0 -9
- package/dist/utils/package.js.map +0 -1
package/dist/actions/creates.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import * as fs from 'fs';
|
|
2
|
-
import
|
|
3
|
-
import
|
|
2
|
+
import * as path from 'path';
|
|
3
|
+
import { isValidUrl } from '../utils/directory.js';
|
|
4
|
+
import { askCreateInitialBrowserCheck, askUserWebsite } from '../utils/prompts.js';
|
|
4
5
|
// Default Playwright-based Browser Check
|
|
5
6
|
const defaultBrowserCheck = `import { test, expect } from '@playwright/test'
|
|
6
7
|
|
|
@@ -12,20 +13,16 @@ test('Custom Browser Check', async ({ page }) => {
|
|
|
12
13
|
expect(response?.status()).toBeLessThan(400)
|
|
13
14
|
await page.screenshot({ path: 'screenshot.jpg' })
|
|
14
15
|
})`;
|
|
15
|
-
export async function createCustomBrowserCheck({ onCancel }) {
|
|
16
|
-
const
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
name: 'url',
|
|
26
|
-
message: 'Please provide the URL of the site you want to check.',
|
|
27
|
-
}, { onCancel });
|
|
28
|
-
fs.writeFileSync('./__checks__/custom.spec.ts', defaultBrowserCheck.replace(/URL_TO_CHECK/i, normalizeUrl(userWebsiteResponse.url)));
|
|
16
|
+
export async function createCustomBrowserCheck({ projectDirectory, onCancel }) {
|
|
17
|
+
const { createInitialBrowserCheck } = await askCreateInitialBrowserCheck(onCancel);
|
|
18
|
+
if (createInitialBrowserCheck) {
|
|
19
|
+
const { userWebsite } = await askUserWebsite(onCancel);
|
|
20
|
+
if (isValidUrl(userWebsite)) {
|
|
21
|
+
fs.writeFileSync(path.join(projectDirectory, './__checks__/custom.spec.ts'), defaultBrowserCheck.replace(/URL_TO_CHECK/i, new URL(userWebsite).toString()));
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
process.stdout.write('Custom check wasn\'t created: the specified URL isn\'t valid.\n');
|
|
25
|
+
}
|
|
29
26
|
}
|
|
30
27
|
}
|
|
31
28
|
//# sourceMappingURL=creates.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"creates.js","sourceRoot":"","sources":["../../src/actions/creates.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAA;AACxB,OAAO,OAAO,MAAM,
|
|
1
|
+
{"version":3,"file":"creates.js","sourceRoot":"","sources":["../../src/actions/creates.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAA;AACxB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAA;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAClD,OAAO,EAAE,4BAA4B,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAElF,yCAAyC;AACzC,MAAM,mBAAmB,GAAG;;;;;;;;;GASzB,CAAA;AAEH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,EAAE,gBAAgB,EAAE,QAAQ,EAAsD;IAElF,MAAM,EAAE,yBAAyB,EAAE,GAAG,MAAM,4BAA4B,CAAC,QAAQ,CAAC,CAAA;IAElF,IAAI,yBAAyB,EAAE;QAC7B,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,cAAc,CAAC,QAAQ,CAAC,CAAA;QAEtD,IAAI,UAAU,CAAC,WAAW,CAAC,EAAE;YAC3B,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,6BAA6B,CAAC,EACzE,mBAAmB,CAAC,OAAO,CAAC,eAAe,EAAE,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;SACjF;aAAM;YACL,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,iEAAiE,CAAC,CAAA;SACxF;KACF;AACH,CAAC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { PackageJson } from '../utils/
|
|
2
|
-
export declare function addDevDependecies(packageJson: PackageJson): void;
|
|
1
|
+
import { PackageJson } from '../utils/directory.js';
|
|
2
|
+
export declare function addDevDependecies(projectDirectory: string, packageJson: PackageJson): void;
|
|
3
3
|
export declare function installDependencies(targetDir: string): Promise<void>;
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import * as fs from 'fs';
|
|
2
|
-
import
|
|
2
|
+
import * as path from 'path';
|
|
3
3
|
import detectPackageManager from 'which-pm-runs';
|
|
4
4
|
import { execa } from 'execa';
|
|
5
5
|
import { spinner } from '../utils/terminal.js';
|
|
6
6
|
import { hint } from '../utils/messages.js';
|
|
7
|
-
|
|
7
|
+
import { askInstallDependencies } from '../utils/prompts.js';
|
|
8
|
+
export function addDevDependecies(projectDirectory, packageJson) {
|
|
8
9
|
if (!Reflect.has(packageJson, 'devDependencies')) {
|
|
9
10
|
packageJson.devDependencies = {};
|
|
10
11
|
}
|
|
@@ -13,16 +14,11 @@ export function addDevDependecies(packageJson) {
|
|
|
13
14
|
'ts-node': 'latest',
|
|
14
15
|
typescript: 'latest',
|
|
15
16
|
});
|
|
16
|
-
fs.writeFileSync('
|
|
17
|
+
fs.writeFileSync(path.join(projectDirectory, 'package.json'), JSON.stringify(packageJson, null, 2));
|
|
17
18
|
}
|
|
18
19
|
export async function installDependencies(targetDir) {
|
|
19
|
-
const
|
|
20
|
-
|
|
21
|
-
name: 'installDeps',
|
|
22
|
-
message: 'Would you like to install NPM dependencies? (recommended)',
|
|
23
|
-
initial: true,
|
|
24
|
-
});
|
|
25
|
-
if (installDepsResponse.installDeps) {
|
|
20
|
+
const { installDependencies } = await askInstallDependencies();
|
|
21
|
+
if (installDependencies) {
|
|
26
22
|
const packageManager = detectPackageManager()?.name || 'npm';
|
|
27
23
|
const installExec = execa(packageManager, ['install'], { cwd: targetDir });
|
|
28
24
|
const installSpinner = spinner('installing packages');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dependencies.js","sourceRoot":"","sources":["../../src/actions/dependencies.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAA;AACxB,OAAO,
|
|
1
|
+
{"version":3,"file":"dependencies.js","sourceRoot":"","sources":["../../src/actions/dependencies.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAA;AACxB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAA;AAC5B,OAAO,oBAAoB,MAAM,eAAe,CAAA;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAC7B,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAA;AAE3C,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;AAE5D,MAAM,UAAU,iBAAiB,CAAE,gBAAwB,EAAE,WAAwB;IACnF,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,iBAAiB,CAAC,EAAE;QAChD,WAAW,CAAC,eAAe,GAAG,EAAE,CAAA;KACjC;IAED,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,eAAe,EAAE;QACzC,OAAO,EAAE,QAAQ;QACjB,SAAS,EAAE,QAAQ;QACnB,UAAU,EAAE,QAAQ;KACrB,CAAC,CAAA;IAEF,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,cAAc,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;AACrG,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAE,SAAiB;IAC1D,MAAM,EAAE,mBAAmB,EAAE,GAAG,MAAM,sBAAsB,EAAE,CAAA;IAE9D,IAAI,mBAAmB,EAAE;QACvB,MAAM,cAAc,GAAG,oBAAoB,EAAE,EAAE,IAAI,IAAI,KAAK,CAAA;QAC5D,MAAM,WAAW,GAAG,KAAK,CAAC,cAAc,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,CAAA;QAC1E,MAAM,cAAc,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAA;QACrD,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC1C,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,UAAU,IAAI;gBAC3C,cAAc,CAAC,IAAI,GAAG,gBAAgB,cAAc,IAAI,IAAI,EAAE,CAAA;YAChE,CAAC,CAAC,CAAA;YACF,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;YACjD,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAA;QAC1C,CAAC,CAAC,CAAA;QACF,cAAc,CAAC,IAAI,GAAG,iCAAiC,CAAA;QACvD,cAAc,CAAC,OAAO,EAAE,CAAA;KACzB;SAAM;QACL,MAAM,IAAI,CAAC,aAAa,EAAE,4DAA4D,CAAC,CAAA;KACxF;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function initGit(targetDir: string): Promise<void>;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import * as fs from 'fs';
|
|
2
|
+
import * as path from 'path';
|
|
3
|
+
import { hasGitDir, hasGitIgnore } from '../utils/directory.js';
|
|
4
|
+
import { execaCommand } from 'execa';
|
|
5
|
+
import { askInitializeGit } from '../utils/prompts.js';
|
|
6
|
+
export async function initGit(targetDir) {
|
|
7
|
+
if (hasGitDir(targetDir)) {
|
|
8
|
+
return;
|
|
9
|
+
}
|
|
10
|
+
const { initializeGit } = await askInitializeGit();
|
|
11
|
+
if (initializeGit) {
|
|
12
|
+
await execaCommand('git init', { cwd: targetDir });
|
|
13
|
+
if (!hasGitIgnore(targetDir)) {
|
|
14
|
+
const gitIgnore = 'node_modules\n.DS_Store';
|
|
15
|
+
fs.writeFileSync(path.join(targetDir, '.gitignore'), gitIgnore);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=git.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/actions/git.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAA;AACxB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAA;AAC5B,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,OAAO,CAAA;AACpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAEtD,MAAM,CAAC,KAAK,UAAU,OAAO,CAAE,SAAiB;IAC9C,IAAI,SAAS,CAAC,SAAS,CAAC,EAAE;QACxB,OAAM;KACP;IAED,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,gBAAgB,EAAE,CAAA;IAElD,IAAI,aAAa,EAAE;QACjB,MAAM,YAAY,CAAC,UAAU,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,CAAA;QAElD,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE;YAC5B,MAAM,SAAS,GAAG,yBAAyB,CAAA;YAC3C,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,EAAE,SAAS,CAAC,CAAA;SAChE;KACF;AACH,CAAC"}
|
package/dist/actions/template.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template.js","sourceRoot":"","sources":["../../src/actions/template.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,gBAAgB,EAAE,MAAM,OAAO,CAAA;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAQ9C,MAAM,CAAC,KAAK,UAAU,YAAY,CAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAqB;IAC1F,MAAM,uBAAuB,GAAG,OAAO,CAAC,iCAAiC,CAAC,CAAA;IAE1E,IAAI;QACF,MAAM,gBAAgB,CAAC,YAAY,EAAE;YACnC,KAAK,EAAE,IAAI;YACX,GAAG,EAAE,SAAS;YACd,GAAG,EAAE,GAAG;SACT,CAAC,CAAA;KACH;IAAC,OAAO,CAAM,EAAE;QACf,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;YAC7B,uBAAuB,CAAC,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,2BAA2B,QAAQ,GAAG,CAAC,CAAA;YAChF,uBAAuB,CAAC,IAAI,EAAE,CAAA;SAC/B;aAAM;YACL,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;SACzB;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;KAChB;IAED,uBAAuB,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAA;IACtE,uBAAuB,CAAC,OAAO,EAAE,CAAA;AACnC,CAAC"}
|
|
1
|
+
{"version":3,"file":"template.js","sourceRoot":"","sources":["../../src/actions/template.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,gBAAgB,EAAE,MAAM,OAAO,CAAA;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAQ9C,MAAM,CAAC,KAAK,UAAU,YAAY,CAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAqB;IAC1F,MAAM,uBAAuB,GAAG,OAAO,CAAC,iCAAiC,CAAC,CAAA;IAE1E,IAAI;QACF,MAAM,gBAAgB,CAAC,YAAY,EAAE;YACnC,KAAK,EAAE,IAAI;YACX,GAAG,EAAE,SAAS;YACd,GAAG,EAAE,GAAG;SACT,CAAC,CAAA;KACH;IAAC,OAAO,CAAM,EAAE;QACf,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;YAC7B,uBAAuB,CAAC,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,2BAA2B,QAAQ,GAAG,CAAC,CAAA;YAChF,uBAAuB,CAAC,IAAI,EAAE,CAAA;SAC/B;aAAM;YACL,2BAA2B;YAC3B,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;SACzB;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;KAChB;IAED,uBAAuB,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAA;IACtE,uBAAuB,CAAC,OAAO,EAAE,CAAA;AACnC,CAAC"}
|
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
import { Command } from '@oclif/core';
|
|
2
|
+
/**
|
|
3
|
+
* This code is heavily inspired by the amazing create-astro package over at
|
|
4
|
+
* https://github.com/withastro/astro/tree/main/packages/create-astro
|
|
5
|
+
*/
|
|
2
6
|
export default class Bootstrap extends Command {
|
|
3
7
|
static description: string;
|
|
4
8
|
static flags: {
|
|
@@ -1,121 +1,41 @@
|
|
|
1
|
-
import Debug from 'debug';
|
|
2
1
|
import { Command, Flags } from '@oclif/core';
|
|
3
|
-
import { uniqueNamesGenerator, colors, animals } from 'unique-names-generator';
|
|
4
2
|
import prompts from 'prompts';
|
|
5
|
-
import {
|
|
6
|
-
import
|
|
7
|
-
import {
|
|
8
|
-
import { getUserGreeting, getVersion, header, bail, hint, footer, } from '../utils/messages.js';
|
|
9
|
-
import { createCustomBrowserCheck } from '../actions/creates.js';
|
|
10
|
-
import { addDevDependecies, installDependencies } from '../actions/dependencies.js';
|
|
11
|
-
import { hasPackageJsonFile, readPackageJson } from '../utils/package.js';
|
|
12
|
-
import { copyTemplate } from '../actions/template.js';
|
|
3
|
+
import { getUserGreeting, header, bail, footer, hint, } from '../utils/messages.js';
|
|
4
|
+
import { hasPackageJsonFile } from '../utils/directory.js';
|
|
5
|
+
import { createProject, getProjectDirectory, installDependenciesAndInitGit, installWithinProject, } from '../utils/installation.js';
|
|
13
6
|
/**
|
|
14
7
|
* This code is heavily inspired by the amazing create-astro package over at
|
|
15
8
|
* https://github.com/withastro/astro/tree/main/packages/create-astro
|
|
16
9
|
*/
|
|
17
|
-
const debug = Debug('checkly:create-cli');
|
|
18
|
-
const templateBaseRepo = 'checkly/checkly-cli/examples';
|
|
19
|
-
function generateProjectName() {
|
|
20
|
-
return uniqueNamesGenerator({
|
|
21
|
-
dictionaries: [colors, animals],
|
|
22
|
-
separator: '-',
|
|
23
|
-
length: 2,
|
|
24
|
-
style: 'lowerCase',
|
|
25
|
-
});
|
|
26
|
-
}
|
|
27
|
-
function onCancel() {
|
|
28
|
-
bail();
|
|
29
|
-
process.exit(1);
|
|
30
|
-
}
|
|
31
10
|
export default class Bootstrap extends Command {
|
|
32
11
|
async run() {
|
|
33
12
|
const { flags } = await this.parse(Bootstrap);
|
|
34
13
|
const { template } = flags;
|
|
14
|
+
const onCancel = () => {
|
|
15
|
+
bail();
|
|
16
|
+
// TODO: replace this with oclif error()
|
|
17
|
+
process.exit(1);
|
|
18
|
+
};
|
|
35
19
|
// This overrides the template prompt and skips to the next prompt
|
|
36
20
|
if (template) {
|
|
37
21
|
prompts.override({ template });
|
|
38
22
|
}
|
|
39
|
-
const
|
|
23
|
+
const version = process.env.CHECKLY_CLI_VERSION ?? this.config.version;
|
|
24
|
+
const greeting = await getUserGreeting();
|
|
40
25
|
await header(version, greeting);
|
|
41
|
-
|
|
42
|
-
if (hasPackageJsonFile()) {
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
type: 'confirm',
|
|
46
|
-
name: 'useDirectory',
|
|
47
|
-
message: 'It looks like you are already in a project, would you like to initialize?',
|
|
48
|
-
initial: true,
|
|
49
|
-
}, { onCancel });
|
|
50
|
-
if (projectInitResponse.useDirectory) {
|
|
51
|
-
const packageJson = readPackageJson();
|
|
52
|
-
const temporaryDir = generateProjectName();
|
|
53
|
-
debug('Add dependencies to existing package.json');
|
|
54
|
-
addDevDependecies(packageJson);
|
|
55
|
-
debug('Copy boilerplate project to temporary folder');
|
|
56
|
-
await copyTemplate({
|
|
57
|
-
template: 'boilerplate-project',
|
|
58
|
-
templatePath: `github:${templateBaseRepo}/boilerplate-project#v${version}`,
|
|
59
|
-
targetDir: temporaryDir,
|
|
60
|
-
});
|
|
61
|
-
copyTemporaryFiles(temporaryDir);
|
|
62
|
-
usePackageName(packageJson.name);
|
|
63
|
-
debug('Create custom Browser check');
|
|
64
|
-
await createCustomBrowserCheck({ onCancel });
|
|
65
|
-
await installDependencies('./');
|
|
66
|
-
await footer();
|
|
67
|
-
return;
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
debug('Ask for directory name');
|
|
71
|
-
const projectDirResponse = await prompts({
|
|
72
|
-
type: 'text',
|
|
73
|
-
name: 'projectDirectory',
|
|
74
|
-
message: 'Where do you want to create your new project?',
|
|
75
|
-
initial: generateProjectName(),
|
|
76
|
-
validate(dirName) {
|
|
77
|
-
if (!isValidProjectDirectory(dirName)) {
|
|
78
|
-
return `"${chalk.bold(dirName)}" is not empty!`;
|
|
79
|
-
}
|
|
80
|
-
return true;
|
|
81
|
-
},
|
|
82
|
-
}, { onCancel });
|
|
83
|
-
const targetDir = projectDirResponse.projectDirectory;
|
|
84
|
-
if (!targetDir) {
|
|
85
|
-
process.exit(1);
|
|
26
|
+
const projectDirectory = await getProjectDirectory({ onCancel });
|
|
27
|
+
if (hasPackageJsonFile(projectDirectory)) {
|
|
28
|
+
// Init Checkly CLI for an existing project
|
|
29
|
+
await installWithinProject({ projectDirectory, version, onCancel });
|
|
86
30
|
}
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
message: 'Which template would you like to use for your new project',
|
|
92
|
-
choices: [
|
|
93
|
-
{ value: 'advanced-project', title: 'An advanced project with multiple examples and best practices (recommended)' },
|
|
94
|
-
{ value: 'boilerplate-project', title: 'A boilerplate project with basic config' },
|
|
95
|
-
],
|
|
96
|
-
}, { onCancel });
|
|
97
|
-
debug('Downloading template');
|
|
98
|
-
await copyTemplate({
|
|
99
|
-
template: templateResponse.template,
|
|
100
|
-
templatePath: `github:${templateBaseRepo}/${templateResponse.template}#v${version}`,
|
|
101
|
-
targetDir,
|
|
102
|
-
});
|
|
103
|
-
await installDependencies(targetDir);
|
|
104
|
-
const initGitResponse = await prompts({
|
|
105
|
-
type: 'confirm',
|
|
106
|
-
name: 'initGit',
|
|
107
|
-
message: 'Would you like to initialize a new git repo? (optional)',
|
|
108
|
-
initial: true,
|
|
109
|
-
});
|
|
110
|
-
if (initGitResponse.initGit) {
|
|
111
|
-
if (hasGitDir()) {
|
|
112
|
-
await hint('Oh wait!', 'A .git directory already exists. Skipping...');
|
|
113
|
-
}
|
|
114
|
-
else {
|
|
115
|
-
await execaCommand('git init', { cwd: targetDir });
|
|
116
|
-
}
|
|
31
|
+
else {
|
|
32
|
+
// Create a project from the scratch using a template
|
|
33
|
+
await hint('Cool.', `Your project will be created in the directory "${projectDirectory}"`);
|
|
34
|
+
await createProject({ projectDirectory, version, onCancel });
|
|
117
35
|
}
|
|
118
|
-
|
|
36
|
+
// ask and install dependencies and initialize git
|
|
37
|
+
await installDependenciesAndInitGit({ projectDirectory });
|
|
38
|
+
await footer(projectDirectory);
|
|
119
39
|
}
|
|
120
40
|
}
|
|
121
41
|
Bootstrap.description = 'Bootstrap a Checkly project';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../src/commands/bootstrap.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../src/commands/bootstrap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,OAAO,MAAM,SAAS,CAAA;AAC7B,OAAO,EACL,eAAe,EACf,MAAM,EACN,IAAI,EACJ,MAAM,EACN,IAAI,GACL,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAC1D,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,6BAA6B,EAC7B,oBAAoB,GACrB,MAAM,0BAA0B,CAAA;AAGjC;;;GAGG;AAEH,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,OAAO;IAU5C,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;QAC7C,MAAM,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAA;QAE1B,MAAM,QAAQ,GAAG,GAAS,EAAE;YAC1B,IAAI,EAAE,CAAA;YACN,wCAAwC;YACxC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC,CAAA;QAED,kEAAkE;QAClE,IAAI,QAAQ,EAAE;YACZ,OAAO,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAA;SAC/B;QAED,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAA;QACtE,MAAM,QAAQ,GAAG,MAAM,eAAe,EAAE,CAAA;QAExC,MAAM,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;QAE/B,MAAM,gBAAgB,GAAG,MAAM,mBAAmB,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAA;QAEhE,IAAI,kBAAkB,CAAC,gBAAgB,CAAC,EAAE;YACxC,2CAA2C;YAC3C,MAAM,oBAAoB,CAAC,EAAE,gBAAgB,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAA;SACpE;aAAM;YACL,qDAAqD;YACrD,MAAM,IAAI,CAAC,OAAO,EAAE,kDAAkD,gBAAgB,GAAG,CAAC,CAAA;YAC1F,MAAM,aAAa,CAAC,EAAE,gBAAgB,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAA;SAC7D;QAED,kDAAkD;QAClD,MAAM,6BAA6B,CAAC,EAAE,gBAAgB,EAAE,CAAC,CAAA;QAEzD,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAA;IAChC,CAAC;;AA5CM,qBAAW,GAAG,6BAA6B,CAAA;AAE3C,eAAK,GAAG;IACb,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC;QACrB,IAAI,EAAE,GAAG;QACT,WAAW,EAAE,2BAA2B;KACzC,CAAC;CACH,CAAA"}
|
|
@@ -1,4 +1,15 @@
|
|
|
1
|
+
export interface PackageJson {
|
|
2
|
+
name: string;
|
|
3
|
+
devDependencies: {
|
|
4
|
+
[key: string]: string;
|
|
5
|
+
};
|
|
6
|
+
}
|
|
7
|
+
export declare function hasPackageJsonFile(dirPath: string): boolean;
|
|
8
|
+
export declare function readPackageJson(dirPath: string): PackageJson;
|
|
1
9
|
export declare function isValidProjectDirectory(dirPath: string): boolean;
|
|
2
|
-
export declare function hasGitDir(): boolean;
|
|
3
|
-
export declare function copyTemporaryFiles(dirPath: string): void;
|
|
10
|
+
export declare function hasGitDir(dirPath: string): boolean;
|
|
11
|
+
export declare function copyTemporaryFiles(dirPath: string, tempPath: string): void;
|
|
4
12
|
export declare function usePackageName(packageName: string): void;
|
|
13
|
+
export declare function hasGitIgnore(dirPath: string): boolean;
|
|
14
|
+
export declare function isValidUrl(string: string): boolean;
|
|
15
|
+
export declare function generateProjectName(): string;
|
package/dist/utils/directory.js
CHANGED
|
@@ -1,19 +1,41 @@
|
|
|
1
1
|
import * as fs from 'fs';
|
|
2
|
+
import * as path from 'path';
|
|
3
|
+
import { uniqueNamesGenerator, colors, animals } from 'unique-names-generator';
|
|
4
|
+
export function hasPackageJsonFile(dirPath) {
|
|
5
|
+
return fs.existsSync(path.join(dirPath, 'package.json'));
|
|
6
|
+
}
|
|
7
|
+
export function readPackageJson(dirPath) {
|
|
8
|
+
return JSON.parse(fs.readFileSync(path.join(dirPath, 'package.json'), 'utf-8'));
|
|
9
|
+
}
|
|
2
10
|
export function isValidProjectDirectory(dirPath) {
|
|
3
11
|
if (!fs.existsSync(dirPath)) {
|
|
4
12
|
return true;
|
|
5
13
|
}
|
|
14
|
+
// allow already initiated projects directory
|
|
15
|
+
if (hasPackageJsonFile(dirPath)) {
|
|
16
|
+
return true;
|
|
17
|
+
}
|
|
18
|
+
// only allow non initiated directory if it's empty
|
|
6
19
|
return fs.readdirSync(dirPath).length === 0;
|
|
7
20
|
}
|
|
8
|
-
export function hasGitDir() {
|
|
9
|
-
return fs.existsSync('./.git');
|
|
21
|
+
export function hasGitDir(dirPath) {
|
|
22
|
+
return fs.existsSync(path.join(dirPath, './.git'));
|
|
10
23
|
}
|
|
11
|
-
export function copyTemporaryFiles(dirPath) {
|
|
24
|
+
export function copyTemporaryFiles(dirPath, tempPath) {
|
|
12
25
|
const FILE_TO_KEEP = ['__checks__', 'checkly.config.ts'];
|
|
13
|
-
|
|
14
|
-
|
|
26
|
+
if (FILE_TO_KEEP.some(file => fs.existsSync(path.join(dirPath, file)))) {
|
|
27
|
+
// eslint-disable-next-line no-console
|
|
28
|
+
process.stderr.write('It looks like you already have "__checks__" folder or "checkly.config.ts". ' +
|
|
29
|
+
'Please, remove them and try again.' + '\n');
|
|
30
|
+
fs.rmSync(tempPath, { recursive: true });
|
|
31
|
+
process.exit(1);
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
for (const file of FILE_TO_KEEP) {
|
|
35
|
+
fs.renameSync(`${tempPath}/${file}`, path.join(dirPath, file));
|
|
36
|
+
}
|
|
15
37
|
}
|
|
16
|
-
fs.rmSync(
|
|
38
|
+
fs.rmSync(tempPath, { recursive: true });
|
|
17
39
|
}
|
|
18
40
|
export function usePackageName(packageName) {
|
|
19
41
|
const filePath = './checkly.config.ts';
|
|
@@ -22,4 +44,24 @@ export function usePackageName(packageName) {
|
|
|
22
44
|
.replace(/Boilerplate Project/, packageName)
|
|
23
45
|
.replace(/boilerplate-project/, packageName));
|
|
24
46
|
}
|
|
47
|
+
export function hasGitIgnore(dirPath) {
|
|
48
|
+
return fs.existsSync(path.join(dirPath, '.gitignore'));
|
|
49
|
+
}
|
|
50
|
+
export function isValidUrl(string) {
|
|
51
|
+
try {
|
|
52
|
+
const url = new URL(string);
|
|
53
|
+
return url.protocol === 'http:' || url.protocol === 'https:';
|
|
54
|
+
}
|
|
55
|
+
catch {
|
|
56
|
+
return false;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
export function generateProjectName() {
|
|
60
|
+
return uniqueNamesGenerator({
|
|
61
|
+
dictionaries: [colors, animals],
|
|
62
|
+
separator: '-',
|
|
63
|
+
length: 2,
|
|
64
|
+
style: 'lowerCase',
|
|
65
|
+
});
|
|
66
|
+
}
|
|
25
67
|
//# sourceMappingURL=directory.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"directory.js","sourceRoot":"","sources":["../../src/utils/directory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAA;
|
|
1
|
+
{"version":3,"file":"directory.js","sourceRoot":"","sources":["../../src/utils/directory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAA;AACxB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAA;AAC5B,OAAO,EAAE,oBAAoB,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAS9E,MAAM,UAAU,kBAAkB,CAAE,OAAe;IACjD,OAAO,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAAA;AAC1D,CAAC;AAED,MAAM,UAAU,eAAe,CAAE,OAAe;IAC9C,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,CAAC,CAAA;AACjF,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAE,OAAe;IACtD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;QAC3B,OAAO,IAAI,CAAA;KACZ;IACD,6CAA6C;IAC7C,IAAI,kBAAkB,CAAC,OAAO,CAAC,EAAE;QAC/B,OAAO,IAAI,CAAA;KACZ;IACD,mDAAmD;IACnD,OAAO,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,CAAA;AAC7C,CAAC;AAED,MAAM,UAAU,SAAS,CAAE,OAAe;IACxC,OAAO,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAA;AACpD,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAE,OAAe,EAAE,QAAgB;IACnE,MAAM,YAAY,GAAG,CAAC,YAAY,EAAE,mBAAmB,CAAC,CAAA;IAExD,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC3B,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE;QAC1C,sCAAsC;QACtC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,6EAA6E;YAChG,oCAAoC,GAAG,IAAI,CAAC,CAAA;QAC9C,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QACxC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;KAChB;SAAM;QACL,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE;YAC/B,EAAE,CAAC,UAAU,CAAC,GAAG,QAAQ,IAAI,IAAI,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAA;SAC/D;KACF;IAED,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;AAC1C,CAAC;AAED,MAAM,UAAU,cAAc,CAAE,WAAmB;IACjD,MAAM,QAAQ,GAAG,qBAAqB,CAAA;IACtC,MAAM,aAAa,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;IAExD,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,aAAa;SACrC,OAAO,CAAC,qBAAqB,EAAE,WAAW,CAAC;SAC3C,OAAO,CAAC,qBAAqB,EAAE,WAAW,CAAC,CAC7C,CAAA;AACH,CAAC;AACD,MAAM,UAAU,YAAY,CAAE,OAAe;IAC3C,OAAO,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAA;AACxD,CAAC;AAED,MAAM,UAAU,UAAU,CAAE,MAAc;IACxC,IAAI;QACF,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAA;QAC3B,OAAO,GAAG,CAAC,QAAQ,KAAK,OAAO,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAA;KAC7D;IAAC,MAAM;QACN,OAAO,KAAK,CAAA;KACb;AACH,CAAC;AAED,MAAM,UAAU,mBAAmB;IACjC,OAAO,oBAAoB,CAAC;QAC1B,YAAY,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;QAC/B,SAAS,EAAE,GAAG;QACd,MAAM,EAAE,CAAC;QACT,KAAK,EAAE,WAAW;KACnB,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export declare function getProjectDirectory({ onCancel }: {
|
|
2
|
+
onCancel: () => void;
|
|
3
|
+
}): Promise<string>;
|
|
4
|
+
export declare function installWithinProject({ projectDirectory, version, onCancel }: {
|
|
5
|
+
projectDirectory: string;
|
|
6
|
+
version: string;
|
|
7
|
+
onCancel: () => void;
|
|
8
|
+
}): Promise<void>;
|
|
9
|
+
export declare function createProject({ projectDirectory, version, onCancel }: {
|
|
10
|
+
projectDirectory: string;
|
|
11
|
+
version: string;
|
|
12
|
+
onCancel: () => void;
|
|
13
|
+
}): Promise<void>;
|
|
14
|
+
export declare function installDependenciesAndInitGit({ projectDirectory }: {
|
|
15
|
+
projectDirectory: string;
|
|
16
|
+
}): Promise<void>;
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import Debug from 'debug';
|
|
2
|
+
import { copyTemporaryFiles, generateProjectName, usePackageName, readPackageJson, hasPackageJsonFile } from './directory.js';
|
|
3
|
+
import { askInitializeProject, askProjectDirectory, askTemplate } from './prompts.js';
|
|
4
|
+
import { addDevDependecies, installDependencies } from '../actions/dependencies.js';
|
|
5
|
+
import { copyTemplate } from '../actions/template.js';
|
|
6
|
+
import { createCustomBrowserCheck } from '../actions/creates.js';
|
|
7
|
+
import { initGit } from '../actions/git.js';
|
|
8
|
+
const debug = Debug('checkly:create-cli');
|
|
9
|
+
const templateBaseRepo = 'checkly/checkly-cli/examples';
|
|
10
|
+
export async function getProjectDirectory({ onCancel }) {
|
|
11
|
+
debug('Ask or detect directory name');
|
|
12
|
+
const cwd = process.cwd();
|
|
13
|
+
// if directory has a package.json, do not ask project directory and use CWD
|
|
14
|
+
const { projectDirectory } = hasPackageJsonFile(cwd)
|
|
15
|
+
? { projectDirectory: cwd }
|
|
16
|
+
: await askProjectDirectory(onCancel);
|
|
17
|
+
if (!projectDirectory) {
|
|
18
|
+
process.stderr.write('You must provide a valid directory name. Please try again.');
|
|
19
|
+
}
|
|
20
|
+
return projectDirectory;
|
|
21
|
+
}
|
|
22
|
+
export async function installWithinProject({ projectDirectory, version, onCancel }) {
|
|
23
|
+
debug('Existing package.json detected');
|
|
24
|
+
const { initializeProject } = await askInitializeProject(onCancel);
|
|
25
|
+
if (initializeProject) {
|
|
26
|
+
const packageJson = readPackageJson(projectDirectory);
|
|
27
|
+
const temporaryDir = generateProjectName();
|
|
28
|
+
debug('Add dependencies to existing package.json');
|
|
29
|
+
addDevDependecies(projectDirectory, packageJson);
|
|
30
|
+
debug('Copy boilerplate project to temporary folder');
|
|
31
|
+
await copyTemplate({
|
|
32
|
+
template: 'boilerplate-project',
|
|
33
|
+
templatePath: `github:${templateBaseRepo}/boilerplate-project#v${version}`,
|
|
34
|
+
targetDir: temporaryDir,
|
|
35
|
+
});
|
|
36
|
+
copyTemporaryFiles(projectDirectory, temporaryDir);
|
|
37
|
+
usePackageName(packageJson.name);
|
|
38
|
+
debug('Create custom Browser check');
|
|
39
|
+
await createCustomBrowserCheck({ projectDirectory, onCancel });
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
process.exit(0);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
export async function createProject({ projectDirectory, version, onCancel }) {
|
|
46
|
+
const templateResponse = await askTemplate(onCancel);
|
|
47
|
+
debug('Downloading template');
|
|
48
|
+
await copyTemplate({
|
|
49
|
+
template: templateResponse.template,
|
|
50
|
+
templatePath: `github:${templateBaseRepo}/${templateResponse.template}#v${version}`,
|
|
51
|
+
targetDir: projectDirectory,
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
export async function installDependenciesAndInitGit({ projectDirectory }) {
|
|
55
|
+
debug('Install npm dependencies');
|
|
56
|
+
await installDependencies(projectDirectory);
|
|
57
|
+
debug('Init .git & .gitignore');
|
|
58
|
+
await initGit(projectDirectory);
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=installation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"installation.js","sourceRoot":"","sources":["../../src/utils/installation.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/messages.d.ts
CHANGED
package/dist/utils/messages.js
CHANGED
|
@@ -1,14 +1,9 @@
|
|
|
1
1
|
/* eslint no-console: 'off' */
|
|
2
|
-
import axios from 'axios';
|
|
3
2
|
import chalk from 'chalk';
|
|
4
3
|
import fullName from 'fullname';
|
|
5
4
|
function sleep(ms) {
|
|
6
5
|
return new Promise(resolve => setTimeout(resolve, ms));
|
|
7
6
|
}
|
|
8
|
-
export async function getVersion() {
|
|
9
|
-
const { data } = await axios.get('https://registry.npmjs.org/checkly/latest');
|
|
10
|
-
return data.version;
|
|
11
|
-
}
|
|
12
7
|
export async function getUserGreeting() {
|
|
13
8
|
const name = await fullName();
|
|
14
9
|
return name ? `Hi ${name}!` : 'Hi there!';
|
|
@@ -39,7 +34,7 @@ export async function footer(targetDir) {
|
|
|
39
34
|
console.log(`\n ${chalk.bgCyan(` ${chalk.black.bold('next')} `)} ${chalk.bold('All done. Time to get testing & monitoring with Checkly\n')}`);
|
|
40
35
|
if (targetDir) {
|
|
41
36
|
await sleep(200);
|
|
42
|
-
console.log(`${prefix}> Enter your project directory using ${chalk.cyan(`cd
|
|
37
|
+
console.log(`${prefix}> Enter your project directory using ${chalk.cyan(`cd ${targetDir}`)}`);
|
|
43
38
|
}
|
|
44
39
|
await sleep(200);
|
|
45
40
|
console.log(`${prefix}> Run ${chalk.cyan('npx checkly login')} to login to your Checkly account`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messages.js","sourceRoot":"","sources":["../../src/utils/messages.ts"],"names":[],"mappings":"AAAA,8BAA8B;
|
|
1
|
+
{"version":3,"file":"messages.js","sourceRoot":"","sources":["../../src/utils/messages.ts"],"names":[],"mappings":"AAAA,8BAA8B;AAG9B,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,QAAQ,MAAM,UAAU,CAAA;AAE/B,SAAS,KAAK,CAAE,EAAU;IACxB,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAA;AACxD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe;IACnC,MAAM,IAAI,GAAG,MAAM,QAAQ,EAAE,CAAA;IAC7B,OAAO,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,WAAW,CAAA;AAC3C,CAAC;AAED,MAAM,UAAU,IAAI;IAClB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC,CAAA;AAClE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,MAAM,CAAE,OAAe,EAAE,QAAgB;IAC7D,OAAO,CAAC,GAAG,CACT,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,OAAO,IAAI,KAAK,CAAC,IAAI,CAC/D,qCAAqC,CAAC,IAAI,CAC7C,CAAA;IACD,MAAM,KAAK,CAAC,IAAI,CAAC,CAAA;IACjB,OAAO,CAAC,GAAG,CAAC,GAAG,QAAQ,kCAAkC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC,CAAA;IAC7G,MAAM,KAAK,CAAC,GAAG,CAAC,CAAA;AAClB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,IAAI,CAAE,MAAc,EAAE,IAAY;IACtD,MAAM,KAAK,CAAC,GAAG,CAAC,CAAA;IAChB,IAAI,OAAO,CAAC,MAAM,CAAC,OAAO,GAAG,EAAE,EAAE;QAC/B,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;QACxD,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;KACpD;SAAM;QACL,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;KAC9E;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,MAAM,CAAE,SAAkB;IAC9C,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAA;IAClC,MAAM,MAAM,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;IAC7C,MAAM,KAAK,CAAC,GAAG,CAAC,CAAA;IAChB,OAAO,CAAC,GAAG,CACT,MAAM,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAChE,2DAA2D,CAC5D,EAAE,CACJ,CAAA;IAED,IAAI,SAAS,EAAE;QACb,MAAM,KAAK,CAAC,GAAG,CAAC,CAAA;QAChB,OAAO,CAAC,GAAG,CACT,GAAG,MAAM,wCAAwC,KAAK,CAAC,IAAI,CAAC,MAAM,SAAS,EAAE,CAAC,EAAE,CACjF,CAAA;KACF;IACD,MAAM,KAAK,CAAC,GAAG,CAAC,CAAA;IAChB,OAAO,CAAC,GAAG,CACT,GAAG,MAAM,SAAS,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,mCAAmC,CACrF,CAAA;IACD,MAAM,KAAK,CAAC,GAAG,CAAC,CAAA;IAChB,OAAO,CAAC,GAAG,CACT,GAAG,MAAM,SAAS,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,yBAAyB,CAC1E,CAAA;IACD,MAAM,KAAK,CAAC,GAAG,CAAC,CAAA;IAChB,OAAO,CAAC,GAAG,CACT,GAAG,MAAM,SAAS,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,6CAA6C,CAChG,CAAA;IACD,MAAM,KAAK,CAAC,GAAG,CAAC,CAAA;IAChB,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,cAAc,CAAC,CAAA;IACtC,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,uBAAuB,KAAK,CAAC,IAAI,CAAC,gCAAgC,CAAC,EAAE,CAAC,CAAA;IAC3F,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,yCAAyC,KAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC,IAAI,CAAC,CAAA;AAC9G,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export declare function askInitializeProject(onCancel: any): Promise<{
|
|
2
|
+
initializeProject: boolean;
|
|
3
|
+
}>;
|
|
4
|
+
export declare function askProjectDirectory(onCancel: any): Promise<{
|
|
5
|
+
projectDirectory: string;
|
|
6
|
+
}>;
|
|
7
|
+
export declare function askTemplate(onCancel: any): Promise<{
|
|
8
|
+
template: string;
|
|
9
|
+
}>;
|
|
10
|
+
export declare function askCreateInitialBrowserCheck(onCancel: any): Promise<{
|
|
11
|
+
createInitialBrowserCheck: boolean;
|
|
12
|
+
}>;
|
|
13
|
+
export declare function askUserWebsite(onCancel: any): Promise<{
|
|
14
|
+
userWebsite: string;
|
|
15
|
+
}>;
|
|
16
|
+
export declare function askInstallDependencies(): Promise<{
|
|
17
|
+
installDependencies: boolean;
|
|
18
|
+
}>;
|
|
19
|
+
export declare function askInitializeGit(): Promise<{
|
|
20
|
+
initializeGit: boolean;
|
|
21
|
+
}>;
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import * as path from 'path';
|
|
2
|
+
import * as chalk from 'chalk';
|
|
3
|
+
import prompts from 'prompts';
|
|
4
|
+
import { generateProjectName, isValidProjectDirectory } from '../utils/directory.js';
|
|
5
|
+
export function askInitializeProject(onCancel) {
|
|
6
|
+
return prompts({
|
|
7
|
+
type: 'confirm',
|
|
8
|
+
name: 'initializeProject',
|
|
9
|
+
message: 'It looks like you are already in a project, would you like to initialize?',
|
|
10
|
+
initial: true,
|
|
11
|
+
}, { onCancel });
|
|
12
|
+
}
|
|
13
|
+
export function askProjectDirectory(onCancel) {
|
|
14
|
+
return prompts({
|
|
15
|
+
type: 'text',
|
|
16
|
+
name: 'projectDirectory',
|
|
17
|
+
message: 'Where do you want to create your new project?',
|
|
18
|
+
initial: generateProjectName(),
|
|
19
|
+
format: val => path.resolve(val),
|
|
20
|
+
validate(dirName) {
|
|
21
|
+
const absolutePath = path.resolve(dirName);
|
|
22
|
+
if (!isValidProjectDirectory(absolutePath)) {
|
|
23
|
+
return `"${chalk.bold(absolutePath)}" is not empty!`;
|
|
24
|
+
}
|
|
25
|
+
return true;
|
|
26
|
+
},
|
|
27
|
+
}, { onCancel });
|
|
28
|
+
}
|
|
29
|
+
export function askTemplate(onCancel) {
|
|
30
|
+
return prompts({
|
|
31
|
+
type: 'select',
|
|
32
|
+
name: 'template',
|
|
33
|
+
message: 'Which template would you like to use for your new project?',
|
|
34
|
+
choices: [
|
|
35
|
+
{ value: 'advanced-project', title: 'An advanced TypeScript project with multiple examples and best practices (recommended)' },
|
|
36
|
+
{ value: 'advanced-project-js', title: 'An advanced JavaScript project with multiple examples and best practices' },
|
|
37
|
+
{ value: 'boilerplate-project', title: 'A boilerplate TypeScript project with basic config' },
|
|
38
|
+
{ value: 'boilerplate-project-js', title: 'A boilerplate JavaScript project with basic config' },
|
|
39
|
+
],
|
|
40
|
+
}, { onCancel });
|
|
41
|
+
}
|
|
42
|
+
export function askCreateInitialBrowserCheck(onCancel) {
|
|
43
|
+
return prompts({
|
|
44
|
+
type: 'confirm',
|
|
45
|
+
name: 'createInitialBrowserCheck',
|
|
46
|
+
message: 'Would you like to create a custom Playwright-based Browser Check to check a URL?',
|
|
47
|
+
initial: true,
|
|
48
|
+
}, { onCancel });
|
|
49
|
+
}
|
|
50
|
+
export function askUserWebsite(onCancel) {
|
|
51
|
+
return prompts({
|
|
52
|
+
type: 'text',
|
|
53
|
+
name: 'userWebsite',
|
|
54
|
+
message: 'Please provide the URL of the site you want to check.',
|
|
55
|
+
}, { onCancel });
|
|
56
|
+
}
|
|
57
|
+
export function askInstallDependencies() {
|
|
58
|
+
return prompts({
|
|
59
|
+
type: 'confirm',
|
|
60
|
+
name: 'installDependencies',
|
|
61
|
+
message: 'Would you like to install NPM dependencies? (recommended)',
|
|
62
|
+
initial: true,
|
|
63
|
+
}, { onCancel: () => true });
|
|
64
|
+
}
|
|
65
|
+
export function askInitializeGit() {
|
|
66
|
+
return prompts({
|
|
67
|
+
type: 'confirm',
|
|
68
|
+
name: 'initializeGit',
|
|
69
|
+
message: 'Would you like to initialize a new git repo? (optional)',
|
|
70
|
+
initial: true,
|
|
71
|
+
}, { onCancel: () => true });
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=prompts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/utils/prompts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAA;AAC5B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,OAAO,MAAM,SAAS,CAAA;AAC7B,OAAO,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAA;AAEpF,MAAM,UAAU,oBAAoB,CAAE,QAAa;IACjD,OAAO,OAAO,CAAC;QACb,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,mBAAmB;QACzB,OAAO,EAAE,2EAA2E;QACpF,OAAO,EAAE,IAAI;KACd,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAA;AAClB,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAE,QAAa;IAChD,OAAO,OAAO,CAAC;QACb,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,kBAAkB;QACxB,OAAO,EAAE,+CAA+C;QACxD,OAAO,EAAE,mBAAmB,EAAE;QAC9B,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;QAChC,QAAQ,CAAE,OAAO;YACf,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;YAC1C,IAAI,CAAC,uBAAuB,CAAC,YAAY,CAAC,EAAE;gBAC1C,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAA;aACrD;YACD,OAAO,IAAI,CAAA;QACb,CAAC;KACF,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAA;AAClB,CAAC;AAED,MAAM,UAAU,WAAW,CAAE,QAAa;IACxC,OAAO,OAAO,CAAC;QACb,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE,4DAA4D;QACrE,OAAO,EAAE;YACP,EAAE,KAAK,EAAE,kBAAkB,EAAE,KAAK,EAAE,wFAAwF,EAAE;YAC9H,EAAE,KAAK,EAAE,qBAAqB,EAAE,KAAK,EAAE,0EAA0E,EAAE;YACnH,EAAE,KAAK,EAAE,qBAAqB,EAAE,KAAK,EAAE,oDAAoD,EAAE;YAC7F,EAAE,KAAK,EAAE,wBAAwB,EAAE,KAAK,EAAE,oDAAoD,EAAE;SACjG;KACF,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAA;AAClB,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAE,QAAa;IACzD,OAAO,OAAO,CAAC;QACb,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,2BAA2B;QACjC,OAAO,EAAE,kFAAkF;QAC3F,OAAO,EAAE,IAAI;KACd,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAA;AAClB,CAAC;AAED,MAAM,UAAU,cAAc,CAAE,QAAa;IAC3C,OAAO,OAAO,CAAC;QACb,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,aAAa;QACnB,OAAO,EAAE,uDAAuD;KACjE,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAA;AAClB,CAAC;AAED,MAAM,UAAU,sBAAsB;IACpC,OAAO,OAAO,CAAC;QACb,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,qBAAqB;QAC3B,OAAO,EAAE,2DAA2D;QACpE,OAAO,EAAE,IAAI;KACd,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,CAAA;AAC9B,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,OAAO,OAAO,CAAC;QACb,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,eAAe;QACrB,OAAO,EAAE,yDAAyD;QAClE,OAAO,EAAE,IAAI;KACd,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,CAAA;AAC9B,CAAC"}
|
package/index.mjs
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
/* eslint-disable no-console */
|
|
3
3
|
|
|
4
|
-
const currentVersion = process.versions.node
|
|
5
|
-
const requiredVersion = parseInt(currentVersion.split('.')[0], 10)
|
|
6
|
-
const minimumVersion = 16
|
|
4
|
+
const currentVersion = process.versions.node
|
|
5
|
+
const requiredVersion = parseInt(currentVersion.split('.')[0], 10)
|
|
6
|
+
const minimumVersion = 16
|
|
7
7
|
|
|
8
8
|
if (requiredVersion < minimumVersion) {
|
|
9
9
|
console.error(`You are running Node.js v${currentVersion}. The Checkly CLI requires Node.js v${minimumVersion} or higher.`)
|
|
10
|
-
process.exit(1)
|
|
10
|
+
process.exit(1)
|
|
11
11
|
}
|
|
12
12
|
|
|
13
|
-
import('./dist/index.js').then(({ main }) => main())
|
|
13
|
+
import('./dist/index.js').then(({ main }) => main())
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "create-checkly",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "4.0.10",
|
|
4
4
|
"description": "Checkly Create CLI",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -8,10 +8,12 @@
|
|
|
8
8
|
"private": false,
|
|
9
9
|
"scripts": {
|
|
10
10
|
"clean": "rimraf ./dist",
|
|
11
|
-
"
|
|
11
|
+
"prepack": "echo \"Warning: no oclif manifest configured\"",
|
|
12
12
|
"prepare": "npm run clean && tsc --build",
|
|
13
|
-
"
|
|
14
|
-
"
|
|
13
|
+
"test": "jest --selectProjects unit",
|
|
14
|
+
"test:e2e": "echo \"Warning: no test specified\"",
|
|
15
|
+
"start": "node ./index.mjs",
|
|
16
|
+
"watch": "tsc --watch"
|
|
15
17
|
},
|
|
16
18
|
"repository": {
|
|
17
19
|
"type": "git",
|
|
@@ -34,70 +36,38 @@
|
|
|
34
36
|
],
|
|
35
37
|
"homepage": "https://github.com/checkly/checkly-cli#readme",
|
|
36
38
|
"dependencies": {
|
|
37
|
-
"@oclif/core": "2.
|
|
39
|
+
"@oclif/core": "2.8.11",
|
|
38
40
|
"@oclif/plugin-help": "5.1.20",
|
|
39
41
|
"@oclif/plugin-plugins": "2.3.0",
|
|
40
|
-
"@typescript-eslint/typescript-estree": "5.46.1",
|
|
41
42
|
"axios": "1.3.1",
|
|
42
43
|
"chalk": "4.1.2",
|
|
43
44
|
"debug": "^4.3.4",
|
|
44
45
|
"execa": "^6.1.0",
|
|
45
46
|
"fullname": "4.0.1",
|
|
46
47
|
"giget": "^1.1.2",
|
|
47
|
-
"normalize-url": "8.0.0",
|
|
48
48
|
"ora": "^6.1.2",
|
|
49
49
|
"prompts": "^2.4.2",
|
|
50
50
|
"unique-names-generator": "^4.7.1",
|
|
51
51
|
"which-pm-runs": "^1.1.0"
|
|
52
52
|
},
|
|
53
53
|
"devDependencies": {
|
|
54
|
-
"@checkly/eslint-config": "0.14.1",
|
|
55
54
|
"@types/config": "3.3.0",
|
|
56
55
|
"@types/debug": "^4.1.7",
|
|
57
56
|
"@types/glob": "8.0.0",
|
|
58
57
|
"@types/jest": "29.2.4",
|
|
59
58
|
"@types/luxon": "3.2.0",
|
|
60
|
-
"@types/node": "
|
|
59
|
+
"@types/node": "20.3.3",
|
|
61
60
|
"@types/prompts": "^2.4.2",
|
|
62
61
|
"@types/uuid": "9.0.1",
|
|
63
62
|
"@types/which-pm-runs": "^1.0.0",
|
|
64
63
|
"@types/ws": "8.5.3",
|
|
65
|
-
"@typescript-eslint/eslint-plugin": "5.46.1",
|
|
66
|
-
"@typescript-eslint/parser": "5.46.1",
|
|
67
64
|
"config": "3.3.8",
|
|
68
|
-
"eslint": "8.30.0",
|
|
69
65
|
"jest": "29.3.1",
|
|
66
|
+
"rimraf": "5.0.1",
|
|
70
67
|
"ts-jest": "29.0.3",
|
|
71
68
|
"ts-node": "10.9.1",
|
|
72
69
|
"typescript": "4.9.4"
|
|
73
70
|
},
|
|
74
|
-
"eslintConfig": {
|
|
75
|
-
"rules": {
|
|
76
|
-
"@typescript-eslint/type-annotation-spacing": 2,
|
|
77
|
-
"@typescript-eslint/no-explicit-any": 0,
|
|
78
|
-
"@typescript-eslint/ban-ts-comment": 0,
|
|
79
|
-
"no-console": 2
|
|
80
|
-
},
|
|
81
|
-
"extends": [
|
|
82
|
-
"@checkly/eslint-config",
|
|
83
|
-
"plugin:@typescript-eslint/recommended"
|
|
84
|
-
],
|
|
85
|
-
"parser": "@typescript-eslint/parser",
|
|
86
|
-
"plugins": [
|
|
87
|
-
"@typescript-eslint"
|
|
88
|
-
],
|
|
89
|
-
"overrides": [
|
|
90
|
-
{
|
|
91
|
-
"files": [
|
|
92
|
-
"src/commands/*",
|
|
93
|
-
"src/reporters/*"
|
|
94
|
-
],
|
|
95
|
-
"rules": {
|
|
96
|
-
"no-console": 0
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
]
|
|
100
|
-
},
|
|
101
71
|
"jest": {
|
|
102
72
|
"projects": [
|
|
103
73
|
{
|
package/dist/utils/package.d.ts
DELETED
package/dist/utils/package.js
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import * as fs from 'fs';
|
|
2
|
-
import path from 'path';
|
|
3
|
-
export function hasPackageJsonFile() {
|
|
4
|
-
return fs.existsSync(path.join(process.cwd(), 'package.json'));
|
|
5
|
-
}
|
|
6
|
-
export function readPackageJson() {
|
|
7
|
-
return JSON.parse(fs.readFileSync('./package.json', 'utf-8'));
|
|
8
|
-
}
|
|
9
|
-
//# sourceMappingURL=package.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"package.js","sourceRoot":"","sources":["../../src/utils/package.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAA;AACxB,OAAO,IAAI,MAAM,MAAM,CAAA;AASvB,MAAM,UAAU,kBAAkB;IAChC,OAAO,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,CAAC,CAAA;AAChE,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC,CAAA;AAC/D,CAAC"}
|