@sap/ux-specification 1.84.110 → 1.84.112

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 (56) hide show
  1. package/CHANGELOG.md +43 -0
  2. package/dist/documentation/v2/v2-AnalyticalListPage.html +2 -2
  3. package/dist/documentation/v2/v2-ApplicationV2.html +2 -2
  4. package/dist/documentation/v2/v2-ListReport.html +2 -2
  5. package/dist/documentation/v2/v2-ObjectPage.html +2 -2
  6. package/dist/documentation/v2/v2-OverviewPage.html +2 -2
  7. package/dist/documentation/v4/v4-ApplicationV4.html +2 -2
  8. package/dist/documentation/v4/v4-ListReport.html +2 -2
  9. package/dist/documentation/v4/v4-ObjectPage.html +2 -2
  10. package/dist/index-min.js +40 -40
  11. package/dist/index-min.js.map +3 -3
  12. package/dist/specification/package.json +4 -4
  13. package/dist/specification/scripts/schema/index.d.ts +2 -0
  14. package/dist/specification/scripts/schema/index.d.ts.map +1 -0
  15. package/dist/specification/scripts/schema/index.js +45 -0
  16. package/dist/specification/scripts/schema/index.js.map +1 -0
  17. package/dist/specification/scripts/schema/to-json-schema.d.ts +24 -0
  18. package/dist/specification/scripts/schema/to-json-schema.d.ts.map +1 -0
  19. package/dist/specification/scripts/{to-json-schema.js → schema/to-json-schema.js} +17 -13
  20. package/dist/specification/scripts/schema/to-json-schema.js.map +1 -0
  21. package/dist/specification/src/sync/common/decoration/decorators.d.ts +8 -1
  22. package/dist/specification/src/sync/common/decoration/decorators.d.ts.map +1 -1
  23. package/dist/specification/src/sync/common/decoration/decorators.js +14 -0
  24. package/dist/specification/src/sync/common/decoration/decorators.js.map +1 -1
  25. package/dist/specification/src/sync/common/i18n.json +2 -0
  26. package/dist/specification/src/sync/common/utils.d.ts +13 -0
  27. package/dist/specification/src/sync/common/utils.d.ts.map +1 -1
  28. package/dist/specification/src/sync/common/utils.js +22 -0
  29. package/dist/specification/src/sync/common/utils.js.map +1 -1
  30. package/dist/specification/src/sync/v2/generate/overviewPage.d.ts.map +1 -1
  31. package/dist/specification/src/sync/v2/generate/overviewPage.js +43 -0
  32. package/dist/specification/src/sync/v2/generate/overviewPage.js.map +1 -1
  33. package/dist/specification/src/sync/v2/generate/schemaAdaptation.d.ts +59 -0
  34. package/dist/specification/src/sync/v2/generate/schemaAdaptation.d.ts.map +1 -0
  35. package/dist/specification/src/sync/v2/generate/schemaAdaptation.js +360 -0
  36. package/dist/specification/src/sync/v2/generate/schemaAdaptation.js.map +1 -0
  37. package/dist/specification/src/sync/v2/generate/utils.d.ts +26 -1
  38. package/dist/specification/src/sync/v2/generate/utils.d.ts.map +1 -1
  39. package/dist/specification/src/sync/v2/generate/utils.js +65 -1
  40. package/dist/specification/src/sync/v2/generate/utils.js.map +1 -1
  41. package/dist/specification/src/sync/v2/import/importPage.d.ts +56 -0
  42. package/dist/specification/src/sync/v2/import/importPage.d.ts.map +1 -0
  43. package/dist/specification/src/sync/v2/import/importPage.js +289 -0
  44. package/dist/specification/src/sync/v2/import/importPage.js.map +1 -0
  45. package/dist/specification/src/sync/v2/utils.d.ts +26 -0
  46. package/dist/specification/src/sync/v2/utils.d.ts.map +1 -0
  47. package/dist/specification/src/sync/v2/utils.js +64 -0
  48. package/dist/specification/src/sync/v2/utils.js.map +1 -0
  49. package/dist/types/src/common/types.d.ts +164 -2
  50. package/dist/types/src/common/types.d.ts.map +1 -1
  51. package/dist/types/src/common/types.js +30 -0
  52. package/dist/types/src/common/types.js.map +1 -1
  53. package/package.json +4 -4
  54. package/dist/specification/scripts/to-json-schema.d.ts +0 -11
  55. package/dist/specification/scripts/to-json-schema.d.ts.map +0 -1
  56. package/dist/specification/scripts/to-json-schema.js.map +0 -1
@@ -4,6 +4,16 @@ exports.getCardDefinitionNames = getCardDefinitionNames;
4
4
  exports.addModelsEnum = addModelsEnum;
5
5
  exports.generateOverviewPageSchemaV2 = generateOverviewPageSchemaV2;
6
6
  const common_1 = require("../../common");
