@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 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,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="@qodalis/cli-browser-storage" />
5
+ export * from './public-api';
@@ -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,2 @@
1
+ export * from './processors/cli-cookies-command-processor';
2
+ export * from './processors/cli-local-storage-command-processor';
@@ -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
+ }
@@ -0,0 +1,2 @@
1
+ export * from './lib/cli-browser-storage.module';
2
+ export * from './lib/index';
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
+ }));