@prosopo/datasets-fs 2.1.1 → 2.1.3

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.
Files changed (95) hide show
  1. package/package.json +5 -5
  2. package/coverage/base.css +0 -224
  3. package/coverage/block-navigation.js +0 -87
  4. package/coverage/clover.xml +0 -6
  5. package/coverage/coverage-final.json +0 -1
  6. package/coverage/favicon.png +0 -0
  7. package/coverage/index.html +0 -101
  8. package/coverage/prettify.css +0 -1
  9. package/coverage/prettify.js +0 -2
  10. package/coverage/sort-arrow-sprite.png +0 -0
  11. package/coverage/sorter.js +0 -196
  12. package/dist/cjs/cli/cli.cjs +0 -58
  13. package/dist/cjs/index.cjs +0 -4
  14. package/dist/cli/cli.d.ts +0 -9
  15. package/dist/cli/cli.d.ts.map +0 -1
  16. package/dist/cli/cli.js +0 -58
  17. package/dist/cli/cli.js.map +0 -1
  18. package/dist/cli/cliCommand.d.ts +0 -17
  19. package/dist/cli/cliCommand.d.ts.map +0 -1
  20. package/dist/cli/cliCommand.js +0 -28
  21. package/dist/cli/cliCommand.js.map +0 -1
  22. package/dist/cli/cliCommandComposite.d.ts +0 -14
  23. package/dist/cli/cliCommandComposite.d.ts.map +0 -1
  24. package/dist/cli/cliCommandComposite.js +0 -32
  25. package/dist/cli/cliCommandComposite.js.map +0 -1
  26. package/dist/cli.d.ts +0 -2
  27. package/dist/cli.d.ts.map +0 -1
  28. package/dist/cli.js +0 -34
  29. package/dist/cli.js.map +0 -1
  30. package/dist/commands/flatten.d.ts +0 -59
  31. package/dist/commands/flatten.d.ts.map +0 -1
  32. package/dist/commands/flatten.js +0 -96
  33. package/dist/commands/flatten.js.map +0 -1
  34. package/dist/commands/generate.d.ts +0 -115
  35. package/dist/commands/generate.d.ts.map +0 -1
  36. package/dist/commands/generate.js +0 -150
  37. package/dist/commands/generate.js.map +0 -1
  38. package/dist/commands/generateV1.d.ts +0 -179
  39. package/dist/commands/generateV1.d.ts.map +0 -1
  40. package/dist/commands/generateV1.js +0 -169
  41. package/dist/commands/generateV1.js.map +0 -1
  42. package/dist/commands/generateV2.d.ts +0 -189
  43. package/dist/commands/generateV2.d.ts.map +0 -1
  44. package/dist/commands/generateV2.js +0 -200
  45. package/dist/commands/generateV2.js.map +0 -1
  46. package/dist/commands/get.d.ts +0 -35
  47. package/dist/commands/get.d.ts.map +0 -1
  48. package/dist/commands/get.js +0 -79
  49. package/dist/commands/get.js.map +0 -1
  50. package/dist/commands/labels.d.ts +0 -47
  51. package/dist/commands/labels.d.ts.map +0 -1
  52. package/dist/commands/labels.js +0 -48
  53. package/dist/commands/labels.js.map +0 -1
  54. package/dist/commands/relocate.d.ts +0 -71
  55. package/dist/commands/relocate.d.ts.map +0 -1
  56. package/dist/commands/relocate.js +0 -75
  57. package/dist/commands/relocate.js.map +0 -1
  58. package/dist/commands/resize.d.ts +0 -69
  59. package/dist/commands/resize.d.ts.map +0 -1
  60. package/dist/commands/resize.js +0 -112
  61. package/dist/commands/resize.js.map +0 -1
  62. package/dist/dummy.d.ts +0 -2
  63. package/dist/dummy.d.ts.map +0 -1
  64. package/dist/dummy.js +0 -28
  65. package/dist/dummy.js.map +0 -1
  66. package/dist/index.d.ts +0 -2
  67. package/dist/index.d.ts.map +0 -1
  68. package/dist/index.js +0 -2
  69. package/dist/index.js.map +0 -1
  70. package/dist/tests/data/flat_resized/labels.json +0 -13
  71. package/dist/tests/data/flat_resized/relocated_data.json +0 -364
  72. package/dist/tests/lodash.unit.test.d.ts +0 -2
  73. package/dist/tests/lodash.unit.test.d.ts.map +0 -1
  74. package/dist/tests/lodash.unit.test.js +0 -29
  75. package/dist/tests/lodash.unit.test.js.map +0 -1
  76. package/dist/tests/mocked.unit.test.d.ts +0 -2
  77. package/dist/tests/mocked.unit.test.d.ts.map +0 -1
  78. package/dist/tests/mocked.unit.test.js +0 -253
  79. package/dist/tests/mocked.unit.test.js.map +0 -1
  80. package/dist/tests/utils.d.ts +0 -35
  81. package/dist/tests/utils.d.ts.map +0 -1
  82. package/dist/tests/utils.js +0 -101
  83. package/dist/tests/utils.js.map +0 -1
  84. package/dist/utils/input.d.ts +0 -24
  85. package/dist/utils/input.d.ts.map +0 -1
  86. package/dist/utils/input.js +0 -35
  87. package/dist/utils/input.js.map +0 -1
  88. package/dist/utils/inputOutput.d.ts +0 -21
  89. package/dist/utils/inputOutput.d.ts.map +0 -1
  90. package/dist/utils/inputOutput.js +0 -10
  91. package/dist/utils/inputOutput.js.map +0 -1
  92. package/dist/utils/output.d.ts +0 -36
  93. package/dist/utils/output.d.ts.map +0 -1
  94. package/dist/utils/output.js +0 -62
  95. package/dist/utils/output.js.map +0 -1