7
+ const DEPRECATED_PROPERTIES = [
8
+ {
9
+ key: 'globalFilterEntityType',
10
+ since: '',
11
+ deprecated: {
12
+ since: '1.54.0',
13
+ text: 'Use globalFilterEntitySet instead.'
14
+ }
15
+ }
16
+ ];
7
17
  /**
8
18
  * Method returns array of card definition names.
9
19
  * @param genericSchema - Generic schema of Overview Page.
@@ -48,6 +58,38 @@ function addModelsEnum(appSchema, manifest) {
48
58
  property['$ref'] = common_1.DEFINITION_LINK_PREFIX + 'CardModel';
49
59
  }
50
60
  }
61
+ /**
62
+ * Sets warning messages for the deprecated properties.
63
+ *
64
+ * @param appSchema - the app specific schema that shall get enhanced
65
+ * @param manifest - manifest.json of the app
66
+ */
67
+ function markDeprecatedProperties(appSchema, manifest) {
68
+ const schemaProperties = appSchema.properties;
69
+ for (const property in DEPRECATED_PROPERTIES) {
70
+ const deprecatedProperty = DEPRECATED_PROPERTIES[property];
71
+ const key = deprecatedProperty.key;
72
+ // Set warning messages for deprecated properties
73
+ if (schemaProperties[key]) {
74
+ schemaProperties[key]['messages'] = [
75
+ {
76
+ text: (0, common_1.getTextForDeprecated)(key, {
77
+ since: deprecatedProperty.since,
78
+ deprecated: {
79
+ since: deprecatedProperty.deprecated.since,
80
+ text: deprecatedProperty.deprecated.text
81
+ }
82
+ })
83
+ }
84
+ ];
85
+ }
86
+ // Hide deprecated undefined properties
87
+ const manifestOVPSection = manifest?.['sap.ovp'];
88
+ if (manifestOVPSection && !manifestOVPSection[key]) {
89
+ schemaProperties[key]['hidden'] = true;
90
+ }
91
+ }
92
+ }
51
93
  /**
52
94
  * Generates an app specific schema out of the generic schema.
53
95
  * Generic types are replaced by information from the app manifest.
@@ -63,6 +105,7 @@ function generateOverviewPageSchemaV2(genericSchema, manifest) {
63
105
  appSchema['properties']['cards']['propertyNames'] = {
64
106
  pattern: '^[a-zA-Z0-9_\\.\\-]+$'
65
107
  };
108
+ markDeprecatedProperties(appSchema, manifest);
66
109
  // Enhance 'model' property with enum entries
67
110
  addModelsEnum(appSchema, manifest);
68
111
  return appSchema;
@@ -1 +1 @@
1
- {"version":3,"file":"overviewPage.js","sourceRoot":"","sources":["../../../../../../src/sync/v2/generate/overviewPage.ts"],"names":[],"mappings":";;AAUA,wDAaC;AAOD,sCAuBC;AAWD,oEASC;AAxED,yCAAuE;AAGvE;;;;;GAKG;AACH,SAAgB,sBAAsB,CAAC,aAAqB;IACxD,oCAAoC;IACpC,MAAM,UAAU,GAAG,aAAa,CAAC,YAAY,CAAC,CAAC;IAC/C,MAAM,cAAc,GAChB,CAAC,UAAU,CAAC,OAAO,CAAC;QAChB,UAAU,CAAC,OAAO,CAAC,CAAC,sBAAsB,CAAC;QAC3C,UAAU,CAAC,OAAO,CAAC,CAAC,sBAAsB,CAAC,CAAC,OAAO,CAAC,CAAC;QACzD,EAAE,CAAC;IACP,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC,YAAoB,EAAE,EAAE;QAC/C,cAAc;QACd,MAAM,QAAQ,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACjD,OAAO,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;AACP,CAAC;AAED;;;;GAIG;AACH,SAAgB,aAAa,CAAC,SAAqB,EAAE,QAAkB;IACnE,MAAM,WAAW,GAAG,CAAC,QAAQ,IAAI,QAAQ,CAAC,SAAS,CAAC,IAAI,QAAQ,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;IAC/F,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC7C,MAAM,MAAM,GAAG,CAAC,QAAQ,IAAI,QAAQ,CAAC,SAAS,CAAC,IAAI,QAAQ,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACrF,IAAI,UAAU,GAAG,EAAE,CAAC;IACpB,UAAU,GAAG,UAAU,CAAC,MAAM,CAC1B,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAE,MAAM,CAAC,KAAK,CAAsB,CAAC,UAAU,CAAC,CAAC,CAC9G,CAAC;IAEF,cAAc;IACd,MAAM,UAAU,GAAG,SAAS,CAAC,WAAyB,CAAC;IACvD,UAAU,CAAC,WAAW,CAAC,GAAG;QACtB,IAAI,EAAE,QAAQ;KACjB,CAAC;IACF,IAAA,wBAAe,EAAC,UAAU,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC;IAErD,oCAAoC;IACpC,MAAM,KAAK,GAAG,sBAAsB,CAAC,SAAS,CAAC,CAAC;IAChD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACvB,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC;QACzD,OAAO,QAAQ,CAAC,IAAI,CAAC;QACrB,QAAQ,CAAC,MAAM,CAAC,GAAG,+BAAsB,GAAG,WAAW,CAAC;IAC5D,CAAC;AACL,CAAC;AAED;;;;;;;;GAQG;AACH,SAAgB,4BAA4B,CAAC,aAAqB,EAAE,QAAkB;IAClF,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC;IAC5D,kCAAkC;IAClC,SAAS,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,eAAe,CAAC,GAAG;QAChD,OAAO,EAAE,uBAAuB;KACnC,CAAC;IACF,6CAA6C;IAC7C,aAAa,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IACnC,OAAO,SAAS,CAAC;AACrB,CAAC"}
1
+ {"version":3,"file":"overviewPage.js","sourceRoot":"","sources":["../../../../../../src/sync/v2/generate/overviewPage.ts"],"names":[],"mappings":";;AAoBA,wDAaC;AAOD,sCAuBC;AA4CD,oEAUC;AApHD,yCAA6F;AAG7F,MAAM,qBAAqB,GAAG;IAC1B;QACI,GAAG,EAAE,wBAAwB;QAC7B,KAAK,EAAE,EAAE;QACT,UAAU,EAAE;YACR,KAAK,EAAE,QAAQ;YACf,IAAI,EAAE,oCAAoC;SAC7C;KACJ;CACJ,CAAC;AACF;;;;;GAKG;AACH,SAAgB,sBAAsB,CAAC,aAAqB;IACxD,oCAAoC;IACpC,MAAM,UAAU,GAAG,aAAa,CAAC,YAAY,CAAC,CAAC;IAC/C,MAAM,cAAc,GAChB,CAAC,UAAU,CAAC,OAAO,CAAC;QAChB,UAAU,CAAC,OAAO,CAAC,CAAC,sBAAsB,CAAC;QAC3C,UAAU,CAAC,OAAO,CAAC,CAAC,sBAAsB,CAAC,CAAC,OAAO,CAAC,CAAC;QACzD,EAAE,CAAC;IACP,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC,YAAoB,EAAE,EAAE;QAC/C,cAAc;QACd,MAAM,QAAQ,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACjD,OAAO,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;AACP,CAAC;AAED;;;;GAIG;AACH,SAAgB,aAAa,CAAC,SAAqB,EAAE,QAAkB;IACnE,MAAM,WAAW,GAAG,CAAC,QAAQ,IAAI,QAAQ,CAAC,SAAS,CAAC,IAAI,QAAQ,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;IAC/F,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC7C,MAAM,MAAM,GAAG,CAAC,QAAQ,IAAI,QAAQ,CAAC,SAAS,CAAC,IAAI,QAAQ,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACrF,IAAI,UAAU,GAAG,EAAE,CAAC;IACpB,UAAU,GAAG,UAAU,CAAC,MAAM,CAC1B,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAE,MAAM,CAAC,KAAK,CAAsB,CAAC,UAAU,CAAC,CAAC,CAC9G,CAAC;IAEF,cAAc;IACd,MAAM,UAAU,GAAG,SAAS,CAAC,WAAyB,CAAC;IACvD,UAAU,CAAC,WAAW,CAAC,GAAG;QACtB,IAAI,EAAE,QAAQ;KACjB,CAAC;IACF,IAAA,wBAAe,EAAC,UAAU,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC;IAErD,oCAAoC;IACpC,MAAM,KAAK,GAAG,sBAAsB,CAAC,SAAS,CAAC,CAAC;IAChD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACvB,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC;QACzD,OAAO,QAAQ,CAAC,IAAI,CAAC;QACrB,QAAQ,CAAC,MAAM,CAAC,GAAG,+BAAsB,GAAG,WAAW,CAAC;IAC5D,CAAC;AACL,CAAC;AAED;;;;;GAKG;AACH,SAAS,wBAAwB,CAAC,SAAqB,EAAE,QAAkB;IACvE,MAAM,gBAAgB,GAAG,SAAS,CAAC,UAAU,CAAC;IAC9C,KAAK,MAAM,QAAQ,IAAI,qBAAqB,EAAE,CAAC;QAC3C,MAAM,kBAAkB,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC;QAC3D,MAAM,GAAG,GAAG,kBAAkB,CAAC,GAAG,CAAC;QACnC,iDAAiD;QACjD,IAAI,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC;YACxB,gBAAgB,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,GAAG;gBAChC;oBACI,IAAI,EAAE,IAAA,6BAAoB,EAAC,GAAG,EAAE;wBAC5B,KAAK,EAAE,kBAAkB,CAAC,KAAK;wBAC/B,UAAU,EAAE;4BACR,KAAK,EAAE,kBAAkB,CAAC,UAAU,CAAC,KAAK;4BAC1C,IAAI,EAAE,kBAAkB,CAAC,UAAU,CAAC,IAAI;yBAC3C;qBACJ,CAAC;iBACL;aACJ,CAAC;QACN,CAAC;QACD,uCAAuC;QACvC,MAAM,kBAAkB,GAAG,QAAQ,EAAE,CAAC,SAAS,CAAC,CAAC;QACjD,IAAI,kBAAkB,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC;YACjD,gBAAgB,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;QAC3C,CAAC;IACL,CAAC;AACL,CAAC;AAED;;;;;;;;GAQG;AACH,SAAgB,4BAA4B,CAAC,aAAqB,EAAE,QAAkB;IAClF,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC;IAC5D,kCAAkC;IAClC,SAAS,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,eAAe,CAAC,GAAG;QAChD,OAAO,EAAE,uBAAuB;KACnC,CAAC;IACF,wBAAwB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC9C,6CAA6C;IAC7C,aAAa,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IACnC,OAAO,SAAS,CAAC;AACrB,CAAC"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * This file provides a function that generically creates a page specific schema out of a generic schema for a page
3
+ * of a FE v2 app (function getAdaptedSchema).
4
+ * In addition to that it exposes some generic helper functions that can be used to configure the generation process.
5
+ * Unit tests for this class are located in test.unit.genericSchemaHandling.schemaAdaptation.test.ts
6
+ */
7
+ import type { Definition } from 'typescript-json-schema';
8
+ import type { AccessorPath, ExtensionLogger, FileData, Manifest } from '@sap/ux-specification-types';
9
+ import type { SyncRuleProvider } from '@sap/ux-specification-types/src';
10
+ /**
11
+ * An instance of this type describes a page within an FE v2 app. It also includes all artifacts that are needed to build the schema for that page.
12
+ *
13
+ * @property appId - id of the app. Note that this should not be taken from the manifest, since the manifest may still contain a placeholder.
14
+ * @property manifest - manifest of the FE v2 app
15
+ * @property pagePath - page path identifying the page. See getManifestPathFromPagePath.
16
+ * @property annotations - the annotations relevant for this page
17
+ * @property fragments - fragments defined for the app
18
+ */
19
+ export type PageSpec = {
20
+ appId: string;
21
+ manifest: Manifest;
22
+ pagePath: AccessorPath;
23
+ annotations: FileData[];
24
+ fragments?: FileData[];
25
+ };
26
+ /**
27
+ * An instance of this type provides the rules how a specific schema can be generated.
28
+ *
29
+ * @property genericSchema - the generic schema that is used as basis for the specific schema
30
+ * @property syncRuleProvider - the class that gives access to the top level sync rule and the top-level properties of the schema
31
+ */
32
+ export type SpecificSchemaGenerationInfo = {
33
+ genericSchema: Definition;
34
+ syncRuleProvider: SyncRuleProvider;
35
+ };
36
+ /**
37
+ * An instance of this type allows to get the rules how to generate a specific schema for all supported page types.
38
+ *
39
+ * @param componentName - name of the template component describing the page
40
+ * @returns the information how a page specific schema for that page should be created (resp. undefined if componentName does not specify a supported page type)
41
+ */
42
+ export type GenericSchemaInfoProvider = (componentName: string) => SpecificSchemaGenerationInfo | undefined;
43
+ /**
44
+ * Creates a page-specific schema for an FE v2 app page.
45
+ * For this purpose it takes an instance of the generic schema for the page type.
46
+ * The transformation into the specific schema is controlled by syncRules (in particular the property elementAdapter).
47
+ * The generated schema will contain information how its properties are mapped into manifest properties resp. flex changes.
48
+ * - manifest properties contain properties `artifactType: "Manifest"` and `manifestPath: AccessorSpec`.
49
+ * In rare cases an additional non-standard mapping needs to be applied when moving values back and forth between manifest
50
+ * and configuration. For such cases a conversionExit specification is added to the schema as well.
51
+ * - flexChanges contain properties `artifactType: "FlexChange", `controlId` and `controlType`.
52
+ *
53
+ * @param pageSpec - the page for which the schema should be generated
54
+ * @param getGenericSchemaInfo - function providing base data for schema generation process (template component dependent)
55
+ * @param logger - log information during schema generation process
56
+ * @returns page-specific schema
57
+ */
58
+ export declare function getAdaptedSchema(pageSpec: PageSpec, getGenericSchemaInfo: GenericSchemaInfoProvider, logger?: ExtensionLogger): Definition;
59
+ //# sourceMappingURL=schemaAdaptation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemaAdaptation.d.ts","sourceRoot":"","sources":["../../../../../../src/sync/v2/generate/schemaAdaptation.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,UAAU,EAAuB,MAAM,wBAAwB,CAAC;AAG9E,OAAO,KAAK,EACR,YAAY,EACZ,eAAe,EACf,QAAQ,EAER,QAAQ,EAEX,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAIR,gBAAgB,EACnB,MAAM,iCAAiC,CAAC;AAoVzC;;;;;;;;GAQG;AACH,MAAM,MAAM,QAAQ,GAAG;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,QAAQ,CAAC;IACnB,QAAQ,EAAE,YAAY,CAAC;IACvB,WAAW,EAAE,QAAQ,EAAE,CAAC;IACxB,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;CAC1B,CAAC;AAEF;;;;;GAKG;AACH,MAAM,MAAM,4BAA4B,GAAG;IACvC,aAAa,EAAE,UAAU,CAAC;IAC1B,gBAAgB,EAAE,gBAAgB,CAAC;CACtC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,MAAM,yBAAyB,GAAG,CAAC,aAAa,EAAE,MAAM,KAAK,4BAA4B,GAAG,SAAS,CAAC;AAE5G;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,gBAAgB,CAC5B,QAAQ,EAAE,QAAQ,EAClB,oBAAoB,EAAE,yBAAyB,EAC/C,MAAM,CAAC,EAAE,eAAe,GACzB,UAAU,CAyEZ"}
@@ -0,0 +1,360 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getAdaptedSchema = getAdaptedSchema;
4
+ const common_1 = require("../../common");
5
+ const ux_specification_types_1 = require("@sap/ux-specification-types");
6
+ const decorators_1 = require("../../common/decoration/decorators");
7
+ const utils_1 = require("./utils");
8
+ const utils_2 = require("../utils");
9
+ const i18n_1 = require("../../../i18n/i18n");
10
+ /**
11
+ * Checks whether a schema element contains an anyOf-property. If yes, all types directly or indirectly referred by one of the
12
+ * branches of the anyOf are added to a collection of referred type names.
13
+ *
14
+ * @param element - the schema element to be processed
15
+ * @param globalTypes - info about global types defined in the schema. Will possibly be extended by this function.
16
+ */
17
+ function addAnyOfToReferredTypes(element, globalTypes) {
18
+ if (element.anyOf) {
19
+ element.anyOf.forEach(function (innerElement) {
20
+ addReferredTypesFromElement(innerElement, globalTypes);
21
+ });
22
+ }
23
+ }
24
+ /**
25
+ * Checks whether the items property of a given schema element is a single Definition. If yes, this Definition is returned.
26
+ * In all other cases allowed by the type (boolean, array of BooleanOrDefinition, undefined) return undefined.
27
+ * Note that ignoring arrays is justified by the fact that the schemas generated by Specification never have items pointing to arrays of DefinitionOrBoolean.
28
+ *
29
+ * @param element - the schema element to be checked
30
+ * @returns the single Definition specified by the items-property of element resp. undefined
31
+ */
32
+ function getSingleItem(element) {
33
+ return typeof element.items !== 'object' || Array.isArray(element.items) ? undefined : element.items;
34
+ }
35
+ /**
36
+ * Recursively analyzes a given schema element and adds the names of all types referred by it to the collection of referred type names.
37
+ * Note that properties and items defined inline will not be considered.
38
+ *
39
+ * @param element - the schema element to be processed. Maybe faulty or boolean -> nothing to do.
40
+ * @param globalTypes - info about global types defined in the schema. Will possibly be extended by this function.
41
+ */
42
+ function addReferredTypesFromElement(element, globalTypes) {
43
+ if (typeof element !== 'object') {
44
+ // boolean or undefined -> no types referred here
45
+ return;
46
+ }
47
+ // Now definition is actually an instance of Definition
48
+ const refType = (0, common_1.getRefType)(element);
49
+ if (refType) {
50
+ addReferredTypesFromType(refType, globalTypes);
51
+ }
52
+ addAnyOfToReferredTypes(element, globalTypes);
53
+ addReferredTypesFromElement(element.additionalProperties, globalTypes);
54
+ // The schemas we are handling do not provide items as arrays directly:
55
+ addReferredTypesFromElement(getSingleItem(element), globalTypes);
56
+ }
57
+ /**
58
+ * Adds a globally defined type to the collection of referred type names and does the same for all its (directly or indirectly) referred types.
59
+ * Note that this one (in contrast to addReferredTypesFromElement) will also observe properties defined inline and (if no properties are available)
60
+ * items that are defined inline.
61
+ *
62
+ * @param type - Name of the globally defined type
63
+ * @param globalTypes - info about global types defined in the schema. Will possibly be extended by this function.
64
+ */
65
+ function addReferredTypesFromType(type, globalTypes) {
66
+ globalTypes.referredTypeNames.add(type);
67
+ const typeDefinition = globalTypes.types[type];
68
+ addReferredTypesFromElement(typeDefinition, globalTypes);
69
+ const properties = typeDefinition.properties;
70
+ if (properties) {
71
+ Object.values(properties).forEach((propertyDef) => addReferredTypesFromElement(propertyDef, globalTypes));
72
+ }
73
+ else {
74
+ addReferredTypesFromElement(getSingleItem(typeDefinition), globalTypes);
75
+ }
76
+ addReferredTypesFromElement(typeDefinition.additionalProperties, globalTypes);
77
+ }
78
+ /**
79
+ * Processes an element which will be added to the specific schema based on an AdaptationInfo.
80
+ *
81
+ * @param adaptationInfo - configures the process. If undefined the element should remain unchanged.
82
+ * @param element - the schema element to be processed. Maybe faulty or boolean -> nothing to do.
83
+ * @param generateParameters - generic parameters for schema generation
84
+ * @param params - contains information specific for the current adjustment step. Property specificParams has been set by the previous processing level (see AdaptationInfo.specificParams).
85
+ * @param globalTypes - info about global types defined in the schema. Will possibly be extended by this function.
86
+ */
87
+ function applyAdaptationInfoToElement(adaptationInfo, element, generateParameters, params, globalTypes) {
88
+ if (typeof element !== 'object') {
89
+ // boolean or undefined -> no adaptation possible
90
+ return;
91
+ }
92
+ // Now element is actually an instance of Definition
93
+ // Two cases:
94
+ // 1) element is specified by a global type via the #ref attribute
95
+ // 2) element contains inline definition
96
+ const refType = (0, common_1.getRefType)(element);
97
+ if (refType) {
98
+ // case 1
99
+ // case 1a: global type is already defined in the generic schema and thus part of globalTypes.types
100
+ // case 1b: global type is not yet defined in the generic schema. Then we expect its definition to be provided by adaptationInfo.
101
+ let refTypeDefinition = globalTypes.types[refType];
102
+ if (!refTypeDefinition) {
103
+ // case 1b: Need to make type available globally
104
+ refTypeDefinition = adaptationInfo?.refTypeDefinition;
105
+ globalTypes.types[refType] = refTypeDefinition;
106
+ }
107
+ if (adaptationInfo) {
108
+ let targetTypeDefinition;
109
+ if (adaptationInfo.suffix) {
110
+ // element should not point to the same global type as in the generic schema, but to an adapted type.
111
+ // See jsdoc of property suffix for more details.
112
+ const specificTypeName = `${refType}<${adaptationInfo.suffix}>`;
113
+ element.$ref = (0, common_1.getDefinitionsRef)(specificTypeName);
114
+ targetTypeDefinition = structuredClone(refTypeDefinition);
115
+ // Add the newly defined type to the list of global types
116
+ globalTypes.types[specificTypeName] = targetTypeDefinition;
117
+ // and ensure that this type is not deleted as an unused type at the end of the process
118
+ globalTypes.referredTypeNames.add(specificTypeName);
119
+ }
120
+ else {
121
+ // The global type can be used unmodified
122
+ globalTypes.referredTypeNames.add(refType);
123
+ targetTypeDefinition = refTypeDefinition;
124
+ }
125
+ const newParams = {
126
+ pageInfo: params.pageInfo,
127
+ specificParams: adaptationInfo.specificParams || params.specificParams
128
+ };
129
+ // step down to the next hierarchy level
130
+ adjustElement(generateParameters, newParams, adaptationInfo.syncRuleProvider, targetTypeDefinition, globalTypes);
131
+ }
132
+ else {
133
+ // No adaptationInfo -> The subtree under the referred type will be taken over unchanged
134
+ // Therefore, we simply need to add all types in this subtree to collection of referred type names to ensure that they are not removed from the schema at the end of the process
135
+ addReferredTypesFromType(refType, globalTypes);
136
+ }
137
+ }
138
+ else {
139
+ // case 2: directly step down to the next hierarchy level
140
+ adjustElement(generateParameters, params, adaptationInfo?.syncRuleProvider, element, globalTypes);
141
+ }
142
+ }
143
+ /**
144
+ * This function applies a syncRule to the schema element is has been defined for and returns the instruction how to proceed with the processing.
145
+ *
146
+ * @param generateParameters - generic parameters for schema generation
147
+ * @param params - contains information specific for the current adjustment step. Property specificParams has been set by the previous processing level (see AdaptationInfo.specificParams).
148
+ * @param element - the schema element to be processed.
149
+ * @param syncRule - the syncRule defined for the element (if available)
150
+ * @returns the instruction how to process. If the given element should be omitted it returns undefined.
151
+ */
152
+ function applySyncRuleToElement(generateParameters, params, element, syncRule) {
153
+ const adapter = syncRule?.elementAdapter;
154
+ // If no elementAdapter is available element should be taken over unchanged. This is expressed by an empty ProcessingRule.
155
+ const processingRule = adapter ? adapter(element, params, generateParameters) : {};
156
+ return processingRule;
157
+ }
158
+ /**
159
+ * This function is the heart of the implementation of getAdaptedSchema (see below). It recursively traverses the passed schema element
160
+ * and adjusts it according to the corresponding syncRule.
161
+ * Note that there are two flavours of syncRules:
162
+ * - syncRules valid for a class as a whole
163
+ * - syncRules valid for a specific property of a class
164
+ *
165
+ * @param generateParameters - generic parameters for schema generation
166
+ * @param params - contains information specific for the current adjustment step. Property specificParams has been set by the previous processing level(s) (see AdaptationInfo.specificParams).
167
+ * @param syncRuleProvider - constructor of the class which has the syncRule for the current adjustment step
168
+ * @param element - the section of the specific schema which is currently processed
169
+ * Following properties of element will be analyzed for getting schemas on the next hierarchy level:
170
+ * 'properties', 'items' (only if 'properties' is not there), 'additionalProperties'
171
+ * @param globalTypes - info about global types defined in the schema. Will possibly be extended by this function.
172
+ */
173
+ function adjustElement(generateParameters, params, syncRuleProvider, element, globalTypes) {
174
+ // First check the syncRule of the class given by SyncRuleProvider.
175
+ const generalSyncRule = (0, decorators_1.getReflectTypeMetadata)(syncRuleProvider);
176
+ const generalProcessingRule = applySyncRuleToElement(generateParameters, params, element, generalSyncRule);
177
+ if (!generalProcessingRule) {
178
+ // syncRule has expressed that this subtree can be ignored.
179
+ // This is added just for completeness: Normally, this will not be expressed on the type level but on the level of the property referring the type.
180
+ return;
181
+ }
182
+ // Now generalProcessingRule contains the information needed to process the content of element
183
+ // First process the additionalProperties section of element (if required)
184
+ applyAdaptationInfoToElement(generalProcessingRule.additionalPropertiesAdaptation, element.additionalProperties, generateParameters, params, globalTypes);
185
+ // if generalProcessingRule has a more specific version of specificParams use it when processing the subtree
186
+ const generalParams = {
187
+ pageInfo: params.pageInfo,
188
+ specificParams: generalProcessingRule.referenceAdaptation?.specificParams || params.specificParams
189
+ };
190
+ // Now process either the properties of element or (if properties is absent) the items.
191
+ // In the second case we treat it as if element would have exactly one property (namely 'items') pointing to the content of element.items
192
+ let properties = element.properties; // a map where the keys are the properties we want to handle and the values are the corresponding elements
193
+ let propertyCollection; // the map which should finally be updated for all the properties we want to handle
194
+ if (properties) {
195
+ propertyCollection = properties;
196
+ }
197
+ else {
198
+ const items = getSingleItem(element);
199
+ if (items) {
200
+ properties = {
201
+ items
202
+ };
203
+ propertyCollection = element;
204
+ }
205
+ else {
206
+ // Nothing to process -> we are done
207
+ return;
208
+ }
209
+ }
210
+ // Now we process the the prepared properties.
211
+ // This will be done by an instance of type ProcessingRuleProvider which is either taken from
212
+ // generalProcessingRule.referenceAdaptation (dynamic case) or created on the fly from the syncRules defined for
213
+ // the properties of the class which syncRuleProvider is a constructor for (static case).
214
+ let syncRuleProviderInstance; // used for the static case. Instance of the class given by syncRuleProvider. Initialized on demand (i.e. for the first property).
215
+ const processingRuleProvider = generalProcessingRule.referenceAdaptation?.processingRuleProvider || // the dynamic case
216
+ function (property, element) {
217
+ // the static case
218
+ syncRuleProviderInstance = syncRuleProviderInstance || (syncRuleProvider && new syncRuleProvider());
219
+ const syncRule = (0, decorators_1.getReflectMetadata)(syncRuleProviderInstance, property);
220
+ const processingRule = applySyncRuleToElement(generateParameters, generalParams, element, syncRule);
221
+ return processingRule;
222
+ };
223
+ for (const property in properties) {
224
+ const propertyDef = properties[property];
225
+ if (typeof propertyDef !== 'object') {
226
+ // For type safety handle the case that a property points to a boolean. Should actually not happen for schemas generated by the Specification.
227
+ propertyCollection[property] = propertyDef;
228
+ continue;
229
+ }
230
+ const propertyCopy = { ...propertyDef }; // shallow copy of the schema value for property
231
+ // Task of the next call is to modify propertyCopy (if needed) and return a ProcessingRule describing how this property should be processed further
232
+ const processingRule = processingRuleProvider(property, propertyCopy);
233
+ if (processingRule) {
234
+ // the property should be part of the schema. Corresponding definition should be propertyCopy. Now we need to evaluate the content of the processingRule.
235
+ // First perform some top-level tasks:
236
+ if (processingRule.controlId) {
237
+ propertyCopy[ux_specification_types_1.SchemaTag.controlId] = `${params.pageInfo.controlId}--${processingRule.controlId}`; // the processing rule only provides the (view-)local id -> make a global id out of it
238
+ }
239
+ else if (processingRule.manifestPath) {
240
+ propertyCopy[ux_specification_types_1.SchemaTag.artifactType] = 'Manifest';
241
+ propertyCopy[ux_specification_types_1.SchemaTag.manifestPath] = processingRule.manifestPath;
242
+ }
243
+ addAnyOfToReferredTypes(propertyCopy, globalTypes);
244
+ // Now we are looking into the definition of the property itself and trigger the processing of the subtree
245
+ applyAdaptationInfoToElement(processingRule.referenceAdaptation, propertyCopy, generateParameters, generalParams, globalTypes);
246
+ // In case the definition of the property possesses additionalProperties
247
+ // (Note that additionalProperties defined on type level have already been processed above):
248
+ applyAdaptationInfoToElement(processingRule.additionalPropertiesAdaptation, propertyCopy.additionalProperties, generateParameters, generalParams, globalTypes);
249
+ // In case the definition of the property directly contains an items-element that needs to be processed further
250
+ // (Note that items being defined on type level will be treated like a single property 'items' due to the logic above):
251
+ applyAdaptationInfoToElement(processingRule.itemsAdaptation, getSingleItem(propertyCopy), generateParameters, generalParams, globalTypes);
252
+ // Finally set the propertyCopy as the new definition for the current property
253
+ propertyCollection[property] = propertyCopy;
254
+ }
255
+ else {
256
+ // no ProcessingRule indicates that the property should be removed from the schema
257
+ delete propertyCollection[property];
258
+ }
259
+ }
260
+ }
261
+ /**
262
+ * This function replicates the logic of function fnDetermineViewId in TemplateComponent of FE coding.
263
+ * It determines the id of the view that contains one page of an FE app.
264
+ *
265
+ * @param appId - id of the app
266
+ * @param componentName - name of the template component (that identifies the floor plan)
267
+ * @param entitySet - name of the entity set of a page
268
+ * @returns the fully qualified view id
269
+ */
270
+ function getViewId(appId, componentName, entitySet) {
271
+ const componentPath = componentName.split('.');
272
+ const templateShortName = componentPath[componentPath.length - 1];
273
+ // Replicate logic how oComponentData.templateName has been defined in FE coding. All follow the same pattern with exception of OP.
274
+ const templateName = componentName + '.view.' + (templateShortName === 'ObjectPage' ? 'Details' : templateShortName);
275
+ return `${appId}::${templateName}::${entitySet}`;
276
+ }
277
+ /**
278
+ * Creates a page-specific schema for an FE v2 app page.
279
+ * For this purpose it takes an instance of the generic schema for the page type.
280
+ * The transformation into the specific schema is controlled by syncRules (in particular the property elementAdapter).
281
+ * The generated schema will contain information how its properties are mapped into manifest properties resp. flex changes.
282
+ * - manifest properties contain properties `artifactType: "Manifest"` and `manifestPath: AccessorSpec`.
283
+ * In rare cases an additional non-standard mapping needs to be applied when moving values back and forth between manifest
284
+ * and configuration. For such cases a conversionExit specification is added to the schema as well.
285
+ * - flexChanges contain properties `artifactType: "FlexChange", `controlId` and `controlType`.
286
+ *
287
+ * @param pageSpec - the page for which the schema should be generated
288
+ * @param getGenericSchemaInfo - function providing base data for schema generation process (template component dependent)
289
+ * @param logger - log information during schema generation process
290
+ * @returns page-specific schema
291
+ */
292
+ function getAdaptedSchema(pageSpec, getGenericSchemaInfo, logger) {
293
+ (0, i18n_1.initI18n)(); // ensure that i18n texts can be resolved during the process
294
+ const templateType = (0, common_1.getTemplateTypeFromManifest)(pageSpec.manifest, ux_specification_types_1.FioriElementsVersion.v2, logger);
295
+ if (!templateType || templateType === ux_specification_types_1.TemplateType.OverviewPageV2) {
296
+ return; // not supported (yet)
297
+ }
298
+ const manifestPath = (0, utils_2.getManifestPathFromPagePath)(pageSpec.pagePath, false);
299
+ const { parent: pageDefinition } = (0, utils_2.getManifestPropertyByPath)(pageSpec.manifest, manifestPath);
300
+ if (!pageDefinition) {
301
+ return; // no page definition found at the specified path
302
+ }
303
+ // Now we know that pageDefinition is an object. Check basic prerequisites on its content:
304
+ const componentOfPage = pageDefinition['component'];
305
+ if ((0, utils_1.hasPropertyTypeError)(pageDefinition, 'entitySet', logger, 'string', true) ||
306
+ (0, utils_1.hasPropertyTypeError)(componentOfPage, 'name', logger, 'string', true)) {
307
+ return; // not a valid page definition
308
+ }
309
+ const entitySet = pageDefinition['entitySet']; // type ensured above
310
+ const componentName = componentOfPage['name']; // type ensured above
311
+ const schemaGenerationInfo = getGenericSchemaInfo(componentName);
312
+ const genericSchema = schemaGenerationInfo?.genericSchema;
313
+ const syncRuleProvider = schemaGenerationInfo?.syncRuleProvider;
314
+ if (!syncRuleProvider || !genericSchema) {
315
+ return genericSchema; // no adaptation possible
316
+ }
317
+ const serviceAVT = (0, common_1.parseAndMergeAndConvert)(pageSpec.annotations, logger);
318
+ const entitySetDefinition = serviceAVT.entitySets?.find((entitySetDefinition) => entitySetDefinition.name === entitySet);
319
+ if (!entitySetDefinition) {
320
+ return genericSchema; // not possible to adapt the schema if entity set is not defined
321
+ }
322
+ // Create a defensive copy of the generic schema that will be modified according to the sync rules and returned as result of this function
323
+ const mySchema = structuredClone(genericSchema);
324
+ const controlId = getViewId(pageSpec.appId, componentName, entitySet);
325
+ const pageInfo = {
326
+ appId: pageSpec.appId,
327
+ componentName,
328
+ entitySet,
329
+ controlId,
330
+ pagePath: pageSpec.pagePath
331
+ };
332
+ const params = {
333
+ pageInfo
334
+ };
335
+ const generateParameters = {
336
+ templateType,
337
+ manifest: pageSpec.manifest,
338
+ serviceAVT,
339
+ fioriElementsVersion: ux_specification_types_1.FioriElementsVersion.v2,
340
+ entitySet: entitySetDefinition,
341
+ fragments: pageSpec.fragments,
342
+ logger,
343
+ entityType: entitySetDefinition.entityType
344
+ };
345
+ const globalTypes = {
346
+ types: mySchema.definitions, // our generic schemas do not refer a type that is a boolean
347
+ referredTypeNames: new Set()
348
+ };
349
+ // Now adjust mySchema based on the input parameters.
350
+ // Note that this will also ensure that globalTypes.referredTypeNames is the collection of global type names that are referred within the schema.
351
+ adjustElement(generateParameters, params, syncRuleProvider, mySchema, globalTypes);
352
+ // Remove all global type definitions which are not used within the generated schema.
353
+ for (const typeName in mySchema.definitions) {
354
+ if (!globalTypes.referredTypeNames.has(typeName)) {
355
+ delete mySchema.definitions[typeName];
356
+ }
357
+ }
358
+ return mySchema;
359
+ }
360
+ //# sourceMappingURL=schemaAdaptation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemaAdaptation.js","sourceRoot":"","sources":["../../../../../../src/sync/v2/generate/schemaAdaptation.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,12 @@
1
1
  import type { Definition } from 'typescript-json-schema';
