@tasenor/common-node 1.9.145 → 1.9.147

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  import * as FormData from 'form-data';
2
2
  import { HttpMethod, Url, Value, TokenPair, Token, HttpResponse } from '@tasenor/common';
3
- import { Command, CommandArgumentDefault, CommandArguments } from './commands';
3
+ import { Command, CommandArgumentDefault, CommandArguments } from '../commands';
4
4
  /**
5
5
  * Ask a question on the console and return answer.
6
6
  * @param question
@@ -6,20 +6,20 @@ import * as readline from 'readline';
6
6
  import { ArgumentParser } from 'argparse';
7
7
  import { log, mute, waitPromise, note, netConfigure, setNetConf, net } from '@tasenor/common';
8
8
  import clone from 'clone';
9
- import DbCommand from './commands/db';
10
- import AccountCommand from './commands/account';
11
- import BalanceCommand from './commands/balance';
12
- import EntryCommand from './commands/entry';
13
- import ImportCommand from './commands/import';
14
- import PeriodCommand from './commands/period';
15
- import ImporterCommand from './commands/importer';
16
- import PluginCommand from './commands/plugin';
17
- import ReportCommand from './commands/report';
18
- import SettingsCommand from './commands/settings';
19
- import StockCommand from './commands/stock';
20
- import TagCommand from './commands/tag';
21
- import TxCommand from './commands/tx';
22
- import UserCommand from './commands/user';
9
+ import DbCommand from '../commands/db';
10
+ import AccountCommand from '../commands/account';
11
+ import BalanceCommand from '../commands/balance';
12
+ import EntryCommand from '../commands/entry';
13
+ import ImportCommand from '../commands/import';
14
+ import PeriodCommand from '../commands/period';
15
+ import ImporterCommand from '../commands/importer';
16
+ import PluginCommand from '../commands/plugin';
17
+ import ReportCommand from '../commands/report';
18
+ import SettingsCommand from '../commands/settings';
19
+ import StockCommand from '../commands/stock';
20
+ import TagCommand from '../commands/tag';
21
+ import TxCommand from '../commands/tx';
22
+ import UserCommand from '../commands/user';
23
23
  let readlineInterface;
24
24
  /**
25
25
  * Ask a question on the console and return answer.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../src/cli/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export * from './cli';
2
+ export * from './mini-util';
@@ -0,0 +1,3 @@
1
+ export * from './cli';
2
+ export * from './mini-util';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAA;AACrB,cAAc,aAAa,CAAA"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * This is a collection of minimal utils available for easy command-line use.
3
+ *
4
+ * Idea of this library is to provide shared commons for CLI tool funcitonality.
5
+ * To add a tool to any related project, you can create `.mjs` file with the
6
+ * similar content to the following:
7
+ * ```
8
+ * #!/usr/bin/env -S npx tsx
9
+ * import commonNode from '@tasenor/common-node'
10
+ * commonNode.runMiniUtil('encrypt')
11
+ * ```
12
+ *
13
+ * If the name of the file is the same than a function below, you can leave out the name, i.e
14
+ * if the file above is `encrypt.mjs` it suffices to call `commonNode.runMiniUtil()`.
15
+ */
16
+ export interface MiniUtil {
17
+ title: string;
18
+ args: [string, Record<string, string>][];
19
+ exe: (args: Record<string, any>) => Promise<void>;
20
+ }
21
+ /**
22
+ * Runner for mini utils.
23
+ */
24
+ export declare function runMiniUtil(name?: string | undefined): void;
@@ -0,0 +1,102 @@
1
+ import path from 'path';
2
+ import { ArgumentParser } from 'argparse';
3
+ import { cli } from './cli';
4
+ import { Crypto } from '@tasenor/common';
5
+ import { tokens } from '..';
6
+ const utils = {};
7
+ /**
8
+ * Encrypt a string using the secret from argument, environment SECRET or queried from user.
9
+ */
10
+ utils.encrypt = {
11
+ title: 'Encrypt a string.',
12
+ args: [
13
+ ['text', { help: 'Target string to encrypt' }],
14
+ ['secret', { help: 'Secret key. Defaults to SECRET environment. If not given, asks.', nargs: '?' }],
15
+ ],
16
+ exe: async ({ text, secret }) => {
17
+ if (!secret) {
18
+ secret = process.env.SECRET;
19
+ }
20
+ if (!secret) {
21
+ secret = await cli.ask('What is the secret string?');
22
+ }
23
+ const crypted = await Crypto.encrypt(secret, text);
24
+ console.log(crypted);
25
+ },
26
+ };
27
+ /**
28
+ * Decrypt an encoded string using the secret from argument, environment SECRET or queried from user.
29
+ */
30
+ utils.decrypt = {
31
+ title: 'Decrypt a string.',
32
+ args: [
33
+ ['text', { help: 'Target string to decrypt' }],
34
+ ['secret', { help: 'Secret key. Defaults to SECRET environment. If not given, asks.', nargs: '?' }],
35
+ ],
36
+ exe: async ({ text, secret }) => {
37
+ if (!secret) {
38
+ secret = process.env.SECRET;
39
+ }
40
+ if (!secret) {
41
+ secret = await cli.ask('What is the secret string?');
42
+ }
43
+ const decrypted = await Crypto.decrypt(secret, text);
44
+ console.log(decrypted);
45
+ },
46
+ };
47
+ /**
48
+ * Display the content of a Tasenor token.
49
+ */
50
+ utils['token-show'] = {
51
+ title: 'Show token payload',
52
+ args: [
53
+ ['token', { help: 'Tasenor token' }],
54
+ ],
55
+ exe: async ({ token }) => {
56
+ const parsed = tokens.parse(token);
57
+ if (parsed && parsed.payload && parsed.payload.iat)
58
+ parsed.payload.iat = new Date(parsed.payload.iat * 1000);
59
+ if (parsed && parsed.payload && parsed.payload.exp)
60
+ parsed.payload.exp = new Date(parsed.payload.exp * 1000);
61
+ console.dir(parsed, { depth: null });
62
+ }
63
+ };
64
+ /**
65
+ * Generate encryption key.
66
+ */
67
+ utils['generate-secret'] = {
68
+ title: 'Generate an encryption key',
69
+ args: [],
70
+ exe: async () => {
71
+ console.log('Key:\n');
72
+ console.log(await Crypto.generateKey());
73
+ console.log();
74
+ }
75
+ };
76
+ /**
77
+ * Runner for mini utils.
78
+ */
79
+ export function runMiniUtil(name = undefined) {
80
+ if (!name) {
81
+ name = path.basename(process.argv[1], '.mjs');
82
+ }
83
+ if (!utils[name]) {
84
+ throw new Error(`There is no mini util called '${name}'.`);
85
+ }
86
+ const parser = new ArgumentParser({
87
+ description: utils.title
88
+ });
89
+ for (const arg of utils[name].args) {
90
+ parser.add_argument(...arg);
91
+ }
92
+ const args = parser.parse_args(process.argv.slice(2));
93
+ const callArgs = {};
94
+ for (const [arg,] of utils[name].args) {
95
+ callArgs[arg] = args[arg];
96
+ }
97
+ utils[name].exe(callArgs).catch(err => {
98
+ console.error(err);
99
+ process.exit(-1);
100
+ }).then(() => process.exit());
101
+ }
102
+ //# sourceMappingURL=mini-util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mini-util.js","sourceRoot":"","sources":["../../../src/cli/mini-util.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tasenor/common-node",
3
- "version": "1.9.145",
3
+ "version": "1.9.147",
4
4
  "description": "Common Node-parts of Tasenor project",
