Skip to content

Commit e700ed2

Browse files
authored
Merge pull request #417 from OpenAPI-Qraft/chore/update-deps
chore: update dependencies
2 parents 9fbf464 + 4f646ec commit e700ed2

33 files changed

Lines changed: 2624 additions & 3090 deletions

File tree

.changeset/khaki-llamas-find.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
---
2+
'@openapi-qraft/tanstack-query-react-plugin': minor
3+
'@qraft/asyncapi-typescript-plugin': minor
4+
'@openapi-qraft/tanstack-query-react-types': minor
5+
'@openapi-qraft/openapi-typescript-plugin': minor
6+
'@openapi-qraft/ts-factory-code-generator': minor
7+
'@openapi-qraft/eslint-plugin-query': minor
8+
'@qraft/asyncapi-plugin': minor
9+
'@openapi-qraft/plugin': minor
10+
'@openapi-qraft/eslint-config': minor
11+
'@openapi-qraft/rollup-config': minor
12+
'@openapi-qraft/react': minor
13+
'@openapi-qraft/cli': minor
14+
'@qraft/test-utils': minor
15+
'@qraft/cli-utils': minor
16+
'@qraft/plugin': minor
17+
'@qraft/cli': minor
18+
---
19+
20+
Updated repository dependencies to current compatible versions across the workspace.

.changeset/tender-peaches-cheat.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@qraft/asyncapi-plugin': patch
3+
---
4+
5+
Refactored AsyncAPI enum-values ref resolution to match openapi-typescript@7.13.0 while keeping the main schema transform flow readable.

.changeset/whole-brooms-divide.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
---
2+
'@openapi-qraft/tanstack-query-react-plugin': minor
3+
'@qraft/asyncapi-typescript-plugin': minor
4+
'@openapi-qraft/tanstack-query-react-types': minor
5+
'@openapi-qraft/openapi-typescript-plugin': minor
6+
'@openapi-qraft/ts-factory-code-generator': minor
7+
'@openapi-qraft/eslint-plugin-query': minor
8+
'@qraft/asyncapi-plugin': minor
9+
'@openapi-qraft/plugin': minor
10+
---
11+
12+
Updated the openapi-typescript package to the current compatible version.

e2e/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
},
1414
"packageManager": "yarn@3.5.0",
1515
"devDependencies": {
16-
"rimraf": "^6.1.2",
16+
"rimraf": "^6.1.3",
1717
"verdaccio": "^5.33.0"
1818
}
1919
}

