@simpleapps-com/augur-api 0.4.12 → 0.4.14

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 (36) hide show
  1. package/dist/cjs/index.d.ts +1 -1
  2. package/dist/cjs/index.js +1 -1
  3. package/dist/cjs/services/nexus/client.d.ts +65 -17
  4. package/dist/cjs/services/nexus/client.d.ts.map +1 -1
  5. package/dist/cjs/services/nexus/client.js +16 -10
  6. package/dist/cjs/services/nexus/client.js.map +1 -1
  7. package/dist/cjs/services/nexus/schemas/receiving.d.ts +145 -17
  8. package/dist/cjs/services/nexus/schemas/receiving.d.ts.map +1 -1
  9. package/dist/cjs/services/nexus/schemas/receiving.js +24 -6
  10. package/dist/cjs/services/nexus/schemas/receiving.js.map +1 -1
  11. package/dist/cjs/utils/OpenApiSpecParser.d.ts +252 -0
  12. package/dist/cjs/utils/OpenApiSpecParser.d.ts.map +1 -0
  13. package/dist/cjs/utils/OpenApiSpecParser.js +462 -0
  14. package/dist/cjs/utils/OpenApiSpecParser.js.map +1 -0
  15. package/dist/esm/index.d.ts +1 -1
  16. package/dist/esm/index.js +1 -1
  17. package/dist/esm/services/nexus/client.d.ts +65 -17
  18. package/dist/esm/services/nexus/client.d.ts.map +1 -1
  19. package/dist/esm/services/nexus/client.js +16 -10
  20. package/dist/esm/services/nexus/client.js.map +1 -1
  21. package/dist/esm/services/nexus/schemas/receiving.d.ts +145 -17
  22. package/dist/esm/services/nexus/schemas/receiving.d.ts.map +1 -1
  23. package/dist/esm/services/nexus/schemas/receiving.js +24 -6
  24. package/dist/esm/services/nexus/schemas/receiving.js.map +1 -1
  25. package/dist/esm/utils/OpenApiSpecParser.d.ts +252 -0
  26. package/dist/esm/utils/OpenApiSpecParser.d.ts.map +1 -0
  27. package/dist/esm/utils/OpenApiSpecParser.js +456 -0
  28. package/dist/esm/utils/OpenApiSpecParser.js.map +1 -0
  29. package/dist/types/index.d.ts +1 -1
  30. package/dist/types/services/nexus/client.d.ts +65 -17
  31. package/dist/types/services/nexus/client.d.ts.map +1 -1
  32. package/dist/types/services/nexus/schemas/receiving.d.ts +145 -17
  33. package/dist/types/services/nexus/schemas/receiving.d.ts.map +1 -1
  34. package/dist/types/utils/OpenApiSpecParser.d.ts +252 -0
  35. package/dist/types/utils/OpenApiSpecParser.d.ts.map +1 -0
  36. package/package.json +3 -1
