@qodalis/cli-qr 0.0.1 → 0.0.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.
@@ -1,5 +1,5 @@
1
1
  import { Injectable } from '@angular/core';
2
- import { DefaultLibraryAuthor, } from '@qodalis/cli-core';
2
+ import { CliForegroundColor, DefaultLibraryAuthor, } from '@qodalis/cli-core';
3
3
  import QRCodeStyling from 'qr-code-styling';
4
4
  import { LIBRARY_VERSION } from '../version';
5
5
  import * as i0 from "@angular/core";
@@ -59,7 +59,19 @@ export class CliQrCommandProcessor {
59
59
  context.executor.showHelp(command, context);
60
60
  }
61
61
  writeDescription(context) {
62
- context.writer.writeln(this.description);
62
+ const { writer } = context;
63
+ writer.writeln('Generate QR codes from text or URLs and download as PNG');
64
+ writer.writeln();
65
+ writer.writeln('📋 Usage:');
66
+ writer.writeln(` ${writer.wrapInColor('qr generate --text="<content>"', CliForegroundColor.Cyan)}`);
67
+ writer.writeln();
68
+ writer.writeln('⚙️ Options:');
69
+ writer.writeln(` ${writer.wrapInColor('--text', CliForegroundColor.Yellow)} Text or URL to encode (required)`);
70
+ writer.writeln(` ${writer.wrapInColor('--fileName', CliForegroundColor.Yellow)} Output filename (default: qr-code)`);
71
+ writer.writeln();
72
+ writer.writeln('📝 Examples:');
73
+ writer.writeln(` qr generate --text="https://example.com" ${writer.wrapInColor('# URL QR code', CliForegroundColor.Green)}`);
74
+ writer.writeln(` qr generate --text="Hello!" --fileName="my-qr" ${writer.wrapInColor('# Custom filename', CliForegroundColor.Green)}`);
63
75
  }
