scrabble-cheater 3.1.5 → 3.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,4 @@
1
1
  #!/usr/bin/env node
2
- "use strict";
3
2
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
4
3
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
5
4
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -9,17 +8,16 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
10
9
  });
11
10
  };
12
- Object.defineProperty(exports, "__esModule", { value: true });
13
- const commander_1 = require("commander");
14
- const fs = require("fs");
15
- const path = require("path");
16
- const _1 = require("./");
11
+ import { program as commander } from 'commander';
12
+ import fs from 'node:fs';
13
+ import path from 'node:path';
14
+ import { ScrabbleCheater } from './index.js';
17
15
  const defaultPackageJsonPath = path.join(__dirname, 'package.json');
18
16
  const packageJsonPath = fs.existsSync(defaultPackageJsonPath)
19
17
  ? defaultPackageJsonPath
20
18
  : path.join(__dirname, '../package.json');
21
19
  const { bin, description, version } = require(packageJsonPath);
22
- commander_1.program
20
+ commander
23
21
  .name(Object.keys(bin)[0])
24
22
  .version(version)
25
23
  .description(description)
@@ -29,19 +27,19 @@ commander_1.program
29
27
  .option('-m, --maximum <number>', 'Specify a maximum of results')
30
28
  .option('-s, --single', 'Single word mode: displays each word and copies it to the clipboard')
31
29
  .parse(process.argv);
32
- const commanderOptions = commander_1.program.opts();
30
+ const commanderOptions = commander.opts();
33
31
  if (!commanderOptions.wordlist) {
34
32
  console.error(' Error: no wordlist file specified.');
35
- commander_1.program.help();
33
+ commander.help();
36
34
  }
37
35
  if (commanderOptions.maximum && !parseInt(commanderOptions.maximum, 10)) {
38
36
  console.error(' Error: invalid maximum number specified.');
39
- commander_1.program.help();
37
+ commander.help();
40
38
  }
41
39
  const options = Object.assign(Object.assign(Object.assign(Object.assign({}, (commanderOptions.letters && { letters: commanderOptions.letters })), (commanderOptions.maximum && { maximum: commanderOptions.maximum })), (commanderOptions.quiet && { quiet: commanderOptions.quiet })), (commanderOptions.single && { single: commanderOptions.single }));