2
2
  import type { MetadataInstanceInterface } from '../../common/decoration/factory';
3
- import type { v2, PageTypeV2, PageTypeV4, FileData } from '@sap/ux-specification-types';
3
+ import type { v2, PageTypeV2, PageTypeV4, FileData, GenerateAppSchemaParameters } from '@sap/ux-specification-types';
4
4
  import type { AnnotationTerm, EntitySet, EntityType } from '@sap-ux/vocabularies-types';
5
5
  import type { LineItem, SelectionFields } from '@sap-ux/vocabularies-types/vocabularies/UI';
6
+ import type * as Edm from '@sap-ux/vocabularies-types/Edm';
7
+ import type { EntityTypeAnnotations_UI } from '@sap-ux/vocabularies-types/vocabularies/UI_Edm';
6
8
  import { ActionTypeV2 } from '../types';
9
+ import type { ExtensionLogger } from '../../..';
7
10
  /**
8
11
  * Processes a LineItem record of type DataFieldForAction and DataFieldForIntentBasedNavigation during app schema generation
9
12
  * @param appSchema - the app specific schema that shall get enhanced
@@ -129,4 +132,26 @@ export declare function addStandardHeaderActions(appSchema: Definition, isOP?: b
129
132
  * @param {Definition} actions - optional standard actions definition
130
133
  */