64
76
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CliQrCommandProcessor, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
65
77
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CliQrCommandProcessor }); }
@@ -67,4 +79,4 @@ export class CliQrCommandProcessor {
67
79
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CliQrCommandProcessor, decorators: [{
68
80
  type: Injectable
69
81
  }], ctorParameters: function () { return []; } });
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLXFyLWNvbW1hbmQtcHJvY2Vzc29yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcXIvc3JjL2xpYi9wcm9jZXNzb3JzL2NsaS1xci1jb21tYW5kLXByb2Nlc3Nvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFFSCxvQkFBb0IsR0FHdkIsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQixPQUFPLGFBQWEsTUFBTSxpQkFBaUIsQ0FBQztBQUM1QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sWUFBWSxDQUFDOztBQUc3QyxNQUFNLE9BQU8scUJBQXFCO0lBWTlCO1FBWEEsWUFBTyxHQUFHLElBQUksQ0FBQztRQUVmLGdCQUFXLEdBQ1Asb0hBQW9ILENBQUM7UUFFekgsV0FBTSxHQUFHLG9CQUFvQixDQUFDO1FBRTlCLFlBQU8sR0FBRyxlQUFlLENBQUM7UUFFMUIsZUFBVSxHQUF3QyxFQUFFLENBQUM7UUFHakQsSUFBSSxDQUFDLFVBQVUsR0FBRztZQUNkO2dCQUNJLE9BQU8sRUFBRSxVQUFVO2dCQUNuQixXQUFXLEVBQ1AsNEZBQTRGO2dCQUNoRyxVQUFVLEVBQUU7b0JBQ1I7d0JBQ0ksSUFBSSxFQUFFLE1BQU07d0JBQ1osV0FBVyxFQUFFLG9DQUFvQzt3QkFDakQsSUFBSSxFQUFFLFFBQVE7d0JBQ2QsUUFBUSxFQUFFLElBQUk7cUJBQ2pCO29CQUNEO3dCQUNJLElBQUksRUFBRSxVQUFVO3dCQUNoQixXQUFXLEVBQUUsZUFBZTt3QkFDNUIsSUFBSSxFQUFFLFFBQVE7d0JBQ2QsUUFBUSxFQUFFLEtBQUs7cUJBQ2xCO2lCQUNKO2dCQUNELGNBQWMsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxFQUFFO29CQUN2QyxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUVsQyxJQUFJLENBQUMsSUFBSSxFQUFFO3dCQUNQLE9BQU8sQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUNyQixvQ0FBb0MsQ0FDdkMsQ0FBQzt3QkFDRixPQUFPO3FCQUNWO29CQUVELE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksU0FBUyxDQUFDO29CQUV2RCxJQUFJO3dCQUNBLE1BQU0sTUFBTSxHQUFHLElBQUksYUFBYSxDQUFDOzRCQUM3QixLQUFLLEVBQUUsR0FBRzs0QkFDVixNQUFNLEVBQUUsR0FBRzs0QkFDWCxJQUFJLEVBQUUsSUFBSTs0QkFDVixJQUFJLEVBQUUsS0FBSzt5QkFDZCxDQUFDLENBQUM7d0JBRUgsTUFBTSxNQUFNLENBQUMsUUFBUSxDQUFDOzRCQUNsQixJQUFJLEVBQUUsUUFBUTs0QkFDZCxTQUFTLEVBQUUsS0FBSzt5QkFDbkIsQ0FBQyxDQUFDO3dCQUVILE9BQU8sQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUN2QixnQkFBZ0IsSUFBSSxtQkFBbUIsUUFBUSxNQUFNLENBQ3hELENBQUM7cUJBQ0w7b0JBQUMsT0FBTyxHQUFHLEVBQUU7d0JBQ1YsT0FBTyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQ3JCLCtCQUErQixHQUFHLEVBQUUsQ0FDdkMsQ0FBQztxQkFDTDtnQkFDTCxDQUFDO2FBQ0o7U0FDSixDQUFDO0lBQ04sQ0FBQztJQUVELEtBQUssQ0FBQyxjQUFjLENBQ2hCLE9BQTBCLEVBQzFCLE9BQTZCO1FBRTdCLE9BQU8sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsT0FBNkI7UUFDMUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVksQ0FBQyxDQUFDO0lBQzlDLENBQUM7K0dBL0VRLHFCQUFxQjttSEFBckIscUJBQXFCOzs0RkFBckIscUJBQXFCO2tCQURqQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBDbGlQcm9jZXNzQ29tbWFuZCxcbiAgICBEZWZhdWx0TGlicmFyeUF1dGhvcixcbiAgICBJQ2xpQ29tbWFuZFByb2Nlc3NvcixcbiAgICBJQ2xpRXhlY3V0aW9uQ29udGV4dCxcbn0gZnJvbSAnQHFvZGFsaXMvY2xpLWNvcmUnO1xuaW1wb3J0IFFSQ29kZVN0eWxpbmcgZnJvbSAncXItY29kZS1zdHlsaW5nJztcbmltcG9ydCB7IExJQlJBUllfVkVSU0lPTiB9IGZyb20gJy4uL3ZlcnNpb24nO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQ2xpUXJDb21tYW5kUHJvY2Vzc29yIGltcGxlbWVudHMgSUNsaUNvbW1hbmRQcm9jZXNzb3Ige1xuICAgIGNvbW1hbmQgPSAncXInO1xuXG4gICAgZGVzY3JpcHRpb24gPVxuICAgICAgICAnUHJvdmlkZSB1dGlsaXR5IGZ1bmN0aW9ucyB0byBnZW5lcmF0ZSBRUiBjb2Rlcy4gVXNhZ2U6IHFyIGdlbmVyYXRlIC0tdGV4dCBcImh0dHBzOi8vZXhhbXBsZS5jb21cIiAtLWZpbGVOYW1lIFwibXktcXJcIic7XG5cbiAgICBhdXRob3IgPSBEZWZhdWx0TGlicmFyeUF1dGhvcjtcblxuICAgIHZlcnNpb24gPSBMSUJSQVJZX1ZFUlNJT047XG5cbiAgICBwcm9jZXNzb3JzPzogSUNsaUNvbW1hbmRQcm9jZXNzb3JbXSB8IHVuZGVmaW5lZCA9IFtdO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMucHJvY2Vzc29ycyA9IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjb21tYW5kOiAnZ2VuZXJhdGUnLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICAgICAgICAgICAgICAnR2VuZXJhdGUgYSBRUiBjb2RlIGFuZCBkb3dubG9hZCBpdCBhcyBQTkcuIFVzYWdlOiBxciBnZW5lcmF0ZSAtLXRleHQgXCJodHRwczovL2V4YW1wbGUuY29tXCInLFxuICAgICAgICAgICAgICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogJ3RleHQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdUZXh0IG9yIFVSTCB0byBlbmNvZGUgYXMgYSBRUiBjb2RlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICdmaWxlTmFtZScsXG4gICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ3RoZSBmaWxlIG5hbWUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICBwcm9jZXNzQ29tbWFuZDogYXN5bmMgKGNvbW1hbmQsIGNvbnRleHQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGV4dCA9IGNvbW1hbmQuYXJnc1sndGV4dCddO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmICghdGV4dCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dC53cml0ZXIud3JpdGVFcnJvcihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnTWlzc2luZyByZXF1aXJlZCBwYXJhbWV0ZXI6IC0tdGV4dCcsXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZmlsZU5hbWUgPSBjb21tYW5kLmFyZ3NbJ2ZpbGVOYW1lJ10gfHwgJ3FyLWNvZGUnO1xuXG4gICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBxckNvZGUgPSBuZXcgUVJDb2RlU3R5bGluZyh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDMwMCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDMwMCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiB0ZXh0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdzdmcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IHFyQ29kZS5kb3dubG9hZCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogZmlsZU5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXh0ZW5zaW9uOiAncG5nJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0LndyaXRlci53cml0ZVN1Y2Nlc3MoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYFFSIENvZGUgZm9yIFwiJHt0ZXh0fVwiIGRvd25sb2FkZWQgYXMgJHtmaWxlTmFtZX0ucG5nYCxcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dC53cml0ZXIud3JpdGVFcnJvcihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBgRmFpbGVkIHRvIGdlbmVyYXRlIFFSIGNvZGU6ICR7ZXJyfWAsXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIF07XG4gICAgfVxuXG4gICAgYXN5bmMgcHJvY2Vzc0NvbW1hbmQoXG4gICAgICAgIGNvbW1hbmQ6IENsaVByb2Nlc3NDb21tYW5kLFxuICAgICAgICBjb250ZXh0OiBJQ2xpRXhlY3V0aW9uQ29udGV4dCxcbiAgICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29udGV4dC5leGVjdXRvci5zaG93SGVscChjb21tYW5kLCBjb250ZXh0KTtcbiAgICB9XG5cbiAgICB3cml0ZURlc2NyaXB0aW9uKGNvbnRleHQ6IElDbGlFeGVjdXRpb25Db250ZXh0KTogdm9pZCB7XG4gICAgICAgIGNvbnRleHQud3JpdGVyLndyaXRlbG4odGhpcy5kZXNjcmlwdGlvbiEpO1xuICAgIH1cbn1cbiJdfQ==
82
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLXFyLWNvbW1hbmQtcHJvY2Vzc29yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcXIvc3JjL2xpYi9wcm9jZXNzb3JzL2NsaS1xci1jb21tYW5kLXByb2Nlc3Nvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFDSCxrQkFBa0IsRUFFbEIsb0JBQW9CLEdBR3ZCLE1BQU0sbUJBQW1CLENBQUM7QUFDM0IsT0FBTyxhQUFhLE1BQU0saUJBQWlCLENBQUM7QUFDNUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLFlBQVksQ0FBQzs7QUFHN0MsTUFBTSxPQUFPLHFCQUFxQjtJQVk5QjtRQVhBLFlBQU8sR0FBRyxJQUFJLENBQUM7UUFFZixnQkFBVyxHQUNQLG9IQUFvSCxDQUFDO1FBRXpILFdBQU0sR0FBRyxvQkFBb0IsQ0FBQztRQUU5QixZQUFPLEdBQUcsZUFBZSxDQUFDO1FBRTFCLGVBQVUsR0FBd0MsRUFBRSxDQUFDO1FBR2pELElBQUksQ0FBQyxVQUFVLEdBQUc7WUFDZDtnQkFDSSxPQUFPLEVBQUUsVUFBVTtnQkFDbkIsV0FBVyxFQUNQLDRGQUE0RjtnQkFDaEcsVUFBVSxFQUFFO29CQUNSO3dCQUNJLElBQUksRUFBRSxNQUFNO3dCQUNaLFdBQVcsRUFBRSxvQ0FBb0M7d0JBQ2pELElBQUksRUFBRSxRQUFRO3dCQUNkLFFBQVEsRUFBRSxJQUFJO3FCQUNqQjtvQkFDRDt3QkFDSSxJQUFJLEVBQUUsVUFBVTt3QkFDaEIsV0FBVyxFQUFFLGVBQWU7d0JBQzVCLElBQUksRUFBRSxRQUFRO3dCQUNkLFFBQVEsRUFBRSxLQUFLO3FCQUNsQjtpQkFDSjtnQkFDRCxjQUFjLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsRUFBRTtvQkFDdkMsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFFbEMsSUFBSSxDQUFDLElBQUksRUFBRTt3QkFDUCxPQUFPLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FDckIsb0NBQW9DLENBQ3ZDLENBQUM7d0JBQ0YsT0FBTztxQkFDVjtvQkFFRCxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLFNBQVMsQ0FBQztvQkFFdkQsSUFBSTt3QkFDQSxNQUFNLE1BQU0sR0FBRyxJQUFJLGFBQWEsQ0FBQzs0QkFDN0IsS0FBSyxFQUFFLEdBQUc7NEJBQ1YsTUFBTSxFQUFFLEdBQUc7NEJBQ1gsSUFBSSxFQUFFLElBQUk7NEJBQ1YsSUFBSSxFQUFFLEtBQUs7eUJBQ2QsQ0FBQyxDQUFDO3dCQUVILE1BQU0sTUFBTSxDQUFDLFFBQVEsQ0FBQzs0QkFDbEIsSUFBSSxFQUFFLFFBQVE7NEJBQ2QsU0FBUyxFQUFFLEtBQUs7eUJBQ25CLENBQUMsQ0FBQzt3QkFFSCxPQUFPLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FDdkIsZ0JBQWdCLElBQUksbUJBQW1CLFFBQVEsTUFBTSxDQUN4RCxDQUFDO3FCQUNMO29CQUFDLE9BQU8sR0FBRyxFQUFFO3dCQUNWLE9BQU8sQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUNyQiwrQkFBK0IsR0FBRyxFQUFFLENBQ3ZDLENBQUM7cUJBQ0w7Z0JBQ0wsQ0FBQzthQUNKO1NBQ0osQ0FBQztJQUNOLENBQUM7SUFFRCxLQUFLLENBQUMsY0FBYyxDQUNoQixPQUEwQixFQUMxQixPQUE2QjtRQUU3QixPQUFPLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVELGdCQUFnQixDQUFDLE9BQTZCO1FBQzFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUM7UUFDM0IsTUFBTSxDQUFDLE9BQU8sQ0FBQyx5REFBeUQsQ0FBQyxDQUFDO1FBQzFFLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNqQixNQUFNLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzVCLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxNQUFNLENBQUMsV0FBVyxDQUFDLGdDQUFnQyxFQUFFLGtCQUFrQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNyRyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDakIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUMvQixNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssTUFBTSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsa0JBQWtCLENBQUMsTUFBTSxDQUFDLDRDQUE0QyxDQUFDLENBQUM7UUFDekgsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLE1BQU0sQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLGtCQUFrQixDQUFDLE1BQU0sQ0FBQywwQ0FBMEMsQ0FBQyxDQUFDO1FBQzNILE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNqQixNQUFNLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQy9CLE1BQU0sQ0FBQyxPQUFPLENBQUMsNkRBQTZELE1BQU0sQ0FBQyxXQUFXLENBQUMsZUFBZSxFQUFFLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM3SSxNQUFNLENBQUMsT0FBTyxDQUFDLDZEQUE2RCxNQUFNLENBQUMsV0FBVyxDQUFDLG1CQUFtQixFQUFFLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNySixDQUFDOytHQTNGUSxxQkFBcUI7bUhBQXJCLHFCQUFxQjs7NEZBQXJCLHFCQUFxQjtrQkFEakMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgQ2xpRm9yZWdyb3VuZENvbG9yLFxuICAgIENsaVByb2Nlc3NDb21tYW5kLFxuICAgIERlZmF1bHRMaWJyYXJ5QXV0aG9yLFxuICAgIElDbGlDb21tYW5kUHJvY2Vzc29yLFxuICAgIElDbGlFeGVjdXRpb25Db250ZXh0LFxufSBmcm9tICdAcW9kYWxpcy9jbGktY29yZSc7XG5pbXBvcnQgUVJDb2RlU3R5bGluZyBmcm9tICdxci1jb2RlLXN0eWxpbmcnO1xuaW1wb3J0IHsgTElCUkFSWV9WRVJTSU9OIH0gZnJvbSAnLi4vdmVyc2lvbic7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDbGlRckNvbW1hbmRQcm9jZXNzb3IgaW1wbGVtZW50cyBJQ2xpQ29tbWFuZFByb2Nlc3NvciB7XG4gICAgY29tbWFuZCA9ICdxcic7XG5cbiAgICBkZXNjcmlwdGlvbiA9XG4gICAgICAgICdQcm92aWRlIHV0aWxpdHkgZnVuY3Rpb25zIHRvIGdlbmVyYXRlIFFSIGNvZGVzLiBVc2FnZTogcXIgZ2VuZXJhdGUgLS10ZXh0IFwiaHR0cHM6Ly9leGFtcGxlLmNvbVwiIC0tZmlsZU5hbWUgXCJteS1xclwiJztcblxuICAgIGF1dGhvciA9IERlZmF1bHRMaWJyYXJ5QXV0aG9yO1xuXG4gICAgdmVyc2lvbiA9IExJQlJBUllfVkVSU0lPTjtcblxuICAgIHByb2Nlc3NvcnM/OiBJQ2xpQ29tbWFuZFByb2Nlc3NvcltdIHwgdW5kZWZpbmVkID0gW107XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5wcm9jZXNzb3JzID0gW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNvbW1hbmQ6ICdnZW5lcmF0ZScsXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgICAgICAgICAgICAgICdHZW5lcmF0ZSBhIFFSIGNvZGUgYW5kIGRvd25sb2FkIGl0IGFzIFBORy4gVXNhZ2U6IHFyIGdlbmVyYXRlIC0tdGV4dCBcImh0dHBzOi8vZXhhbXBsZS5jb21cIicsXG4gICAgICAgICAgICAgICAgcGFyYW1ldGVyczogW1xuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAndGV4dCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1RleHQgb3IgVVJMIHRvIGVuY29kZSBhcyBhIFFSIGNvZGUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogJ2ZpbGVOYW1lJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAndGhlIGZpbGUgbmFtZScsXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIHByb2Nlc3NDb21tYW5kOiBhc3luYyAoY29tbWFuZCwgY29udGV4dCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0ZXh0ID0gY29tbWFuZC5hcmdzWyd0ZXh0J107XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0ZXh0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0LndyaXRlci53cml0ZUVycm9yKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdNaXNzaW5nIHJlcXVpcmVkIHBhcmFtZXRlcjogLS10ZXh0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBjb25zdCBmaWxlTmFtZSA9IGNvbW1hbmQuYXJnc1snZmlsZU5hbWUnXSB8fCAncXItY29kZSc7XG5cbiAgICAgICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHFyQ29kZSA9IG5ldyBRUkNvZGVTdHlsaW5nKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMzAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMzAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IHRleHQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ3N2ZycsXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgcXJDb2RlLmRvd25sb2FkKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBmaWxlTmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHRlbnNpb246ICdwbmcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQud3JpdGVyLndyaXRlU3VjY2VzcyhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBgUVIgQ29kZSBmb3IgXCIke3RleHR9XCIgZG93bmxvYWRlZCBhcyAke2ZpbGVOYW1lfS5wbmdgLFxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0LndyaXRlci53cml0ZUVycm9yKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBGYWlsZWQgdG8gZ2VuZXJhdGUgUVIgY29kZTogJHtlcnJ9YCxcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgXTtcbiAgICB9XG5cbiAgICBhc3luYyBwcm9jZXNzQ29tbWFuZChcbiAgICAgICAgY29tbWFuZDogQ2xpUHJvY2Vzc0NvbW1hbmQsXG4gICAgICAgIGNvbnRleHQ6IElDbGlFeGVjdXRpb25Db250ZXh0LFxuICAgICk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb250ZXh0LmV4ZWN1dG9yLnNob3dIZWxwKGNvbW1hbmQsIGNvbnRleHQpO1xuICAgIH1cblxuICAgIHdyaXRlRGVzY3JpcHRpb24oY29udGV4dDogSUNsaUV4ZWN1dGlvbkNvbnRleHQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgeyB3cml0ZXIgfSA9IGNvbnRleHQ7XG4gICAgICAgIHdyaXRlci53cml0ZWxuKCdHZW5lcmF0ZSBRUiBjb2RlcyBmcm9tIHRleHQgb3IgVVJMcyBhbmQgZG93bmxvYWQgYXMgUE5HJyk7XG4gICAgICAgIHdyaXRlci53cml0ZWxuKCk7XG4gICAgICAgIHdyaXRlci53cml0ZWxuKCfwn5OLIFVzYWdlOicpO1xuICAgICAgICB3cml0ZXIud3JpdGVsbihgICAke3dyaXRlci53cmFwSW5Db2xvcigncXIgZ2VuZXJhdGUgLS10ZXh0PVwiPGNvbnRlbnQ+XCInLCBDbGlGb3JlZ3JvdW5kQ29sb3IuQ3lhbil9YCk7XG4gICAgICAgIHdyaXRlci53cml0ZWxuKCk7XG4gICAgICAgIHdyaXRlci53cml0ZWxuKCfimpnvuI8gIE9wdGlvbnM6Jyk7XG4gICAgICAgIHdyaXRlci53cml0ZWxuKGAgICR7d3JpdGVyLndyYXBJbkNvbG9yKCctLXRleHQnLCBDbGlGb3JlZ3JvdW5kQ29sb3IuWWVsbG93KX0gICAgICAgICAgVGV4dCBvciBVUkwgdG8gZW5jb2RlIChyZXF1aXJlZClgKTtcbiAgICAgICAgd3JpdGVyLndyaXRlbG4oYCAgJHt3cml0ZXIud3JhcEluQ29sb3IoJy0tZmlsZU5hbWUnLCBDbGlGb3JlZ3JvdW5kQ29sb3IuWWVsbG93KX0gICAgICBPdXRwdXQgZmlsZW5hbWUgKGRlZmF1bHQ6IHFyLWNvZGUpYCk7XG4gICAgICAgIHdyaXRlci53cml0ZWxuKCk7XG4gICAgICAgIHdyaXRlci53cml0ZWxuKCfwn5OdIEV4YW1wbGVzOicpO1xuICAgICAgICB3cml0ZXIud3JpdGVsbihgICBxciBnZW5lcmF0ZSAtLXRleHQ9XCJodHRwczovL2V4YW1wbGUuY29tXCIgICAgICAgICAgICAgICAgJHt3cml0ZXIud3JhcEluQ29sb3IoJyMgVVJMIFFSIGNvZGUnLCBDbGlGb3JlZ3JvdW5kQ29sb3IuR3JlZW4pfWApO1xuICAgICAgICB3cml0ZXIud3JpdGVsbihgICBxciBnZW5lcmF0ZSAtLXRleHQ9XCJIZWxsbyFcIiAtLWZpbGVOYW1lPVwibXktcXJcIiAgICAgICAgICAke3dyaXRlci53cmFwSW5Db2xvcignIyBDdXN0b20gZmlsZW5hbWUnLCBDbGlGb3JlZ3JvdW5kQ29sb3IuR3JlZW4pfWApO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,3 +1,3 @@
1
1
  // Automatically generated during build