42
40
  void (() => __awaiter(void 0, void 0, void 0, function* () {
43
41
  try {
44
- const matches = yield new _1.ScrabbleCheater(commanderOptions.wordlist, options).start();
42
+ const matches = yield new ScrabbleCheater(commanderOptions.wordlist, options).start();
45
43
  if (matches.length && !commanderOptions.single) {
46
44
  console.info(matches.join('\n'));
47
45
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":";;;;;;;;;;AAEA,OAAO,EAAC,OAAO,IAAI,SAAS,EAAC,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAU,eAAe,EAAC,MAAM,YAAY,CAAC;AAEpD,MAAM,sBAAsB,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;AACpE,MAAM,eAAe,GAAG,EAAE,CAAC,UAAU,CAAC,sBAAsB,CAAC;IAC3D,CAAC,CAAC,sBAAsB;IACxB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;AAE5C,MAAM,EAAC,GAAG,EAAE,WAAW,EAAE,OAAO,EAAC,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;AAE7D,SAAS;KACN,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;KACzB,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,WAAW,CAAC;KACxB,MAAM,CAAC,uBAAuB,EAAE,qCAAqC,CAAC;KACtE,MAAM,CAAC,yBAAyB,EAAE,iBAAiB,CAAC;KACpD,MAAM,CAAC,aAAa,EAAE,uCAAuC,CAAC;KAC9D,MAAM,CAAC,wBAAwB,EAAE,8BAA8B,CAAC;KAChE,MAAM,CAAC,cAAc,EAAE,qEAAqE,CAAC;KAC7F,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAEvB,MAAM,gBAAgB,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;AAE1C,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE;IAC9B,OAAO,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;IACtD,SAAS,CAAC,IAAI,EAAE,CAAC;CAClB;AAED,IAAI,gBAAgB,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE;IACvE,OAAO,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAC5D,SAAS,CAAC,IAAI,EAAE,CAAC;CAClB;AAED,MAAM,OAAO,+DACR,CAAC,gBAAgB,CAAC,OAAO,IAAI,EAAC,OAAO,EAAE,gBAAgB,CAAC,OAAO,EAAC,CAAC,GACjE,CAAC,gBAAgB,CAAC,OAAO,IAAI,EAAC,OAAO,EAAE,gBAAgB,CAAC,OAAO,EAAC,CAAC,GACjE,CAAC,gBAAgB,CAAC,KAAK,IAAI,EAAC,KAAK,EAAE,gBAAgB,CAAC,KAAK,EAAC,CAAC,GAC3D,CAAC,gBAAgB,CAAC,MAAM,IAAI,EAAC,MAAM,EAAE,gBAAgB,CAAC,MAAM,EAAC,CAAC,CAClE,CAAC;AAEF,KAAK,CAAC,GAAS,EAAE;IACf,IAAI;QACF,MAAM,OAAO,GAAG,MAAM,IAAI,eAAe,CAAC,gBAAgB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC;QACtF,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE;YAC9C,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;SAClC;QACD,OAAO,CAAC,IAAI,EAAE,CAAC;KAChB;IAAC,OAAO,KAAK,EAAE;QACd,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACjB;AACH,CAAC,CAAA,CAAC,EAAE,CAAC"}
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
2
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
3
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -8,20 +7,18 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
7
  step((generator = generator.apply(thisArg, _arguments || [])).next());
9
8
  });
10
9
  };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.ScrabbleCheater = void 0;
13
- const clipboard = require("clipboardy");
14
- const fs = require("fs");
15
- const readline = require("readline");
16
- const util_1 = require("util");
17
- const readFileAsync = (0, util_1.promisify)(fs.readFile);
10
+ import clipboard from 'clipboardy';
11
+ import fs from 'node:fs';
12
+ import readline from 'node:readline';
13
+ import { promisify } from 'node:util';
14
+ const readFileAsync = promisify(fs.readFile);
18
15
  const defaultOptions = {
19
16
  letters: '',
20
17
  maximum: 0,
21
18
  quietMode: false,
22
19
  singleMode: false,
23
20
  };
24
- class ScrabbleCheater {
21
+ export class ScrabbleCheater {
25
22
  constructor(wordListPath, options) {
26
23
  this.dictionary = [];
27
24
  this.wordListPath = wordListPath;
@@ -116,5 +113,4 @@ class ScrabbleCheater {
116
113
  next();
117
114
  }
118
115
  }
119
- exports.ScrabbleCheater = ScrabbleCheater;
120
116
  //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ {
2
+ "type": "commonjs"
3
+ }
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ export {};
@@ -0,0 +1,44 @@
1
+ #!/usr/bin/env node
2
+ import { program as commander } from 'commander';
3
+ import fs from 'node:fs';
4
+ import path from 'node:path';
5
+ import { ScrabbleCheater } from './index.js';
6
+ const defaultPackageJsonPath = path.join(__dirname, 'package.json');
7
+ const packageJsonPath = fs.existsSync(defaultPackageJsonPath)
8
+ ? defaultPackageJsonPath
9
+ : path.join(__dirname, '../package.json');
10
+ const { bin, description, version } = require(packageJsonPath);
11
+ commander
12
+ .name(Object.keys(bin)[0])
13
+ .version(version)
14
+ .description(description)
15
+ .option('-w, --wordlist <file>', 'Specify a wordlist file (mandatory)')
16
+ .option('-l, --letters <letters>', 'Specify letters')
17
+ .option('-q, --quiet', 'Quiet mode: displays only the letters')
18
+ .option('-m, --maximum <number>', 'Specify a maximum of results')
19
+ .option('-s, --single', 'Single word mode: displays each word and copies it to the clipboard')
20
+ .parse(process.argv);
21
+ const commanderOptions = commander.opts();
22
+ if (!commanderOptions.wordlist) {
23
+ console.error(' Error: no wordlist file specified.');
24
+ commander.help();
25
+ }
26
+ if (commanderOptions.maximum && !parseInt(commanderOptions.maximum, 10)) {
27
+ console.error(' Error: invalid maximum number specified.');
28
+ commander.help();
29
+ }
30
+ const options = Object.assign(Object.assign(Object.assign(Object.assign({}, (commanderOptions.letters && { letters: commanderOptions.letters })), (commanderOptions.maximum && { maximum: commanderOptions.maximum })), (commanderOptions.quiet && { quiet: commanderOptions.quiet })), (commanderOptions.single && { single: commanderOptions.single }));
31
+ void (async () => {
32
+ try {
33
+ const matches = await new ScrabbleCheater(commanderOptions.wordlist, options).start();
34
+ if (matches.length && !commanderOptions.single) {
35
+ console.info(matches.join('\n'));
36
+ }
37
+ process.exit();
38
+ }
39
+ catch (error) {
40
+ console.error(error);
41
+ process.exit(1);
42
+ }
43
+ })();
44
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAAC,OAAO,IAAI,SAAS,EAAC,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAU,eAAe,EAAC,MAAM,YAAY,CAAC;AAEpD,MAAM,sBAAsB,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;AACpE,MAAM,eAAe,GAAG,EAAE,CAAC,UAAU,CAAC,sBAAsB,CAAC;IAC3D,CAAC,CAAC,sBAAsB;IACxB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;AAE5C,MAAM,EAAC,GAAG,EAAE,WAAW,EAAE,OAAO,EAAC,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;AAE7D,SAAS;KACN,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;KACzB,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,WAAW,CAAC;KACxB,MAAM,CAAC,uBAAuB,EAAE,qCAAqC,CAAC;KACtE,MAAM,CAAC,yBAAyB,EAAE,iBAAiB,CAAC;KACpD,MAAM,CAAC,aAAa,EAAE,uCAAuC,CAAC;KAC9D,MAAM,CAAC,wBAAwB,EAAE,8BAA8B,CAAC;KAChE,MAAM,CAAC,cAAc,EAAE,qEAAqE,CAAC;KAC7F,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAEvB,MAAM,gBAAgB,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;AAE1C,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE;IAC9B,OAAO,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;IACtD,SAAS,CAAC,IAAI,EAAE,CAAC;CAClB;AAED,IAAI,gBAAgB,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE;IACvE,OAAO,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAC5D,SAAS,CAAC,IAAI,EAAE,CAAC;CAClB;AAED,MAAM,OAAO,+DACR,CAAC,gBAAgB,CAAC,OAAO,IAAI,EAAC,OAAO,EAAE,gBAAgB,CAAC,OAAO,EAAC,CAAC,GACjE,CAAC,gBAAgB,CAAC,OAAO,IAAI,EAAC,OAAO,EAAE,gBAAgB,CAAC,OAAO,EAAC,CAAC,GACjE,CAAC,gBAAgB,CAAC,KAAK,IAAI,EAAC,KAAK,EAAE,gBAAgB,CAAC,KAAK,EAAC,CAAC,GAC3D,CAAC,gBAAgB,CAAC,MAAM,IAAI,EAAC,MAAM,EAAE,gBAAgB,CAAC,MAAM,EAAC,CAAC,CAClE,CAAC;AAEF,KAAK,CAAC,KAAK,IAAI,EAAE;IACf,IAAI;QACF,MAAM,OAAO,GAAG,MAAM,IAAI,eAAe,CAAC,gBAAgB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC;QACtF,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE;YAC9C,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;SAClC;QACD,OAAO,CAAC,IAAI,EAAE,CAAC;KAChB;IAAC,OAAO,KAAK,EAAE;QACd,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACjB;AACH,CAAC,CAAC,EAAE,CAAC"}
@@ -0,0 +1,20 @@
1
+ export interface Options {
2
+ letters?: string;
3
+ maximum?: number;
4
+ quietMode?: boolean;
5
+ singleMode?: boolean;
6
+ }
7
+ export declare class ScrabbleCheater {
8
+ private dictionary;
9
+ private readonly options;
10
+ private readonly wordListPath;
11
+ constructor(wordListPath: string, options?: Options);
12
+ setLetters(letters: string): ScrabbleCheater;
13
+ start(): Promise<string[]>;
14
+ private findMatches;
15
+ private formatLetters;
16
+ private loadWords;
17
+ private log;
18
+ private readLineAsync;
19
+ private singleOutput;
20
+ }
@@ -0,0 +1,103 @@
1
+ import clipboard from 'clipboardy';
2
+ import fs from 'node:fs';
3
+ import readline from 'node:readline';
4
+ import { promisify } from 'node:util';
5
+ const readFileAsync = promisify(fs.readFile);
6
+ const defaultOptions = {
7
+ letters: '',
8
+ maximum: 0,
9
+ quietMode: false,
10
+ singleMode: false,
11
+ };
12
+ export class ScrabbleCheater {
13
+ constructor(wordListPath, options) {
14
+ this.dictionary = [];
15
+ this.wordListPath = wordListPath;
16
+ this.options = Object.assign(Object.assign({}, defaultOptions), options);
17
+ }
18
+ setLetters(letters) {
19
+ this.options.letters = letters;
20
+ return this;
21
+ }
22
+ async start() {
23
+ const length = await this.loadWords();
24
+ if (!length) {
25
+ throw new Error('No words loaded. Wordlist file corrupt?');
26
+ }
27
+ this.log(`${length} word${length > 1 ? 's' : ''} loaded.`);
28
+ const letters = this.options.letters ? this.formatLetters(this.options.letters) : await this.readLineAsync();
29
+ let matches = this.findMatches(letters);
30
+ this.log(`ScrabbleCheater: ${matches.length} matches found`, true);
31
+ if (this.options.maximum) {
32
+ this.log(`, ${this.options.singleMode ? 'sending' : 'displaying'} the first ${this.options.maximum}`, true);
33
+ matches = matches.slice(0, this.options.maximum);
34
+ }
35
+ this.log('.\n\n', true);
36
+ if (this.options.singleMode) {
37
+ this.singleOutput(matches);
38
+ }
39
+ return matches;
40
+ }
41
+ findMatches(letters) {
42
+ const regex = new RegExp(`^[${letters}]+$`);
43
+ return this.dictionary.filter(word => regex.test(word)).sort((wordA, wordB) => wordB.length - wordA.length);
44
+ }
45
+ formatLetters(letters) {
46
+ const regex = new RegExp('[^A-Za-z]');
47
+ return letters.replace(regex, '').toLowerCase();
48
+ }
49
+ async loadWords() {
50
+ const regex = new RegExp('^[A-Za-z]+$');
51
+ const wordList = await readFileAsync(this.wordListPath, 'utf-8');
52
+ this.dictionary = wordList.split('\n').filter(value => regex.test(value));
53
+ return this.dictionary.length;
54
+ }
55
+ log(message, raw = false) {
56
+ if (!this.options.quietMode) {
57
+ if (!raw) {
58
+ console.info(`ScrabbleCheater: ${message}`);
59
+ }
60
+ else {
61
+ process.stdout.write(message);
62
+ }
63
+ }
64
+ }
65
+ readLineAsync() {
66
+ return new Promise((resolve, reject) => {
67
+ const rl = readline.createInterface({
68
+ input: process.stdin,
69
+ output: process.stdout,
70
+ });
71
+ rl.question('Letters? ', input => {
72
+ const letters = this.formatLetters(input);
73
+ if (letters) {
74
+ resolve(letters);
75
+ }
76
+ else {
77
+ reject(new Error('No letters entered.'));
78
+ }
79
+ rl.close();
80
+ });
81
+ });
82
+ }
83
+ singleOutput(matches) {
84
+ const rl = readline.createInterface({
85
+ input: process.stdin,
86
+ output: process.stdout,
87
+ });
88
+ let counter = 0;
89
+ const next = () => {
90
+ clipboard.writeSync(matches[counter]);
91
+ if (counter < matches.length - 1) {
92
+ this.log('Press Enter to copy the next word...');
93
+ counter++;
94
+ }
95
+ else {
96
+ return rl.close();
97
+ }
98
+ };
99
+ rl.on('line', next);
100
+ next();
101
+ }
102
+ }
103
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ {
2
+ "type": "module"
3
+ }
package/package.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "author": "Florian Imdahl <git@ffflorian.de>",
3
3
  "bin": {
4
- "scrabble-cheater": "cli.js"
4
+ "scrabble-cheater": "dist/cjs/cli.js"
5
5
  },
6
6
  "dependencies": {
7
- "clipboardy": "2.3.0",
7
+ "clipboardy": "3.0.0",
8
8
  "commander": "10.0.0"
9
9
  },
10
10
  "description": "A simple Scrabble cheating tool.",
@@ -13,37 +13,41 @@
13
13
  "typescript": "5.0.3"
14
14
  },
15
15
  "engines": {
16
- "node": ">= 10.9"
16
+ "node": ">= 14.16"
17
+ },
18
+ "exports": {
19
+ ".": {
20
+ "import": "./dist/mjs/index.js",
21
+ "require": "./dist/cjs/index.js"
22
+ }
17
23
  },
18
24
  "files": [
19
- "cli.d.ts",
20
- "cli.js",
21
- "cli.js.map",
22
- "index.d.ts",
23
- "index.js",
24
- "index.js.map"
25
+ "dist"
25
26
  ],
26
27
  "keywords": [
28
+ "cli",
27
29
  "scrabble",
28
30
  "cheater",
29
- "typescript",
30
- "cli"
31
+ "typescript"
31
32
  ],
32
33
  "license": "GPL-3.0",
33
- "main": "index.js",
34
+ "main": "dist/cjs/index.js",
35
+ "module": "dist/mjs/index.js",
34
36
  "name": "scrabble-cheater",
35
- "publishConfig": {
36
- "directory": "flattened"
37
- },
38
37
  "repository": "https://github.com/ffflorian/node-packages/tree/main/packages/scrabble-cheater",
39
38
  "scripts": {
40
- "build": "tsc",
39
+ "build": "yarn build:cjs && yarn build:mjs && yarn generate:packagejson",
40
+ "build:cjs": "tsc -p tsconfig.cjs.json",
41
+ "build:mjs": "tsc -p tsconfig.json",
41
42
  "clean": "rimraf dist",
42
43
  "dist": "yarn clean && yarn build",
43
- "flatten": "node ../publish-flat/dist/cli.js -o flattened",
44
- "postversion": "node ../publish-flat/dist/cli-copy.js -o flattened/package.json version",
45
- "start": "ts-node src/cli.ts",
46
- "test": "ts-node -P tsconfig.jasmine.json ../../node_modules/.bin/jasmine"
44
+ "flatten": "exit 0",
45
+ "generate:packagejson": "../../bin/generate-hybrid-package-json.sh",
46
+ "postversion": "exit 0",
47
+ "start": "ts-node-esm src/cli.ts -d",
48
+ "test": "ts-node-esm -P tsconfig.jasmine.json ../../node_modules/.bin/jasmine"
47
49
  },
48
- "version": "3.1.5"
50
+ "type": "module",
51
+ "version": "3.2.0",
52
+ "gitHead": "a331830d9f774cceaad0347a90338848466e15eb"
49
53
  }
package/cli.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA,yCAA+C;AAC/C,yBAAyB;AACzB,6BAA6B;AAE7B,yBAA4C;AAE5C,MAAM,sBAAsB,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;AACpE,MAAM,eAAe,GAAG,EAAE,CAAC,UAAU,CAAC,sBAAsB,CAAC;IAC3D,CAAC,CAAC,sBAAsB;IACxB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;AAE5C,MAAM,EAAC,GAAG,EAAE,WAAW,EAAE,OAAO,EAAC,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;AAE7D,mBAAS;KACN,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;KACzB,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,WAAW,CAAC;KACxB,MAAM,CAAC,uBAAuB,EAAE,qCAAqC,CAAC;KACtE,MAAM,CAAC,yBAAyB,EAAE,iBAAiB,CAAC;KACpD,MAAM,CAAC,aAAa,EAAE,uCAAuC,CAAC;KAC9D,MAAM,CAAC,wBAAwB,EAAE,8BAA8B,CAAC;KAChE,MAAM,CAAC,cAAc,EAAE,qEAAqE,CAAC;KAC7F,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAEvB,MAAM,gBAAgB,GAAG,mBAAS,CAAC,IAAI,EAAE,CAAC;AAE1C,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE;IAC9B,OAAO,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;IACtD,mBAAS,CAAC,IAAI,EAAE,CAAC;CAClB;AAED,IAAI,gBAAgB,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE;IACvE,OAAO,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAC5D,mBAAS,CAAC,IAAI,EAAE,CAAC;CAClB;AAED,MAAM,OAAO,+DACR,CAAC,gBAAgB,CAAC,OAAO,IAAI,EAAC,OAAO,EAAE,gBAAgB,CAAC,OAAO,EAAC,CAAC,GACjE,CAAC,gBAAgB,CAAC,OAAO,IAAI,EAAC,OAAO,EAAE,gBAAgB,CAAC,OAAO,EAAC,CAAC,GACjE,CAAC,gBAAgB,CAAC,KAAK,IAAI,EAAC,KAAK,EAAE,gBAAgB,CAAC,KAAK,EAAC,CAAC,GAC3D,CAAC,gBAAgB,CAAC,MAAM,IAAI,EAAC,MAAM,EAAE,gBAAgB,CAAC,MAAM,EAAC,CAAC,CAClE,CAAC;AAEF,KAAK,CAAC,GAAS,EAAE;IACf,IAAI;QACF,MAAM,OAAO,GAAG,MAAM,IAAI,kBAAe,CAAC,gBAAgB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC;QACtF,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE;YAC9C,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;SAClC;QACD,OAAO,CAAC,IAAI,EAAE,CAAC;KAChB;IAAC,OAAO,KAAK,EAAE;QACd,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACjB;AACH,CAAC,CAAA,CAAC,EAAE,CAAC"}
package/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
File without changes
File without changes