@odata-effect/odata-effect-generator 0.1.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 (131) hide show
  1. package/Cli/package.json +6 -0
  2. package/LICENSE +21 -0
  3. package/README.md +37 -0
  4. package/bin/package.json +6 -0
  5. package/digester/Digester/package.json +6 -0
  6. package/digester/TypeMapper/package.json +6 -0
  7. package/dist/cjs/Cli.js +95 -0
  8. package/dist/cjs/Cli.js.map +1 -0
  9. package/dist/cjs/bin.js +14 -0
  10. package/dist/cjs/bin.js.map +1 -0
  11. package/dist/cjs/digester/Digester.js +488 -0
  12. package/dist/cjs/digester/Digester.js.map +1 -0
  13. package/dist/cjs/digester/TypeMapper.js +262 -0
  14. package/dist/cjs/digester/TypeMapper.js.map +1 -0
  15. package/dist/cjs/generator/Generator.js +126 -0
  16. package/dist/cjs/generator/Generator.js.map +1 -0
  17. package/dist/cjs/generator/IndexGenerator.js +164 -0
  18. package/dist/cjs/generator/IndexGenerator.js.map +1 -0
  19. package/dist/cjs/generator/ModelsGenerator.js +255 -0
  20. package/dist/cjs/generator/ModelsGenerator.js.map +1 -0
  21. package/dist/cjs/generator/NamingHelper.js +164 -0
  22. package/dist/cjs/generator/NamingHelper.js.map +1 -0
  23. package/dist/cjs/generator/PackageGenerator.js +168 -0
  24. package/dist/cjs/generator/PackageGenerator.js.map +1 -0
  25. package/dist/cjs/generator/QueryModelsGenerator.js +182 -0
  26. package/dist/cjs/generator/QueryModelsGenerator.js.map +1 -0
  27. package/dist/cjs/generator/ServiceFnGenerator.js +258 -0
  28. package/dist/cjs/generator/ServiceFnGenerator.js.map +1 -0
  29. package/dist/cjs/generator/ServiceFnPromiseGenerator.js +182 -0
  30. package/dist/cjs/generator/ServiceFnPromiseGenerator.js.map +1 -0
  31. package/dist/cjs/index.js +38 -0
  32. package/dist/cjs/index.js.map +1 -0
  33. package/dist/cjs/model/DataModel.js +28 -0
  34. package/dist/cjs/model/DataModel.js.map +1 -0
  35. package/dist/cjs/parser/EdmxSchema.js +20 -0
  36. package/dist/cjs/parser/EdmxSchema.js.map +1 -0
  37. package/dist/cjs/parser/XmlParser.js +47 -0
  38. package/dist/cjs/parser/XmlParser.js.map +1 -0
  39. package/dist/dts/Cli.d.ts +9 -0
  40. package/dist/dts/Cli.d.ts.map +1 -0
  41. package/dist/dts/bin.d.ts +3 -0
  42. package/dist/dts/bin.d.ts.map +1 -0
  43. package/dist/dts/digester/Digester.d.ts +33 -0
  44. package/dist/dts/digester/Digester.d.ts.map +1 -0
  45. package/dist/dts/digester/TypeMapper.d.ts +79 -0
  46. package/dist/dts/digester/TypeMapper.d.ts.map +1 -0
  47. package/dist/dts/generator/Generator.d.ts +45 -0
  48. package/dist/dts/generator/Generator.d.ts.map +1 -0
  49. package/dist/dts/generator/IndexGenerator.d.ts +14 -0
  50. package/dist/dts/generator/IndexGenerator.d.ts.map +1 -0
  51. package/dist/dts/generator/ModelsGenerator.d.ts +14 -0
  52. package/dist/dts/generator/ModelsGenerator.d.ts.map +1 -0
  53. package/dist/dts/generator/NamingHelper.d.ts +110 -0
  54. package/dist/dts/generator/NamingHelper.d.ts.map +1 -0
  55. package/dist/dts/generator/PackageGenerator.d.ts +53 -0
  56. package/dist/dts/generator/PackageGenerator.d.ts.map +1 -0
  57. package/dist/dts/generator/QueryModelsGenerator.d.ts +14 -0
  58. package/dist/dts/generator/QueryModelsGenerator.d.ts.map +1 -0
  59. package/dist/dts/generator/ServiceFnGenerator.d.ts +37 -0
  60. package/dist/dts/generator/ServiceFnGenerator.d.ts.map +1 -0
  61. package/dist/dts/generator/ServiceFnPromiseGenerator.d.ts +40 -0
  62. package/dist/dts/generator/ServiceFnPromiseGenerator.d.ts.map +1 -0
  63. package/dist/dts/index.d.ts +101 -0
  64. package/dist/dts/index.d.ts.map +1 -0
  65. package/dist/dts/model/DataModel.d.ts +188 -0
  66. package/dist/dts/model/DataModel.d.ts.map +1 -0
  67. package/dist/dts/parser/EdmxSchema.d.ts +228 -0
  68. package/dist/dts/parser/EdmxSchema.d.ts.map +1 -0
  69. package/dist/dts/parser/XmlParser.d.ts +31 -0
  70. package/dist/dts/parser/XmlParser.d.ts.map +1 -0
  71. package/dist/esm/Cli.js +87 -0
  72. package/dist/esm/Cli.js.map +1 -0
  73. package/dist/esm/bin.js +12 -0
  74. package/dist/esm/bin.js.map +1 -0
  75. package/dist/esm/digester/Digester.js +478 -0
  76. package/dist/esm/digester/Digester.js.map +1 -0
  77. package/dist/esm/digester/TypeMapper.js +248 -0
  78. package/dist/esm/digester/TypeMapper.js.map +1 -0
  79. package/dist/esm/generator/Generator.js +116 -0
  80. package/dist/esm/generator/Generator.js.map +1 -0
  81. package/dist/esm/generator/IndexGenerator.js +157 -0
  82. package/dist/esm/generator/IndexGenerator.js.map +1 -0
  83. package/dist/esm/generator/ModelsGenerator.js +248 -0
  84. package/dist/esm/generator/ModelsGenerator.js.map +1 -0
  85. package/dist/esm/generator/NamingHelper.js +147 -0
  86. package/dist/esm/generator/NamingHelper.js.map +1 -0
  87. package/dist/esm/generator/PackageGenerator.js +156 -0
  88. package/dist/esm/generator/PackageGenerator.js.map +1 -0
  89. package/dist/esm/generator/QueryModelsGenerator.js +175 -0
  90. package/dist/esm/generator/QueryModelsGenerator.js.map +1 -0
  91. package/dist/esm/generator/ServiceFnGenerator.js +251 -0
  92. package/dist/esm/generator/ServiceFnGenerator.js.map +1 -0
  93. package/dist/esm/generator/ServiceFnPromiseGenerator.js +174 -0
  94. package/dist/esm/generator/ServiceFnPromiseGenerator.js.map +1 -0
  95. package/dist/esm/index.js +101 -0
  96. package/dist/esm/index.js.map +1 -0
  97. package/dist/esm/model/DataModel.js +21 -0
  98. package/dist/esm/model/DataModel.js.map +1 -0
  99. package/dist/esm/package.json +4 -0
  100. package/dist/esm/parser/EdmxSchema.js +13 -0
  101. package/dist/esm/parser/EdmxSchema.js.map +1 -0
  102. package/dist/esm/parser/XmlParser.js +37 -0
  103. package/dist/esm/parser/XmlParser.js.map +1 -0
  104. package/generator/Generator/package.json +6 -0
  105. package/generator/IndexGenerator/package.json +6 -0
  106. package/generator/ModelsGenerator/package.json +6 -0
  107. package/generator/NamingHelper/package.json +6 -0
  108. package/generator/PackageGenerator/package.json +6 -0
  109. package/generator/QueryModelsGenerator/package.json +6 -0
  110. package/generator/ServiceFnGenerator/package.json +6 -0
  111. package/generator/ServiceFnPromiseGenerator/package.json +6 -0
  112. package/model/DataModel/package.json +6 -0
  113. package/package.json +157 -0
  114. package/parser/EdmxSchema/package.json +6 -0
  115. package/parser/XmlParser/package.json +6 -0
  116. package/src/Cli.ts +115 -0
  117. package/src/bin.ts +17 -0
  118. package/src/digester/Digester.ts +600 -0
  119. package/src/digester/TypeMapper.ts +181 -0
  120. package/src/generator/Generator.ts +183 -0
  121. package/src/generator/IndexGenerator.ts +189 -0
  122. package/src/generator/ModelsGenerator.ts +344 -0
  123. package/src/generator/NamingHelper.ts +159 -0
  124. package/src/generator/PackageGenerator.ts +176 -0
  125. package/src/generator/QueryModelsGenerator.ts +228 -0
  126. package/src/generator/ServiceFnGenerator.ts +324 -0
  127. package/src/generator/ServiceFnPromiseGenerator.ts +242 -0
  128. package/src/index.ts +114 -0
  129. package/src/model/DataModel.ts +254 -0
  130. package/src/parser/EdmxSchema.ts +308 -0
  131. package/src/parser/XmlParser.ts +47 -0
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Generator for Promise-based service functions.
3
+ *
4
+ * This module generates Promise-based wrappers around the Effect-based
5
+ * service functions, allowing usage in non-Effect environments.
6
+ *
7
+ * @since 1.0.0
8
+ */
9
+ import type { DataModel } from "../model/DataModel.js";
10
+ /**
11
+ * Get the Promise service name (e.g., "ProductsServicePromise").
12
+ */
13
+ export declare const getPromiseServiceName: (entitySetName: string) => string;
14
+ /**
15
+ * Generated Promise service file.
16
+ *
17
+ * @since 1.0.0
18
+ * @category types
19
+ */
20
+ export interface GeneratedPromiseServiceFile {
21
+ readonly fileName: string;
22
+ readonly content: string;
23
+ }
24
+ /**
25
+ * Result of Promise service generation.
26
+ *
27
+ * @since 1.0.0
28
+ * @category types
29
+ */
30
+ export interface PromiseServiceGenerationResult {
31
+ readonly entityServices: ReadonlyArray<GeneratedPromiseServiceFile>;
32
+ }
33
+ /**
34
+ * Generate all Promise-based service function files.
35
+ *
36
+ * @since 1.0.0
37
+ * @category generation
38
+ */
39
+ export declare const generatePromiseServiceFns: (dataModel: DataModel) => PromiseServiceGenerationResult;
40
+ //# sourceMappingURL=ServiceFnPromiseGenerator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ServiceFnPromiseGenerator.d.ts","sourceRoot":"","sources":["../../../src/generator/ServiceFnPromiseGenerator.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,SAAS,EAAmC,MAAM,uBAAuB,CAAA;AAwBvF;;GAEG;AACH,eAAO,MAAM,qBAAqB,GAAI,eAAe,MAAM,KAAG,MAAwD,CAAA;AAEtH;;;;;GAKG;AACH,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB;AAED;;;;;GAKG;AACH,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,cAAc,EAAE,aAAa,CAAC,2BAA2B,CAAC,CAAA;CACpE;AAED;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB,GAAI,WAAW,SAAS,KAAG,8BAgBhE,CAAA"}
@@ -0,0 +1,101 @@
1
+ /**
2
+ * CLI for OData Effect Generator.
3
+ *
4
+ * @since 1.0.0
5
+ */
6
+ export * as Cli from "./Cli.js";
7
+ /**
8
+ * CLI entry point for OData Effect Generator.
9
+ *
10
+ * @since 1.0.0
11
+ */
12
+ export * as bin from "./bin.js";
13
+ /**
14
+ * Digester for converting parsed EDMX into a DataModel.
15
+ * Supports both OData V2 and V4.
16
+ *
17
+ * @since 1.0.0
18
+ */
19
+ export * as Digester from "./digester/Digester.js";
20
+ /**
21
+ * Type mapper for converting OData types to Effect Schema types and query paths.
22
+ *
23
+ * @since 1.0.0
24
+ */
25
+ export * as TypeMapper from "./digester/TypeMapper.js";
26
+ /**
27
+ * Main generator that orchestrates all code generation.
28
+ *
29
+ * @since 1.0.0
30
+ */
31
+ export * as Generator from "./generator/Generator.js";
32
+ /**
33
+ * Generator for index.ts - Public API exports.
34
+ *
35
+ * @since 1.0.0
36
+ */
37
+ export * as IndexGenerator from "./generator/IndexGenerator.js";
38
+ /**
39
+ * Generator for Models.ts - Effect Schema definitions.
40
+ *
41
+ * @since 1.0.0
42
+ */
43
+ export * as ModelsGenerator from "./generator/ModelsGenerator.js";
44
+ /**
45
+ * Naming utilities for code generation.
46
+ *
47
+ * @since 1.0.0
48
+ */
49
+ export * as NamingHelper from "./generator/NamingHelper.js";
50
+ /**
51
+ * Generator for package configuration files.
52
+ *
53
+ * @since 1.0.0
54
+ */
55
+ export * as PackageGenerator from "./generator/PackageGenerator.js";
56
+ /**
57
+ * Generator for QueryModels.ts - Type-safe query paths.
58
+ *
59
+ * @since 1.0.0
60
+ */
61
+ export * as QueryModelsGenerator from "./generator/QueryModelsGenerator.js";
62
+ /**
63
+ * Generator for tree-shakable service functions.
64
+ *
65
+ * This module generates standalone functions that can be tree-shaken.
66
+ * Each entity service is a module of standalone functions that use
67
+ * the tree-shakable OData functions directly.
68
+ *
69
+ * @since 1.0.0
70
+ */
71
+ export * as ServiceFnGenerator from "./generator/ServiceFnGenerator.js";
72
+ /**
73
+ * Generator for Promise-based service functions.
74
+ *
75
+ * This module generates Promise-based wrappers around the Effect-based
76
+ * service functions, allowing usage in non-Effect environments.
77
+ *
78
+ * @since 1.0.0
79
+ */
80
+ export * as ServiceFnPromiseGenerator from "./generator/ServiceFnPromiseGenerator.js";
81
+ /**
82
+ * Intermediate representation for OData metadata.
83
+ * This is the central data model that digesters create and generators consume.
84
+ *
85
+ * @since 1.0.0
86
+ */
87
+ export * as DataModel from "./model/DataModel.js";
88
+ /**
89
+ * Common EDMX schema interfaces for OData metadata parsing.
90
+ * These interfaces represent the parsed XML structure from xml2js.
91
+ *
92
+ * @since 1.0.0
93
+ */
94
+ export * as EdmxSchema from "./parser/EdmxSchema.js";
95
+ /**
96
+ * Effect-wrapped XML parser for OData metadata.
97
+ *
98
+ * @since 1.0.0
99
+ */
100
+ export * as XmlParser from "./parser/XmlParser.js";
101
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA;AAE/B;;;;GAIG;AACH,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA;AAE/B;;;;;GAKG;AACH,OAAO,KAAK,QAAQ,MAAM,wBAAwB,CAAA;AAElD;;;;GAIG;AACH,OAAO,KAAK,UAAU,MAAM,0BAA0B,CAAA;AAEtD;;;;GAIG;AACH,OAAO,KAAK,SAAS,MAAM,0BAA0B,CAAA;AAErD;;;;GAIG;AACH,OAAO,KAAK,cAAc,MAAM,+BAA+B,CAAA;AAE/D;;;;GAIG;AACH,OAAO,KAAK,eAAe,MAAM,gCAAgC,CAAA;AAEjE;;;;GAIG;AACH,OAAO,KAAK,YAAY,MAAM,6BAA6B,CAAA;AAE3D;;;;GAIG;AACH,OAAO,KAAK,gBAAgB,MAAM,iCAAiC,CAAA;AAEnE;;;;GAIG;AACH,OAAO,KAAK,oBAAoB,MAAM,qCAAqC,CAAA;AAE3E;;;;;;;;GAQG;AACH,OAAO,KAAK,kBAAkB,MAAM,mCAAmC,CAAA;AAEvE;;;;;;;GAOG;AACH,OAAO,KAAK,yBAAyB,MAAM,0CAA0C,CAAA;AAErF;;;;;GAKG;AACH,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAA;AAEjD;;;;;GAKG;AACH,OAAO,KAAK,UAAU,MAAM,wBAAwB,CAAA;AAEpD;;;;GAIG;AACH,OAAO,KAAK,SAAS,MAAM,uBAAuB,CAAA"}
@@ -0,0 +1,188 @@
1
+ /**
2
+ * Intermediate representation for OData metadata.
3
+ * This is the central data model that digesters create and generators consume.
4
+ *
5
+ * @since 1.0.0
6
+ */
7
+ import type { ODataVersion } from "../parser/EdmxSchema.js";
8
+ /**
9
+ * Central data model representing a parsed OData service.
10
+ *
11
+ * @since 1.0.0
12
+ * @category model
13
+ */
14
+ export interface DataModel {
15
+ readonly version: ODataVersion;
16
+ readonly namespace: string;
17
+ readonly serviceName: string;
18
+ readonly entityTypes: Map<string, EntityTypeModel>;
19
+ readonly complexTypes: Map<string, ComplexTypeModel>;
20
+ readonly enumTypes: Map<string, EnumTypeModel>;
21
+ readonly entitySets: Map<string, EntitySetModel>;
22
+ readonly singletons: Map<string, SingletonModel>;
23
+ readonly operations: Map<string, OperationModel>;
24
+ }
25
+ /**
26
+ * Type mapping information for a property.
27
+ *
28
+ * @since 1.0.0
29
+ * @category model
30
+ */
31
+ export interface TypeMapping {
32
+ readonly effectSchema: string;
33
+ readonly queryPath: string;
34
+ readonly tsType: string;
35
+ }
36
+ /**
37
+ * Represents a property of an entity or complex type.
38
+ *
39
+ * @since 1.0.0
40
+ * @category model
41
+ */
42
+ export interface PropertyModel {
43
+ readonly odataName: string;
44
+ readonly name: string;
45
+ readonly odataType: string;
46
+ readonly typeMapping: TypeMapping;
47
+ readonly isCollection: boolean;
48
+ readonly isNullable: boolean;
49
+ readonly isKey: boolean;
50
+ readonly maxLength?: number;
51
+ readonly precision?: number;
52
+ readonly scale?: number;
53
+ }
54
+ /**
55
+ * Represents a navigation property.
56
+ *
57
+ * @since 1.0.0
58
+ * @category model
59
+ */
60
+ export interface NavigationPropertyModel {
61
+ readonly odataName: string;
62
+ readonly name: string;
63
+ readonly targetType: string;
64
+ readonly isCollection: boolean;
65
+ readonly isNullable: boolean;
66
+ readonly partner?: string;
67
+ }
68
+ /**
69
+ * Represents an entity type.
70
+ *
71
+ * @since 1.0.0
72
+ * @category model
73
+ */
74
+ export interface EntityTypeModel {
75
+ readonly fqName: string;
76
+ readonly odataName: string;
77
+ readonly name: string;
78
+ readonly keys: ReadonlyArray<PropertyModel>;
79
+ readonly properties: ReadonlyArray<PropertyModel>;
80
+ readonly navigationProperties: ReadonlyArray<NavigationPropertyModel>;
81
+ readonly baseType?: string;
82
+ readonly isAbstract: boolean;
83
+ readonly isOpen: boolean;
84
+ }
85
+ /**
86
+ * Represents a complex type.
87
+ *
88
+ * @since 1.0.0
89
+ * @category model
90
+ */
91
+ export interface ComplexTypeModel {
92
+ readonly fqName: string;
93
+ readonly odataName: string;
94
+ readonly name: string;
95
+ readonly properties: ReadonlyArray<PropertyModel>;
96
+ readonly navigationProperties: ReadonlyArray<NavigationPropertyModel>;
97
+ readonly baseType?: string;
98
+ readonly isAbstract: boolean;
99
+ readonly isOpen: boolean;
100
+ }
101
+ /**
102
+ * Represents an enum member.
103
+ *
104
+ * @since 1.0.0
105
+ * @category model
106
+ */
107
+ export interface EnumMemberModel {
108
+ readonly name: string;
109
+ readonly value: number;
110
+ }
111
+ /**
112
+ * Represents an enum type.
113
+ *
114
+ * @since 1.0.0
115
+ * @category model
116
+ */
117
+ export interface EnumTypeModel {
118
+ readonly fqName: string;
119
+ readonly odataName: string;
120
+ readonly name: string;
121
+ readonly members: ReadonlyArray<EnumMemberModel>;
122
+ readonly isFlags: boolean;
123
+ }
124
+ /**
125
+ * Represents an entity set in the entity container.
126
+ *
127
+ * @since 1.0.0
128
+ * @category model
129
+ */
130
+ export interface EntitySetModel {
131
+ readonly name: string;
132
+ readonly entityTypeFqName: string;
133
+ readonly entityTypeName: string;
134
+ }
135
+ /**
136
+ * Represents a singleton in the entity container.
137
+ *
138
+ * @since 1.0.0
139
+ * @category model
140
+ */
141
+ export interface SingletonModel {
142
+ readonly name: string;
143
+ readonly typeFqName: string;
144
+ readonly typeName: string;
145
+ }
146
+ /**
147
+ * Represents an operation parameter.
148
+ *
149
+ * @since 1.0.0
150
+ * @category model
151
+ */
152
+ export interface OperationParameterModel {
153
+ readonly name: string;
154
+ readonly odataType: string;
155
+ readonly typeMapping: TypeMapping;
156
+ readonly isNullable: boolean;
157
+ readonly isCollection: boolean;
158
+ }
159
+ /**
160
+ * Represents a function or action.
161
+ *
162
+ * @since 1.0.0
163
+ * @category model
164
+ */
165
+ export interface OperationModel {
166
+ readonly fqName: string;
167
+ readonly odataName: string;
168
+ readonly name: string;
169
+ readonly type: "Function" | "Action";
170
+ readonly isBound: boolean;
171
+ readonly bindingParameter?: OperationParameterModel;
172
+ readonly parameters: ReadonlyArray<OperationParameterModel>;
173
+ readonly returnType?: {
174
+ readonly odataType: string;
175
+ readonly typeMapping: TypeMapping;
176
+ readonly isCollection: boolean;
177
+ readonly isNullable: boolean;
178
+ };
179
+ readonly entitySetPath?: string;
180
+ }
181
+ /**
182
+ * Creates an empty data model.
183
+ *
184
+ * @since 1.0.0
185
+ * @category constructors
186
+ */
187
+ export declare const createDataModel: (version: ODataVersion, namespace: string, serviceName: string) => DataModel;
188
+ //# sourceMappingURL=DataModel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DataModel.d.ts","sourceRoot":"","sources":["../../../src/model/DataModel.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAM3D;;;;;GAKG;AACH,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAA;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;IAClD,QAAQ,CAAC,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAA;IACpD,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;IAC9C,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;IAChD,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;IAChD,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;CACjD;AAMD;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CACxB;AAED;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAA;IACjC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAA;IAC9B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;IACvB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CACxB;AAMD;;;;;GAKG;AACH,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAA;IAC9B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAC1B;AAMD;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC,aAAa,CAAC,CAAA;IAC3C,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC,aAAa,CAAC,CAAA;IACjD,QAAQ,CAAC,oBAAoB,EAAE,aAAa,CAAC,uBAAuB,CAAC,CAAA;IACrE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;CACzB;AAMD;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC,aAAa,CAAC,CAAA;IACjD,QAAQ,CAAC,oBAAoB,EAAE,aAAa,CAAC,uBAAuB,CAAC,CAAA;IACrE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;CACzB;AAMD;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACvB;AAED;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,eAAe,CAAC,CAAA;IAChD,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;CAC1B;AAMD;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAA;IACjC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;CAChC;AAMD;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAC1B;AAMD;;;;;GAKG;AACH,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAA;IACjC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAA;CAC/B;AAED;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,QAAQ,CAAA;IACpC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,gBAAgB,CAAC,EAAE,uBAAuB,CAAA;IACnD,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC,uBAAuB,CAAC,CAAA;IAC3D,QAAQ,CAAC,UAAU,CAAC,EAAE;QACpB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;QAC1B,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAA;QACjC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAA;QAC9B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAA;KAC7B,CAAA;IACD,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAChC;AAMD;;;;;GAKG;AACH,eAAO,MAAM,eAAe,GAC1B,SAAS,YAAY,EACrB,WAAW,MAAM,EACjB,aAAa,MAAM,KAClB,SAUD,CAAA"}
@@ -0,0 +1,228 @@
1
+ /**
2
+ * Common EDMX schema interfaces for OData metadata parsing.
3
+ * These interfaces represent the parsed XML structure from xml2js.
4
+ *
5
+ * @since 1.0.0
6
+ */
7
+ export interface ODataEdmxModel {
8
+ readonly "edmx:Edmx": {
9
+ readonly $: {
10
+ readonly Version: string;
11
+ };
12
+ readonly "edmx:DataServices": ReadonlyArray<DataServices>;
13
+ };
14
+ }
15
+ export interface DataServices {
16
+ readonly Schema: ReadonlyArray<Schema>;
17
+ }
18
+ export interface Schema {
19
+ readonly $: {
20
+ readonly Namespace: string;
21
+ readonly Alias?: string;
22
+ };
23
+ readonly EntityType?: ReadonlyArray<EntityType>;
24
+ readonly ComplexType?: ReadonlyArray<ComplexType>;
25
+ readonly EnumType?: ReadonlyArray<EnumType>;
26
+ readonly EntityContainer?: ReadonlyArray<EntityContainer>;
27
+ readonly TypeDefinition?: ReadonlyArray<TypeDefinition>;
28
+ readonly Association?: ReadonlyArray<Association>;
29
+ readonly Function?: ReadonlyArray<Operation>;
30
+ readonly Action?: ReadonlyArray<Operation>;
31
+ }
32
+ export interface EntityType {
33
+ readonly $: {
34
+ readonly Name: string;
35
+ readonly BaseType?: string;
36
+ readonly Abstract?: string;
37
+ readonly OpenType?: string;
38
+ };
39
+ readonly Key?: ReadonlyArray<Key>;
40
+ readonly Property?: ReadonlyArray<Property>;
41
+ readonly NavigationProperty?: ReadonlyArray<NavigationProperty>;
42
+ }
43
+ export interface Key {
44
+ readonly PropertyRef: ReadonlyArray<PropertyRef>;
45
+ }
46
+ export interface PropertyRef {
47
+ readonly $: {
48
+ readonly Name: string;
49
+ };
50
+ }
51
+ export interface Property {
52
+ readonly $: {
53
+ readonly Name: string;
54
+ readonly Type: string;
55
+ readonly Nullable?: string;
56
+ readonly MaxLength?: string;
57
+ readonly Precision?: string;
58
+ readonly Scale?: string;
59
+ readonly DefaultValue?: string;
60
+ readonly ConcurrencyMode?: string;
61
+ readonly "sap:label"?: string;
62
+ readonly "sap:creatable"?: string;
63
+ readonly "sap:updatable"?: string;
64
+ readonly "sap:filterable"?: string;
65
+ readonly "sap:sortable"?: string;
66
+ };
67
+ }
68
+ export interface NavigationPropertyV2 {
69
+ readonly $: {
70
+ readonly Name: string;
71
+ readonly Relationship: string;
72
+ readonly FromRole: string;
73
+ readonly ToRole: string;
74
+ };
75
+ }
76
+ export interface NavigationPropertyV4 {
77
+ readonly $: {
78
+ readonly Name: string;
79
+ readonly Type: string;
80
+ readonly Nullable?: string;
81
+ readonly Partner?: string;
82
+ readonly ContainsTarget?: string;
83
+ };
84
+ }
85
+ export type NavigationProperty = NavigationPropertyV2 | NavigationPropertyV4;
86
+ export interface ComplexType {
87
+ readonly $: {
88
+ readonly Name: string;
89
+ readonly BaseType?: string;
90
+ readonly Abstract?: string;
91
+ readonly OpenType?: string;
92
+ };
93
+ readonly Property?: ReadonlyArray<Property>;
94
+ readonly NavigationProperty?: ReadonlyArray<NavigationProperty>;
95
+ }
96
+ export interface EnumType {
97
+ readonly $: {
98
+ readonly Name: string;
99
+ readonly UnderlyingType?: string;
100
+ readonly IsFlags?: string;
101
+ };
102
+ readonly Member: ReadonlyArray<EnumMember>;
103
+ }
104
+ export interface EnumMember {
105
+ readonly $: {
106
+ readonly Name: string;
107
+ readonly Value?: string;
108
+ };
109
+ }
110
+ export interface TypeDefinition {
111
+ readonly $: {
112
+ readonly Name: string;
113
+ readonly UnderlyingType: string;
114
+ };
115
+ }
116
+ export interface Association {
117
+ readonly $: {
118
+ readonly Name: string;
119
+ };
120
+ readonly End: ReadonlyArray<AssociationEnd>;
121
+ readonly ReferentialConstraint?: ReadonlyArray<ReferentialConstraint>;
122
+ }
123
+ export interface AssociationEnd {
124
+ readonly $: {
125
+ readonly Role: string;
126
+ readonly Type: string;
127
+ readonly Multiplicity: string;
128
+ };
129
+ }
130
+ export interface ReferentialConstraint {
131
+ readonly Principal: ReadonlyArray<ConstraintRole>;
132
+ readonly Dependent: ReadonlyArray<ConstraintRole>;
133
+ }
134
+ export interface ConstraintRole {
135
+ readonly $: {
136
+ readonly Role: string;
137
+ };
138
+ readonly PropertyRef: ReadonlyArray<PropertyRef>;
139
+ }
140
+ export interface EntityContainer {
141
+ readonly $: {
142
+ readonly Name: string;
143
+ readonly "m:IsDefaultEntityContainer"?: string;
144
+ };
145
+ readonly EntitySet?: ReadonlyArray<EntitySet>;
146
+ readonly Singleton?: ReadonlyArray<Singleton>;
147
+ readonly AssociationSet?: ReadonlyArray<AssociationSet>;
148
+ readonly FunctionImport?: ReadonlyArray<FunctionImport>;
149
+ readonly ActionImport?: ReadonlyArray<ActionImport>;
150
+ }
151
+ export interface EntitySet {
152
+ readonly $: {
153
+ readonly Name: string;
154
+ readonly EntityType: string;
155
+ };
156
+ readonly NavigationPropertyBinding?: ReadonlyArray<NavigationPropertyBinding>;
157
+ }
158
+ export interface Singleton {
159
+ readonly $: {
160
+ readonly Name: string;
161
+ readonly Type: string;
162
+ };
163
+ readonly NavigationPropertyBinding?: ReadonlyArray<NavigationPropertyBinding>;
164
+ }
165
+ export interface NavigationPropertyBinding {
166
+ readonly $: {
167
+ readonly Path: string;
168
+ readonly Target: string;
169
+ };
170
+ }
171
+ export interface AssociationSet {
172
+ readonly $: {
173
+ readonly Name: string;
174
+ readonly Association: string;
175
+ };
176
+ readonly End: ReadonlyArray<AssociationSetEnd>;
177
+ }
178
+ export interface AssociationSetEnd {
179
+ readonly $: {
180
+ readonly Role: string;
181
+ readonly EntitySet: string;
182
+ };
183
+ }
184
+ export interface Operation {
185
+ readonly $: {
186
+ readonly Name: string;
187
+ readonly IsBound?: string;
188
+ readonly EntitySetPath?: string;
189
+ };
190
+ readonly Parameter?: ReadonlyArray<OperationParameter>;
191
+ readonly ReturnType?: ReadonlyArray<OperationReturnType>;
192
+ }
193
+ export interface OperationParameter {
194
+ readonly $: {
195
+ readonly Name: string;
196
+ readonly Type: string;
197
+ readonly Nullable?: string;
198
+ readonly Unicode?: string;
199
+ readonly Mode?: string;
200
+ };
201
+ }
202
+ export interface OperationReturnType {
203
+ readonly $?: {
204
+ readonly Type: string;
205
+ readonly Nullable?: string;
206
+ };
207
+ readonly Type?: string;
208
+ }
209
+ export interface FunctionImport {
210
+ readonly $: {
211
+ readonly Name: string;
212
+ readonly Function?: string;
213
+ readonly EntitySet?: string;
214
+ readonly ReturnType?: string;
215
+ readonly "m:HttpMethod"?: string;
216
+ };
217
+ readonly Parameter?: ReadonlyArray<OperationParameter>;
218
+ }
219
+ export interface ActionImport {
220
+ readonly $: {
221
+ readonly Name: string;
222
+ readonly Action: string;
223
+ readonly EntitySet?: string;
224
+ };
225
+ }
226
+ export type ODataVersion = "V2" | "V4";
227
+ export declare const detectODataVersion: (edmx: ODataEdmxModel) => ODataVersion;
228
+ //# sourceMappingURL=EdmxSchema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EdmxSchema.d.ts","sourceRoot":"","sources":["../../../src/parser/EdmxSchema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Effect-wrapped XML parser for OData metadata.
3
+ *
4
+ * @since 1.0.0
5
+ */
6
+ import * as Effect from "effect/Effect";
7
+ import * as Schema from "effect/Schema";
8
+ import type { ODataEdmxModel } from "./EdmxSchema.js";
9
+ declare const XmlParseError_base: Schema.TaggedErrorClass<XmlParseError, "XmlParseError", {
10
+ readonly _tag: Schema.tag<"XmlParseError">;
11
+ } & {
12
+ message: typeof Schema.String;
13
+ cause: typeof Schema.Unknown;
14
+ }>;
15
+ /**
16
+ * Error thrown when XML parsing fails.
17
+ *
18
+ * @since 1.0.0
19
+ * @category errors
20
+ */
21
+ export declare class XmlParseError extends XmlParseError_base {
22
+ }
23
+ /**
24
+ * Parse OData metadata XML content into a structured object.
25
+ *
26
+ * @since 1.0.0
27
+ * @category parsing
28
+ */
29
+ export declare const parseODataMetadata: (xmlContent: string) => Effect.Effect<ODataEdmxModel, XmlParseError>;
30
+ export {};
31
+ //# sourceMappingURL=XmlParser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"XmlParser.d.ts","sourceRoot":"","sources":["../../../src/parser/XmlParser.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;;;;;;;AAErD;;;;;GAKG;AACH,qBAAa,aAAc,SAAQ,kBAMlC;CAAG;AAEJ;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,GAC7B,YAAY,MAAM,KACjB,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,aAAa,CAc1C,CAAA"}