apify-schema-tools 2.1.0 → 3.0.0-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/.cspell/custom-dictionary.txt +1 -0
  2. package/CHANGELOG.md +21 -0
  3. package/README.md +77 -4
  4. package/dist/apify-schema-tools.js +76 -18
  5. package/dist/apify-schema-tools.js.map +1 -1
  6. package/dist/apify.d.ts +2 -1
  7. package/dist/apify.d.ts.map +1 -1
  8. package/dist/apify.js +1 -0
  9. package/dist/apify.js.map +1 -1
  10. package/dist/json-schema-conflicts.d.ts +16 -0
  11. package/dist/json-schema-conflicts.d.ts.map +1 -0
  12. package/dist/json-schema-conflicts.js +165 -0
  13. package/dist/json-schema-conflicts.js.map +1 -0
  14. package/dist/json-schemas.d.ts +12 -4
  15. package/dist/json-schemas.d.ts.map +1 -1
  16. package/dist/json-schemas.js +12 -45
  17. package/dist/json-schemas.js.map +1 -1
  18. package/dist/typescript.js +1 -1
  19. package/dist/typescript.js.map +1 -1
  20. package/package.json +2 -1
  21. package/samples/all-defaults/src-schemas/input.json +18 -5
  22. package/samples/deep-merged-schemas/add-schemas/input.json +4 -1
  23. package/samples/deep-merged-schemas/src-schemas/input.json +18 -5
  24. package/samples/merged-schemas/add-schemas/input.json +4 -1
  25. package/samples/merged-schemas/src-schemas/input.json +18 -5
  26. package/samples/package-json-config/custom-src-schemas/input.json +18 -5
  27. package/src/apify-schema-tools.ts +109 -17
  28. package/src/apify.ts +3 -1
  29. package/src/json-schema-conflicts.ts +290 -0
  30. package/src/json-schemas.ts +16 -62
  31. package/src/typescript.ts +1 -1
  32. package/test/apify-schema-tools.test.ts +120 -4
  33. package/test/json-schema-conflicts.test.ts +783 -0
  34. package/test/json-schemas.test.ts +22 -81
  35. package/test/typescript.test.ts +68 -0
@@ -1,5 +1,6 @@
1
1
  # Custom Dictionary Words
2
2
  apify
3
+ descr
3
4
  Filenaming
4
5
  nargs
5
6
  subparsers
package/CHANGELOG.md CHANGED
@@ -1,5 +1,26 @@
1
1
  # Changelog
2
2
 
3
+ ## 3.0.0
4
+
5
+ ### BREAKING CHANGE
6
+
7
+ - The `sync` command will now prompt the user to resolve possible conflicts, while syncing the input and dataset schemas.
8
+
9
+ ### Added
10
+
11
+ - The `sync` option `--force` will ignore conflicts and overwrite the target schemas.
12
+ - The `sync` option `--fail-on-conflict` will make the script fail if a conflict is detected.
13
+
14
+ ## 2.1.1
15
+
16
+ ### Fixed
17
+
18
+ - Fixed conversion when an object has only `additionalProperties` and no `properties`.
19
+
20
+ ### Documentation
21
+
22
+ - Fixed commands in README file.
23
+
3
24
  ## 2.1.0
4
25
 
5
26
  ### Added
package/README.md CHANGED
@@ -65,7 +65,7 @@ This command will:
65
65
  3. Generate JSON schemas and TypeScript types from the source schemas:
66
66
 
67
67
  ```sh
68
- npm apify-schema-tools sync
68
+ npx apify-schema-tools sync
69
69
  ```
70
70
 
71
71
  4. Now, you will be able to use TypeScript types and utilities in your project:
@@ -262,12 +262,70 @@ mkdir src-schemas
262
262
  5. Generate JSON schemas and TypeScript types from the source schemas:
263
263
 
