@squiz/dx-json-schema-lib 1.87.0 → 1.88.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 (66) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/lib/formatted-text/v1/resolveFormattedTextNodes.d.ts +5 -2
  3. package/lib/formatted-text/v1/resolveFormattedTextNodes.js +9 -3
  4. package/lib/formatted-text/v1/resolveFormattedTextNodes.js.map +1 -1
  5. package/lib/formatted-text/v1/resolveFormattedTextNodes.spec.js +58 -0
  6. package/lib/formatted-text/v1/resolveFormattedTextNodes.spec.js.map +1 -1
  7. package/lib/index.d.ts +1 -0
  8. package/lib/index.js +1 -0
  9. package/lib/index.js.map +1 -1
  10. package/lib/utils/jsonBreakDetector/checks/findArrayConstraintNarrowing.d.ts +6 -0
  11. package/lib/utils/jsonBreakDetector/checks/findArrayConstraintNarrowing.js +93 -0
  12. package/lib/utils/jsonBreakDetector/checks/findArrayConstraintNarrowing.js.map +1 -0
  13. package/lib/utils/jsonBreakDetector/checks/findConstChanges.d.ts +6 -0
  14. package/lib/utils/jsonBreakDetector/checks/findConstChanges.js +75 -0
  15. package/lib/utils/jsonBreakDetector/checks/findConstChanges.js.map +1 -0
  16. package/lib/utils/jsonBreakDetector/checks/findEnumNarrowing.d.ts +6 -0
  17. package/lib/utils/jsonBreakDetector/checks/findEnumNarrowing.js +90 -0
  18. package/lib/utils/jsonBreakDetector/checks/findEnumNarrowing.js.map +1 -0
  19. package/lib/utils/jsonBreakDetector/checks/findFieldTypeChanges.d.ts +8 -0
  20. package/lib/utils/jsonBreakDetector/checks/findFieldTypeChanges.js +86 -0
  21. package/lib/utils/jsonBreakDetector/checks/findFieldTypeChanges.js.map +1 -0
  22. package/lib/utils/jsonBreakDetector/checks/findNewRequiredFields.d.ts +6 -0
  23. package/lib/utils/jsonBreakDetector/checks/findNewRequiredFields.js +68 -0
  24. package/lib/utils/jsonBreakDetector/checks/findNewRequiredFields.js.map +1 -0
  25. package/lib/utils/jsonBreakDetector/checks/findNumericConstraintNarrowing.d.ts +6 -0
  26. package/lib/utils/jsonBreakDetector/checks/findNumericConstraintNarrowing.js +179 -0
  27. package/lib/utils/jsonBreakDetector/checks/findNumericConstraintNarrowing.js.map +1 -0
  28. package/lib/utils/jsonBreakDetector/checks/findStringConstraintNarrowing.d.ts +6 -0
  29. package/lib/utils/jsonBreakDetector/checks/findStringConstraintNarrowing.js +106 -0
  30. package/lib/utils/jsonBreakDetector/checks/findStringConstraintNarrowing.js.map +1 -0
  31. package/lib/utils/jsonBreakDetector/compareSubschemas.d.ts +9 -0
  32. package/lib/utils/jsonBreakDetector/compareSubschemas.js +49 -0
  33. package/lib/utils/jsonBreakDetector/compareSubschemas.js.map +1 -0
  34. package/lib/utils/jsonBreakDetector/dereference/dereference.d.ts +6 -0
  35. package/lib/utils/jsonBreakDetector/dereference/dereference.js +52 -0
  36. package/lib/utils/jsonBreakDetector/dereference/dereference.js.map +1 -0
  37. package/lib/utils/jsonBreakDetector/dereference/dereference.spec.d.ts +1 -0
  38. package/lib/utils/jsonBreakDetector/dereference/dereference.spec.js +225 -0
  39. package/lib/utils/jsonBreakDetector/dereference/dereference.spec.js.map +1 -0
  40. package/lib/utils/jsonBreakDetector/jsonBreakDetector.d.ts +8 -0
  41. package/lib/utils/jsonBreakDetector/jsonBreakDetector.js +35 -0
  42. package/lib/utils/jsonBreakDetector/jsonBreakDetector.js.map +1 -0
  43. package/lib/utils/jsonBreakDetector/jsonBreakDetector.spec.d.ts +1 -0
  44. package/lib/utils/jsonBreakDetector/jsonBreakDetector.spec.js +2761 -0
  45. package/lib/utils/jsonBreakDetector/jsonBreakDetector.spec.js.map +1 -0
  46. package/lib/utils/jsonBreakDetector/types.d.ts +25 -0
  47. package/lib/utils/jsonBreakDetector/types.js +28 -0
  48. package/lib/utils/jsonBreakDetector/types.js.map +1 -0
  49. package/package.json +1 -1
  50. package/src/formatted-text/v1/resolveFormattedTextNodes.spec.ts +70 -0
  51. package/src/formatted-text/v1/resolveFormattedTextNodes.ts +18 -3
  52. package/src/index.ts +2 -0
  53. package/src/utils/jsonBreakDetector/checks/findArrayConstraintNarrowing.ts +121 -0
  54. package/src/utils/jsonBreakDetector/checks/findConstChanges.ts +97 -0
  55. package/src/utils/jsonBreakDetector/checks/findEnumNarrowing.ts +124 -0
  56. package/src/utils/jsonBreakDetector/checks/findFieldTypeChanges.ts +105 -0
  57. package/src/utils/jsonBreakDetector/checks/findNewRequiredFields.ts +97 -0
  58. package/src/utils/jsonBreakDetector/checks/findNumericConstraintNarrowing.ts +243 -0
  59. package/src/utils/jsonBreakDetector/checks/findStringConstraintNarrowing.ts +139 -0
  60. package/src/utils/jsonBreakDetector/compareSubschemas.ts +67 -0
  61. package/src/utils/jsonBreakDetector/dereference/dereference.spec.ts +245 -0
  62. package/src/utils/jsonBreakDetector/dereference/dereference.ts +65 -0
  63. package/src/utils/jsonBreakDetector/jsonBreakDetector.spec.ts +3041 -0
  64. package/src/utils/jsonBreakDetector/jsonBreakDetector.ts +36 -0
  65. package/src/utils/jsonBreakDetector/types.ts +29 -0
  66. package/tsconfig.tsbuildinfo +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jsonBreakDetector.spec.js","sourceRoot":"","sources":["../../../src/utils/jsonBreakDetector/jsonBreakDetector.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ export interface JsonBreak {
2
+ location: string;
3
+ message: string;
4
+ }
5
+ export declare const BREAK_MESSAGES: {
6
+ readonly required: "New required field";
7
+ readonly dependentRequired: "New dependent required field";
8
+ readonly type: "Field type changed";
9
+ readonly enum: "Enum options removed";
10
+ readonly enumAdded: "Enum added";
11
+ readonly const: "Const value changed";
12
+ readonly minItems: "Array minItems increased";
13
+ readonly maxItems: "Array maxItems lowered";
14
+ readonly uniqueItems: "Array uniqueItems added";
15
+ readonly minimum: "Numeric minimum increased";
16
+ readonly exclusiveMinimum: "Numeric exclusiveMinimum increased";
17
+ readonly maximum: "Numeric maximum lowered";
18
+ readonly exclusiveMaximum: "Numeric exclusiveMaximum lowered";
19
+ readonly multipleOf: "Numeric multipleOf narrowed";
20
+ readonly minLength: "String minLength increased";
21
+ readonly maxLength: "String maxLength lowered";
22
+ readonly format: "String format changed";
23
+ readonly pattern: "String pattern changed";
24
+ };
25
+ export declare function pushBreak(breaks: JsonBreak[], location: string, message: string): void;
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BREAK_MESSAGES = void 0;
4
+ exports.pushBreak = pushBreak;
5
+ exports.BREAK_MESSAGES = {
6
+ required: 'New required field',
7
+ dependentRequired: 'New dependent required field',
8
+ type: 'Field type changed',
9
+ enum: 'Enum options removed',
10
+ enumAdded: 'Enum added',
11
+ const: 'Const value changed',
12
+ minItems: 'Array minItems increased',
13
+ maxItems: 'Array maxItems lowered',
14
+ uniqueItems: 'Array uniqueItems added',
15
+ minimum: 'Numeric minimum increased',
16
+ exclusiveMinimum: 'Numeric exclusiveMinimum increased',
17
+ maximum: 'Numeric maximum lowered',
18
+ exclusiveMaximum: 'Numeric exclusiveMaximum lowered',
19
+ multipleOf: 'Numeric multipleOf narrowed',
20
+ minLength: 'String minLength increased',
21
+ maxLength: 'String maxLength lowered',
22
+ format: 'String format changed',
23
+ pattern: 'String pattern changed',
24
+ };
25
+ function pushBreak(breaks, location, message) {
26
+ breaks.push({ location, message });
27
+ }
28
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/utils/jsonBreakDetector/types.ts"],"names":[],"mappings":";;;AA0BA,8BAEC;AAvBY,QAAA,cAAc,GAAG;IAC5B,QAAQ,EAAE,oBAAoB;IAC9B,iBAAiB,EAAE,8BAA8B;IACjD,IAAI,EAAE,oBAAoB;IAC1B,IAAI,EAAE,sBAAsB;IAC5B,SAAS,EAAE,YAAY;IACvB,KAAK,EAAE,qBAAqB;IAC5B,QAAQ,EAAE,0BAA0B;IACpC,QAAQ,EAAE,wBAAwB;IAClC,WAAW,EAAE,yBAAyB;IACtC,OAAO,EAAE,2BAA2B;IACpC,gBAAgB,EAAE,oCAAoC;IACtD,OAAO,EAAE,yBAAyB;IAClC,gBAAgB,EAAE,kCAAkC;IACpD,UAAU,EAAE,6BAA6B;IACzC,SAAS,EAAE,4BAA4B;IACvC,SAAS,EAAE,0BAA0B;IACrC,MAAM,EAAE,uBAAuB;IAC/B,OAAO,EAAE,wBAAwB;CACzB,CAAC;AAEX,SAAgB,SAAS,CAAC,MAAmB,EAAE,QAAgB,EAAE,OAAe;IAC9E,MAAM,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;AACrC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@squiz/dx-json-schema-lib",
3
- "version": "1.87.0",
3
+ "version": "1.88.0",
4
4
  "description": "",
