@qodalis/cli-browser-storage 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 +24 -0
- package/esm2022/lib/cli-browser-storage.module.mjs +26 -0
- package/esm2022/lib/index.mjs +3 -0
- package/esm2022/lib/processors/cli-cookies-command-processor.mjs +80 -0
- package/esm2022/lib/processors/cli-local-storage-command-processor.mjs +63 -0
- package/esm2022/public-api.mjs +6 -0
- package/esm2022/qodalis-cli-browser-storage.mjs +5 -0
- package/fesm2022/qodalis-cli-browser-storage.mjs +173 -0
- package/fesm2022/qodalis-cli-browser-storage.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/cli-browser-storage.module.d.ts +6 -0
- package/lib/index.d.ts +2 -0
- package/lib/processors/cli-cookies-command-processor.d.ts +13 -0
- package/lib/processors/cli-local-storage-command-processor.d.ts +13 -0
- package/package.json +45 -0
- package/public-api.d.ts +2 -0
- package/umd/index.js +176 -0
package/README.md
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# Cli extension
|
|
2
|
+
|
|
3
|
+
The `@qodalis/cli-browser-storage` package is a CLI extension designed to provide utilities for browser storage services like cookies, localStorage etc.
|
|
4
|
+
|
|
5
|
+
# Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
packages add @qodalis/cli-browser-storage
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
# Usage
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
cookies set key value
|
|
15
|
+
cookies get key
|
|
16
|
+
cookies remove key
|
|
17
|
+
cookies list
|
|
18
|
+
|
|
19
|
+
local-storage get key
|
|
20
|
+
local-storage set key value
|
|
21
|
+
local-storage remove key
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
This command downloads and registers the extension for use within the CLI environment.
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { CliCookiesCommandProcessor } from './processors/cli-cookies-command-processor';
|
|
3
|
+
import { CliLocalStorageCommandProcessor } from './processors/cli-local-storage-command-processor';
|
|
4
|
+
import { resolveCommandProcessorProvider } from '@qodalis/angular-cli';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export class CliBrowserStorageModule {
|
|
7
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CliBrowserStorageModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
8
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: CliBrowserStorageModule }); }
|
|
9
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CliBrowserStorageModule, providers: [
|
|
10
|
+
resolveCommandProcessorProvider(CliCookiesCommandProcessor),
|
|
11
|
+
resolveCommandProcessorProvider(CliLocalStorageCommandProcessor),
|
|
12
|
+
] }); }
|
|
13
|
+
}
|
|
14
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CliBrowserStorageModule, decorators: [{
|
|
15
|
+
type: NgModule,
|
|
16
|
+
args: [{
|
|
17
|
+
declarations: [],
|
|
18
|
+
imports: [],
|
|
19
|
+
exports: [],
|
|
20
|
+
providers: [
|
|
21
|
+
resolveCommandProcessorProvider(CliCookiesCommandProcessor),
|
|
22
|
+
resolveCommandProcessorProvider(CliLocalStorageCommandProcessor),
|
|
23
|
+
],
|
|
24
|
+
}]
|
|
25
|
+
}] });
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLWJyb3dzZXItc3RvcmFnZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9icm93c2VyLXN0b3JhZ2Uvc3JjL2xpYi9jbGktYnJvd3Nlci1zdG9yYWdlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ3hGLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQ25HLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDOztBQVd2RSxNQUFNLE9BQU8sdUJBQXVCOytHQUF2Qix1QkFBdUI7Z0hBQXZCLHVCQUF1QjtnSEFBdkIsdUJBQXVCLGFBTHJCO1lBQ1AsK0JBQStCLENBQUMsMEJBQTBCLENBQUM7WUFDM0QsK0JBQStCLENBQUMsK0JBQStCLENBQUM7U0FDbkU7OzRGQUVRLHVCQUF1QjtrQkFUbkMsUUFBUTttQkFBQztvQkFDTixZQUFZLEVBQUUsRUFBRTtvQkFDaEIsT0FBTyxFQUFFLEVBQUU7b0JBQ1gsT0FBTyxFQUFFLEVBQUU7b0JBQ1gsU0FBUyxFQUFFO3dCQUNQLCtCQUErQixDQUFDLDBCQUEwQixDQUFDO3dCQUMzRCwrQkFBK0IsQ0FBQywrQkFBK0IsQ0FBQztxQkFDbkU7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2xpQ29va2llc0NvbW1hbmRQcm9jZXNzb3IgfSBmcm9tICcuL3Byb2Nlc3NvcnMvY2xpLWNvb2tpZXMtY29tbWFuZC1wcm9jZXNzb3InO1xuaW1wb3J0IHsgQ2xpTG9jYWxTdG9yYWdlQ29tbWFuZFByb2Nlc3NvciB9IGZyb20gJy4vcHJvY2Vzc29ycy9jbGktbG9jYWwtc3RvcmFnZS1jb21tYW5kLXByb2Nlc3Nvcic7XG5pbXBvcnQgeyByZXNvbHZlQ29tbWFuZFByb2Nlc3NvclByb3ZpZGVyIH0gZnJvbSAnQHFvZGFsaXMvYW5ndWxhci1jbGknO1xuXG5ATmdNb2R1bGUoe1xuICAgIGRlY2xhcmF0aW9uczogW10sXG4gICAgaW1wb3J0czogW10sXG4gICAgZXhwb3J0czogW10sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHJlc29sdmVDb21tYW5kUHJvY2Vzc29yUHJvdmlkZXIoQ2xpQ29va2llc0NvbW1hbmRQcm9jZXNzb3IpLFxuICAgICAgICByZXNvbHZlQ29tbWFuZFByb2Nlc3NvclByb3ZpZGVyKENsaUxvY2FsU3RvcmFnZUNvbW1hbmRQcm9jZXNzb3IpLFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIENsaUJyb3dzZXJTdG9yYWdlTW9kdWxlIHt9XG4iXX0=
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export * from './processors/cli-cookies-command-processor';
|
|
2
|
+
export * from './processors/cli-local-storage-command-processor';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9icm93c2VyLXN0b3JhZ2Uvc3JjL2xpYi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMsa0RBQWtELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3Byb2Nlc3NvcnMvY2xpLWNvb2tpZXMtY29tbWFuZC1wcm9jZXNzb3InO1xuZXhwb3J0ICogZnJvbSAnLi9wcm9jZXNzb3JzL2NsaS1sb2NhbC1zdG9yYWdlLWNvbW1hbmQtcHJvY2Vzc29yJztcbiJdfQ==
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { DefaultLibraryAuthor } from '@qodalis/cli-core';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class CliCookiesCommandProcessor {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.command = 'cookies';
|
|
7
|
+
this.description = 'Interact with the cookies';
|
|
8
|
+
this.author = DefaultLibraryAuthor;
|
|
9
|
+
this.processors = [];
|
|
10
|
+
this.processors = [
|
|
11
|
+
{
|
|
12
|
+
command: 'list',
|
|
13
|
+
allowUnlistedCommands: true,
|
|
14
|
+
description: 'List all cookies',
|
|
15
|
+
processCommand: async (command, context) => {
|
|
16
|
+
const cookies = document.cookie.split('; ').reduce((acc, cookie) => {
|
|
17
|
+
const [cookieKey, cookieValue] = cookie.split('=');
|
|
18
|
+
acc[cookieKey] = decodeURIComponent(cookieValue || '');
|
|
19
|
+
return acc;
|
|
20
|
+
}, {});
|
|
21
|
+
for (const [key, value] of Object.entries(cookies)) {
|
|
22
|
+
context.writer.writeln(`${key}: ${value}`);
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
command: 'get',
|
|
28
|
+
allowUnlistedCommands: true,
|
|
29
|
+
description: 'Get the value of a key',
|
|
30
|
+
processCommand: async (command, context) => {
|
|
31
|
+
const [key] = command.chainCommands.slice(2);
|
|
32
|
+
const cookies = document.cookie.split('; ').reduce((acc, cookie) => {
|
|
33
|
+
const [cookieKey, cookieValue] = cookie.split('=');
|
|
34
|
+
acc[cookieKey] = decodeURIComponent(cookieValue || '');
|
|
35
|
+
return acc;
|
|
36
|
+
}, {});
|
|
37
|
+
const value = cookies[key];
|
|
38
|
+
context.writer.writeln(value || 'null');
|
|
39
|
+
},
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
command: 'set',
|
|
43
|
+
allowUnlistedCommands: true,
|
|
44
|
+
description: 'Set the value of a key',
|
|
45
|
+
processCommand: async (command, context) => {
|
|
46
|
+
const [key, ...value] = command.chainCommands.slice(1);
|
|
47
|
+
const expires = new Date();
|
|
48
|
+
expires.setFullYear(expires.getFullYear() + 1);
|
|
49
|
+
document.cookie = `${key}=${encodeURIComponent(value.join(' '))};expires=${expires.toUTCString()};path=/`;
|
|
50
|
+
context.writer.writeSuccess('Cookie set successfully');
|
|
51
|
+
},
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
command: 'remove',
|
|
55
|
+
allowUnlistedCommands: true,
|
|
56
|
+
description: 'Remove a key',
|
|
57
|
+
processCommand: async (command, context) => {
|
|
58
|
+
const [key] = command.chainCommands.slice(1);
|
|
59
|
+
document.cookie = `${key}=;expires=Thu, 01 Jan 1970 00:00:00 UTC;path=/`;
|
|
60
|
+
context.writer.writeSuccess('Cookie removed successfully');
|
|
61
|
+
},
|
|
62
|
+
},
|
|
63
|
+
];
|
|
64
|
+
}
|
|
65
|
+
async processCommand(command, context) {
|
|
66
|
+
context.writer.writeError('Choose a sub-command');
|
|
67
|
+
}
|
|
68
|
+
writeDescription(context) {
|
|
69
|
+
context.writer.writeln(this.description);
|
|
70
|
+
}
|
|
71
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CliCookiesCommandProcessor, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
72
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CliCookiesCommandProcessor, providedIn: 'root' }); }
|
|
73
|
+
}
|
|
74
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CliCookiesCommandProcessor, decorators: [{
|
|
75
|
+
type: Injectable,
|
|
76
|
+
args: [{
|
|
77
|
+
providedIn: 'root',
|
|
78
|
+
}]
|
|
79
|
+
}], ctorParameters: function () { return []; } });
|
|
80
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLWNvb2tpZXMtY29tbWFuZC1wcm9jZXNzb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9icm93c2VyLXN0b3JhZ2Uvc3JjL2xpYi9wcm9jZXNzb3JzL2NsaS1jb29raWVzLWNvbW1hbmQtcHJvY2Vzc29yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFRM0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7O0FBS3pELE1BQU0sT0FBTywwQkFBMEI7SUFTbkM7UUFSQSxZQUFPLEdBQUcsU0FBUyxDQUFDO1FBRXBCLGdCQUFXLEdBQUcsMkJBQTJCLENBQUM7UUFFMUMsV0FBTSxHQUFtQyxvQkFBb0IsQ0FBQztRQUU5RCxlQUFVLEdBQXdDLEVBQUUsQ0FBQztRQUdqRCxJQUFJLENBQUMsVUFBVSxHQUFHO1lBQ2Q7Z0JBQ0ksT0FBTyxFQUFFLE1BQU07Z0JBQ2YscUJBQXFCLEVBQUUsSUFBSTtnQkFDM0IsV0FBVyxFQUFFLGtCQUFrQjtnQkFDL0IsY0FBYyxFQUFFLEtBQUssRUFDakIsT0FBMEIsRUFDMUIsT0FBNkIsRUFDL0IsRUFBRTtvQkFDQSxNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQzlDLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxFQUFFO3dCQUNaLE1BQU0sQ0FBQyxTQUFTLEVBQUUsV0FBVyxDQUFDLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQzt3QkFDbkQsR0FBRyxDQUFDLFNBQVMsQ0FBQyxHQUFHLGtCQUFrQixDQUMvQixXQUFXLElBQUksRUFBRSxDQUNwQixDQUFDO3dCQUNGLE9BQU8sR0FBRyxDQUFDO29CQUNmLENBQUMsRUFDRCxFQUE0QixDQUMvQixDQUFDO29CQUVGLEtBQUss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T0FBNkI7UUFDM0MsT0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzdDLENBQUM7K0dBeEdRLDBCQUEwQjttSEFBMUIsMEJBQTBCLGNBRnZCLE1BQU07OzRGQUVULDBCQUEwQjtrQkFIdEMsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIENsaVByb2Nlc3NDb21tYW5kLFxuICAgIElDbGlDb21tYW5kQXV0aG9yLFxuICAgIElDbGlDb21tYW5kUHJvY2Vzc29yLFxuICAgIElDbGlFeGVjdXRpb25Db250ZXh0LFxufSBmcm9tICdAcW9kYWxpcy9jbGktY29yZSc7XG5cbmltcG9ydCB7IERlZmF1bHRMaWJyYXJ5QXV0aG9yIH0gZnJvbSAnQHFvZGFsaXMvY2xpLWNvcmUnO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBDbGlDb29raWVzQ29tbWFuZFByb2Nlc3NvciBpbXBsZW1lbnRzIElDbGlDb21tYW5kUHJvY2Vzc29yIHtcbiAgICBjb21tYW5kID0gJ2Nvb2tpZXMnO1xuXG4gICAgZGVzY3JpcHRpb24gPSAnSW50ZXJhY3Qgd2l0aCB0aGUgY29va2llcyc7XG5cbiAgICBhdXRob3I/OiBJQ2xpQ29tbWFuZEF1dGhvciB8IHVuZGVmaW5lZCA9IERlZmF1bHRMaWJyYXJ5QXV0aG9yO1xuXG4gICAgcHJvY2Vzc29ycz86IElDbGlDb21tYW5kUHJvY2Vzc29yW10gfCB1bmRlZmluZWQgPSBbXTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLnByb2Nlc3NvcnMgPSBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29tbWFuZDogJ2xpc3QnLFxuICAgICAgICAgICAgICAgIGFsbG93VW5saXN0ZWRDb21tYW5kczogdHJ1ZSxcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ0xpc3QgYWxsIGNvb2tpZXMnLFxuICAgICAgICAgICAgICAgIHByb2Nlc3NDb21tYW5kOiBhc3luYyAoXG4gICAgICAgICAgICAgICAgICAgIGNvbW1hbmQ6IENsaVByb2Nlc3NDb21tYW5kLFxuICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiBJQ2xpRXhlY3V0aW9uQ29udGV4dCxcbiAgICAgICAgICAgICAgICApID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY29va2llcyA9IGRvY3VtZW50LmNvb2tpZS5zcGxpdCgnOyAnKS5yZWR1Y2UoXG4gICAgICAgICAgICAgICAgICAgICAgICAoYWNjLCBjb29raWUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBbY29va2llS2V5LCBjb29raWVWYWx1ZV0gPSBjb29raWUuc3BsaXQoJz0nKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY2NbY29va2llS2V5XSA9IGRlY29kZVVSSUNvbXBvbmVudChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29va2llVmFsdWUgfHwgJycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHt9IGFzIFJlY29yZDxzdHJpbmcsIHN0cmluZz4sXG4gICAgICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoY29va2llcykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQud3JpdGVyLndyaXRlbG4oYCR7a2V5fTogJHt2YWx1ZX1gKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNvbW1hbmQ6ICdnZXQnLFxuICAgICAgICAgICAgICAgIGFsbG93VW5saXN0ZWRDb21tYW5kczogdHJ1ZSxcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ0dldCB0aGUgdmFsdWUgb2YgYSBrZXknLFxuICAgICAgICAgICAgICAgIHByb2Nlc3NDb21tYW5kOiBhc3luYyAoXG4gICAgICAgICAgICAgICAgICAgIGNvbW1hbmQ6IENsaVByb2Nlc3NDb21tYW5kLFxuICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiBJQ2xpRXhlY3V0aW9uQ29udGV4dCxcbiAgICAgICAgICAgICAgICApID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgW2tleV0gPSBjb21tYW5kLmNoYWluQ29tbWFuZHMuc2xpY2UoMik7XG5cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY29va2llcyA9IGRvY3VtZW50LmNvb2tpZS5zcGxpdCgnOyAnKS5yZWR1Y2UoXG4gICAgICAgICAgICAgICAgICAgICAgICAoYWNjLCBjb29raWUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBbY29va2llS2V5LCBjb29raWVWYWx1ZV0gPSBjb29raWUuc3BsaXQoJz0nKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY2NbY29va2llS2V5XSA9IGRlY29kZVVSSUNvbXBvbmVudChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29va2llVmFsdWUgfHwgJycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHt9IGFzIFJlY29yZDxzdHJpbmcsIHN0cmluZz4sXG4gICAgICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBjb29raWVzW2tleV07XG5cbiAgICAgICAgICAgICAgICAgICAgY29udGV4dC53cml0ZXIud3JpdGVsbih2YWx1ZSB8fCAnbnVsbCcpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNvbW1hbmQ6ICdzZXQnLFxuICAgICAgICAgICAgICAgIGFsbG93VW5saXN0ZWRDb21tYW5kczogdHJ1ZSxcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1NldCB0aGUgdmFsdWUgb2YgYSBrZXknLFxuICAgICAgICAgICAgICAgIHByb2Nlc3NDb21tYW5kOiBhc3luYyAoXG4gICAgICAgICAgICAgICAgICAgIGNvbW1hbmQ6IENsaVByb2Nlc3NDb21tYW5kLFxuICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiBJQ2xpRXhlY3V0aW9uQ29udGV4dCxcbiAgICAgICAgICAgICAgICApID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgW2tleSwgLi4udmFsdWVdID0gY29tbWFuZC5jaGFpbkNvbW1hbmRzLnNsaWNlKDEpO1xuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGV4cGlyZXMgPSBuZXcgRGF0ZSgpO1xuICAgICAgICAgICAgICAgICAgICBleHBpcmVzLnNldEZ1bGxZZWFyKGV4cGlyZXMuZ2V0RnVsbFllYXIoKSArIDEpO1xuXG4gICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9IGAke2tleX09JHtlbmNvZGVVUklDb21wb25lbnQodmFsdWUuam9pbignICcpKX07ZXhwaXJlcz0ke2V4cGlyZXMudG9VVENTdHJpbmcoKX07cGF0aD0vYDtcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dC53cml0ZXIud3JpdGVTdWNjZXNzKCdDb29raWUgc2V0IHN1Y2Nlc3NmdWxseScpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNvbW1hbmQ6ICdyZW1vdmUnLFxuICAgICAgICAgICAgICAgIGFsbG93VW5saXN0ZWRDb21tYW5kczogdHJ1ZSxcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1JlbW92ZSBhIGtleScsXG4gICAgICAgICAgICAgICAgcHJvY2Vzc0NvbW1hbmQ6IGFzeW5jIChcbiAgICAgICAgICAgICAgICAgICAgY29tbWFuZDogQ2xpUHJvY2Vzc0NvbW1hbmQsXG4gICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IElDbGlFeGVjdXRpb25Db250ZXh0LFxuICAgICAgICAgICAgICAgICkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBba2V5XSA9IGNvbW1hbmQuY2hhaW5Db21tYW5kcy5zbGljZSgxKTtcblxuICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5jb29raWUgPSBgJHtrZXl9PTtleHBpcmVzPVRodSwgMDEgSmFuIDE5NzAgMDA6MDA6MDAgVVRDO3BhdGg9L2A7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRleHQud3JpdGVyLndyaXRlU3VjY2VzcygnQ29va2llIHJlbW92ZWQgc3VjY2Vzc2Z1bGx5Jyk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIF07XG4gICAgfVxuXG4gICAgYXN5bmMgcHJvY2Vzc0NvbW1hbmQoXG4gICAgICAgIGNvbW1hbmQ6IENsaVByb2Nlc3NDb21tYW5kLFxuICAgICAgICBjb250ZXh0OiBJQ2xpRXhlY3V0aW9uQ29udGV4dCxcbiAgICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29udGV4dC53cml0ZXIud3JpdGVFcnJvcignQ2hvb3NlIGEgc3ViLWNvbW1hbmQnKTtcbiAgICB9XG5cbiAgICB3cml0ZURlc2NyaXB0aW9uPyhjb250ZXh0OiBJQ2xpRXhlY3V0aW9uQ29udGV4dCk6IHZvaWQge1xuICAgICAgICBjb250ZXh0LndyaXRlci53cml0ZWxuKHRoaXMuZGVzY3JpcHRpb24pO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { DefaultLibraryAuthor } from '@qodalis/cli-core';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class CliLocalStorageCommandProcessor {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.command = 'local-storage';
|
|
7
|
+
this.description = 'Interact with the local storage';
|
|
8
|
+
this.author = DefaultLibraryAuthor;
|
|
9
|
+
this.processors = [];
|
|
10
|
+
this.processors = [
|
|
11
|
+
{
|
|
12
|
+
command: 'get',
|
|
13
|
+
allowUnlistedCommands: true,
|
|
14
|
+
description: 'Get the value of a key',
|
|
15
|
+
processCommand: async (command, context) => {
|
|
16
|
+
const [key] = command.chainCommands.slice(1);
|
|
17
|
+
const value = localStorage.getItem(key);
|
|
18
|
+
context.writer.writeln(value || 'null');
|
|
19
|
+
},
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
command: 'set',
|
|
23
|
+
allowUnlistedCommands: true,
|
|
24
|
+
description: 'Set the value of a key',
|
|
25
|
+
processCommand: async (command, context) => {
|
|
26
|
+
const [key, ...value] = command.chainCommands.slice(1);
|
|
27
|
+
localStorage.setItem(key, value.join(' '));
|
|
28
|
+
context.writer.writeSuccess('Value set successfully');
|
|
29
|
+
},
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
command: 'remove',
|
|
33
|
+
allowUnlistedCommands: true,
|
|
34
|
+
description: 'Remove a key',
|
|
35
|
+
processCommand: async (command, context) => {
|
|
36
|
+
const [key] = command.chainCommands.slice(2);
|
|
37
|
+
localStorage.removeItem(key);
|
|
38
|
+
context.writer.writeSuccess('Key removed successfully');
|
|
39
|
+
},
|
|
40
|
+
},
|
|
41
|
+
];
|
|
42
|
+
}
|
|
43
|
+
async processCommand(command, context) {
|
|
44
|
+
context.writer.writeError('Choose a sub-command');
|
|
45
|
+
}
|
|
46
|
+
writeDescription(context) {
|
|
47
|
+
context.writer.writeln('local-storage get <key>');
|
|
48
|
+
context.writer.writeln('Gets the value of the specified key');
|
|
49
|
+
context.writer.writeln('local-storage set <key> <value>');
|
|
50
|
+
context.writer.writeln('Sets the value of the specified key');
|
|
51
|
+
context.writer.writeln('local-storage remove <key>');
|
|
52
|
+
context.writer.writeln('Removes the specified key');
|
|
53
|
+
}
|
|
54
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CliLocalStorageCommandProcessor, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
55
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CliLocalStorageCommandProcessor, providedIn: 'root' }); }
|
|
56
|
+
}
|
|
57
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CliLocalStorageCommandProcessor, decorators: [{
|
|
58
|
+
type: Injectable,
|
|
59
|
+
args: [{
|
|
60
|
+
providedIn: 'root',
|
|
61
|
+
}]
|
|
62
|
+
}], ctorParameters: function () { return []; } });
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLWxvY2FsLXN0b3JhZ2UtY29tbWFuZC1wcm9jZXNzb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9icm93c2VyLXN0b3JhZ2Uvc3JjL2xpYi9wcm9jZXNzb3JzL2NsaS1sb2NhbC1zdG9yYWdlLWNvbW1hbmQtcHJvY2Vzc29yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFRM0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7O0FBS3pELE1BQU0sT0FBTywrQkFBK0I7SUFTeEM7UUFSQSxZQUFPLEdBQUcsZUFBZSxDQUFDO1FBRTFCLGdCQUFXLEdBQUcsaUNBQWlDLENBQUM7UUFFaEQsV0FBTSxHQUFtQyxvQkFBb0IsQ0FBQztRQUU5RCxlQUFVLEdBQXdDLEVBQUUsQ0FBQztRQUdqRCxJQUFJLENBQUMsVUFBVSxHQUFHO1lBQ2Q7Z0JBQ0ksT0FBTyxFQUFFLEtBQUs7Z0JBQ2QscUJBQXFCLEVBQUUsSUFBSTtnQkFDM0IsV0FBVyxFQUFFLHdCQUF3QjtnQkFDckMsY0FBYyxFQUFFLEtBQUssRUFDakIsT0FBMEIsRUFDMUIsT0FBNkIsRUFDL0IsRUFBRTtvQkFDQSxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBRTdDLE1BQU0sS0FBSyxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7b0JBQ3hDLE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssSUFBSSxNQUFNLENBQUMsQ0FBQztnQkFDNUMsQ0FBQzthQUNKO1lBQ0Q7Z0JBQ0ksT0FBTyxFQUFFLEtBQUs7Z0JBQ2QscUJBQXFCLEVBQUUsSUFBSTtnQkFDM0IsV0FBVyxFQUFFLHdCQUF3QjtnQkFDckMsY0FBYyxFQUFFLEtBQUssRUFDakIsT0FBMEIsRUFDMUIsT0FBNkIsRUFDL0IsRUFBRTtvQkFDQSxNQUFNLENBQUMsR0FBRyxFQUFFLEdBQUcsS0FBSyxDQUFDLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBRXZELFlBQVksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztvQkFDM0MsT0FBTyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsd0JBQXdCLENBQUMsQ0FBQztnQkFDMUQsQ0FBQzthQUNKO1lBQ0Q7Z0JBQ0ksT0FBTyxFQUFFLFFBQVE7Z0JBQ2pCLHFCQUFxQixFQUFFLElBQUk7Z0JBQzNCLFdBQVcsRUFBRSxjQUFjO2dCQUMzQixjQUFjLEVBQUUsS0FBSyxFQUNqQixPQUEwQixFQUMxQixPQUE2QixFQUMvQixFQUFFO29CQUNBLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFFN0MsWUFBWSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDN0IsT0FBTyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsMEJBQTBCLENBQUMsQ0FBQztnQkFDNUQsQ0FBQzthQUNKO1NBQ0osQ0FBQztJQUNOLENBQUM7SUFFRCxLQUFLLENBQUMsY0FBYyxDQUNoQixPQUEwQixFQUMxQixPQUE2QjtRQUU3QixPQUFPLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxnQkFBZ0IsQ0FBRSxPQUE2QjtRQUMzQyxPQUFPLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1FBQ2xELE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLHFDQUFxQyxDQUFDLENBQUM7UUFFOUQsT0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsaUNBQWlDLENBQUMsQ0FBQztRQUMxRCxPQUFPLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFDO1FBRTlELE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLDRCQUE0QixDQUFDLENBQUM7UUFDckQsT0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsMkJBQTJCLENBQUMsQ0FBQztJQUN4RCxDQUFDOytHQXhFUSwrQkFBK0I7bUhBQS9CLCtCQUErQixjQUY1QixNQUFNOzs0RkFFVCwrQkFBK0I7a0JBSDNDLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBDbGlQcm9jZXNzQ29tbWFuZCxcbiAgICBJQ2xpQ29tbWFuZEF1dGhvcixcbiAgICBJQ2xpQ29tbWFuZFByb2Nlc3NvcixcbiAgICBJQ2xpRXhlY3V0aW9uQ29udGV4dCxcbn0gZnJvbSAnQHFvZGFsaXMvY2xpLWNvcmUnO1xuXG5pbXBvcnQgeyBEZWZhdWx0TGlicmFyeUF1dGhvciB9IGZyb20gJ0Bxb2RhbGlzL2NsaS1jb3JlJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQ2xpTG9jYWxTdG9yYWdlQ29tbWFuZFByb2Nlc3NvciBpbXBsZW1lbnRzIElDbGlDb21tYW5kUHJvY2Vzc29yIHtcbiAgICBjb21tYW5kID0gJ2xvY2FsLXN0b3JhZ2UnO1xuXG4gICAgZGVzY3JpcHRpb24gPSAnSW50ZXJhY3Qgd2l0aCB0aGUgbG9jYWwgc3RvcmFnZSc7XG5cbiAgICBhdXRob3I/OiBJQ2xpQ29tbWFuZEF1dGhvciB8IHVuZGVmaW5lZCA9IERlZmF1bHRMaWJyYXJ5QXV0aG9yO1xuXG4gICAgcHJvY2Vzc29ycz86IElDbGlDb21tYW5kUHJvY2Vzc29yW10gfCB1bmRlZmluZWQgPSBbXTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLnByb2Nlc3NvcnMgPSBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29tbWFuZDogJ2dldCcsXG4gICAgICAgICAgICAgICAgYWxsb3dVbmxpc3RlZENvbW1hbmRzOiB0cnVlLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnR2V0IHRoZSB2YWx1ZSBvZiBhIGtleScsXG4gICAgICAgICAgICAgICAgcHJvY2Vzc0NvbW1hbmQ6IGFzeW5jIChcbiAgICAgICAgICAgICAgICAgICAgY29tbWFuZDogQ2xpUHJvY2Vzc0NvbW1hbmQsXG4gICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IElDbGlFeGVjdXRpb25Db250ZXh0LFxuICAgICAgICAgICAgICAgICkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBba2V5XSA9IGNvbW1hbmQuY2hhaW5Db21tYW5kcy5zbGljZSgxKTtcblxuICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKGtleSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRleHQud3JpdGVyLndyaXRlbG4odmFsdWUgfHwgJ251bGwnKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjb21tYW5kOiAnc2V0JyxcbiAgICAgICAgICAgICAgICBhbGxvd1VubGlzdGVkQ29tbWFuZHM6IHRydWUsXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdTZXQgdGhlIHZhbHVlIG9mIGEga2V5JyxcbiAgICAgICAgICAgICAgICBwcm9jZXNzQ29tbWFuZDogYXN5bmMgKFxuICAgICAgICAgICAgICAgICAgICBjb21tYW5kOiBDbGlQcm9jZXNzQ29tbWFuZCxcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dDogSUNsaUV4ZWN1dGlvbkNvbnRleHQsXG4gICAgICAgICAgICAgICAgKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IFtrZXksIC4uLnZhbHVlXSA9IGNvbW1hbmQuY2hhaW5Db21tYW5kcy5zbGljZSgxKTtcblxuICAgICAgICAgICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShrZXksIHZhbHVlLmpvaW4oJyAnKSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRleHQud3JpdGVyLndyaXRlU3VjY2VzcygnVmFsdWUgc2V0IHN1Y2Nlc3NmdWxseScpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNvbW1hbmQ6ICdyZW1vdmUnLFxuICAgICAgICAgICAgICAgIGFsbG93VW5saXN0ZWRDb21tYW5kczogdHJ1ZSxcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1JlbW92ZSBhIGtleScsXG4gICAgICAgICAgICAgICAgcHJvY2Vzc0NvbW1hbmQ6IGFzeW5jIChcbiAgICAgICAgICAgICAgICAgICAgY29tbWFuZDogQ2xpUHJvY2Vzc0NvbW1hbmQsXG4gICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IElDbGlFeGVjdXRpb25Db250ZXh0LFxuICAgICAgICAgICAgICAgICkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBba2V5XSA9IGNvbW1hbmQuY2hhaW5Db21tYW5kcy5zbGljZSgyKTtcblxuICAgICAgICAgICAgICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShrZXkpO1xuICAgICAgICAgICAgICAgICAgICBjb250ZXh0LndyaXRlci53cml0ZVN1Y2Nlc3MoJ0tleSByZW1vdmVkIHN1Y2Nlc3NmdWxseScpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICBdO1xuICAgIH1cblxuICAgIGFzeW5jIHByb2Nlc3NDb21tYW5kKFxuICAgICAgICBjb21tYW5kOiBDbGlQcm9jZXNzQ29tbWFuZCxcbiAgICAgICAgY29udGV4dDogSUNsaUV4ZWN1dGlvbkNvbnRleHQsXG4gICAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGNvbnRleHQud3JpdGVyLndyaXRlRXJyb3IoJ0Nob29zZSBhIHN1Yi1jb21tYW5kJyk7XG4gICAgfVxuXG4gICAgd3JpdGVEZXNjcmlwdGlvbj8oY29udGV4dDogSUNsaUV4ZWN1dGlvbkNvbnRleHQpOiB2b2lkIHtcbiAgICAgICAgY29udGV4dC53cml0ZXIud3JpdGVsbignbG9jYWwtc3RvcmFnZSBnZXQgPGtleT4nKTtcbiAgICAgICAgY29udGV4dC53cml0ZXIud3JpdGVsbignR2V0cyB0aGUgdmFsdWUgb2YgdGhlIHNwZWNpZmllZCBrZXknKTtcblxuICAgICAgICBjb250ZXh0LndyaXRlci53cml0ZWxuKCdsb2NhbC1zdG9yYWdlIHNldCA8a2V5PiA8dmFsdWU+Jyk7XG4gICAgICAgIGNvbnRleHQud3JpdGVyLndyaXRlbG4oJ1NldHMgdGhlIHZhbHVlIG9mIHRoZSBzcGVjaWZpZWQga2V5Jyk7XG5cbiAgICAgICAgY29udGV4dC53cml0ZXIud3JpdGVsbignbG9jYWwtc3RvcmFnZSByZW1vdmUgPGtleT4nKTtcbiAgICAgICAgY29udGV4dC53cml0ZXIud3JpdGVsbignUmVtb3ZlcyB0aGUgc3BlY2lmaWVkIGtleScpO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Public API Surface of browser-storage
|
|
3
|
+
*/
|
|
4
|
+
export * from './lib/cli-browser-storage.module';
|
|
5
|
+
export * from './lib/index';
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2Jyb3dzZXItc3RvcmFnZS9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsa0NBQWtDLENBQUM7QUFFakQsY0FBYyxhQUFhLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIGJyb3dzZXItc3RvcmFnZVxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2NsaS1icm93c2VyLXN0b3JhZ2UubW9kdWxlJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvaW5kZXgnO1xuIl19
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './public-api';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicW9kYWxpcy1jbGktYnJvd3Nlci1zdG9yYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcHJvamVjdHMvYnJvd3Nlci1zdG9yYWdlL3NyYy9xb2RhbGlzLWNsaS1icm93c2VyLXN0b3JhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { Injectable, NgModule } from '@angular/core';
|
|
3
|
+
import { DefaultLibraryAuthor } from '@qodalis/cli-core';
|
|
4
|
+
import { resolveCommandProcessorProvider } from '@qodalis/angular-cli';
|
|
5
|
+
|
|
6
|
+
class CliCookiesCommandProcessor {
|
|
7
|
+
constructor() {
|
|
8
|
+
this.command = 'cookies';
|
|
9
|
+
this.description = 'Interact with the cookies';
|
|
10
|
+
this.author = DefaultLibraryAuthor;
|
|
11
|
+
this.processors = [];
|
|
12
|
+
this.processors = [
|
|
13
|
+
{
|
|
14
|
+
command: 'list',
|
|
15
|
+
allowUnlistedCommands: true,
|
|
16
|
+
description: 'List all cookies',
|
|
17
|
+
processCommand: async (command, context) => {
|
|
18
|
+
const cookies = document.cookie.split('; ').reduce((acc, cookie) => {
|
|
19
|
+
const [cookieKey, cookieValue] = cookie.split('=');
|
|
20
|
+
acc[cookieKey] = decodeURIComponent(cookieValue || '');
|
|
21
|
+
return acc;
|
|
22
|
+
}, {});
|
|
23
|
+
for (const [key, value] of Object.entries(cookies)) {
|
|
24
|
+
context.writer.writeln(`${key}: ${value}`);
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
command: 'get',
|
|
30
|
+
allowUnlistedCommands: true,
|
|
31
|
+
description: 'Get the value of a key',
|
|
32
|
+
processCommand: async (command, context) => {
|
|
33
|
+
const [key] = command.chainCommands.slice(2);
|
|
34
|
+
const cookies = document.cookie.split('; ').reduce((acc, cookie) => {
|
|
35
|
+
const [cookieKey, cookieValue] = cookie.split('=');
|
|
36
|
+
acc[cookieKey] = decodeURIComponent(cookieValue || '');
|
|
37
|
+
return acc;
|
|
38
|
+
}, {});
|
|
39
|
+
const value = cookies[key];
|
|
40
|
+
context.writer.writeln(value || 'null');
|
|
41
|
+
},
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
command: 'set',
|
|
45
|
+
allowUnlistedCommands: true,
|
|
46
|
+
description: 'Set the value of a key',
|
|
47
|
+
processCommand: async (command, context) => {
|
|
48
|
+
const [key, ...value] = command.chainCommands.slice(1);
|
|
49
|
+
const expires = new Date();
|
|
50
|
+
expires.setFullYear(expires.getFullYear() + 1);
|
|
51
|
+
document.cookie = `${key}=${encodeURIComponent(value.join(' '))};expires=${expires.toUTCString()};path=/`;
|
|
52
|
+
context.writer.writeSuccess('Cookie set successfully');
|
|
53
|
+
},
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
command: 'remove',
|
|
57
|
+
allowUnlistedCommands: true,
|
|
58
|
+
description: 'Remove a key',
|
|
59
|
+
processCommand: async (command, context) => {
|
|
60
|
+
const [key] = command.chainCommands.slice(1);
|
|
61
|
+
document.cookie = `${key}=;expires=Thu, 01 Jan 1970 00:00:00 UTC;path=/`;
|
|
62
|
+
context.writer.writeSuccess('Cookie removed successfully');
|
|
63
|
+
},
|
|
64
|
+
},
|
|
65
|
+
];
|
|
66
|
+
}
|
|
67
|
+
async processCommand(command, context) {
|
|
68
|
+
context.writer.writeError('Choose a sub-command');
|
|
69
|
+
}
|
|
70
|
+
writeDescription(context) {
|
|
71
|
+
context.writer.writeln(this.description);
|
|
72
|
+
}
|
|
73
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CliCookiesCommandProcessor, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
74
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CliCookiesCommandProcessor, providedIn: 'root' }); }
|
|
75
|
+
}
|
|
76
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CliCookiesCommandProcessor, decorators: [{
|
|
77
|
+
type: Injectable,
|
|
78
|
+
args: [{
|
|
79
|
+
providedIn: 'root',
|
|
80
|
+
}]
|
|
81
|
+
}], ctorParameters: function () { return []; } });
|
|
82
|
+
|
|
83
|
+
class CliLocalStorageCommandProcessor {
|
|
84
|
+
constructor() {
|
|
85
|
+
this.command = 'local-storage';
|
|
86
|
+
this.description = 'Interact with the local storage';
|
|
87
|
+
this.author = DefaultLibraryAuthor;
|
|
88
|
+
this.processors = [];
|
|
89
|
+
this.processors = [
|
|
90
|
+
{
|
|
91
|
+
command: 'get',
|
|
92
|
+
allowUnlistedCommands: true,
|
|
93
|
+
description: 'Get the value of a key',
|
|
94
|
+
processCommand: async (command, context) => {
|
|
95
|
+
const [key] = command.chainCommands.slice(1);
|
|
96
|
+
const value = localStorage.getItem(key);
|
|
97
|
+
context.writer.writeln(value || 'null');
|
|
98
|
+
},
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
command: 'set',
|
|
102
|
+
allowUnlistedCommands: true,
|
|
103
|
+
description: 'Set the value of a key',
|
|
104
|
+
processCommand: async (command, context) => {
|
|
105
|
+
const [key, ...value] = command.chainCommands.slice(1);
|
|
106
|
+
localStorage.setItem(key, value.join(' '));
|
|
107
|
+
context.writer.writeSuccess('Value set successfully');
|
|
108
|
+
},
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
command: 'remove',
|
|
112
|
+
allowUnlistedCommands: true,
|
|
113
|
+
description: 'Remove a key',
|
|
114
|
+
processCommand: async (command, context) => {
|
|
115
|
+
const [key] = command.chainCommands.slice(2);
|
|
116
|
+
localStorage.removeItem(key);
|
|
117
|
+
context.writer.writeSuccess('Key removed successfully');
|
|
118
|
+
},
|
|
119
|
+
},
|
|
120
|
+
];
|
|
121
|
+
}
|
|
122
|
+
async processCommand(command, context) {
|
|
123
|
+
context.writer.writeError('Choose a sub-command');
|
|
124
|
+
}
|
|
125
|
+
writeDescription(context) {
|
|
126
|
+
context.writer.writeln('local-storage get <key>');
|
|
127
|
+
context.writer.writeln('Gets the value of the specified key');
|
|
128
|
+
context.writer.writeln('local-storage set <key> <value>');
|
|
129
|
+
context.writer.writeln('Sets the value of the specified key');
|
|
130
|
+
context.writer.writeln('local-storage remove <key>');
|
|
131
|
+
context.writer.writeln('Removes the specified key');
|
|
132
|
+
}
|
|
133
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CliLocalStorageCommandProcessor, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
134
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CliLocalStorageCommandProcessor, providedIn: 'root' }); }
|
|
135
|
+
}
|
|
136
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CliLocalStorageCommandProcessor, decorators: [{
|
|
137
|
+
type: Injectable,
|
|
138
|
+
args: [{
|
|
139
|
+
providedIn: 'root',
|
|
140
|
+
}]
|
|
141
|
+
}], ctorParameters: function () { return []; } });
|
|
142
|
+
|
|
143
|
+
class CliBrowserStorageModule {
|
|
144
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CliBrowserStorageModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
145
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: CliBrowserStorageModule }); }
|
|
146
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CliBrowserStorageModule, providers: [
|
|
147
|
+
resolveCommandProcessorProvider(CliCookiesCommandProcessor),
|
|
148
|
+
resolveCommandProcessorProvider(CliLocalStorageCommandProcessor),
|
|
149
|
+
] }); }
|
|
150
|
+
}
|
|
151
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CliBrowserStorageModule, decorators: [{
|
|
152
|
+
type: NgModule,
|
|
153
|
+
args: [{
|
|
154
|
+
declarations: [],
|
|
155
|
+
imports: [],
|
|
156
|
+
exports: [],
|
|
157
|
+
providers: [
|
|
158
|
+
resolveCommandProcessorProvider(CliCookiesCommandProcessor),
|
|
159
|
+
resolveCommandProcessorProvider(CliLocalStorageCommandProcessor),
|
|
160
|
+
],
|
|
161
|
+
}]
|
|
162
|
+
}] });
|
|
163
|
+
|
|
164
|
+
/*
|
|
165
|
+
* Public API Surface of browser-storage
|
|
166
|
+
*/
|
|
167
|
+
|
|
168
|
+
/**
|
|
169
|
+
* Generated bundle index. Do not edit.
|
|
170
|
+
*/
|
|
171
|
+
|
|
172
|
+
export { CliBrowserStorageModule, CliCookiesCommandProcessor, CliLocalStorageCommandProcessor };
|
|
173
|
+
//# sourceMappingURL=qodalis-cli-browser-storage.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"qodalis-cli-browser-storage.mjs","sources":["../../../projects/browser-storage/src/lib/processors/cli-cookies-command-processor.ts","../../../projects/browser-storage/src/lib/processors/cli-local-storage-command-processor.ts","../../../projects/browser-storage/src/lib/cli-browser-storage.module.ts","../../../projects/browser-storage/src/public-api.ts","../../../projects/browser-storage/src/qodalis-cli-browser-storage.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport {\n CliProcessCommand,\n ICliCommandAuthor,\n ICliCommandProcessor,\n ICliExecutionContext,\n} from '@qodalis/cli-core';\n\nimport { DefaultLibraryAuthor } from '@qodalis/cli-core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CliCookiesCommandProcessor implements ICliCommandProcessor {\n command = 'cookies';\n\n description = 'Interact with the cookies';\n\n author?: ICliCommandAuthor | undefined = DefaultLibraryAuthor;\n\n processors?: ICliCommandProcessor[] | undefined = [];\n\n constructor() {\n this.processors = [\n {\n command: 'list',\n allowUnlistedCommands: true,\n description: 'List all cookies',\n processCommand: async (\n command: CliProcessCommand,\n context: ICliExecutionContext,\n ) => {\n const cookies = document.cookie.split('; ').reduce(\n (acc, cookie) => {\n const [cookieKey, cookieValue] = cookie.split('=');\n acc[cookieKey] = decodeURIComponent(\n cookieValue || '',\n );\n return acc;\n },\n {} as Record<string, string>,\n );\n\n for (const [key, value] of Object.entries(cookies)) {\n context.writer.writeln(`${key}: ${value}`);\n }\n },\n },\n {\n command: 'get',\n allowUnlistedCommands: true,\n description: 'Get the value of a key',\n processCommand: async (\n command: CliProcessCommand,\n context: ICliExecutionContext,\n ) => {\n const [key] = command.chainCommands.slice(2);\n\n const cookies = document.cookie.split('; ').reduce(\n (acc, cookie) => {\n const [cookieKey, cookieValue] = cookie.split('=');\n acc[cookieKey] = decodeURIComponent(\n cookieValue || '',\n );\n return acc;\n },\n {} as Record<string, string>,\n );\n\n const value = cookies[key];\n\n context.writer.writeln(value || 'null');\n },\n },\n {\n command: 'set',\n allowUnlistedCommands: true,\n description: 'Set the value of a key',\n processCommand: async (\n command: CliProcessCommand,\n context: ICliExecutionContext,\n ) => {\n const [key, ...value] = command.chainCommands.slice(1);\n\n const expires = new Date();\n expires.setFullYear(expires.getFullYear() + 1);\n\n document.cookie = `${key}=${encodeURIComponent(value.join(' '))};expires=${expires.toUTCString()};path=/`;\n context.writer.writeSuccess('Cookie set successfully');\n },\n },\n {\n command: 'remove',\n allowUnlistedCommands: true,\n description: 'Remove a key',\n processCommand: async (\n command: CliProcessCommand,\n context: ICliExecutionContext,\n ) => {\n const [key] = command.chainCommands.slice(1);\n\n document.cookie = `${key}=;expires=Thu, 01 Jan 1970 00:00:00 UTC;path=/`;\n context.writer.writeSuccess('Cookie removed successfully');\n },\n },\n ];\n }\n\n async processCommand(\n command: CliProcessCommand,\n context: ICliExecutionContext,\n ): Promise<void> {\n context.writer.writeError('Choose a sub-command');\n }\n\n writeDescription?(context: ICliExecutionContext): void {\n context.writer.writeln(this.description);\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n CliProcessCommand,\n ICliCommandAuthor,\n ICliCommandProcessor,\n ICliExecutionContext,\n} from '@qodalis/cli-core';\n\nimport { DefaultLibraryAuthor } from '@qodalis/cli-core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CliLocalStorageCommandProcessor implements ICliCommandProcessor {\n command = 'local-storage';\n\n description = 'Interact with the local storage';\n\n author?: ICliCommandAuthor | undefined = DefaultLibraryAuthor;\n\n processors?: ICliCommandProcessor[] | undefined = [];\n\n constructor() {\n this.processors = [\n {\n command: 'get',\n allowUnlistedCommands: true,\n description: 'Get the value of a key',\n processCommand: async (\n command: CliProcessCommand,\n context: ICliExecutionContext,\n ) => {\n const [key] = command.chainCommands.slice(1);\n\n const value = localStorage.getItem(key);\n context.writer.writeln(value || 'null');\n },\n },\n {\n command: 'set',\n allowUnlistedCommands: true,\n description: 'Set the value of a key',\n processCommand: async (\n command: CliProcessCommand,\n context: ICliExecutionContext,\n ) => {\n const [key, ...value] = command.chainCommands.slice(1);\n\n localStorage.setItem(key, value.join(' '));\n context.writer.writeSuccess('Value set successfully');\n },\n },\n {\n command: 'remove',\n allowUnlistedCommands: true,\n description: 'Remove a key',\n processCommand: async (\n command: CliProcessCommand,\n context: ICliExecutionContext,\n ) => {\n const [key] = command.chainCommands.slice(2);\n\n localStorage.removeItem(key);\n context.writer.writeSuccess('Key removed successfully');\n },\n },\n ];\n }\n\n async processCommand(\n command: CliProcessCommand,\n context: ICliExecutionContext,\n ): Promise<void> {\n context.writer.writeError('Choose a sub-command');\n }\n\n writeDescription?(context: ICliExecutionContext): void {\n context.writer.writeln('local-storage get <key>');\n context.writer.writeln('Gets the value of the specified key');\n\n context.writer.writeln('local-storage set <key> <value>');\n context.writer.writeln('Sets the value of the specified key');\n\n context.writer.writeln('local-storage remove <key>');\n context.writer.writeln('Removes the specified key');\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CliCookiesCommandProcessor } from './processors/cli-cookies-command-processor';\nimport { CliLocalStorageCommandProcessor } from './processors/cli-local-storage-command-processor';\nimport { resolveCommandProcessorProvider } from '@qodalis/angular-cli';\n\n@NgModule({\n declarations: [],\n imports: [],\n exports: [],\n providers: [\n resolveCommandProcessorProvider(CliCookiesCommandProcessor),\n resolveCommandProcessorProvider(CliLocalStorageCommandProcessor),\n ],\n})\nexport class CliBrowserStorageModule {}\n","/*\n * Public API Surface of browser-storage\n */\n\nexport * from './lib/cli-browser-storage.module';\n\nexport * from './lib/index';\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,6 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
export declare class CliBrowserStorageModule {
|
|
3
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<CliBrowserStorageModule, never>;
|
|
4
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<CliBrowserStorageModule, never, never, never>;
|
|
5
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<CliBrowserStorageModule>;
|
|
6
|
+
}
|
package/lib/index.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { CliProcessCommand, ICliCommandAuthor, ICliCommandProcessor, ICliExecutionContext } from '@qodalis/cli-core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class CliCookiesCommandProcessor implements ICliCommandProcessor {
|
|
4
|
+
command: string;
|
|
5
|
+
description: string;
|
|
6
|
+
author?: ICliCommandAuthor | undefined;
|
|
7
|
+
processors?: ICliCommandProcessor[] | undefined;
|
|
8
|
+
constructor();
|
|
9
|
+
processCommand(command: CliProcessCommand, context: ICliExecutionContext): Promise<void>;
|
|
10
|
+
writeDescription?(context: ICliExecutionContext): void;
|
|
11
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<CliCookiesCommandProcessor, never>;
|
|
12
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<CliCookiesCommandProcessor>;
|
|
13
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { CliProcessCommand, ICliCommandAuthor, ICliCommandProcessor, ICliExecutionContext } from '@qodalis/cli-core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class CliLocalStorageCommandProcessor implements ICliCommandProcessor {
|
|
4
|
+
command: string;
|
|
5
|
+
description: string;
|
|
6
|
+
author?: ICliCommandAuthor | undefined;
|
|
7
|
+
processors?: ICliCommandProcessor[] | undefined;
|
|
8
|
+
constructor();
|
|
9
|
+
processCommand(command: CliProcessCommand, context: ICliExecutionContext): Promise<void>;
|
|
10
|
+
writeDescription?(context: ICliExecutionContext): void;
|
|
11
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<CliLocalStorageCommandProcessor, never>;
|
|
12
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<CliLocalStorageCommandProcessor>;
|
|
13
|
+
}
|
package/package.json
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@qodalis/cli-browser-storage",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"description": "An Angular CLI extension that provides browser storage utilities",
|
|
5
|
+
"author": "Nicolae Lupei, Qodalis Solutions",
|
|
6
|
+
"license": "MIT",
|
|
7
|
+
"repository": {
|
|
8
|
+
"type": "git",
|
|
9
|
+
"url": "https://github.com/qodalis-solutions/qodalis-angular-cli"
|
|
10
|
+
},
|
|
11
|
+
"homepage": "https://qodalis.com",
|
|
12
|
+
"keywords": [
|
|
13
|
+
"angular",
|
|
14
|
+
"cli",
|
|
15
|
+
"qodalis",
|
|
16
|
+
"terminal",
|
|
17
|
+
"cookies",
|
|
18
|
+
"localstorage"
|
|
19
|
+
],
|
|
20
|
+
"umd": "./umd/index.js",
|
|
21
|
+
"unpkg": "./umd/index.js",
|
|
22
|
+
"peerDependencies": {
|
|
23
|
+
"@angular/common": "^16.2.0",
|
|
24
|
+
"@angular/core": "^16.2.0"
|
|
25
|
+
},
|
|
26
|
+
"dependencies": {
|
|
27
|
+
"tslib": "^2.3.0",
|
|
28
|
+
"@qodalis/cli-core": "^0.0.6",
|
|
29
|
+
"@qodalis/angular-cli": "^1.0.17"
|
|
30
|
+
},
|
|
31
|
+
"sideEffects": false,
|
|
32
|
+
"module": "fesm2022/qodalis-cli-browser-storage.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-browser-storage.mjs",
|
|
41
|
+
"esm": "./esm2022/qodalis-cli-browser-storage.mjs",
|
|
42
|
+
"default": "./fesm2022/qodalis-cli-browser-storage.mjs"
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
package/public-api.d.ts
ADDED
package/umd/index.js
ADDED
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
(function (global, factory) {
|
|
2
|
+
typeof exports === 'object' && typeof module !== 'undefined' ? factory(require('@qodalis/cli-core'), require('@angular/core')) :
|
|
3
|
+
typeof define === 'function' && define.amd ? define(['@qodalis/cli-core', '@angular/core'], factory) :
|
|
4
|
+
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.cliCore, global.ngCore));
|
|
5
|
+
})(this, (function (cliCore, core) { '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
|
+
let CliCookiesCommandProcessor = class CliCookiesCommandProcessor {
|
|
37
|
+
constructor() {
|
|
38
|
+
this.command = 'cookies';
|
|
39
|
+
this.description = 'Interact with the cookies';
|
|
40
|
+
this.author = cliCore.DefaultLibraryAuthor;
|
|
41
|
+
this.processors = [];
|
|
42
|
+
this.processors = [
|
|
43
|
+
{
|
|
44
|
+
command: 'list',
|
|
45
|
+
allowUnlistedCommands: true,
|
|
46
|
+
description: 'List all cookies',
|
|
47
|
+
processCommand: async (command, context) => {
|
|
48
|
+
const cookies = document.cookie.split('; ').reduce((acc, cookie) => {
|
|
49
|
+
const [cookieKey, cookieValue] = cookie.split('=');
|
|
50
|
+
acc[cookieKey] = decodeURIComponent(cookieValue || '');
|
|
51
|
+
return acc;
|
|
52
|
+
}, {});
|
|
53
|
+
for (const [key, value] of Object.entries(cookies)) {
|
|
54
|
+
context.writer.writeln(`${key}: ${value}`);
|
|
55
|
+
}
|
|
56
|
+
},
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
command: 'get',
|
|
60
|
+
allowUnlistedCommands: true,
|
|
61
|
+
description: 'Get the value of a key',
|
|
62
|
+
processCommand: async (command, context) => {
|
|
63
|
+
const [key] = command.chainCommands.slice(2);
|
|
64
|
+
const cookies = document.cookie.split('; ').reduce((acc, cookie) => {
|
|
65
|
+
const [cookieKey, cookieValue] = cookie.split('=');
|
|
66
|
+
acc[cookieKey] = decodeURIComponent(cookieValue || '');
|
|
67
|
+
return acc;
|
|
68
|
+
}, {});
|
|
69
|
+
const value = cookies[key];
|
|
70
|
+
context.writer.writeln(value || 'null');
|
|
71
|
+
},
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
command: 'set',
|
|
75
|
+
allowUnlistedCommands: true,
|
|
76
|
+
description: 'Set the value of a key',
|
|
77
|
+
processCommand: async (command, context) => {
|
|
78
|
+
const [key, ...value] = command.chainCommands.slice(1);
|
|
79
|
+
const expires = new Date();
|
|
80
|
+
expires.setFullYear(expires.getFullYear() + 1);
|
|
81
|
+
document.cookie = `${key}=${encodeURIComponent(value.join(' '))};expires=${expires.toUTCString()};path=/`;
|
|
82
|
+
context.writer.writeSuccess('Cookie set successfully');
|
|
83
|
+
},
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
command: 'remove',
|
|
87
|
+
allowUnlistedCommands: true,
|
|
88
|
+
description: 'Remove a key',
|
|
89
|
+
processCommand: async (command, context) => {
|
|
90
|
+
const [key] = command.chainCommands.slice(1);
|
|
91
|
+
document.cookie = `${key}=;expires=Thu, 01 Jan 1970 00:00:00 UTC;path=/`;
|
|
92
|
+
context.writer.writeSuccess('Cookie removed successfully');
|
|
93
|
+
},
|
|
94
|
+
},
|
|
95
|
+
];
|
|
96
|
+
}
|
|
97
|
+
async processCommand(command, context) {
|
|
98
|
+
context.writer.writeError('Choose a sub-command');
|
|
99
|
+
}
|
|
100
|
+
writeDescription(context) {
|
|
101
|
+
context.writer.writeln(this.description);
|
|
102
|
+
}
|
|
103
|
+
};
|
|
104
|
+
CliCookiesCommandProcessor = __decorate([
|
|
105
|
+
core.Injectable({
|
|
106
|
+
providedIn: 'root',
|
|
107
|
+
})
|
|
108
|
+
], CliCookiesCommandProcessor);
|
|
109
|
+
|
|
110
|
+
let CliLocalStorageCommandProcessor = class CliLocalStorageCommandProcessor {
|
|
111
|
+
constructor() {
|
|
112
|
+
this.command = 'local-storage';
|
|
113
|
+
this.description = 'Interact with the local storage';
|
|
114
|
+
this.author = cliCore.DefaultLibraryAuthor;
|
|
115
|
+
this.processors = [];
|
|
116
|
+
this.processors = [
|
|
117
|
+
{
|
|
118
|
+
command: 'get',
|
|
119
|
+
allowUnlistedCommands: true,
|
|
120
|
+
description: 'Get the value of a key',
|
|
121
|
+
processCommand: async (command, context) => {
|
|
122
|
+
const [key] = command.chainCommands.slice(1);
|
|
123
|
+
const value = localStorage.getItem(key);
|
|
124
|
+
context.writer.writeln(value || 'null');
|
|
125
|
+
},
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
command: 'set',
|
|
129
|
+
allowUnlistedCommands: true,
|
|
130
|
+
description: 'Set the value of a key',
|
|
131
|
+
processCommand: async (command, context) => {
|
|
132
|
+
const [key, ...value] = command.chainCommands.slice(1);
|
|
133
|
+
localStorage.setItem(key, value.join(' '));
|
|
134
|
+
context.writer.writeSuccess('Value set successfully');
|
|
135
|
+
},
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
command: 'remove',
|
|
139
|
+
allowUnlistedCommands: true,
|
|
140
|
+
description: 'Remove a key',
|
|
141
|
+
processCommand: async (command, context) => {
|
|
142
|
+
const [key] = command.chainCommands.slice(2);
|
|
143
|
+
localStorage.removeItem(key);
|
|
144
|
+
context.writer.writeSuccess('Key removed successfully');
|
|
145
|
+
},
|
|
146
|
+
},
|
|
147
|
+
];
|
|
148
|
+
}
|
|
149
|
+
async processCommand(command, context) {
|
|
150
|
+
context.writer.writeError('Choose a sub-command');
|
|
151
|
+
}
|
|
152
|
+
writeDescription(context) {
|
|
153
|
+
context.writer.writeln('local-storage get <key>');
|
|
154
|
+
context.writer.writeln('Gets the value of the specified key');
|
|
155
|
+
context.writer.writeln('local-storage set <key> <value>');
|
|
156
|
+
context.writer.writeln('Sets the value of the specified key');
|
|
157
|
+
context.writer.writeln('local-storage remove <key>');
|
|
158
|
+
context.writer.writeln('Removes the specified key');
|
|
159
|
+
}
|
|
160
|
+
};
|
|
161
|
+
CliLocalStorageCommandProcessor = __decorate([
|
|
162
|
+
core.Injectable({
|
|
163
|
+
providedIn: 'root',
|
|
164
|
+
})
|
|
165
|
+
], CliLocalStorageCommandProcessor);
|
|
166
|
+
|
|
167
|
+
const module = {
|
|
168
|
+
name: '@qodalis/cli-browser-storage',
|
|
169
|
+
processors: [
|
|
170
|
+
new CliCookiesCommandProcessor(),
|
|
171
|
+
new CliLocalStorageCommandProcessor(),
|
|
172
|
+
],
|
|
173
|
+
};
|
|
174
|
+
cliCore.bootUmdModule(module);
|
|
175
|
+
|
|
176
|
+
}));
|