264
264
  ```sh
265
- npm apify-schema-tools sync
265
+ npx apify-schema-tools sync
266
+ ```
267
+
268
+ ## Resolving conflicts
269
+
270
+ The `sync` command includes interactive conflict resolution to help you handle schema inconsistencies.
271
+ When the tool detects conflicts between your source schemas and existing target schemas,
272
+ it will prompt you to choose which version to keep.
273
+
274
+ ### When conflicts are detected
275
+
276
+ Conflicts occur when there are differences between your source schema files and the schemas that would be generated in the target locations.
277
+ Common scenarios include:
278
+
279
+ - The source and the target schema have different title of description.
280
+ - The same property has different title of description in the source and target schemas.
281
+ - Properties that exist in the target schema are missing from the source schema.
282
+
283
+ ### Interactive mode (default behavior)
284
+
285
+ By default, when conflicts are detected, the tool will prompt you interactively to resolve each conflict:
286
+
287
+ ```
288
+ ⚠️ Field [properties > startUrls > description] in the source schema differs from
289
+ the target schema. Choose which to keep: (Use arrow keys)
290
+ ❯ [source] List of URLs to scrape
291
+ [target] List of URLs to parse
292
+ ```
293
+
294
+ ```
295
+ ⚠️ Property "searchTerm" was removed from the source schema. What do you want to do? (Use arrow keys)
296
+ ❯ Confirm deletion
297
+ Restore field
298
+ ```
299
+
300
+ ### Non-interactive modes
301
+
302
+ For automated scripts or CI/CD pipelines, you can use these options:
303
+
304
+ #### Force mode (`--force`)
305
+
306
+ Automatically resolves all conflicts by preferring the source schema:
307
+
308
+ ```sh
309
+ npx apify-schema-tools sync --force
310
+ ```
311
+
312
+ This will:
313
+ - Always use values from the source schema when there are conflicts
314
+ - Remove properties that exist in target but not in source
315
+ - Overwrite target schemas without prompting
316
+
317
+ #### Fail on conflict (`--fail-on-conflict`)
318
+
319
+ Stops execution and exits with an error code when conflicts are detected:
320
+
321
+ ```sh
322
+ npx apify-schema-tools sync --fail-on-conflict
266
323
  ```
267
324
 
268
325
  ## Checking if the schemas are in sync with the source schemas
269
326
 
270
- The `check` command allows you to verify that your generated schemas and TypeScript files are up-to-date with your source schemas. This is particularly useful in CI/CD pipelines to ensure that developers haven't forgotten to run the generation after making changes to the source schemas.
327
+ The `check` command allows you to verify that your generated schemas and TypeScript files are up-to-date with your source schemas.
328
+ This is particularly useful in CI/CD pipelines to ensure that developers haven't forgotten to run the generation after making changes to the source schemas.
271
329
 
272
330
  ```sh
273
331
  npx apify-schema-tools check
@@ -290,7 +348,22 @@ You can add this to your CI pipeline to automatically detect when schemas need t
290
348
  }
291
349
  ```
292
350
 
293
- The `check` command accepts the same configuration options as the `sync` command, either through `package.json` configuration or command-line arguments, ensuring it checks the same files that would be generated.
351
+ The `check` command accepts the same configuration options as the `sync` command,
352
+ either through `package.json` configuration or command-line arguments,
353
+ ensuring it checks the same files that would be generated.
354
+
355
+ ### Ignoring descriptions while checking (`--ignore-descriptions`)
356
+
357
+ The `check` command can ignore the `title` and `description` fields in the source and target schemas, and their properties.
358
+ This allows you to edit your descriptions and change how your Actor will appear on the Apify platform,
359
+ without having to run this tool to synchronize the schemas, but still being able to check for semantical correctness:
360
+
361
+ ```sh
362
+ npx apify-schema-tools check --ignore-descriptions
363
+ ```
364
+
365
+ The next time someone will try to run the `sync` command,
366
+ they will be prompted to solve the conflicts in the descriptions.
294
367
 
295
368
  ## Extra features
296
369
 
@@ -3,9 +3,10 @@
3
3
  import { existsSync } from "node:fs";
4
4
  import { join } from "node:path";
5
5
  import { ArgumentDefaultsHelpFormatter, ArgumentParser } from "argparse";
6
- import { ACTOR_CONFIG_PATH, DATASET_SCHEMA_FIELD, filterValidInputSchemaProperties, generateInputDefaultsTsFileContent, getPathRelativeToActorConfig, } from "./apify.js";
6
+ import { ACTOR_CONFIG_PATH, DATASET_SCHEMA_FIELD, DESCRIPTION_FIELDS, filterValidInputSchemaProperties, generateInputDefaultsTsFileContent, getPathRelativeToActorConfig, } from "./apify.js";
7
7
  import { addCommonCLIArgs, parseConfigurationFromFileOrDefault, writeConfigurationToPackageJson, } from "./configuration.js";
8
8
  import { readFile, writeFile } from "./filesystem.js";
9
+ import { checkConflicts } from "./json-schema-conflicts.js";
9
10
  import { compareSchemas, mergeObjectSchemas, readJsonSchema, readJsonSchemaField, writeJsonSchema, writeSchemaToField, } from "./json-schemas.js";
10
11
  import { compareTypescriptInterfaces, jsonSchemaToTypeScriptInterface, parseTypeScriptInterface, removeTypeScriptHeader, serializeTypeScriptInterface, writeTypeScriptFile, } from "./typescript.js";
11
12
  const configuration = parseConfigurationFromFileOrDefault();
@@ -104,7 +105,8 @@ function init(args) {
104
105
  }
105
106
  initParser.set_defaults({ func: init });
