@prosopo/datasets-fs 0.2.14 → 0.2.16
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/dist/cli/cli.js +0 -1
- package/dist/cli/cli.js.map +1 -1
- package/dist/cli/cliCommand.js +0 -8
- package/dist/cli/cliCommand.js.map +1 -1
- package/dist/cli/cliCommandComposite.js +0 -2
- package/dist/cli/cliCommandComposite.js.map +1 -1
- package/dist/cli.js +2 -3
- package/dist/cli.js.map +1 -1
- package/dist/commands/flatten.js +0 -11
- package/dist/commands/flatten.js.map +1 -1
- package/dist/commands/generate.js +0 -11
- package/dist/commands/generate.js.map +1 -1
- package/dist/commands/generateV1.js +3 -25
- package/dist/commands/generateV1.js.map +1 -1
- package/dist/commands/generateV2.js +9 -28
- package/dist/commands/generateV2.js.map +1 -1
- package/dist/commands/get.js +0 -2
- package/dist/commands/get.js.map +1 -1
- package/dist/commands/relocate.js +0 -3
- package/dist/commands/relocate.js.map +1 -1
- package/dist/commands/resize.js +2 -14
- package/dist/commands/resize.js.map +1 -1
- package/dist/dummy.js +0 -1
- package/dist/dummy.js.map +1 -1
- package/dist/index.js +0 -13
- package/dist/index.js.map +1 -1
- package/dist/tests/lodash.test.js +0 -13
- package/dist/tests/lodash.test.js.map +1 -1
- package/dist/tests/mocked.test.js +0 -29
- package/dist/tests/mocked.test.js.map +1 -1
- package/dist/tests/utils.js +0 -19
- package/dist/tests/utils.js.map +1 -1
- package/dist/utils/input.js +0 -1
- package/dist/utils/input.js.map +1 -1
- package/dist/utils/output.js +0 -3
- package/dist/utils/output.js.map +1 -1
- package/package.json +4 -5
- package/src/cli.ts +2 -2
- package/tsconfig.tsbuildinfo +1 -1
package/dist/cli/cli.js
CHANGED
|
@@ -36,7 +36,6 @@ export class Cli extends Loggable {
|
|
|
36
36
|
});
|
|
37
37
|
});
|
|
38
38
|
if (!__classPrivateFieldGet(this, _Cli_commands, "f").find((c) => c.getCommandName() === '$0')) {
|
|
39
|
-
// no default command
|
|
40
39
|
y = y.command('$0', 'default command', (y) => y, (argv) => {
|
|
41
40
|
throw new Error(`no command specified`);
|
|
42
41
|
});
|
package/dist/cli/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli/cli.ts"],"names":[],"mappings":";;AACA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,KAAe,MAAM,OAAO,CAAA;AAEnC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,CAAA;AAC7B,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC,CAAA;AAE1D,MAAM,OAAO,GAAI,SAAQ,QAAQ;IAG7B,YAAY,QAAyB;QACjC,KAAK,EAAE,CAAA;QAHX,gCAA0B;QAItB,uBAAA,IAAI,iBAAa,QAAQ,MAAA,CAAA;QACzB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACxB,CAAC;IAEO,MAAM;QACV,IAAI,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;aAC/B,MAAM,CAAC,WAAW,EAAE;YACjB,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;SAC/B,CAAC;aACD,UAAU,CAAC,CAAC,IAAS,EAAE,EAAE;YACtB,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAC1C,CAAC,EAAE,IAAI,CAAC,CAAA;QACZ,uBAAA,IAAI,qBAAU,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC/B,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;gBACV,OAAO,EAAE,OAAO,CAAC,cAAc,EAAE;gBACjC,QAAQ,EAAE,OAAO,CAAC,cAAc,EAAE;gBAClC,OAAO,EAAE,OAAO,CAAC,UAAU,EAAE;gBAC7B,OAAO,EAAE,KAAK,EAAE,IAAS,EAAE,EAAE;oBACzB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC,CAAA;oBACzD,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;oBACtC,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;gBAC5B,CAAC;aACJ,CAAC,CAAA;QACN,CAAC,CAAC,CAAA;QACF,IAAI,CAAC,uBAAA,IAAI,qBAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE,KAAK,IAAI,CAAC,EAAE;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli/cli.ts"],"names":[],"mappings":";;AACA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,KAAe,MAAM,OAAO,CAAA;AAEnC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,CAAA;AAC7B,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC,CAAA;AAE1D,MAAM,OAAO,GAAI,SAAQ,QAAQ;IAG7B,YAAY,QAAyB;QACjC,KAAK,EAAE,CAAA;QAHX,gCAA0B;QAItB,uBAAA,IAAI,iBAAa,QAAQ,MAAA,CAAA;QACzB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACxB,CAAC;IAEO,MAAM;QACV,IAAI,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;aAC/B,MAAM,CAAC,WAAW,EAAE;YACjB,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;SAC/B,CAAC;aACD,UAAU,CAAC,CAAC,IAAS,EAAE,EAAE;YACtB,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAC1C,CAAC,EAAE,IAAI,CAAC,CAAA;QACZ,uBAAA,IAAI,qBAAU,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC/B,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;gBACV,OAAO,EAAE,OAAO,CAAC,cAAc,EAAE;gBACjC,QAAQ,EAAE,OAAO,CAAC,cAAc,EAAE;gBAClC,OAAO,EAAE,OAAO,CAAC,UAAU,EAAE;gBAC7B,OAAO,EAAE,KAAK,EAAE,IAAS,EAAE,EAAE;oBACzB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC,CAAA;oBACzD,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;oBACtC,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;gBAC5B,CAAC;aACJ,CAAC,CAAA;QACN,CAAC,CAAC,CAAA;QACF,IAAI,CAAC,uBAAA,IAAI,qBAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE,KAAK,IAAI,CAAC,EAAE;YAE1D,CAAC,GAAG,CAAC,CAAC,OAAO,CACT,IAAI,EACJ,iBAAiB,EACjB,CAAC,CAAO,EAAE,EAAE,CAAC,CAAC,EACd,CAAC,IAAS,EAAE,EAAE;gBACV,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAA;YAC3C,CAAC,CACJ,CAAA;SACJ;QACD,CAAC,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC,MAAM,EAAE,CAAC,cAAc,CAAC,KAAK,EAAE,sCAAsC,CAAC,CAAA;QAC5F,OAAO,CAAC,CAAA;IACZ,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,OAAiB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QACpD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAA;QAC5B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;QAClC,MAAM,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IAC5B,CAAC;CACJ"}
|
package/dist/cli/cliCommand.js
CHANGED
|
@@ -1,32 +1,24 @@
|
|
|
1
1
|
import { Loggable } from '@prosopo/common';
|
|
2
2
|
import { kebabCase } from '@prosopo/util';
|
|
3
3
|
export class CliCommand extends Loggable {
|
|
4
|
-
// get the options for the CLI
|
|
5
4
|
getOptions() {
|
|
6
5
|
return {};
|
|
7
6
|
}
|
|
8
|
-
// parse args using the schema
|
|
9
|
-
// use this when you have an args object but not sure if it's in the right format / contains the correct fields, e.g. args from cmdline
|
|
10
7
|
async parse(args) {
|
|
11
8
|
const argsSchema = this.getArgSchema();
|
|
12
9
|
const parsed = await argsSchema.parse(args);
|
|
13
10
|
this.logger.debug('parsed args:', parsed);
|
|
14
11
|
return parsed;
|
|
15
12
|
}
|
|
16
|
-
// run any checks before the main run function. This function should have no side effects, i.e. not write to disk. It's purely for conducting checks / setting up
|
|
17
13
|
async _check(args) {
|
|
18
14
|
this.logger.debug('runChecks');
|
|
19
15
|
}
|
|
20
|
-
// the main run function. This should be the function that does the work
|
|
21
16
|
async _run(args) {
|
|
22
17
|
this.logger.debug('run');
|
|
23
18
|
}
|
|
24
|
-
// exec is a public facing function that should be called by the CLI. It will run the preRun, run, and postRun functions in order
|
|
25
19
|
async exec(args) {
|
|
26
20
|
this.logger.debug('exec');
|
|
27
|
-
// run any checks
|
|
28
21
|
await this._check(args);
|
|
29
|
-
// then run the command
|
|
30
22
|
await this._run(args);
|
|
31
23
|
}
|
|
32
24
|
getCommandName() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cliCommand.js","sourceRoot":"","sources":["../../src/cli/cliCommand.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAE1C,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAEzC,MAAM,OAAgB,UAAmC,SAAQ,QAAQ;
|
|
1
|
+
{"version":3,"file":"cliCommand.js","sourceRoot":"","sources":["../../src/cli/cliCommand.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAE1C,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAEzC,MAAM,OAAgB,UAAmC,SAAQ,QAAQ;IAE9D,UAAU;QAGb,OAAO,EAAE,CAAA;IACb,CAAC;IAOM,KAAK,CAAC,KAAK,CAAC,IAAa;QAC5B,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,EAAE,CAAA;QACtC,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAC3C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,EAAE,MAAM,CAAC,CAAA;QACzC,OAAO,MAAM,CAAA;IACjB,CAAC;IAGM,KAAK,CAAC,MAAM,CAAC,IAAgB;QAChC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;IAClC,CAAC;IAGM,KAAK,CAAC,IAAI,CAAC,IAAgB;QAC9B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IAC5B,CAAC;IAGM,KAAK,CAAC,IAAI,CAAC,IAAgB;QAC9B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QAEzB,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QAEvB,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACzB,CAAC;IAEM,cAAc;QACjB,OAAO,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;IAC3C,CAAC;CAGJ"}
|
|
@@ -8,11 +8,9 @@ export class CliCommandComposite extends CliCommand {
|
|
|
8
8
|
constructor(commands) {
|
|
9
9
|
super();
|
|
10
10
|
_CliCommandComposite_commands.set(this, []);
|
|
11
|
-
// take a copy of the array to avoid leakage
|
|
12
11
|
__classPrivateFieldSet(this, _CliCommandComposite_commands, [...commands], "f");
|
|
13
12
|
}
|
|
14
13
|
getOptions() {
|
|
15
|
-
// merge options in turn from each command. Command order matters, latter commands will overwrite earlier ones
|
|
16
14
|
return __classPrivateFieldGet(this, _CliCommandComposite_commands, "f").reduce((prev, command) => {
|
|
17
15
|
return { ...prev, ...command.getOptions() };
|
|
18
16
|
}, {});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cliCommandComposite.js","sourceRoot":"","sources":["../../src/cli/cliCommandComposite.ts"],"names":[],"mappings":";;AACA,OAAO,EAAE,UAAU,EAAiB,MAAM,iBAAiB,CAAA;AAG3D,MAAM,OAAgB,mBAA4C,SAAQ,UAAa;IAG5E,WAAW;QACd,OAAO,uBAAA,IAAI,qCAAU,CAAA;IACzB,CAAC;IAED,YAAY,QAAyB;QACjC,KAAK,EAAE,CAAA;QAPX,wCAA6B,EAAE,EAAA;
|
|
1
|
+
{"version":3,"file":"cliCommandComposite.js","sourceRoot":"","sources":["../../src/cli/cliCommandComposite.ts"],"names":[],"mappings":";;AACA,OAAO,EAAE,UAAU,EAAiB,MAAM,iBAAiB,CAAA;AAG3D,MAAM,OAAgB,mBAA4C,SAAQ,UAAa;IAG5E,WAAW;QACd,OAAO,uBAAA,IAAI,qCAAU,CAAA;IACzB,CAAC;IAED,YAAY,QAAyB;QACjC,KAAK,EAAE,CAAA;QAPX,wCAA6B,EAAE,EAAA;QAS3B,uBAAA,IAAI,iCAAa,CAAC,GAAG,QAAQ,CAAC,MAAA,CAAA;IAClC,CAAC;IAEe,UAAU;QAEtB,OAAO,uBAAA,IAAI,qCAAU,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE;YAC3C,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC,UAAU,EAAE,EAAE,CAAA;QAC/C,CAAC,EAAE,EAAE,CAAC,CAAA;IACV,CAAC;IAEe,IAAI,CAAC,IAAiB;QAClC,OAAO,uBAAA,IAAI,qCAAU,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;YACjD,MAAM,IAAI,CAAA;YACV,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC5B,CAAC,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAA;IACzB,CAAC;IAEe,MAAM,CAAC,IAAiB;QACpC,OAAO,uBAAA,IAAI,qCAAU,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;YACjD,MAAM,IAAI,CAAA;YACV,MAAM,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QAC9B,CAAC,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAA;IACzB,CAAC;CACJ"}
|
package/dist/cli.js
CHANGED
|
@@ -6,7 +6,7 @@ import { Get } from './commands/get.js';
|
|
|
6
6
|
import { Labels } from './commands/labels.js';
|
|
7
7
|
import { Relocate } from './commands/relocate.js';
|
|
8
8
|
import { Resize } from './commands/resize.js';
|
|
9
|
-
import
|
|
9
|
+
import { isMain } from '@prosopo/util';
|
|
10
10
|
const main = async () => {
|
|
11
11
|
const commands = [
|
|
12
12
|
new Flatten(),
|
|
@@ -21,8 +21,7 @@ const main = async () => {
|
|
|
21
21
|
cli.logger.setLogLevel('debug');
|
|
22
22
|
await cli.exec();
|
|
23
23
|
};
|
|
24
|
-
|
|
25
|
-
if (esMain(import.meta)) {
|
|
24
|
+
if (isMain(import.meta.url)) {
|
|
26
25
|
main()
|
|
27
26
|
.then(() => {
|
|
28
27
|
process.exit(0);
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAA;AAEhC,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAA;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACrD,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAA;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAC7C,OAAO,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAA;AAEhC,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAA;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACrD,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAA;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AAEtC,MAAM,IAAI,GAAG,KAAK,IAAI,EAAE;IACpB,MAAM,QAAQ,GAAoB;QAC9B,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;KACf,CAAA;IACD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAA;IAC7B,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;IAC/B,MAAM,GAAG,CAAC,IAAI,EAAE,CAAA;AACpB,CAAC,CAAA;AAGD,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;IACzB,IAAI,EAAE;SACD,IAAI,CAAC,GAAG,EAAE;QACP,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACnB,CAAC,CAAC;SACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QACX,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;QACzB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACnB,CAAC,CAAC,CAAA;CACT"}
|
package/dist/commands/flatten.js
CHANGED
|
@@ -36,7 +36,6 @@ export class Flatten extends InputOutputCliCommand {
|
|
|
36
36
|
await super._run(args);
|
|
37
37
|
const dataDir = args.input;
|
|
38
38
|
const outDir = args.output;
|
|
39
|
-
// find the labels (these should be subdirectories of the data directory)
|
|
40
39
|
this.logger.info('reading data');
|
|
41
40
|
const labels = fs
|
|
42
41
|
.readdirSync(dataDir, { withFileTypes: true })
|
|
@@ -44,24 +43,17 @@ export class Flatten extends InputOutputCliCommand {
|
|
|
44
43
|
.map((dirent) => dirent.name)
|
|
45
44
|
.sort();
|
|
46
45
|
const imagesByLabel = labels.map((label) => fs.readdirSync(`${dataDir}/${label}`));
|
|
47
|
-
// create the output directory
|
|
48
46
|
const imageDir = `${outDir}/images`;
|
|
49
47
|
fs.mkdirSync(imageDir, { recursive: true });
|
|
50
48
|
const bar = new cliProgress.SingleBar({}, cliProgress.Presets.shades_classic);
|
|
51
|
-
// for each label
|
|
52
49
|
const items = [];
|
|
53
50
|
bar.start(imagesByLabel.reduce((acc, images) => acc + images.length, 0), 0);
|
|
54
51
|
labels.forEach((label, i) => {
|
|
55
52
|
const images = at(imagesByLabel, i);
|
|
56
|
-
// for each image
|
|
57
53
|
for (const image of images) {
|
|
58
54
|
bar.increment();
|
|
59
|
-
// this.logger.log(`flattening ${label}/${image}`)
|
|
60
|
-
// copy the image to the output directory
|
|
61
55
|
const extension = image.split('.').pop();
|
|
62
|
-
// read file to bytes
|
|
63
56
|
const content = fs.readFileSync(`${dataDir}/${label}/${image}`);
|
|
64
|
-
// hash based on the content of the image
|
|
65
57
|
const hash = blake2b(content);
|
|
66
58
|
const hex = u8aToHex(hash);
|
|
67
59
|
const name = `${hex}.${extension}`;
|
|
@@ -79,7 +71,6 @@ export class Flatten extends InputOutputCliCommand {
|
|
|
79
71
|
}
|
|
80
72
|
fs.copyFileSync(`${dataDir}/${label}/${image}`, `${imageDir}/${name}`);
|
|
81
73
|
const filePath = fs.realpathSync(`${imageDir}/${name}`);
|
|
82
|
-
// add the image to the map file
|
|
83
74
|
const entry = {
|
|
84
75
|
data: filePath,
|
|
85
76
|
type: CaptchaItemTypes.Image,
|
|
@@ -93,10 +84,8 @@ export class Flatten extends InputOutputCliCommand {
|
|
|
93
84
|
const data = {
|
|
94
85
|
items,
|
|
95
86
|
};
|
|
96
|
-
// verify data
|
|
97
87
|
this.logger.info('verifying data');
|
|
98
88
|
DataSchema.parse(data);
|
|
99
|
-
// write map file
|
|
100
89
|
this.logger.info('writing data');
|
|
101
90
|
fs.writeFileSync(`${outDir}/data.json`, JSON.stringify(data, null, 4));
|
|
102
91
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flatten.js","sourceRoot":"","sources":["../../src/commands/flatten.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AACxB,OAAO,EAAE,gBAAgB,EAAQ,UAAU,EAAgB,MAAM,gBAAgB,CAAA;AACjF,OAAO,EAAE,qBAAqB,IAAI,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAC/G,OAAO,EAAE,EAAE,EAAE,MAAM,eAAe,CAAA;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAA;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAC7C,OAAO,WAAW,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,MAAM,IAAI,CAAA;AAEnB,MAAM,CAAC,MAAM,UAAU,GAAG,qBAAqB,CAAC,MAAM,CAAC;IACnD,eAAe,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CAC1C,CAAC,CAAA;AAIF,MAAM,OAAO,OAAQ,SAAQ,qBAAqC;IAC9C,YAAY;QACxB,OAAO,UAAU,CAAA;IACrB,CAAC;IAEe,cAAc;QAC1B,OAAO,wIAAwI,CAAA;IACnJ,CAAC;IAEe,UAAU;QACtB,OAAO,MAAM,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE;YACtC,KAAK,EAAE;gBACH,WAAW,EAAE,oFAAoF;aACpG;YACD,MAAM,EAAE;gBACJ,WAAW,EAAE,mFAAmF;aACnG;YACD,eAAe,EAAE;gBACb,OAAO,EAAE,IAAI;gBACb,WAAW,EAAE,uCAAuC;aACvD;SACJ,CAAC,CAAA;IACN,CAAC;IAEe,KAAK,CAAC,IAAI,CAAC,IAAU;QACjC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA;QAChC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAEtB,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAA;QAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"flatten.js","sourceRoot":"","sources":["../../src/commands/flatten.ts"],"names":[],"mappings":"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"}
|
|
@@ -70,7 +70,6 @@ export class Generate extends OutputCliCommand {
|
|
|
70
70
|
});
|
|
71
71
|
}
|
|
72
72
|
async _check(args) {
|
|
73
|
-
// if specified, check files exist
|
|
74
73
|
const labelledMapFile = args.labelled;
|
|
75
74
|
if (labelledMapFile && !fs.existsSync(labelledMapFile)) {
|
|
76
75
|
throw new ProsopoEnvError(new Error(`labelled map file does not exist: ${labelledMapFile}`), 'FS.FILE_NOT_FOUND');
|
|
@@ -85,19 +84,16 @@ export class Generate extends OutputCliCommand {
|
|
|
85
84
|
loadData(args) {
|
|
86
85
|
const allowDuplicatesLabelled = args.allowDuplicatesLabelled || args.allowDuplicates || false;
|
|
87
86
|
const allowDuplicatesUnlabelled = args.allowDuplicatesUnlabelled || args.allowDuplicates || false;
|
|
88
|
-
// load the map to get the labelled and unlabelled data
|
|
89
87
|
this.labelled = this.labelledMapFile
|
|
90
88
|
? LabelledDataSchema.parse(JSON.parse(fs.readFileSync(this.labelledMapFile, 'utf8'))).items
|
|
91
89
|
: [];
|
|
92
90
|
this.unlabelled = this.unlabelledMapFile
|
|
93
91
|
? DataSchema.parse(JSON.parse(fs.readFileSync(this.unlabelledMapFile, 'utf8'))).items
|
|
94
92
|
: [];
|
|
95
|
-
// check for duplicates
|
|
96
93
|
checkDuplicates(this.labelled, this.unlabelled, {
|
|
97
94
|
allowDuplicatesLabelled,
|
|
98
95
|
allowDuplicatesUnlabelled,
|
|
99
96
|
});
|
|
100
|
-
// split the labelled data by label
|
|
101
97
|
this.labelToImages = {};
|
|
102
98
|
for (const entry of this.labelled) {
|
|
103
99
|
const arr = this.labelToImages[entry.label] || [];
|
|
@@ -107,30 +103,23 @@ export class Generate extends OutputCliCommand {
|
|
|
107
103
|
this.targets = Object.keys(this.labelToImages);
|
|
108
104
|
}
|
|
109
105
|
loadLabels(args) {
|
|
110
|
-
// load the labels from file
|
|
111
|
-
// these are the labels that unlabelled data will be assigned to
|
|
112
|
-
// note that these can be different to the labels in the map file as the labelled data is independent of the unlabelled data in terms of labels
|
|
113
106
|
this.labels = [];
|
|
114
107
|
if (args.labels && fs.existsSync(args.labels)) {
|
|
115
108
|
this.labels.push(...[...LabelsContainerSchema.parse(JSON.parse(fs.readFileSync(args.labels, 'utf8'))).labels]);
|
|
116
109
|
}
|
|
117
110
|
else {
|
|
118
|
-
// else default to the labels in the labelled data
|
|
119
111
|
this.labels.push(...[...this.targets]);
|
|
120
112
|
}
|
|
121
113
|
}
|
|
122
114
|
async _run(args) {
|
|
123
115
|
await super._run(args);
|
|
124
|
-
// set the seed
|
|
125
116
|
setSeedGlobal(args.seed || 0);
|
|
126
|
-
// get lodash (with seeded rng)
|
|
127
117
|
const _ = lodash();
|
|
128
118
|
this.loadData(args);
|
|
129
119
|
this.loadLabels(args);
|
|
130
120
|
}
|
|
131
121
|
}
|
|
132
122
|
export const checkDuplicates = (labelled, unlabelled, options) => {
|
|
133
|
-
// check for duplicates
|
|
134
123
|
const all = new Set();
|
|
135
124
|
if (!options.allowDuplicatesLabelled)
|
|
136
125
|
addAllUnique(all, labelled, 'labelled');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/commands/generate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AACxB,OAAO,EAAE,UAAU,EAAQ,kBAAkB,EAAgB,qBAAqB,EAAE,MAAM,gBAAgB,CAAA;AAC1G,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAC5D,OAAO,EAAE,MAAM,IAAI,CAAA;AAEnB,MAAM,CAAC,MAAM,UAAU,GAAG,gBAAgB,CAAC,MAAM,CAAC;IAC9C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACjC,eAAe,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACvC,uBAAuB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC/C,yBAAyB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CACpD,CAAC,CAAA;AAIF,MAAM,OAAgB,QAAmC,SAAQ,gBAAmB;IAApF;;QAiEI,aAAQ,GAAmB,EAAE,CAAA;QAC7B,eAAU,GAAW,EAAE,CAAA;QACvB,WAAM,GAAa,EAAE,CAAA;QACrB,oBAAe,GAAG,EAAE,CAAA;QACpB,sBAAiB,GAAG,EAAE,CAAA;QACtB,kBAAa,GAAgC,EAAE,CAAA;QAC/C,YAAO,GAAa,EAAE,CAAA;QACtB,eAAU,GAAG,EAAE,CAAA;IAwDnB,CAAC;IA/HmB,UAAU;QACtB,OAAO,MAAM,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE;YACtC,MAAM,EAAE;gBACJ,WAAW,EAAE,uCAAuC;aACvD;YACD,QAAQ,EAAE;gBACN,MAAM,EAAE,IAAI;gBACZ,MAAM,EAAE,IAAI;gBACZ,WAAW,EAAE,4CAA4C;aAC5D;YACD,UAAU,EAAE;gBACR,MAAM,EAAE,IAAI;gBACZ,MAAM,EAAE,IAAI;gBACZ,WAAW,EAAE,8CAA8C;aAC9D;YACD,IAAI,EAAE;gBACF,MAAM,EAAE,IAAI;gBACZ,MAAM,EAAE,IAAI;gBACZ,WAAW,EAAE,kCAAkC;aAClD;YACD,IAAI,EAAE;gBACF,MAAM,EAAE,IAAI;gBACZ,WAAW,EAAE,kCAAkC;aAClD;YACD,MAAM,EAAE;gBACJ,MAAM,EAAE,IAAI;gBACZ,WAAW,EACP,6IAA6I;aACpJ;YACD,eAAe,EAAE;gBACb,OAAO,EAAE,IAAI;gBACb,WAAW,EAAE,iEAAiE;aACjF;YACD,uBAAuB,EAAE;gBACrB,OAAO,EAAE,IAAI;gBACb,WAAW,EAAE,gDAAgD;aAChE;YACD,yBAAyB,EAAE;gBACvB,OAAO,EAAE,IAAI;gBACb,WAAW,EAAE,kDAAkD;aAClE;SACJ,CAAC,CAAA;IACN,CAAC;IAEe,KAAK,CAAC,MAAM,CAAC,IAAU;
|
|
1
|
+
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/commands/generate.ts"],"names":[],"mappings":"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"}
|
|
@@ -43,20 +43,15 @@ export class GenerateV1 extends Generate {
|
|
|
43
43
|
}
|
|
44
44
|
generateSolved(solved, size, minCorrect, maxCorrect, bar) {
|
|
45
45
|
const _ = lodash();
|
|
46
|
-
// generate n solved captchas
|
|
47
46
|
const solvedCaptchas = [];
|
|
48
47
|
for (let i = 0; i < solved; i++) {
|
|
49
|
-
// update the current value in your application..
|
|
50
48
|
bar.increment();
|
|
51
49
|
if (this.targets.length <= 1) {
|
|
52
50
|
throw new ProsopoEnvError(new Error(`not enough different labels in labelled data`), 'DATASET.NOT_ENOUGH_LABELS');
|
|
53
51
|
}
|
|
54
|
-
// uniformly sample targets
|
|
55
52
|
const target = at(this.targets, i % this.targets.length);
|
|
56
53
|
const notTargets = this.targets.filter((t) => t !== target);
|
|
57
|
-
// how many correct items should be in the captcha?
|
|
58
54
|
const nCorrect = _.random(minCorrect, maxCorrect);
|
|
59
|
-
// how many incorrect items should be in the captcha?
|
|
60
55
|
const nIncorrect = size - nCorrect;
|
|
61
56
|
const targetItems = get(this.labelToImages, target);
|
|
62
57
|
const notTargetItems = notTargets.map((notTarget) => get(this.labelToImages, notTarget)).flat();
|
|
@@ -66,9 +61,7 @@ export class GenerateV1 extends Generate {
|
|
|
66
61
|
if (notTargetItems.length < nIncorrect) {
|
|
67
62
|
throw new ProsopoEnvError(new Error(`not enough non-matching images for target (${target})`), 'DATASET.NOT_ENOUGH_IMAGES');
|
|
68
63
|
}
|
|
69
|
-
// get the correct items
|
|
70
64
|
const correctItems = _.sampleSize(targetItems, nCorrect);
|
|
71
|
-
// get the incorrect items
|
|
72
65
|
const incorrectItems = _.sampleSize(notTargetItems, nIncorrect);
|
|
73
66
|
let items = [...correctItems, ...incorrectItems];
|
|
74
67
|
let indices = [...Array(items.length).keys()];
|
|
@@ -81,20 +74,18 @@ export class GenerateV1 extends Generate {
|
|
|
81
74
|
type: item.type,
|
|
82
75
|
};
|
|
83
76
|
});
|
|
84
|
-
// the first n indices are the correct items
|
|
85
77
|
const solution = indices
|
|
86
78
|
.map((index, i) => {
|
|
87
79
|
return {
|
|
88
80
|
pre: index,
|
|
89
|
-
post: i,
|
|
81
|
+
post: i,
|
|
90
82
|
};
|
|
91
83
|
})
|
|
92
|
-
.filter((item) => item.pre < correctItems.length)
|
|
84
|
+
.filter((item) => item.pre < correctItems.length)
|
|
93
85
|
.map((item) => {
|
|
94
|
-
return item.post;
|
|
86
|
+
return item.post;
|
|
95
87
|
});
|
|
96
88
|
const salt = blake2AsHex(bcrypt.genSaltSync(this.saltRounds));
|
|
97
|
-
// create the captcha
|
|
98
89
|
const captcha = {
|
|
99
90
|
salt,
|
|
100
91
|
target,
|
|
@@ -107,25 +98,18 @@ export class GenerateV1 extends Generate {
|
|
|
107
98
|
}
|
|
108
99
|
generateUnsolved(unsolved, size, bar) {
|
|
109
100
|
const _ = lodash();
|
|
110
|
-
// this.logger.info(`Generating ${unsolved} unsolved captchas...`)
|
|
111
|
-
// create a new progress bar instance and use shades_classic theme
|
|
112
|
-
// generate n unsolved captchas
|
|
113
101
|
const unsolvedCaptchas = [];
|
|
114
102
|
for (let i = 0; i < unsolved; i++) {
|
|
115
103
|
bar.increment();
|
|
116
104
|
if (this.unlabelled.length <= size) {
|
|
117
105
|
throw new ProsopoEnvError(new Error(`unlabelled map file does not contain enough data`), 'DATASET.NOT_ENOUGH_IMAGES');
|
|
118
106
|
}
|
|
119
|
-
// pick a random label to be the target
|
|
120
|
-
// note that these are potentially different to the labelled data labels
|
|
121
107
|
if (this.labels.length <= 0) {
|
|
122
108
|
throw new ProsopoEnvError(new Error(`no labels found for unlabelled data`), 'DATASET.NOT_ENOUGH_LABELS');
|
|
123
109
|
}
|
|
124
110
|
const index = _.random(0, this.labels.length - 1);
|
|
125
111
|
const target = at(this.labels, index);
|
|
126
|
-
// randomly pick images from the unlabelled data
|
|
127
112
|
const itemSet = _.sampleSize(this.unlabelled, size);
|
|
128
|
-
// shuffle the items
|
|
129
113
|
let items = [...itemSet];
|
|
130
114
|
let indices = [...Array(items.length).keys()];
|
|
131
115
|
indices = _.shuffle(indices);
|
|
@@ -138,7 +122,6 @@ export class GenerateV1 extends Generate {
|
|
|
138
122
|
};
|
|
139
123
|
});
|
|
140
124
|
const salt = blake2AsHex(bcrypt.genSaltSync(this.saltRounds));
|
|
141
|
-
// create the captcha
|
|
142
125
|
const captcha = {
|
|
143
126
|
salt,
|
|
144
127
|
target,
|
|
@@ -151,26 +134,21 @@ export class GenerateV1 extends Generate {
|
|
|
151
134
|
async _run(args) {
|
|
152
135
|
await super._run(args);
|
|
153
136
|
const outFile = args.output;
|
|
154
|
-
// get lodash (with seeded rng)
|
|
155
137
|
const _ = lodash();
|
|
156
138
|
const size = args.size || 9;
|
|
157
139
|
const minCorrect = args.minCorrect || 1;
|
|
158
140
|
const maxCorrect = args.maxCorrect || size - 1;
|
|
159
141
|
const solved = args.solved || 0;
|
|
160
142
|
const unsolved = args.unsolved || 0;
|
|
161
|
-
// create a new progress bar instance and use shades_classic theme
|
|
162
143
|
const bar = new cliProgress.SingleBar({}, cliProgress.Presets.shades_classic);
|
|
163
|
-
// this.logger.info(`Generating ${solved} solved captchas...`)
|
|
164
144
|
bar.start(solved + unsolved, 0);
|
|
165
145
|
const solvedCaptchas = this.generateSolved(solved, size, minCorrect, maxCorrect, bar);
|
|
166
146
|
const unsolvedCaptchas = this.generateUnsolved(unsolved, size, bar);
|
|
167
147
|
bar.stop();
|
|
168
|
-
// write to file
|
|
169
148
|
const output = {
|
|
170
149
|
captchas: [...solvedCaptchas, ...unsolvedCaptchas],
|
|
171
150
|
format: CaptchaTypes.SelectAll,
|
|
172
151
|
};
|
|
173
|
-
// verify the output
|
|
174
152
|
CaptchasContainerSchema.parse(output);
|
|
175
153
|
fs.mkdirSync(args.output.split('/').slice(0, -1).join('/'), { recursive: true });
|
|
176
154
|
fs.writeFileSync(outFile, JSON.stringify(output, null, 4));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateV1.js","sourceRoot":"","sources":["../../src/commands/generateV1.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AACxB,OAAO,EAAE,YAAY,EAA8B,uBAAuB,EAAqB,MAAM,gBAAgB,CAAA;AACrH,OAAO,EAAE,QAAQ,EAAE,UAAU,IAAI,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAC1E,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAC7C,OAAO,MAAM,MAAM,QAAQ,CAAA;AAC3B,OAAO,WAAW,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,MAAM,IAAI,CAAA;AAEnB,MAAM,CAAC,MAAM,UAAU,GAAG,kBAAkB,CAAC,MAAM,CAAC;IAChD,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACpC,CAAC,CAAA;AAIF,MAAM,OAAO,UAAW,SAAQ,QAAwB;IACpC,YAAY;QACxB,OAAO,UAAU,CAAA;IACrB,CAAC;IAEe,cAAc;QAC1B,OAAO,8GAA8G,CAAA;IACzH,CAAC;IAEe,UAAU;QACtB,OAAO,MAAM,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE;YACtC,MAAM,EAAE;gBACJ,WAAW,EAAE,gDAAgD;gBAC7D,MAAM,EAAE,IAAI;aACf;YACD,QAAQ,EAAE;gBACN,WAAW,EAAE,kDAAkD;gBAC/D,MAAM,EAAE,IAAI;aACf;YACD,UAAU,EAAE;gBACR,WAAW,EAAE,iDAAiD;gBAC9D,MAAM,EAAE,IAAI;aACf;YACD,UAAU,EAAE;gBACR,WAAW,EAAE,iDAAiD;gBAC9D,MAAM,EAAE,IAAI;aACf;SACJ,CAAC,CAAA;IACN,CAAC;IAEO,cAAc,CAClB,MAAc,EACd,IAAY,EACZ,UAAkB,EAClB,UAAkB,EAClB,GAA0B;QAE1B,MAAM,CAAC,GAAG,MAAM,EAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"generateV1.js","sourceRoot":"","sources":["../../src/commands/generateV1.ts"],"names":[],"mappings":"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"}
|
|
@@ -73,12 +73,9 @@ export class GenerateV2 extends Generate {
|
|
|
73
73
|
if (this.targets.length <= 1) {
|
|
74
74
|
throw new ProsopoEnvError(new Error(`not enough different labels in labelled data`), 'DATASET.NOT_ENOUGH_LABELS');
|
|
75
75
|
}
|
|
76
|
-
// uniformly sample targets
|
|
77
76
|
const target = at(this.targets, i % this.targets.length);
|
|
78
77
|
const notTargets = this.targets.filter((t) => t !== target);
|
|
79
|
-
// how many labelled images should be in the captcha?
|
|
80
78
|
const nLabelled = _.random(__classPrivateFieldGet(this, _GenerateV2_minLabelled, "f"), __classPrivateFieldGet(this, _GenerateV2_maxLabelled, "f"));
|
|
81
|
-
// how many correct labelled images should be in the captcha?
|
|
82
79
|
const maxCorrect = nLabelled - __classPrivateFieldGet(this, _GenerateV2_minCorrect, "f");
|
|
83
80
|
const nCorrect = _.random(__classPrivateFieldGet(this, _GenerateV2_minCorrect, "f"), maxCorrect);
|
|
84
81
|
const nIncorrect = nLabelled - nCorrect;
|
|
@@ -106,37 +103,26 @@ export class GenerateV2 extends Generate {
|
|
|
106
103
|
async _run(args) {
|
|
107
104
|
await super._run(args);
|
|
108
105
|
const outFile = args.output;
|
|
109
|
-
// get lodash (with seeded rng)
|
|
110
106
|
const _ = lodash();
|
|
111
107
|
__classPrivateFieldSet(this, _GenerateV2_size, args.size || 9, "f");
|
|
112
108
|
__classPrivateFieldSet(this, _GenerateV2_minCorrect, args.minCorrect || 1, "f");
|
|
113
109
|
__classPrivateFieldSet(this, _GenerateV2_saltRounds, 10, "f");
|
|
114
110
|
__classPrivateFieldSet(this, _GenerateV2_allowDuplicatesLabelled, args.allowDuplicatesLabelled || args.allowDuplicates || false, "f");
|
|
115
111
|
__classPrivateFieldSet(this, _GenerateV2_allowDuplicatesUnlabelled, args.allowDuplicatesUnlabelled || args.allowDuplicates || false, "f");
|
|
116
|
-
__classPrivateFieldSet(this, _GenerateV2_minIncorrect, Math.max(args.minIncorrect || 1, 1), "f");
|
|
117
|
-
__classPrivateFieldSet(this, _GenerateV2_minLabelled, __classPrivateFieldGet(this, _GenerateV2_minCorrect, "f") + __classPrivateFieldGet(this, _GenerateV2_minIncorrect, "f"), "f");
|
|
118
|
-
__classPrivateFieldSet(this, _GenerateV2_maxLabelled, Math.min(args.maxLabelled || __classPrivateFieldGet(this, _GenerateV2_size, "f"), __classPrivateFieldGet(this, _GenerateV2_size, "f")), "f");
|
|
112
|
+
__classPrivateFieldSet(this, _GenerateV2_minIncorrect, Math.max(args.minIncorrect || 1, 1), "f");
|
|
113
|
+
__classPrivateFieldSet(this, _GenerateV2_minLabelled, __classPrivateFieldGet(this, _GenerateV2_minCorrect, "f") + __classPrivateFieldGet(this, _GenerateV2_minIncorrect, "f"), "f");
|
|
114
|
+
__classPrivateFieldSet(this, _GenerateV2_maxLabelled, Math.min(args.maxLabelled || __classPrivateFieldGet(this, _GenerateV2_size, "f"), __classPrivateFieldGet(this, _GenerateV2_size, "f")), "f");
|
|
119
115
|
__classPrivateFieldSet(this, _GenerateV2_count, args.count || 0, "f");
|
|
120
|
-
// the captcha contains n images. Each of these images are either labelled, being correct or incorrect against the target, or unlabelled. To construct one of these captchas, we need to decide how many of the images should be labelled vs unlabelled, and then how many of the labelled images should be correct vs incorrect
|
|
121
|
-
// in the traditional captcha, two rounds are produced, one with labelled images and the other with unlabelled images. This gives 18 images overall, 9 labels produced.
|
|
122
|
-
// the parameters for generation can regulate how many labels are collected vs how much of a test the captcha posses. E.g. 18 images could have 16 unlabelled and 2 labelled, or 2 unlabelled and 16 labelled. The former is a better test of the user being human, but the latter is a better for maximising label collection.
|
|
123
|
-
// if we focus on a single captcha round of 9 images, we must have at least 1 labelled correct image in the captcha for it to work, otherwise it's just a labelling phase, which normally isn't a problem but if we're treating these as tests for humanity too then we need some kind of test in there. (e.g. we abolish the labelled then unlabelled pattern of the challenge rounds in favour of mixing labelled and unlabelled data, but we then run a small chance of serving two completely unlabelled rounds if we don't set the min number of labelled images to 1 per captcha round)
|
|
124
116
|
const bar = new cliProgress.SingleBar({}, cliProgress.Presets.shades_classic);
|
|
125
117
|
bar.start(__classPrivateFieldGet(this, _GenerateV2_count, "f"), 0);
|
|
126
|
-
// generate n captchas
|
|
127
118
|
const captchas = [];
|
|
128
119
|
for (let i = 0; i < __classPrivateFieldGet(this, _GenerateV2_count, "f"); i++) {
|
|
129
120
|
bar.increment();
|
|
130
|
-
// this.logger.info(`generating captcha ${i + 1} of ${count}`)
|
|
131
121
|
this.setupTarget(i);
|
|
132
|
-
// get the correct items
|
|
133
122
|
const correctItems = _.sampleSize(__classPrivateFieldGet(this, _GenerateV2_targetItems, "f"), __classPrivateFieldGet(this, _GenerateV2_nCorrect, "f"));
|
|
134
|
-
// get the incorrect items
|
|
135
123
|
const incorrectItems = _.sampleSize(__classPrivateFieldGet(this, _GenerateV2_notTargetItems, "f"), __classPrivateFieldGet(this, _GenerateV2_nIncorrect, "f"));
|
|
136
|
-
// get the unlabelled items
|
|
137
124
|
const unlabelledItems = new Set();
|
|
138
125
|
while (unlabelledItems.size < __classPrivateFieldGet(this, _GenerateV2_size, "f") - __classPrivateFieldGet(this, _GenerateV2_nLabelled, "f")) {
|
|
139
|
-
// get a random image from the unlabelled data
|
|
140
126
|
const image = at(this.unlabelled, _.random(0, this.unlabelled.length - 1));
|
|
141
127
|
unlabelledItems.add(image);
|
|
142
128
|
}
|
|
@@ -152,32 +138,29 @@ export class GenerateV2 extends Generate {
|
|
|
152
138
|
type: item.type,
|
|
153
139
|
};
|
|
154
140
|
});
|
|
155
|
-
// the first n indices are the correct items
|
|
156
141
|
const solution = indices
|
|
157
142
|
.map((index, i) => {
|
|
158
143
|
return {
|
|
159
144
|
pre: index,
|
|
160
|
-
post: i,
|
|
145
|
+
post: i,
|
|
161
146
|
};
|
|
162
147
|
})
|
|
163
|
-
.filter((item) => item.pre < correctItems.length)
|
|
148
|
+
.filter((item) => item.pre < correctItems.length)
|
|
164
149
|
.map((item) => {
|
|
165
|
-
return item.post;
|
|
150
|
+
return item.post;
|
|
166
151
|
});
|
|
167
|
-
// the unlabelled indices were after the correct and incorrect
|
|
168
152
|
const unlabelledIndices = indices
|
|
169
153
|
.map((index, i) => {
|
|
170
154
|
return {
|
|
171
155
|
pre: index,
|
|
172
|
-
post: i,
|
|
156
|
+
post: i,
|
|
173
157
|
};
|
|
174
158
|
})
|
|
175
|
-
.filter((item) => item.pre >= correctItems.length + incorrectItems.length)
|
|
159
|
+
.filter((item) => item.pre >= correctItems.length + incorrectItems.length)
|
|
176
160
|
.map((item) => {
|
|
177
|
-
return item.post;
|
|
161
|
+
return item.post;
|
|
178
162
|
});
|
|
179
163
|
const salt = blake2AsHex(bcrypt.genSaltSync(__classPrivateFieldGet(this, _GenerateV2_saltRounds, "f")));
|
|
180
|
-
// create the captcha
|
|
181
164
|
const captcha = {
|
|
182
165
|
salt,
|
|
183
166
|
target: __classPrivateFieldGet(this, _GenerateV2_target, "f"),
|
|
@@ -188,12 +171,10 @@ export class GenerateV2 extends Generate {
|
|
|
188
171
|
captchas.push(captcha);
|
|
189
172
|
}
|
|
190
173
|
bar.stop();
|
|
191
|
-
// write to file
|
|
192
174
|
const output = {
|
|
193
175
|
captchas,
|
|
194
176
|
format: CaptchaTypes.SelectAll,
|
|
195
177
|
};
|
|
196
|
-
// verify the output
|
|
197
178
|
this.logger.info('verifying data');
|
|
198
179
|
CaptchasContainerSchema.parse(output);
|
|
199
180
|
this.logger.info(`writing data`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateV2.js","sourceRoot":"","sources":["../../src/commands/generateV2.ts"],"names":[],"mappings":";;AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AACxB,OAAO,EAAE,YAAY,EAA8B,uBAAuB,EAAqB,MAAM,gBAAgB,CAAA;AACrH,OAAO,EAAE,QAAQ,EAAE,UAAU,IAAI,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAC1E,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAC7C,OAAO,MAAM,MAAM,QAAQ,CAAA;AAC3B,OAAO,WAAW,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,MAAM,IAAI,CAAA;AAEnB,MAAM,CAAC,MAAM,UAAU,GAAG,kBAAkB,CAAC,MAAM,CAAC;IAChD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACnC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC/B,CAAC,CAAA;AAIF,MAAM,OAAO,UAAW,SAAQ,QAAwB;IAAxD;;QACI,2BAAQ,CAAC,EAAA;QACT,iCAAc,CAAC,EAAA;QACf,iCAAc,EAAE,EAAA;QAChB,8CAA2B,KAAK,EAAA;QAChC,gDAA6B,KAAK,EAAA;QAClC,mCAAgB,CAAC,EAAA;QACjB,kCAAe,CAAC,EAAA;QAChB,kCAAe,CAAC,EAAA;QAChB,4BAAS,CAAC,EAAA;QACV,+BAAY,CAAC,EAAA;QACb,iCAAc,CAAC,EAAA;QACf,gCAAa,CAAC,EAAA;QACd,kCAAe,CAAC,EAAA;QAChB,6BAAU,EAAE,EAAA;QACZ,8BAAqB,EAAE,EAAA;QACvB,kCAAuB,EAAE,EAAA;QACzB,qCAA0B,EAAE,EAAA;IAqMhC,CAAC;IAnMmB,YAAY;QACxB,OAAO,UAAU,CAAA;IACrB,CAAC;IAEe,cAAc;QAC1B,OAAO,gJAAgJ,CAAA;IAC3J,CAAC;IAEe,UAAU;QACtB,OAAO,MAAM,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE;YACtC,KAAK,EAAE;gBACH,MAAM,EAAE,IAAI;gBACZ,WAAW,EAAE,gCAAgC;aAChD;YACD,UAAU,EAAE;gBACR,MAAM,EAAE,IAAI;gBACZ,WAAW,EAAE,kDAAkD;aAClE;YACD,YAAY,EAAE;gBACV,MAAM,EAAE,IAAI;gBACZ,WAAW,EAAE,oDAAoD;aACpE;YACD,WAAW,EAAE;gBACT,MAAM,EAAE,IAAI;gBACZ,WAAW,EAAE,mDAAmD;aACnE;YACD,WAAW,EAAE;gBACT,MAAM,EAAE,IAAI;gBACZ,WAAW,EAAE,mDAAmD;aACnE;SACJ,CAAC,CAAA;IACN,CAAC;IAEO,WAAW,CAAC,CAAS;QACzB,MAAM,CAAC,GAAG,MAAM,EAAE,CAAA;QAClB,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,EAAE;YAC1B,MAAM,IAAI,eAAe,CACrB,IAAI,KAAK,CAAC,8CAA8C,CAAC,EACzD,2BAA2B,CAC9B,CAAA;SACJ;
|
|
1
|
+
{"version":3,"file":"generateV2.js","sourceRoot":"","sources":["../../src/commands/generateV2.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/get.js
CHANGED
|
@@ -41,7 +41,6 @@ export class Get extends InputCliCommand {
|
|
|
41
41
|
return data;
|
|
42
42
|
};
|
|
43
43
|
const file = args.input;
|
|
44
|
-
// read the map file
|
|
45
44
|
const data = JSON.parse(fs.readFileSync(file, 'utf8'));
|
|
46
45
|
await traverse(data);
|
|
47
46
|
bar.start(list.length, 0);
|
|
@@ -62,7 +61,6 @@ export class Get extends InputCliCommand {
|
|
|
62
61
|
}
|
|
63
62
|
}
|
|
64
63
|
else {
|
|
65
|
-
// resolve locally
|
|
66
64
|
try {
|
|
67
65
|
fs.readFileSync(url);
|
|
68
66
|
this.logger.log(`GET ${url} OK`);
|
package/dist/commands/get.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get.js","sourceRoot":"","sources":["../../src/commands/get.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AACxB,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACpE,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAA;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAC7C,OAAO,WAAW,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,MAAM,IAAI,CAAA;AAEnB,MAAM,CAAC,MAAM,UAAU,GAAG,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;AAGpD,MAAM,OAAO,GAAI,SAAQ,eAA+B;IACpC,YAAY;QACxB,OAAO,UAAU,CAAA;IACrB,CAAC;IAEe,UAAU;QACtB,OAAO,MAAM,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE;YACtC,KAAK,EAAE;gBACH,WAAW,EAAE,8CAA8C;aAC9D;SACJ,CAAC,CAAA;IACN,CAAC;IAEe,KAAK,CAAC,IAAI,CAAC,IAAU;QACjC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACtB,MAAM,GAAG,GAAG,IAAI,WAAW,CAAC,SAAS,CAAC,EAAE,EAAE,WAAW,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;QAE7E,MAAM,IAAI,GAAa,EAAE,CAAA;QACzB,MAAM,QAAQ,GAAG,KAAK,EAAE,IAAS,EAAE,EAAE;YACjC,IAAI,IAAI,YAAY,KAAK,EAAE;gBACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBAClC,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;iBACpC;aACJ;iBAAM,IAAI,IAAI,YAAY,MAAM,EAAE;gBAC/B,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;oBACjC,IAAI,GAAG,IAAI,MAAM,EAAE;wBACf,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;wBAC5B,MAAM,GAAG,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;wBACnC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;qBACjB;yBAAM;wBACH,MAAM,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAA;qBACjC;iBACJ;aACJ;YACD,OAAO,IAAI,CAAA;QACf,CAAC,CAAA;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAA;
|
|
1
|
+
{"version":3,"file":"get.js","sourceRoot":"","sources":["../../src/commands/get.ts"],"names":[],"mappings":"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"}
|
|
@@ -61,11 +61,8 @@ export class Relocate extends InputOutputCliCommand {
|
|
|
61
61
|
};
|
|
62
62
|
const file = args.input;
|
|
63
63
|
this.logger.log(`relocating data in ${file} from ${args.from} to ${args.to}`);
|
|
64
|
-
// read the file
|
|
65
64
|
let data = JSON.parse(fs.readFileSync(file, 'utf8'));
|
|
66
|
-
// replace the urls by recursively traversing the data
|
|
67
65
|
data = replace(data, args.from, args.to);
|
|
68
|
-
// write the file
|
|
69
66
|
fs.mkdirSync(args.output.split('/').slice(0, -1).join('/'), { recursive: true });
|
|
70
67
|
fs.writeFileSync(args.output, JSON.stringify(data, null, 4));
|
|
71
68
|
}
|