@hstm-labs/forge-architect 0.1.9 → 0.1.10
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.
- package/dist/api-style-resolver.d.ts +7 -5
- package/dist/api-style-resolver.d.ts.map +1 -1
- package/dist/api-style-resolver.js +14 -8
- package/dist/api-style-resolver.js.map +1 -1
- package/dist/architect-stage.d.ts.map +1 -1
- package/dist/architect-stage.js +4 -4
- package/dist/architect-stage.js.map +1 -1
- package/package.json +6 -6
|
@@ -2,20 +2,22 @@
|
|
|
2
2
|
* Resolve the API style for architecture generation.
|
|
3
3
|
*
|
|
4
4
|
* Precedence chain:
|
|
5
|
-
* 1.
|
|
6
|
-
* 2.
|
|
7
|
-
* 3.
|
|
5
|
+
* 1. Config override (e.g. from verify-stage resolution or user) → use it
|
|
6
|
+
* 2. Specification declares API style → use it
|
|
7
|
+
* 3. Profile suggests default API style → use it
|
|
8
|
+
* 4. Both silent → default to GraphQL
|
|
8
9
|
*/
|
|
9
10
|
import type { ParsedSpecification } from '@hstm-labs/forge-spec-parser';
|
|
10
11
|
import type { TechnologyProfile } from '@hstm-labs/forge-profiles';
|
|
11
12
|
/** Supported API styles. */
|
|
12
13
|
export type ApiStyle = 'rest' | 'graphql' | 'grpc';
|
|
13
14
|
/**
|
|
14
|
-
* Resolve the API style from specification and profile.
|
|
15
|
+
* Resolve the API style from config, specification, and profile.
|
|
15
16
|
*
|
|
16
17
|
* @param spec - Parsed specification (may declare apiStyle)
|
|
17
18
|
* @param profile - Technology profile (may suggest defaultApiStyle)
|
|
19
|
+
* @param configApiType - Optional override from forge.config.json (e.g. set by verify or user)
|
|
18
20
|
* @returns Resolved API style
|
|
19
21
|
*/
|
|
20
|
-
export declare function resolveApiStyle(spec: ParsedSpecification, profile: TechnologyProfile): ApiStyle;
|
|
22
|
+
export declare function resolveApiStyle(spec: ParsedSpecification, profile: TechnologyProfile, configApiType?: 'rest' | 'graphql' | undefined): ApiStyle;
|
|
21
23
|
//# sourceMappingURL=api-style-resolver.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-style-resolver.d.ts","sourceRoot":"","sources":["../src/api-style-resolver.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"api-style-resolver.d.ts","sourceRoot":"","sources":["../src/api-style-resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAEnE,4BAA4B;AAC5B,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC;AAEnD;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,mBAAmB,EACzB,OAAO,EAAE,iBAAiB,EAC1B,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,GAC7C,QAAQ,CAkBV"}
|
|
@@ -2,27 +2,33 @@
|
|
|
2
2
|
* Resolve the API style for architecture generation.
|
|
3
3
|
*
|
|
4
4
|
* Precedence chain:
|
|
5
|
-
* 1.
|
|
6
|
-
* 2.
|
|
7
|
-
* 3.
|
|
5
|
+
* 1. Config override (e.g. from verify-stage resolution or user) → use it
|
|
6
|
+
* 2. Specification declares API style → use it
|
|
7
|
+
* 3. Profile suggests default API style → use it
|
|
8
|
+
* 4. Both silent → default to GraphQL
|
|
8
9
|
*/
|
|
9
10
|
/**
|
|
10
|
-
* Resolve the API style from specification and profile.
|
|
11
|
+
* Resolve the API style from config, specification, and profile.
|
|
11
12
|
*
|
|
12
13
|
* @param spec - Parsed specification (may declare apiStyle)
|
|
13
14
|
* @param profile - Technology profile (may suggest defaultApiStyle)
|
|
15
|
+
* @param configApiType - Optional override from forge.config.json (e.g. set by verify or user)
|
|
14
16
|
* @returns Resolved API style
|
|
15
17
|
*/
|
|
16
|
-
export function resolveApiStyle(spec, profile) {
|
|
17
|
-
// 1.
|
|
18
|
+
export function resolveApiStyle(spec, profile, configApiType) {
|
|
19
|
+
// 1. Config override (verify-stage or user)
|
|
20
|
+
if (configApiType !== undefined) {
|
|
21
|
+
return configApiType;
|
|
22
|
+
}
|
|
23
|
+
// 2. Spec declares → use it
|
|
18
24
|
if (spec.apiStyle !== undefined) {
|
|
19
25
|
return spec.apiStyle;
|
|
20
26
|
}
|
|
21
|
-
//
|
|
27
|
+
// 3. Profile suggests → use it
|
|
22
28
|
if (profile.defaultApiStyle !== undefined) {
|
|
23
29
|
return profile.defaultApiStyle;
|
|
24
30
|
}
|
|
25
|
-
//
|
|
31
|
+
// 4. Both silent → default GraphQL
|
|
26
32
|
return 'graphql';
|
|
27
33
|
}
|
|
28
34
|
//# sourceMappingURL=api-style-resolver.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-style-resolver.js","sourceRoot":"","sources":["../src/api-style-resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;
|
|
1
|
+
{"version":3,"file":"api-style-resolver.js","sourceRoot":"","sources":["../src/api-style-resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAQH;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe,CAC7B,IAAyB,EACzB,OAA0B,EAC1B,aAA8C;IAE9C,4CAA4C;IAC5C,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;QAChC,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,4BAA4B;IAC5B,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QAChC,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,+BAA+B;IAC/B,IAAI,OAAO,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;QAC1C,OAAO,OAAO,CAAC,eAAe,CAAC;IACjC,CAAC;IAED,mCAAmC;IACnC,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"architect-stage.d.ts","sourceRoot":"","sources":["../src/architect-stage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEzD,OAAO,KAAK,EACV,aAAa,EACb,kBAAkB,EAClB,mBAAmB,EACnB,eAAe,EACf,kBAAkB,EACnB,MAAM,uBAAuB,CAAC;AAU/B;;;;;;;;;;;;;;GAcG;AACH,qBAAa,cAAe,YAAW,aAAa;IAClD,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAe;IACvC,QAAQ,CAAC,SAAS,EAAE,SAAS,EAAE,CAAgB;IAC/C,QAAQ,CAAC,WAAW,QAAQ;IAE5B;;;;;;OAMG;IACH,eAAe,CACb,KAAK,EAAE,kBAAkB,EACzB,OAAO,EAAE,eAAe,GACvB,kBAAkB;
|
|
1
|
+
{"version":3,"file":"architect-stage.d.ts","sourceRoot":"","sources":["../src/architect-stage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEzD,OAAO,KAAK,EACV,aAAa,EACb,kBAAkB,EAClB,mBAAmB,EACnB,eAAe,EACf,kBAAkB,EACnB,MAAM,uBAAuB,CAAC;AAU/B;;;;;;;;;;;;;;GAcG;AACH,qBAAa,cAAe,YAAW,aAAa;IAClD,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAe;IACvC,QAAQ,CAAC,SAAS,EAAE,SAAS,EAAE,CAAgB;IAC/C,QAAQ,CAAC,WAAW,QAAQ;IAE5B;;;;;;OAMG;IACH,eAAe,CACb,KAAK,EAAE,kBAAkB,EACzB,OAAO,EAAE,eAAe,GACvB,kBAAkB;IA+CrB;;;;;;;;OAQG;IACG,OAAO,CACX,KAAK,EAAE,kBAAkB,EACzB,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,mBAAmB,CAAC;CA6HhC"}
|
package/dist/architect-stage.js
CHANGED
|
@@ -51,8 +51,8 @@ export class ArchitectStage {
|
|
|
51
51
|
const parsedSpec = input['validate']?.data?.['parsedSpec'];
|
|
52
52
|
const profile = loadProfile(context.config.profileName, context.workspace.rootDir);
|
|
53
53
|
const resolvedApiStyle = parsedSpec
|
|
54
|
-
? resolveApiStyle(parsedSpec, profile)
|
|
55
|
-
: 'graphql';
|
|
54
|
+
? resolveApiStyle(parsedSpec, profile, context.config.apiType)
|
|
55
|
+
: (context.config.apiType ?? 'graphql');
|
|
56
56
|
const outputDir = join(context.workspace.forgeDir, 'runs', context.runId, 'stages', 'architect', 'artifacts');
|
|
57
57
|
const agentTemplate = loadTemplate('architect-agent', context.workspace.rootDir);
|
|
58
58
|
const rendered = renderTemplate(agentTemplate, {
|
|
@@ -91,8 +91,8 @@ export class ArchitectStage {
|
|
|
91
91
|
}
|
|
92
92
|
// 2. Load profile
|
|
93
93
|
const profile = loadProfile(context.config.profileName, context.workspace.rootDir);
|
|
94
|
-
// 3. Resolve API style (spec → profile → default GraphQL)
|
|
95
|
-
const resolvedApiStyle = resolveApiStyle(parsedSpec, profile);
|
|
94
|
+
// 3. Resolve API style (config → spec → profile → default GraphQL)
|
|
95
|
+
const resolvedApiStyle = resolveApiStyle(parsedSpec, profile, context.config.apiType);
|
|
96
96
|
// 4. Compute output directory
|
|
97
97
|
const outputDir = join(context.workspace.forgeDir, 'runs', context.runId, 'stages', 'architect', 'artifacts');
|
|
98
98
|
// 5. Load and render templates
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"architect-stage.js","sourceRoot":"","sources":["../src/architect-stage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEnD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAQ9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAG1E,OAAO,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D;;;;;;;;;;;;;;GAcG;AACH,MAAM,OAAO,cAAc;IAChB,IAAI,GAAc,WAAW,CAAC;IAC9B,SAAS,GAAgB,CAAC,UAAU,CAAC,CAAC;IACtC,WAAW,GAAG,IAAI,CAAC;IAE5B;;;;;;OAMG;IACH,eAAe,CACb,KAAyB,EACzB,OAAwB;QAExB,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,CAAC,YAAY,CAE5C,CAAC;QAEd,MAAM,OAAO,GAAG,WAAW,CACzB,OAAO,CAAC,MAAM,CAAC,WAAW,EAC1B,OAAO,CAAC,SAAS,CAAC,OAAO,CAC1B,CAAC;QAEF,MAAM,gBAAgB,GAAG,UAAU;YACjC,CAAC,CAAC,eAAe,
|
|
1
|
+
{"version":3,"file":"architect-stage.js","sourceRoot":"","sources":["../src/architect-stage.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hstm-labs/forge-architect",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.10",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -16,10 +16,10 @@
|
|
|
16
16
|
"prepublishOnly": "npm run build"
|
|
17
17
|
},
|
|
18
18
|
"dependencies": {
|
|
19
|
-
"@hstm-labs/forge-common": "0.1.
|
|
20
|
-
"@hstm-labs/forge-core": "0.1.
|
|
21
|
-
"@hstm-labs/forge-spec-parser": "0.1.
|
|
22
|
-
"@hstm-labs/forge-profiles": "0.1.
|
|
23
|
-
"@hstm-labs/forge-templates": "0.1.
|
|
19
|
+
"@hstm-labs/forge-common": "0.1.10",
|
|
20
|
+
"@hstm-labs/forge-core": "0.1.10",
|
|
21
|
+
"@hstm-labs/forge-spec-parser": "0.1.10",
|
|
22
|
+
"@hstm-labs/forge-profiles": "0.1.10",
|
|
23
|
+
"@hstm-labs/forge-templates": "0.1.10"
|
|
24
24
|
}
|
|
25
25
|
}
|