106
107
  const syncParser = subparsers.add_parser("sync", {
107
- help: "Generate JSON schemas and TypeScript files from the source schemas.",
108
+ help: `Generate JSON schemas and TypeScript files from the source schemas. \
109
+ By default, if conflicts are detected, the user will be prompted to resolve them.`,
108
110
  formatter_class: ArgumentDefaultsHelpFormatter,
109
111
  });
110
112
  addCommonCLIArgs(syncParser, configuration);
@@ -114,31 +116,87 @@ syncParser.add_argument("--include-input-utils", {
114
116
  choices: ["true", "false"],
115
117
  default: "true",
116
118
  });
117
- function handleInputSync(args) {
118
- let inputSchema = readJsonSchema(args.src_input);
119
- if (args.add_input) {
120
- inputSchema = mergeObjectSchemas(inputSchema, readJsonSchema(args.add_input), args.deep_merge);
119
+ syncParser.add_argument("--force", {
120
+ help: "force the sync operation, even if conflicts are detected",
121
+ action: "store_true",
122
+ default: false,
123
+ });
124
+ syncParser.add_argument("--fail-on-conflict", {
125
+ help: "fail the sync operation if conflicts are detected",
126
+ action: "store_true",
127
+ default: false,
128
+ });
129
+ function getConflictResolutionStrategy(args) {
130
+ if (args.fail_on_conflict && args.force) {
131
+ throw new Error("The options --force and --fail-on-conflict cannot be defined together.");
132
+ }
133
+ if (args.force) {
134
+ return "log";
121
135
  }
136
+ if (args.fail_on_conflict) {
137
+ return "error";
138
+ }
139
+ return "interactive";
140
+ }
141
+ async function handleInputSync(args) {
142
+ let inputSchemas = {
143
+ sourceSchema: readJsonSchema(args.src_input),
144
+ additionalSchema: args.add_input ? readJsonSchema(args.add_input) : undefined,
145
+ };
146
+ let resultingInputSchema;
122
147
  if (args.output.includes("json-schemas")) {
123
- writeJsonSchema(args.input_schema, filterValidInputSchemaProperties(inputSchema));
148
+ const conflictResolutionStrategy = getConflictResolutionStrategy(args);
149
+ const existingInputSchema = readJsonSchema(args.input_schema);
150
+ inputSchemas = await checkConflicts(inputSchemas.sourceSchema, args.src_input, inputSchemas.additionalSchema, args.add_input, existingInputSchema, args.deep_merge, DESCRIPTION_FIELDS, conflictResolutionStrategy);
151
+ resultingInputSchema = inputSchemas.additionalSchema
152
+ ? mergeObjectSchemas(inputSchemas.sourceSchema, inputSchemas.additionalSchema, args.deep_merge)
153
+ : inputSchemas.sourceSchema;
154
+ writeJsonSchema(args.input_schema, filterValidInputSchemaProperties(resultingInputSchema));
124
155
  }
125
156
  if (args.output.includes("ts-types")) {
126
- writeTypeScriptFile(join(args.output_ts_dir, "input.ts"), serializeTypeScriptInterface("Input", jsonSchemaToTypeScriptInterface(inputSchema)));
157
+ if (!resultingInputSchema) {
158
+ resultingInputSchema = inputSchemas.additionalSchema
159
+ ? mergeObjectSchemas(inputSchemas.sourceSchema, inputSchemas.additionalSchema, args.deep_merge)
160
+ : inputSchemas.sourceSchema;
161
+ }
162
+ writeTypeScriptFile(join(args.output_ts_dir, "input.ts"), serializeTypeScriptInterface("Input", jsonSchemaToTypeScriptInterface(resultingInputSchema)));
127
163
  if (args.include_input_utils === "true") {
128
- writeTypeScriptFile(join(args.output_ts_dir, "input-utils.ts"), generateInputDefaultsTsFileContent(inputSchema));
164
+ writeTypeScriptFile(join(args.output_ts_dir, "input-utils.ts"), generateInputDefaultsTsFileContent(resultingInputSchema));
129
165
  }
130
166
  }
131
- }
132
- function handleDatasetSync(args) {
133
- let datasetSchema = readJsonSchema(args.src_dataset);
134
- if (args.add_dataset) {
135
- datasetSchema = mergeObjectSchemas(datasetSchema, readJsonSchema(args.add_dataset), args.deep_merge);
167
+ // Update the source schemas, which may have been modified by the conflict resolution
168
+ writeJsonSchema(args.src_input, inputSchemas.sourceSchema);
169
+ if (args.add_input && inputSchemas.additionalSchema) {
170
+ writeJsonSchema(args.add_input, inputSchemas.additionalSchema);
136
171
  }
172
+ }
173
+ async function handleDatasetSync(args) {
174
+ let datasetSchemas = {
175
+ sourceSchema: readJsonSchema(args.src_dataset),
176
+ additionalSchema: args.add_dataset ? readJsonSchema(args.add_dataset) : undefined,
177
+ };
178
+ let resultingDatasetSchema;
137
179
  if (args.output.includes("json-schemas")) {
138
- writeSchemaToField(args.dataset_schema, datasetSchema, DATASET_SCHEMA_FIELD);
180
+ const conflictResolutionStrategy = getConflictResolutionStrategy(args);
181
+ const existingDatasetSchema = readJsonSchemaField(args.dataset_schema, DATASET_SCHEMA_FIELD);
182
+ datasetSchemas = await checkConflicts(datasetSchemas.sourceSchema, args.src_dataset, datasetSchemas.additionalSchema, args.add_dataset, existingDatasetSchema, args.deep_merge, DESCRIPTION_FIELDS, conflictResolutionStrategy);
183
+ resultingDatasetSchema = datasetSchemas.additionalSchema
184
+ ? mergeObjectSchemas(datasetSchemas.sourceSchema, datasetSchemas.additionalSchema, args.deep_merge)
185
+ : datasetSchemas.sourceSchema;
186
+ writeSchemaToField(args.dataset_schema, resultingDatasetSchema, DATASET_SCHEMA_FIELD);
139
187
  }
140
188
  if (args.output.includes("ts-types")) {
141
- writeTypeScriptFile(join(args.output_ts_dir, "dataset.ts"), serializeTypeScriptInterface("DatasetItem", jsonSchemaToTypeScriptInterface(datasetSchema)));
189
+ if (!resultingDatasetSchema) {
190
+ resultingDatasetSchema = datasetSchemas.additionalSchema
191
+ ? mergeObjectSchemas(datasetSchemas.sourceSchema, datasetSchemas.additionalSchema, args.deep_merge)
192
+ : datasetSchemas.sourceSchema;
193
+ }
194
+ writeTypeScriptFile(join(args.output_ts_dir, "dataset.ts"), serializeTypeScriptInterface("DatasetItem", jsonSchemaToTypeScriptInterface(resultingDatasetSchema)));
195
+ }
196
+ // Update the source schemas, which may have been modified by the conflict resolution
197
+ writeJsonSchema(args.src_dataset, datasetSchemas.sourceSchema);
198
+ if (args.add_dataset && datasetSchemas.additionalSchema) {
199
+ writeJsonSchema(args.add_dataset, datasetSchemas.additionalSchema);
142
200
  }
143
201
  }
144
202
  function sync(args) {
@@ -170,7 +228,7 @@ function checkInputSchemas(args) {
170
228
  const generatedInputSchema = filterValidInputSchemaProperties(sourceInputSchema);
171
229
  if (args.output.includes("json-schemas")) {
172
230
  const outputInputSchema = readJsonSchema(args.input_schema);
173
- const isInputSchemaCoherent = compareSchemas(generatedInputSchema, outputInputSchema, args.ignore_descriptions);
231
+ const isInputSchemaCoherent = compareSchemas(generatedInputSchema, outputInputSchema, args.ignore_descriptions ? DESCRIPTION_FIELDS : undefined);
174
232
  if (!isInputSchemaCoherent) {
175
233
  console.error("Input schema validation failed: the input schema does not match the source schema.");
176
234
  process.exit(1);
@@ -198,7 +256,7 @@ function checkDatasetSchemas(args) {
198
256
  console.error(`Dataset schema field "${DATASET_SCHEMA_FIELD}" not found in ${args.dataset_schema}.`);
199
257
  process.exit(1);
200
258
  }
201
- const isDatasetSchemaCoherent = compareSchemas(sourceDatasetSchema, outputDatasetSchema, args.ignore_descriptions);
259
+ const isDatasetSchemaCoherent = compareSchemas(sourceDatasetSchema, outputDatasetSchema, args.ignore_descriptions ? DESCRIPTION_FIELDS : undefined);
202
260
  if (!isDatasetSchemaCoherent) {
203
261
  console.error("Dataset schema validation failed: the dataset schema does not match the source schema.");
204
262
  process.exit(1);
@@ -1 +1 @@
1
- {"version":3,"file":"apify-schema-tools.js","sourceRoot":"","sources":["../src/apify-schema-tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"apify-schema-tools.js","sourceRoot":"","sources":["../src/apify-schema-tools.ts"],"names":[],"mappings":"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"}
package/dist/apify.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { type ObjectSchema } from "./json-schemas.js";
1
+ import { type ObjectSchema, type OmissibleField } from "./json-schemas.js";
2
2
  export declare const ACTOR_CONFIG_PATH = ".actor/actor.json";
3
3
  export declare function getPathRelativeToActorConfig(path: string): string;
4
4
  export declare function filterValidInputSchemaProperties(schema: ObjectSchema): ObjectSchema;
@@ -9,4 +9,5 @@ export declare function filterValidInputSchemaProperties(schema: ObjectSchema):
9
9
  */
10
10
  export declare function generateInputDefaultsTsFileContent(inputSchema: ObjectSchema): string;
11
11
  export declare const DATASET_SCHEMA_FIELD = "fields";
12
+ export declare const DESCRIPTION_FIELDS: OmissibleField[];
12
13
  //# sourceMappingURL=apify.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"apify.d.ts","sourceRoot":"","sources":["../src/apify.ts"],"names":[],"mappings":"AACA,OAAO,EAA+B,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGnF,eAAO,MAAM,iBAAiB,sBAAsB,CAAC;AAErD,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEjE;AA+CD,wBAAgB,gCAAgC,CAAC,MAAM,EAAE,YAAY,GAAG,YAAY,CAQnF;AAED;;;;GAIG;AACH,wBAAgB,kCAAkC,CAAC,WAAW,EAAE,YAAY,GAAG,MAAM,CA2EpF;AAED,eAAO,MAAM,oBAAoB,WAAW,CAAC"}
1
+ {"version":3,"file":"apify.d.ts","sourceRoot":"","sources":["../src/apify.ts"],"names":[],"mappings":"AACA,OAAO,EAA+B,KAAK,YAAY,EAAE,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGxG,eAAO,MAAM,iBAAiB,sBAAsB,CAAC;AAErD,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEjE;AA+CD,wBAAgB,gCAAgC,CAAC,MAAM,EAAE,YAAY,GAAG,YAAY,CAQnF;AAED;;;;GAIG;AACH,wBAAgB,kCAAkC,CAAC,WAAW,EAAE,YAAY,GAAG,MAAM,CA2EpF;AAED,eAAO,MAAM,oBAAoB,WAAW,CAAC;AAE7C,eAAO,MAAM,kBAAkB,EAAE,cAAc,EAA6B,CAAC"}
package/dist/apify.js CHANGED
@@ -122,4 +122,5 @@ ${areThereDefaults
122
122
  `;
123
123
  }
124
124
  export const DATASET_SCHEMA_FIELD = "fields";
125
+ export const DESCRIPTION_FIELDS = ["title", "description"];
125
126
  //# sourceMappingURL=apify.js.map
package/dist/apify.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"apify.js","sourceRoot":"","sources":["../src/apify.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"apify.js","sourceRoot":"","sources":["../src/apify.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import type { ObjectSchema, OmissibleField } from "./json-schemas.js";
2
+ export type ConflictResolutionStrategy = "interactive" | "error" | "log";
3
+ /**
4
+ * Prompt the user to choose between two conflicting values.
5
+ */
6
+ export declare function askValueConflict(message: string, sourceValue?: string, targetValue?: string): Promise<string | undefined>;
7
+ /**
8
+ * Checks for conflicts between the source and target schemas.
9
+ * Asks the user to resolve conflicts interactively if any are found.
10
+ * Returns the source schema modified with the user's choices.
11
+ */
12
+ export declare function checkConflicts(sourceSchema: ObjectSchema, sourceSchemaPath: string, additionalSchema: ObjectSchema | undefined, additionalSchemaPath: string | undefined, targetSchema: ObjectSchema, deepMerge: boolean, fieldsToCheck: OmissibleField[], strategy: ConflictResolutionStrategy): Promise<{
13
+ sourceSchema: ObjectSchema;
14
+ additionalSchema: ObjectSchema | undefined;
15
+ }>;
16
+ //# sourceMappingURL=json-schema-conflicts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json-schema-conflicts.d.ts","sourceRoot":"","sources":["../src/json-schema-conflicts.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEtE,MAAM,MAAM,0BAA0B,GAAG,aAAa,GAAG,OAAO,GAAG,KAAK,CAAC;AAIzE;;GAEG;AACH,wBAAsB,gBAAgB,CACrC,OAAO,EAAE,MAAM,EACf,WAAW,CAAC,EAAE,MAAM,EACpB,WAAW,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAS7B;AA2ND;;;;GAIG;AACH,wBAAsB,cAAc,CACnC,YAAY,EAAE,YAAY,EAC1B,gBAAgB,EAAE,MAAM,EACxB,gBAAgB,EAAE,YAAY,GAAG,SAAS,EAC1C,oBAAoB,EAAE,MAAM,GAAG,SAAS,EACxC,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,OAAO,EAClB,aAAa,EAAE,cAAc,EAAE,EAC/B,QAAQ,EAAE,0BAA0B,GAClC,OAAO,CAAC;IAAE,YAAY,EAAE,YAAY,CAAC;IAAC,gBAAgB,EAAE,YAAY,GAAG,SAAS,CAAA;CAAE,CAAC,CA+BrF"}
@@ -0,0 +1,165 @@
1
+ import { select } from "@inquirer/prompts";
2
+ import { clone } from "ramda";
3
+ const CONFLICT_PROMPT_THEME = { prefix: { idle: "⚠️ ", done: "✅ " } };
4
+ /**
5
+ * Prompt the user to choose between two conflicting values.
6
+ */
7
+ export async function askValueConflict(message, sourceValue, targetValue) {
8
+ return await select({
9
+ message,
10
+ choices: [
11
+ { name: `[source] ${sourceValue}`, value: sourceValue },
12
+ { name: `[target] ${targetValue}`, value: targetValue },
13
+ ],
14
+ theme: CONFLICT_PROMPT_THEME,
15
+ });
16
+ }
17
+ /**
18
+ * Manage a detected conflict based on the resolution strategy.
19
+ */
20
+ async function manageConflict(errorMessage, interactiveAction, strategy) {
21
+ switch (strategy) {
22
+ case "interactive":
23
+ await interactiveAction();
24
+ break;
25
+ case "error":
26
+ throw new Error(errorMessage);
27
+ case "log":
28
+ console.warn(errorMessage);
29
+ break;
30
+ default:
31
+ throw new Error(`Unknown conflict resolution strategy: ${strategy}`);
32
+ }
33
+ }
34
+ /**
35
+ * Check for conflicts in a specific field between two schemas.
36
+ */
37
+ async function manageFieldConflict(path, field, originSchema, originSchemaName, targetSchema, strategy) {
38
+ if (originSchema[field] === targetSchema[field] || !targetSchema[field]) {
39
+ return originSchema;
40
+ }
41
+ const alteredSchema = clone(originSchema);
42
+ const pathString = `[${[...path, field].join(" > ")}]`;
43
+ const errorMessage = `Field ${pathString} in the ${originSchemaName} differs from the target schema.`;
44
+ await manageConflict(errorMessage, async () => {
45
+ const userChoice = await askValueConflict(`${errorMessage} Choose which to keep:`, originSchema[field], targetSchema[field]);
46
+ alteredSchema[field] = userChoice;
47
+ }, strategy);
48
+ return alteredSchema;
49
+ }
50
+ async function checkRootFieldsConflicts(sourceSchema, additionalSchema, targetSchema, fieldsToCheck, strategy) {
51
+ let alteredSourceSchema = clone(sourceSchema);
52
+ let alteredAdditionalSchema = clone(additionalSchema);
53
+ for (const field of fieldsToCheck) {
54
+ if (alteredAdditionalSchema && field in alteredAdditionalSchema) {
55
+ // biome-ignore lint/nursery/noAwaitInLoop: user interaction for each field
56
+ alteredAdditionalSchema = await manageFieldConflict([], field, alteredAdditionalSchema, "additional schema", targetSchema, strategy);
57
+ }
58
+ else {
59
+ alteredSourceSchema = await manageFieldConflict([], field, alteredSourceSchema, "source schema", targetSchema, strategy);
60
+ }
61
+ }
62
+ return {
63
+ sourceSchema: alteredSourceSchema,
64
+ additionalSchema: alteredAdditionalSchema,
65
+ };
66
+ }
67
+ function getUnionKeys(record1, record2) {
68
+ const keys1 = Object.keys(record1 ?? {});
69
+ const keys2 = Object.keys(record2 ?? {});
70
+ return Array.from(new Set([...keys1, ...keys2]));
71
+ }
72
+ async function checkPropertyFieldsConflicts(sourceSchema, additionalSchema, targetSchema, deepMerge, fieldsToCheck, strategy) {
73
+ if (!targetSchema.properties) {
74
+ return { sourceSchema, additionalSchema };
75
+ }
76
+ const alteredSourceSchema = clone(sourceSchema);
77
+ const alteredAdditionalSchema = clone(additionalSchema);
78
+ for (const key of getUnionKeys(alteredSourceSchema.properties, alteredAdditionalSchema?.properties)) {
79
+ if (!(key in targetSchema.properties)) {
80
+ continue;
81
+ }
82
+ const sourceProp = alteredSourceSchema.properties?.[key];
83
+ const additionalProp = alteredAdditionalSchema?.properties?.[key];
84
+ const targetProp = targetSchema.properties[key];
85
+ for (const field of fieldsToCheck) {
86
+ if (alteredAdditionalSchema && additionalProp && (!deepMerge || field in additionalProp)) {
87
+ // biome-ignore lint/nursery/noAwaitInLoop: user interaction for each field
88
+ const resultProp = await manageFieldConflict(["properties", key], field, additionalProp, "additional schema", targetProp, strategy);
89
+ alteredAdditionalSchema.properties = {
90
+ ...alteredAdditionalSchema?.properties,
91
+ [key]: resultProp,
92
+ };
93
+ continue;
94
+ }
95
+ if (sourceProp) {
96
+ const resultProp = await manageFieldConflict(["properties", key], field, sourceProp, "source schema", targetProp, strategy);
97
+ alteredSourceSchema.properties = {
98
+ ...alteredSourceSchema.properties,
99
+ [key]: resultProp,
100
+ };
101
+ }
102
+ }
103
+ }
104
+ return {
105
+ sourceSchema: alteredSourceSchema,
106
+ additionalSchema: alteredAdditionalSchema,
107
+ };
108
+ }
109
+ async function checkRemovedPropertyConflicts(sourceSchema, sourceSchemaPath, additionalSchema, additionalSchemaPath, targetSchema, strategy) {
110
+ const alteredSourceSchema = clone(sourceSchema);
111
+ const alteredAdditionalSchema = clone(additionalSchema);
112
+ for (const [key, targetValue] of Object.entries(targetSchema.properties ?? {})) {
113
+ if (!(key in (alteredSourceSchema.properties ?? {}) || key in (alteredAdditionalSchema?.properties ?? {}))) {
114
+ const errorMessage = `Property "${key}" was removed from the source schema.`;
115
+ // biome-ignore lint/nursery/noAwaitInLoop: user interaction for each field
116
+ await manageConflict(errorMessage, async () => {
117
+ const deleteField = await select({
118
+ message: `${errorMessage} What do you want to do?`,
119
+ choices: [
120
+ { name: "Confirm deletion", value: true },
121
+ { name: "Restore field", value: false },
122
+ ],
123
+ theme: CONFLICT_PROMPT_THEME,
124
+ });
125
+ if (deleteField) {
126
+ return;
127
+ }
128
+ const restoreToAdditionalSchema = alteredAdditionalSchema &&
129
+ (await select({
130
+ message: `Which schema should property "${key}" be restored to?`,
131
+ choices: [
132
+ { name: "Source Schema", value: false, description: sourceSchemaPath },
133
+ { name: "Additional Schema", value: true, description: additionalSchemaPath },
134
+ ],
135
+ theme: CONFLICT_PROMPT_THEME,
136
+ }));
137
+ const schemaToRestoreFieldTo = restoreToAdditionalSchema ? alteredAdditionalSchema : alteredSourceSchema;
138
+ schemaToRestoreFieldTo.properties = {
139
+ ...schemaToRestoreFieldTo.properties,
140
+ [key]: clone(targetValue),
141
+ };
142
+ }, strategy);
143
+ }
144
+ }
145
+ return {
146
+ sourceSchema: alteredSourceSchema,
147
+ additionalSchema: alteredAdditionalSchema,
148
+ };
149
+ }
150
+ /**
151
+ * Checks for conflicts between the source and target schemas.
152
+ * Asks the user to resolve conflicts interactively if any are found.
153
+ * Returns the source schema modified with the user's choices.
154
+ */
155
+ export async function checkConflicts(sourceSchema, sourceSchemaPath, additionalSchema, additionalSchemaPath, targetSchema, deepMerge, fieldsToCheck, strategy) {
156
+ let alteredSchemas = {
157
+ sourceSchema: clone(sourceSchema),
158
+ additionalSchema: clone(additionalSchema),
159
+ };
160
+ alteredSchemas = await checkRootFieldsConflicts(alteredSchemas.sourceSchema, alteredSchemas.additionalSchema, targetSchema, fieldsToCheck, strategy);
161
+ alteredSchemas = await checkPropertyFieldsConflicts(alteredSchemas.sourceSchema, alteredSchemas.additionalSchema, targetSchema, deepMerge, fieldsToCheck, strategy);
162
+ alteredSchemas = await checkRemovedPropertyConflicts(alteredSchemas.sourceSchema, sourceSchemaPath, alteredSchemas.additionalSchema, additionalSchemaPath, targetSchema, strategy);
163
+ return alteredSchemas;
164
+ }
165
+ //# sourceMappingURL=json-schema-conflicts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json-schema-conflicts.js","sourceRoot":"","sources":["../src/json-schema-conflicts.ts"],"names":[],"mappings":"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"}
@@ -20,15 +20,23 @@ export declare function readJsonSchema(filePath: string): ObjectSchema;
20
20
  * Schemas are expected to be of type object at the root level.
21
21
  */
22
22
  export declare function writeJsonSchema(filePath: string, schema: ObjectSchema): void;
23
+ /**
24
+ * @returns the schema stored at the specified field, or an empty object schema if the field does not exist or is empty.
25
+ * @throws if the field exists but is not an object schema.
26
+ */
23
27
  export declare function readJsonSchemaField(filePath: string, fieldName: string): ObjectSchema;
24
28
  export declare function writeSchemaToField(filePath: string, schema: ObjectSchema, fieldName: string): void;
25
29
  export declare function filterValidSchemaProperties(schema: ObjectSchema, validRootKeys: string[], validPropertyKeys: string[], validPropertyTypes: string[], validPropertyKeysByType: Record<string, string[]>): ObjectSchema;
26
30
  export declare function mergeObjectSchemas(baseSchema: ObjectSchema, additionalSchema: ObjectSchema, deep?: boolean): ObjectSchema;
27
- export declare function compareSchemas(a: ObjectSchema, b: ObjectSchema, ignoreDescriptions?: boolean): boolean;
28
31
  /**
29
- * Compare descriptions of source and output schemas.
30
- * Ignore properties that were removed from the source schema, or that were added to the source schema.
32
+ * Fields which is safe to omit without breaking the JSON schema.
33
+ */
34
+ declare const OMISSIBLE_FIELDS: readonly ["title", "description"];
35
+ export type OmissibleField = (typeof OMISSIBLE_FIELDS)[number];
36
+ /**
37
+ * @param ignoreDescriptionFields fields from the main schema and its properties to be ignored for comparison.
38
+ * @returns true if the schemas are equal/comparable, false otherwise.
31
39
  */
32
- export declare function compareDescriptions(sourceSchema: JSONSchema4, outputSchema: JSONSchema4): boolean;
40
+ export declare function compareSchemas(a: ObjectSchema, b: ObjectSchema, ignoreDescriptionFields?: OmissibleField[]): boolean;
33
41
  export {};
34
42
  //# sourceMappingURL=json-schemas.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"json-schemas.d.ts","sourceRoot":"","sources":["../src/json-schemas.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAI/C,KAAK,cAAc,GAAG,WAAW,GAAG;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAQF,MAAM,WAAW,WAAY,SAAQ,WAAW;IAC/C,IAAI,EAAE,OAAO,CAAC;CACd;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,IAAI,WAAW,CAExE;AAED,MAAM,WAAW,YAAa,SAAQ,WAAW;IAChD,IAAI,EAAE,QAAQ,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC5C,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,IAAI,YAAY,CAE1E;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY,CAE7D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,IAAI,CAE5E;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,YAAY,CASrF;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAIlG;AAID,wBAAgB,2BAA2B,CAC1C,MAAM,EAAE,YAAY,EACpB,aAAa,EAAE,MAAM,EAAE,EACvB,iBAAiB,EAAE,MAAM,EAAE,EAC3B,kBAAkB,EAAE,MAAM,EAAE,EAC5B,uBAAuB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAC/C,YAAY,CAyBd;AAyCD,wBAAgB,kBAAkB,CACjC,UAAU,EAAE,YAAY,EACxB,gBAAgB,EAAE,YAAY,EAC9B,IAAI,UAAO,GACT,YAAY,CAmDd;AAwBD,wBAAgB,cAAc,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,EAAE,kBAAkB,CAAC,EAAE,OAAO,GAAG,OAAO,CAKtG;AA4BD;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,GAAG,OAAO,CAoBjG"}
1
+ {"version":3,"file":"json-schemas.d.ts","sourceRoot":"","sources":["../src/json-schemas.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAI/C,KAAK,cAAc,GAAG,WAAW,GAAG;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAQF,MAAM,WAAW,WAAY,SAAQ,WAAW;IAC/C,IAAI,EAAE,OAAO,CAAC;CACd;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,IAAI,WAAW,CAExE;AAED,MAAM,WAAW,YAAa,SAAQ,WAAW;IAChD,IAAI,EAAE,QAAQ,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC5C,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,IAAI,YAAY,CAE1E;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY,CAE7D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,IAAI,CAE5E;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,YAAY,CASrF;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAIlG;AAID,wBAAgB,2BAA2B,CAC1C,MAAM,EAAE,YAAY,EACpB,aAAa,EAAE,MAAM,EAAE,EACvB,iBAAiB,EAAE,MAAM,EAAE,EAC3B,kBAAkB,EAAE,MAAM,EAAE,EAC5B,uBAAuB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAC/C,YAAY,CAyBd;AAyCD,wBAAgB,kBAAkB,CACjC,UAAU,EAAE,YAAY,EACxB,gBAAgB,EAAE,YAAY,EAC9B,IAAI,UAAO,GACT,YAAY,CAmDd;AAID;;GAEG;AACH,QAAA,MAAM,gBAAgB,mCAAoC,CAAC;AAC3D,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAc/D;;;GAGG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,EAAE,uBAAuB,CAAC,EAAE,cAAc,EAAE,GAAG,OAAO,CAKpH"}