@prosopo/datasets-fs 0.2.7 → 0.2.9

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 (230) hide show
  1. package/README.md +21 -0
  2. package/dist/cjs/cli/cli.cjs +55 -0
  3. package/dist/cjs/index.cjs +3 -1
  4. package/dist/cli/cli.d.ts +9 -0
  5. package/dist/cli/cli.d.ts.map +1 -0
  6. package/dist/cli/cli.js +54 -0
  7. package/dist/cli/cli.js.map +1 -0
  8. package/dist/cli/cliCommand.d.ts +17 -0
  9. package/dist/cli/cliCommand.d.ts.map +1 -0
  10. package/dist/cli/cliCommand.js +36 -0
  11. package/dist/cli/cliCommand.js.map +1 -0
  12. package/dist/cli/cliCommandComposite.d.ts +14 -0
  13. package/dist/cli/cliCommandComposite.d.ts.map +1 -0
  14. package/dist/cli/cliCommandComposite.js +34 -0
  15. package/dist/cli/cliCommandComposite.js.map +1 -0
  16. package/dist/cli.js +21 -35
  17. package/dist/cli.js.map +1 -1
  18. package/dist/commands/flatten.d.ts +56 -0
  19. package/dist/commands/flatten.d.ts.map +1 -0
  20. package/dist/commands/flatten.js +103 -0
  21. package/dist/commands/flatten.js.map +1 -0
  22. package/dist/commands/generate.d.ts +114 -0
  23. package/dist/commands/generate.d.ts.map +1 -0
  24. package/dist/commands/generate.js +151 -0
  25. package/dist/commands/generate.js.map +1 -0
  26. package/dist/commands/generateV1.d.ts +174 -0
  27. package/dist/commands/generateV1.d.ts.map +1 -0
  28. package/dist/commands/generateV1.js +178 -0
  29. package/dist/commands/generateV1.js.map +1 -0
  30. package/dist/commands/generateV2.d.ts +184 -0
  31. package/dist/commands/generateV2.d.ts.map +1 -0
  32. package/dist/commands/generateV2.js +204 -0
  33. package/dist/commands/generateV2.js.map +1 -0
  34. package/dist/commands/get.d.ts +35 -0
  35. package/dist/commands/get.d.ts.map +1 -0
  36. package/dist/commands/get.js +81 -0
  37. package/dist/commands/get.js.map +1 -0
  38. package/dist/commands/labels.d.ts +46 -0
  39. package/dist/commands/labels.d.ts.map +1 -0
  40. package/dist/commands/labels.js +43 -0
  41. package/dist/commands/labels.js.map +1 -0
  42. package/dist/commands/relocate.d.ts +68 -0
  43. package/dist/commands/relocate.d.ts.map +1 -0
  44. package/dist/commands/relocate.js +75 -0
  45. package/dist/commands/relocate.js.map +1 -0
  46. package/dist/commands/resize.d.ts +66 -0
  47. package/dist/commands/resize.d.ts.map +1 -0
  48. package/dist/commands/resize.js +118 -0
  49. package/dist/commands/resize.js.map +1 -0
  50. package/dist/{generate/distinct/dummy.d.ts.map → dummy.d.ts.map} +1 -1
  51. package/dist/dummy.js.map +1 -0
  52. package/dist/index.d.ts +1 -1
  53. package/dist/index.d.ts.map +1 -1
  54. package/dist/index.js +1 -1
  55. package/dist/index.js.map +1 -1
  56. package/dist/tests/data/flat_resized/labels.json +3 -0
  57. package/dist/tests/data/flat_resized/relocated_data.json +364 -0
  58. package/dist/tests/mocked.test.d.ts +2 -0
  59. package/dist/tests/mocked.test.d.ts.map +1 -0
  60. package/dist/tests/mocked.test.js +271 -0
  61. package/dist/tests/mocked.test.js.map +1 -0
  62. package/dist/tests/utils.d.ts +35 -0
  63. package/dist/tests/utils.d.ts.map +1 -0
  64. package/dist/tests/utils.js +120 -0
  65. package/dist/tests/utils.js.map +1 -0
  66. package/dist/utils/input.d.ts +24 -0
  67. package/dist/utils/input.d.ts.map +1 -0
  68. package/dist/utils/input.js +34 -0
  69. package/dist/utils/input.js.map +1 -0
  70. package/dist/utils/inputOutput.d.ts +20 -0
  71. package/dist/utils/inputOutput.d.ts.map +1 -0
  72. package/dist/utils/inputOutput.js +10 -0
  73. package/dist/utils/inputOutput.js.map +1 -0
  74. package/dist/utils/output.d.ts +37 -0
  75. package/dist/utils/output.d.ts.map +1 -0
  76. package/dist/utils/output.js +63 -0
  77. package/dist/utils/output.js.map +1 -0
  78. package/package.json +5 -6
  79. package/dist/cjs/cli.cjs +0 -34
  80. package/dist/cjs/flatten/args.cjs +0 -9
  81. package/dist/cjs/flatten/cli.cjs +0 -28
  82. package/dist/cjs/flatten/flatten.cjs +0 -55
  83. package/dist/cjs/generate/args.cjs +0 -16
  84. package/dist/cjs/generate/cli.cjs +0 -50
  85. package/dist/cjs/generate/distinct/args.cjs +0 -11
  86. package/dist/cjs/generate/distinct/cli.cjs +0 -28
  87. package/dist/cjs/generate/distinct/generate.cjs +0 -174
  88. package/dist/cjs/generate/union/args.cjs +0 -12
  89. package/dist/cjs/generate/union/cli.cjs +0 -31
  90. package/dist/cjs/generate/union/generate.cjs +0 -151
  91. package/dist/cjs/generate/util.cjs +0 -21
  92. package/dist/cjs/get/args.cjs +0 -7
  93. package/dist/cjs/get/cli.cjs +0 -20
  94. package/dist/cjs/get/get.cjs +0 -53
  95. package/dist/cjs/labels/args.cjs +0 -7
  96. package/dist/cjs/labels/cli.cjs +0 -20
  97. package/dist/cjs/labels/labels.cjs +0 -21
  98. package/dist/cjs/relocate/args.cjs +0 -9
  99. package/dist/cjs/relocate/cli.cjs +0 -27
  100. package/dist/cjs/relocate/relocate.cjs +0 -36
  101. package/dist/cjs/scale/args.cjs +0 -11
  102. package/dist/cjs/scale/cli.cjs +0 -34
  103. package/dist/cjs/scale/scale.cjs +0 -55
  104. package/dist/flatten/args.d.ts +0 -16
  105. package/dist/flatten/args.d.ts.map +0 -1
  106. package/dist/flatten/args.js +0 -8
  107. package/dist/flatten/args.js.map +0 -1
  108. package/dist/flatten/cli.d.ts +0 -18
  109. package/dist/flatten/cli.d.ts.map +0 -1
  110. package/dist/flatten/cli.js +0 -30
  111. package/dist/flatten/cli.js.map +0 -1
  112. package/dist/flatten/flatten.d.ts +0 -5
  113. package/dist/flatten/flatten.d.ts.map +0 -1
  114. package/dist/flatten/flatten.js +0 -65
  115. package/dist/flatten/flatten.js.map +0 -1
  116. package/dist/flatten/index.d.ts +0 -4
  117. package/dist/flatten/index.d.ts.map +0 -1
  118. package/dist/flatten/index.js +0 -4
  119. package/dist/flatten/index.js.map +0 -1
  120. package/dist/generate/args.d.ts +0 -37
  121. package/dist/generate/args.d.ts.map +0 -1
  122. package/dist/generate/args.js +0 -15
  123. package/dist/generate/args.js.map +0 -1
  124. package/dist/generate/cli.d.ts +0 -32
  125. package/dist/generate/cli.d.ts.map +0 -1
  126. package/dist/generate/cli.js +0 -62
  127. package/dist/generate/cli.js.map +0 -1
  128. package/dist/generate/distinct/args.d.ts +0 -49
  129. package/dist/generate/distinct/args.d.ts.map +0 -1
  130. package/dist/generate/distinct/args.js +0 -10
  131. package/dist/generate/distinct/args.js.map +0 -1
  132. package/dist/generate/distinct/cli.d.ts +0 -20
  133. package/dist/generate/distinct/cli.d.ts.map +0 -1
  134. package/dist/generate/distinct/cli.js +0 -31
  135. package/dist/generate/distinct/cli.js.map +0 -1
  136. package/dist/generate/distinct/dummy.js.map +0 -1
  137. package/dist/generate/distinct/generate.d.ts +0 -5
  138. package/dist/generate/distinct/generate.d.ts.map +0 -1
  139. package/dist/generate/distinct/generate.js +0 -186
  140. package/dist/generate/distinct/generate.js.map +0 -1
  141. package/dist/generate/distinct/index.d.ts +0 -4
  142. package/dist/generate/distinct/index.d.ts.map +0 -1
  143. package/dist/generate/distinct/index.js +0 -4
  144. package/dist/generate/distinct/index.js.map +0 -1
  145. package/dist/generate/index.d.ts +0 -5
  146. package/dist/generate/index.d.ts.map +0 -1
  147. package/dist/generate/index.js +0 -5
  148. package/dist/generate/index.js.map +0 -1
  149. package/dist/generate/union/args.d.ts +0 -52
  150. package/dist/generate/union/args.d.ts.map +0 -1
  151. package/dist/generate/union/args.js +0 -11
  152. package/dist/generate/union/args.js.map +0 -1
  153. package/dist/generate/union/cli.d.ts +0 -22
  154. package/dist/generate/union/cli.d.ts.map +0 -1
  155. package/dist/generate/union/cli.js +0 -35
  156. package/dist/generate/union/cli.js.map +0 -1
  157. package/dist/generate/union/generate.d.ts +0 -5
  158. package/dist/generate/union/generate.d.ts.map +0 -1
  159. package/dist/generate/union/generate.js +0 -168
  160. package/dist/generate/union/generate.js.map +0 -1
  161. package/dist/generate/union/index.d.ts +0 -4
  162. package/dist/generate/union/index.d.ts.map +0 -1
  163. package/dist/generate/union/index.js +0 -4
  164. package/dist/generate/union/index.js.map +0 -1
  165. package/dist/generate/util.d.ts +0 -6
  166. package/dist/generate/util.d.ts.map +0 -1
  167. package/dist/generate/util.js +0 -20
  168. package/dist/generate/util.js.map +0 -1
  169. package/dist/get/args.d.ts +0 -10
  170. package/dist/get/args.d.ts.map +0 -1
  171. package/dist/get/args.js +0 -6
  172. package/dist/get/args.js.map +0 -1
  173. package/dist/get/cli.d.ts +0 -14
  174. package/dist/get/cli.d.ts.map +0 -1
  175. package/dist/get/cli.js +0 -19
  176. package/dist/get/cli.js.map +0 -1
  177. package/dist/get/get.d.ts +0 -5
  178. package/dist/get/get.d.ts.map +0 -1
  179. package/dist/get/get.js +0 -60
  180. package/dist/get/get.js.map +0 -1
  181. package/dist/get/index.d.ts +0 -4
  182. package/dist/get/index.d.ts.map +0 -1
  183. package/dist/get/index.js +0 -4
  184. package/dist/get/index.js.map +0 -1
  185. package/dist/labels/args.d.ts +0 -10
  186. package/dist/labels/args.d.ts.map +0 -1
  187. package/dist/labels/args.js +0 -6
  188. package/dist/labels/args.js.map +0 -1
  189. package/dist/labels/cli.d.ts +0 -14
  190. package/dist/labels/cli.d.ts.map +0 -1
  191. package/dist/labels/cli.js +0 -19
  192. package/dist/labels/cli.js.map +0 -1
  193. package/dist/labels/index.d.ts +0 -4
  194. package/dist/labels/index.d.ts.map +0 -1
  195. package/dist/labels/index.js +0 -4
  196. package/dist/labels/index.js.map +0 -1
  197. package/dist/labels/labels.d.ts +0 -5
  198. package/dist/labels/labels.d.ts.map +0 -1
  199. package/dist/labels/labels.js +0 -22
  200. package/dist/labels/labels.js.map +0 -1
  201. package/dist/relocate/args.d.ts +0 -16
  202. package/dist/relocate/args.d.ts.map +0 -1
  203. package/dist/relocate/args.js +0 -8
  204. package/dist/relocate/args.js.map +0 -1
  205. package/dist/relocate/cli.d.ts +0 -18
  206. package/dist/relocate/cli.d.ts.map +0 -1
  207. package/dist/relocate/cli.js +0 -29
  208. package/dist/relocate/cli.js.map +0 -1
  209. package/dist/relocate/relocate.d.ts +0 -5
  210. package/dist/relocate/relocate.d.ts.map +0 -1
  211. package/dist/relocate/relocate.js +0 -40
  212. package/dist/relocate/relocate.js.map +0 -1
  213. package/dist/scale/args.d.ts +0 -22
  214. package/dist/scale/args.d.ts.map +0 -1
  215. package/dist/scale/args.js +0 -10
  216. package/dist/scale/args.js.map +0 -1
  217. package/dist/scale/cli.d.ts +0 -22
  218. package/dist/scale/cli.d.ts.map +0 -1
  219. package/dist/scale/cli.js +0 -38
  220. package/dist/scale/cli.js.map +0 -1
  221. package/dist/scale/index.d.ts +0 -4
  222. package/dist/scale/index.d.ts.map +0 -1
  223. package/dist/scale/index.js +0 -4
  224. package/dist/scale/index.js.map +0 -1
  225. package/dist/scale/scale.d.ts +0 -5
  226. package/dist/scale/scale.d.ts.map +0 -1
  227. package/dist/scale/scale.js +0 -67
  228. package/dist/scale/scale.js.map +0 -1
  229. /package/dist/{generate/distinct/dummy.d.ts → dummy.d.ts} +0 -0
  230. /package/dist/{generate/distinct/dummy.js → dummy.js} +0 -0