2
- export const LIBRARY_VERSION = '0.0.1';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3FyL3NyYy9saWIvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSx1Q0FBdUM7QUFDdkMsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLE9BQU8sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIlxuLy8gQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgZHVyaW5nIGJ1aWxkXG5leHBvcnQgY29uc3QgTElCUkFSWV9WRVJTSU9OID0gJzAuMC4xJztcbiAgIl19
2
+ export const LIBRARY_VERSION = '0.0.2';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3FyL3NyYy9saWIvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSx1Q0FBdUM7QUFDdkMsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLE9BQU8sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIlxuLy8gQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgZHVyaW5nIGJ1aWxkXG5leHBvcnQgY29uc3QgTElCUkFSWV9WRVJTSU9OID0gJzAuMC4yJztcbiAgIl19
@@ -1,11 +1,11 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { Injectable, NgModule } from '@angular/core';
3
3
  import { resolveCommandProcessorProvider } from '@qodalis/angular-cli';
4
- import { DefaultLibraryAuthor } from '@qodalis/cli-core';
4
+ import { DefaultLibraryAuthor, CliForegroundColor } from '@qodalis/cli-core';
5
5
  import QRCodeStyling from 'qr-code-styling';
6
6
 
7
7
  // Automatically generated during build
8
- const LIBRARY_VERSION = '0.0.1';
8
+ const LIBRARY_VERSION = '0.0.2';
9
9
 