@@ -0,0 +1,252 @@
1
+ export interface PathInfo {
2
+ path: string;
3
+ methods: string[];
4
+ parameters: string[];
5
+ operationIds: string[];
6
+ hasPathParams: boolean;
7
+ pathParams: string[];
8
+ }
9
+ export interface Parameter {
10
+ name: string;
11
+ in: 'query' | 'header' | 'path' | 'cookie';
12
+ required?: boolean;
13
+ schema?: Record<string, unknown>;
14
+ description?: string;
15
+ }
16
+ export interface RequestBody {
17
+ description?: string;
18
+ required?: boolean;
19
+ content?: Record<string, unknown>;
20
+ }
21
+ export interface Response {
22
+ description: string;
23
+ content?: Record<string, unknown>;
24
+ headers?: Record<string, unknown>;
25
+ }
26
+ export interface OperationDetails {
27
+ operationId?: string;
28
+ summary?: string;
29
+ description?: string;
30
+ parameters: Parameter[];
31
+ requestBody?: RequestBody;
32
+ responses: Record<string, Response>;
33
+ tags?: string[];
34
+ deprecated?: boolean;
35
+ method: string;
36
+ path: string;
37
+ }
38
+ export interface SearchResult {
39
+ path: string;
40
+ method: string;
41
+ score: number;
42
+ matchReason: string;
43
+ operation: OperationDetails;
44
+ }
45
+ export interface ComplexityMetrics {
46
+ totalPaths: number;
47
+ totalEndpoints: number;
48
+ pathsWithParameters: number;
49
+ uniqueParameterCount: number;
50
+ averageMethodsPerPath: number;
51
+ complexityScore: number;
52
+ deprecatedCount: number;
53
+ methodDistribution: Record<string, number>;
54
+ }
55
+ export interface ValidationResult {
56
+ isValid: boolean;
57
+ errors: string[];
58
+ warnings: string[];
59
+ }
60
+ export interface ClientStructureInfo {
61
+ path: string;
62
+ clientPath: string[];
63
+ method: string;
64
+ operationId?: string;
65
+ parameters: {
66
+ path: string[];
67
+ query: string[];
68
+ header: string[];
69
+ body?: Record<string, unknown>;
70
+ };
71
+ responseSchema?: Record<string, unknown> | null;
72
+ }
73
+ /**
74
+ * OpenAPI Specification Parser and Analyzer
75
+ *
76
+ * @fullPath utils.OpenApiSpecParser
77
+ * @service utility
78
+ * @domain openapi-parsing
79
+ * @discoverable true
80
+ * @searchTerms ["openapi", "parse", "specification", "analyze", "validate"]
81
+ * @commonPatterns ["Parse OpenAPI spec", "Analyze API endpoints", "Extract path information"]
82
+ * @workflow ["api-development", "schema-generation", "client-generation"]
83
+ * @prerequisites ["OpenAPI specification file or object"]
84
+ * @nextSteps ["Generate client code", "Create validation schemas", "Analyze API complexity"]
85
+ * @businessRules ["Must validate against OpenAPI 3.0/3.1 specification"]
86
+ * @functionalArea ["api-tooling"]
87
+ * @crossSite ["All microservices with OpenAPI specs"]
88
+ * @caching ["In-memory parsed spec caching"]
89
+ * @performance ["Parse once, query multiple times for best performance"]
90
+ */
91
+ interface OpenApiSpec {
92
+ openapi: string;
93
+ info: Record<string, unknown>;
94
+ paths: Record<string, Record<string, unknown>>;
95
+ components?: Record<string, unknown>;
96
+ servers?: Array<Record<string, unknown>>;
97
+ }
98
+ export declare class OpenApiSpecParser {
99
+ private api;
100
+ private specPath;
101
+ private parsedAt;
102
+ /**
103
+ * Load and parse OpenAPI specification
104
+ *
105
+ * @param source File path, URL, or spec object
106
+ * @returns Parsed OpenAPI Document
107
+ * @throws Error if specification cannot be parsed
108
+ *
109
+ * @example
110
+ * ```typescript
111
+ * const parser = new OpenApiSpecParser();
112
+ * await parser.loadSpec('./openapi/vmi.json');
113
+ * ```
114
+ */
115
+ loadSpec(source: string | Record<string, unknown>): Promise<OpenApiSpec>;
116
+ /**
117
+ * Validate OpenAPI specification against schema
118
+ *
119
+ * @param source File path, URL, or spec object
120
+ * @returns Validation result with errors and warnings
121
+ */
122
+ validateSpec(source?: string | Record<string, unknown>): Promise<ValidationResult>;
123
+ /**
124
+ * Get all API paths with their methods and metadata
125
+ *
126
+ * Replaces: jq -r '.paths | to_entries[] | "\(.key): \(.value | keys | join(", "))"'
127
+ *
128
+ * @returns Array of path information objects
129
+ */
130
+ getAllPaths(): PathInfo[];
131
+ /**
132
+ * Get formatted path list (exact jq replacement)
133
+ *
134
+ * @returns Array of formatted strings like "path: GET, POST"
135
+ */
136
+ getAllPathsFormatted(): string[];
137
+ /**
138
+ * Get total number of paths
139
+ *
140
+ * Replaces: jq '.paths | keys | length'
141
+ *
142
+ * @returns Number of API paths
143
+ */
144
+ getPathCount(): number;
145
+ /**
146
+ * Get total number of endpoints (path + method combinations)
147
+ *
148
+ * @returns Total number of API endpoints
149
+ */
150
+ getEndpointCount(): number;
151
+ /**
152
+ * Get OpenAPI specification info
153
+ *
154
+ * Replaces: jq '.info'
155
+ *
156
+ * @returns OpenAPI info object or null
157
+ */
158
+ getSpecInfo(): Record<string, unknown> | null;
159
+ /**
160
+ * Get server information
161
+ *
162
+ * @returns Array of server definitions
163
+ */
164
+ getServers(): Array<Record<string, unknown>>;
165
+ /**
166
+ * Get detailed information about a specific endpoint
167
+ *
168
+ * @param path API path (e.g., "/users/{id}")
169
+ * @param method HTTP method (e.g., "GET")
170
+ * @returns Operation details or null if not found
171
+ */
172
+ getPathDetails(path: string, method: string): OperationDetails | null;
173
+ /**
174
+ * Get all operation details for all endpoints
175
+ *
176
+ * @returns Array of all operation details
177
+ */
178
+ getAllOperations(): OperationDetails[];
179
+ /**
180
+ * Find deprecated endpoints
181
+ *
182
+ * Replaces complex jq deprecated endpoint queries
183
+ *
184
+ * @returns Array of deprecated endpoint descriptions
185
+ */
186
+ getDeprecatedPaths(): string[];
187
+ /**
188
+ * Search for endpoints by functionality
189
+ *
190
+ * @param searchTerm Term to search for in paths, summaries, descriptions, etc.
191
+ * @returns Array of search results ranked by relevance
192
+ */
193
+ findEndpoints(searchTerm: string): SearchResult[];
194
+ /**
195
+ * Get component schemas
196
+ *
197
+ * @returns Object containing all component schemas
198
+ */
199
+ getComponentSchemas(): Record<string, Record<string, unknown>>;
200
+ /**
201
+ * Get complexity metrics for the API
202
+ *
203
+ * @returns Detailed complexity analysis
204
+ */
205
+ getComplexityMetrics(): ComplexityMetrics;
206
+ /**
207
+ * Generate client structure information for all endpoints
208
+ * This analyzes how each OpenAPI path should map to client method structure
209
+ *
210
+ * @returns Array of client structure mappings
211
+ */
212
+ generateClientStructure(): ClientStructureInfo[];
213
+ /**
214
+ * Validate that the API specification follows expected patterns
215
+ *
216
+ * @returns Validation result with any issues found
217
+ */
218
+ validateSpecification(): ValidationResult;
219
+ /**
220
+ * Get parsing metadata
221
+ *
222
+ * @returns Information about when the spec was parsed
223
+ */
224
+ getParsingInfo(): {
225
+ specPath: string | null;
226
+ parsedAt: Date | null;
227
+ api: boolean;
228
+ };
229
+ private extractMethods;
230
+ private extractPathParameters;
231
+ private extractOperationIds;
232
+ private calculateComplexityScore;
233
+ private pathToClientStructure;
234
+ private toCamelCase;
235
+ private analyzeParameters;
236
+ private extractResponseSchema;
237
+ }
238
+ /**
239
+ * Factory function for easy usage
240
+ *
241
+ * @returns New OpenApiSpecParser instance
242
+ */
243
+ export declare const createOpenApiParser: () => OpenApiSpecParser;
244
+ /**
245
+ * Utility function to parse OpenAPI spec from file path
246
+ *
247
+ * @param filePath Path to OpenAPI specification file
248
+ * @returns Configured parser instance
249
+ */
250
+ export declare const parseOpenApiSpec: (filePath: string) => Promise<OpenApiSpecParser>;
251
+ export {};
252
+ //# sourceMappingURL=OpenApiSpecParser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OpenApiSpecParser.d.ts","sourceRoot":"","sources":["../../../src/utils/OpenApiSpecParser.ts"],"names":[],"mappings":"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"}