@@ -1,34 +0,0 @@
1
- "use strict";
2
- const args = require("./args.cjs");
3
- const scale$1 = require("./scale.cjs");
4
- const scale = (cmdArgs) => {
5
- return {
6
- command: "scale",
7
- describe: "Scale images down to a given size",
8
- builder: (yargs) => {
9
- return yargs.option("data", {
10
- type: "string",
11
- demand: true,
12
- description: "JSON file containing a list of objects with (at least) a url"
13
- }).option("out", {
14
- type: "string",
15
- demand: true,
16
- description: "Where to put the output directory containing the map file and single directory of images. The map file will contain the new urls of the scaled images, new hashes and pass through any other information, e.g. labels."
17
- }).option("overwrite", {
18
- type: "boolean",
19
- description: "Overwrite the output if it already exists"
20
- }).option("size", {
21
- type: "number",
22
- demand: true,
23
- description: "The dimension (height/width) of the scaled image. If the image is not square, the other dimension will be scaled to maintain the aspect ratio."
24
- }).option("square", {
25
- type: "boolean",
26
- description: "If true, the image will be cropped to a square before scaling. If false, the image will be scaled to the given size, maintaining the aspect ratio."
27
- });
28
- },
29
- handler: async (argv) => {
30
- await scale$1(args.argsSchema.parse(argv), cmdArgs == null ? void 0 : cmdArgs.logger);
31
- }
32
- };
33
- };
34
- module.exports = scale;
@@ -1,55 +0,0 @@
1
- "use strict";
2
- const types = require("@prosopo/types");
3
- const common = require("@prosopo/common");
4
- const blake2b = require("@noble/hashes/blake2b");
5
- const util = require("@polkadot/util");
6
- const fs = require("fs");
7
- const sharp = require("sharp");
8
- const scale = async (args, logger) => {
9
- logger = logger || common.getLoggerDefault();
10
- logger.debug(args, "scaling...");
11
- const size = args.size;
12
- const square = args.square ?? false;
13
- const mapFile = args.data;
14
- if (!fs.existsSync(mapFile)) {
15
- throw new common.ProsopoEnvError(new Error(`Map file does not exist: ${mapFile}`), "FS.FILE_NOT_FOUND");
16
- }
17
- const outDir = args.out;
18
- const overwrite = args.overwrite || false;
19
- if (!overwrite && fs.existsSync(outDir)) {
20
- throw new common.ProsopoEnvError(new Error(`Output directory already exists: ${outDir}`), "FS.FILE_NOT_FOUND");
21
- }
22
- const imgDir = `${outDir}/images`;
23
- fs.mkdirSync(imgDir, { recursive: true });
24
- const inputItems = types.DataSchema.parse(JSON.parse(fs.readFileSync(mapFile, "utf8"))).items;
25
- const outputItems = [];
26
- for (const inputItem of inputItems) {
27
- logger.log(`scaling ${inputItem.data}`);
28
- const img = fs.readFileSync(inputItem.data);
29
- const resized = await sharp(img).resize({
30
- width: size,
31
- height: size,
32
- fit: square ? "fill" : "inside"
33
- }).png();
34
- const tmpFilePath = `${imgDir}/tmp.png`;
35
- await resized.toFile(tmpFilePath);
36
- const resizedImg = fs.readFileSync(tmpFilePath);
37
- const hash = blake2b.blake2b(resizedImg);
38
- const hex = util.u8aToHex(hash);
39
- const finalFilePath = `${imgDir}/${hex}.png`;
40
- fs.renameSync(tmpFilePath, finalFilePath);
41
- const outputItem = {
42
- ...inputItem,
43
- hash: hex,
44
- data: fs.realpathSync(finalFilePath)
45
- };
46
- outputItems.push(outputItem);
47
- }
48
- const outputMapFile = `${outDir}/map.json`;
49
- const data = {
50
- items: outputItems
51
- };
52
- types.DataSchema.parse(data);
53
- fs.writeFileSync(outputMapFile, JSON.stringify(outputItems, null, 4));
54
- };
55
- module.exports = scale;
@@ -1,16 +0,0 @@
1
- import { z } from 'zod';
2
- export declare const argsSchema: z.ZodObject<{
3
- data: z.ZodString;
4
- out: z.ZodString;
5
- overwrite: z.ZodOptional<z.ZodBoolean>;
6
- }, "strip", z.ZodTypeAny, {
7
- data: string;
8
- out: string;
9
- overwrite?: boolean | undefined;
10
- }, {
11
- data: string;
12
- out: string;
13
- overwrite?: boolean | undefined;
14
- }>;
15
- export type Args = z.infer<typeof argsSchema>;
16
- //# sourceMappingURL=args.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"args.d.ts","sourceRoot":"","sources":["../../src/flatten/args.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,eAAO,MAAM,UAAU;;;;;;;;;;;;EAIrB,CAAA;AAEF,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAA"}
@@ -1,8 +0,0 @@
1
- // Args for generating a dataset
2
- import { z } from 'zod';
3
- export const argsSchema = z.object({
4
- data: z.string(),
5
- out: z.string(),
6
- overwrite: z.boolean().optional(),
7
- });
8
- //# sourceMappingURL=args.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"args.js","sourceRoot":"","sources":["../../src/flatten/args.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;IACf,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CACpC,CAAC,CAAA"}
@@ -1,18 +0,0 @@
1
- import { ArgumentsCamelCase, Argv } from 'yargs';
2
- import { Logger } from '@prosopo/common';
3
- declare const _default: (cmdArgs?: {
4
- logger?: Logger;
5
- }) => {
6
- command: string;
7
- describe: string;
8
- builder: (yargs: Argv) => Argv<{
9
- data: string;
10
- } & {
11
- out: string;
12
- } & {
13
- overwrite: boolean | undefined;
14
- }>;
15
- handler: (argv: ArgumentsCamelCase) => Promise<void>;
16
- };
17
- export default _default;
18
- //# sourceMappingURL=cli.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/flatten/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,IAAI,EAAE,MAAM,OAAO,CAAA;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;mCAId;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE;;;qBAKpB,IAAI;;;;;;;oBAkBC,kBAAkB;;AAvBhD,wBA2BC"}
@@ -1,30 +0,0 @@
1
- import { argsSchema } from './args.js';
2
- import flatten from './flatten.js';
3
- export default (cmdArgs) => {
4
- return {
5
- command: 'flatten',
6
- describe: 'Restructure a directory containing directories for each image classification into a single directory with a file containing the labels',
7
- builder: (yargs) => {
8
- return yargs
9
- .option('data', {
10
- type: 'string',
11
- alias: 'in',
12
- demand: true,
13
- description: 'Path to the data directory containing subdirectories for each image classification',
14
- })
15
- .option('out', {
16
- type: 'string',
17
- demand: true,
18
- description: 'Where to put the output file containing the labels and single directory of images',
19
- })
20
- .option('overwrite', {
21
- type: 'boolean',
22
- description: 'Overwrite the output file if it already exists',
23
- });
24
- },
25
- handler: async (argv) => {
26
- await flatten(argsSchema.parse(argv), cmdArgs?.logger);
27
- },
28
- };
29
- };
30
- //# sourceMappingURL=cli.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/flatten/cli.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AACtC,OAAO,OAAO,MAAM,cAAc,CAAA;AAElC,eAAe,CAAC,OAA6B,EAAE,EAAE;IAC7C,OAAO;QACH,OAAO,EAAE,SAAS;QAClB,QAAQ,EACJ,wIAAwI;QAC5I,OAAO,EAAE,CAAC,KAAW,EAAE,EAAE;YACrB,OAAO,KAAK;iBACP,MAAM,CAAC,MAAM,EAAE;gBACZ,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,IAAI;gBACX,MAAM,EAAE,IAAI;gBACZ,WAAW,EAAE,oFAAoF;aACpG,CAAC;iBACD,MAAM,CAAC,KAAK,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,IAAI;gBACZ,WAAW,EAAE,mFAAmF;aACnG,CAAC;iBACD,MAAM,CAAC,WAAW,EAAE;gBACjB,IAAI,EAAE,SAAS;gBACf,WAAW,EAAE,gDAAgD;aAChE,CAAC,CAAA;QACV,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,IAAwB,EAAE,EAAE;YACxC,MAAM,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;QAC1D,CAAC;KACJ,CAAA;AACL,CAAC,CAAA"}
@@ -1,5 +0,0 @@
1
- import { Args } from './args.js';
2
- import { Logger } from '@prosopo/common';
3
- declare const _default: (args: Args, logger?: Logger) => Promise<void>;
4
- export default _default;
5
- //# sourceMappingURL=flatten.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"flatten.d.ts","sourceRoot":"","sources":["../../src/flatten/flatten.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAEhC,OAAO,EAAE,MAAM,EAAqC,MAAM,iBAAiB,CAAA;+BAK/C,IAAI,WAAW,MAAM;AAAjD,wBAqEC"}
@@ -1,65 +0,0 @@
1
- import { CaptchaItemTypes, DataSchema } from '@prosopo/types';
2
- import { ProsopoEnvError, getLoggerDefault } from '@prosopo/common';
3
- import { blake2b } from '@noble/hashes/blake2b';
4
- import { u8aToHex } from '@polkadot/util';
5
- import fs from 'fs';
6
- export default async (args, logger) => {
7
- logger = logger || getLoggerDefault();
8
- logger.debug(args, 'flattening...');
9
- const dataDir = args.data;
10
- if (!fs.existsSync(dataDir)) {
11
- throw new ProsopoEnvError(new Error(`data directory does not exist: ${dataDir}`), 'FS.DIRECTORY_NOT_FOUND');
12
- }
13
- const outDir = args.out;
14
- const overwrite = args.overwrite || false;
15
- if (!overwrite && fs.existsSync(outDir)) {
16
- throw new ProsopoEnvError(new Error(`output directory already exists: ${outDir}`), 'FS.DIRECTORY_ALREADY_EXISTS');
17
- }
18
- // find the labels (these should be subdirectories of the data directory)
19
- const labels = fs
20
- .readdirSync(dataDir, { withFileTypes: true })
21
- .filter((dirent) => dirent.isDirectory())
22
- .map((dirent) => dirent.name);
23
- // create the output directory
24
- const imageDir = `${outDir}/images`;
25
- fs.mkdirSync(imageDir, { recursive: true });
26
- // for each label
27
- const items = [];
28
- for (const label of labels) {
29
- // find all the images
30
- const images = fs.readdirSync(`${dataDir}/${label}`);
31
- // for each image
32
- for (const image of images) {
33
- logger.log(`flattening ${label}/${image}`);
34
- // copy the image to the output directory
35
- const extension = image.split('.').pop();
36
- // read file to bytes
37
- const content = fs.readFileSync(`${dataDir}/${label}/${image}`);
38
- // hash based on the content of the image
39
- const hash = blake2b(content);
40
- const hex = u8aToHex(hash);
41
- const name = `${hex}.${extension}`;
42
- if (fs.existsSync(`${imageDir}/${name}`)) {
43
- logger.log(`duplicate image: ${label}/${image} -> ${name}`);
44
- }
45
- fs.copyFileSync(`${dataDir}/${label}/${image}`, `${imageDir}/${name}`);
46
- const filePath = fs.realpathSync(`${imageDir}/${name}`);
47
- // add the image to the map file
48
- const entry = {
49
- data: filePath,
50
- type: CaptchaItemTypes.Image,
51
- label,
52
- hash: hex,
53
- };
54
- items.push(entry);
55
- }
56
- }
57
- const data = {
58
- items,
59
- };
60
- // verify data
61
- DataSchema.parse(data);
62
- // write map file
63
- fs.writeFileSync(`${outDir}/data.json`, JSON.stringify(data, null, 4));
64
- };
65
- //# sourceMappingURL=flatten.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"flatten.js","sourceRoot":"","sources":["../../src/flatten/flatten.ts"],"names":[],"mappings":"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"}
@@ -1,4 +0,0 @@
1
- export * from './flatten.js';
2
- export * from './cli.js';
3
- export * from './args.js';
4
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/flatten/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA"}
@@ -1,4 +0,0 @@
1
- export * from './flatten.js';
2
- export * from './cli.js';
3
- export * from './args.js';
4
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/flatten/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA"}
@@ -1,37 +0,0 @@
1
- import { z } from 'zod';
2
- export declare const argsSchema: z.ZodObject<{
3
- labels: z.ZodOptional<z.ZodString>;
4
- out: z.ZodString;
5
- labelled: z.ZodOptional<z.ZodString>;
6
- unlabelled: z.ZodOptional<z.ZodString>;
7
- seed: z.ZodOptional<z.ZodNumber>;
8
- size: z.ZodOptional<z.ZodNumber>;
9
- overwrite: z.ZodOptional<z.ZodBoolean>;
10
- allowDuplicates: z.ZodOptional<z.ZodBoolean>;
11
- allowDuplicatesLabelled: z.ZodOptional<z.ZodBoolean>;
12
- allowDuplicatesUnlabelled: z.ZodOptional<z.ZodBoolean>;
13
- }, "strip", z.ZodTypeAny, {
14
- out: string;
15
- labels?: string | undefined;
16
- labelled?: string | undefined;
17
- unlabelled?: string | undefined;
18
- seed?: number | undefined;
19
- size?: number | undefined;
20
- overwrite?: boolean | undefined;
21
- allowDuplicates?: boolean | undefined;
22
- allowDuplicatesLabelled?: boolean | undefined;
23
- allowDuplicatesUnlabelled?: boolean | undefined;
24
- }, {
25
- out: string;
26
- labels?: string | undefined;
27
- labelled?: string | undefined;
28
- unlabelled?: string | undefined;
29
- seed?: number | undefined;
30
- size?: number | undefined;
31
- overwrite?: boolean | undefined;
32
- allowDuplicates?: boolean | undefined;
33
- allowDuplicatesLabelled?: boolean | undefined;
34
- allowDuplicatesUnlabelled?: boolean | undefined;
35
- }>;
36
- export type Args = z.infer<typeof argsSchema>;
37
- //# sourceMappingURL=args.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"args.d.ts","sourceRoot":"","sources":["../../src/generate/args.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAWrB,CAAA;AAEF,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAA"}
@@ -1,15 +0,0 @@
1
- // Args for generating a dataset
2
- import { z } from 'zod';
3
- export const argsSchema = z.object({
4
- labels: z.string().optional(),
5
- out: z.string(),
6
- labelled: z.string().optional(),
7
- unlabelled: z.string().optional(),
8
- seed: z.number().optional(),
9
- size: z.number().optional(),
10
- overwrite: z.boolean().optional(),
11
- allowDuplicates: z.boolean().optional(),
12
- allowDuplicatesLabelled: z.boolean().optional(),
13
- allowDuplicatesUnlabelled: z.boolean().optional(),
14
- });
15
- //# sourceMappingURL=args.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"args.js","sourceRoot":"","sources":["../../src/generate/args.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;IACf,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,CAAC,QAAQ,EAAE;IAC3B,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"}
@@ -1,32 +0,0 @@
1
- import { ArgumentsCamelCase, Argv } from 'yargs';
2
- import { Logger } from '@prosopo/common';
3
- declare const _default: (cmdArgs?: {
4
- logger?: Logger;
5
- }) => {
6
- command: string;
7
- describe: string;
8
- builder: (yargs: Argv) => Argv<{
9
- overwrite: boolean | undefined;
10
- } & {
11
- out: string;
12
- } & {
13
- labelled: string;
14
- } & {
15
- unlabelled: string;
16
- } & {
17
- seed: number | undefined;
18
- } & {
19
- size: number | undefined;
20
- } & {
21
- labels: string | undefined;
22
- } & {
23
- "allow-duplicates": boolean | undefined;
24
- } & {
25
- "allow-duplicates-labelled": boolean | undefined;
26
- } & {
27
- "allow-duplicates-unlabelled": boolean | undefined;
28
- }>;
29
- handler: (argv: ArgumentsCamelCase) => Promise<never>;
30
- };
31
- export default _default;
32
- //# sourceMappingURL=cli.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/generate/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,IAAI,EAAE,MAAM,OAAO,CAAA;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;mCAId;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE;;;qBAIpB,IAAI;;;;;;;;;;;;;;;;;;;;;oBAmDC,kBAAkB;;AAvDhD,wBA2DC"}
@@ -1,62 +0,0 @@
1
- import generateDistinct from './distinct/cli.js';
2
- import generateUnion from './union/cli.js';
3
- export default (cmdArgs) => {
4
- return {
5
- command: 'generate',
6
- describe: 'Generate captchas',
7
- builder: (yargs) => {
8
- return yargs
9
- .command(generateDistinct(cmdArgs))
10
- .command(generateUnion(cmdArgs))
11
- .demandCommand()
12
- .option('overwrite', {
13
- type: 'boolean',
14
- description: 'Overwrite the output file if it already exists',
15
- })
16
- .option('out', {
17
- type: 'string',
18
- demand: true,
19
- description: 'Path to the output file',
20
- default: 'captchas.json',
21
- })
22
- .option('labelled', {
23
- type: 'string',
24
- demand: true,
25
- description: 'Path to the file containing map of images urls to labels',
26
- })
27
- .option('unlabelled', {
28
- type: 'string',
29
- demand: true,
30
- description: 'Path to the file containing list of images url which are unlabelled',
31
- })
32
- .option('seed', {
33
- type: 'number',
34
- description: 'Seed for the random number generator',
35
- })
36
- .option('size', {
37
- type: 'number',
38
- description: 'Number of images in each captcha',
39
- })
40
- .options('labels', {
41
- type: 'string',
42
- description: 'Path to the labels file. This is a file containing a list of labels which unlabelled data will be assigned to.',
43
- })
44
- .option('allow-duplicates', {
45
- type: 'boolean',
46
- description: 'Allow duplicates in the data (labelled and unlabelled)',
47
- })
48
- .option('allow-duplicates-labelled', {
49
- type: 'boolean',
50
- description: 'Allow duplicates in the labelled data',
51
- })
52
- .option('allow-duplicates-unlabelled', {
53
- type: 'boolean',
54
- description: 'Allow duplicates in the unlabelled data',
55
- });
56
- },
57
- handler: async (argv) => {
58
- throw new Error('Please specify a command');
59
- },
60
- };
61
- };
62
- //# sourceMappingURL=cli.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/generate/cli.ts"],"names":[],"mappings":"AAEA,OAAO,gBAAgB,MAAM,mBAAmB,CAAA;AAChD,OAAO,aAAa,MAAM,gBAAgB,CAAA;AAE1C,eAAe,CAAC,OAA6B,EAAE,EAAE;IAC7C,OAAO;QACH,OAAO,EAAE,UAAU;QACnB,QAAQ,EAAE,mBAAmB;QAC7B,OAAO,EAAE,CAAC,KAAW,EAAE,EAAE;YACrB,OAAO,KAAK;iBACP,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;iBAClC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;iBAC/B,aAAa,EAAE;iBACf,MAAM,CAAC,WAAW,EAAE;gBACjB,IAAI,EAAE,SAAS;gBACf,WAAW,EAAE,gDAAgD;aAChE,CAAC;iBACD,MAAM,CAAC,KAAK,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,IAAI;gBACZ,WAAW,EAAE,yBAAyB;gBACtC,OAAO,EAAE,eAAe;aAC3B,CAAC;iBACD,MAAM,CAAC,UAAU,EAAE;gBAChB,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,IAAI;gBACZ,WAAW,EAAE,0DAA0D;aAC1E,CAAC;iBACD,MAAM,CAAC,YAAY,EAAE;gBAClB,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,IAAI;gBACZ,WAAW,EAAE,qEAAqE;aACrF,CAAC;iBACD,MAAM,CAAC,MAAM,EAAE;gBACZ,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,sCAAsC;aACtD,CAAC;iBACD,MAAM,CAAC,MAAM,EAAE;gBACZ,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,kCAAkC;aAClD,CAAC;iBACD,OAAO,CAAC,QAAQ,EAAE;gBACf,IAAI,EAAE,QAAQ;gBACd,WAAW,EACP,gHAAgH;aACvH,CAAC;iBACD,MAAM,CAAC,kBAAkB,EAAE;gBACxB,IAAI,EAAE,SAAS;gBACf,WAAW,EAAE,wDAAwD;aACxE,CAAC;iBACD,MAAM,CAAC,2BAA2B,EAAE;gBACjC,IAAI,EAAE,SAAS;gBACf,WAAW,EAAE,uCAAuC;aACvD,CAAC;iBACD,MAAM,CAAC,6BAA6B,EAAE;gBACnC,IAAI,EAAE,SAAS;gBACf,WAAW,EAAE,yCAAyC;aACzD,CAAC,CAAA;QACV,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,IAAwB,EAAE,EAAE;YACxC,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAA;QAC/C,CAAC;KACJ,CAAA;AACL,CAAC,CAAA"}
@@ -1,49 +0,0 @@
1
- import { z } from 'zod';
2
- export declare const argsSchema: z.ZodObject<{
3
- out: z.ZodString;
4
- overwrite: z.ZodOptional<z.ZodBoolean>;
5
- labels: z.ZodOptional<z.ZodString>;
6
- labelled: z.ZodOptional<z.ZodString>;
7
- unlabelled: z.ZodOptional<z.ZodString>;
8
- seed: z.ZodOptional<z.ZodNumber>;
9
- size: z.ZodOptional<z.ZodNumber>;
10
- allowDuplicates: z.ZodOptional<z.ZodBoolean>;
11
- allowDuplicatesLabelled: z.ZodOptional<z.ZodBoolean>;
12
- allowDuplicatesUnlabelled: z.ZodOptional<z.ZodBoolean>;
13
- solved: z.ZodOptional<z.ZodNumber>;
14
- unsolved: z.ZodOptional<z.ZodNumber>;
15
- minCorrect: z.ZodOptional<z.ZodNumber>;
16
- maxCorrect: z.ZodOptional<z.ZodNumber>;
17
- }, "strip", z.ZodTypeAny, {
18
- out: string;
19
- overwrite?: boolean | undefined;
20
- labels?: string | undefined;
21
- labelled?: string | undefined;
22
- unlabelled?: string | undefined;
23
- seed?: number | undefined;
24
- size?: number | undefined;
25
- allowDuplicates?: boolean | undefined;
26
- allowDuplicatesLabelled?: boolean | undefined;
27
- allowDuplicatesUnlabelled?: boolean | undefined;
28
- solved?: number | undefined;
29
- unsolved?: number | undefined;
30
- minCorrect?: number | undefined;
31
- maxCorrect?: number | undefined;
32
- }, {
33
- out: string;
34
- overwrite?: boolean | undefined;
35
- labels?: string | undefined;
36
- labelled?: string | undefined;
37
- unlabelled?: string | undefined;
38
- seed?: number | undefined;
39
- size?: number | undefined;
40
- allowDuplicates?: boolean | undefined;
41
- allowDuplicatesLabelled?: boolean | undefined;
42
- allowDuplicatesUnlabelled?: boolean | undefined;
43
- solved?: number | undefined;
44
- unsolved?: number | undefined;
45
- minCorrect?: number | undefined;
46
- maxCorrect?: number | undefined;
47
- }>;
48
- export type Args = z.infer<typeof argsSchema>;
49
- //# sourceMappingURL=args.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"args.d.ts","sourceRoot":"","sources":["../../../src/generate/distinct/args.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAKrB,CAAA;AAEF,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAA"}
@@ -1,10 +0,0 @@
1
- import { argsSchema as parentSchema } from '../args.js';
2
- // Args for generating a dataset
3
- import { z } from 'zod';
4
- export const argsSchema = parentSchema.extend({
5
- solved: z.number().optional(),
6
- unsolved: z.number().optional(),
7
- minCorrect: z.number().optional(),
8
- maxCorrect: z.number().optional(),
9
- });
10
- //# sourceMappingURL=args.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"args.js","sourceRoot":"","sources":["../../../src/generate/distinct/args.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,IAAI,YAAY,EAAE,MAAM,YAAY,CAAA;AACvD,gCAAgC;AAEhC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,MAAM,CAAC,MAAM,UAAU,GAAG,YAAY,CAAC,MAAM,CAAC;IAC1C,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"}
@@ -1,20 +0,0 @@
1
- import { ArgumentsCamelCase, Argv } from 'yargs';
2
- import { Logger } from '@prosopo/common';
3
- declare const _default: (cmdArgs?: {
4
- logger?: Logger;
5
- }) => {
6
- command: string;
7
- describe: string;
8
- builder: (yargs: Argv) => Argv<{
9
- solved: number | undefined;
10
- } & {
11
- unsolved: number | undefined;
12
- } & {
13
- "min-correct": number | undefined;
14
- } & {
15
- "max-correct": number | undefined;
16
- }>;
17
- handler: (argv: ArgumentsCamelCase) => Promise<void>;
18
- };
19
- export default _default;
20
- //# sourceMappingURL=cli.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../../src/generate/distinct/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,IAAI,EAAE,MAAM,OAAO,CAAA;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;mCAId;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE;;;qBAKpB,IAAI;;;;;;;;;oBAmBC,kBAAkB;;AAxBhD,wBA4BC"}
@@ -1,31 +0,0 @@
1
- import { argsSchema } from './args.js';
2
- import generate from './generate.js';
3
- export default (cmdArgs) => {
4
- return {
5
- command: 'distinct',
6
- describe: 'Generate distinct captchas producing captcha challenges comprising 2 rounds, one labelled and one unlabelled',
7
- builder: (yargs) => {
8
- return yargs
9
- .option('solved', {
10
- type: 'number',
11
- description: 'Number of captchas to generate that are solved',
12
- })
13
- .option('unsolved', {
14
- type: 'number',
15
- description: 'Number of captchas to generate that are unsolved',
16
- })
17
- .option('min-correct', {
18
- type: 'number',
19
- description: 'Minimum number of target images in each captcha',
20
- })
21
- .option('max-correct', {
22
- type: 'number',
23
- description: 'Maximum number of target images in each captcha',
24
- });
25
- },
26
- handler: async (argv) => {
27
- await generate(argsSchema.parse(argv), cmdArgs?.logger);
28
- },
29
- };
30
- };
31
- //# sourceMappingURL=cli.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../src/generate/distinct/cli.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AACtC,OAAO,QAAQ,MAAM,eAAe,CAAA;AAEpC,eAAe,CAAC,OAA6B,EAAE,EAAE;IAC7C,OAAO;QACH,OAAO,EAAE,UAAU;QACnB,QAAQ,EACJ,8GAA8G;QAClH,OAAO,EAAE,CAAC,KAAW,EAAE,EAAE;YACrB,OAAO,KAAK;iBACP,MAAM,CAAC,QAAQ,EAAE;gBACd,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,gDAAgD;aAChE,CAAC;iBACD,MAAM,CAAC,UAAU,EAAE;gBAChB,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,kDAAkD;aAClE,CAAC;iBACD,MAAM,CAAC,aAAa,EAAE;gBACnB,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,iDAAiD;aACjE,CAAC;iBACD,MAAM,CAAC,aAAa,EAAE;gBACnB,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,iDAAiD;aACjE,CAAC,CAAA;QACV,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,IAAwB,EAAE,EAAE;YACxC,MAAM,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;QAC3D,CAAC;KACJ,CAAA;AACL,CAAC,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"dummy.js","sourceRoot":"","sources":["../../../src/generate/distinct/dummy.ts"],"names":[],"mappings":"AAAA,wDAAwD;AAExD,OAAO,EAAE,gBAAgB,EAAsB,MAAM,gBAAgB,CAAA;AACrE,OAAO,EAAE,MAAM,IAAI,CAAA;AAEnB,MAAM,OAAO,GAAG,CAAC,CAAA;AACjB,MAAM,eAAe,GAAG,GAAG,CAAA;AAC3B,MAAM,iBAAiB,GAAG,GAAG,CAAA;AAE7B,MAAM,cAAc,GAAmB,EAAE,CAAA;AACzC,MAAM,gBAAgB,GAAW,EAAE,CAAA;AAEnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,EAAE,CAAC,EAAE,EAAE;IACtC,MAAM,KAAK,GAAG,CAAC,GAAG,OAAO,CAAA;IACzB,cAAc,CAAC,IAAI,CAAC;QAChB,KAAK,EAAE,KAAK,CAAC,QAAQ,EAAE;QACvB,IAAI,EAAE,MAAM,CAAC,EAAE;QACf,IAAI,EAAE,gBAAgB,CAAC,KAAK;QAC5B,IAAI,EAAE,MAAM,CAAC,MAAM;KACtB,CAAC,CAAA;CACL;AAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,iBAAiB,EAAE,CAAC,EAAE,EAAE;IACxC,gBAAgB,CAAC,IAAI,CAAC;QAClB,IAAI,EAAE,MAAM,CAAC,EAAE;QACf,IAAI,EAAE,gBAAgB,CAAC,KAAK;QAC5B,IAAI,EAAE,MAAM,CAAC,MAAM;KACtB,CAAC,CAAA;CACL;AAED,EAAE,CAAC,aAAa,CAAC,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAA;AACjE,EAAE,CAAC,aAAa,CAAC,iBAAiB,EAAE,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,CAAA;AACrE,EAAE,CAAC,aAAa,CAAC,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAA;AAE3G,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA"}
@@ -1,5 +0,0 @@
1
- import { Args } from './args.js';
2
- import { Logger } from '@prosopo/common';
3
- declare const _default: (args: Args, logger?: Logger) => Promise<void>;
4
- export default _default;
5
- //# sourceMappingURL=generate.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../../src/generate/distinct/generate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAahC,OAAO,EAAE,MAAM,EAAqC,MAAM,iBAAiB,CAAA;+BAQ/C,IAAI,WAAW,MAAM;AAAjD,wBAyNC"}