10
10
  class CliQrCommandProcessor {
11
11
  constructor() {
@@ -63,7 +63,19 @@ class CliQrCommandProcessor {
63
63
  context.executor.showHelp(command, context);
64
64
  }
65
65
  writeDescription(context) {
66
- context.writer.writeln(this.description);
66
+ const { writer } = context;
67
+ writer.writeln('Generate QR codes from text or URLs and download as PNG');
68
+ writer.writeln();
69
+ writer.writeln('📋 Usage:');
70
+ writer.writeln(` ${writer.wrapInColor('qr generate --text="<content>"', CliForegroundColor.Cyan)}`);
71
+ writer.writeln();
72
+ writer.writeln('⚙️ Options:');
73
+ writer.writeln(` ${writer.wrapInColor('--text', CliForegroundColor.Yellow)} Text or URL to encode (required)`);
74
+ writer.writeln(` ${writer.wrapInColor('--fileName', CliForegroundColor.Yellow)} Output filename (default: qr-code)`);
75
+ writer.writeln();
76
+ writer.writeln('📝 Examples:');
77
+ writer.writeln(` qr generate --text="https://example.com" ${writer.wrapInColor('# URL QR code', CliForegroundColor.Green)}`);
78
+ writer.writeln(` qr generate --text="Hello!" --fileName="my-qr" ${writer.wrapInColor('# Custom filename', CliForegroundColor.Green)}`);
67
79
  }
68
80
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CliQrCommandProcessor, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
69
81
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CliQrCommandProcessor }); }
@@ -1 +1 @@
1
- {"version":3,"file":"qodalis-cli-qr.mjs","sources":["../../../projects/qr/src/lib/version.ts","../../../projects/qr/src/lib/processors/cli-qr-command-processor.ts","../../../projects/qr/src/lib/cli-qr.module.ts","../../../projects/qr/src/public-api.ts","../../../projects/qr/src/qodalis-cli-qr.ts"],"sourcesContent":["\n// Automatically generated during build\nexport const LIBRARY_VERSION = '0.0.1';\n ","import { Injectable } from '@angular/core';\nimport {\n CliProcessCommand,\n DefaultLibraryAuthor,\n ICliCommandProcessor,\n ICliExecutionContext,\n} from '@qodalis/cli-core';\nimport QRCodeStyling from 'qr-code-styling';\nimport { LIBRARY_VERSION } from '../version';\n\n@Injectable()\nexport class CliQrCommandProcessor implements ICliCommandProcessor {\n command = 'qr';\n\n description =\n 'Provide utility functions to generate QR codes. Usage: qr generate --text \"https://example.com\" --fileName \"my-qr\"';\n\n author = DefaultLibraryAuthor;\n\n version = LIBRARY_VERSION;\n\n processors?: ICliCommandProcessor[] | undefined = [];\n\n constructor() {\n this.processors = [\n {\n command: 'generate',\n description:\n 'Generate a QR code and download it as PNG. Usage: qr generate --text \"https://example.com\"',\n parameters: [\n {\n name: 'text',\n description: 'Text or URL to encode as a QR code',\n type: 'string',\n required: true,\n },\n {\n name: 'fileName',\n description: 'the file name',\n type: 'string',\n required: false,\n },\n ],\n processCommand: async (command, context) => {\n const text = command.args['text'];\n\n if (!text) {\n context.writer.writeError(\n 'Missing required parameter: --text',\n );\n return;\n }\n\n const fileName = command.args['fileName'] || 'qr-code';\n\n try {\n const qrCode = new QRCodeStyling({\n width: 300,\n height: 300,\n data: text,\n type: 'svg',\n });\n\n await qrCode.download({\n name: fileName,\n extension: 'png',\n });\n\n context.writer.writeSuccess(\n `QR Code for \"${text}\" downloaded as ${fileName}.png`,\n );\n } catch (err) {\n context.writer.writeError(\n `Failed to generate QR code: ${err}`,\n );\n }\n },\n },\n ];\n }\n\n async processCommand(\n command: CliProcessCommand,\n context: ICliExecutionContext,\n ): Promise<void> {\n context.executor.showHelp(command, context);\n }\n\n writeDescription(context: ICliExecutionContext): void {\n context.writer.writeln(this.description!);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { resolveCommandProcessorProvider } from '@qodalis/angular-cli';\nimport { CliQrCommandProcessor } from './processors/cli-qr-command-processor';\n\n@NgModule({\n declarations: [],\n imports: [],\n exports: [],\n providers: [resolveCommandProcessorProvider(CliQrCommandProcessor)],\n})\nexport class CliQrModule {}\n","/*\n * Public API Surface of qr\n */\n\nexport * from './lib/cli-qr.module';\n\nexport * from './lib/processors/cli-qr-command-processor';\n\nexport * from './lib/version';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"qodalis-cli-qr.mjs","sources":["../../../projects/qr/src/lib/version.ts","../../../projects/qr/src/lib/processors/cli-qr-command-processor.ts","../../../projects/qr/src/lib/cli-qr.module.ts","../../../projects/qr/src/public-api.ts","../../../projects/qr/src/qodalis-cli-qr.ts"],"sourcesContent":["\n// Automatically generated during build\nexport const LIBRARY_VERSION = '0.0.2';\n ","import { Injectable } from '@angular/core';\nimport {\n CliForegroundColor,\n CliProcessCommand,\n DefaultLibraryAuthor,\n ICliCommandProcessor,\n ICliExecutionContext,\n} from '@qodalis/cli-core';\nimport QRCodeStyling from 'qr-code-styling';\nimport { LIBRARY_VERSION } from '../version';\n\n@Injectable()\nexport class CliQrCommandProcessor implements ICliCommandProcessor {\n command = 'qr';\n\n description =\n 'Provide utility functions to generate QR codes. Usage: qr generate --text \"https://example.com\" --fileName \"my-qr\"';\n\n author = DefaultLibraryAuthor;\n\n version = LIBRARY_VERSION;\n\n processors?: ICliCommandProcessor[] | undefined = [];\n\n constructor() {\n this.processors = [\n {\n command: 'generate',\n description:\n 'Generate a QR code and download it as PNG. Usage: qr generate --text \"https://example.com\"',\n parameters: [\n {\n name: 'text',\n description: 'Text or URL to encode as a QR code',\n type: 'string',\n required: true,\n },\n {\n name: 'fileName',\n description: 'the file name',\n type: 'string',\n required: false,\n },\n ],\n processCommand: async (command, context) => {\n const text = command.args['text'];\n\n if (!text) {\n context.writer.writeError(\n 'Missing required parameter: --text',\n );\n return;\n }\n\n const fileName = command.args['fileName'] || 'qr-code';\n\n try {\n const qrCode = new QRCodeStyling({\n width: 300,\n height: 300,\n data: text,\n type: 'svg',\n });\n\n await qrCode.download({\n name: fileName,\n extension: 'png',\n });\n\n context.writer.writeSuccess(\n `QR Code for \"${text}\" downloaded as ${fileName}.png`,\n );\n } catch (err) {\n context.writer.writeError(\n `Failed to generate QR code: ${err}`,\n );\n }\n },\n },\n ];\n }\n\n async processCommand(\n command: CliProcessCommand,\n context: ICliExecutionContext,\n ): Promise<void> {\n context.executor.showHelp(command, context);\n }\n\n writeDescription(context: ICliExecutionContext): void {\n const { writer } = context;\n writer.writeln('Generate QR codes from text or URLs and download as PNG');\n writer.writeln();\n writer.writeln('📋 Usage:');\n writer.writeln(` ${writer.wrapInColor('qr generate --text=\"<content>\"', CliForegroundColor.Cyan)}`);\n writer.writeln();\n writer.writeln('⚙️ Options:');\n writer.writeln(` ${writer.wrapInColor('--text', CliForegroundColor.Yellow)} Text or URL to encode (required)`);\n writer.writeln(` ${writer.wrapInColor('--fileName', CliForegroundColor.Yellow)} Output filename (default: qr-code)`);\n writer.writeln();\n writer.writeln('📝 Examples:');\n writer.writeln(` qr generate --text=\"https://example.com\" ${writer.wrapInColor('# URL QR code', CliForegroundColor.Green)}`);\n writer.writeln(` qr generate --text=\"Hello!\" --fileName=\"my-qr\" ${writer.wrapInColor('# Custom filename', CliForegroundColor.Green)}`);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { resolveCommandProcessorProvider } from '@qodalis/angular-cli';\nimport { CliQrCommandProcessor } from './processors/cli-qr-command-processor';\n\n@NgModule({\n declarations: [],\n imports: [],\n exports: [],\n providers: [resolveCommandProcessorProvider(CliQrCommandProcessor)],\n})\nexport class CliQrModule {}\n","/*\n * Public API Surface of qr\n */\n\nexport * from './lib/cli-qr.module';\n\nexport * from './lib/processors/cli-qr-command-processor';\n\nexport * from './lib/version';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
package/lib/version.d.ts CHANGED
@@ -1 +1 @@
1
- export declare const LIBRARY_VERSION = "0.0.1";
1
+ export declare const LIBRARY_VERSION = "0.0.2";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@qodalis/cli-qr",
3
- "version": "0.0.1",
3
+ "version": "0.0.2",
4
4
  "description": "QR code generation plugin for @qodalis/angular-cli",
5
5
  "author": "Nicolae Lupei, Qodalis Solutions",
6
6
  "license": "MIT",
package/umd/index.js CHANGED
@@ -34,7 +34,7 @@
34
34
  };
35
35
 
36
36
  // Automatically generated during build
37
- const LIBRARY_VERSION = '0.0.1';
37
+ const LIBRARY_VERSION = '0.0.2';
38
38
 
39
39
  let CliQrCommandProcessor = class CliQrCommandProcessor {
40
40
  constructor() {
@@ -92,7 +92,19 @@
92
92
  context.executor.showHelp(command, context);
93
93
  }
94
94
  writeDescription(context) {
95
- context.writer.writeln(this.description);
95
+ const { writer } = context;
96
+ writer.writeln('Generate QR codes from text or URLs and download as PNG');
97
+ writer.writeln();
98
+ writer.writeln('📋 Usage:');
99
+ writer.writeln(` ${writer.wrapInColor('qr generate --text="<content>"', cliCore.CliForegroundColor.Cyan)}`);
100
+ writer.writeln();
101
+ writer.writeln('⚙️ Options:');
102
+ writer.writeln(` ${writer.wrapInColor('--text', cliCore.CliForegroundColor.Yellow)} Text or URL to encode (required)`);
103
+ writer.writeln(` ${writer.wrapInColor('--fileName', cliCore.CliForegroundColor.Yellow)} Output filename (default: qr-code)`);
104
+ writer.writeln();
105
+ writer.writeln('📝 Examples:');
106
+ writer.writeln(` qr generate --text="https://example.com" ${writer.wrapInColor('# URL QR code', cliCore.CliForegroundColor.Green)}`);
107
+ writer.writeln(` qr generate --text="Hello!" --fileName="my-qr" ${writer.wrapInColor('# Custom filename', cliCore.CliForegroundColor.Green)}`);
96
108
  }
97
109
  };
98
110
  CliQrCommandProcessor = __decorate([