@typespec/http-server-js 0.58.0-alpha.13-dev.7 → 0.58.0-alpha.13-dev.9
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/.testignore +0 -2
- package/README.md +6 -0
- package/build-helpers.ts +57 -12
- package/dist/generated-defs/helpers/index.d.ts.map +1 -1
- package/dist/generated-defs/helpers/index.js +1 -0
- package/dist/generated-defs/helpers/index.js.map +1 -1
- package/dist/generated-defs/helpers/temporal/index.d.ts +4 -0
- package/dist/generated-defs/helpers/temporal/index.d.ts.map +1 -0
- package/dist/generated-defs/helpers/temporal/index.js +19 -0
- package/dist/generated-defs/helpers/temporal/index.js.map +1 -0
- package/dist/generated-defs/helpers/temporal/native.d.ts +4 -0
- package/dist/generated-defs/helpers/temporal/native.d.ts.map +1 -0
- package/dist/generated-defs/helpers/temporal/native.js +125 -0
- package/dist/generated-defs/helpers/temporal/native.js.map +1 -0
- package/dist/generated-defs/helpers/temporal/polyfill.d.ts +4 -0
- package/dist/generated-defs/helpers/temporal/polyfill.d.ts.map +1 -0
- package/dist/generated-defs/helpers/temporal/polyfill.js +124 -0
- package/dist/generated-defs/helpers/temporal/polyfill.js.map +1 -0
- package/dist/generated-defs/package.json.d.ts +2 -0
- package/dist/generated-defs/package.json.d.ts.map +1 -0
- package/dist/generated-defs/package.json.js +37 -0
- package/dist/generated-defs/package.json.js.map +1 -0
- package/dist/src/common/declaration.js +1 -1
- package/dist/src/common/declaration.js.map +1 -1
- package/dist/src/common/scalar.d.ts +1 -1
- package/dist/src/common/scalar.d.ts.map +1 -1
- package/dist/src/common/scalar.js +373 -48
- package/dist/src/common/scalar.js.map +1 -1
- package/dist/src/common/serialization/index.d.ts +2 -2
- package/dist/src/common/serialization/index.d.ts.map +1 -1
- package/dist/src/common/serialization/index.js +3 -9
- package/dist/src/common/serialization/index.js.map +1 -1
- package/dist/src/common/serialization/json.d.ts +2 -0
- package/dist/src/common/serialization/json.d.ts.map +1 -1
- package/dist/src/common/serialization/json.js +10 -19
- package/dist/src/common/serialization/json.js.map +1 -1
- package/dist/src/helpers/temporal/native.d.ts +40 -0
- package/dist/src/helpers/temporal/native.d.ts.map +1 -0
- package/dist/src/helpers/temporal/native.js +81 -0
- package/dist/src/helpers/temporal/native.js.map +1 -0
- package/dist/src/helpers/temporal/polyfill.d.ts +41 -0
- package/dist/src/helpers/temporal/polyfill.d.ts.map +1 -0
- package/dist/src/helpers/temporal/polyfill.js +80 -0
- package/dist/src/helpers/temporal/polyfill.js.map +1 -0
- package/dist/src/http/server/index.d.ts.map +1 -1
- package/dist/src/http/server/index.js +4 -1
- package/dist/src/http/server/index.js.map +1 -1
- package/dist/src/lib.d.ts +9 -0
- package/dist/src/lib.d.ts.map +1 -1
- package/dist/src/lib.js +7 -0
- package/dist/src/lib.js.map +1 -1
- package/dist/src/scripts/scaffold/bin.d.mts.map +1 -1
- package/dist/src/scripts/scaffold/bin.mjs +91 -53
- package/dist/src/scripts/scaffold/bin.mjs.map +1 -1
- package/dist/src/scripts/scaffold/data-mocks.d.ts.map +1 -1
- package/dist/src/scripts/scaffold/data-mocks.js +74 -15
- package/dist/src/scripts/scaffold/data-mocks.js.map +1 -1
- package/generated-defs/helpers/index.ts +1 -0
- package/generated-defs/helpers/temporal/index.ts +25 -0
- package/generated-defs/helpers/temporal/native.ts +132 -0
- package/generated-defs/helpers/temporal/polyfill.ts +131 -0
- package/generated-defs/package.json.ts +38 -0
- package/package.json +11 -3
- package/src/common/declaration.ts +1 -1
- package/src/common/scalar.ts +430 -61
- package/src/common/serialization/index.ts +4 -13
- package/src/common/serialization/json.ts +22 -25
- package/src/helpers/temporal/native.ts +104 -0
- package/src/helpers/temporal/polyfill.ts +103 -0
- package/src/http/server/index.ts +6 -1
- package/src/lib.ts +17 -0
- package/src/scripts/scaffold/bin.mts +106 -53
- package/src/scripts/scaffold/data-mocks.ts +81 -16
- package/temp/tsconfig.tsbuildinfo +1 -1
- package/test/scalar.test.ts +547 -97
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
// Copyright (c) Microsoft Corporation
|
|
2
|
+
// Licensed under the MIT license.
|
|
3
|
+
|
|
4
|
+
import { Module } from "../../../src/ctx.js";
|
|
5
|
+
|
|
6
|
+
export let module: Module = undefined as any;
|
|
7
|
+
|
|
8
|
+
export async function createModule(parent: Module): Promise<Module> {
|
|
9
|
+
if (module) return module;
|
|
10
|
+
|
|
11
|
+
module = {
|
|
12
|
+
name: "temporal",
|
|
13
|
+
cursor: parent.cursor.enter("temporal"),
|
|
14
|
+
imports: [],
|
|
15
|
+
declarations: [],
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
// Child modules
|
|
19
|
+
await import("./native.js").then((m) => m.createModule(module));
|
|
20
|
+
await import("./polyfill.js").then((m) => m.createModule(module));
|
|
21
|
+
|
|
22
|
+
parent.declarations.push(module);
|
|
23
|
+
|
|
24
|
+
return module;
|
|
25
|
+
}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
// Copyright (c) Microsoft Corporation
|
|
2
|
+
// Licensed under the MIT license.
|
|
3
|
+
|
|
4
|
+
import { Module } from "../../../src/ctx.js";
|
|
5
|
+
|
|
6
|
+
export let module: Module = undefined as any;
|
|
7
|
+
|
|
8
|
+
// prettier-ignore
|
|
9
|
+
const lines = [
|
|
10
|
+
"// Copyright (c) Microsoft Corporation",
|
|
11
|
+
"// Licensed under the MIT license.",
|
|
12
|
+
"",
|
|
13
|
+
"// Due to the lack of generally-available global type definitions for Temporal, we use `any` throughout this module.",
|
|
14
|
+
"// When global.d.ts eventually has definitions for Temporal, we can unify this module with `polyfill.ts`.",
|
|
15
|
+
"",
|
|
16
|
+
"/**",
|
|
17
|
+
" * Parses an HTTP date string (e.g. `Wed, 21 Oct 2015 07:28:00 GMT`) into a `Temporal.Instant`.",
|
|
18
|
+
" * The date string must be in the format specified by RFC 7231.",
|
|
19
|
+
" *",
|
|
20
|
+
" * @param httpDate - The HTTP date string to parse.",
|
|
21
|
+
" * @throws {RangeError} If the date string is invalid or cannot be parsed.",
|
|
22
|
+
" * @returns The parsed `Temporal.Instant`.",
|
|
23
|
+
" */",
|
|
24
|
+
"export function parseHttpDate(httpDate: string): any {",
|
|
25
|
+
" const timestamp = globalThis.Date.parse(httpDate);",
|
|
26
|
+
"",
|
|
27
|
+
" if (isNaN(timestamp)) {",
|
|
28
|
+
" throw new RangeError(`Invalid HTTP date: ${httpDate}`);",
|
|
29
|
+
" }",
|
|
30
|
+
"",
|
|
31
|
+
" return (globalThis as any).Temporal.Instant.fromEpochMilliseconds(timestamp);",
|
|
32
|
+
"}",
|
|
33
|
+
"",
|
|
34
|
+
"/**",
|
|
35
|
+
" * Formats a `Temporal.Instant` into an HTTP date string (e.g. `Wed, 21 Oct 2015 07:28:00 GMT`).",
|
|
36
|
+
" * The date string is formatted according to RFC 7231.",
|
|
37
|
+
" *",
|
|
38
|
+
" * @param instant - The `Temporal.Instant` to format.",
|
|
39
|
+
" * @returns The formatted HTTP date string.",
|
|
40
|
+
" */",
|
|
41
|
+
"export function formatHttpDate(instant: any) {",
|
|
42
|
+
" const date = new Date(instant.epochMilliseconds);",
|
|
43
|
+
" return date.toUTCString();",
|
|
44
|
+
"}",
|
|
45
|
+
"",
|
|
46
|
+
"/**",
|
|
47
|
+
" * Converts a `Temporal.Duration` to a number of seconds.",
|
|
48
|
+
" * This method will throw an Error if the duration contains any years, months, weeks, or days, as those require a reference",
|
|
49
|
+
" * point to calculate the total number of seconds.",
|
|
50
|
+
" *",
|
|
51
|
+
" * WARNING: If the total number of seconds is larger than the maximum safe integer in JavaScript, this method will",
|
|
52
|
+
" * lose precision. @see durationTotalSecondsBigInt for a BigInt alternative.",
|
|
53
|
+
" *",
|
|
54
|
+
" * @param duration - the duration to calculate the total number of seconds for",
|
|
55
|
+
" * @returns the total number of seconds in the duration",
|
|
56
|
+
" */",
|
|
57
|
+
"export function durationTotalSeconds(duration: any): number {",
|
|
58
|
+
" if (",
|
|
59
|
+
" duration.years !== 0 ||",
|
|
60
|
+
" duration.months !== 0 ||",
|
|
61
|
+
" duration.weeks !== 0 ||",
|
|
62
|
+
" duration.days !== 0",
|
|
63
|
+
" ) {",
|
|
64
|
+
" throw new Error(",
|
|
65
|
+
" \"Cannot calculate total seconds for a duration with years, months, weeks, or days.\",",
|
|
66
|
+
" );",
|
|
67
|
+
" }",
|
|
68
|
+
"",
|
|
69
|
+
" return (",
|
|
70
|
+
" duration.seconds +",
|
|
71
|
+
" duration.minutes * 60 +",
|
|
72
|
+
" duration.hours * 60 * 60 +",
|
|
73
|
+
" duration.days * 24 * 60 * 60",
|
|
74
|
+
" );",
|
|
75
|
+
"}",
|
|
76
|
+
"",
|
|
77
|
+
"/**",
|
|
78
|
+
" * Gets the total number of seconds in a duration.",
|
|
79
|
+
" *",
|
|
80
|
+
" * This method will throw an Error if the duration contains any years, months, weeks, or days, as those require a reference",
|
|
81
|
+
" * point to calculate the total number of seconds. It will also throw an error if any of the components are not integers.",
|
|
82
|
+
" *",
|
|
83
|
+
" * @param duration - the duration to calculate the total number of seconds for",
|
|
84
|
+
" * @returns the total number of seconds in the duration",
|
|
85
|
+
" */",
|
|
86
|
+
"export function durationTotalSecondsBigInt(duration: any): bigint {",
|
|
87
|
+
" if (",
|
|
88
|
+
" duration.years !== 0 ||",
|
|
89
|
+
" duration.months !== 0 ||",
|
|
90
|
+
" duration.weeks !== 0 ||",
|
|
91
|
+
" duration.days !== 0",
|
|
92
|
+
" ) {",
|
|
93
|
+
" throw new Error(",
|
|
94
|
+
" \"Cannot calculate total seconds for a duration with years, months, weeks, or days.\",",
|
|
95
|
+
" );",
|
|
96
|
+
" }",
|
|
97
|
+
"",
|
|
98
|
+
" if (",
|
|
99
|
+
" !Number.isInteger(duration.seconds) ||",
|
|
100
|
+
" !Number.isInteger(duration.minutes) ||",
|
|
101
|
+
" !Number.isInteger(duration.hours) ||",
|
|
102
|
+
" !Number.isInteger(duration.days)",
|
|
103
|
+
" ) {",
|
|
104
|
+
" throw new Error(\"Duration components must be integers.\");",
|
|
105
|
+
" }",
|
|
106
|
+
"",
|
|
107
|
+
" return (",
|
|
108
|
+
" BigInt(duration.seconds) +",
|
|
109
|
+
" BigInt(duration.minutes) * 60n +",
|
|
110
|
+
" BigInt(duration.hours) * 60n * 60n +",
|
|
111
|
+
" BigInt(duration.days) * 24n * 60n * 60n",
|
|
112
|
+
" );",
|
|
113
|
+
"}",
|
|
114
|
+
"",
|
|
115
|
+
];
|
|
116
|
+
|
|
117
|
+
export async function createModule(parent: Module): Promise<Module> {
|
|
118
|
+
if (module) return module;
|
|
119
|
+
|
|
120
|
+
module = {
|
|
121
|
+
name: "native",
|
|
122
|
+
cursor: parent.cursor.enter("native"),
|
|
123
|
+
imports: [],
|
|
124
|
+
declarations: [],
|
|
125
|
+
};
|
|
126
|
+
|
|
127
|
+
module.declarations.push(lines);
|
|
128
|
+
|
|
129
|
+
parent.declarations.push(module);
|
|
130
|
+
|
|
131
|
+
return module;
|
|
132
|
+
}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
// Copyright (c) Microsoft Corporation
|
|
2
|
+
// Licensed under the MIT license.
|
|
3
|
+
|
|
4
|
+
import { Module } from "../../../src/ctx.js";
|
|
5
|
+
|
|
6
|
+
export let module: Module = undefined as any;
|
|
7
|
+
|
|
8
|
+
// prettier-ignore
|
|
9
|
+
const lines = [
|
|
10
|
+
"// Copyright (c) Microsoft Corporation",
|
|
11
|
+
"// Licensed under the MIT license.",
|
|
12
|
+
"",
|
|
13
|
+
"import { Temporal } from \"temporal-polyfill\";",
|
|
14
|
+
"",
|
|
15
|
+
"/**",
|
|
16
|
+
" * Parses an HTTP date string (e.g. `Wed, 21 Oct 2015 07:28:00 GMT`) into a `Temporal.Instant`.",
|
|
17
|
+
" * The date string must be in the format specified by RFC 7231.",
|
|
18
|
+
" *",
|
|
19
|
+
" * @param httpDate - The HTTP date string to parse.",
|
|
20
|
+
" * @throws {RangeError} If the date string is invalid or cannot be parsed.",
|
|
21
|
+
" * @returns The parsed `Temporal.Instant`.",
|
|
22
|
+
" */",
|
|
23
|
+
"export function parseHttpDate(httpDate: string): Temporal.Instant {",
|
|
24
|
+
" const timestamp = globalThis.Date.parse(httpDate);",
|
|
25
|
+
"",
|
|
26
|
+
" if (isNaN(timestamp)) {",
|
|
27
|
+
" throw new RangeError(`Invalid HTTP date: ${httpDate}`);",
|
|
28
|
+
" }",
|
|
29
|
+
"",
|
|
30
|
+
" return Temporal.Instant.fromEpochMilliseconds(timestamp);",
|
|
31
|
+
"}",
|
|
32
|
+
"",
|
|
33
|
+
"/**",
|
|
34
|
+
" * Formats a `Temporal.Instant` into an HTTP date string (e.g. `Wed, 21 Oct 2015 07:28:00 GMT`).",
|
|
35
|
+
" * The date string is formatted according to RFC 7231.",
|
|
36
|
+
" *",
|
|
37
|
+
" * @param instant - The `Temporal.Instant` to format.",
|
|
38
|
+
" * @returns The formatted HTTP date string.",
|
|
39
|
+
" */",
|
|
40
|
+
"export function formatHttpDate(instant: Temporal.Instant) {",
|
|
41
|
+
" const date = new Date(instant.epochMilliseconds);",
|
|
42
|
+
" return date.toUTCString();",
|
|
43
|
+
"}",
|
|
44
|
+
"",
|
|
45
|
+
"/**",
|
|
46
|
+
" * Converts a `Temporal.Duration` to a number of seconds.",
|
|
47
|
+
" * This method will throw an Error if the duration contains any years, months, weeks, or days, as those require a reference",
|
|
48
|
+
" * point to calculate the total number of seconds.",
|
|
49
|
+
" *",
|
|
50
|
+
" * WARNING: If the total number of seconds is larger than the maximum safe integer in JavaScript, this method will",
|
|
51
|
+
" * lose precision. @see durationTotalSecondsBigInt for a BigInt alternative.",
|
|
52
|
+
" *",
|
|
53
|
+
" * @param duration - the duration to calculate the total number of seconds for",
|
|
54
|
+
" * @returns the total number of seconds in the duration",
|
|
55
|
+
" */",
|
|
56
|
+
"export function durationTotalSeconds(duration: Temporal.Duration): number {",
|
|
57
|
+
" if (",
|
|
58
|
+
" duration.years !== 0 ||",
|
|
59
|
+
" duration.months !== 0 ||",
|
|
60
|
+
" duration.weeks !== 0 ||",
|
|
61
|
+
" duration.days !== 0",
|
|
62
|
+
" ) {",
|
|
63
|
+
" throw new Error(",
|
|
64
|
+
" \"Cannot calculate total seconds for a duration with years, months, weeks, or days.\",",
|
|
65
|
+
" );",
|
|
66
|
+
" }",
|
|
67
|
+
"",
|
|
68
|
+
" return (",
|
|
69
|
+
" duration.seconds +",
|
|
70
|
+
" duration.minutes * 60 +",
|
|
71
|
+
" duration.hours * 60 * 60 +",
|
|
72
|
+
" duration.days * 24 * 60 * 60",
|
|
73
|
+
" );",
|
|
74
|
+
"}",
|
|
75
|
+
"",
|
|
76
|
+
"/**",
|
|
77
|
+
" * Gets the total number of seconds in a duration.",
|
|
78
|
+
" *",
|
|
79
|
+
" * This method will throw an Error if the duration contains any years, months, weeks, or days, as those require a reference",
|
|
80
|
+
" * point to calculate the total number of seconds. It will also throw an error if any of the components are not integers.",
|
|
81
|
+
" *",
|
|
82
|
+
" * @param duration - the duration to calculate the total number of seconds for",
|
|
83
|
+
" * @returns the total number of seconds in the duration",
|
|
84
|
+
" */",
|
|
85
|
+
"export function durationTotalSecondsBigInt(duration: Temporal.Duration): bigint {",
|
|
86
|
+
" if (",
|
|
87
|
+
" duration.years !== 0 ||",
|
|
88
|
+
" duration.months !== 0 ||",
|
|
89
|
+
" duration.weeks !== 0 ||",
|
|
90
|
+
" duration.days !== 0",
|
|
91
|
+
" ) {",
|
|
92
|
+
" throw new Error(",
|
|
93
|
+
" \"Cannot calculate total seconds for a duration with years, months, weeks, or days.\",",
|
|
94
|
+
" );",
|
|
95
|
+
" }",
|
|
96
|
+
"",
|
|
97
|
+
" if (",
|
|
98
|
+
" !Number.isInteger(duration.seconds) ||",
|
|
99
|
+
" !Number.isInteger(duration.minutes) ||",
|
|
100
|
+
" !Number.isInteger(duration.hours) ||",
|
|
101
|
+
" !Number.isInteger(duration.days)",
|
|
102
|
+
" ) {",
|
|
103
|
+
" throw new Error(\"Duration components must be integers.\");",
|
|
104
|
+
" }",
|
|
105
|
+
"",
|
|
106
|
+
" return (",
|
|
107
|
+
" BigInt(duration.seconds) +",
|
|
108
|
+
" BigInt(duration.minutes) * 60n +",
|
|
109
|
+
" BigInt(duration.hours) * 60n * 60n +",
|
|
110
|
+
" BigInt(duration.days) * 24n * 60n * 60n",
|
|
111
|
+
" );",
|
|
112
|
+
"}",
|
|
113
|
+
"",
|
|
114
|
+
];
|
|
115
|
+
|
|
116
|
+
export async function createModule(parent: Module): Promise<Module> {
|
|
117
|
+
if (module) return module;
|
|
118
|
+
|
|
119
|
+
module = {
|
|
120
|
+
name: "polyfill",
|
|
121
|
+
cursor: parent.cursor.enter("polyfill"),
|
|
122
|
+
imports: [],
|
|
123
|
+
declarations: [],
|
|
124
|
+
};
|
|
125
|
+
|
|
126
|
+
module.declarations.push(lines);
|
|
127
|
+
|
|
128
|
+
parent.declarations.push(module);
|
|
129
|
+
|
|
130
|
+
return module;
|
|
131
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
// Copyright (c) Microsoft Corporation
|
|
2
|
+
// Licensed under the MIT license.
|
|
3
|
+
|
|
4
|
+
// prettier-ignore
|
|
5
|
+
|
|
6
|
+
export const hsjsDependencies: Record<string, string> = {
|
|
7
|
+
"@types/express": "^5.0.1",
|
|
8
|
+
"@types/morgan": "^1.9.9",
|
|
9
|
+
"@types/node": "~22.13.11",
|
|
10
|
+
"@types/swagger-ui-express": "^4.1.8",
|
|
11
|
+
"@typespec/compiler": "workspace:^",
|
|
12
|
+
"@typespec/http": "workspace:^",
|
|
13
|
+
"@typespec/http-specs": "workspace:^",
|
|
14
|
+
"@typespec/internal-build-utils": "workspace:^",
|
|
15
|
+
"@typespec/openapi3": "workspace:^",
|
|
16
|
+
"@typespec/spector": "workspace:^",
|
|
17
|
+
"@typespec/tspd": "workspace:^",
|
|
18
|
+
"@vitest/coverage-v8": "^3.0.9",
|
|
19
|
+
"@vitest/ui": "^3.0.9",
|
|
20
|
+
"decimal.js": "^10.5.0",
|
|
21
|
+
"express": "^5.1.0",
|
|
22
|
+
"fs-extra": "^11.2.0",
|
|
23
|
+
"globby": "~14.1.0",
|
|
24
|
+
"inquirer": "^12.5.0",
|
|
25
|
+
"morgan": "^1.10.0",
|
|
26
|
+
"ora": "^8.1.1",
|
|
27
|
+
"p-limit": "^6.2.0",
|
|
28
|
+
"pathe": "^2.0.3",
|
|
29
|
+
"picocolors": "~1.1.1",
|
|
30
|
+
"swagger-ui-express": "^5.0.1",
|
|
31
|
+
"temporal-polyfill": "^0.3.0",
|
|
32
|
+
"tsx": "^4.19.3",
|
|
33
|
+
"typescript": "~5.8.2",
|
|
34
|
+
"vitest": "^3.0.9",
|
|
35
|
+
"yargs": "~17.7.2",
|
|
36
|
+
"prettier": "~3.5.3",
|
|
37
|
+
"yaml": "~2.7.0",
|
|
38
|
+
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@typespec/http-server-js",
|
|
3
|
-
"version": "0.58.0-alpha.13-dev.
|
|
3
|
+
"version": "0.58.0-alpha.13-dev.9",
|
|
4
4
|
"author": "Microsoft Corporation",
|
|
5
5
|
"description": "TypeSpec HTTP server code generator for JavaScript",
|
|
6
6
|
"homepage": "https://github.com/microsoft/typespec",
|
|
@@ -46,27 +46,35 @@
|
|
|
46
46
|
"yaml": "~2.7.0"
|
|
47
47
|
},
|
|
48
48
|
"devDependencies": {
|
|
49
|
+
"@types/express": "^5.0.1",
|
|
50
|
+
"@types/morgan": "^1.9.9",
|
|
49
51
|
"@types/node": "~22.13.11",
|
|
52
|
+
"@types/swagger-ui-express": "^4.1.8",
|
|
50
53
|
"@typespec/compiler": "^1.0.0-rc.0",
|
|
51
54
|
"@typespec/http": "^1.0.0-rc.0",
|
|
52
55
|
"@typespec/http-specs": "^0.1.0-alpha.17 || >=0.1.0-alpha.18-dev <0.1.0-alpha.18",
|
|
53
56
|
"@typespec/internal-build-utils": "^0.68.0 || >=0.69.0-dev <0.69.0",
|
|
54
57
|
"@typespec/openapi3": "^1.0.0-rc.0",
|
|
55
58
|
"@typespec/spector": "^0.1.0-alpha.11 || >=0.1.0-alpha.12-dev <0.1.0-alpha.12",
|
|
59
|
+
"@typespec/tspd": "^0.68.0 || >=0.69.0-dev <0.69.0",
|
|
56
60
|
"@vitest/coverage-v8": "^3.0.9",
|
|
57
61
|
"@vitest/ui": "^3.0.9",
|
|
62
|
+
"decimal.js": "^10.5.0",
|
|
63
|
+
"express": "^5.1.0",
|
|
58
64
|
"fs-extra": "^11.2.0",
|
|
59
65
|
"globby": "~14.1.0",
|
|
60
66
|
"inquirer": "^12.5.0",
|
|
67
|
+
"morgan": "^1.10.0",
|
|
61
68
|
"ora": "^8.1.1",
|
|
62
69
|
"p-limit": "^6.2.0",
|
|
63
70
|
"pathe": "^2.0.3",
|
|
64
71
|
"picocolors": "~1.1.1",
|
|
72
|
+
"swagger-ui-express": "^5.0.1",
|
|
73
|
+
"temporal-polyfill": "^0.3.0",
|
|
65
74
|
"tsx": "^4.19.3",
|
|
66
75
|
"typescript": "~5.8.2",
|
|
67
76
|
"vitest": "^3.0.9",
|
|
68
|
-
"yargs": "~17.7.2"
|
|
69
|
-
"@typespec/tspd": "^0.46.0"
|
|
77
|
+
"yargs": "~17.7.2"
|
|
70
78
|
},
|
|
71
79
|
"scripts": {
|
|
72
80
|
"clean": "rimraf ./dist ./temp",
|