@qodalis/cli-qr 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +17 -0
- package/esm2022/lib/cli-qr.module.mjs +19 -0
- package/esm2022/lib/processors/cli-qr-command-processor.mjs +70 -0
- package/esm2022/lib/version.mjs +3 -0
- package/esm2022/public-api.mjs +7 -0
- package/esm2022/qodalis-cli-qr.mjs +5 -0
- package/fesm2022/qodalis-cli-qr.mjs +99 -0
- package/fesm2022/qodalis-cli-qr.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/cli-qr.module.d.ts +6 -0
- package/lib/processors/cli-qr-command-processor.d.ts +14 -0
- package/lib/version.d.ts +1 -0
- package/package.json +45 -0
- package/public-api.d.ts +3 -0
- package/umd/index.js +108 -0
package/README.md
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# Cli extension
|
|
2
|
+
|
|
3
|
+
The `@qodalis/cli-qr` package is a CLI extension designed to provide utilities to generate a qr code.
|
|
4
|
+
|
|
5
|
+
# Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
packages add @qodalis/cli-qr
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
# Usage
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
qr generate --text="Hello world!"
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
This command downloads and registers the extension for use within the CLI environment.
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { resolveCommandProcessorProvider } from '@qodalis/angular-cli';
|
|
3
|
+
import { CliQrCommandProcessor } from './processors/cli-qr-command-processor';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class CliQrModule {
|
|
6
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CliQrModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
7
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: CliQrModule }); }
|
|
8
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CliQrModule, providers: [resolveCommandProcessorProvider(CliQrCommandProcessor)] }); }
|
|
9
|
+
}
|
|
10
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CliQrModule, decorators: [{
|
|
11
|
+
type: NgModule,
|
|
12
|
+
args: [{
|
|
13
|
+
declarations: [],
|
|
14
|
+
imports: [],
|
|
15
|
+
exports: [],
|
|
16
|
+
providers: [resolveCommandProcessorProvider(CliQrCommandProcessor)],
|
|
17
|
+
}]
|
|
18
|
+
}] });
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLXFyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3FyL3NyYy9saWIvY2xpLXFyLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDOztBQVE5RSxNQUFNLE9BQU8sV0FBVzsrR0FBWCxXQUFXO2dIQUFYLFdBQVc7Z0hBQVgsV0FBVyxhQUZULENBQUMsK0JBQStCLENBQUMscUJBQXFCLENBQUMsQ0FBQzs7NEZBRTFELFdBQVc7a0JBTnZCLFFBQVE7bUJBQUM7b0JBQ04sWUFBWSxFQUFFLEVBQUU7b0JBQ2hCLE9BQU8sRUFBRSxFQUFFO29CQUNYLE9BQU8sRUFBRSxFQUFFO29CQUNYLFNBQVMsRUFBRSxDQUFDLCtCQUErQixDQUFDLHFCQUFxQixDQUFDLENBQUM7aUJBQ3RFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHJlc29sdmVDb21tYW5kUHJvY2Vzc29yUHJvdmlkZXIgfSBmcm9tICdAcW9kYWxpcy9hbmd1bGFyLWNsaSc7XG5pbXBvcnQgeyBDbGlRckNvbW1hbmRQcm9jZXNzb3IgfSBmcm9tICcuL3Byb2Nlc3NvcnMvY2xpLXFyLWNvbW1hbmQtcHJvY2Vzc29yJztcblxuQE5nTW9kdWxlKHtcbiAgICBkZWNsYXJhdGlvbnM6IFtdLFxuICAgIGltcG9ydHM6IFtdLFxuICAgIGV4cG9ydHM6IFtdLFxuICAgIHByb3ZpZGVyczogW3Jlc29sdmVDb21tYW5kUHJvY2Vzc29yUHJvdmlkZXIoQ2xpUXJDb21tYW5kUHJvY2Vzc29yKV0sXG59KVxuZXhwb3J0IGNsYXNzIENsaVFyTW9kdWxlIHt9XG4iXX0=
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { DefaultLibraryAuthor, } from '@qodalis/cli-core';
|
|
3
|
+
import QRCodeStyling from 'qr-code-styling';
|
|
4
|
+
import { LIBRARY_VERSION } from '../version';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export class CliQrCommandProcessor {
|
|
7
|
+
constructor() {
|
|
8
|
+
this.command = 'qr';
|
|
9
|
+
this.description = 'Provide utility functions to generate QR codes. Usage: qr generate --text "https://example.com" --fileName "my-qr"';
|
|
10
|
+
this.author = DefaultLibraryAuthor;
|
|
11
|
+
this.version = LIBRARY_VERSION;
|
|
12
|
+
this.processors = [];
|
|
13
|
+
this.processors = [
|
|
14
|
+
{
|
|
15
|
+
command: 'generate',
|
|
16
|
+
description: 'Generate a QR code and download it as PNG. Usage: qr generate --text "https://example.com"',
|
|
17
|
+
parameters: [
|
|
18
|
+
{
|
|
19
|
+
name: 'text',
|
|
20
|
+
description: 'Text or URL to encode as a QR code',
|
|
21
|
+
type: 'string',
|
|
22
|
+
required: true,
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
name: 'fileName',
|
|
26
|
+
description: 'the file name',
|
|
27
|
+
type: 'string',
|
|
28
|
+
required: false,
|
|
29
|
+
},
|
|
30
|
+
],
|
|
31
|
+
processCommand: async (command, context) => {
|
|
32
|
+
const text = command.args['text'];
|
|
33
|
+
if (!text) {
|
|
34
|
+
context.writer.writeError('Missing required parameter: --text');
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
const fileName = command.args['fileName'] || 'qr-code';
|
|
38
|
+
try {
|
|
39
|
+
const qrCode = new QRCodeStyling({
|
|
40
|
+
width: 300,
|
|
41
|
+
height: 300,
|
|
42
|
+
data: text,
|
|
43
|
+
type: 'svg',
|
|
44
|
+
});
|
|
45
|
+
await qrCode.download({
|
|
46
|
+
name: fileName,
|
|
47
|
+
extension: 'png',
|
|
48
|
+
});
|
|
49
|
+
context.writer.writeSuccess(`QR Code for "${text}" downloaded as ${fileName}.png`);
|
|
50
|
+
}
|
|
51
|
+
catch (err) {
|
|
52
|
+
context.writer.writeError(`Failed to generate QR code: ${err}`);
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
},
|
|
56
|
+
];
|
|
57
|
+
}
|
|
58
|
+
async processCommand(command, context) {
|
|
59
|
+
context.executor.showHelp(command, context);
|
|
60
|
+
}
|
|
61
|
+
writeDescription(context) {
|
|
62
|
+
context.writer.writeln(this.description);
|
|
63
|
+
}
|
|
64
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CliQrCommandProcessor, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
65
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CliQrCommandProcessor }); }
|
|
66
|
+
}
|
|
67
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CliQrCommandProcessor, decorators: [{
|
|
68
|
+
type: Injectable
|
|
69
|
+
}], ctorParameters: function () { return []; } });
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLXFyLWNvbW1hbmQtcHJvY2Vzc29yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcXIvc3JjL2xpYi9wcm9jZXNzb3JzL2NsaS1xci1jb21tYW5kLXByb2Nlc3Nvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFFSCxvQkFBb0IsR0FHdkIsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQixPQUFPLGFBQWEsTUFBTSxpQkFBaUIsQ0FBQztBQUM1QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sWUFBWSxDQUFDOztBQUc3QyxNQUFNLE9BQU8scUJBQXFCO0lBWTlCO1FBWEEsWUFBTyxHQUFHLElBQUksQ0FBQztRQUVmLGdCQUFXLEdBQ1Asb0hBQW9ILENBQUM7UUFFekgsV0FBTSxHQUFHLG9CQUFvQixDQUFDO1FBRTlCLFlBQU8sR0FBRyxlQUFlLENBQUM7UUFFMUIsZUFBVSxHQUF3QyxFQUFFLENBQUM7UUFHakQsSUFBSSxDQUFDLFVBQVUsR0FBRztZQUNkO2dCQUNJLE9BQU8sRUFBRSxVQUFVO2dCQUNuQixXQUFXLEVBQ1AsNEZBQTRGO2dCQUNoRyxVQUFVLEVBQUU7b0JBQ1I7d0JBQ0ksSUFBSSxFQUFFLE1BQU07d0JBQ1osV0FBVyxFQUFFLG9DQUFvQzt3QkFDakQsSUFBSSxFQUFFLFFBQVE7d0JBQ2QsUUFBUSxFQUFFLElBQUk7cUJBQ2pCO29CQUNEO3dCQUNJLElBQUksRUFBRSxVQUFVO3dCQUNoQixXQUFXLEVBQUUsZUFBZTt3QkFDNUIsSUFBSSxFQUFFLFFBQVE7d0JBQ2QsUUFBUSxFQUFFLEtBQUs7cUJBQ2xCO2lCQUNKO2dCQUNELGNBQWMsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxFQUFFO29CQUN2QyxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUVsQyxJQUFJLENBQUMsSUFBSSxFQUFFO3dCQUNQLE9BQU8sQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUNyQixvQ0FBb0MsQ0FDdkMsQ0FBQzt3QkFDRixPQUFPO3FCQUNWO29CQUVELE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksU0FBUyxDQUFDO29CQUV2RCxJQUFJO3dCQUNBLE1BQU0sTUFBTSxHQUFHLElBQUksYUFBYSxDQUFDOzRCQUM3QixLQUFLLEVBQUUsR0FBRzs0QkFDVixNQUFNLEVBQUUsR0FBRzs0QkFDWCxJQUFJLEVBQUUsSUFBSTs0QkFDVixJQUFJLEVBQUUsS0FBSzt5QkFDZCxDQUFDLENBQUM7d0JBRUgsTUFBTSxNQUFNLENBQUMsUUFBUSxDQUFDOzRCQUNsQixJQUFJLEVBQUUsUUFBUTs0QkFDZCxTQUFTLEVBQUUsS0FBSzt5QkFDbkIsQ0FBQyxDQUFDO3dCQUVILE9BQU8sQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUN2QixnQkFBZ0IsSUFBSSxtQkFBbUIsUUFBUSxNQUFNLENBQ3hELENBQUM7cUJBQ0w7b0JBQUMsT0FBTyxHQUFHLEVBQUU7d0JBQ1YsT0FBTyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQ3JCLCtCQUErQixHQUFHLEVBQUUsQ0FDdkMsQ0FBQztxQkFDTDtnQkFDTCxDQUFDO2FBQ0o7U0FDSixDQUFDO0lBQ04sQ0FBQztJQUVELEtBQUssQ0FBQyxjQUFjLENBQ2hCLE9BQTBCLEVBQzFCLE9BQTZCO1FBRTdCLE9BQU8sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsT0FBNkI7UUFDMUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVksQ0FBQyxDQUFDO0lBQzlDLENBQUM7K0dBL0VRLHFCQUFxQjttSEFBckIscUJBQXFCOzs0RkFBckIscUJBQXFCO2tCQURqQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBDbGlQcm9jZXNzQ29tbWFuZCxcbiAgICBEZWZhdWx0TGlicmFyeUF1dGhvcixcbiAgICBJQ2xpQ29tbWFuZFByb2Nlc3NvcixcbiAgICBJQ2xpRXhlY3V0aW9uQ29udGV4dCxcbn0gZnJvbSAnQHFvZGFsaXMvY2xpLWNvcmUnO1xuaW1wb3J0IFFSQ29kZVN0eWxpbmcgZnJvbSAncXItY29kZS1zdHlsaW5nJztcbmltcG9ydCB7IExJQlJBUllfVkVSU0lPTiB9IGZyb20gJy4uL3ZlcnNpb24nO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQ2xpUXJDb21tYW5kUHJvY2Vzc29yIGltcGxlbWVudHMgSUNsaUNvbW1hbmRQcm9jZXNzb3Ige1xuICAgIGNvbW1hbmQgPSAncXInO1xuXG4gICAgZGVzY3JpcHRpb24gPVxuICAgICAgICAnUHJvdmlkZSB1dGlsaXR5IGZ1bmN0aW9ucyB0byBnZW5lcmF0ZSBRUiBjb2Rlcy4gVXNhZ2U6IHFyIGdlbmVyYXRlIC0tdGV4dCBcImh0dHBzOi8vZXhhbXBsZS5jb21cIiAtLWZpbGVOYW1lIFwibXktcXJcIic7XG5cbiAgICBhdXRob3IgPSBEZWZhdWx0TGlicmFyeUF1dGhvcjtcblxuICAgIHZlcnNpb24gPSBMSUJSQVJZX1ZFUlNJT047XG5cbiAgICBwcm9jZXNzb3JzPzogSUNsaUNvbW1hbmRQcm9jZXNzb3JbXSB8IHVuZGVmaW5lZCA9IFtdO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMucHJvY2Vzc29ycyA9IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjb21tYW5kOiAnZ2VuZXJhdGUnLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICAgICAgICAgICAgICAnR2VuZXJhdGUgYSBRUiBjb2RlIGFuZCBkb3dubG9hZCBpdCBhcyBQTkcuIFVzYWdlOiBxciBnZW5lcmF0ZSAtLXRleHQgXCJodHRwczovL2V4YW1wbGUuY29tXCInLFxuICAgICAgICAgICAgICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogJ3RleHQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdUZXh0IG9yIFVSTCB0byBlbmNvZGUgYXMgYSBRUiBjb2RlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICdmaWxlTmFtZScsXG4gICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ3RoZSBmaWxlIG5hbWUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICBwcm9jZXNzQ29tbWFuZDogYXN5bmMgKGNvbW1hbmQsIGNvbnRleHQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGV4dCA9IGNvbW1hbmQuYXJnc1sndGV4dCddO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmICghdGV4dCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dC53cml0ZXIud3JpdGVFcnJvcihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnTWlzc2luZyByZXF1aXJlZCBwYXJhbWV0ZXI6IC0tdGV4dCcsXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZmlsZU5hbWUgPSBjb21tYW5kLmFyZ3NbJ2ZpbGVOYW1lJ10gfHwgJ3FyLWNvZGUnO1xuXG4gICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBxckNvZGUgPSBuZXcgUVJDb2RlU3R5bGluZyh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDMwMCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDMwMCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiB0ZXh0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdzdmcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IHFyQ29kZS5kb3dubG9hZCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogZmlsZU5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXh0ZW5zaW9uOiAncG5nJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0LndyaXRlci53cml0ZVN1Y2Nlc3MoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYFFSIENvZGUgZm9yIFwiJHt0ZXh0fVwiIGRvd25sb2FkZWQgYXMgJHtmaWxlTmFtZX0ucG5nYCxcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dC53cml0ZXIud3JpdGVFcnJvcihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBgRmFpbGVkIHRvIGdlbmVyYXRlIFFSIGNvZGU6ICR7ZXJyfWAsXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIF07XG4gICAgfVxuXG4gICAgYXN5bmMgcHJvY2Vzc0NvbW1hbmQoXG4gICAgICAgIGNvbW1hbmQ6IENsaVByb2Nlc3NDb21tYW5kLFxuICAgICAgICBjb250ZXh0OiBJQ2xpRXhlY3V0aW9uQ29udGV4dCxcbiAgICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29udGV4dC5leGVjdXRvci5zaG93SGVscChjb21tYW5kLCBjb250ZXh0KTtcbiAgICB9XG5cbiAgICB3cml0ZURlc2NyaXB0aW9uKGNvbnRleHQ6IElDbGlFeGVjdXRpb25Db250ZXh0KTogdm9pZCB7XG4gICAgICAgIGNvbnRleHQud3JpdGVyLndyaXRlbG4odGhpcy5kZXNjcmlwdGlvbiEpO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
// Automatically generated during build
|
|
2
|
+
export const LIBRARY_VERSION = '0.0.1';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3FyL3NyYy9saWIvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSx1Q0FBdUM7QUFDdkMsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLE9BQU8sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIlxuLy8gQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgZHVyaW5nIGJ1aWxkXG5leHBvcnQgY29uc3QgTElCUkFSWV9WRVJTSU9OID0gJzAuMC4xJztcbiAgIl19
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Public API Surface of qr
|
|
3
|
+
*/
|
|
4
|
+
export * from './lib/cli-qr.module';
|
|
5
|
+
export * from './lib/processors/cli-qr-command-processor';
|
|
6
|
+
export * from './lib/version';
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3FyL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxxQkFBcUIsQ0FBQztBQUVwQyxjQUFjLDJDQUEyQyxDQUFDO0FBRTFELGNBQWMsZUFBZSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBxclxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2NsaS1xci5tb2R1bGUnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9wcm9jZXNzb3JzL2NsaS1xci1jb21tYW5kLXByb2Nlc3Nvcic7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL3ZlcnNpb24nO1xuIl19
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './public-api';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicW9kYWxpcy1jbGktcXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9xci9zcmMvcW9kYWxpcy1jbGktcXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { Injectable, NgModule } from '@angular/core';
|
|
3
|
+
import { resolveCommandProcessorProvider } from '@qodalis/angular-cli';
|
|
4
|
+
import { DefaultLibraryAuthor } from '@qodalis/cli-core';
|
|
5
|
+
import QRCodeStyling from 'qr-code-styling';
|
|
6
|
+
|
|
7
|
+
// Automatically generated during build
|
|
8
|
+
const LIBRARY_VERSION = '0.0.1';
|
|
9
|
+
|
|
10
|
+
class CliQrCommandProcessor {
|
|
11
|
+
constructor() {
|
|
12
|
+
this.command = 'qr';
|
|
13
|
+
this.description = 'Provide utility functions to generate QR codes. Usage: qr generate --text "https://example.com" --fileName "my-qr"';
|
|
14
|
+
this.author = DefaultLibraryAuthor;
|
|
15
|
+
this.version = LIBRARY_VERSION;
|
|
16
|
+
this.processors = [];
|
|
17
|
+
this.processors = [
|
|
18
|
+
{
|
|
19
|
+
command: 'generate',
|
|
20
|
+
description: 'Generate a QR code and download it as PNG. Usage: qr generate --text "https://example.com"',
|
|
21
|
+
parameters: [
|
|
22
|
+
{
|
|
23
|
+
name: 'text',
|
|
24
|
+
description: 'Text or URL to encode as a QR code',
|
|
25
|
+
type: 'string',
|
|
26
|
+
required: true,
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
name: 'fileName',
|
|
30
|
+
description: 'the file name',
|
|
31
|
+
type: 'string',
|
|
32
|
+
required: false,
|
|
33
|
+
},
|
|
34
|
+
],
|
|
35
|
+
processCommand: async (command, context) => {
|
|
36
|
+
const text = command.args['text'];
|
|
37
|
+
if (!text) {
|
|
38
|
+
context.writer.writeError('Missing required parameter: --text');
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
const fileName = command.args['fileName'] || 'qr-code';
|
|
42
|
+
try {
|
|
43
|
+
const qrCode = new QRCodeStyling({
|
|
44
|
+
width: 300,
|
|
45
|
+
height: 300,
|
|
46
|
+
data: text,
|
|
47
|
+
type: 'svg',
|
|
48
|
+
});
|
|
49
|
+
await qrCode.download({
|
|
50
|
+
name: fileName,
|
|
51
|
+
extension: 'png',
|
|
52
|
+
});
|
|
53
|
+
context.writer.writeSuccess(`QR Code for "${text}" downloaded as ${fileName}.png`);
|
|
54
|
+
}
|
|
55
|
+
catch (err) {
|
|
56
|
+
context.writer.writeError(`Failed to generate QR code: ${err}`);
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
},
|
|
60
|
+
];
|
|
61
|
+
}
|
|
62
|
+
async processCommand(command, context) {
|
|
63
|
+
context.executor.showHelp(command, context);
|
|
64
|
+
}
|
|
65
|
+
writeDescription(context) {
|
|
66
|
+
context.writer.writeln(this.description);
|
|
67
|
+
}
|
|
68
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CliQrCommandProcessor, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
69
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CliQrCommandProcessor }); }
|
|
70
|
+
}
|
|
71
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CliQrCommandProcessor, decorators: [{
|
|
72
|
+
type: Injectable
|
|
73
|
+
}], ctorParameters: function () { return []; } });
|
|
74
|
+
|
|
75
|
+
class CliQrModule {
|
|
76
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CliQrModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
77
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: CliQrModule }); }
|
|
78
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CliQrModule, providers: [resolveCommandProcessorProvider(CliQrCommandProcessor)] }); }
|
|
79
|
+
}
|
|
80
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CliQrModule, decorators: [{
|
|
81
|
+
type: NgModule,
|
|
82
|
+
args: [{
|
|
83
|
+
declarations: [],
|
|
84
|
+
imports: [],
|
|
85
|
+
exports: [],
|
|
86
|
+
providers: [resolveCommandProcessorProvider(CliQrCommandProcessor)],
|
|
87
|
+
}]
|
|
88
|
+
}] });
|
|
89
|
+
|
|
90
|
+
/*
|
|
91
|
+
* Public API Surface of qr
|
|
92
|
+
*/
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* Generated bundle index. Do not edit.
|
|
96
|
+
*/
|
|
97
|
+
|
|
98
|
+
export { CliQrCommandProcessor, CliQrModule, LIBRARY_VERSION };
|
|
99
|
+
//# sourceMappingURL=qodalis-cli-qr.mjs.map
|
|
@@ -0,0 +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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"}
|
package/index.d.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { CliProcessCommand, ICliCommandProcessor, ICliExecutionContext } from '@qodalis/cli-core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class CliQrCommandProcessor implements ICliCommandProcessor {
|
|
4
|
+
command: string;
|
|
5
|
+
description: string;
|
|
6
|
+
author: import("@qodalis/cli-core").ICliCommandAuthor;
|
|
7
|
+
version: string;
|
|
8
|
+
processors?: ICliCommandProcessor[] | undefined;
|
|
9
|
+
constructor();
|
|
10
|
+
processCommand(command: CliProcessCommand, context: ICliExecutionContext): Promise<void>;
|
|
11
|
+
writeDescription(context: ICliExecutionContext): void;
|
|
12
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<CliQrCommandProcessor, never>;
|
|
13
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<CliQrCommandProcessor>;
|
|
14
|
+
}
|
package/lib/version.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const LIBRARY_VERSION = "0.0.1";
|
package/package.json
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@qodalis/cli-qr",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"description": "QR code generation plugin for @qodalis/angular-cli",
|
|
5
|
+
"author": "Nicolae Lupei, Qodalis Solutions",
|
|
6
|
+
"license": "MIT",
|
|
7
|
+
"repository": {
|
|
8
|
+
"type": "git",
|
|
9
|
+
"url": "https://github.com/qodalis-solutions/angular-web-cli"
|
|
10
|
+
},
|
|
11
|
+
"homepage": "https://qodalis.com",
|
|
12
|
+
"keywords": [
|
|
13
|
+
"angular",
|
|
14
|
+
"cli",
|
|
15
|
+
"qodalis",
|
|
16
|
+
"terminal",
|
|
17
|
+
"qr"
|
|
18
|
+
],
|
|
19
|
+
"umd": "./umd/index.js",
|
|
20
|
+
"unpkg": "./umd/index.js",
|
|
21
|
+
"peerDependencies": {
|
|
22
|
+
"@angular/common": "^16.2.0",
|
|
23
|
+
"@angular/core": "^16.2.0"
|
|
24
|
+
},
|
|
25
|
+
"dependencies": {
|
|
26
|
+
"@qodalis/angular-cli": "^1.0.22",
|
|
27
|
+
"@qodalis/cli-core": "^0.0.7",
|
|
28
|
+
"qr-code-styling": "^1.9.1",
|
|
29
|
+
"tslib": "^2.3.0"
|
|
30
|
+
},
|
|
31
|
+
"sideEffects": false,
|
|
32
|
+
"module": "fesm2022/qodalis-cli-qr.mjs",
|
|
33
|
+
"typings": "index.d.ts",
|
|
34
|
+
"exports": {
|
|
35
|
+
"./package.json": {
|
|
36
|
+
"default": "./package.json"
|
|
37
|
+
},
|
|
38
|
+
".": {
|
|
39
|
+
"types": "./index.d.ts",
|
|
40
|
+
"esm2022": "./esm2022/qodalis-cli-qr.mjs",
|
|
41
|
+
"esm": "./esm2022/qodalis-cli-qr.mjs",
|
|
42
|
+
"default": "./fesm2022/qodalis-cli-qr.mjs"
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
package/public-api.d.ts
ADDED
package/umd/index.js
ADDED
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
(function (global, factory) {
|
|
2
|
+
typeof exports === 'object' && typeof module !== 'undefined' ? factory(require('@qodalis/cli-core'), require('@angular/core'), require('qr-code-styling')) :
|
|
3
|
+
typeof define === 'function' && define.amd ? define(['@qodalis/cli-core', '@angular/core', 'qr-code-styling'], factory) :
|
|
4
|
+
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.cliCore, global.ngCore, global.QRCodeStyling));
|
|
5
|
+
})(this, (function (cliCore, core, QRCodeStyling) { 'use strict';
|
|
6
|
+
|
|
7
|
+
/******************************************************************************
|
|
8
|
+
Copyright (c) Microsoft Corporation.
|
|
9
|
+
|
|
10
|
+
Permission to use, copy, modify, and/or distribute this software for any
|
|
11
|
+
purpose with or without fee is hereby granted.
|
|
12
|
+
|
|
13
|
+
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
14
|
+
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
15
|
+
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
16
|
+
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
17
|
+
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
18
|
+
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
19
|
+
PERFORMANCE OF THIS SOFTWARE.
|
|
20
|
+
***************************************************************************** */
|
|
21
|
+
/* global Reflect, Promise, SuppressedError, Symbol, Iterator */
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
function __decorate(decorators, target, key, desc) {
|
|
25
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
26
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
27
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
28
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
|
|
32
|
+
var e = new Error(message);
|
|
33
|
+
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
// Automatically generated during build
|
|
37
|
+
const LIBRARY_VERSION = '0.0.1';
|
|
38
|
+
|
|
39
|
+
let CliQrCommandProcessor = class CliQrCommandProcessor {
|
|
40
|
+
constructor() {
|
|
41
|
+
this.command = 'qr';
|
|
42
|
+
this.description = 'Provide utility functions to generate QR codes. Usage: qr generate --text "https://example.com" --fileName "my-qr"';
|
|
43
|
+
this.author = cliCore.DefaultLibraryAuthor;
|
|
44
|
+
this.version = LIBRARY_VERSION;
|
|
45
|
+
this.processors = [];
|
|
46
|
+
this.processors = [
|
|
47
|
+
{
|
|
48
|
+
command: 'generate',
|
|
49
|
+
description: 'Generate a QR code and download it as PNG. Usage: qr generate --text "https://example.com"',
|
|
50
|
+
parameters: [
|
|
51
|
+
{
|
|
52
|
+
name: 'text',
|
|
53
|
+
description: 'Text or URL to encode as a QR code',
|
|
54
|
+
type: 'string',
|
|
55
|
+
required: true,
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
name: 'fileName',
|
|
59
|
+
description: 'the file name',
|
|
60
|
+
type: 'string',
|
|
61
|
+
required: false,
|
|
62
|
+
},
|
|
63
|
+
],
|
|
64
|
+
processCommand: async (command, context) => {
|
|
65
|
+
const text = command.args['text'];
|
|
66
|
+
if (!text) {
|
|
67
|
+
context.writer.writeError('Missing required parameter: --text');
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
const fileName = command.args['fileName'] || 'qr-code';
|
|
71
|
+
try {
|
|
72
|
+
const qrCode = new QRCodeStyling({
|
|
73
|
+
width: 300,
|
|
74
|
+
height: 300,
|
|
75
|
+
data: text,
|
|
76
|
+
type: 'svg',
|
|
77
|
+
});
|
|
78
|
+
await qrCode.download({
|
|
79
|
+
name: fileName,
|
|
80
|
+
extension: 'png',
|
|
81
|
+
});
|
|
82
|
+
context.writer.writeSuccess(`QR Code for "${text}" downloaded as ${fileName}.png`);
|
|
83
|
+
}
|
|
84
|
+
catch (err) {
|
|
85
|
+
context.writer.writeError(`Failed to generate QR code: ${err}`);
|
|
86
|
+
}
|
|
87
|
+
},
|
|
88
|
+
},
|
|
89
|
+
];
|
|
90
|
+
}
|
|
91
|
+
async processCommand(command, context) {
|
|
92
|
+
context.executor.showHelp(command, context);
|
|
93
|
+
}
|
|
94
|
+
writeDescription(context) {
|
|
95
|
+
context.writer.writeln(this.description);
|
|
96
|
+
}
|
|
97
|
+
};
|
|
98
|
+
CliQrCommandProcessor = __decorate([
|
|
99
|
+
core.Injectable()
|
|
100
|
+
], CliQrCommandProcessor);
|
|
101
|
+
|
|
102
|
+
const module = {
|
|
103
|
+
name: '@qodalis/cli-qr',
|
|
104
|
+
processors: [new CliQrCommandProcessor()],
|
|
105
|
+
};
|
|
106
|
+
cliCore.bootUmdModule(module);
|
|
107
|
+
|
|
108
|
+
}));
|