@typespec/spec-api 0.1.0-alpha.1 → 0.1.0-alpha.10-dev.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.
- package/CHANGELOG.md +62 -0
- package/dist/index.d.ts +2 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -2
- package/dist/index.js.map +1 -1
- package/dist/request-validations.d.ts.map +1 -1
- package/dist/response-utils.d.ts +19 -5
- package/dist/response-utils.d.ts.map +1 -1
- package/dist/response-utils.js +72 -5
- package/dist/response-utils.js.map +1 -1
- package/dist/scenarios.d.ts +5 -5
- package/dist/scenarios.d.ts.map +1 -1
- package/dist/scenarios.js.map +1 -1
- package/dist/types.d.ts +26 -25
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +17 -23
- package/src/index.ts +5 -7
- package/src/response-utils.ts +92 -7
- package/src/scenarios.ts +4 -10
- package/src/types.ts +29 -32
- package/temp/.tsbuildinfo +1 -1
- package/test/dyn.test.ts +32 -0
- package/vitest.config.ts +1 -1
- package/dist/routes.d.ts +0 -65
- package/dist/routes.d.ts.map +0 -1
- package/dist/routes.js +0 -79
- package/dist/routes.js.map +0 -1
- package/src/routes.ts +0 -92
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,67 @@
|
|
|
1
1
|
# @typespec/spec-api
|
|
2
2
|
|
|
3
|
+
## 0.1.0-alpha.9
|
|
4
|
+
|
|
5
|
+
### Bump dependencies
|
|
6
|
+
|
|
7
|
+
- [#8317](https://github.com/microsoft/typespec/pull/8317) Upgrade dependencies
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
## 0.1.0-alpha.8
|
|
11
|
+
|
|
12
|
+
### Bump dependencies
|
|
13
|
+
|
|
14
|
+
- [#7978](https://github.com/microsoft/typespec/pull/7978) Upgrade dependencies
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
## 0.1.0-alpha.7
|
|
18
|
+
|
|
19
|
+
### Bump dependencies
|
|
20
|
+
|
|
21
|
+
- [#7674](https://github.com/microsoft/typespec/pull/7674) Upgrade dependencies
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
## 0.1.0-alpha.6
|
|
25
|
+
|
|
26
|
+
Republish
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
## 0.1.0-alpha.5
|
|
30
|
+
|
|
31
|
+
### Features
|
|
32
|
+
|
|
33
|
+
- [#7066](https://github.com/microsoft/typespec/pull/7066) Add dynamic value resolution in spector mock apis with a new `dyn` string template builder
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
## 0.1.0-alpha.4
|
|
37
|
+
|
|
38
|
+
### Features
|
|
39
|
+
|
|
40
|
+
- [#6926](https://github.com/microsoft/typespec/pull/6926) Upgrade to express v5
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
## 0.1.0-alpha.3
|
|
44
|
+
|
|
45
|
+
### Features
|
|
46
|
+
|
|
47
|
+
- [#6565](https://github.com/microsoft/typespec/pull/6565) Make handling of request body and response body consistent
|
|
48
|
+
|
|
49
|
+
### Bump dependencies
|
|
50
|
+
|
|
51
|
+
- [#6595](https://github.com/microsoft/typespec/pull/6595) Upgrade dependencies
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
## 0.1.0-alpha.2
|
|
55
|
+
|
|
56
|
+
### Breaking Changes
|
|
57
|
+
|
|
58
|
+
- [#5977](https://github.com/microsoft/typespec/pull/5977) Minimum node version is now 20
|
|
59
|
+
|
|
60
|
+
### Bump dependencies
|
|
61
|
+
|
|
62
|
+
- [#6266](https://github.com/microsoft/typespec/pull/6266) Update dependencies
|
|
63
|
+
|
|
64
|
+
|
|
3
65
|
## 0.1.0-alpha.1
|
|
4
66
|
|
|
5
67
|
### Bump dependencies
|
package/dist/index.d.ts
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
export { MockRequest } from "./mock-request.js";
|
|
2
2
|
export { BODY_EMPTY_ERROR_MESSAGE, BODY_NOT_EMPTY_ERROR_MESSAGE, BODY_NOT_EQUAL_ERROR_MESSAGE, validateBodyEmpty, validateBodyEquals, validateBodyNotEmpty, validateCoercedDateBodyEquals, validateHeader, validateQueryParam, validateRawBodyEquals, validateValueFormat, validateXmlBodyEquals, } from "./request-validations.js";
|
|
3
|
-
export { json, xml } from "./response-utils.js";
|
|
4
|
-
export { mockapi } from "./routes.js";
|
|
3
|
+
export { dyn, dynItem, expandDyns, json, multipart, xml } from "./response-utils.js";
|
|
5
4
|
export { WithKeysScenarioExpect, passOnCode, passOnSuccess, withKeys, withServiceKeys, } from "./scenarios.js";
|
|
6
|
-
export { CollectionFormat, Fail, HttpMethod,
|
|
5
|
+
export { CollectionFormat, Fail, HttpMethod, KeyedMockRequestHandler, KeyedMockResponse, MockApiDefinition, MockBody, MockMultipartBody, MockRequestHandler, MockResponse, PassByKeyScenario, PassOnCodeScenario, PassOnSuccessScenario, RequestExt, Resolver, ResolverConfig, ScenarioMockApi, ScenarioPassCondition, ServiceRequestFile, SimpleMockRequestHandler, } from "./types.js";
|
|
7
6
|
export { ValidationError } from "./validation-error.js";
|
|
8
7
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EACL,wBAAwB,EACxB,4BAA4B,EAC5B,4BAA4B,EAC5B,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,6BAA6B,EAC7B,cAAc,EACd,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EACL,wBAAwB,EACxB,4BAA4B,EAC5B,4BAA4B,EAC5B,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,6BAA6B,EAC7B,cAAc,EACd,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AACrF,OAAO,EACL,sBAAsB,EACtB,UAAU,EACV,aAAa,EACb,QAAQ,EACR,eAAe,GAChB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,gBAAgB,EAChB,IAAI,EACJ,UAAU,EACV,uBAAuB,EACvB,iBAAiB,EACjB,iBAAiB,EACjB,QAAQ,EACR,iBAAiB,EACjB,kBAAkB,EAClB,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,EAClB,qBAAqB,EACrB,UAAU,EACV,QAAQ,EACR,cAAc,EACd,eAAe,EACf,qBAAqB,EACrB,kBAAkB,EAClB,wBAAwB,GACzB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
export { MockRequest } from "./mock-request.js";
|
|
2
2
|
export { BODY_EMPTY_ERROR_MESSAGE, BODY_NOT_EMPTY_ERROR_MESSAGE, BODY_NOT_EQUAL_ERROR_MESSAGE, validateBodyEmpty, validateBodyEquals, validateBodyNotEmpty, validateCoercedDateBodyEquals, validateHeader, validateQueryParam, validateRawBodyEquals, validateValueFormat, validateXmlBodyEquals, } from "./request-validations.js";
|
|
3
|
-
export { json, xml } from "./response-utils.js";
|
|
4
|
-
export { mockapi } from "./routes.js";
|
|
3
|
+
export { dyn, dynItem, expandDyns, json, multipart, xml } from "./response-utils.js";
|
|
5
4
|
export { passOnCode, passOnSuccess, withKeys, withServiceKeys, } from "./scenarios.js";
|
|
6
5
|
export { Fail, } from "./types.js";
|
|
7
6
|
export { ValidationError } from "./validation-error.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EACL,wBAAwB,EACxB,4BAA4B,EAC5B,4BAA4B,EAC5B,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,6BAA6B,EAC7B,cAAc,EACd,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EACL,wBAAwB,EACxB,4BAA4B,EAC5B,4BAA4B,EAC5B,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,6BAA6B,EAC7B,cAAc,EACd,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AACrF,OAAO,EAEL,UAAU,EACV,aAAa,EACb,QAAQ,EACR,eAAe,GAChB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAEL,IAAI,GAmBL,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request-validations.d.ts","sourceRoot":"","sources":["../src/request-validations.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAG1D,eAAO,MAAM,4BAA4B,8CAA8C,CAAC;AACxF,eAAO,MAAM,wBAAwB,uBAAuB,CAAC;AAC7D,eAAO,MAAM,4BAA4B,yBAAyB,CAAC;AAEnE,eAAO,MAAM,qBAAqB,
|
|
1
|
+
{"version":3,"file":"request-validations.d.ts","sourceRoot":"","sources":["../src/request-validations.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAG1D,eAAO,MAAM,4BAA4B,8CAA8C,CAAC;AACxF,eAAO,MAAM,wBAAwB,uBAAuB,CAAC;AAC7D,eAAO,MAAM,4BAA4B,yBAAyB,CAAC;AAEnE,eAAO,MAAM,qBAAqB,GAChC,SAAS,UAAU,EACnB,iBAAiB,MAAM,GAAG,MAAM,GAAG,SAAS,KAC3C,IAaF,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAC7B,SAAS,UAAU,EACnB,cAAc,OAAO,GAAG,SAAS,KAChC,IAWF,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAAI,SAAS,UAAU,EAAE,cAAc,MAAM,KAAG,IA8BjF,CAAC;AAEF,eAAO,MAAM,6BAA6B,GACxC,SAAS,UAAU,EACnB,cAAc,OAAO,GAAG,SAAS,KAChC,IAWF,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,SAAS,UAAU,KAAG,IAUvD,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,SAAS,UAAU,KAAG,IAU1D,CAAC;AAUF;;GAEG;AACH,eAAO,MAAM,cAAc,GAAI,SAAS,UAAU,EAAE,YAAY,MAAM,EAAE,UAAU,MAAM,KAAG,IAK1F,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,GAC7B,SAAS,UAAU,EACnB,WAAW,MAAM,EACjB,UAAU,MAAM,GAAG,MAAM,EAAE,EAC3B,mBAAmB,gBAAgB,KAClC,IA+BF,CAAC;AAWF;;GAEG;AACH,eAAO,MAAM,mBAAmB,GAC9B,OAAO,MAAM,EACb,QAAQ,MAAM,GAAG,SAAS,GAAG,SAAS,KACrC,IAwBF,CAAC"}
|
package/dist/response-utils.d.ts
CHANGED
|
@@ -1,15 +1,29 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { MockBody, MockMultipartBody, ResolverConfig } from "./types.js";
|
|
2
2
|
/**
|
|
3
3
|
* Serialize the provided content as json to use in a MockResponse body.
|
|
4
4
|
* @content Object to return as json.
|
|
5
|
-
* @returns {
|
|
5
|
+
* @returns {MockBody} response body with application/json content type.
|
|
6
6
|
*/
|
|
7
|
-
export declare function json(content: unknown):
|
|
7
|
+
export declare function json(content: unknown, contentType?: string): MockBody;
|
|
8
8
|
/**
|
|
9
9
|
* Sends the provided XML string in a MockResponse body.
|
|
10
10
|
* The XML declaration prefix will automatically be added to xmlString.
|
|
11
11
|
* @content Object to return as XML.
|
|
12
|
-
* @returns {
|
|
12
|
+
* @returns {MockBody} response body with application/xml content type.
|
|
13
13
|
*/
|
|
14
|
-
export declare function xml(xmlString: string):
|
|
14
|
+
export declare function xml(xmlString: string): MockBody;
|
|
15
|
+
export declare function multipart(config: Partial<Pick<MockMultipartBody, "contentType" | "parts" | "files">>): MockMultipartBody;
|
|
16
|
+
export interface DynValue<T extends string[]> {
|
|
17
|
+
readonly isDyn: true;
|
|
18
|
+
readonly keys: T;
|
|
19
|
+
(dict: Record<T[number], string>): string;
|
|
20
|
+
}
|
|
21
|
+
export interface DynItem<T extends keyof ResolverConfig> {
|
|
22
|
+
readonly isDyn: true;
|
|
23
|
+
readonly name: T;
|
|
24
|
+
}
|
|
25
|
+
export declare function dynItem<const T extends keyof ResolverConfig>(name: T): DynItem<T>;
|
|
26
|
+
/** Specify that this value is dynamic and needs to be interpolated with the given keys */
|
|
27
|
+
export declare function dyn<const T extends (keyof ResolverConfig)[]>(strings: readonly string[], ...keys: (DynItem<T[number]> | string)[]): DynValue<T>;
|
|
28
|
+
export declare function expandDyns<T>(value: T, config: ResolverConfig): T;
|
|
15
29
|
//# sourceMappingURL=response-utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"response-utils.d.ts","sourceRoot":"","sources":["../src/response-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"response-utils.d.ts","sourceRoot":"","sources":["../src/response-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAY,cAAc,EAAE,MAAM,YAAY,CAAC;AAEnF;;;;GAIG;AACH,wBAAgB,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,GAAE,MAA2B,GAAG,QAAQ,CAKzF;AAWD;;;;;GAKG;AACH,wBAAgB,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,QAAQ,CAK/C;AAED,wBAAgB,SAAS,CACvB,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,aAAa,GAAG,OAAO,GAAG,OAAO,CAAC,CAAC,GAC1E,iBAAiB,CAMnB;AAED,MAAM,WAAW,QAAQ,CAAC,CAAC,SAAS,MAAM,EAAE;IAC1C,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC;IACrB,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IACjB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC;CAC3C;AAED,MAAM,WAAW,OAAO,CAAC,CAAC,SAAS,MAAM,cAAc;IACrD,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC;IACrB,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;CAClB;AAED,wBAAgB,OAAO,CAAC,KAAK,CAAC,CAAC,SAAS,MAAM,cAAc,EAAE,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAKjF;AAED,0FAA0F;AAC1F,wBAAgB,GAAG,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,MAAM,cAAc,CAAC,EAAE,EAC1D,OAAO,EAAE,SAAS,MAAM,EAAE,EAC1B,GAAG,IAAI,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,EAAE,GACvC,QAAQ,CAAC,CAAC,CAAC,CAqBb;AAED,wBAAgB,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,cAAc,GAAG,CAAC,CAmBjE"}
|
package/dist/response-utils.js
CHANGED
|
@@ -1,19 +1,27 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Serialize the provided content as json to use in a MockResponse body.
|
|
3
3
|
* @content Object to return as json.
|
|
4
|
-
* @returns {
|
|
4
|
+
* @returns {MockBody} response body with application/json content type.
|
|
5
5
|
*/
|
|
6
|
-
export function json(content) {
|
|
6
|
+
export function json(content, contentType = "application/json") {
|
|
7
7
|
return {
|
|
8
|
-
contentType
|
|
9
|
-
rawContent:
|
|
8
|
+
contentType,
|
|
9
|
+
rawContent: createResolver(content),
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
function createResolver(content) {
|
|
13
|
+
return {
|
|
14
|
+
serialize: (config) => {
|
|
15
|
+
const expanded = expandDyns(content, config);
|
|
16
|
+
return JSON.stringify(expanded);
|
|
17
|
+
},
|
|
10
18
|
};
|
|
11
19
|
}
|
|
12
20
|
/**
|
|
13
21
|
* Sends the provided XML string in a MockResponse body.
|
|
14
22
|
* The XML declaration prefix will automatically be added to xmlString.
|
|
15
23
|
* @content Object to return as XML.
|
|
16
|
-
* @returns {
|
|
24
|
+
* @returns {MockBody} response body with application/xml content type.
|
|
17
25
|
*/
|
|
18
26
|
export function xml(xmlString) {
|
|
19
27
|
return {
|
|
@@ -21,4 +29,63 @@ export function xml(xmlString) {
|
|
|
21
29
|
rawContent: `<?xml version='1.0' encoding='UTF-8'?>` + xmlString,
|
|
22
30
|
};
|
|
23
31
|
}
|
|
32
|
+
export function multipart(config) {
|
|
33
|
+
return {
|
|
34
|
+
kind: "multipart",
|
|
35
|
+
contentType: "multipart/form-data",
|
|
36
|
+
...config,
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
export function dynItem(name) {
|
|
40
|
+
return {
|
|
41
|
+
isDyn: true,
|
|
42
|
+
name,
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
/** Specify that this value is dynamic and needs to be interpolated with the given keys */
|
|
46
|
+
export function dyn(strings, ...keys) {
|
|
47
|
+
const dynKeys = [];
|
|
48
|
+
const template = (dict) => {
|
|
49
|
+
const result = [strings[0]];
|
|
50
|
+
keys.forEach((key, i) => {
|
|
51
|
+
if (typeof key === "string") {
|
|
52
|
+
result.push(key);
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
dynKeys.push(key.name);
|
|
56
|
+
const value = dict[key.name];
|
|
57
|
+
if (value !== undefined) {
|
|
58
|
+
result.push(value);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
result.push(strings[i + 1]);
|
|
62
|
+
});
|
|
63
|
+
return result.join("");
|
|
64
|
+
};
|
|
65
|
+
template.keys = dynKeys;
|
|
66
|
+
template.isDyn = true;
|
|
67
|
+
return template;
|
|
68
|
+
}
|
|
69
|
+
export function expandDyns(value, config) {
|
|
70
|
+
if (typeof value === "string") {
|
|
71
|
+
return value;
|
|
72
|
+
}
|
|
73
|
+
else if (Array.isArray(value)) {
|
|
74
|
+
return value.map((v) => expandDyns(v, config));
|
|
75
|
+
}
|
|
76
|
+
else if (typeof value === "object" && value !== null) {
|
|
77
|
+
const obj = value;
|
|
78
|
+
return Object.fromEntries(Object.entries(obj).map(([key, v]) => [key, expandDyns(v, config)]));
|
|
79
|
+
}
|
|
80
|
+
else if (typeof value === "function") {
|
|
81
|
+
if ("isDyn" in value && value.isDyn) {
|
|
82
|
+
const dynValue = value;
|
|
83
|
+
return dynValue(config);
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
throw new Error("Invalid function value");
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
return value;
|
|
90
|
+
}
|
|
24
91
|
//# sourceMappingURL=response-utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"response-utils.js","sourceRoot":"","sources":["../src/response-utils.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,UAAU,IAAI,CAAC,OAAgB;
|
|
1
|
+
{"version":3,"file":"response-utils.js","sourceRoot":"","sources":["../src/response-utils.ts"],"names":[],"mappings":"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"}
|
package/dist/scenarios.d.ts
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { KeyedMockApiDefinition, MockApiDefinition, PassByKeyScenario, PassOnCodeScenario, PassOnSuccessScenario } from "./types.js";
|
|
2
2
|
/**
|
|
3
3
|
* Specify that the scenario should be a `pass` if all the endpoints are called and the API response with 2xx exit code.
|
|
4
4
|
* @param apis Endpoint or List of endpoints for this scenario
|
|
5
5
|
*/
|
|
6
|
-
export declare function passOnSuccess(apis:
|
|
6
|
+
export declare function passOnSuccess(apis: MockApiDefinition | readonly MockApiDefinition[]): PassOnSuccessScenario;
|
|
7
7
|
/**
|
|
8
8
|
* Specify that the scenario should be a `pass` if all the endpoints are called and the API response with the given exit code.
|
|
9
9
|
* @param code Status code all endpoint should return
|
|
10
10
|
* @param apis Endpoint or List of endpoints for this scenario
|
|
11
11
|
*/
|
|
12
|
-
export declare function passOnCode(code: number, apis:
|
|
12
|
+
export declare function passOnCode(code: number, apis: MockApiDefinition): PassOnCodeScenario;
|
|
13
13
|
export interface WithKeysScenarioExpect<K extends string> {
|
|
14
|
-
pass(api:
|
|
14
|
+
pass(api: KeyedMockApiDefinition<K>): PassByKeyScenario<K>;
|
|
15
15
|
}
|
|
16
16
|
/**
|
|
17
17
|
* Specify a list of keys that must be hit to this scenario to pass
|
|
@@ -20,7 +20,7 @@ export interface WithKeysScenarioExpect<K extends string> {
|
|
|
20
20
|
*/
|
|
21
21
|
export declare function withKeys<const K extends string>(keys: K[]): WithKeysScenarioExpect<K>;
|
|
22
22
|
export interface WithServiceKeysScenarioExpect<K extends string> {
|
|
23
|
-
pass(api: KeyedMockApiDefinition<K> | KeyedMockApiDefinition<K>[]):
|
|
23
|
+
pass(api: KeyedMockApiDefinition<K> | KeyedMockApiDefinition<K>[]): PassByKeyScenario<K>;
|
|
24
24
|
}
|
|
25
25
|
export declare function withServiceKeys<const K extends string>(keys: K[]): WithServiceKeysScenarioExpect<K>;
|
|
26
26
|
//# sourceMappingURL=scenarios.d.ts.map
|
package/dist/scenarios.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scenarios.d.ts","sourceRoot":"","sources":["../src/scenarios.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"scenarios.d.ts","sourceRoot":"","sources":["../src/scenarios.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,qBAAqB,EACtB,MAAM,YAAY,CAAC;AAEpB;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,iBAAiB,GAAG,SAAS,iBAAiB,EAAE,GACrD,qBAAqB,CAKvB;AACD;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,GAAG,kBAAkB,CAMpF;AAED,MAAM,WAAW,sBAAsB,CAAC,CAAC,SAAS,MAAM;IACtD,IAAI,CAAC,GAAG,EAAE,sBAAsB,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;CAC5D;AACD;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,KAAK,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,sBAAsB,CAAC,CAAC,CAAC,CAUrF;AAED,MAAM,WAAW,6BAA6B,CAAC,CAAC,SAAS,MAAM;IAC7D,IAAI,CAAC,GAAG,EAAE,sBAAsB,CAAC,CAAC,CAAC,GAAG,sBAAsB,CAAC,CAAC,CAAC,EAAE,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;CAC1F;AAED,wBAAgB,eAAe,CAAC,KAAK,CAAC,CAAC,SAAS,MAAM,EACpD,IAAI,EAAE,CAAC,EAAE,GACR,6BAA6B,CAAC,CAAC,CAAC,CAUlC"}
|
package/dist/scenarios.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scenarios.js","sourceRoot":"","sources":["../src/scenarios.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"scenarios.js","sourceRoot":"","sources":["../src/scenarios.ts"],"names":[],"mappings":"AAQA;;;GAGG;AACH,MAAM,UAAU,aAAa,CAC3B,IAAsD;IAEtD,OAAO;QACL,aAAa,EAAE,kBAAkB;QACjC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;KAC1C,CAAC;AACJ,CAAC;AACD;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,IAAY,EAAE,IAAuB;IAC9D,OAAO;QACL,aAAa,EAAE,aAAa;QAC5B,IAAI;QACJ,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;KAC1C,CAAC;AACJ,CAAC;AAKD;;;;GAIG;AACH,MAAM,UAAU,QAAQ,CAAyB,IAAS;IACxD,OAAO;QACL,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE;YACZ,OAAO;gBACL,aAAa,EAAE,QAAQ;gBACvB,IAAI;gBACJ,IAAI,EAAE,CAAC,GAAG,CAAC;aACZ,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC;AAMD,MAAM,UAAU,eAAe,CAC7B,IAAS;IAET,OAAO;QACL,IAAI,EAAE,CAAC,GAA4D,EAAE,EAAE;YACrE,OAAO;gBACL,aAAa,EAAE,QAAQ;gBACvB,IAAI;gBACJ,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;aACvC,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -12,40 +12,28 @@ export interface RequestExt extends Request {
|
|
|
12
12
|
export type ScenarioPassCondition = "response-success" | "status-code";
|
|
13
13
|
export interface PassOnSuccessScenario {
|
|
14
14
|
passCondition: "response-success";
|
|
15
|
-
apis:
|
|
15
|
+
apis: MockApiDefinition[];
|
|
16
16
|
}
|
|
17
17
|
export interface PassOnCodeScenario {
|
|
18
18
|
passCondition: "status-code";
|
|
19
19
|
code: number;
|
|
20
|
-
apis:
|
|
20
|
+
apis: MockApiDefinition[];
|
|
21
21
|
}
|
|
22
22
|
export interface PassByKeyScenario<K extends string = string> {
|
|
23
|
-
passCondition: "by-key";
|
|
24
|
-
keys: K[];
|
|
25
|
-
apis: KeyedMockApi<K>[];
|
|
26
|
-
}
|
|
27
|
-
export interface PassByServiceKeyScenario<K extends string = string> {
|
|
28
23
|
passCondition: "by-key";
|
|
29
24
|
keys: K[];
|
|
30
25
|
apis: KeyedMockApiDefinition<K>[];
|
|
31
26
|
}
|
|
32
|
-
export type ScenarioMockApi = PassOnSuccessScenario | PassOnCodeScenario | PassByKeyScenario
|
|
27
|
+
export type ScenarioMockApi = PassOnSuccessScenario | PassOnCodeScenario | PassByKeyScenario;
|
|
33
28
|
export type MockRequestHandler = SimpleMockRequestHandler | KeyedMockRequestHandler;
|
|
34
29
|
export type SimpleMockRequestHandler = (req: MockRequest) => MockResponse | Promise<MockResponse>;
|
|
35
30
|
export type KeyedMockRequestHandler<T extends string = string> = (req: MockRequest) => KeyedMockResponse<T> | Promise<KeyedMockResponse<T>>;
|
|
36
31
|
export type KeyedServiceRequestHandler<T extends string = string> = (req: ServiceRequest) => KeyedMockResponse<T> | Promise<KeyedMockResponse<T>>;
|
|
37
32
|
export type HttpMethod = "get" | "post" | "put" | "patch" | "delete" | "head" | "options";
|
|
38
|
-
export type MockApiForHandler<Handler extends MockRequestHandler> = Handler extends KeyedMockRequestHandler<infer K> ? KeyedMockApi<K> : MockApi;
|
|
39
|
-
export interface MockApi {
|
|
40
|
-
method: HttpMethod;
|
|
41
|
-
uri: string;
|
|
42
|
-
handler: MockRequestHandler;
|
|
43
|
-
kind: "MockApi";
|
|
44
|
-
}
|
|
45
33
|
export interface MockApiDefinition {
|
|
46
34
|
uri: string;
|
|
47
35
|
method: HttpMethod;
|
|
48
|
-
request
|
|
36
|
+
request?: ServiceRequest;
|
|
49
37
|
response: MockResponse;
|
|
50
38
|
handler?: MockRequestHandler;
|
|
51
39
|
kind: "MockApiDefinition";
|
|
@@ -57,28 +45,29 @@ export interface ServiceRequestFile {
|
|
|
57
45
|
mimetype: string;
|
|
58
46
|
}
|
|
59
47
|
export interface ServiceRequest {
|
|
60
|
-
body?:
|
|
48
|
+
body?: MockBody | MockMultipartBody;
|
|
61
49
|
status?: number;
|
|
62
50
|
/**
|
|
63
51
|
* Query parameters to match to the request.
|
|
64
52
|
*/
|
|
65
|
-
|
|
53
|
+
query?: Record<string, unknown>;
|
|
54
|
+
/**
|
|
55
|
+
* Path parameters to match to the request.
|
|
56
|
+
*/
|
|
57
|
+
pathParams?: Record<string, unknown>;
|
|
66
58
|
headers?: Record<string, unknown>;
|
|
67
59
|
files?: ServiceRequestFile[];
|
|
68
60
|
}
|
|
69
61
|
export declare const Fail: unique symbol;
|
|
70
|
-
export interface KeyedMockApi<K extends string> extends MockApi {
|
|
71
|
-
handler: KeyedMockRequestHandler<K>;
|
|
72
|
-
}
|
|
73
62
|
export interface KeyedMockApiDefinition<K extends string> extends MockApiDefinition {
|
|
74
63
|
handler: KeyedMockRequestHandler<K>;
|
|
75
64
|
}
|
|
76
65
|
export interface MockResponse {
|
|
77
66
|
status: number;
|
|
78
67
|
headers?: {
|
|
79
|
-
[key: string]:
|
|
68
|
+
[key: string]: unknown | null;
|
|
80
69
|
};
|
|
81
|
-
body?:
|
|
70
|
+
body?: MockBody;
|
|
82
71
|
/**
|
|
83
72
|
* Let the mock API know that this request was successful to counting coverage regardless of the status code.
|
|
84
73
|
* By default only 2xx status code will count toward success.
|
|
@@ -88,9 +77,21 @@ export interface MockResponse {
|
|
|
88
77
|
export interface KeyedMockResponse<K extends string = string> extends MockResponse {
|
|
89
78
|
pass: K | typeof Fail;
|
|
90
79
|
}
|
|
91
|
-
export interface
|
|
80
|
+
export interface MockBody {
|
|
92
81
|
contentType: string;
|
|
93
|
-
rawContent: string | Buffer | undefined;
|
|
82
|
+
rawContent: string | Buffer | Resolver | undefined;
|
|
83
|
+
}
|
|
84
|
+
export interface ResolverConfig {
|
|
85
|
+
baseUrl: string;
|
|
86
|
+
}
|
|
87
|
+
export interface Resolver {
|
|
88
|
+
serialize(config: ResolverConfig): string;
|
|
89
|
+
}
|
|
90
|
+
export interface MockMultipartBody {
|
|
91
|
+
kind: "multipart";
|
|
92
|
+
contentType: `multipart/${string}`;
|
|
93
|
+
parts?: Record<string, unknown>;
|
|
94
|
+
files?: ServiceRequestFile[];
|
|
94
95
|
}
|
|
95
96
|
export type CollectionFormat = "multi" | "csv" | "ssv" | "tsv" | "pipes";
|
|
96
97
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD;;GAEG;AACH,MAAM,WAAW,UAAW,SAAQ,OAAO;IACzC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1B,KAAK,CAAC,EACF;QACE,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;KAC5C,GACD,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,GACrB,SAAS,CAAC;CACf;AAED,MAAM,MAAM,qBAAqB,GAAG,kBAAkB,GAAG,aAAa,CAAC;AAEvE,MAAM,WAAW,qBAAqB;IACpC,aAAa,EAAE,kBAAkB,CAAC;IAClC,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AA6EA,MAAM,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@typespec/spec-api",
|
|
3
|
-
"version": "0.1.0-alpha.
|
|
3
|
+
"version": "0.1.0-alpha.10-dev.0",
|
|
4
4
|
"description": "Spec api to implement mock api",
|
|
5
|
-
"main": "dist/index.js",
|
|
6
5
|
"type": "module",
|
|
6
|
+
"exports": {
|
|
7
|
+
".": {
|
|
8
|
+
"import": "./dist/index.js"
|
|
9
|
+
}
|
|
10
|
+
},
|
|
7
11
|
"engines": {
|
|
8
|
-
"node": ">=
|
|
12
|
+
"node": ">=20.0.0"
|
|
9
13
|
},
|
|
10
14
|
"repository": {
|
|
11
15
|
"type": "git",
|
|
@@ -18,33 +22,23 @@
|
|
|
18
22
|
},
|
|
19
23
|
"homepage": "https://github.com/microsoft/typespec#readme",
|
|
20
24
|
"dependencies": {
|
|
21
|
-
"body-parser": "^1.20.3",
|
|
22
25
|
"deep-equal": "^2.2.0",
|
|
23
|
-
"express": "^
|
|
24
|
-
"
|
|
25
|
-
"morgan": "^1.10.0",
|
|
26
|
-
"multer": "^1.4.5-lts.1",
|
|
27
|
-
"picocolors": "~1.1.1",
|
|
28
|
-
"prettier": "~3.4.2",
|
|
29
|
-
"winston": "^3.17.0",
|
|
30
|
-
"xml2js": "^0.6.2",
|
|
31
|
-
"yargs": "~17.7.2"
|
|
26
|
+
"express": "^5.1.0",
|
|
27
|
+
"xml2js": "^0.6.2"
|
|
32
28
|
},
|
|
33
29
|
"devDependencies": {
|
|
34
|
-
"@types/body-parser": "^1.19.2",
|
|
35
30
|
"@types/deep-equal": "^1.0.1",
|
|
36
|
-
"@types/express": "^5.0.
|
|
37
|
-
"@types/
|
|
38
|
-
"@types/
|
|
39
|
-
"@types/node": "~22.10.10",
|
|
31
|
+
"@types/express": "^5.0.1",
|
|
32
|
+
"@types/multer": "^2.0.0",
|
|
33
|
+
"@types/node": "~24.3.0",
|
|
40
34
|
"@types/xml2js": "^0.4.11",
|
|
41
|
-
"@
|
|
42
|
-
"@vitest/
|
|
43
|
-
"@vitest/ui": "^3.0.3",
|
|
35
|
+
"@vitest/coverage-v8": "^3.1.2",
|
|
36
|
+
"@vitest/ui": "^3.1.2",
|
|
44
37
|
"rimraf": "~6.0.1",
|
|
45
|
-
"typescript": "~5.
|
|
46
|
-
"vitest": "^3.
|
|
38
|
+
"typescript": "~5.9.2",
|
|
39
|
+
"vitest": "^3.1.2"
|
|
47
40
|
},
|
|
41
|
+
"peerDependencies": {},
|
|
48
42
|
"scripts": {
|
|
49
43
|
"watch": "tsc -p ./tsconfig.build.json --watch",
|
|
50
44
|
"build": "tsc -p ./tsconfig.build.json",
|
package/src/index.ts
CHANGED
|
@@ -13,8 +13,7 @@ export {
|
|
|
13
13
|
validateValueFormat,
|
|
14
14
|
validateXmlBodyEquals,
|
|
15
15
|
} from "./request-validations.js";
|
|
16
|
-
export { json, xml } from "./response-utils.js";
|
|
17
|
-
export { mockapi } from "./routes.js";
|
|
16
|
+
export { dyn, dynItem, expandDyns, json, multipart, xml } from "./response-utils.js";
|
|
18
17
|
export {
|
|
19
18
|
WithKeysScenarioExpect,
|
|
20
19
|
passOnCode,
|
|
@@ -26,20 +25,19 @@ export {
|
|
|
26
25
|
CollectionFormat,
|
|
27
26
|
Fail,
|
|
28
27
|
HttpMethod,
|
|
29
|
-
KeyedMockApi,
|
|
30
28
|
KeyedMockRequestHandler,
|
|
31
29
|
KeyedMockResponse,
|
|
32
|
-
MockApi,
|
|
33
30
|
MockApiDefinition,
|
|
34
|
-
|
|
31
|
+
MockBody,
|
|
32
|
+
MockMultipartBody,
|
|
35
33
|
MockRequestHandler,
|
|
36
34
|
MockResponse,
|
|
37
|
-
MockResponseBody,
|
|
38
35
|
PassByKeyScenario,
|
|
39
|
-
PassByServiceKeyScenario,
|
|
40
36
|
PassOnCodeScenario,
|
|
41
37
|
PassOnSuccessScenario,
|
|
42
38
|
RequestExt,
|
|
39
|
+
Resolver,
|
|
40
|
+
ResolverConfig,
|
|
43
41
|
ScenarioMockApi,
|
|
44
42
|
ScenarioPassCondition,
|
|
45
43
|
ServiceRequestFile,
|