5
5
  "main": "src/index.ts",
6
6
  "types": "src/index.ts",
@@ -36,7 +36,7 @@
36
36
  "sqlite3": "^5.1.6",
37
37
  "tar": "^6.1.15",
38
38
  "ts-opaque": "^3.0.1",
39
- "@tasenor/common": "1.9.145"
39
+ "@tasenor/common": "1.9.147"
40
40
  },
41
41
  "devDependencies": {
42
42
  "@jest/globals": "^29.6.1",
@@ -45,8 +45,8 @@
45
45
  "jest": "^29.6.1",
46
46
  "ts-jest": "^29.1.1",
47
47
  "typescript": "^5.1.6",
48
- "@tasenor/config": "1.9.145",
49
- "eslint-config-tasenor": "0.0.0"
48
+ "eslint-config-tasenor": "0.0.0",
49
+ "@tasenor/config": "1.9.147"
50
50
  },
51
51
  "scripts": {
52
52
  "ci": "pnpm run lint && pnpm run test",
@@ -54,8 +54,8 @@
54
54
  "fix": "eslint --fix 'src/**/*.ts' 'tests/**/*.ts'",
55
55
  "lint": "eslint 'src/**/*.ts' 'tests/**/*.ts'",
56
56
  "nightly": "pnpm run ci",
57
- "prepublish": "pnpm version patch",
58
- "release": "pnpm publish --access public --no-git-checks",
57
+ "release": "pnpm version patch && pnpm publish --access public --no-git-checks",
58
+ "release-minor": "pnpm version minor",
59
59
  "test": "jest",
60
60
  "watch": "jest --onlyChanged --watch",
61
61
  "show-version": "jq .version < package.json"
@@ -7,21 +7,21 @@ import * as FormData from 'form-data'
7
7
  import { ArgumentParser } from 'argparse'
8
8
  import { HttpMethod, Url, Value, TokenPair, Token, log, HttpResponse, mute, waitPromise, note, netConfigure, setNetConf, net } from '@tasenor/common'
9
9
  import clone from 'clone'
10
- import DbCommand from './commands/db'
11
- import { Command, CommandArgumentDefault, CommandArguments } from './commands'
12
- import AccountCommand from './commands/account'
13
- import BalanceCommand from './commands/balance'
14
- import EntryCommand from './commands/entry'
15
- import ImportCommand from './commands/import'
16
- import PeriodCommand from './commands/period'
17
- import ImporterCommand from './commands/importer'
18
- import PluginCommand from './commands/plugin'
19
- import ReportCommand from './commands/report'
20
- import SettingsCommand from './commands/settings'
21
- import StockCommand from './commands/stock'
22
- import TagCommand from './commands/tag'
23
- import TxCommand from './commands/tx'
24
- import UserCommand from './commands/user'
10
+ import DbCommand from '../commands/db'
11
+ import { Command, CommandArgumentDefault, CommandArguments } from '../commands'
12
+ import AccountCommand from '../commands/account'
13
+ import BalanceCommand from '../commands/balance'
14
+ import EntryCommand from '../commands/entry'
15
+ import ImportCommand from '../commands/import'
16
+ import PeriodCommand from '../commands/period'
17
+ import ImporterCommand from '../commands/importer'
18
+ import PluginCommand from '../commands/plugin'
19
+ import ReportCommand from '../commands/report'
20
+ import SettingsCommand from '../commands/settings'
21
+ import StockCommand from '../commands/stock'
22
+ import TagCommand from '../commands/tag'
23
+ import TxCommand from '../commands/tx'
24
+ import UserCommand from '../commands/user'
25
25
 
26
26
  let readlineInterface
27
27
 
@@ -0,0 +1,2 @@
1
+ export * from './cli'
2
+ export * from './mini-util'
@@ -0,0 +1,130 @@
1
+ import path from 'path'
2
+ import { ArgumentParser } from 'argparse'
3
+ import { cli } from './cli'
4
+ import { Crypto } from '@tasenor/common'
5
+ import { tokens } from '..'
6
+ import { JwtPayload } from 'jsonwebtoken'
7
+
8
+ /**
9
+ * This is a collection of minimal utils available for easy command-line use.
10
+ *
11
+ * Idea of this library is to provide shared commons for CLI tool funcitonality.
12
+ * To add a tool to any related project, you can create `.mjs` file with the
13
+ * similar content to the following:
14
+ * ```
15
+ * #!/usr/bin/env -S npx tsx
16
+ * import commonNode from '@tasenor/common-node'
17
+ * commonNode.runMiniUtil('encrypt')
18
+ * ```
19
+ *
20
+ * If the name of the file is the same than a function below, you can leave out the name, i.e
21
+ * if the file above is `encrypt.mjs` it suffices to call `commonNode.runMiniUtil()`.
22
+ */
23
+
24
+ export interface MiniUtil {
25
+ title: string
26
+ args: [string, Record<string, string>][]
27
+ exe: (args: Record<string, any>) => Promise<void>
28
+ }
29
+
30
+ const utils: Record<string, MiniUtil> = {}
31
+
32
+ /**
33
+ * Encrypt a string using the secret from argument, environment SECRET or queried from user.
34
+ */
35
+ utils.encrypt = {
36
+ title: 'Encrypt a string.',
37
+ args: [
38
+ ['text', { help: 'Target string to encrypt' }],
39
+ ['secret', { help: 'Secret key. Defaults to SECRET environment. If not given, asks.', nargs: '?' }],
40
+ ],
41
+ exe: async ({ text, secret }) => {
42
+ if (!secret) {
43
+ secret = process.env.SECRET
44
+ }
45
+ if (!secret) {
46
+ secret = await cli.ask('What is the secret string?')
47
+ }
48
+ const crypted = await Crypto.encrypt(secret, text)
49
+ console.log(crypted)
50
+ },
51
+ }
52
+
53
+ /**
54
+ * Decrypt an encoded string using the secret from argument, environment SECRET or queried from user.
55
+ */
56
+ utils.decrypt = {
57
+ title: 'Decrypt a string.',
58
+ args: [
59
+ ['text', { help: 'Target string to decrypt' }],
60
+ ['secret', { help: 'Secret key. Defaults to SECRET environment. If not given, asks.', nargs: '?' }],
61
+ ],
62
+ exe: async ({ text, secret }) => {
63
+ if (!secret) {
64
+ secret = process.env.SECRET
65
+ }
66
+ if (!secret) {
67
+ secret = await cli.ask('What is the secret string?')
68
+ }
69
+ const decrypted = await Crypto.decrypt(secret, text)
70
+ console.log(decrypted)
71
+ },
72
+ }
73
+
74
+ /**
75
+ * Display the content of a Tasenor token.
76
+ */
77
+ utils['token-show'] = {
78
+ title: 'Show token payload',
79
+ args: [
80
+ ['token', { help: 'Tasenor token' }],
81
+ ],
82
+ exe: async({ token }) => {
83
+ const parsed: JwtPayload = tokens.parse(token) as JwtPayload
84
+ if (parsed && parsed.payload && parsed.payload.iat) parsed.payload.iat = new Date(parsed.payload.iat * 1000)
85
+ if (parsed && parsed.payload && parsed.payload.exp) parsed.payload.exp = new Date(parsed.payload.exp * 1000)
86
+ console.dir(parsed, { depth: null })
87
+ }
88
+ }
89
+
90
+ /**
91
+ * Generate encryption key.
92
+ */
93
+ utils['generate-secret'] = {
94
+ title: 'Generate an encryption key',
95
+ args: [],
96
+ exe: async() => {
97
+ console.log('Key:\n')
98
+ console.log(await Crypto.generateKey())
99
+ console.log()
100
+ }
101
+ }
102
+
103
+ /**
104
+ * Runner for mini utils.
105
+ */
106
+ export function runMiniUtil(name: string | undefined = undefined) {
107
+ if (!name) {
108
+ name = path.basename(process.argv[1], '.mjs')
109
+ }
110
+ if (!utils[name]) {
111
+ throw new Error(`There is no mini util called '${name}'.`)
112
+ }
113
+ const parser: ArgumentParser = new ArgumentParser({
114
+ description: utils.title
115
+ })
116
+ for (const arg of utils[name].args) {
117
+ parser.add_argument(...arg)
118
+ }
119
+ const args = parser.parse_args(process.argv.slice(2))
120
+
121
+ const callArgs: Record<string, any> = {}
122
+ for (const [arg,] of utils[name].args) {
123
+ callArgs[arg] = args[arg]
124
+ }
125
+
126
+ utils[name].exe(callArgs).catch(err => {
127
+ console.error(err)
128
+ process.exit(-1)
129
+ }).then(() => process.exit())
130
+ }
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"AAAA,8BAA8B;AAC9B;;GAEG;AACH,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAA;AAEpC,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AACzC,OAAO,EAA4C,GAAG,EAAgB,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAA;AACrJ,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,SAAS,MAAM,eAAe,CAAA;AAErC,OAAO,cAAc,MAAM,oBAAoB,CAAA;AAC/C,OAAO,cAAc,MAAM,oBAAoB,CAAA;AAC/C,OAAO,YAAY,MAAM,kBAAkB,CAAA;AAC3C,OAAO,aAAa,MAAM,mBAAmB,CAAA;AAC7C,OAAO,aAAa,MAAM,mBAAmB,CAAA;AAC7C,OAAO,eAAe,MAAM,qBAAqB,CAAA;AACjD,OAAO,aAAa,MAAM,mBAAmB,CAAA;AAC7C,OAAO,aAAa,MAAM,mBAAmB,CAAA;AAC7C,OAAO,eAAe,MAAM,qBAAqB,CAAA;AACjD,OAAO,YAAY,MAAM,kBAAkB,CAAA;AAC3C,OAAO,UAAU,MAAM,gBAAgB,CAAA;AACvC,OAAO,SAAS,MAAM,eAAe,CAAA;AACrC,OAAO,WAAW,MAAM,iBAAiB,CAAA;AAEzC,IAAI,iBAAiB,CAAA;AAErB;;;;GAIG;AACH,SAAS,GAAG,CAAC,QAAgB;IAC3B,IAAI,CAAC,iBAAiB,EAAE;QACtB,iBAAiB,GAAG,QAAQ,CAAC,eAAe,CAAC;YAC3C,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC,CAAA;KACH;IACD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,iBAAiB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA,CAAC,CAAC,CAAC,CAAA;IAC1F,CAAC,CAAC,CAAA;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,IAAI;IACX,IAAI,iBAAiB;QAAE,iBAAiB,CAAC,KAAK,EAAE,CAAA;AAClD,CAAC;AAED;;GAEG;AACH,MAAM,OAAO,SAAS;IACpB,IAAI,CAAQ;IACZ,QAAQ,CAAQ;IAChB,GAAG,CAAK;IACR,KAAK,CAAK;IACV,KAAK,CAAO;IACZ,QAAQ,CAAyB;IACjC,YAAY,CAAU;IACtB,IAAI,CAAkB;IAEtB;;;;;OAKG;IACH,KAAK,CAAC,OAAO,CAAC,MAAkB,EAAE,GAAW,EAAE,IAAkC;QAC/E,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAAA;QAC1B,MAAM,OAAO,GAAQ,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,EAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,GAAG,EAAS,CAAA;QACnG,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAA;IAC9C,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,SAAS,CAAC,MAAkB,EAAE,GAAW,EAAE,IAAkC;QACjF,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAAA;QAC1B,MAAM,OAAO,GAAQ,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,GAAG,GAAG,EAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,IAAI,GAAG,EAAS,CAAA;QACvG,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAA;IAC9C,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI;QACnC,IAAI,MAAM,GAAwB,IAAI,CAAA;QACtC,IAAI,KAAK,CAAA;QACT,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAA;QAChC,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAI,GAAc,EAAE,CAAC,EAAE,EAAE;YACzC,IAAI;gBACF,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;gBACpC,IAAI,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE;oBAC5B,OAAO,MAAM,CAAA;iBACd;gBACD,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAA;aAC1C;YAAC,OAAO,GAAG,EAAE;gBACZ,KAAK,GAAG,GAAG,CAAA;aACZ;YACD,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAA;YACzB,IAAI,CAAC,eAAe,KAAK,UAAU,CAAC,CAAA;YACpC,MAAM,WAAW,CAAC,KAAK,GAAG,IAAI,CAAC,CAAA;SAChC;QAED,MAAM,KAAK,CAAA;IACb,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK;QAET,IAAI,IAAI,CAAC,KAAK;YAAE,OAAM;QAEtB,GAAG,CAAC,iBAAiB,IAAI,CAAC,GAAG,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;QAChD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAsB,CAAC,CAAA;QAClH,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,YAAY,MAAM,EAAE;YAC5D,IAAI,OAAO,IAAI,IAAI,CAAC,IAAI,IAAI,SAAS,IAAI,IAAI,CAAC,IAAI,EAAE;gBAClD,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,IAAmD,CAAA;gBACnF,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAA;gBAC/C,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAA;gBACjD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;aACnB;SACF;IACH,CAAC;IAED;;;OAGG;IACH,YAAY,CAAC,GAAQ,EAAE,SAAgC,SAAS;QAC9D,YAAY,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;QACtC,IAAI,MAAM,EAAE;YACV,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;YACtC,UAAU,CAAC,GAAG,EAAE,cAAc,EAAE,MAAM,CAAC,OAAO,CAAC,CAAA;SAChD;IACH,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,GAAI,SAAQ,SAAS;IAEhC;;;OAGG;IACH;QACE,KAAK,EAAE,CAAA;QAEP,IAAI,CAAC,QAAQ,GAAG;YACd,OAAO,EAAE,IAAI,cAAc,CAAC,IAAI,CAAC;YACjC,EAAE,EAAE,IAAI,SAAS,CAAC,IAAI,CAAC;YACvB,OAAO,EAAE,IAAI,cAAc,CAAC,IAAI,CAAC;YACjC,KAAK,EAAE,IAAI,YAAY,CAAC,IAAI,CAAC;YAC7B,MAAM,EAAE,IAAI,aAAa,CAAC,IAAI,CAAC;YAC/B,QAAQ,EAAE,IAAI,eAAe,CAAC,IAAI,CAAC;YACnC,MAAM,EAAE,IAAI,aAAa,CAAC,IAAI,CAAC;YAC/B,MAAM,EAAE,IAAI,aAAa,CAAC,IAAI,CAAC;YAC/B,MAAM,EAAE,IAAI,aAAa,CAAC,IAAI,CAAC;YAC/B,QAAQ,EAAE,IAAI,eAAe,CAAC,IAAI,CAAC;YACnC,KAAK,EAAE,IAAI,YAAY,CAAC,IAAI,CAAC;YAC7B,GAAG,EAAE,IAAI,UAAU,CAAC,IAAI,CAAC;YACzB,EAAE,EAAE,IAAI,SAAS,CAAC,IAAI,CAAC;YACvB,IAAI,EAAE,IAAI,WAAW,CAAC,IAAI,CAAC;SAC5B,CAAA;IACH,CAAC;IAED;;;OAGG;IACH,WAAW,CAAC,QAAkC;QAC5C,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE;YAC1B,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,GAAG,CAAA;YAC3C,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE;gBACjC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,YAAY,CAAA;aACvD;SACF;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,GAAG,CAAC,WAAqC,EAAE,EAAE,eAAyB,EAAE;QAC5E,+BAA+B;QAC/B,MAAM,GAAG,GAAG,CAAC,IAAsB,EAAE,IAAY,EAAU,EAAE;YAC3D,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAA;YACtB,OAAO,IAAI,CAAC,IAAI,CAAC,CAAA;YACjB,IAAI,CAAC,GAAG;gBAAE,OAAO,EAAE,CAAA;YACnB,OAAO,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QAC/C,CAAC,CAAA;QAED,MAAM,MAAM,GAAmB,IAAI,cAAc,CAAC;YAChD,WAAW,EAAE,2BAA2B;SACzC,CAAC,CAAA;QAEF,MAAM,CAAC,YAAY,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,gCAAgC,EAAE,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;QAC/G,MAAM,CAAC,YAAY,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,oCAAoC,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAA;QAC3H,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,6BAA6B,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAA;QAC7G,MAAM,CAAC,YAAY,CAAC,WAAW,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,wCAAwC,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAA;QACjI,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,yDAAyD,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAA;QACjI,MAAM,CAAC,YAAY,CAAC,YAAY,EAAE,EAAE,IAAI,EAAE,4DAA4D,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAA;QACxI,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,uEAAuE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAA;QAC9I,MAAM,CAAC,YAAY,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,6EAA6E,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAA;QACvJ,MAAM,CAAC,YAAY,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,uDAAuD,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAA;QAEhI,eAAe;QACf,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;QAE7F,0CAA0C;QAC1C,IAAI,GAAwB,CAAA;QAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACjD,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE;gBACvC,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAA;gBACzC,MAAK;aACN;SACF;QAED,IAAI,GAAG,EAAE;YACP,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,CAAA;SACzB;QAED,6BAA6B;QAC7B,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;QAEhD,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAEvB,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAA;QAC1B,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QAClC,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;QAC1C,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAQ,CAAA;QACvC,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAQ,CAAA;QAC5C,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAA;QACxB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YACpB,IAAI,EAAE,CAAA;SACP;QAED,sBAAsB;QACtB,IAAI,IAAI,CAAC,GAAG,EAAE;YACZ,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;SAC5B;QACD,IAAI,IAAI,CAAC,KAAK,EAAE;YACd,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;SAC9B;QAED,GAAG,IAAI,MAAM,GAAG,CAAC,GAAG,EAAE,CAAA;IACxB,CAAC;CACF;AAED,MAAM,CAAC,MAAM,GAAG,GAAG;IACjB,GAAG;IACH,IAAI;CACL,CAAA"}