@apollo-deploy/tesseract 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 (78) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +235 -0
  3. package/dist/adapters/types.d.ts +15 -0
  4. package/dist/adapters/types.d.ts.map +1 -0
  5. package/dist/adapters/types.js +6 -0
  6. package/dist/adapters/types.js.map +1 -0
  7. package/dist/adapters/typescript/index.d.ts +11 -0
  8. package/dist/adapters/typescript/index.d.ts.map +1 -0
  9. package/dist/adapters/typescript/index.js +112 -0
  10. package/dist/adapters/typescript/index.js.map +1 -0
  11. package/dist/adapters/typescript/model-emitter.d.ts +13 -0
  12. package/dist/adapters/typescript/model-emitter.d.ts.map +1 -0
  13. package/dist/adapters/typescript/model-emitter.js +415 -0
  14. package/dist/adapters/typescript/model-emitter.js.map +1 -0
  15. package/dist/adapters/typescript/shared.d.ts +26 -0
  16. package/dist/adapters/typescript/shared.d.ts.map +1 -0
  17. package/dist/adapters/typescript/shared.js +65 -0
  18. package/dist/adapters/typescript/shared.js.map +1 -0
  19. package/dist/cli.d.ts +6 -0
  20. package/dist/cli.d.ts.map +1 -0
  21. package/dist/cli.js +53 -0
  22. package/dist/cli.js.map +1 -0
  23. package/dist/helpers/handlebars.d.ts +15 -0
  24. package/dist/helpers/handlebars.d.ts.map +1 -0
  25. package/dist/helpers/handlebars.js +172 -0
  26. package/dist/helpers/handlebars.js.map +1 -0
  27. package/dist/index.d.ts +16 -0
  28. package/dist/index.d.ts.map +1 -0
  29. package/dist/index.js +36 -0
  30. package/dist/index.js.map +1 -0
  31. package/dist/pipeline/enrich.d.ts +7 -0
  32. package/dist/pipeline/enrich.d.ts.map +1 -0
  33. package/dist/pipeline/enrich.js +277 -0
  34. package/dist/pipeline/enrich.js.map +1 -0
  35. package/dist/pipeline/intake.d.ts +11 -0
  36. package/dist/pipeline/intake.d.ts.map +1 -0
  37. package/dist/pipeline/intake.js +508 -0
  38. package/dist/pipeline/intake.js.map +1 -0
  39. package/dist/pipeline/write.d.ts +15 -0
  40. package/dist/pipeline/write.d.ts.map +1 -0
  41. package/dist/pipeline/write.js +33 -0
  42. package/dist/pipeline/write.js.map +1 -0
  43. package/dist/types/config.d.ts +47 -0
  44. package/dist/types/config.d.ts.map +1 -0
  45. package/dist/types/config.js +24 -0
  46. package/dist/types/config.js.map +1 -0
  47. package/dist/types/ir.d.ts +172 -0
  48. package/dist/types/ir.d.ts.map +1 -0
  49. package/dist/types/ir.js +7 -0
  50. package/dist/types/ir.js.map +1 -0
  51. package/dist/types/manifest.d.ts +112 -0
  52. package/dist/types/manifest.d.ts.map +1 -0
  53. package/dist/types/manifest.js +32 -0
  54. package/dist/types/manifest.js.map +1 -0
  55. package/dist/utils/format.d.ts +5 -0
  56. package/dist/utils/format.d.ts.map +1 -0
  57. package/dist/utils/format.js +21 -0
  58. package/dist/utils/format.js.map +1 -0
  59. package/dist/utils/naming.d.ts +26 -0
  60. package/dist/utils/naming.d.ts.map +1 -0
  61. package/dist/utils/naming.js +270 -0
  62. package/dist/utils/naming.js.map +1 -0
  63. package/package.json +58 -0
  64. package/templates/typescript/client.hbs +145 -0
  65. package/templates/typescript/domain-index.hbs +10 -0
  66. package/templates/typescript/domain.hbs +127 -0
  67. package/templates/typescript/index.hbs +64 -0
  68. package/templates/typescript/package-json.hbs +29 -0
  69. package/templates/typescript/readme.hbs +78 -0
  70. package/templates/typescript/transport-sse.hbs +377 -0
  71. package/templates/typescript/transport.hbs +662 -0
  72. package/templates/typescript/tsconfig.hbs +18 -0
  73. package/templates/typescript/types-common.hbs +98 -0
  74. package/templates/typescript/types-errors.hbs +191 -0
  75. package/templates/typescript/types.hbs +33 -0
  76. package/templates/typescript/utils-index.hbs +7 -0
  77. package/templates/typescript/utils-query.hbs +29 -0
  78. package/templates/typescript/webhook-handler.hbs +447 -0
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Tesseract generator configuration.
3
+ *
4
+ * Manifest-first — no OpenAPI-specific fields.
5
+ */
6
+ export function resolveConfig(config) {
7
+ if (!config.input)
8
+ throw new Error('Missing required config: input');
9
+ if (!config.output)
10
+ throw new Error('Missing required config: output');
11
+ return {
12
+ input: config.input,
13
+ output: config.output,
14
+ language: config.language ?? 'typescript',
15
+ packageName: config.packageName,
16
+ clientName: config.clientName,
17
+ baseUrl: config.baseUrl,
18
+ dryRun: config.dryRun ?? false,
19
+ check: config.check ?? false,
20
+ prettier: config.prettier ?? true,
21
+ environments: config.environments,
22
+ };
23
+ }
24
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAiDH,MAAM,UAAU,aAAa,CAAC,MAAuB;IACnD,IAAI,CAAC,MAAM,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;IACrE,IAAI,CAAC,MAAM,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IAEvE,OAAO;QACL,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,YAAY;QACzC,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,KAAK;QAC9B,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,KAAK;QAC5B,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,IAAI;QACjC,YAAY,EAAE,MAAM,CAAC,YAAY;KAClC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,172 @@
1
+ /**
2
+ * SDK Intermediate Representation.
3
+ *
4
+ * The manifest intake stage produces this; enrichment and adapters consume it.
5
+ */
6
+ export interface SDKIR {
7
+ meta: SDKMeta;
8
+ groups: OperationGroup[];
9
+ schemas: SchemaDefinition[];
10
+ securitySchemes?: SecurityScheme[];
11
+ webhooks?: WebhookDefinition[];
12
+ }
13
+ export interface SDKMeta {
14
+ title: string;
15
+ version: string;
16
+ description?: string;
17
+ baseUrl: string;
18
+ packageName: string;
19
+ clientName: string;
20
+ serverVariables?: {
21
+ name: string;
22
+ default: string;
23
+ description?: string;
24
+ enum?: string[];
25
+ }[];
26
+ environments?: {
27
+ name: string;
28
+ baseUrl: string;
29
+ description?: string;
30
+ }[];
31
+ schemaPackage?: {
32
+ name: string;
33
+ version?: string;
34
+ importPath?: string;
35
+ };
36
+ }
37
+ export interface SecurityScheme {
38
+ name: string;
39
+ type: 'apiKey' | 'http' | 'oauth2' | 'openIdConnect';
40
+ in?: 'header' | 'query' | 'cookie';
41
+ paramName?: string;
42
+ scheme?: string;
43
+ bearerFormat?: string;
44
+ description?: string;
45
+ }
46
+ export interface OperationGroup {
47
+ name: string;
48
+ sourceTag?: string;
49
+ fileName: string;
50
+ interfaceName: string;
51
+ factoryName: string;
52
+ description?: string;
53
+ operations: Operation[];
54
+ }
55
+ export interface Operation {
56
+ operationId?: string;
57
+ name: string;
58
+ summary?: string;
59
+ description?: string;
60
+ httpMethod: string;
61
+ path: string;
62
+ pathParams: Parameter[];
63
+ queryParams: Parameter[];
64
+ headerParams: Parameter[];
65
+ cookieParams?: Parameter[];
66
+ requestBody?: RequestBodyDef;
67
+ requestBodyContentTypes?: string[];
68
+ queryType?: string;
69
+ headerType?: string;
70
+ cookieType?: string;
71
+ responseType: string;
72
+ statusCode: number;
73
+ deprecated?: boolean;
74
+ isEventStream?: boolean;
75
+ eventSchema?: string;
76
+ }
77
+ export interface Parameter {
78
+ name: string;
79
+ originalName: string;
80
+ type: string;
81
+ required: boolean;
82
+ description?: string;
83
+ deprecated?: boolean;
84
+ }
85
+ export interface RequestBodyDef {
86
+ type: string;
87
+ required: boolean;
88
+ contentType: string;
89
+ }
90
+ export interface WebhookDefinition {
91
+ name: string;
92
+ event: string;
93
+ payloadType: string;
94
+ description?: string;
95
+ }
96
+ export interface ExternalImportMeta {
97
+ packageName: string;
98
+ importPath: string;
99
+ exportName: string;
100
+ }
101
+ export interface SchemaOwnership {
102
+ kind: 'generated' | 'external';
103
+ externalImport?: ExternalImportMeta;
104
+ runtimeImport?: ExternalImportMeta;
105
+ domainFile?: string;
106
+ }
107
+ export interface SchemaDefinition {
108
+ name: string;
109
+ description?: string;
110
+ properties: SchemaProperty[];
111
+ isEnum: boolean;
112
+ enumValues?: (string | number)[];
113
+ extends?: string;
114
+ isUnionType?: boolean;
115
+ unionMembers?: string[];
116
+ isIntersectionType?: boolean;
117
+ intersectionMembers?: string[];
118
+ isTypeAlias?: boolean;
119
+ additionalPropertiesType?: string;
120
+ ownership?: SchemaOwnership;
121
+ componentName?: string;
122
+ }
123
+ export interface SchemaProperty {
124
+ name: string;
125
+ type: string;
126
+ required: boolean;
127
+ description?: string;
128
+ nullable?: boolean;
129
+ format?: string;
130
+ readOnly?: boolean;
131
+ writeOnly?: boolean;
132
+ deprecated?: boolean;
133
+ defaultValue?: unknown;
134
+ }
135
+ export interface SymbolTableEntry {
136
+ definedIn: string;
137
+ kind: string;
138
+ isExternal: boolean;
139
+ importPath?: string;
140
+ }
141
+ export type SymbolTable = Record<string, SymbolTableEntry>;
142
+ export type ImportGraph = Record<string, string[]>;
143
+ export interface DomainAllocation {
144
+ fileName: string;
145
+ schemas: string[];
146
+ }
147
+ export interface OperationSignature {
148
+ params: string;
149
+ returnType: string;
150
+ isAsync: boolean;
151
+ }
152
+ export type SchemaRenderDecision = 'interface' | 'type-alias' | 'enum' | 'union' | 'skip';
153
+ export interface DocBlock {
154
+ summary?: string;
155
+ description?: string;
156
+ lines: string[];
157
+ }
158
+ export interface SerializationHint {
159
+ dateProperties: string[];
160
+ }
161
+ export interface EnrichedSDKIR extends SDKIR {
162
+ symbolTable: SymbolTable;
163
+ importGraph: ImportGraph;
164
+ schemaOrder: string[];
165
+ domainAllocations: DomainAllocation[];
166
+ signatures: Record<string, OperationSignature>;
167
+ docBlocks: Record<string, DocBlock>;
168
+ renderDecisions: Record<string, SchemaRenderDecision>;
169
+ serialization: Record<string, SerializationHint>;
170
+ }
171
+ export type TargetLanguage = 'typescript';
172
+ //# sourceMappingURL=ir.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ir.d.ts","sourceRoot":"","sources":["../../src/types/ir.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * SDK Intermediate Representation.
3
+ *
4
+ * The manifest intake stage produces this; enrichment and adapters consume it.
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=ir.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ir.js","sourceRoot":"","sources":["../../src/types/ir.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
@@ -0,0 +1,112 @@
1
+ /**
2
+ * Manifest type mirrors for sdk-manifold/v1.
3
+ *
4
+ * Defined inline so Tesseract has no runtime dependency on @apollo-deploy/sdk-manifold.
5
+ * Keep in sync with the manifold package's manifest.ts.
6
+ */
7
+ export type JsonSchema = {
8
+ $ref: string;
9
+ [k: string]: unknown;
10
+ } | {
11
+ type: 'object';
12
+ properties?: Record<string, JsonSchema>;
13
+ required?: string[];
14
+ additionalProperties?: boolean | JsonSchema;
15
+ description?: string;
16
+ nullable?: boolean;
17
+ [k: string]: unknown;
18
+ } | {
19
+ type: 'array';
20
+ items?: JsonSchema;
21
+ description?: string;
22
+ nullable?: boolean;
23
+ [k: string]: unknown;
24
+ } | {
25
+ type: 'string' | 'number' | 'integer' | 'boolean' | 'null';
26
+ format?: string;
27
+ description?: string;
28
+ nullable?: boolean;
29
+ readOnly?: boolean;
30
+ writeOnly?: boolean;
31
+ deprecated?: boolean;
32
+ [k: string]: unknown;
33
+ } | {
34
+ enum: Array<string | number | boolean | null>;
35
+ type?: string;
36
+ description?: string;
37
+ [k: string]: unknown;
38
+ } | {
39
+ allOf?: JsonSchema[];
40
+ anyOf?: JsonSchema[];
41
+ oneOf?: JsonSchema[];
42
+ description?: string;
43
+ nullable?: boolean;
44
+ [k: string]: unknown;
45
+ };
46
+ export interface ManifestRouteSchema {
47
+ tags?: string[];
48
+ summary?: string;
49
+ description?: string;
50
+ operationId?: string;
51
+ consumes?: string[];
52
+ produces?: string[];
53
+ params?: JsonSchema;
54
+ querystring?: JsonSchema;
55
+ query?: JsonSchema;
56
+ body?: JsonSchema;
57
+ headers?: JsonSchema;
58
+ response?: Record<string | number, JsonSchema>;
59
+ }
60
+ export interface ManifestSDKRouteConfig {
61
+ methodName?: string;
62
+ transport?: 'json' | 'multipart' | 'binary' | 'stream';
63
+ exclude?: boolean;
64
+ deprecated?: boolean | string;
65
+ description?: string;
66
+ operationId?: string;
67
+ group?: string;
68
+ internal?: boolean;
69
+ timeout?: number;
70
+ prefix?: string;
71
+ requiredHeaders?: Array<{
72
+ name: string;
73
+ paramName: string;
74
+ description?: string;
75
+ }>;
76
+ }
77
+ export interface ManifestRoute {
78
+ method: string | string[];
79
+ url: string;
80
+ schema?: ManifestRouteSchema;
81
+ sdk?: ManifestSDKRouteConfig;
82
+ sse?: boolean;
83
+ }
84
+ export interface ManifestDomain {
85
+ prefix: string;
86
+ domain?: string;
87
+ fileName?: string;
88
+ description?: string;
89
+ stability?: 'stable' | 'experimental' | 'internal';
90
+ routes: ManifestRoute[];
91
+ }
92
+ export interface BackendManifest {
93
+ $schema: 'sdk-manifold/v1';
94
+ info: {
95
+ title: string;
96
+ version: string;
97
+ description?: string;
98
+ baseUrl?: string;
99
+ };
100
+ domains: ManifestDomain[];
101
+ definitions?: Record<string, JsonSchema>;
102
+ schemaPackage?: {
103
+ name: string;
104
+ version?: string;
105
+ importPath?: string;
106
+ };
107
+ }
108
+ export declare function validateManifest(value: unknown): {
109
+ valid: boolean;
110
+ errors: string[];
111
+ };
112
+ //# sourceMappingURL=manifest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../src/types/manifest.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Manifest type mirrors for sdk-manifold/v1.
3
+ *
4
+ * Defined inline so Tesseract has no runtime dependency on @apollo-deploy/sdk-manifold.
5
+ * Keep in sync with the manifold package's manifest.ts.
6
+ */
7
+ // ── Validation ───────────────────────────────────────────────────────────────
8
+ export function validateManifest(value) {
9
+ const errors = [];
10
+ const obj = value;
11
+ if (!obj || typeof obj !== 'object') {
12
+ return { valid: false, errors: ['Manifest must be an object'] };
13
+ }
14
+ if (obj.$schema !== 'sdk-manifold/v1') {
15
+ errors.push(`Expected $schema "sdk-manifold/v1", got "${obj.$schema}"`);
16
+ }
17
+ const info = obj.info;
18
+ if (!info || typeof info !== 'object') {
19
+ errors.push('Missing required field: info');
20
+ }
21
+ else {
22
+ if (!info.title || typeof info.title !== 'string')
23
+ errors.push('info.title is required');
24
+ if (!info.version || typeof info.version !== 'string')
25
+ errors.push('info.version is required');
26
+ }
27
+ if (!Array.isArray(obj.domains)) {
28
+ errors.push('Missing required field: domains (must be an array)');
29
+ }
30
+ return { valid: errors.length === 0, errors };
31
+ }
32
+ //# sourceMappingURL=manifest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../src/types/manifest.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA4HH,gFAAgF;AAEhF,MAAM,UAAU,gBAAgB,CAAC,KAAc;IAC7C,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,GAAG,GAAG,KAAgC,CAAC;IAE7C,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QACpC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,4BAA4B,CAAC,EAAE,CAAC;IAClE,CAAC;IAED,IAAI,GAAG,CAAC,OAAO,KAAK,iBAAiB,EAAE,CAAC;QACtC,MAAM,CAAC,IAAI,CAAC,4CAA4C,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC;IAC1E,CAAC;IAED,MAAM,IAAI,GAAG,GAAG,CAAC,IAA2C,CAAC;IAC7D,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtC,MAAM,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;IAC9C,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ;YAAE,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QACzF,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ;YAAE,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IACjG,CAAC;IAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;QAChC,MAAM,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;IACpE,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;AAChD,CAAC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Code formatting via Prettier.
3
+ */
4
+ export declare function formatTypeScript(content: string): Promise<string>;
5
+ //# sourceMappingURL=format.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../src/utils/format.ts"],"names":[],"mappings":"AAAA;;GAEG;AAaH,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAMvE"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Code formatting via Prettier.
3
+ */
4
+ import prettier from 'prettier';
5
+ const PRETTIER_OPTIONS = {
6
+ parser: 'typescript',
7
+ semi: true,
8
+ singleQuote: true,
9
+ trailingComma: 'all',
10
+ printWidth: 100,
11
+ tabWidth: 2,
12
+ };
13
+ export async function formatTypeScript(content) {
14
+ try {
15
+ return await prettier.format(content, PRETTIER_OPTIONS);
16
+ }
17
+ catch {
18
+ return content;
19
+ }
20
+ }
21
+ //# sourceMappingURL=format.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format.js","sourceRoot":"","sources":["../../src/utils/format.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,QAAQ,MAAM,UAAU,CAAC;AAEhC,MAAM,gBAAgB,GAAqB;IACzC,MAAM,EAAE,YAAY;IACpB,IAAI,EAAE,IAAI;IACV,WAAW,EAAE,IAAI;IACjB,aAAa,EAAE,KAAK;IACpB,UAAU,EAAE,GAAG;IACf,QAAQ,EAAE,CAAC;CACZ,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,OAAe;IACpD,IAAI,CAAC;QACH,OAAO,MAAM,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;IAC1D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAC;IACjB,CAAC;AACH,CAAC"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Name transformation utilities.
3
+ * Ported from SDK Forge — single source of truth for method naming.
4
+ */
5
+ export declare function toMethodName(operationId: string): string;
6
+ export declare function toInterfaceName(tag: string): string;
7
+ export declare function toFactoryName(tag: string): string;
8
+ export declare function toFileName(tag: string): string;
9
+ export declare function toTypeName(name: string): string;
10
+ export declare function toPropertyName(name: string): string;
11
+ export declare function toClientName(title: string): string;
12
+ export declare function deriveOperationId(method: string, path: string): string;
13
+ export interface CleanMethodNameParams {
14
+ operationId?: string;
15
+ summary?: string;
16
+ path: string;
17
+ httpMethod: string;
18
+ tagName: string;
19
+ }
20
+ export declare function deriveCleanMethodName(params: CleanMethodNameParams): string;
21
+ /**
22
+ * Deduplicate method names within a group.
23
+ * Takes an array of names, returns a deduplicated array of the same length.
24
+ */
25
+ export declare function deduplicateMethodNames(names: string[]): string[];
26
+ //# sourceMappingURL=naming.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"naming.d.ts","sourceRoot":"","sources":["../../src/utils/naming.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAExD;AACD,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEnD;AACD,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEjD;AACD,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE9C;AACD,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE/C;AACD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEnD;AACD,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAElD;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAOtE;AA0MD,MAAM,WAAW,qBAAqB;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,qBAAqB,GAAG,MAAM,CAW3E;AAID;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAoBhE"}