Skip to content

Commit

Permalink
Merge branch 'master' into samz/code-owner
Browse files Browse the repository at this point in the history
  • Loading branch information
derberg authored Apr 24, 2024
2 parents be0f34d + 7108478 commit 10624cf
Show file tree
Hide file tree
Showing 6 changed files with 49 additions and 72 deletions.
100 changes: 40 additions & 60 deletions docs/usage.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ $ npm install -g @asyncapi/cli
$ asyncapi COMMAND
running command...
$ asyncapi (--version)
@asyncapi/cli/1.8.3 linux-x64 node-v18.20.2
@asyncapi/cli/1.8.4 linux-x64 node-v18.20.2
$ asyncapi --help [COMMAND]
USAGE
$ asyncapi COMMAND
Expand All @@ -53,12 +53,11 @@ USAGE
* [`asyncapi convert [SPEC-FILE]`](#asyncapi-convert-spec-file)
* [`asyncapi diff OLD NEW`](#asyncapi-diff-old-new)
* [`asyncapi generate`](#asyncapi-generate)
* [`asyncapi generate fromTemplate ASYNCAPI TEMPLATE`](#asyncapi-generate-fromtemplate-asyncapi-template)
* [`asyncapi generate models LANGUAGE FILE`](#asyncapi-generate-models-language-file)
* [`asyncapi generate fromTemplate [ASYNCAPI] [TEMPLATE]`](#asyncapi-generate-fromtemplate-asyncapi-template)
* [`asyncapi generate models [LANGUAGE] [FILE]`](#asyncapi-generate-models-language-file)
* [`asyncapi new`](#asyncapi-new)
* [`asyncapi new file`](#asyncapi-new-file)
* [`asyncapi new glee`](#asyncapi-new-glee)
* [`asyncapi new project`](#asyncapi-new-project)
* [`asyncapi optimize [SPEC-FILE]`](#asyncapi-optimize-spec-file)
* [`asyncapi start`](#asyncapi-start)
* [`asyncapi start studio`](#asyncapi-start-studio)
Expand Down Expand Up @@ -92,7 +91,7 @@ EXAMPLES
$ asyncapi bundle ./asyncapi.yaml ./features.yaml --base ./asyncapi.yaml --reference-into-components
```

_See code: [src/commands/bundle.ts](https://github.com/asyncapi/cli/blob/v1.8.3/src/commands/bundle.ts)_
_See code: [src/commands/bundle.ts](https://github.com/asyncapi/cli/blob/v1.8.4/src/commands/bundle.ts)_

## `asyncapi config`

Expand All @@ -106,7 +105,7 @@ DESCRIPTION
CLI config settings
```

_See code: [src/commands/config/index.ts](https://github.com/asyncapi/cli/blob/v1.8.3/src/commands/config/index.ts)_
_See code: [src/commands/config/index.ts](https://github.com/asyncapi/cli/blob/v1.8.4/src/commands/config/index.ts)_

## `asyncapi config analytics`

Expand All @@ -125,7 +124,7 @@ DESCRIPTION
Enable or disable analytics for metrics collection
```

_See code: [src/commands/config/analytics.ts](https://github.com/asyncapi/cli/blob/v1.8.3/src/commands/config/analytics.ts)_
_See code: [src/commands/config/analytics.ts](https://github.com/asyncapi/cli/blob/v1.8.4/src/commands/config/analytics.ts)_

## `asyncapi config context`

Expand All @@ -139,7 +138,7 @@ DESCRIPTION
Manage short aliases for full paths to AsyncAPI documents
```

_See code: [src/commands/config/context/index.ts](https://github.com/asyncapi/cli/blob/v1.8.3/src/commands/config/context/index.ts)_
_See code: [src/commands/config/context/index.ts](https://github.com/asyncapi/cli/blob/v1.8.4/src/commands/config/context/index.ts)_

## `asyncapi config context add CONTEXT-NAME SPEC-FILE-PATH`

Expand All @@ -161,7 +160,7 @@ DESCRIPTION
Add a context to the store
```

_See code: [src/commands/config/context/add.ts](https://github.com/asyncapi/cli/blob/v1.8.3/src/commands/config/context/add.ts)_
_See code: [src/commands/config/context/add.ts](https://github.com/asyncapi/cli/blob/v1.8.4/src/commands/config/context/add.ts)_

## `asyncapi config context current`

Expand All @@ -178,7 +177,7 @@ DESCRIPTION
Shows the current context that is being used
```

_See code: [src/commands/config/context/current.ts](https://github.com/asyncapi/cli/blob/v1.8.3/src/commands/config/context/current.ts)_
_See code: [src/commands/config/context/current.ts](https://github.com/asyncapi/cli/blob/v1.8.4/src/commands/config/context/current.ts)_

## `asyncapi config context edit CONTEXT-NAME NEW-SPEC-FILE-PATH`

Expand All @@ -199,7 +198,7 @@ DESCRIPTION
Edit a context in the store
```

_See code: [src/commands/config/context/edit.ts](https://github.com/asyncapi/cli/blob/v1.8.3/src/commands/config/context/edit.ts)_
_See code: [src/commands/config/context/edit.ts](https://github.com/asyncapi/cli/blob/v1.8.4/src/commands/config/context/edit.ts)_

## `asyncapi config context init [CONTEXT-FILE-PATH]`

Expand All @@ -222,7 +221,7 @@ DESCRIPTION
Initialize context
```

_See code: [src/commands/config/context/init.ts](https://github.com/asyncapi/cli/blob/v1.8.3/src/commands/config/context/init.ts)_
_See code: [src/commands/config/context/init.ts](https://github.com/asyncapi/cli/blob/v1.8.4/src/commands/config/context/init.ts)_

## `asyncapi config context list`

Expand All @@ -239,7 +238,7 @@ DESCRIPTION
List all the stored contexts in the store
```

_See code: [src/commands/config/context/list.ts](https://github.com/asyncapi/cli/blob/v1.8.3/src/commands/config/context/list.ts)_
_See code: [src/commands/config/context/list.ts](https://github.com/asyncapi/cli/blob/v1.8.4/src/commands/config/context/list.ts)_

## `asyncapi config context remove CONTEXT-NAME`

Expand All @@ -259,7 +258,7 @@ DESCRIPTION
Delete a context from the store
```

_See code: [src/commands/config/context/remove.ts](https://github.com/asyncapi/cli/blob/v1.8.3/src/commands/config/context/remove.ts)_
_See code: [src/commands/config/context/remove.ts](https://github.com/asyncapi/cli/blob/v1.8.4/src/commands/config/context/remove.ts)_

## `asyncapi config context use CONTEXT-NAME`

Expand All @@ -279,7 +278,7 @@ DESCRIPTION
Set a context as current
```

_See code: [src/commands/config/context/use.ts](https://github.com/asyncapi/cli/blob/v1.8.3/src/commands/config/context/use.ts)_
_See code: [src/commands/config/context/use.ts](https://github.com/asyncapi/cli/blob/v1.8.4/src/commands/config/context/use.ts)_

## `asyncapi config versions`

Expand All @@ -296,7 +295,7 @@ DESCRIPTION
Show versions of AsyncAPI tools used
```

_See code: [src/commands/config/versions.ts](https://github.com/asyncapi/cli/blob/v1.8.3/src/commands/config/versions.ts)_
_See code: [src/commands/config/versions.ts](https://github.com/asyncapi/cli/blob/v1.8.4/src/commands/config/versions.ts)_

## `asyncapi convert [SPEC-FILE]`

Expand All @@ -318,7 +317,7 @@ DESCRIPTION
Convert asyncapi documents older to newer versions
```

_See code: [src/commands/convert.ts](https://github.com/asyncapi/cli/blob/v1.8.3/src/commands/convert.ts)_
_See code: [src/commands/convert.ts](https://github.com/asyncapi/cli/blob/v1.8.4/src/commands/convert.ts)_

## `asyncapi diff OLD NEW`

Expand Down Expand Up @@ -373,7 +372,7 @@ DESCRIPTION
Find diff between two asyncapi files
```

_See code: [src/commands/diff.ts](https://github.com/asyncapi/cli/blob/v1.8.3/src/commands/diff.ts)_
_See code: [src/commands/diff.ts](https://github.com/asyncapi/cli/blob/v1.8.4/src/commands/diff.ts)_

## `asyncapi generate`

Expand All @@ -387,16 +386,16 @@ DESCRIPTION
Generate typed models or other things like clients, applications or docs using AsyncAPI Generator templates.
```

_See code: [src/commands/generate/index.ts](https://github.com/asyncapi/cli/blob/v1.8.3/src/commands/generate/index.ts)_
_See code: [src/commands/generate/index.ts](https://github.com/asyncapi/cli/blob/v1.8.4/src/commands/generate/index.ts)_

## `asyncapi generate fromTemplate ASYNCAPI TEMPLATE`
## `asyncapi generate fromTemplate [ASYNCAPI] [TEMPLATE]`

Generates whatever you want using templates compatible with AsyncAPI Generator.

```
USAGE
$ asyncapi generate fromTemplate ASYNCAPI TEMPLATE [-h] [-d <value>] [-i] [--debug] [-n <value>] [-o <value>]
[--force-write] [-w] [-p <value>] [--map-base-url <value>]
$ asyncapi generate fromTemplate [ASYNCAPI] [TEMPLATE] [-h] [-d <value>] [--no-interactive] [-i] [--debug] [-n <value>]
[-o <value>] [--force-write] [-w] [-p <value>] [--map-base-url <value>]
ARGUMENTS
ASYNCAPI - Local path, url or context-name pointing to AsyncAPI file
Expand All @@ -416,6 +415,7 @@ FLAGS
--force-write Force writing of the generated files to given directory even if it is a git repo with
unstaged files or not empty dir (defaults to false)
--map-base-url=<value> Maps all schema references from base url to local folder
--no-interactive Disable interactive mode and run with the provided flags.
DESCRIPTION
Generates whatever you want using templates compatible with AsyncAPI Generator.
Expand All @@ -424,20 +424,20 @@ EXAMPLES
$ asyncapi generate fromTemplate asyncapi.yaml @asyncapi/html-template --param version=1.0.0 singleFile=true --output ./docs --force-write
```

_See code: [src/commands/generate/fromTemplate.ts](https://github.com/asyncapi/cli/blob/v1.8.3/src/commands/generate/fromTemplate.ts)_
_See code: [src/commands/generate/fromTemplate.ts](https://github.com/asyncapi/cli/blob/v1.8.4/src/commands/generate/fromTemplate.ts)_

## `asyncapi generate models LANGUAGE FILE`
## `asyncapi generate models [LANGUAGE] [FILE]`

Generates typed models

```
USAGE
$ asyncapi generate models LANGUAGE FILE [-h] [-o <value>] [--tsModelType class|interface] [--tsEnumType
enum|union] [--tsModuleSystem ESM|CJS] [--tsIncludeComments] [--tsExportType default|named] [--tsJsonBinPack]
[--tsMarshalling] [--tsExampleInstance] [--packageName <value>] [--javaIncludeComments] [--javaJackson]
[--javaConstraints] [--namespace <value>] [--csharpAutoImplement] [--csharpNewtonsoft] [--csharpArrayType
Array|List] [--csharpHashcode] [--csharpEqual] [--csharpSystemJson] [--log-diagnostics] [--diagnostics-format
json|stylish|junit|html|text|teamcity|pretty] [--fail-severity error|warn|info|hint]
$ asyncapi generate models [LANGUAGE] [FILE] [-h] [--no-interactive] [-o <value>] [--tsModelType class|interface]
[--tsEnumType enum|union] [--tsModuleSystem ESM|CJS] [--tsIncludeComments] [--tsExportType default|named]
[--tsJsonBinPack] [--tsMarshalling] [--tsExampleInstance] [--packageName <value>] [--javaIncludeComments]
[--javaJackson] [--javaConstraints] [--namespace <value>] [--csharpAutoImplement] [--csharpNewtonsoft]
[--csharpArrayType Array|List] [--csharpHashcode] [--csharpEqual] [--csharpSystemJson] [--log-diagnostics]
[--diagnostics-format json|stylish|junit|html|text|teamcity|pretty] [--fail-severity error|warn|info|hint]
ARGUMENTS
LANGUAGE (typescript|csharp|golang|java|javascript|dart|python|rust|kotlin|php|cplusplus) The language you want the
Expand Down Expand Up @@ -477,6 +477,8 @@ FLAGS
namespace to use for the generated models.
This is required when language is
`csharp`,`c++` or `php`.
--no-interactive Disable interactive mode and run with the
provided flags.
--packageName=<value> Go, Java and Kotlin specific, define the
package to use for the generated models. This
is required when language is `go`, `java` or
Expand Down Expand Up @@ -508,7 +510,7 @@ DESCRIPTION
Generates typed models
```

_See code: [src/commands/generate/models.ts](https://github.com/asyncapi/cli/blob/v1.8.3/src/commands/generate/models.ts)_
_See code: [src/commands/generate/models.ts](https://github.com/asyncapi/cli/blob/v1.8.4/src/commands/generate/models.ts)_

## `asyncapi new`

Expand Down Expand Up @@ -565,7 +567,7 @@ EXAMPLES
$ asyncapi new --file-name=my-asyncapi.yml --example=default-example.yml --no-tty - create a new file with a specific name, using one of the examples and without interactive mode
```

_See code: [src/commands/new/index.ts](https://github.com/asyncapi/cli/blob/v1.8.3/src/commands/new/index.ts)_
_See code: [src/commands/new/index.ts](https://github.com/asyncapi/cli/blob/v1.8.4/src/commands/new/index.ts)_

## `asyncapi new file`

Expand Down Expand Up @@ -622,7 +624,7 @@ EXAMPLES
$ asyncapi new --file-name=my-asyncapi.yml --example=default-example.yml --no-tty - create a new file with a specific name, using one of the examples and without interactive mode
```

_See code: [src/commands/new/file.ts](https://github.com/asyncapi/cli/blob/v1.8.3/src/commands/new/file.ts)_
_See code: [src/commands/new/file.ts](https://github.com/asyncapi/cli/blob/v1.8.4/src/commands/new/file.ts)_

## `asyncapi new glee`

Expand All @@ -644,29 +646,7 @@ DESCRIPTION
Creates a new Glee project
```

_See code: [src/commands/new/glee.ts](https://github.com/asyncapi/cli/blob/v1.8.3/src/commands/new/glee.ts)_

## `asyncapi new project`

Creates a new Glee project

```
USAGE
$ asyncapi new project [-h] [-n <value>] [-t <value>] [-f <value>] [--force-write]
FLAGS
-f, --file=<value> The path to the AsyncAPI file for generating a Glee project.
-h, --help Show CLI help.
-n, --name=<value> [default: project] Name of the Project
-t, --template=<value> [default: default] Name of the Template
--force-write Force writing of the generated files to given directory even if it is a git repo with unstaged
files or not empty dir (defaults to false)
DESCRIPTION
Creates a new Glee project
```

_See code: [src/commands/new/project.ts](https://github.com/asyncapi/cli/blob/v1.8.3/src/commands/new/project.ts)_
_See code: [src/commands/new/glee.ts](https://github.com/asyncapi/cli/blob/v1.8.4/src/commands/new/glee.ts)_

## `asyncapi optimize [SPEC-FILE]`

Expand Down Expand Up @@ -702,7 +682,7 @@ EXAMPLES
$ asyncapi optimize ./asyncapi.yaml --optimization=remove-components --output=terminal --no-tty
```

_See code: [src/commands/optimize.ts](https://github.com/asyncapi/cli/blob/v1.8.3/src/commands/optimize.ts)_
_See code: [src/commands/optimize.ts](https://github.com/asyncapi/cli/blob/v1.8.4/src/commands/optimize.ts)_

## `asyncapi start`

Expand All @@ -716,7 +696,7 @@ DESCRIPTION
Start asyncapi studio
```

_See code: [src/commands/start/index.ts](https://github.com/asyncapi/cli/blob/v1.8.3/src/commands/start/index.ts)_
_See code: [src/commands/start/index.ts](https://github.com/asyncapi/cli/blob/v1.8.4/src/commands/start/index.ts)_

## `asyncapi start studio`

Expand All @@ -735,7 +715,7 @@ DESCRIPTION
starts a new local instance of Studio
```

_See code: [src/commands/start/studio.ts](https://github.com/asyncapi/cli/blob/v1.8.3/src/commands/start/studio.ts)_
_See code: [src/commands/start/studio.ts](https://github.com/asyncapi/cli/blob/v1.8.4/src/commands/start/studio.ts)_

## `asyncapi validate [SPEC-FILE]`

Expand All @@ -762,5 +742,5 @@ DESCRIPTION
validate asyncapi file
```

_See code: [src/commands/validate.ts](https://github.com/asyncapi/cli/blob/v1.8.3/src/commands/validate.ts)_
_See code: [src/commands/validate.ts](https://github.com/asyncapi/cli/blob/v1.8.4/src/commands/validate.ts)_
<!-- commandsstop -->
4 changes: 2 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "@asyncapi/cli",
"description": "All in one CLI for all AsyncAPI tools",
"version": "1.8.4",
"version": "1.9.0",
"author": "@asyncapi",
"bin": {
"asyncapi": "./bin/run_bin"
Expand Down
5 changes: 3 additions & 2 deletions src/base.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import { join, resolve } from 'path';
import { existsSync } from 'fs-extra';
import { promises as fPromises } from 'fs';
import { v4 as uuidv4 } from 'uuid';
import { homedir } from 'os';

const { readFile, writeFile } = fPromises;

Expand Down Expand Up @@ -86,7 +87,7 @@ export default abstract class extends Command {

async recorderFromEnv(prefix: string): Promise<Recorder> {
let sink: Sink = new DiscardSink();
const analyticsConfigFile = join(process.cwd(), '.asyncapi-analytics');
const analyticsConfigFile = join(homedir(), '.asyncapi-analytics');

if (!existsSync(analyticsConfigFile)) {
await writeFile(analyticsConfigFile, JSON.stringify({ analyticsEnabled: 'true', infoMessageShown: 'false', userID: uuidv4()}), { encoding: 'utf8' });
Expand All @@ -109,7 +110,7 @@ export default abstract class extends Command {
sink = new NewRelicSink(process.env.ASYNCAPI_METRICS_NEWRELIC_KEY || 'eu01xx73a8521047150dd9414f6aedd2FFFFNRAL');

if (analyticsConfigFileContent.infoMessageShown === 'false') {
this.log('\nAsyncAPI anonymously tracks command executions to improve the specification and tools, ensuring no sensitive data reaches our servers. It aids in comprehending how AsyncAPI tools are used and adopted, facilitating ongoing improvements to our specifications and tools.\n\nTo disable tracking, please run the following command:\n asyncapi config analytics --disable\n\nOnce disabled, if you want to enable tracking back again then run:\n asyncapi config analytics --enable');
this.log('\nAsyncAPI anonymously tracks command executions to improve the specification and tools, ensuring no sensitive data reaches our servers. It aids in comprehending how AsyncAPI tools are used and adopted, facilitating ongoing improvements to our specifications and tools.\n\nTo disable tracking, please run the following command:\n asyncapi config analytics --disable\n\nOnce disabled, if you want to enable tracking back again then run:\n asyncapi config analytics --enable\n');
analyticsConfigFileContent.infoMessageShown = 'true';
await writeFile(analyticsConfigFile, JSON.stringify(analyticsConfigFileContent), { encoding: 'utf8' });
}
Expand Down
5 changes: 3 additions & 2 deletions src/commands/config/analytics.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import { Flags } from '@oclif/core';
import { join, resolve } from 'path';
import Command from '../../base';
import { promises as fPromises } from 'fs';
import { homedir } from 'os';

const { readFile, writeFile } = fPromises;

Expand All @@ -15,7 +16,7 @@ export default class Analytics extends Command {

async run() {
const { flags } = await this.parse(Analytics);
const analyticsConfigFile = join(process.cwd(), '.asyncapi-analytics');
const analyticsConfigFile = join(homedir(), '.asyncapi-analytics');

try {
const analyticsConfigFileContent = JSON.parse(await readFile(resolve(analyticsConfigFile), { encoding: 'utf8' }));
Expand All @@ -34,7 +35,7 @@ export default class Analytics extends Command {
} catch (e: any) {
switch (e.code) {
case 'ENOENT':
this.error(`Unable to access the analytics configuration file. We tried to access the ".asyncapi-analytics" file in your current working directory ("${process.cwd()}") but the file could not be found.`);
this.error(`Unable to access the analytics configuration file. We tried to access the ".asyncapi-analytics" file in your user's home directory ("${homedir()}") but the file could not be found.`);
break;
case 'EEXIST':
this.error(`Unable to update the analytics configuration file. We tried to update your ".asyncapi-analytics" file in the path "${analyticsConfigFile}" but the file does not exist.`);
Expand Down
5 changes: 0 additions & 5 deletions test/integration/config/analytics.test.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,6 @@
import { expect, test } from '@oclif/test';
import { fileCleanup } from '../../helpers';

describe('config:analytics', () => {
afterEach(() => {
fileCleanup('.asyncapi-analytics');
});

describe('with disable flag', () => {
test
.stderr()
Expand Down

0 comments on commit 10624cf

Please sign in to comment.