@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
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # Change Log
2
2
 
3
+ ## 1.88.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 9c4339e: Added json schema diff break comparison
8
+
3
9
  ## 1.87.0
4
10
 
5
11
  ### Minor Changes
@@ -1,5 +1,5 @@
1
1
  import { JSONSchema } from '@squiz/json-schema-library';
2
- import { BaseFormattedNodes, ComponentNode, FormattedTextFragment, FormattedTextTag, HigherOrderFormattedNodes, TextNode } from './formattedText';
2
+ import { BaseFormattedNodes, ComponentNode, FormattedText, FormattedTextFragment, FormattedTextTag, HigherOrderFormattedNodes, TextNode } from './formattedText';
3
3
  import { FORMATTED_TEXT_SCHEMA_ID } from './formattedTextConstants';
4
4
  export { FORMATTED_TEXT_SCHEMA_ID };
5
5
  export interface FormattedNodeWithChildren {
@@ -27,7 +27,10 @@ export type HigherOrderFormattedNodesMap = ResolverConfig<HigherOrderResolvedNod
27
27
  export type FullyResolvedNodesMap = ResolverConfig<FullyResolvedNodes, string>;
28
28
  interface ResolveOptions<O extends ResolutionOutput<FormattedNode>> {
29
29
  withJoin?: string;
30
+ shouldJoinFormattedText?: (formattedText: FormattedText) => boolean;
31
+ selectResolvers?: (formattedText: FormattedText, resolvers: Partial<ResolverConfig<any, O>>) => Partial<ResolverConfig<any, O>>;
30
32
  handleError?: (error: unknown, pointer: string) => O | never;
31
33
  }
32
- export declare function resolveFormattedTextNodes<O extends ResolutionOutput<FormattedNode>>(contentItem: any, contentSchema: JSONSchema, resolvers: Partial<ResolverConfig<any, O>>, { withJoin, handleError }?: ResolveOptions<O>): Promise<any>;
34
+ export type FormattedTextResolveOptions<O extends ResolutionOutput<FormattedNode> = string> = Pick<ResolveOptions<O>, 'shouldJoinFormattedText' | 'selectResolvers'>;
35
+ export declare function resolveFormattedTextNodes<O extends ResolutionOutput<FormattedNode>>(contentItem: any, contentSchema: JSONSchema, resolvers: Partial<ResolverConfig<any, O>>, { withJoin, shouldJoinFormattedText, selectResolvers, handleError }?: ResolveOptions<O>): Promise<any>;
33
36
  export declare function resolveFormattedText<I extends FormattedNode, RC extends Partial<ResolverConfig<any, any>>>(node: I, resolvers: RC, blockIndex?: number): Promise<RC extends Partial<ResolverConfig<any, infer O>> ? O : unknown>;
@@ -10,15 +10,17 @@ const json_query_1 = __importDefault(require("@sagold/json-query"));
10
10
  const __1 = require("../..");
11
11
  const formattedTextConstants_1 = require("./formattedTextConstants");
12
12
  Object.defineProperty(exports, "FORMATTED_TEXT_SCHEMA_ID", { enumerable: true, get: function () { return formattedTextConstants_1.FORMATTED_TEXT_SCHEMA_ID; } });
13
- async function resolveFormattedTextNodes(contentItem, contentSchema, resolvers, { withJoin, handleError } = {}) {
13
+ async function resolveFormattedTextNodes(contentItem, contentSchema, resolvers, { withJoin, shouldJoinFormattedText, selectResolvers, handleError } = {}) {
14
14
  const resolvedDataSetters = [];
15
15
  __1.ComponentInputSchema.each(contentItem, (schema, data, pointer) => {
16
+ var _a;
16
17
  if (schema.type === 'FormattedText' || schema.$id === formattedTextConstants_1.FORMATTED_TEXT_SCHEMA_ID) {
17
18
  if (!Array.isArray(data)) {
18
19
  return;
19
20
  }
20
21
  const formattedText = data;
21
- const textResolvers = formattedText.map((t) => resolveFormattedText(t, resolvers));
22
+ const fieldResolvers = (_a = selectResolvers === null || selectResolvers === void 0 ? void 0 : selectResolvers(formattedText, resolvers)) !== null && _a !== void 0 ? _a : resolvers;
23
+ const textResolvers = formattedText.map((t) => resolveFormattedText(t, fieldResolvers));
22
24
  const resolvedItem = Promise.all(textResolvers)
23
25
  .catch((error) => {
24
26
  if (handleError) {
@@ -27,8 +29,12 @@ async function resolveFormattedTextNodes(contentItem, contentSchema, resolvers,
27
29
  return [{ type: 'text', value: 'Error resolving formatted text at ' + pointer + ': ' + (error === null || error === void 0 ? void 0 : error.message) }];
28
30
  })
29
31
  .then((resolvedData) => (newItem) => {
32
+ var _a;
30
33
  let joinedData = null;
31
- if (resolvedData.every((d) => typeof d === 'string') && typeof withJoin === 'string') {
34
+ const canJoin = resolvedData.every((d) => typeof d === 'string') &&
35
+ typeof withJoin === 'string' &&
36
+ ((_a = shouldJoinFormattedText === null || shouldJoinFormattedText === void 0 ? void 0 : shouldJoinFormattedText(formattedText)) !== null && _a !== void 0 ? _a : true);
37
+ if (canJoin) {
32
38
  joinedData = resolvedData.join(withJoin);
33
39
  }
34
40
  return json_query_1.default.set(newItem, pointer, joinedData !== null && joinedData !== void 0 ? joinedData : resolvedData);
@@ -1 +1 @@
1
- {"version":3,"file":"resolveFormattedTextNodes.js","sourceRoot":"","sources":["../../../src/formatted-text/v1/resolveFormattedTextNodes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resolveFormattedTextNodes.js","sourceRoot":"","sources":["../../../src/formatted-text/v1/resolveFormattedTextNodes.ts"],"names":[],"mappings":"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"}
@@ -672,6 +672,64 @@ describe('resolveFormattedNodes', () => {
672
672
  const result = await (0, resolveFormattedTextNodes_1.resolveFormattedTextNodes)(testItem, testSchema, testResolverMap);
673
673
  expect(result).toEqual(expectedItem);
674
674
  });
675
+ it('should not join formatted text when shouldJoinFormattedText returns false', async () => {
676
+ const testSchema = {
677
+ type: 'object',
678
+ properties: {
679
+ myProp: { type: 'FormattedText' },
680
+ },
681
+ required: ['myProp'],
682
+ };
683
+ const testItem = {
684
+ myProp: [{ type: 'text', value: 'hello' }],
685
+ };
686
+ const result = await (0, resolveFormattedTextNodes_1.resolveFormattedTextNodes)(testItem, testSchema, testResolverMap, {
687
+ withJoin: '',
688
+ shouldJoinFormattedText: () => false,
689
+ });
690
+ expect(result).toEqual({
691
+ myProp: [{ type: 'text', value: 'hello' }],
692
+ });
693
+ });
694
+ it('should use selectResolvers to choose resolvers per formatted text field', async () => {
695
+ const testSchema = {
696
+ type: 'object',
697
+ properties: {
698
+ plainText: { type: 'FormattedText' },
699
+ dynamicText: { type: 'FormattedText' },
700
+ },
701
+ required: ['plainText', 'dynamicText'],
702
+ };
703
+ const testItem = {
704
+ plainText: [{ type: 'text', value: 'plain' }],
705
+ dynamicText: [
706
+ {
707
+ type: 'matrix-image',
708
+ matrixIdentifier: 'matrix-id',
709
+ matrixAssetId: '123',
710
+ matrixDomain: 'https://matrix.example.com',
711
+ },
712
+ ],
713
+ };
714
+ const htmlResolvers = {
715
+ text: async (node) => `html:${node.value}`,
716
+ default: async (node) => `html:${node.type}`,
717
+ };
718
+ const structuredResolvers = {
719
+ 'matrix-image': async (node) => ({
720
+ type: 'text',
721
+ value: `matrix:${node.matrixAssetId}`,
722
+ }),
723
+ };
724
+ const result = await (0, resolveFormattedTextNodes_1.resolveFormattedTextNodes)(testItem, testSchema, htmlResolvers, {
725
+ withJoin: '',
726
+ selectResolvers: (formattedText) => formattedText.some((node) => node.type === 'matrix-image') ? structuredResolvers : htmlResolvers,
727
+ });
728
+ expect(result).toEqual({
729
+ plainText: 'html:plain',
730
+ dynamicText: [{ type: 'text', value: 'matrix:123' }],
731
+ });
732
+ });
675
733
  it('should resolve a FormattedText value which is an empty array', async () => {
676
734
  const testSchema = {
677
735
  type: 'object',
@@ -1 +1 @@
1
- {"version":3,"file":"resolveFormattedTextNodes.spec.js","sourceRoot":"","sources":["../../../src/formatted-text/v1/resolveFormattedTextNodes.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resolveFormattedTextNodes.spec.js","sourceRoot":"","sources":["../../../src/formatted-text/v1/resolveFormattedTextNodes.spec.ts"],"names":[],"mappings":";;AACA,2EAKqC;AAErC,QAAQ,CAAC,6CAA6C,EAAE,GAAG,EAAE;IAC3D,MAAM,aAAa,GAAiC;QAClD,sBAAsB,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE;YACvC,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;QACzF,CAAC,CAAC;QACF,mBAAmB,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE;YACpC,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QACvF,CAAC,CAAC;QACF,cAAc,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE;YAC/B,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;QACjF,CAAC,CAAC;QACF,WAAW,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE;YAC5B,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QAC/E,CAAC,CAAC;KACH,CAAC;IAEF,MAAM,kBAAkB,GAAmB;QACzC,GAAG,EAAE,GAAG;QACR,IAAI,EAAE,KAAK;QACX,QAAQ,EAAE;YACR,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE;YACxC;gBACE,IAAI,EAAE,sBAAsB;gBAC5B,gBAAgB,EAAE,QAAQ;gBAC1B,YAAY,EAAE,aAAa;gBAC3B,aAAa,EAAE,OAAO;gBACtB,MAAM,EAAE,QAAQ;gBAChB,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;aACnD;YACD;gBACE,IAAI,EAAE,mBAAmB;gBACzB,WAAW,EAAE,SAAS;gBACtB,aAAa,EAAE,QAAQ;gBACvB,mBAAmB,EAAE,KAAK;gBAC1B,MAAM,EAAE,QAAQ;gBAChB,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;aACnD;YACD,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,EAAE;YAC1C;gBACE,IAAI,EAAE,cAAc;gBACpB,gBAAgB,EAAE,QAAQ;gBAC1B,YAAY,EAAE,aAAa;gBAC3B,aAAa,EAAE,OAAO;aACvB;YACD;gBACE,IAAI,EAAE,WAAW;gBACjB,WAAW,EAAE,SAAS;gBACtB,aAAa,EAAE,QAAQ;gBACvB,mBAAmB,EAAE,KAAK;aAC3B;YACD,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE;SAC7B;KACF,CAAC;IAEF,MAAM,sBAAsB,GAAmB;QAC7C,GAAG,EAAE,GAAG;QACR,IAAI,EAAE,KAAK;QACX,QAAQ,EAAE;YACR,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE;YACxC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,qBAAqB,EAAE;YAC9C,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,uBAAuB,EAAE;YAChD,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,EAAE;YAC1C,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE;YACtC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE;YACxC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE;SAC7B;KACF,CAAC;IAEF,EAAE,CAAC,oEAAoE,EAAE,KAAK,IAAI,EAAE;QAClF,MAAM,MAAM,GAAG,MAAM,IAAA,gDAAoB,EAAC,kBAAkB,EAAE,aAAa,CAAC,CAAC;QAE7E,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;QACtE,MAAM,kBAAkB,GAAmB;YACzC,GAAG,EAAE,GAAG;YACR,IAAI,EAAE,KAAK;YACX,QAAQ,EAAE;gBACR,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE;gBACxC;oBACE,IAAI,EAAE,sBAAsB;oBAC5B,gBAAgB,EAAE,QAAQ;oBAC1B,YAAY,EAAE,aAAa;oBAC3B,aAAa,EAAE,OAAO;oBACtB,MAAM,EAAE,QAAQ;oBAChB,QAAQ,EAAE,CAAC,aAAa,EAAE,kBAAkB,CAAQ;iBACrD;gBACD,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE;aAC7B;SACF,CAAC;QACF,MAAM,MAAM,CACV,IAAA,gDAAoB,EAAC,kBAAkB,EAAE;YACvC,sBAAsB,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;gBACvC,IAAI,EAAE,KAAK;gBACX,GAAG,EAAE,GAAG;gBACR,UAAU,EAAE;oBACV,IAAI,EAAE,IAAI,CAAC,gBAAgB;iBAC5B;gBACD,QAAQ,EAAE,IAAI,CAAC,QAAQ;aACxB,CAAC;SACH,CAAC,CACH,CAAC,QAAQ,CAAC,OAAO,CAAC;YACjB,GAAG,EAAE,GAAG;YACR,IAAI,EAAE,KAAK;YACX,QAAQ,EAAE;gBACR,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE;gBACxC;oBACE,IAAI,EAAE,KAAK;oBACX,GAAG,EAAE,GAAG;oBACR,UAAU,EAAE;wBACV,IAAI,EAAE,QAAQ;qBACf;oBACD,QAAQ,EAAE,CAAC,aAAa,EAAE,kBAAkB,CAAC;iBAC9C;gBACD,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE;aAC7B;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;QACpD,MAAM,kBAAkB,GAAmB;YACzC,GAAG,EAAE,GAAG;YACR,IAAI,EAAE,KAAK;YACX,QAAQ,EAAE;gBACR,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE;gBACxC;oBACE,IAAI,EAAE,QAAQ;oBACd,MAAM,EAAE;wBACN,IAAI,EAAE,aAAa;wBACnB,OAAO,EAAE,EAAE;qBACZ;oBACD,OAAO,EAAE,EAAE;iBACZ;gBACD,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE;aACzC;SACF,CAAC;QAEF,MAAM,sBAAsB,GAAmB;YAC7C,GAAG,EAAE,GAAG;YACR,IAAI,EAAE,KAAK;YACX,QAAQ,EAAE;gBACR,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE;gBACxC;oBACE,IAAI,EAAE,QAAQ;oBACd,MAAM,EAAE;wBACN,IAAI,EAAE,aAAa;wBACnB,OAAO,EAAE,EAAE;qBACZ;oBACD,OAAO,EAAE,EAAE;iBACZ;gBACD,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE;aACzC;SACF,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,IAAA,gDAAoB,EAAC,kBAAkB,EAAE,aAAa,CAAC,CAAC;QAC7E,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;QAC/D,MAAM,kBAAkB,GAAmB;YACzC,GAAG,EAAE,KAAK;YACV,IAAI,EAAE,KAAK;YACX,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,QAAQ;oBACd,MAAM,EAAE;wBACN,IAAI,EAAE,UAAU;wBAChB,OAAO,EAAE,EAAE;qBACZ;oBACD,OAAO,EAAE,EAAE;iBACZ;gBACD,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE;gBACpC;oBACE,IAAI,EAAE,QAAQ;oBACd,MAAM,EAAE;wBACN,IAAI,EAAE,UAAU;wBAChB,OAAO,EAAE,EAAE;qBACZ;oBACD,OAAO,EAAE,EAAE;iBACZ;aACF;SACF,CAAC;QAEF,MAAM,sBAAsB,GAAmB;YAC7C,GAAG,EAAE,KAAK;YACV,IAAI,EAAE,KAAK;YACX,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,QAAQ;oBACd,MAAM,EAAE;wBACN,IAAI,EAAE,UAAU;wBAChB,OAAO,EAAE,EAAE;qBACZ;oBACD,OAAO,EAAE,EAAE;iBACZ;gBACD,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE;gBACpC;oBACE,IAAI,EAAE,QAAQ;oBACd,MAAM,EAAE;wBACN,IAAI,EAAE,UAAU;wBAChB,OAAO,EAAE,EAAE;qBACZ;oBACD,OAAO,EAAE,EAAE;iBACZ;aACF;SACF,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,IAAA,gDAAoB,EAAC,kBAAkB,EAAE,aAAa,CAAC,CAAC;QAC7E,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,MAAM,eAAe,GAAiC;IACpD,sBAAsB,EAAE,CAAC,IAAI,EAAE,EAAE;QAC/B,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;IACzF,CAAC;IACD,mBAAmB,EAAE,CAAC,IAAI,EAAE,EAAE;QAC5B,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IACvF,CAAC;IACD,cAAc,EAAE,CAAC,IAAI,EAAE,EAAE;QACvB,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;IACjF,CAAC;IACD,WAAW,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE;QAC5B,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IAC/E,CAAC,CAAC;CACH,CAAC;AACF,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACrC,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;QACnE,MAAM,UAAU,GAAG;YACjB,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAC1B,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAC1B,aAAa,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE;aACzC;YACD,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,eAAe,CAAC;SAChD,CAAC;QACF,MAAM,QAAQ,GAAG;YACf,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,GAAG;YACX,aAAa,EAAE;gBACb;oBACE,IAAI,EAAE,sBAAsB;oBAC5B,gBAAgB,EAAE,QAAQ;oBAC1B,YAAY,EAAE,aAAa;oBAC3B,aAAa,EAAE,OAAO;oBACtB,MAAM,EAAE,QAAQ;oBAChB,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;iBACnD;gBACD;oBACE,IAAI,EAAE,mBAAmB;oBACzB,aAAa,EAAE,QAAQ;oBACvB,mBAAmB,EAAE,KAAK;oBAC1B,WAAW,EAAE,SAAS;oBACtB,MAAM,EAAE,QAAQ;oBAChB,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;iBACnD;gBACD;oBACE,IAAI,EAAE,cAAc;oBACpB,gBAAgB,EAAE,QAAQ;oBAC1B,YAAY,EAAE,aAAa;oBAC3B,aAAa,EAAE,OAAO;iBACvB;gBACD;oBACE,IAAI,EAAE,MAAM;oBACZ,KAAK,EAAE,eAAe;iBACvB;gBACD;oBACE,IAAI,EAAE,KAAK;oBACX,GAAG,EAAE,GAAG;oBACR,QAAQ,EAAE;wBACR,EAAE,IAAI,EAAE,sBAAsB,EAAE,aAAa,EAAE,OAAO,EAAE;wBACxD,EAAE,IAAI,EAAE,cAAc,EAAE,aAAa,EAAE,OAAO,EAAE;qBACjD;iBACF;gBACD;oBACE,IAAI,EAAE,WAAW;oBACjB,aAAa,EAAE,QAAQ;oBACvB,mBAAmB,EAAE,KAAK;oBAC1B,WAAW,EAAE,SAAS;iBACvB;aACF;SACF,CAAC;QAEF,MAAM,YAAY,GAAG;YACnB,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,GAAG;YACX,aAAa,EAAE;gBACb,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,qBAAqB,EAAE;gBAC9C,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,uBAAuB,EAAE;gBAChD,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE;gBACtC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE;gBACxC;oBACE,IAAI,EAAE,KAAK;oBACX,GAAG,EAAE,GAAG;oBACR,QAAQ,EAAE;wBACR,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,qBAAqB,EAAE;wBAC9C,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE;qBACvC;iBACF;gBACD,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE;aACzC;SACF,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,IAAA,qDAAyB,EAAC,QAAQ,EAAE,UAAU,EAAE,eAAe,CAAC,CAAC;QAEtF,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;QAC3D,MAAM,UAAU,GAAG;YACjB,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,OAAO,EAAE;oBACP,KAAK,EAAE,SAAS;oBAChB,WAAW,EAAE,gBAAgB;oBAC7B,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE;wBACL,KAAK,EAAE,UAAU;wBACjB,IAAI,EAAE,QAAQ;qBACf;iBACF;aACF;YACD,QAAQ,EAAE,CAAC,SAAS,CAAC;SACtB,CAAC;QAEF,MAAM,QAAQ,GAAG;YACf,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;SACzB,CAAC;QAEF,MAAM,YAAY,GAAG;YACnB,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;SACzB,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,IAAA,qDAAyB,EAAC,QAAQ,EAAE,UAAU,EAAE,eAAe,CAAC,CAAC;QAEtF,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kEAAkE,EAAE,KAAK,IAAI,EAAE;QAChF,MAAM,UAAU,GAAG;YACjB,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAC1B,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAC1B,aAAa,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE;aACzC;YACD,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,eAAe,CAAC;SAChD,CAAC;QACF,MAAM,QAAQ,GAAG;YACf,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,GAAG;YACX,aAAa,EAAE;gBACb;oBACE,IAAI,EAAE,sBAAsB;oBAC5B,gBAAgB,EAAE,QAAQ;oBAC1B,YAAY,EAAE,aAAa;oBAC3B,aAAa,EAAE,OAAO;oBACtB,MAAM,EAAE,QAAQ;oBAChB,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;iBACnD;gBACD;oBACE,IAAI,EAAE,cAAc;oBACpB,gBAAgB,EAAE,QAAQ;oBAC1B,YAAY,EAAE,aAAa;oBAC3B,aAAa,EAAE,OAAO;iBACvB;gBACD;oBACE,IAAI,EAAE,MAAM;oBACZ,KAAK,EAAE,mBAAmB;iBAC3B;aACF;SACF,CAAC;QAEF,MAAM,YAAY,GAAG;YACnB,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,GAAG;YACX,aAAa,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,qEAAqE,EAAE,CAAC;SAChH,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,IAAA,qDAAyB,EAAC,QAAQ,EAAE,UAAU,EAAE;YACnE,GAAG,eAAe;YAClB,sBAAsB,EAAE,GAAG,EAAE;gBAC3B,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC;YACvD,CAAC;SACF,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4EAA4E,EAAE,KAAK,IAAI,EAAE;QAC1F,MAAM,UAAU,GAAG;YACjB,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAC1B,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAC1B,iBAAiB,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE;gBAC5C,gBAAgB,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE;aAC5C;YACD,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,eAAe,CAAC;SAChD,CAAC;QACF,MAAM,QAAQ,GAAG;YACf,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,GAAG;YACX,iBAAiB,EAAE;gBACjB;oBACE,IAAI,EAAE,cAAc;oBACpB,gBAAgB,EAAE,QAAQ;oBAC1B,YAAY,EAAE,aAAa;oBAC3B,aAAa,EAAE,OAAO;iBACvB;gBACD;oBACE,IAAI,EAAE,MAAM;oBACZ,KAAK,EAAE,mBAAmB;iBAC3B;aACF;YACD,gBAAgB,EAAE;gBAChB;oBACE,IAAI,EAAE,sBAAsB;oBAC5B,gBAAgB,EAAE,QAAQ;oBAC1B,YAAY,EAAE,aAAa;oBAC3B,aAAa,EAAE,OAAO;oBACtB,MAAM,EAAE,QAAQ;oBAChB,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;iBACnD;aACF;SACF,CAAC;QAEF,MAAM,YAAY,GAAG;YACnB,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,GAAG;YACX,iBAAiB,EAAE;gBACjB,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE;gBACtC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,mBAAmB,EAAE;aAC7C;YACD,gBAAgB,EAAE;gBAChB,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,wEAAwE,EAAE;aAClG;SACF,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,IAAA,qDAAyB,EAAC,QAAQ,EAAE,UAAU,EAAE;YACnE,GAAG,eAAe;YAClB,sBAAsB,EAAE,GAAG,EAAE;gBAC3B,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC;YACvD,CAAC;SACF,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;QAC1D,MAAM,UAAU,GAAG;YACjB,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAC1B,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAC1B,aAAa,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE;aACzC;YACD,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,eAAe,CAAC;SAChD,CAAC;QACF,MAAM,QAAQ,GAAG;YACf,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,GAAG;YACX,aAAa,EAAE;gBACb;oBACE,IAAI,EAAE,sBAAsB;oBAC5B,gBAAgB,EAAE,QAAQ;oBAC1B,YAAY,EAAE,aAAa;oBAC3B,aAAa,EAAE,OAAO;oBACtB,MAAM,EAAE,QAAQ;oBAChB,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;iBACnD;gBACD;oBACE,IAAI,EAAE,cAAc;oBACpB,gBAAgB,EAAE,QAAQ;oBAC1B,YAAY,EAAE,aAAa;oBAC3B,aAAa,EAAE,OAAO;iBACvB;gBACD;oBACE,IAAI,EAAE,MAAM;oBACZ,KAAK,EAAE,mBAAmB;iBAC3B;aACF;SACF,CAAC;QAEF,MAAM,YAAY,GAAG;YACnB,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,GAAG;YACX,aAAa,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,qEAAqE,EAAE,CAAC;SAChH,CAAC;QAEF,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE;YAC/B,OAAO;gBACL,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,qEAAqE;aACxD,CAAC;QACzB,CAAC,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,IAAA,qDAAyB,EAC5C,QAAQ,EACR,UAAU,EACV;YACE,GAAG,eAAe;YAClB,sBAAsB,EAAE,GAAG,EAAE;gBAC3B,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC;YACvD,CAAC;SACF,EACD,EAAE,WAAW,EAAE,CAChB,CAAC;QAEF,MAAM,CAAC,WAAW,CAAC,CAAC,gBAAgB,EAAE,CAAC;QACvC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gFAAgF,EAAE,KAAK,IAAI,EAAE;QAC9F,MAAM,UAAU,GAAG;YACjB,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAC1B,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAC1B,aAAa,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE;aACzC;YACD,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,eAAe,CAAC;SAChD,CAAC;QACF,MAAM,QAAQ,GAAG;YACf,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,GAAG;YACX,aAAa,EAAE;gBACb;oBACE,IAAI,EAAE,sBAAsB;oBAC5B,gBAAgB,EAAE,QAAQ;oBAC1B,YAAY,EAAE,aAAa;oBAC3B,aAAa,EAAE,OAAO;oBACtB,MAAM,EAAE,QAAQ;oBAChB,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;iBACnD;gBACD;oBACE,IAAI,EAAE,cAAc;oBACpB,gBAAgB,EAAE,QAAQ;oBAC1B,YAAY,EAAE,aAAa;oBAC3B,aAAa,EAAE,OAAO;iBACvB;gBACD;oBACE,IAAI,EAAE,MAAM;oBACZ,KAAK,EAAE,mBAAmB;iBAC3B;aACF;SACF,CAAC;QAEF,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE;YAC/B,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,MAAM,MAAM,CACV,IAAA,qDAAyB,EACvB,QAAQ,EACR,UAAU,EACV;YACE,GAAG,eAAe;YAClB,sBAAsB,EAAE,GAAG,EAAE;gBAC3B,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;YACxD,CAAC;SACF,EACD,EAAE,WAAW,EAAE,CAChB,CACF,CAAC,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kGAAkG,EAAE,KAAK,IAAI,EAAE;QAChH,MAAM,UAAU,GAAG;YACjB,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAC1B,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAC1B,aAAa,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE;aACzC;YACD,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,eAAe,CAAC;SAChD,CAAC;QACF,MAAM,QAAQ,GAAG;YACf,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,GAAG;YACX,aAAa,EAAE;gBACb;oBACE,IAAI,EAAE,sBAAsB;oBAC5B,gBAAgB,EAAE,QAAQ;oBAC1B,YAAY,EAAE,aAAa;oBAC3B,aAAa,EAAE,OAAO;oBACtB,MAAM,EAAE,QAAQ;oBAChB,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;iBACnD;gBACD;oBACE,IAAI,EAAE,cAAc;oBACpB,gBAAgB,EAAE,QAAQ;oBAC1B,YAAY,EAAE,aAAa;oBAC3B,aAAa,EAAE,OAAO;iBACvB;gBACD;oBACE,IAAI,EAAE,MAAM;oBACZ,KAAK,EAAE,mBAAmB;iBAC3B;aACF;SACF,CAAC;QAEF,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE;YAC/B,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,MAAM,MAAM,CACV,IAAA,qDAAyB,EACvB,QAAQ,EACR,UAAU,EACV;YACE,GAAG,eAAe;YAClB,sBAAsB,EAAE,GAAG,EAAE;gBAC3B,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;YACxD,CAAC;SACF,EACD,EAAE,WAAW,EAAE,CAChB,CACF,CAAC,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;QACtC,MAAM,CAAC,WAAW,CAAC,CAAC,oBAAoB,CAAC,IAAI,KAAK,CAAC,mBAAmB,CAAC,EAAE,iBAAiB,CAAC,CAAC;IAC9F,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kEAAkE,EAAE,KAAK,IAAI,EAAE;QAChF,MAAM,UAAU,GAAG;YACjB,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAC1B,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAC1B,aAAa,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE;aACzC;YACD,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,eAAe,CAAC;SAChD,CAAC;QACF,MAAM,QAAQ,GAAG;YACf,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,GAAG;YACX,aAAa,EAAE;gBACb;oBACE,IAAI,EAAE,sBAAsB;oBAC5B,gBAAgB,EAAE,QAAQ;oBAC1B,YAAY,EAAE,aAAa;oBAC3B,aAAa,EAAE,OAAO;oBACtB,MAAM,EAAE,QAAQ;oBAChB,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;iBACnD;gBACD;oBACE,IAAI,EAAE,cAAc;oBACpB,gBAAgB,EAAE,QAAQ;oBAC1B,YAAY,EAAE,aAAa;oBAC3B,aAAa,EAAE,OAAO;iBACvB;gBACD;oBACE,IAAI,EAAE,MAAM;oBACZ,KAAK,EAAE,mBAAmB;iBAC3B;aACF;SACF,CAAC;QAEF,MAAM,YAAY,GAAG;YACnB,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,GAAG;YACX,aAAa,EAAE;gBACb,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,qBAAqB,EAAE;gBAC9C,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE;gBACtC;oBACE,IAAI,EAAE,MAAM;oBACZ,KAAK,EAAE,6CAA6C;iBACrD;aACF;SACF,CAAC;QAEF,MAAM,eAAe,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE;YACnC,OAAO,OAAO,CAAC,OAAO,CAAC;gBACrB,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,6CAA6C;aAChC,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,IAAA,qDAAyB,EAAC,QAAQ,EAAE,UAAU,EAAE;YACnE,GAAG,eAAe;YAClB,OAAO,EAAE,eAAe;SACzB,CAAC,CAAC;QAEH,MAAM,CAAC,eAAe,CAAC,CAAC,gBAAgB,EAAE,CAAC;QAC3C,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;QACtE,MAAM,UAAU,GAAG;YACjB,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAC1B,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAC1B,aAAa,EAAE,EAAE,IAAI,EAAE,6BAA6B,EAAE;aACvD;YACD,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,eAAe,CAAC;YAC/C,WAAW,EAAE;gBACX,aAAa,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE;aACzC;SACF,CAAC;QACF,MAAM,QAAQ,GAAG;YACf,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,GAAG;YACX,aAAa,EAAE;gBACb;oBACE,IAAI,EAAE,sBAAsB;oBAC5B,gBAAgB,EAAE,QAAQ;oBAC1B,YAAY,EAAE,aAAa;oBAC3B,aAAa,EAAE,OAAO;oBACtB,MAAM,EAAE,QAAQ;oBAChB,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;iBACnD;gBACD;oBACE,IAAI,EAAE,cAAc;oBACpB,gBAAgB,EAAE,QAAQ;oBAC1B,YAAY,EAAE,aAAa;oBAC3B,aAAa,EAAE,OAAO;iBACvB;gBACD;oBACE,IAAI,EAAE,MAAM;oBACZ,KAAK,EAAE,mBAAmB;iBAC3B;aACF;SACF,CAAC;QAEF,MAAM,YAAY,GAAG;YACnB,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,GAAG;YACX,aAAa,EAAE;gBACb,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,qBAAqB,EAAE;gBAC9C,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE;gBACtC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,mBAAmB,EAAE;aAC7C;SACF,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,IAAA,qDAAyB,EAAC,QAAQ,EAAE,UAAU,EAAE,eAAe,CAAC,CAAC;QAEtF,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2EAA2E,EAAE,KAAK,IAAI,EAAE;QACzF,MAAM,UAAU,GAAG;YACjB,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,MAAM,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE;aAClC;YACD,QAAQ,EAAE,CAAC,QAAQ,CAAC;SACrB,CAAC;QACF,MAAM,QAAQ,GAAG;YACf,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;SAC3C,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,IAAA,qDAAyB,EAAC,QAAQ,EAAE,UAAU,EAAE,eAAe,EAAE;YACpF,QAAQ,EAAE,EAAE;YACZ,uBAAuB,EAAE,GAAG,EAAE,CAAC,KAAK;SACrC,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;YACrB,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;SAC3C,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yEAAyE,EAAE,KAAK,IAAI,EAAE;QACvF,MAAM,UAAU,GAAG;YACjB,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,SAAS,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE;gBACpC,WAAW,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE;aACvC;YACD,QAAQ,EAAE,CAAC,WAAW,EAAE,aAAa,CAAC;SACvC,CAAC;QACF,MAAM,QAAQ,GAAG;YACf,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;YAC7C,WAAW,EAAE;gBACX;oBACE,IAAI,EAAE,cAAc;oBACpB,gBAAgB,EAAE,WAAW;oBAC7B,aAAa,EAAE,KAAK;oBACpB,YAAY,EAAE,4BAA4B;iBAC3C;aACF;SACF,CAAC;QACF,MAAM,aAAa,GAAG;YACpB,IAAI,EAAE,KAAK,EAAE,IAAuB,EAAE,EAAE,CAAC,QAAQ,IAAI,CAAC,KAAK,EAAE;YAC7D,OAAO,EAAE,KAAK,EAAE,IAAsB,EAAE,EAAE,CAAC,QAAQ,IAAI,CAAC,IAAI,EAAE;SAC/D,CAAC;QACF,MAAM,mBAAmB,GAAG;YAC1B,cAAc,EAAE,KAAK,EAAE,IAA+B,EAAE,EAAE,CAAC,CAAC;gBAC1D,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,UAAU,IAAI,CAAC,aAAa,EAAE;aACtC,CAAC;SACH,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,IAAA,qDAAyB,EAC5C,QAAQ,EACR,UAAU,EACV,aAAoB,EACpB;YACE,QAAQ,EAAE,EAAE;YACZ,eAAe,EAAE,CAAC,aAAkB,EAAE,EAAE,CACtC,aAAa,CAAC,IAAI,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,aAAa;SACjG,CACT,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;YACrB,SAAS,EAAE,YAAY;YACvB,WAAW,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;SACrD,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8DAA8D,EAAE,KAAK,IAAI,EAAE;QAC5E,MAAM,UAAU,GAAG;YACjB,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,MAAM,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE;aAClC;YACD,QAAQ,EAAE,EAAE;SACb,CAAC;QAEF,MAAM,MAAM,CACV,IAAA,qDAAyB,EAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,eAAe,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CACzF,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4DAA4D,EAAE,KAAK,IAAI,EAAE;QAC1E,MAAM,UAAU,GAAG;YACjB,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,MAAM,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE;aAClC;SACF,CAAC;QACF,MAAM,QAAQ,GAAG;YACf,MAAM,EAAE,kBAAkB;SAC3B,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,IAAA,qDAAyB,EAAC,QAAQ,EAAE,UAAU,EAAE,eAAe,CAAC,CAAC;QAEtF,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;QACjE,MAAM,UAAU,GAAG;YACjB,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,MAAM,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE;aAClC;SACF,CAAC;QACF,MAAM,QAAQ,GAAG;YACf,MAAM,EAAE,IAAI;SACb,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,IAAA,qDAAyB,EAAC,QAAQ,EAAE,UAAU,EAAE,eAAe,CAAC,CAAC;QAEtF,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
package/lib/index.d.ts CHANGED
@@ -14,3 +14,4 @@ export * from './jsonTypeResolution/TypeResolverBuilder';
14
14
  export * from './primitiveTypes';
15
15
  export * from './resolvableTypes';
16
16
  export * from './manifest/userApi/v1';
17
+ export * from './utils/jsonBreakDetector/jsonBreakDetector';
package/lib/index.js CHANGED
@@ -53,4 +53,5 @@ __exportStar(require("./jsonTypeResolution/TypeResolverBuilder"), exports);
53
53
  __exportStar(require("./primitiveTypes"), exports);
54
54
  __exportStar(require("./resolvableTypes"), exports);
55
55
  __exportStar(require("./manifest/userApi/v1"), exports);
56
+ __exportStar(require("./utils/jsonBreakDetector/jsonBreakDetector"), exports);
56
57
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gFAAgE;AAChE,kFAAkE;AAElE,iGAAiF;AACjF,mGAAmF;AACnF,gFAA8D;AAE9D,wEAAwD;AAExD,sDAAoC;AACpC,0DAAwC;AACxC,iEAA+C;AAC/C,+DAA6C;AAE7C,0EAAwD;AAExD,oEAAkD;AAClD,2EAAyD;AACzD,mDAAiC;AACjC,oDAAkC;AAElC,wDAAsC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gFAAgE;AAChE,kFAAkE;AAElE,iGAAiF;AACjF,mGAAmF;AACnF,gFAA8D;AAE9D,wEAAwD;AAExD,sDAAoC;AACpC,0DAAwC;AACxC,iEAA+C;AAC/C,+DAA6C;AAE7C,0EAAwD;AAExD,oEAAkD;AAClD,2EAAyD;AACzD,mDAAiC;AACjC,oDAAkC;AAElC,wDAAsC;AAEtC,8EAA4D"}
@@ -0,0 +1,6 @@
1
+ import { JsonBreak } from '../types';
2
+ import { JSONSchema } from '@squiz/json-schema-library';
3
+ /** Recursively detects narrowed array constraints at each schema level, accumulating dotted paths. */
4
+ export declare function findArrayConstraintNarrowing(beforeSchema: JSONSchema, afterSchema: JSONSchema, path: string, breaks: JsonBreak[]): void;
5
+ /** Checks array constraint keywords on a single schema for narrowing changes. */
6
+ export declare function checkArrayConstraintNarrowing(beforeSchema: JSONSchema, afterSchema: JSONSchema, path: string, breaks: JsonBreak[]): void;
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.findArrayConstraintNarrowing = findArrayConstraintNarrowing;
4
+ exports.checkArrayConstraintNarrowing = checkArrayConstraintNarrowing;
5
+ const compareSubschemas_1 = require("../compareSubschemas");
6
+ const types_1 = require("../types");
7
+ /** Recursively detects narrowed array constraints at each schema level, accumulating dotted paths. */
8
+ function findArrayConstraintNarrowing(beforeSchema, afterSchema, path, breaks) {
9
+ var _a, _b;
10
+ const beforeProperties = (_a = beforeSchema.properties) !== null && _a !== void 0 ? _a : {};
11
+ const afterProperties = (_b = afterSchema.properties) !== null && _b !== void 0 ? _b : {};
12
+ // Recurse into latest nested object properties.
13
+ for (const [key, afterPropertySchema] of Object.entries(afterProperties)) {
14
+ // Skip if the property is not an object.
15
+ if (!afterPropertySchema || typeof afterPropertySchema !== 'object') {
16
+ continue;
17
+ }
18
+ const beforePropertySchema = beforeProperties[key];
19
+ const childPath = path ? `${path}.${key}` : key;
20
+ // Only compare array constraints on fields that existed in the before schema. New fields are skipped.
21
+ if (beforePropertySchema && typeof beforePropertySchema === 'object') {
22
+ checkArrayConstraintNarrowing(beforePropertySchema, afterPropertySchema, childPath, breaks);
23
+ findArrayConstraintNarrowing(beforePropertySchema, afterPropertySchema, childPath, breaks);
24
+ }
25
+ }
26
+ const beforeItems = beforeSchema.items;
27
+ const afterItems = afterSchema.items;
28
+ // Recurse into latest nested array items.
29
+ if (afterItems && typeof afterItems === 'object' && !Array.isArray(afterItems)) {
30
+ const itemsPath = path ? `${path}[]` : '[]';
31
+ const beforeItemSchema = beforeItems && typeof beforeItems === 'object' && !Array.isArray(beforeItems) ? beforeItems : undefined;
32
+ // Only compare array constraints on items that existed in the before schema. New items are skipped.
33
+ if (beforeItemSchema) {
34
+ checkArrayConstraintNarrowing(beforeItemSchema, afterItems, itemsPath, breaks);
35
+ findArrayConstraintNarrowing(beforeItemSchema, afterItems, itemsPath, breaks);
36
+ }
37
+ }
38
+ }
39
+ /** Returns true when a schema represents an array field. */
40
+ function isArrayFieldSchema(schema) {
41
+ const type = schema.type;
42
+ if (type === 'array') {
43
+ return true;
44
+ }
45
+ // Type can be defined as a union of strings e.g. ['array', 'string'], so check if 'array' is included.
46
+ if (Array.isArray(type) && type.includes('array')) {
47
+ return true;
48
+ }
49
+ return (schema.minItems !== undefined ||
50
+ schema.maxItems !== undefined ||
51
+ schema.uniqueItems !== undefined ||
52
+ schema.contains !== undefined);
53
+ }
54
+ /** Returns true when afterSchema requires more array items than beforeSchema. */
55
+ function hasMinItemsIncreased(beforeSchema, afterSchema) {
56
+ var _a, _b;
57
+ const beforeMinItems = (_a = beforeSchema.minItems) !== null && _a !== void 0 ? _a : 0;
58
+ const afterMinItems = (_b = afterSchema.minItems) !== null && _b !== void 0 ? _b : 0;
59
+ return afterMinItems > beforeMinItems;
60
+ }
61
+ /** Returns true when afterSchema allows fewer array items than beforeSchema. */
62
+ function hasMaxItemsLowered(beforeSchema, afterSchema) {
63
+ const beforeMaxItems = beforeSchema.maxItems;
64
+ const afterMaxItems = afterSchema.maxItems;
65
+ if (afterMaxItems === undefined) {
66
+ return false;
67
+ }
68
+ if (beforeMaxItems === undefined) {
69
+ return true;
70
+ }
71
+ return afterMaxItems < beforeMaxItems;
72
+ }
73
+ /** Returns true when afterSchema adds a uniqueItems requirement. */
74
+ function hasUniqueItemsAdded(beforeSchema, afterSchema) {
75
+ return afterSchema.uniqueItems === true && beforeSchema.uniqueItems !== true;
76
+ }
77
+ /** Checks array constraint keywords on a single schema for narrowing changes. */
78
+ function checkArrayConstraintNarrowing(beforeSchema, afterSchema, path, breaks) {
79
+ if (!isArrayFieldSchema(beforeSchema) && !isArrayFieldSchema(afterSchema)) {
80
+ return;
81
+ }
82
+ if (hasMinItemsIncreased(beforeSchema, afterSchema)) {
83
+ (0, types_1.pushBreak)(breaks, path, types_1.BREAK_MESSAGES.minItems);
84
+ }
85
+ if (hasMaxItemsLowered(beforeSchema, afterSchema)) {
86
+ (0, types_1.pushBreak)(breaks, path, types_1.BREAK_MESSAGES.maxItems);
87
+ }
88
+ if (hasUniqueItemsAdded(beforeSchema, afterSchema)) {
89
+ (0, types_1.pushBreak)(breaks, path, types_1.BREAK_MESSAGES.uniqueItems);
90
+ }
91
+ (0, compareSubschemas_1.compareContainsSubschemas)(beforeSchema, afterSchema, path, breaks);
92
+ }
93
+ //# sourceMappingURL=findArrayConstraintNarrowing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"findArrayConstraintNarrowing.js","sourceRoot":"","sources":["../../../../src/utils/jsonBreakDetector/checks/findArrayConstraintNarrowing.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { JsonBreak } from '../types';
2
+ import { JSONSchema } from '@squiz/json-schema-library';
3
+ /** Recursively detects added or changed `const` values at each schema level, accumulating dotted paths. */
4
+ export declare function findConstChanges(beforeSchema: JSONSchema, afterSchema: JSONSchema, path: string, constChanges: JsonBreak[]): void;
5
+ /** Reports added or changed fixed values on a single schema node. */
6
+ export declare function checkConstNarrowingAtNode(beforeSchema: JSONSchema, afterSchema: JSONSchema, path: string, breaks: JsonBreak[]): void;
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.findConstChanges = findConstChanges;
4
+ exports.checkConstNarrowingAtNode = checkConstNarrowingAtNode;
5
+ const types_1 = require("../types");
6
+ /** Recursively detects added or changed `const` values at each schema level, accumulating dotted paths. */
7
+ function findConstChanges(beforeSchema, afterSchema, path, constChanges) {
8
+ var _a, _b;
9
+ const beforeProperties = (_a = beforeSchema.properties) !== null && _a !== void 0 ? _a : {};
10
+ const afterProperties = (_b = afterSchema.properties) !== null && _b !== void 0 ? _b : {};
11
+ // Recurse into nested object properties.
12
+ for (const [key, afterPropertySchema] of Object.entries(afterProperties)) {
13
+ if (!afterPropertySchema || typeof afterPropertySchema !== 'object') {
14
+ continue;
15
+ }
16
+ const beforePropertySchema = beforeProperties[key];
17
+ const childPath = path ? `${path}.${key}` : key;
18
+ if (beforePropertySchema && typeof beforePropertySchema === 'object') {
19
+ // Only compare const on fields that existed in the before schema.
20
+ if (hasConstChange(beforePropertySchema, afterPropertySchema)) {
21
+ (0, types_1.pushBreak)(constChanges, childPath, types_1.BREAK_MESSAGES.const);
22
+ }
23
+ // Compare `const` on this property, then recurse into nested schemas for child fields.
24
+ findConstChanges(beforePropertySchema, afterPropertySchema, childPath, constChanges);
25
+ }
26
+ // New properties in afterSchema are skipped; adding a field is not a const change.
27
+ }
28
+ const beforeItems = beforeSchema.items;
29
+ const afterItems = afterSchema.items;
30
+ // Recurse into array item schemas (tuple items are not supported).
31
+ if (afterItems && typeof afterItems === 'object' && !Array.isArray(afterItems)) {
32
+ const itemsPath = path ? `${path}[]` : '[]';
33
+ const beforeItemSchema = beforeItems && typeof beforeItems === 'object' && !Array.isArray(beforeItems) ? beforeItems : undefined;
34
+ // Compare `items.const`, e.g. `version[]` when each item must match a new fixed value.
35
+ if (beforeItemSchema && hasConstChange(beforeItemSchema, afterItems)) {
36
+ (0, types_1.pushBreak)(constChanges, itemsPath, types_1.BREAK_MESSAGES.const);
37
+ }
38
+ if (beforeItemSchema) {
39
+ findConstChanges(beforeItemSchema, afterItems, itemsPath, constChanges);
40
+ }
41
+ }
42
+ }
43
+ /** Reports added or changed fixed values on a single schema node. */
44
+ function checkConstNarrowingAtNode(beforeSchema, afterSchema, path, breaks) {
45
+ if (hasConstChange(beforeSchema, afterSchema)) {
46
+ (0, types_1.pushBreak)(breaks, path, types_1.BREAK_MESSAGES.const);
47
+ }
48
+ }
49
+ /** Returns true when afterSchema adds or changes an effective fixed value (`const` or single-value `enum`). */
50
+ function hasConstChange(beforeSchema, afterSchema) {
51
+ const afterValue = getEffectiveConstValue(afterSchema);
52
+ if (afterValue === undefined) {
53
+ return false;
54
+ }
55
+ const beforeValue = getEffectiveConstValue(beforeSchema);
56
+ if (beforeValue === undefined) {
57
+ return true;
58
+ }
59
+ return JSON.stringify(beforeValue) !== JSON.stringify(afterValue);
60
+ }
61
+ /**
62
+ * Returns a schema's fixed value from `const`, or from `enum` when it contains exactly one value.
63
+ * A single-value enum and a const are equivalent ways to restrict a field to one value.
64
+ */
65
+ function getEffectiveConstValue(schema) {
66
+ if (schema.const !== undefined) {
67
+ return schema.const;
68
+ }
69
+ const enumValues = schema.enum;
70
+ if (enumValues && enumValues.length === 1) {
71
+ return enumValues[0];
72
+ }
73
+ return undefined;
74
+ }
75
+ //# sourceMappingURL=findConstChanges.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"findConstChanges.js","sourceRoot":"","sources":["../../../../src/utils/jsonBreakDetector/checks/findConstChanges.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { JsonBreak } from '../types';
2
+ import { JSONSchema } from '@squiz/json-schema-library';
3
+ /** Recursively detects enum narrowing at each schema level, accumulating dotted paths. */
4
+ export declare function findEnumNarrowing(beforeSchema: JSONSchema, afterSchema: JSONSchema, path: string, breaks: JsonBreak[]): void;
5
+ /** Reports enum narrowing on a single schema node. */
6
+ export declare function checkEnumNarrowingAtNode(beforeSchema: JSONSchema, afterSchema: JSONSchema, path: string, breaks: JsonBreak[]): void;
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.findEnumNarrowing = findEnumNarrowing;
4
+ exports.checkEnumNarrowingAtNode = checkEnumNarrowingAtNode;
5
+ const types_1 = require("../types");
6
+ /** Recursively detects enum narrowing at each schema level, accumulating dotted paths. */
7
+ function findEnumNarrowing(beforeSchema, afterSchema, path, breaks) {
8
+ var _a, _b;
9
+ const beforeProperties = (_a = beforeSchema.properties) !== null && _a !== void 0 ? _a : {};
10
+ const afterProperties = (_b = afterSchema.properties) !== null && _b !== void 0 ? _b : {};
11
+ // Recurse into nested object properties.
12
+ for (const [key, afterPropertySchema] of Object.entries(afterProperties)) {
13
+ if (!afterPropertySchema || typeof afterPropertySchema !== 'object') {
14
+ continue;
15
+ }
16
+ const beforePropertySchema = beforeProperties[key];
17
+ const childPath = path ? `${path}.${key}` : key;
18
+ if (beforePropertySchema && typeof beforePropertySchema === 'object') {
19
+ // Only compare enum on fields that existed in the before schema.
20
+ reportEnumNarrowingAtNode(beforePropertySchema, afterPropertySchema, childPath, breaks);
21
+ // Compare `enum` on this property, then recurse into nested schemas for child fields.
22
+ findEnumNarrowing(beforePropertySchema, afterPropertySchema, childPath, breaks);
23
+ }
24
+ // New properties in afterSchema are skipped; adding a field is not an enum change.
25
+ }
26
+ const beforeItems = beforeSchema.items;
27
+ const afterItems = afterSchema.items;
28
+ // Recurse into array item schemas.
29
+ if (afterItems && typeof afterItems === 'object' && !Array.isArray(afterItems)) {
30
+ const itemsPath = path ? `${path}[]` : '[]';
31
+ const beforeItemSchema = beforeItems && typeof beforeItems === 'object' && !Array.isArray(beforeItems) ? beforeItems : undefined;
32
+ // Only compare enum on items that existed in the before schema. New items are skipped.
33
+ if (beforeItemSchema) {
34
+ reportEnumNarrowingAtNode(beforeItemSchema, afterItems, itemsPath, breaks);
35
+ findEnumNarrowing(beforeItemSchema, afterItems, itemsPath, breaks);
36
+ }
37
+ }
38
+ }
39
+ /** Reports enum narrowing on a single schema node. */
40
+ function reportEnumNarrowingAtNode(beforeSchema, afterSchema, path, breaks) {
41
+ // Removing an options could leave old default value that matched that invalid, so report as breaking.
42
+ if (hasRemovedEnumOptions(beforeSchema, afterSchema)) {
43
+ (0, types_1.pushBreak)(breaks, path, types_1.BREAK_MESSAGES.enum);
44
+ }
45
+ // Adding an enum constraint could leave old values that dont match invalid, so report as breaking.
46
+ if (hasAddedEnum(beforeSchema, afterSchema)) {
47
+ (0, types_1.pushBreak)(breaks, path, types_1.BREAK_MESSAGES.enumAdded);
48
+ }
49
+ }
50
+ /** Reports enum narrowing on a single schema node. */
51
+ function checkEnumNarrowingAtNode(beforeSchema, afterSchema, path, breaks) {
52
+ reportEnumNarrowingAtNode(beforeSchema, afterSchema, path, breaks);
53
+ }
54
+ /** Returns true when afterSchema adds an enum where the before schema had none. */
55
+ function hasAddedEnum(beforeSchema, afterSchema) {
56
+ const afterEnum = afterSchema.enum;
57
+ // No enum constraint is not breaking.
58
+ if (!afterEnum || afterEnum.length === 0) {
59
+ return false;
60
+ }
61
+ const beforeEnum = beforeSchema.enum;
62
+ if (beforeEnum && beforeEnum.length > 0) {
63
+ return false;
64
+ }
65
+ // Check if a before const has been converted to an enum. e.g. const: 'published' -> enum: ['draft', 'published'].
66
+ if (beforeSchema.const !== undefined) {
67
+ return !afterEnum.some((value) => JSON.stringify(value) === JSON.stringify(beforeSchema.const));
68
+ }
69
+ return true;
70
+ }
71
+ /** Returns true when afterSchema.enum no longer allows every value from beforeSchema.enum. */
72
+ function hasRemovedEnumOptions(beforeSchema, afterSchema) {
73
+ const beforeEnum = beforeSchema.enum;
74
+ if (!beforeEnum || beforeEnum.length === 0) {
75
+ return false;
76
+ }
77
+ const afterEnum = afterSchema.enum;
78
+ const afterConst = afterSchema.const;
79
+ // Enum removed entirely is a relaxation, not a breaking change.
80
+ if (!afterEnum) {
81
+ if (afterConst === undefined) {
82
+ return false;
83
+ }
84
+ // True when any former enum value is not matched by the new `const`.
85
+ return beforeEnum.some((beforeValue) => JSON.stringify(beforeValue) !== JSON.stringify(afterConst));
86
+ }
87
+ // True when any former enum value is missing from the after `enum` list.
88
+ return beforeEnum.some((beforeValue) => !afterEnum.some((afterValue) => JSON.stringify(beforeValue) === JSON.stringify(afterValue)));
89
+ }
90
+ //# sourceMappingURL=findEnumNarrowing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"findEnumNarrowing.js","sourceRoot":"","sources":["../../../../src/utils/jsonBreakDetector/checks/findEnumNarrowing.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { JsonBreak } from '../types';
2
+ import { JSONSchema } from '@squiz/json-schema-library';
3
+ /**
4
+ * Recursively function to compare field type values at each schema level, accumulating dotted paths.
5
+ * */
6
+ export declare function findFieldTypeChanges(beforeSchema: JSONSchema, afterSchema: JSONSchema, path: string, typeChanges: JsonBreak[]): void;
7
+ /** Returns true when the JSON Schema `type` keyword narrows between two schemas. */
8
+ export declare function hasTypeChange(beforeSchema: JSONSchema, afterSchema: JSONSchema): boolean;