@@ -1,196 +0,0 @@
1
- /* eslint-disable */
2
- var addSorting = (function() {
3
- 'use strict';
4
- var cols,
5
- currentSort = {
6
- index: 0,
7
- desc: false
8
- };
9
-
10
- // returns the summary table element
11
- function getTable() {
12
- return document.querySelector('.coverage-summary');
13
- }
14
- // returns the thead element of the summary table
15
- function getTableHeader() {
16
- return getTable().querySelector('thead tr');
17
- }
18
- // returns the tbody element of the summary table
19
- function getTableBody() {
20
- return getTable().querySelector('tbody');
21
- }
22
- // returns the th element for nth column
23
- function getNthColumn(n) {
24
- return getTableHeader().querySelectorAll('th')[n];
25
- }
26
-
27
- function onFilterInput() {
28
- const searchValue = document.getElementById('fileSearch').value;
29
- const rows = document.getElementsByTagName('tbody')[0].children;
30
- for (let i = 0; i < rows.length; i++) {
31
- const row = rows[i];
32
- if (
33
- row.textContent
34
- .toLowerCase()
35
- .includes(searchValue.toLowerCase())
36
- ) {
37
- row.style.display = '';
38
- } else {
39
- row.style.display = 'none';
40
- }
41
- }
42
- }
43
-
44
- // loads the search box
45
- function addSearchBox() {
46
- var template = document.getElementById('filterTemplate');
47
- var templateClone = template.content.cloneNode(true);
48
- templateClone.getElementById('fileSearch').oninput = onFilterInput;
49
- template.parentElement.appendChild(templateClone);
50
- }
51
-
52
- // loads all columns
53
- function loadColumns() {
54
- var colNodes = getTableHeader().querySelectorAll('th'),
55
- colNode,
56
- cols = [],
57
- col,
58
- i;
59
-
60
- for (i = 0; i < colNodes.length; i += 1) {
61
- colNode = colNodes[i];
62
- col = {
63
- key: colNode.getAttribute('data-col'),
64
- sortable: !colNode.getAttribute('data-nosort'),
65
- type: colNode.getAttribute('data-type') || 'string'
66
- };
67
- cols.push(col);
68
- if (col.sortable) {
69
- col.defaultDescSort = col.type === 'number';
70
- colNode.innerHTML =
71
- colNode.innerHTML + '<span class="sorter"></span>';
72
- }
73
- }
74
- return cols;
75
- }
76
- // attaches a data attribute to every tr element with an object
77
- // of data values keyed by column name
78
- function loadRowData(tableRow) {
79
- var tableCols = tableRow.querySelectorAll('td'),
80
- colNode,
81
- col,
82
- data = {},
83
- i,
84
- val;
85
- for (i = 0; i < tableCols.length; i += 1) {
86
- colNode = tableCols[i];
87
- col = cols[i];
88
- val = colNode.getAttribute('data-value');
89
- if (col.type === 'number') {
90
- val = Number(val);
91
- }
92
- data[col.key] = val;
93
- }
94
- return data;
95
- }
96
- // loads all row data
97
- function loadData() {
98
- var rows = getTableBody().querySelectorAll('tr'),
99
- i;
100
-
101
- for (i = 0; i < rows.length; i += 1) {
102
- rows[i].data = loadRowData(rows[i]);
103
- }
104
- }
105
- // sorts the table using the data for the ith column
106
- function sortByIndex(index, desc) {
107
- var key = cols[index].key,
108
- sorter = function(a, b) {
109
- a = a.data[key];
110
- b = b.data[key];
111
- return a < b ? -1 : a > b ? 1 : 0;
112
- },
113
- finalSorter = sorter,
114
- tableBody = document.querySelector('.coverage-summary tbody'),
115
- rowNodes = tableBody.querySelectorAll('tr'),
116
- rows = [],
117
- i;
118
-
119
- if (desc) {
120
- finalSorter = function(a, b) {
121
- return -1 * sorter(a, b);
122
- };
123
- }
124
-
125
- for (i = 0; i < rowNodes.length; i += 1) {
126
- rows.push(rowNodes[i]);
127
- tableBody.removeChild(rowNodes[i]);
128
- }
129
-
130
- rows.sort(finalSorter);
131
-
132
- for (i = 0; i < rows.length; i += 1) {
133
- tableBody.appendChild(rows[i]);
134
- }
135
- }
136
- // removes sort indicators for current column being sorted
137
- function removeSortIndicators() {
138
- var col = getNthColumn(currentSort.index),
139
- cls = col.className;
140
-
141
- cls = cls.replace(/ sorted$/, '').replace(/ sorted-desc$/, '');
142
- col.className = cls;
143
- }
144
- // adds sort indicators for current column being sorted
145
- function addSortIndicators() {
146
- getNthColumn(currentSort.index).className += currentSort.desc
147
- ? ' sorted-desc'
148
- : ' sorted';
149
- }
150
- // adds event listeners for all sorter widgets
151
- function enableUI() {
152
- var i,
153
- el,
154
- ithSorter = function ithSorter(i) {
155
- var col = cols[i];
156
-
157
- return function() {
158
- var desc = col.defaultDescSort;
159
-
160
- if (currentSort.index === i) {
161
- desc = !currentSort.desc;
162
- }
163
- sortByIndex(i, desc);
164
- removeSortIndicators();
165
- currentSort.index = i;
166
- currentSort.desc = desc;
167
- addSortIndicators();
168
- };
169
- };
170
- for (i = 0; i < cols.length; i += 1) {
171
- if (cols[i].sortable) {
172
- // add the click event handler on the th so users
173
- // dont have to click on those tiny arrows
174
- el = getNthColumn(i).querySelector('.sorter').parentElement;
175
- if (el.addEventListener) {
176
- el.addEventListener('click', ithSorter(i));
177
- } else {
178
- el.attachEvent('onclick', ithSorter(i));
179
- }
180
- }
181
- }
182
- }
183
- // adds sorting functionality to the UI
184
- return function() {
185
- if (!getTable()) {
186
- return;
187
- }
188
- cols = loadColumns();
189
- loadData();
190
- addSearchBox();
191
- addSortIndicators();
192
- enableUI();
193
- };
194
- })();
195
-
196
- window.addEventListener('load', addSorting);
@@ -1,58 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const common = require("@prosopo/common");
4
- const yargs = require("yargs");
5
- const helpers = require("yargs/helpers");
6
- const dirname = process.cwd();
7
- const logger = common.getLogger(common.LogLevel.enum.info, `${dirname}`);
8
- class Cli extends common.Loggable {
9
- #commands;
10
- constructor(commands) {
11
- super();
12
- this.#commands = commands;
13
- this.logger = logger;
14
- }
15
- config() {
16
- let y = yargs(helpers.hideBin(process.argv)).option("log-level", {
17
- type: "string",
18
- choices: Object.values(common.LogLevel.options),
19
- default: common.LogLevel.enum.info,
20
- description: "The log level"
21
- }).middleware((argv) => {
22
- this.logger.setLogLevel(argv.logLevel);
23
- }, true);
24
- for (const command of this.#commands) {
25
- y = y.command({
26
- command: command.getCommandName(),
27
- describe: command.getDescription(),
28
- builder: command.getOptions(),
29
- // biome-ignore lint/suspicious/noExplicitAny: TODO fix
30
- handler: async (argv) => {
31
- this.logger.debug(`running ${command.getCommandName()}}`);
32
- const args = await command.parse(argv);
33
- await command.exec(args);
34
- }
35
- });
36
- }
37
- if (!this.#commands.find((c) => c.getCommandName() === "$0")) {
38
- y = y.command(
39
- "$0",
40
- "default command",
41
- (y2) => y2,
42
- () => {
43
- throw new common.ProsopoCliError("CLI.PARAMETER_ERROR", {
44
- context: { error: "no command specified" }
45
- });
46
- }
47
- );
48
- }
49
- y = y.demandCommand().strict().showHelpOnFail(false, "Specify --help for available options");
50
- return y;
51
- }
52
- async exec(args = process.argv.slice(2)) {
53
- const config = this.config();
54
- this.logger.debug("parsing", args);
55
- await config.parse(args);
56
- }
57
- }
58
- exports.Cli = Cli;
@@ -1,4 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const cli = require("./cli/cli.cjs");
4
- exports.Cli = cli.Cli;
package/dist/cli/cli.d.ts DELETED
@@ -1,9 +0,0 @@
1
- import { Loggable } from "@prosopo/common";
2
- import type { CliCommandAny } from "./cliCommand.js";
3
- export declare class Cli extends Loggable {
4
- #private;
5
- constructor(commands: CliCommandAny[]);
6
- private config;
7
- exec(args?: string[]): Promise<void>;
8
- }
9
- //# sourceMappingURL=cli.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/cli/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAEN,QAAQ,EAGR,MAAM,iBAAiB,CAAC;AAgBzB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAKrD,qBAAa,GAAI,SAAQ,QAAQ;;gBAGpB,QAAQ,EAAE,aAAa,EAAE;IAMrC,OAAO,CAAC,MAAM;IA+CD,IAAI,CAAC,IAAI,GAAE,MAAM,EAA0B;CAKxD"}
package/dist/cli/cli.js DELETED
@@ -1,58 +0,0 @@
1
- var _Cli_commands;
2
- import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
3
- import { LogLevel, Loggable, ProsopoCliError, getLogger, } from "@prosopo/common";
4
- import yargs from "yargs";
5
- import { hideBin } from "yargs/helpers";
6
- const dirname = process.cwd();
7
- const logger = getLogger(LogLevel.enum.info, `${dirname}`);
8
- export class Cli extends Loggable {
9
- constructor(commands) {
10
- super();
11
- _Cli_commands.set(this, void 0);
12
- __classPrivateFieldSet(this, _Cli_commands, commands, "f");
13
- this.logger = logger;
14
- }
15
- config() {
16
- let y = yargs(hideBin(process.argv))
17
- .option("log-level", {
18
- type: "string",
19
- choices: Object.values(LogLevel.options),
20
- default: LogLevel.enum.info,
21
- description: "The log level",
22
- })
23
- .middleware((argv) => {
24
- this.logger.setLogLevel(argv.logLevel);
25
- }, true);
26
- for (const command of __classPrivateFieldGet(this, _Cli_commands, "f")) {
27
- y = y.command({
28
- command: command.getCommandName(),
29
- describe: command.getDescription(),
30
- builder: command.getOptions(),
31
- handler: async (argv) => {
32
- this.logger.debug(`running ${command.getCommandName()}}`);
33
- const args = await command.parse(argv);
34
- await command.exec(args);
35
- },
36
- });
37
- }
38
- if (!__classPrivateFieldGet(this, _Cli_commands, "f").find((c) => c.getCommandName() === "$0")) {
39
- y = y.command("$0", "default command", (y) => y, () => {
40
- throw new ProsopoCliError("CLI.PARAMETER_ERROR", {
41
- context: { error: "no command specified" },
42
- });
43
- });
44
- }
45
- y = y
46
- .demandCommand()
47
- .strict()
48
- .showHelpOnFail(false, "Specify --help for available options");
49
- return y;
50
- }
51
- async exec(args = process.argv.slice(2)) {
52
- const config = this.config();
53
- this.logger.debug("parsing", args);
54
- await config.parse(args);
55
- }
56
- }
57
- _Cli_commands = new WeakMap();
58
- //# sourceMappingURL=cli.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli/cli.ts"],"names":[],"mappings":";;AAAA,OAAO,EACN,QAAQ,EACR,QAAQ,EACR,eAAe,EACf,SAAS,GACT,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAoB,MAAM,OAAO,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAgBxC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;AAC9B,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;AAE3D,MAAM,OAAO,GAAI,SAAQ,QAAQ;IAGhC,YAAY,QAAyB;QACpC,KAAK,EAAE,CAAC;QAHT,gCAA2B;QAI1B,uBAAA,IAAI,iBAAa,QAAQ,MAAA,CAAC;QAC1B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACtB,CAAC;IAEO,MAAM;QACb,IAAI,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;aAClC,MAAM,CAAC,WAAW,EAAE;YACpB,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;YACxC,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI;YAC3B,WAAW,EAAE,eAAe;SAC5B,CAAC;aAED,UAAU,CAAC,CAAC,IAAS,EAAE,EAAE;YACzB,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACxC,CAAC,EAAE,IAAI,CAAC,CAAC;QAEV,KAAK,MAAM,OAAO,IAAI,uBAAA,IAAI,qBAAU,EAAE,CAAC;YACtC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;gBACb,OAAO,EAAE,OAAO,CAAC,cAAc,EAAE;gBACjC,QAAQ,EAAE,OAAO,CAAC,cAAc,EAAE;gBAClC,OAAO,EAAE,OAAO,CAAC,UAAU,EAAE;gBAE7B,OAAO,EAAE,KAAK,EAAE,IAAS,EAAE,EAAE;oBAC5B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;oBAC1D,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBACvC,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC1B,CAAC;aACD,CAAC,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,uBAAA,IAAI,qBAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;YAE9D,CAAC,GAAG,CAAC,CAAC,OAAO,CACZ,IAAI,EACJ,iBAAiB,EACjB,CAAC,CAAO,EAAE,EAAE,CAAC,CAAC,EACd,GAAG,EAAE;gBACJ,MAAM,IAAI,eAAe,CAAC,qBAAqB,EAAE;oBAChD,OAAO,EAAE,EAAE,KAAK,EAAE,sBAAsB,EAAE;iBAC1C,CAAC,CAAC;YACJ,CAAC,CACD,CAAC;QACH,CAAC;QACD,CAAC,GAAG,CAAC;aACH,aAAa,EAAE;aACf,MAAM,EAAE;aACR,cAAc,CAAC,KAAK,EAAE,sCAAsC,CAAC,CAAC;QAChE,OAAO,CAAC,CAAC;IACV,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,OAAiB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QACvD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAC7B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QACnC,MAAM,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;CACD"}
@@ -1,17 +0,0 @@
1
- import { Loggable } from "@prosopo/common";
2
- import type { Options } from "yargs";
3
- import type * as z from "zod";
4
- export declare abstract class CliCommand<T extends z.ZodTypeAny> extends Loggable {
5
- getOptions(): {
6
- [key: string]: Options;
7
- };
8
- abstract getArgSchema(): T;
9
- parse(args: unknown): Promise<z.infer<T>>;
10
- _check(args: z.infer<T>): Promise<void>;
11
- _run(args: z.infer<T>): Promise<void>;
12
- exec(args: z.infer<T>): Promise<void>;
13
- getCommandName(): string;
14
- abstract getDescription(): string;
15
- }
16
- export type CliCommandAny = CliCommand<z.ZodTypeAny>;
17
- //# sourceMappingURL=cliCommand.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cliCommand.d.ts","sourceRoot":"","sources":["../../src/cli/cliCommand.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAcrC,OAAO,KAAK,KAAK,CAAC,MAAM,KAAK,CAAC;AAE9B,8BAAsB,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU,CAAE,SAAQ,QAAQ;IAEjE,UAAU,IAAI;QACpB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACvB;aAKe,YAAY,IAAI,CAAC;IAIpB,KAAK,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAQzC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IAKvB,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IAKrB,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IAQ3B,cAAc;aAIL,cAAc,IAAI,MAAM;CACxC;AAED,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC"}
@@ -1,28 +0,0 @@
1
- import { Loggable } from "@prosopo/common";
2
- import { kebabCase } from "@prosopo/util";
3
- export class CliCommand extends Loggable {
4
- getOptions() {
5
- return {};
6
- }
7
- async parse(args) {
8
- const argsSchema = this.getArgSchema();
9
- const parsed = await argsSchema.parse(args);
10
- this.logger.debug("parsed args:", parsed);
11
- return parsed;
12
- }
13
- async _check(args) {
14
- this.logger.debug("runChecks");
15
- }
16
- async _run(args) {
17
- this.logger.debug("run");
18
- }
19
- async exec(args) {
20
- this.logger.debug("exec");
21
- await this._check(args);
22
- await this._run(args);
23
- }
24
- getCommandName() {
25
- return kebabCase(this.constructor.name);
26
- }
27
- }
28
- //# sourceMappingURL=cliCommand.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cliCommand.js","sourceRoot":"","sources":["../../src/cli/cliCommand.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAiB1C,MAAM,OAAgB,UAAmC,SAAQ,QAAQ;IAEjE,UAAU;QAGhB,OAAO,EAAE,CAAC;IACX,CAAC;IAOM,KAAK,CAAC,KAAK,CAAC,IAAa;QAC/B,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QACvC,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;QAC1C,OAAO,MAAM,CAAC;IACf,CAAC;IAGM,KAAK,CAAC,MAAM,CAAC,IAAgB;QACnC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAChC,CAAC;IAGM,KAAK,CAAC,IAAI,CAAC,IAAgB;QACjC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;IAGM,KAAK,CAAC,IAAI,CAAC,IAAgB;QACjC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAE1B,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAExB,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC;IAEM,cAAc;QACpB,OAAO,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;CAGD"}
@@ -1,14 +0,0 @@
1
- import type { Options } from "yargs";
2
- import type * as z from "zod";
3
- import { CliCommand, type CliCommandAny } from "./cliCommand.js";
4
- export declare abstract class CliCommandComposite<T extends z.ZodTypeAny> extends CliCommand<T> {
5
- #private;
6
- getCommands(): CliCommandAny[];
7
- constructor(commands: CliCommandAny[]);
8
- getOptions(): {
9
- [key: string]: Options;
10
- };
11
- _run(args: z.TypeOf<T>): Promise<void>;
12
- _check(args: z.TypeOf<T>): Promise<void>;
13
- }
14
- //# sourceMappingURL=cliCommandComposite.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cliCommandComposite.d.ts","sourceRoot":"","sources":["../../src/cli/cliCommandComposite.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAcrC,OAAO,KAAK,KAAK,CAAC,MAAM,KAAK,CAAC;AAC9B,OAAO,EAAE,UAAU,EAAE,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEjE,8BAAsB,mBAAmB,CACxC,CAAC,SAAS,CAAC,CAAC,UAAU,CACrB,SAAQ,UAAU,CAAC,CAAC,CAAC;;IAGf,WAAW;gBAIN,QAAQ,EAAE,aAAa,EAAE;IAMrB,UAAU,IAAI;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE;IAQxC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAOtC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;CAMxD"}
@@ -1,32 +0,0 @@
1
- var _CliCommandComposite_commands;
2
- import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
3
- import { CliCommand } from "./cliCommand.js";
4
- export class CliCommandComposite extends CliCommand {
5
- getCommands() {
6
- return __classPrivateFieldGet(this, _CliCommandComposite_commands, "f");
7
- }
8
- constructor(commands) {
9
- super();
10
- _CliCommandComposite_commands.set(this, []);
11
- __classPrivateFieldSet(this, _CliCommandComposite_commands, [...commands], "f");
12
- }
13
- getOptions() {
14
- return __classPrivateFieldGet(this, _CliCommandComposite_commands, "f").reduce((prev, command) => {
15
- return { ...prev, ...command.getOptions() };
16
- }, {});
17
- }
18
- _run(args) {
19
- return __classPrivateFieldGet(this, _CliCommandComposite_commands, "f").reduce(async (prev, command) => {
20
- await prev;
21
- await command._run(args);
22
- }, Promise.resolve());
23
- }
24
- _check(args) {
25
- return __classPrivateFieldGet(this, _CliCommandComposite_commands, "f").reduce(async (prev, command) => {
26
- await prev;
27
- await command._check(args);
28
- }, Promise.resolve());
29
- }
30
- }
31
- _CliCommandComposite_commands = new WeakMap();
32
- //# sourceMappingURL=cliCommandComposite.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cliCommandComposite.js","sourceRoot":"","sources":["../../src/cli/cliCommandComposite.ts"],"names":[],"mappings":";;AAeA,OAAO,EAAE,UAAU,EAAsB,MAAM,iBAAiB,CAAC;AAEjE,MAAM,OAAgB,mBAEpB,SAAQ,UAAa;IAGf,WAAW;QACjB,OAAO,uBAAA,IAAI,qCAAU,CAAC;IACvB,CAAC;IAED,YAAY,QAAyB;QACpC,KAAK,EAAE,CAAC;QAPT,wCAA6B,EAAE,EAAC;QAS/B,uBAAA,IAAI,iCAAa,CAAC,GAAG,QAAQ,CAAC,MAAA,CAAC;IAChC,CAAC;IAEe,UAAU;QAEzB,OAAO,uBAAA,IAAI,qCAAU,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE;YAE9C,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;QAC7C,CAAC,EAAE,EAAE,CAAC,CAAC;IACR,CAAC;IAEe,IAAI,CAAC,IAAiB;QACrC,OAAO,uBAAA,IAAI,qCAAU,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;YACpD,MAAM,IAAI,CAAC;YACX,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IACvB,CAAC;IAEe,MAAM,CAAC,IAAiB;QACvC,OAAO,uBAAA,IAAI,qCAAU,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;YACpD,MAAM,IAAI,CAAC;YACX,MAAM,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IACvB,CAAC;CACD"}
package/dist/cli.d.ts DELETED
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=cli.d.ts.map
package/dist/cli.d.ts.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":""}
package/dist/cli.js DELETED
@@ -1,34 +0,0 @@
1
- import { isMain } from "@prosopo/util";
2
- import { Flatten } from "./commands/flatten.js";
3
- import { GenerateV1 } from "./commands/generateV1.js";
4
- import { GenerateV2 } from "./commands/generateV2.js";
5
- import { Get } from "./commands/get.js";
6
- import { Labels } from "./commands/labels.js";
7
- import { Relocate } from "./commands/relocate.js";
8
- import { Resize } from "./commands/resize.js";
9
- import { Cli } from "./index.js";
10
- const main = async () => {
11
- const commands = [
12
- new Flatten(),
13
- new GenerateV1(),
14
- new GenerateV2(),
15
- new Get(),
16
- new Labels(),
17
- new Relocate(),
18
- new Resize(),
19
- ];
20
- const cli = new Cli(commands);
21
- cli.logger.setLogLevel("debug");
22
- await cli.exec();
23
- };
24
- if (isMain(import.meta.url)) {
25
- main()
26
- .then(() => {
27
- process.exit(0);
28
- })
29
- .catch((err) => {
30
- console.log("error", err);
31
- process.exit(1);
32
- });
33
- }
34
- //# sourceMappingURL=cli.js.map
package/dist/cli.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAEvC,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAc9C,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AAEjC,MAAM,IAAI,GAAG,KAAK,IAAI,EAAE;IACvB,MAAM,QAAQ,GAAoB;QACjC,IAAI,OAAO,EAAE;QACb,IAAI,UAAU,EAAE;QAChB,IAAI,UAAU,EAAE;QAChB,IAAI,GAAG,EAAE;QACT,IAAI,MAAM,EAAE;QACZ,IAAI,QAAQ,EAAE;QACd,IAAI,MAAM,EAAE;KACZ,CAAC;IACF,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC9B,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAChC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;AAClB,CAAC,CAAC;AAGF,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IAC7B,IAAI,EAAE;SACJ,IAAI,CAAC,GAAG,EAAE;QACV,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC,CAAC;SACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QACd,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAC1B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -1,59 +0,0 @@
1
- import * as z from "zod";
2
- import { InputOutputCliCommand } from "../utils/inputOutput.js";
3
- export declare const ArgsSchema: z.ZodObject<z.objectUtil.extendShape<z.objectUtil.extendShape<{
4
- input: z.ZodString;
5
- }, {
6
- output: z.ZodString;
7
- overwrite: z.ZodOptional<z.ZodBoolean>;
8
- }>, {
9
- allowDuplicates: z.ZodOptional<z.ZodBoolean>;
10
- }>, "strip", z.ZodTypeAny, {
11
- input: string;
12
- output: string;
13
- overwrite?: boolean | undefined;
14
- allowDuplicates?: boolean | undefined;
15
- }, {
16
- input: string;
17
- output: string;
18
- overwrite?: boolean | undefined;
19
- allowDuplicates?: boolean | undefined;
20
- }>;
21
- export type ArgsSchemaType = typeof ArgsSchema;
22
- export type Args = z.infer<ArgsSchemaType>;
23
- export declare class Flatten extends InputOutputCliCommand<ArgsSchemaType> {
24
- getArgSchema(): z.ZodObject<z.objectUtil.extendShape<z.objectUtil.extendShape<{
25
- input: z.ZodString;
26
- }, {
27
- output: z.ZodString;
28
- overwrite: z.ZodOptional<z.ZodBoolean>;
29
- }>, {
30
- allowDuplicates: z.ZodOptional<z.ZodBoolean>;
31
- }>, "strip", z.ZodTypeAny, {
32
- input: string;
33
- output: string;
34
- overwrite?: boolean | undefined;
35
- allowDuplicates?: boolean | undefined;
36
- }, {
37
- input: string;
38
- output: string;
39
- overwrite?: boolean | undefined;
40
- allowDuplicates?: boolean | undefined;
41
- }>;
42
- getDescription(): string;
43
- getOptions(): {
44
- [key: string]: import("yargs").Options;
45
- } & {
46
- input: {
47
- description: string;
48
- };
49
- output: {
50
- description: string;
51
- };
52
- allowDuplicates: {
53
- boolean: boolean;
54
- description: string;
55
- };
56
- };
57
- _run(args: Args): Promise<void>;
58
- }
59
- //# sourceMappingURL=flatten.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"flatten.d.ts","sourceRoot":"","sources":["../../src/commands/flatten.ts"],"names":[],"mappings":"AA0BA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AACzB,OAAO,EAEN,qBAAqB,EACrB,MAAM,yBAAyB,CAAC;AAEjC,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;EAErB,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,OAAO,UAAU,CAAC;AAC/C,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;AAE3C,qBAAa,OAAQ,SAAQ,qBAAqB,CAAC,cAAc,CAAC;IACjD,YAAY;;;;;;;;;;;;;;;;;;IAIZ,cAAc,IAAI,MAAM;IAIxB,UAAU;;;;;;;;;;;;;;IAiBJ,IAAI,CAAC,IAAI,EAAE,IAAI;CAuFrC"}
@@ -1,96 +0,0 @@
1
- import fs from "node:fs";
2
- import { blake2b } from "@noble/hashes/blake2b";
3
- import { u8aToHex } from "@polkadot/util/u8a";
4
- import { ProsopoDatasetError } from "@prosopo/common";
5
- import { CaptchaItemTypes, DataSchema, } from "@prosopo/types";
6
- import { at } from "@prosopo/util";
7
- import { lodash } from "@prosopo/util/lodash";
8
- import cliProgress from "cli-progress";
9
- import * as z from "zod";
10
- import { InputOutputArgsSchema, InputOutputCliCommand, } from "../utils/inputOutput.js";
11
- export const ArgsSchema = InputOutputArgsSchema.extend({
12
- allowDuplicates: z.boolean().optional(),
13
- });
14
- export class Flatten extends InputOutputCliCommand {
15
- getArgSchema() {
16
- return ArgsSchema;
17
- }
18
- getDescription() {
19
- return "Restructure a directory containing directories for each image classification into a single directory with a file containing the labels";
20
- }
21
- getOptions() {
22
- return lodash().merge(super.getOptions(), {
23
- input: {
24
- description: "Path to the data directory containing subdirectories for each image classification",
25
- },
26
- output: {
27
- description: "Where to put the output file containing the labels and single directory of images",
28
- },
29
- allowDuplicates: {
30
- boolean: true,
31
- description: "If true, allow duplicates in the data",
32
- },
33
- });
34
- }
35
- async _run(args) {
36
- this.logger.debug("flatten run");
37
- await super._run(args);
38
- const dataDir = args.input;
39
- const outDir = args.output;
40
- this.logger.info("reading data");
41
- const labels = fs
42
- .readdirSync(dataDir, { withFileTypes: true })
43
- .filter((dirent) => dirent.isDirectory())
44
- .map((dirent) => dirent.name)
45
- .sort();
46
- const imagesByLabel = labels.map((label) => fs.readdirSync(`${dataDir}/${label}`));
47
- const imageDir = `${outDir}/images`;
48
- fs.mkdirSync(imageDir, { recursive: true });
49
- const bar = new cliProgress.SingleBar({}, cliProgress.Presets.shades_classic);
50
- const items = [];
51
- bar.start(imagesByLabel.reduce((acc, images) => acc + images.length, 0), 0);
52
- labels.forEach((label, i) => {
53
- const images = at(imagesByLabel, i);
54
- for (const image of images) {
55
- bar.increment();
56
- const extension = image.split(".").pop();
57
- const content = fs.readFileSync(`${dataDir}/${label}/${image}`);
58
- const hash = blake2b(content);
59
- const hex = u8aToHex(hash);
60
- const name = `${hex}.${extension}`;
61
- if (fs.existsSync(`${imageDir}/${name}`)) {
62
- for (const item of items) {
63
- if (item.hash === hex) {
64
- this.logger.log(`\ndupe: ${label}/${image}`);
65
- this.logger.log("item hash", item.hash);
66
- this.logger.log("item label", item.label);
67
- }
68
- }
69
- if (!args.allowDuplicates) {
70
- throw new ProsopoDatasetError("DATASET.DUPLICATE_IMAGE", {
71
- context: { image: `${label}/${image}` },
72
- });
73
- }
74
- }
75
- fs.copyFileSync(`${dataDir}/${label}/${image}`, `${imageDir}/${name}`);
76
- const filePath = fs.realpathSync(`${imageDir}/${name}`);
77
- const entry = {
78
- data: filePath,
79
- type: CaptchaItemTypes.Image,
80
- label,
81
- hash: hex,
82
- };
83
- items.push(entry);
84
- }
85
- });
86
- bar.stop();
87
- const data = {
88
- items,
89
- };
90
- this.logger.info("verifying data");
91
- DataSchema.parse(data);
92
- this.logger.info("writing data");
93
- fs.writeFileSync(`${outDir}/data.json`, JSON.stringify(data, null, 4));
94
- }
95
- }
96
- //# sourceMappingURL=flatten.js.map