@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.
- package/package.json +5 -5
- package/coverage/base.css +0 -224
- package/coverage/block-navigation.js +0 -87
- package/coverage/clover.xml +0 -6
- package/coverage/coverage-final.json +0 -1
- package/coverage/favicon.png +0 -0
- package/coverage/index.html +0 -101
- package/coverage/prettify.css +0 -1
- package/coverage/prettify.js +0 -2
- package/coverage/sort-arrow-sprite.png +0 -0
- package/coverage/sorter.js +0 -196
- package/dist/cjs/cli/cli.cjs +0 -58
- package/dist/cjs/index.cjs +0 -4
- package/dist/cli/cli.d.ts +0 -9
- package/dist/cli/cli.d.ts.map +0 -1
- package/dist/cli/cli.js +0 -58
- package/dist/cli/cli.js.map +0 -1
- package/dist/cli/cliCommand.d.ts +0 -17
- package/dist/cli/cliCommand.d.ts.map +0 -1
- package/dist/cli/cliCommand.js +0 -28
- package/dist/cli/cliCommand.js.map +0 -1
- package/dist/cli/cliCommandComposite.d.ts +0 -14
- package/dist/cli/cliCommandComposite.d.ts.map +0 -1
- package/dist/cli/cliCommandComposite.js +0 -32
- package/dist/cli/cliCommandComposite.js.map +0 -1
- package/dist/cli.d.ts +0 -2
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js +0 -34
- package/dist/cli.js.map +0 -1
- package/dist/commands/flatten.d.ts +0 -59
- package/dist/commands/flatten.d.ts.map +0 -1
- package/dist/commands/flatten.js +0 -96
- package/dist/commands/flatten.js.map +0 -1
- package/dist/commands/generate.d.ts +0 -115
- package/dist/commands/generate.d.ts.map +0 -1
- package/dist/commands/generate.js +0 -150
- package/dist/commands/generate.js.map +0 -1
- package/dist/commands/generateV1.d.ts +0 -179
- package/dist/commands/generateV1.d.ts.map +0 -1
- package/dist/commands/generateV1.js +0 -169
- package/dist/commands/generateV1.js.map +0 -1
- package/dist/commands/generateV2.d.ts +0 -189
- package/dist/commands/generateV2.d.ts.map +0 -1
- package/dist/commands/generateV2.js +0 -200
- package/dist/commands/generateV2.js.map +0 -1
- package/dist/commands/get.d.ts +0 -35
- package/dist/commands/get.d.ts.map +0 -1
- package/dist/commands/get.js +0 -79
- package/dist/commands/get.js.map +0 -1
- package/dist/commands/labels.d.ts +0 -47
- package/dist/commands/labels.d.ts.map +0 -1
- package/dist/commands/labels.js +0 -48
- package/dist/commands/labels.js.map +0 -1
- package/dist/commands/relocate.d.ts +0 -71
- package/dist/commands/relocate.d.ts.map +0 -1
- package/dist/commands/relocate.js +0 -75
- package/dist/commands/relocate.js.map +0 -1
- package/dist/commands/resize.d.ts +0 -69
- package/dist/commands/resize.d.ts.map +0 -1
- package/dist/commands/resize.js +0 -112
- package/dist/commands/resize.js.map +0 -1
- package/dist/dummy.d.ts +0 -2
- package/dist/dummy.d.ts.map +0 -1
- package/dist/dummy.js +0 -28
- package/dist/dummy.js.map +0 -1
- package/dist/index.d.ts +0 -2
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -2
- package/dist/index.js.map +0 -1
- package/dist/tests/data/flat_resized/labels.json +0 -13
- package/dist/tests/data/flat_resized/relocated_data.json +0 -364
- package/dist/tests/lodash.unit.test.d.ts +0 -2
- package/dist/tests/lodash.unit.test.d.ts.map +0 -1
- package/dist/tests/lodash.unit.test.js +0 -29
- package/dist/tests/lodash.unit.test.js.map +0 -1
- package/dist/tests/mocked.unit.test.d.ts +0 -2
- package/dist/tests/mocked.unit.test.d.ts.map +0 -1
- package/dist/tests/mocked.unit.test.js +0 -253
- package/dist/tests/mocked.unit.test.js.map +0 -1
- package/dist/tests/utils.d.ts +0 -35
- package/dist/tests/utils.d.ts.map +0 -1
- package/dist/tests/utils.js +0 -101
- package/dist/tests/utils.js.map +0 -1
- package/dist/utils/input.d.ts +0 -24
- package/dist/utils/input.d.ts.map +0 -1
- package/dist/utils/input.js +0 -35
- package/dist/utils/input.js.map +0 -1
- package/dist/utils/inputOutput.d.ts +0 -21
- package/dist/utils/inputOutput.d.ts.map +0 -1
- package/dist/utils/inputOutput.js +0 -10
- package/dist/utils/inputOutput.js.map +0 -1
- package/dist/utils/output.d.ts +0 -36
- package/dist/utils/output.d.ts.map +0 -1
- package/dist/utils/output.js +0 -62
- package/dist/utils/output.js.map +0 -1
package/coverage/sorter.js
DELETED
|
@@ -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);
|
package/dist/cjs/cli/cli.cjs
DELETED
|
@@ -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;
|
package/dist/cjs/index.cjs
DELETED
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
|
package/dist/cli/cli.d.ts.map
DELETED
|
@@ -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
|
package/dist/cli/cli.js.map
DELETED
|
@@ -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"}
|
package/dist/cli/cliCommand.d.ts
DELETED
|
@@ -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"}
|
package/dist/cli/cliCommand.js
DELETED
|
@@ -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
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"}
|
package/dist/commands/flatten.js
DELETED
|
@@ -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
|