5
5
  "main": "lib/index.js",
6
6
  "exports": {
@@ -747,6 +747,76 @@ describe('resolveFormattedNodes', () => {
747
747
  expect(result).toEqual(expectedItem);
748
748
  });
749
749
 
750
+ it('should not join formatted text when shouldJoinFormattedText returns false', async () => {
751
+ const testSchema = {
752
+ type: 'object',
753
+ properties: {
754
+ myProp: { type: 'FormattedText' },
755
+ },
756
+ required: ['myProp'],
757
+ };
758
+ const testItem = {
759
+ myProp: [{ type: 'text', value: 'hello' }],
760
+ };
761
+
762
+ const result = await resolveFormattedTextNodes(testItem, testSchema, testResolverMap, {
763
+ withJoin: '',
764
+ shouldJoinFormattedText: () => false,
765
+ });
766
+
767
+ expect(result).toEqual({
768
+ myProp: [{ type: 'text', value: 'hello' }],
769
+ });
770
+ });
771
+
772
+ it('should use selectResolvers to choose resolvers per formatted text field', async () => {
773
+ const testSchema = {
774
+ type: 'object',
775
+ properties: {
776
+ plainText: { type: 'FormattedText' },
777
+ dynamicText: { type: 'FormattedText' },
778
+ },
779
+ required: ['plainText', 'dynamicText'],
780
+ };
781
+ const testItem = {
782
+ plainText: [{ type: 'text', value: 'plain' }],
783
+ dynamicText: [
784
+ {
785
+ type: 'matrix-image',
786
+ matrixIdentifier: 'matrix-id',
787
+ matrixAssetId: '123',
788
+ matrixDomain: 'https://matrix.example.com',
789
+ },
790
+ ],
791
+ };
792
+ const htmlResolvers = {
793
+ text: async (node: { value: string }) => `html:${node.value}`,
794
+ default: async (node: { type: string }) => `html:${node.type}`,
795
+ };
796
+ const structuredResolvers = {
797
+ 'matrix-image': async (node: { matrixAssetId: string }) => ({
798
+ type: 'text',
799
+ value: `matrix:${node.matrixAssetId}`,
800
+ }),
801
+ };
802
+
803
+ const result = await resolveFormattedTextNodes(
804
+ testItem,
805
+ testSchema,
806
+ htmlResolvers as any,
807
+ {
808
+ withJoin: '',
809
+ selectResolvers: (formattedText: any) =>
810
+ formattedText.some((node: any) => node.type === 'matrix-image') ? structuredResolvers : htmlResolvers,
811
+ } as any,
812
+ );
813
+
814
+ expect(result).toEqual({
815
+ plainText: 'html:plain',
816
+ dynamicText: [{ type: 'text', value: 'matrix:123' }],
817
+ });
818
+ });
819
+
750
820
  it('should resolve a FormattedText value which is an empty array', async () => {
751
821
  const testSchema = {
752
822
  type: 'object',
@@ -49,14 +49,24 @@ export type FullyResolvedNodesMap = ResolverConfig<FullyResolvedNodes, string>;
49
49
 
50
50
  interface ResolveOptions<O extends ResolutionOutput<FormattedNode>> {
51
51
  withJoin?: string;
52
+ shouldJoinFormattedText?: (formattedText: FormattedText) => boolean;
53
+ selectResolvers?: (
54
+ formattedText: FormattedText,
55
+ resolvers: Partial<ResolverConfig<any, O>>,
56
+ ) => Partial<ResolverConfig<any, O>>;
52
57
  handleError?: (error: unknown, pointer: string) => O | never;
53
58
  }
54
59
 
60
+ export type FormattedTextResolveOptions<O extends ResolutionOutput<FormattedNode> = string> = Pick<
61
+ ResolveOptions<O>,
62
+ 'shouldJoinFormattedText' | 'selectResolvers'
63
+ >;
64
+
55
65
  export async function resolveFormattedTextNodes<O extends ResolutionOutput<FormattedNode>>(
56
66
  contentItem: any,
57
67
  contentSchema: JSONSchema,
58
68
  resolvers: Partial<ResolverConfig<any, O>>,
59
- { withJoin, handleError }: ResolveOptions<O> = {},
69
+ { withJoin, shouldJoinFormattedText, selectResolvers, handleError }: ResolveOptions<O> = {},
60
70
  ) {
61
71
  const resolvedDataSetters: Promise<(newItem: typeof contentItem) => typeof contentItem>[] = [];
62
72
  ComponentInputSchema.each(
@@ -67,7 +77,8 @@ export async function resolveFormattedTextNodes<O extends ResolutionOutput<Forma
67
77
  return;
68
78
  }
69
79
  const formattedText = data as FormattedText;
70
- const textResolvers = formattedText.map((t) => resolveFormattedText(t, resolvers));
80
+ const fieldResolvers = selectResolvers?.(formattedText, resolvers) ?? resolvers;
81
+ const textResolvers = formattedText.map((t) => resolveFormattedText(t, fieldResolvers));
71
82
 
72
83
  const resolvedItem = Promise.all(textResolvers)
73
84
  .catch((error) => {
@@ -78,7 +89,11 @@ export async function resolveFormattedTextNodes<O extends ResolutionOutput<Forma
78
89
  })
79
90
  .then((resolvedData: unknown[]) => (newItem: typeof contentItem) => {
80
91
  let joinedData: string | null = null;
81
- if (resolvedData.every((d): d is string => typeof d === 'string') && typeof withJoin === 'string') {
92
+ const canJoin =
93
+ resolvedData.every((d): d is string => typeof d === 'string') &&
94
+ typeof withJoin === 'string' &&
95
+ (shouldJoinFormattedText?.(formattedText) ?? true);
96
+ if (canJoin) {
82
97
  joinedData = resolvedData.join(withJoin);
83
98
  }
84
99
  return JSONQuery.set(newItem, pointer, joinedData ?? resolvedData);
package/src/index.ts CHANGED
@@ -20,3 +20,5 @@ export * from './primitiveTypes';
20
20
  export * from './resolvableTypes';
21
21
 
22
22
  export * from './manifest/userApi/v1';
23
+
24
+ export * from './utils/jsonBreakDetector/jsonBreakDetector';
@@ -0,0 +1,121 @@
1
+ import { compareContainsSubschemas } from '../compareSubschemas';
2
+ import { BREAK_MESSAGES, JsonBreak, pushBreak } from '../types';
3
+ import { JSONSchema } from '@squiz/json-schema-library';
4
+
5
+ /** Recursively detects narrowed array constraints at each schema level, accumulating dotted paths. */
6
+ export function findArrayConstraintNarrowing(
7
+ beforeSchema: JSONSchema,
8
+ afterSchema: JSONSchema,
9
+ path: string,
10
+ breaks: JsonBreak[],
11
+ ): void {
12
+ const beforeProperties = beforeSchema.properties ?? {};
13
+ const afterProperties = afterSchema.properties ?? {};
14
+
15
+ // Recurse into latest nested object properties.
16
+ for (const [key, afterPropertySchema] of Object.entries(afterProperties)) {
17
+ // Skip if the property is not an object.
18
+ if (!afterPropertySchema || typeof afterPropertySchema !== 'object') {
19
+ continue;
20
+ }
21
+
22
+ const beforePropertySchema = beforeProperties[key];
23
+ const childPath = path ? `${path}.${key}` : key;
24
+
25
+ // Only compare array constraints on fields that existed in the before schema. New fields are skipped.
26
+ if (beforePropertySchema && typeof beforePropertySchema === 'object') {
27
+ checkArrayConstraintNarrowing(beforePropertySchema, afterPropertySchema, childPath, breaks);
28
+ findArrayConstraintNarrowing(beforePropertySchema, afterPropertySchema, childPath, breaks);
29
+ }
30
+ }
31
+
32
+ const beforeItems = beforeSchema.items;
33
+ const afterItems = afterSchema.items;
34
+
35
+ // Recurse into latest nested array items.
36
+ if (afterItems && typeof afterItems === 'object' && !Array.isArray(afterItems)) {
37
+ const itemsPath = path ? `${path}[]` : '[]';
38
+ const beforeItemSchema =
39
+ beforeItems && typeof beforeItems === 'object' && !Array.isArray(beforeItems) ? beforeItems : undefined;
40
+
41
+ // Only compare array constraints on items that existed in the before schema. New items are skipped.
42
+ if (beforeItemSchema) {
43
+ checkArrayConstraintNarrowing(beforeItemSchema, afterItems, itemsPath, breaks);
44
+ findArrayConstraintNarrowing(beforeItemSchema, afterItems, itemsPath, breaks);
45
+ }
46
+ }
47
+ }
48
+
49
+ /** Returns true when a schema represents an array field. */
50
+ function isArrayFieldSchema(schema: JSONSchema): boolean {
51
+ const type = schema.type;
52
+ if (type === 'array') {
53
+ return true;
54
+ }
55
+
56
+ // Type can be defined as a union of strings e.g. ['array', 'string'], so check if 'array' is included.
57
+ if (Array.isArray(type) && type.includes('array')) {
58
+ return true;
59
+ }
60
+
61
+ return (
62
+ schema.minItems !== undefined ||
63
+ schema.maxItems !== undefined ||
64
+ schema.uniqueItems !== undefined ||
65
+ schema.contains !== undefined
66
+ );
67
+ }
68
+
69
+ /** Returns true when afterSchema requires more array items than beforeSchema. */
70
+ function hasMinItemsIncreased(beforeSchema: JSONSchema, afterSchema: JSONSchema): boolean {
71
+ const beforeMinItems = beforeSchema.minItems ?? 0;
72
+ const afterMinItems = afterSchema.minItems ?? 0;
73
+ return afterMinItems > beforeMinItems;
74
+ }
75
+
76
+ /** Returns true when afterSchema allows fewer array items than beforeSchema. */
77
+ function hasMaxItemsLowered(beforeSchema: JSONSchema, afterSchema: JSONSchema): boolean {
78
+ const beforeMaxItems = beforeSchema.maxItems;
79
+ const afterMaxItems = afterSchema.maxItems;
80
+
81
+ if (afterMaxItems === undefined) {
82
+ return false;
83
+ }
84
+
85
+ if (beforeMaxItems === undefined) {
86
+ return true;
87
+ }
88
+
89
+ return afterMaxItems < beforeMaxItems;
90
+ }
91
+
92
+ /** Returns true when afterSchema adds a uniqueItems requirement. */
93
+ function hasUniqueItemsAdded(beforeSchema: JSONSchema, afterSchema: JSONSchema): boolean {
94
+ return afterSchema.uniqueItems === true && beforeSchema.uniqueItems !== true;
95
+ }
96
+
97
+ /** Checks array constraint keywords on a single schema for narrowing changes. */
98
+ export function checkArrayConstraintNarrowing(
99
+ beforeSchema: JSONSchema,
100
+ afterSchema: JSONSchema,
101
+ path: string,
102
+ breaks: JsonBreak[],
103
+ ): void {
104
+ if (!isArrayFieldSchema(beforeSchema) && !isArrayFieldSchema(afterSchema)) {
105
+ return;
106
+ }
107
+
108
+ if (hasMinItemsIncreased(beforeSchema, afterSchema)) {
109
+ pushBreak(breaks, path, BREAK_MESSAGES.minItems);
110
+ }
111
+
112
+ if (hasMaxItemsLowered(beforeSchema, afterSchema)) {
113
+ pushBreak(breaks, path, BREAK_MESSAGES.maxItems);
114
+ }
115
+
116
+ if (hasUniqueItemsAdded(beforeSchema, afterSchema)) {
117
+ pushBreak(breaks, path, BREAK_MESSAGES.uniqueItems);
118
+ }
119
+
120
+ compareContainsSubschemas(beforeSchema, afterSchema, path, breaks);
121
+ }
@@ -0,0 +1,97 @@
1
+ import { BREAK_MESSAGES, JsonBreak, pushBreak } from '../types';
2
+ import { JSONSchema } from '@squiz/json-schema-library';
3
+
4
+ /** Recursively detects added or changed `const` values at each schema level, accumulating dotted paths. */
5
+ export function findConstChanges(
6
+ beforeSchema: JSONSchema,
7
+ afterSchema: JSONSchema,
8
+ path: string,
9
+ constChanges: JsonBreak[],
10
+ ): void {
11
+ const beforeProperties = beforeSchema.properties ?? {};
12
+ const afterProperties = afterSchema.properties ?? {};
13
+
14
+ // Recurse into nested object properties.
15
+ for (const [key, afterPropertySchema] of Object.entries(afterProperties)) {
16
+ if (!afterPropertySchema || typeof afterPropertySchema !== 'object') {
17
+ continue;
18
+ }
19
+
20
+ const beforePropertySchema = beforeProperties[key];
21
+ const childPath = path ? `${path}.${key}` : key;
22
+
23
+ if (beforePropertySchema && typeof beforePropertySchema === 'object') {
24
+ // Only compare const on fields that existed in the before schema.
25
+ if (hasConstChange(beforePropertySchema, afterPropertySchema)) {
26
+ pushBreak(constChanges, childPath, BREAK_MESSAGES.const);
27
+ }
28
+
29
+ // Compare `const` on this property, then recurse into nested schemas for child fields.
30
+ findConstChanges(beforePropertySchema, afterPropertySchema, childPath, constChanges);
31
+ }
32
+ // New properties in afterSchema are skipped; adding a field is not a const change.
33
+ }
34
+
35
+ const beforeItems = beforeSchema.items;
36
+ const afterItems = afterSchema.items;
37
+
38
+ // Recurse into array item schemas (tuple items are not supported).
39
+ if (afterItems && typeof afterItems === 'object' && !Array.isArray(afterItems)) {
40
+ const itemsPath = path ? `${path}[]` : '[]';
41
+ const beforeItemSchema =
42
+ beforeItems && typeof beforeItems === 'object' && !Array.isArray(beforeItems) ? beforeItems : undefined;
43
+
44
+ // Compare `items.const`, e.g. `version[]` when each item must match a new fixed value.
45
+ if (beforeItemSchema && hasConstChange(beforeItemSchema, afterItems)) {
46
+ pushBreak(constChanges, itemsPath, BREAK_MESSAGES.const);
47
+ }
48
+
49
+ if (beforeItemSchema) {
50
+ findConstChanges(beforeItemSchema, afterItems, itemsPath, constChanges);
51
+ }
52
+ }
53
+ }
54
+
55
+ /** Reports added or changed fixed values on a single schema node. */
56
+ export function checkConstNarrowingAtNode(
57
+ beforeSchema: JSONSchema,
58
+ afterSchema: JSONSchema,
59
+ path: string,
60
+ breaks: JsonBreak[],
61
+ ): void {
62
+ if (hasConstChange(beforeSchema, afterSchema)) {
63
+ pushBreak(breaks, path, BREAK_MESSAGES.const);
64
+ }
65
+ }
66
+
67
+ /** Returns true when afterSchema adds or changes an effective fixed value (`const` or single-value `enum`). */
68
+ function hasConstChange(beforeSchema: JSONSchema, afterSchema: JSONSchema): boolean {
69
+ const afterValue = getEffectiveConstValue(afterSchema);
70
+ if (afterValue === undefined) {
71
+ return false;
72
+ }
73
+
74
+ const beforeValue = getEffectiveConstValue(beforeSchema);
75
+ if (beforeValue === undefined) {
76
+ return true;
77
+ }
78
+
79
+ return JSON.stringify(beforeValue) !== JSON.stringify(afterValue);
80
+ }
81
+
82
+ /**
83
+ * Returns a schema's fixed value from `const`, or from `enum` when it contains exactly one value.
84
+ * A single-value enum and a const are equivalent ways to restrict a field to one value.
85
+ */
86
+ function getEffectiveConstValue(schema: JSONSchema): unknown | undefined {
87
+ if (schema.const !== undefined) {
88
+ return schema.const;
89
+ }
90
+
91
+ const enumValues = schema.enum;
92
+ if (enumValues && enumValues.length === 1) {
93
+ return enumValues[0];
94
+ }
95
+
96
+ return undefined;
97
+ }