package.json

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,12 @@
1212
"typecheck": "turbo run typecheck --output-logs=new-only"
1313
},
1414
"devDependencies": {
15-
"@changesets/cli": "^2.29.8",
16-
"@ianvs/prettier-plugin-sort-imports": "^4.3.1",
17-
"knip": "^5.62.0",
15+
"@changesets/cli": "^2.30.0",
16+
"@ianvs/prettier-plugin-sort-imports": "^4.7.1",
17+
"knip": "^6.2.0",
1818
"prettier": "^3.7.3",
19-
"turbo": "^2.6.1",
20-
"typescript": "^5.6.2"
19+
"turbo": "^2.9.3",
20+
"typescript": "^5.9.3"
2121
},
2222
"workspaces": [
2323
"packages/*",

packages/asyncapi-plugin/package.json

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -34,22 +34,22 @@
3434
"dependencies": {
3535
"@qraft/plugin": "workspace:*",
3636
"ansi-colors": "^4.1.3",
37-
"commander": "^14.0.2",
38-
"js-yaml": "^4.1.0",
39-
"ora": "^8.2.0"
37+
"commander": "^14.0.3",
38+
"js-yaml": "^4.1.1",
39+
"ora": "^9.3.0"
4040
},
4141
"devDependencies": {
42-
"@asyncapi/parser": "^3.4.0",
42+
"@asyncapi/parser": "^3.6.0",
4343
"@openapi-qraft/eslint-config": "workspace:*",
4444
"@openapi-qraft/rollup-config": "workspace:*",
4545
"@types/js-yaml": "^4.0.9",
46-
"@types/node": "^20.16.5",
47-
"eslint": "^9.39.1",
48-
"memfs": "^4.56.10",
49-
"rimraf": "^6.1.2",
50-
"rollup": "~4.22.5",
46+
"@types/node": "^20.19.37",
47+
"eslint": "^10.1.0",
48+
"memfs": "^4.57.1",
49+
"rimraf": "^6.1.3",
50+
"rollup": "~4.60.1",
5151
"rollup-plugin-rename-node-modules": "^1.3.1",
52-
"typescript": "^5.6.2"
52+
"typescript": "^5.9.3"
5353
},
5454
"files": [
5555
"dist",

packages/asyncapi-typescript-plugin/augmentation/openapi-typescript.d.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,9 +54,15 @@ declare module 'openapi-typescript/dist/lib/ts.js' {
5454

5555
type OapiRefResolved = Referenced<ParameterObject>;
5656

57+
export interface OapiRefOptions {
58+
deep?: boolean;
59+
extractProperties?: string[];
60+
}
61+
5762
export function oapiRef(
5863
path: string,
59-
resolved?: OapiRefResolved
64+
resolved?: OapiRefResolved,
65+
options?: OapiRefOptions
6066
): ts.TypeNode;
6167

6268
export interface AstToStringOptions {

packages/asyncapi-typescript-plugin/package.json

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -37,20 +37,20 @@
3737
"@qraft/asyncapi-plugin": "workspace:^",
3838
"@qraft/cli-utils": "workspace:*",
3939
"@qraft/plugin": "workspace:^",
40-
"@redocly/openapi-core": "^1.34.5",
40+
"@redocly/openapi-core": "^1.34.11",
4141
"ansi-colors": "^4.1.3",
42-
"commander": "^14.0.2",
43-
"openapi-typescript": "^7.10.1",
44-
"typescript": "^5.6.2"
42+
"commander": "^14.0.3",
43+
"openapi-typescript": "^7.13.0",
44+
"typescript": "^5.9.3"
4545
},
4646
"devDependencies": {
4747
"@openapi-qraft/eslint-config": "workspace:*",
4848
"@qraft/test-utils": "workspace:*",
49-
"@types/node": "^20.16.5",
50-
"eslint": "^9.39.1",
51-
"memfs": "^4.56.10",
52-
"rimraf": "^6.1.2",
53-
"vitest": "^3.2.4"
49+
"@types/node": "^20.19.37",
50+
"eslint": "^10.1.0",
51+
"memfs": "^4.57.1",
52+
"rimraf": "^6.1.3",
53+
"vitest": "^4.1.2"
5454
},
5555
"files": [
5656
"dist",

packages/asyncapi-typescript-plugin/src/__snapshots__/with-enum-values.ts.snapshot.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -478,9 +478,12 @@ export interface components {
478478
};
479479
};
480480
}
481+
type FlattenedDeepRequired<T> = {
482+
[K in keyof T]-?: FlattenedDeepRequired<T[K] extends unknown[] | undefined | null ? Extract<T[K], unknown[]>[number] : T[K]>;
483+
};
481484
type ReadonlyArray<T> = [
482485
Exclude<T, undefined>
483486
] extends [
484487
unknown[]
485488
] ? Readonly<Exclude<T, undefined>> : Readonly<Exclude<T, undefined>[]>;
486-
export const turnOnOffPayloadCommandValues: ReadonlyArray<components["schemas"]["turnOnOffPayload"]["command"]> = ["on", "off"];
489+
export const turnOnOffPayloadCommandValues: ReadonlyArray<FlattenedDeepRequired<components>["schemas"]["turnOnOffPayload"]["command"]> = ["on", "off"];

packages/asyncapi-typescript-plugin/src/transform/schema-object.ts

Lines changed: 53 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -137,18 +137,23 @@ function transformSchemaObjectWithComposition(
137137
(v) => typeof v === 'string' || typeof v === 'number'
138138
)
139139
) {
140-
let enumValuesVariableName = parseRef(options.path ?? '').pointer.join(
141-
'/'
142-
);
140+
const parsed = parseRef(options.path ?? '');
141+
let enumValuesVariableName = parsed.pointer.join('/');
143142
enumValuesVariableName = enumValuesVariableName.replace(
144143
'components/schemas',
145144
''
146145
);
147146
enumValuesVariableName = `${enumValuesVariableName}Values`;
147+
const { cleanedRefPath, extractProperties } = createEnumValuesRefOptions(
148+
parsed.pointer
149+
);
148150

149151
const enumValuesArray = tsArrayLiteralExpression(
150152
enumValuesVariableName,
151-
oapiRef(options.path ?? ''),
153+
oapiRef(cleanedRefPath, undefined, {
154+
deep: true,
155+
extractProperties,
156+
}),
152157
schemaObject.enum as (string | number)[],
153158
{
154159
export: true,
@@ -531,3 +536,47 @@ function hasKey<K extends string>(
531536
key in possibleObject
532537
);
533538
}
539+
540+
function createEnumValuesRefOptions(pointer: string[]): {
541+
cleanedRefPath: string;
542+
extractProperties: string[];
543+
} {
544+
// Keep this logic in sync with upstream openapi-typescript enum-values
545+
// handling:
546+
// https://github.com/openapi-ts/openapi-typescript/blob/v7.13.0/packages/openapi-typescript/src/transform/schema-object.ts
547+
const cleanedPointer: string[] = [];
548+
const extractProperties: string[] = [];
549+
550+
for (let i = 0; i < pointer.length; i++) {
551+
const segment = pointer[i];
552+
553+
if (
554+
(segment === 'anyOf' || segment === 'oneOf') &&
555+
i < pointer.length - 1
556+
) {
557+
const next = pointer[i + 1];
558+
559+
if (/^\d+$/.test(next)) {
560+
i++;
561+
562+
// Collect every remaining real property segment after the union index.
563+
// We skip union markers and numeric indices themselves.
564+
const remainingSegments = pointer.slice(i + 1);
565+
for (const seg of remainingSegments) {
566+
if (seg !== 'anyOf' && seg !== 'oneOf' && !/^\d+$/.test(seg)) {
567+
extractProperties.push(seg);
568+
}
569+
}
570+
571+
continue;
572+
}
573+
}
574+
575+
cleanedPointer.push(segment);
576+
}
577+
578+
return {
579+
cleanedRefPath: createRef(cleanedPointer),
580+
extractProperties,
581+
};
582+
}

0 commit comments

Comments
 (0)