131
134
  export declare function addStandardFooterActionsOP(appSchema: Definition, actions: Definition): void;
135
+ /**
136
+ * Extract entity type and ui annotations for a entity set and log an error in case that either of these objects does not exist
137
+ * @param {GenerateAppSchemaParameters} generateParameters list of API input parameters
138
+ * @returns the entity type and the ui annotations for the given entity set
139
+ */
140
+ export declare function getUIAnnotationForEntitySet(generateParameters: GenerateAppSchemaParameters): {
141
+ entityType?: Edm.EntityType;
142
+ uIAnnotations?: EntityTypeAnnotations_UI;
143
+ };
144
+ /**
145
+ * Type check for properties coming from the manifest.
146
+ *
147
+ * @param parent - the parent object in manifest which may contain the property.
148
+ * @param propertyName - name of the property name to be checked
149
+ * @param logger - a logger which may receive the error message in case a type error is detected
150
+ * @param expectedType - the expected type of the value of the property (if it is not undefined)
151
+ * @param mandatory - specifies handling handling of null and undefined: If parent is null this is always considered an error.
152
+ * undefined value for parent or its specified property is considered an error when parameter mandatory is true.
153
+ * null value for the specified property is considered an error when mandatory is true or the expected type is not 'object'.
154
+ * @returns the information whether a type error was detected.
155
+ */
156
+ export declare function hasPropertyTypeError(parent: unknown, propertyName: string, logger?: ExtensionLogger, expectedType?: string, mandatory?: boolean): boolean;
132
157
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../../src/sync/v2/generate/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AACjF,OAAO,KAAK,EAAE,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAY,MAAM,6BAA6B,CAAC;AAElG,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxF,OAAO,KAAK,EAA0B,QAAQ,EAAE,eAAe,EAAE,MAAM,4CAA4C,CAAC;AAoBpH,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAgExC;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAC9B,SAAS,EAAE,UAAU,EACrB,OAAO,EAAE,UAAU,EACnB,aAAa,EAAE;IAAE,YAAY,MAAC;IAAC,cAAc,MAAC;IAAC,UAAU,MAAC;IAAC,UAAU,EAAE,UAAU,CAAA;CAAE,EACnF,UAAU,EAAE,YAAY,EACxB,WAAW,EAAE,MAAM,GACpB,IAAI,CAiDN;AA8HD;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAC5B,YAAY,EAAE,OAAO,EACrB,SAAS,EAAE,UAAU,EACrB,kBAAkB,EAAE,cAAc,CAAC,QAAQ,CAAC,EAC5C,UAAU,EAAE,UAAU,EACtB,UAAU,CAAC,EAAE,MAAM,EACnB,eAAe,CAAC,EAAE,MAAM,GACzB,IAAI,CAwCN;AAED;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAC1C,SAAS,EAAE,UAAU,EACrB,UAAU,EAAE,UAAU,EACtB,cAAc,EAAE,MAAM,GACvB,IAAI,CAmBN;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CACzB,SAAS,EAAE,UAAU,EACrB,cAAc,EAAE,MAAM,EACtB,IAAI,CAAC,EAAE,EAAE,CAAC,cAAc,EACxB,OAAO,CAAC,EAAE,MAAM,GACjB,IAAI,CAqBN;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAC3B,SAAS,EAAE,UAAU,EACrB,SAAS,EAAE,QAAQ,EAAE,EACrB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,MAAM,GACvB,IAAI,CA+BN;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,wBAAwB,CACpC,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,EAAE,CAAC,cAAc,EACvB,QAAQ,EAAE,MAAM,EAChB,SAAS,CAAC,EAAE,QAAQ,EAAE,EACtB,2BAA2B,GAAE,MAAqC,EAClE,0BAA0B,GAAE,MAAoC,EAChE,OAAO,CAAC,EAAE,MAAM,GACjB,IAAI,CAcN;AA6LD;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC3B,MAAM,EAAE,MAAM,EACd,gBAAgB,EAAE,MAAM,EACxB,kBAAkB,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,EAC1C,QAAQ,EAAE,UAAU,GAAG,UAAU,EACjC,OAAO,EAAE,yBAAyB,EAClC,aAAa,EAAE,MAAM,EAAE,EACvB,GAAG,CAAC,EAAE,MAAM,GACb,IAAI,CA0BN;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,cAAc,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI,CAQnG;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAC9B,SAAS,EAAE,UAAU,EACrB,yBAAyB,EAAE,cAAc,CAAC,eAAe,CAAC,EAC1D,UAAU,EAAE,UAAU,GACvB,IAAI,CAgDN;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,aAAa,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,UAAU,GAAG,IAAI,CAI/F;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAE5D;AAED;;;;GAIG;AAEH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAE/D;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAE/D;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,UAAU,EAAE,IAAI,UAAQ,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,IAAI,CAsBxG;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,GAAG,IAAI,CAS3F"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../../src/sync/v2/generate/utils.ts"],"names":[],"mappings":"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"}