@simpleapps-com/augur-api 0.9.10 → 0.9.12
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/cjs/index.d.ts +1 -1
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/services/items/resources/item-favorites.d.ts +2 -2
- package/dist/cjs/services/items/schemas/favorites.d.ts +8 -8
- package/dist/cjs/services/items/schemas/favorites.d.ts.map +1 -1
- package/dist/cjs/services/items/schemas/favorites.js +3 -3
- package/dist/cjs/services/items/schemas/favorites.js.map +1 -1
- package/dist/cjs/services/items/schemas/itemFavorites.d.ts +6 -6
- package/dist/cjs/services/items/schemas/itemFavorites.js +1 -1
- package/dist/cjs/testing.d.ts +79 -0
- package/dist/cjs/testing.d.ts.map +1 -0
- package/dist/cjs/testing.js +171 -0
- package/dist/cjs/testing.js.map +1 -0
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/services/items/resources/item-favorites.d.ts +2 -2
- package/dist/esm/services/items/schemas/favorites.d.ts +8 -8
- package/dist/esm/services/items/schemas/favorites.d.ts.map +1 -1
- package/dist/esm/services/items/schemas/favorites.js +3 -3
- package/dist/esm/services/items/schemas/favorites.js.map +1 -1
- package/dist/esm/services/items/schemas/itemFavorites.d.ts +6 -6
- package/dist/esm/services/items/schemas/itemFavorites.js +1 -1
- package/dist/esm/testing.d.ts +79 -0
- package/dist/esm/testing.d.ts.map +1 -0
- package/dist/esm/testing.js +168 -0
- package/dist/esm/testing.js.map +1 -0
- package/dist/types/index.d.ts +1 -1
- package/dist/types/services/items/resources/item-favorites.d.ts +2 -2
- package/dist/types/services/items/schemas/favorites.d.ts +8 -8
- package/dist/types/services/items/schemas/favorites.d.ts.map +1 -1
- package/dist/types/services/items/schemas/itemFavorites.d.ts +6 -6
- package/dist/types/testing.d.ts +79 -0
- package/dist/types/testing.d.ts.map +1 -0
- package/package.json +6 -1
package/dist/cjs/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export declare const VERSION = "0.9.
|
|
1
|
+
export declare const VERSION = "0.9.12";
|
|
2
2
|
export { AugurAPI } from './client';
|
|
3
3
|
export { authenticateUserForSite, createCrossSiteAuthenticator, type CrossSiteAuthParams, type CrossSiteAuthResult, } from './utils/cross-site-auth';
|
|
4
4
|
export { AugurAPIConfig, RequestConfig, type AugurContext, ContextCreationError, } from './core/config';
|
package/dist/cjs/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.Basecamp2Client = exports.UPSClient = exports.SmartyStreetsClient = exports.SlackClient = exports.ShippingClient = exports.P21ApisClient = exports.LogisticsClient = exports.GregorovichClient = exports.BrandFolderClient = exports.AvalaraClient = exports.AgrWorkClient = exports.AgrInfoClient = exports.P21SismClient = exports.PaymentsClient = exports.P21PimClient = exports.OrdersClient = exports.CustomersClient = exports.AgrSiteClient = exports.LegacyClient = exports.NexusClient = exports.ItemsClient = exports.OpenSearchClient = exports.VMIClient = exports.PricingClient = exports.CommerceClient = exports.JoomlaClient = exports.PaginationParamsSchema = exports.HealthCheckDataSchema = exports.BaseResponseSchema = exports.RateLimitError = exports.NotFoundError = exports.AuthenticationError = exports.ValidationError = exports.AugurError = exports.ContextCreationError = exports.createCrossSiteAuthenticator = exports.authenticateUserForSite = exports.AugurAPI = exports.VERSION = void 0;
|
|
4
|
-
exports.VERSION = '0.9.
|
|
4
|
+
exports.VERSION = '0.9.12';
|
|
5
5
|
// Main client
|
|
6
6
|
var client_1 = require("./client");
|
|
7
7
|
Object.defineProperty(exports, "AugurAPI", { enumerable: true, get: function () { return client_1.AugurAPI; } });
|
|
@@ -18,7 +18,7 @@ export declare function createItemFavoritesResource(executeRequest: ExecuteReque
|
|
|
18
18
|
*/
|
|
19
19
|
list: (usersId: number, params?: ItemFavoritesListParams) => Promise<{
|
|
20
20
|
params: Record<string, unknown> | unknown[];
|
|
21
|
-
data:
|
|
21
|
+
data: Record<string, unknown>[];
|
|
22
22
|
options: Record<string, unknown> | unknown[];
|
|
23
23
|
status: number;
|
|
24
24
|
message: string;
|
|
@@ -103,7 +103,7 @@ export declare function createItemFavoritesResource(executeRequest: ExecuteReque
|
|
|
103
103
|
* Creates the itemFavoritesData resource methods (data-only versions)
|
|
104
104
|
*/
|
|
105
105
|
export declare function createItemFavoritesDataResource(itemFavorites: ReturnType<typeof createItemFavoritesResource>): {
|
|
106
|
-
list: (usersId: number, params?: ItemFavoritesListParams) => Promise<
|
|
106
|
+
list: (usersId: number, params?: ItemFavoritesListParams) => Promise<Record<string, unknown>[]>;
|
|
107
107
|
get: (usersId: number, invMastUid: number, options?: CacheParams) => Promise<unknown>;
|
|
108
108
|
create: (usersId: number, data: unknown) => Promise<unknown>;
|
|
109
109
|
update: (usersId: number, invMastUid: number, data: unknown) => Promise<unknown>;
|
|
@@ -35,10 +35,10 @@ export declare const ItemFavoritesListParamsSchema: z.ZodObject<{
|
|
|
35
35
|
edgeCache: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<"30s">, z.ZodLiteral<"1m">, z.ZodLiteral<"5m">, z.ZodLiteral<1>, z.ZodLiteral<2>, z.ZodLiteral<3>, z.ZodLiteral<4>, z.ZodLiteral<5>, z.ZodLiteral<8>, z.ZodLiteral<"1">, z.ZodLiteral<"2">, z.ZodLiteral<"3">, z.ZodLiteral<"4">, z.ZodLiteral<"5">, z.ZodLiteral<"8">]>>;
|
|
36
36
|
}, z.ZodTypeAny, "passthrough">>;
|
|
37
37
|
/**
|
|
38
|
-
* GET response data - array of
|
|
39
|
-
* API returns: { data: [86491,
|
|
38
|
+
* GET response data - array of item favorite objects
|
|
39
|
+
* API returns: { data: [{ invMastUid: 86491, ... }, ...], ... }
|
|
40
40
|
*/
|
|
41
|
-
export declare const ItemFavoritesListDataSchema: z.ZodArray<z.
|
|
41
|
+
export declare const ItemFavoritesListDataSchema: z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>, "many">;
|
|
42
42
|
export declare const ItemFavoriteResponseSchema: z.ZodEffects<z.ZodObject<{
|
|
43
43
|
count: z.ZodNumber;
|
|
44
44
|
data: z.ZodObject<{
|
|
@@ -109,7 +109,7 @@ export declare const ItemFavoriteResponseSchema: z.ZodEffects<z.ZodObject<{
|
|
|
109
109
|
}>;
|
|
110
110
|
export declare const ItemFavoriteListResponseSchema: z.ZodEffects<z.ZodObject<{
|
|
111
111
|
count: z.ZodNumber;
|
|
112
|
-
data: z.ZodArray<z.
|
|
112
|
+
data: z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>, "many">;
|
|
113
113
|
message: z.ZodString;
|
|
114
114
|
options: z.ZodUnion<[z.ZodArray<z.ZodUnknown, "many">, z.ZodRecord<z.ZodString, z.ZodUnknown>]>;
|
|
115
115
|
params: z.ZodUnion<[z.ZodArray<z.ZodUnknown, "many">, z.ZodRecord<z.ZodString, z.ZodUnknown>]>;
|
|
@@ -118,7 +118,7 @@ export declare const ItemFavoriteListResponseSchema: z.ZodEffects<z.ZodObject<{
|
|
|
118
118
|
totalResults: z.ZodNumber;
|
|
119
119
|
}, "strip", z.ZodTypeAny, {
|
|
120
120
|
params: Record<string, unknown> | unknown[];
|
|
121
|
-
data:
|
|
121
|
+
data: Record<string, unknown>[];
|
|
122
122
|
options: Record<string, unknown> | unknown[];
|
|
123
123
|
status: number;
|
|
124
124
|
message: string;
|
|
@@ -127,7 +127,7 @@ export declare const ItemFavoriteListResponseSchema: z.ZodEffects<z.ZodObject<{
|
|
|
127
127
|
totalResults: number;
|
|
128
128
|
}, {
|
|
129
129
|
params: Record<string, unknown> | unknown[];
|
|
130
|
-
data:
|
|
130
|
+
data: Record<string, unknown>[];
|
|
131
131
|
options: Record<string, unknown> | unknown[];
|
|
132
132
|
status: number;
|
|
133
133
|
message: string;
|
|
@@ -136,7 +136,7 @@ export declare const ItemFavoriteListResponseSchema: z.ZodEffects<z.ZodObject<{
|
|
|
136
136
|
totalResults: number;
|
|
137
137
|
}>, {
|
|
138
138
|
params: Record<string, unknown> | unknown[];
|
|
139
|
-
data:
|
|
139
|
+
data: Record<string, unknown>[];
|
|
140
140
|
options: Record<string, unknown> | unknown[];
|
|
141
141
|
status: number;
|
|
142
142
|
message: string;
|
|
@@ -145,7 +145,7 @@ export declare const ItemFavoriteListResponseSchema: z.ZodEffects<z.ZodObject<{
|
|
|
145
145
|
totalResults: number;
|
|
146
146
|
}, {
|
|
147
147
|
params: Record<string, unknown> | unknown[];
|
|
148
|
-
data:
|
|
148
|
+
data: Record<string, unknown>[];
|
|
149
149
|
options: Record<string, unknown> | unknown[];
|
|
150
150
|
status: number;
|
|
151
151
|
message: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"favorites.d.ts","sourceRoot":"","sources":["../../../../../src/services/items/schemas/favorites.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,sEAAsE;AACtE,eAAO,MAAM,kBAAkB;;;;;;gCAAkE,CAAC;AAElG;;;GAGG;AACH,eAAO,MAAM,+BAA+B,iCAAsB,CAAC;AAEnE,sDAAsD;AACtD,eAAO,MAAM,+BAA+B,uJAA6B,CAAC;AAE1E,+DAA+D;AAC/D,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;gCAMX,CAAC;AAEhC;;;GAGG;AACH,eAAO,MAAM,2BAA2B,
|
|
1
|
+
{"version":3,"file":"favorites.d.ts","sourceRoot":"","sources":["../../../../../src/services/items/schemas/favorites.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,sEAAsE;AACtE,eAAO,MAAM,kBAAkB;;;;;;gCAAkE,CAAC;AAElG;;;GAGG;AACH,eAAO,MAAM,+BAA+B,iCAAsB,CAAC;AAEnE,sDAAsD;AACtD,eAAO,MAAM,+BAA+B,uJAA6B,CAAC;AAE1E,+DAA+D;AAC/D,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;gCAMX,CAAC;AAEhC;;;GAGG;AACH,eAAO,MAAM,2BAA2B,4DAAiC,CAAC;AAG1E,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAyC,CAAC;AACjF,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAkD,CAAC;AAG9F,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC9D,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAC;AACxF,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAC;AACxF,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AACpF,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAC9E,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;AACtF,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC"}
|
|
@@ -21,10 +21,10 @@ exports.ItemFavoritesListParamsSchema = zod_1.z
|
|
|
21
21
|
})
|
|
22
22
|
.merge(schemas_1.EdgeCacheParamsSchema);
|
|
23
23
|
/**
|
|
24
|
-
* GET response data - array of
|
|
25
|
-
* API returns: { data: [86491,
|
|
24
|
+
* GET response data - array of item favorite objects
|
|
25
|
+
* API returns: { data: [{ invMastUid: 86491, ... }, ...], ... }
|
|
26
26
|
*/
|
|
27
|
-
exports.ItemFavoritesListDataSchema = zod_1.z.array(zod_1.z.
|
|
27
|
+
exports.ItemFavoritesListDataSchema = zod_1.z.array(zod_1.z.record(zod_1.z.unknown()));
|
|
28
28
|
// Response Schemas
|
|
29
29
|
exports.ItemFavoriteResponseSchema = (0, schemas_1.BaseResponseSchema)(exports.ItemFavoriteSchema);
|
|
30
30
|
exports.ItemFavoriteListResponseSchema = (0, schemas_1.BaseResponseSchema)(exports.ItemFavoritesListDataSchema);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"favorites.js","sourceRoot":"","sources":["../../../../../src/services/items/schemas/favorites.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AACxB,mDAAkF;AAElF,sEAAsE;AACzD,QAAA,kBAAkB,GAAG,OAAC,CAAC,MAAM,CAAC,EAAE,gBAAgB,EAAE,OAAC,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;AAElG;;;GAGG;AACU,QAAA,+BAA+B,GAAG,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AAEnE,sDAAsD;AACzC,QAAA,+BAA+B,GAAG,OAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;AAE1E,+DAA+D;AAClD,QAAA,6BAA6B,GAAG,OAAC;KAC3C,MAAM,CAAC;IACN,KAAK,EAAE,OAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACpD,MAAM,EAAE,OAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACjD,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAClC,CAAC;KACD,KAAK,CAAC,+BAAqB,CAAC,CAAC;AAEhC;;;GAGG;AACU,QAAA,2BAA2B,GAAG,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"favorites.js","sourceRoot":"","sources":["../../../../../src/services/items/schemas/favorites.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AACxB,mDAAkF;AAElF,sEAAsE;AACzD,QAAA,kBAAkB,GAAG,OAAC,CAAC,MAAM,CAAC,EAAE,gBAAgB,EAAE,OAAC,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;AAElG;;;GAGG;AACU,QAAA,+BAA+B,GAAG,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AAEnE,sDAAsD;AACzC,QAAA,+BAA+B,GAAG,OAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;AAE1E,+DAA+D;AAClD,QAAA,6BAA6B,GAAG,OAAC;KAC3C,MAAM,CAAC;IACN,KAAK,EAAE,OAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACpD,MAAM,EAAE,OAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACjD,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAClC,CAAC;KACD,KAAK,CAAC,+BAAqB,CAAC,CAAC;AAEhC;;;GAGG;AACU,QAAA,2BAA2B,GAAG,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,CAAC,OAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;AAE1E,mBAAmB;AACN,QAAA,0BAA0B,GAAG,IAAA,4BAAkB,EAAC,0BAAkB,CAAC,CAAC;AACpE,QAAA,8BAA8B,GAAG,IAAA,4BAAkB,EAAC,mCAA2B,CAAC,CAAC"}
|
|
@@ -2,12 +2,12 @@ import { z } from 'zod';
|
|
|
2
2
|
/**
|
|
3
3
|
* Response Schemas for /item-favorites endpoints
|
|
4
4
|
*
|
|
5
|
-
* GET /item-favorites/{usersId} returns: { data: [86491,
|
|
5
|
+
* GET /item-favorites/{usersId}/items returns: { data: [{ invMastUid: 86491, ... }, ...], ... }
|
|
6
6
|
* POST/PUT/DELETE return standard BaseResponse
|
|
7
7
|
*/
|
|
8
8
|
export declare const ItemFavoritesListResponseSchema: z.ZodEffects<z.ZodObject<{
|
|
9
9
|
count: z.ZodNumber;
|
|
10
|
-
data: z.ZodArray<z.
|
|
10
|
+
data: z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>, "many">;
|
|
11
11
|
message: z.ZodString;
|
|
12
12
|
options: z.ZodUnion<[z.ZodArray<z.ZodUnknown, "many">, z.ZodRecord<z.ZodString, z.ZodUnknown>]>;
|
|
13
13
|
params: z.ZodUnion<[z.ZodArray<z.ZodUnknown, "many">, z.ZodRecord<z.ZodString, z.ZodUnknown>]>;
|
|
@@ -16,7 +16,7 @@ export declare const ItemFavoritesListResponseSchema: z.ZodEffects<z.ZodObject<{
|
|
|
16
16
|
totalResults: z.ZodNumber;
|
|
17
17
|
}, "strip", z.ZodTypeAny, {
|
|
18
18
|
params: Record<string, unknown> | unknown[];
|
|
19
|
-
data:
|
|
19
|
+
data: Record<string, unknown>[];
|
|
20
20
|
options: Record<string, unknown> | unknown[];
|
|
21
21
|
status: number;
|
|
22
22
|
message: string;
|
|
@@ -25,7 +25,7 @@ export declare const ItemFavoritesListResponseSchema: z.ZodEffects<z.ZodObject<{
|
|
|
25
25
|
totalResults: number;
|
|
26
26
|
}, {
|
|
27
27
|
params: Record<string, unknown> | unknown[];
|
|
28
|
-
data:
|
|
28
|
+
data: Record<string, unknown>[];
|
|
29
29
|
options: Record<string, unknown> | unknown[];
|
|
30
30
|
status: number;
|
|
31
31
|
message: string;
|
|
@@ -34,7 +34,7 @@ export declare const ItemFavoritesListResponseSchema: z.ZodEffects<z.ZodObject<{
|
|
|
34
34
|
totalResults: number;
|
|
35
35
|
}>, {
|
|
36
36
|
params: Record<string, unknown> | unknown[];
|
|
37
|
-
data:
|
|
37
|
+
data: Record<string, unknown>[];
|
|
38
38
|
options: Record<string, unknown> | unknown[];
|
|
39
39
|
status: number;
|
|
40
40
|
message: string;
|
|
@@ -43,7 +43,7 @@ export declare const ItemFavoritesListResponseSchema: z.ZodEffects<z.ZodObject<{
|
|
|
43
43
|
totalResults: number;
|
|
44
44
|
}, {
|
|
45
45
|
params: Record<string, unknown> | unknown[];
|
|
46
|
-
data:
|
|
46
|
+
data: Record<string, unknown>[];
|
|
47
47
|
options: Record<string, unknown> | unknown[];
|
|
48
48
|
status: number;
|
|
49
49
|
message: string;
|
|
@@ -8,7 +8,7 @@ const favorites_1 = require("./favorites");
|
|
|
8
8
|
/**
|
|
9
9
|
* Response Schemas for /item-favorites endpoints
|
|
10
10
|
*
|
|
11
|
-
* GET /item-favorites/{usersId} returns: { data: [86491,
|
|
11
|
+
* GET /item-favorites/{usersId}/items returns: { data: [{ invMastUid: 86491, ... }, ...], ... }
|
|
12
12
|
* POST/PUT/DELETE return standard BaseResponse
|
|
13
13
|
*/
|
|
14
14
|
exports.ItemFavoritesListResponseSchema = (0, schemas_1.BaseResponseSchema)(favorites_1.ItemFavoritesListDataSchema);
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Testing utilities for @simpleapps-com/augur-api
|
|
3
|
+
*
|
|
4
|
+
* Provides a Proxy-based deep mock factory that automatically creates
|
|
5
|
+
* mock functions at any depth, matching the AugurAPI client shape.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```typescript
|
|
9
|
+
* import { createMockClient } from '@simpleapps-com/augur-api/testing';
|
|
10
|
+
*
|
|
11
|
+
* const { client, mocks } = createMockClient();
|
|
12
|
+
* mocks.commerce.cartHeaders.lookup.mockResolvedValue({ data: [] });
|
|
13
|
+
*
|
|
14
|
+
* const result = await client.commerce.cartHeaders.lookup({ userId: 1 });
|
|
15
|
+
* expect(mocks.commerce.cartHeaders.lookup.mock.calls[0]).toEqual([{ userId: 1 }]);
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
import type { AugurAPI } from './client';
|
|
19
|
+
/** Recorded call arguments */
|
|
20
|
+
export interface MockCall {
|
|
21
|
+
args: unknown[];
|
|
22
|
+
timestamp: number;
|
|
23
|
+
}
|
|
24
|
+
/** Call tracking state */
|
|
25
|
+
export interface MockState {
|
|
26
|
+
calls: unknown[][];
|
|
27
|
+
results: Array<{
|
|
28
|
+
type: 'return' | 'throw';
|
|
29
|
+
value: unknown;
|
|
30
|
+
}>;
|
|
31
|
+
instances: unknown[];
|
|
32
|
+
lastCall: unknown[] | undefined;
|
|
33
|
+
}
|
|
34
|
+
/** A mock function with call tracking and return-value control */
|
|
35
|
+
export interface MockFn {
|
|
36
|
+
(...args: unknown[]): unknown;
|
|
37
|
+
mock: MockState;
|
|
38
|
+
mockReturnValue(value: unknown): MockFn;
|
|
39
|
+
mockResolvedValue(value: unknown): MockFn;
|
|
40
|
+
mockRejectedValue(value: unknown): MockFn;
|
|
41
|
+
mockImplementation(fn: (...args: unknown[]) => unknown): MockFn;
|
|
42
|
+
mockReset(): MockFn;
|
|
43
|
+
mockClear(): MockFn;
|
|
44
|
+
}
|
|
45
|
+
/** Recursively maps AugurAPI to MockFn leaves */
|
|
46
|
+
export type DeepMockClient<T> = {
|
|
47
|
+
[K in keyof T]: T[K] extends Function ? MockFn : DeepMockClient<T[K]>;
|
|
48
|
+
};
|
|
49
|
+
/** Return type of createMockClient */
|
|
50
|
+
export interface MockClientResult {
|
|
51
|
+
client: AugurAPI;
|
|
52
|
+
mocks: DeepMockClient<AugurAPI>;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Create a fully-mocked AugurAPI client.
|
|
56
|
+
*
|
|
57
|
+
* Every property chain resolves to either a nested namespace or a callable
|
|
58
|
+
* MockFn. The same object serves as both `client` (passed to production code)
|
|
59
|
+
* and `mocks` (used in assertions).
|
|
60
|
+
*
|
|
61
|
+
* @returns `{ client, mocks }` — same object, dual-typed for ergonomics
|
|
62
|
+
*
|
|
63
|
+
* @example
|
|
64
|
+
* ```typescript
|
|
65
|
+
* const { client, mocks } = createMockClient();
|
|
66
|
+
*
|
|
67
|
+
* // Stub a return value
|
|
68
|
+
* mocks.items.products.get.mockResolvedValue({ data: { id: 1 } });
|
|
69
|
+
*
|
|
70
|
+
* // Call through the client
|
|
71
|
+
* const result = await client.items.products.get(1);
|
|
72
|
+
*
|
|
73
|
+
* // Assert
|
|
74
|
+
* expect(mocks.items.products.get.mock.calls).toHaveLength(1);
|
|
75
|
+
* expect(mocks.items.products.get.mock.calls[0]).toEqual([1]);
|
|
76
|
+
* ```
|
|
77
|
+
*/
|
|
78
|
+
export declare function createMockClient(): MockClientResult;
|
|
79
|
+
//# sourceMappingURL=testing.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../../src/testing.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEzC,8BAA8B;AAC9B,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,OAAO,EAAE,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,0BAA0B;AAC1B,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC;IACnB,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAC7D,SAAS,EAAE,OAAO,EAAE,CAAC;IACrB,QAAQ,EAAE,OAAO,EAAE,GAAG,SAAS,CAAC;CACjC;AAED,kEAAkE;AAClE,MAAM,WAAW,MAAM;IACrB,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IAC9B,IAAI,EAAE,SAAS,CAAC;IAChB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC;IACxC,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC;IAC1C,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC;IAC1C,kBAAkB,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,GAAG,MAAM,CAAC;IAChE,SAAS,IAAI,MAAM,CAAC;IACpB,SAAS,IAAI,MAAM,CAAC;CACrB;AAED,iDAAiD;AACjD,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI;KAE7B,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,QAAQ,GAAG,MAAM,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACtE,CAAC;AAEF,sCAAsC;AACtC,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,QAAQ,CAAC;IACjB,KAAK,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC;CACjC;AAwID;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,gBAAgB,IAAI,gBAAgB,CAQnD"}
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Testing utilities for @simpleapps-com/augur-api
|
|
4
|
+
*
|
|
5
|
+
* Provides a Proxy-based deep mock factory that automatically creates
|
|
6
|
+
* mock functions at any depth, matching the AugurAPI client shape.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```typescript
|
|
10
|
+
* import { createMockClient } from '@simpleapps-com/augur-api/testing';
|
|
11
|
+
*
|
|
12
|
+
* const { client, mocks } = createMockClient();
|
|
13
|
+
* mocks.commerce.cartHeaders.lookup.mockResolvedValue({ data: [] });
|
|
14
|
+
*
|
|
15
|
+
* const result = await client.commerce.cartHeaders.lookup({ userId: 1 });
|
|
16
|
+
* expect(mocks.commerce.cartHeaders.lookup.mock.calls[0]).toEqual([{ userId: 1 }]);
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
+
exports.createMockClient = createMockClient;
|
|
21
|
+
/** Create a stub function with full call-tracking */
|
|
22
|
+
function createStubFn() {
|
|
23
|
+
let implementation = null;
|
|
24
|
+
const state = {
|
|
25
|
+
calls: [],
|
|
26
|
+
results: [],
|
|
27
|
+
instances: [],
|
|
28
|
+
lastCall: undefined,
|
|
29
|
+
};
|
|
30
|
+
const fn = function mockFn(...args) {
|
|
31
|
+
state.calls.push(args);
|
|
32
|
+
state.lastCall = args;
|
|
33
|
+
state.instances.push(this);
|
|
34
|
+
try {
|
|
35
|
+
const result = implementation ? implementation(...args) : undefined;
|
|
36
|
+
state.results.push({ type: 'return', value: result });
|
|
37
|
+
return result;
|
|
38
|
+
}
|
|
39
|
+
catch (error) {
|
|
40
|
+
state.results.push({ type: 'throw', value: error });
|
|
41
|
+
throw error;
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
fn.mock = state;
|
|
45
|
+
fn.mockReturnValue = (value) => {
|
|
46
|
+
implementation = () => value;
|
|
47
|
+
return fn;
|
|
48
|
+
};
|
|
49
|
+
fn.mockResolvedValue = (value) => {
|
|
50
|
+
implementation = () => Promise.resolve(value);
|
|
51
|
+
return fn;
|
|
52
|
+
};
|
|
53
|
+
fn.mockRejectedValue = (value) => {
|
|
54
|
+
implementation = () => Promise.reject(value);
|
|
55
|
+
return fn;
|
|
56
|
+
};
|
|
57
|
+
fn.mockImplementation = (implFn) => {
|
|
58
|
+
implementation = implFn;
|
|
59
|
+
return fn;
|
|
60
|
+
};
|
|
61
|
+
fn.mockReset = () => {
|
|
62
|
+
state.calls = [];
|
|
63
|
+
state.results = [];
|
|
64
|
+
state.instances = [];
|
|
65
|
+
state.lastCall = undefined;
|
|
66
|
+
implementation = null;
|
|
67
|
+
return fn;
|
|
68
|
+
};
|
|
69
|
+
fn.mockClear = () => {
|
|
70
|
+
state.calls = [];
|
|
71
|
+
state.results = [];
|
|
72
|
+
state.instances = [];
|
|
73
|
+
state.lastCall = undefined;
|
|
74
|
+
return fn;
|
|
75
|
+
};
|
|
76
|
+
return fn;
|
|
77
|
+
}
|
|
78
|
+
/** Property names that belong to MockFn — triggers stub creation */
|
|
79
|
+
const MOCK_FN_PROPS = new Set([
|
|
80
|
+
'mock',
|
|
81
|
+
'mockReturnValue',
|
|
82
|
+
'mockResolvedValue',
|
|
83
|
+
'mockRejectedValue',
|
|
84
|
+
'mockImplementation',
|
|
85
|
+
'mockReset',
|
|
86
|
+
'mockClear',
|
|
87
|
+
]);
|
|
88
|
+
/**
|
|
89
|
+
* Get or create a stub for a given path key.
|
|
90
|
+
*/
|
|
91
|
+
function getOrCreateStub(pathMap, key) {
|
|
92
|
+
let stub = pathMap.get(key);
|
|
93
|
+
if (!stub) {
|
|
94
|
+
stub = createStubFn();
|
|
95
|
+
pathMap.set(key, stub);
|
|
96
|
+
}
|
|
97
|
+
return stub;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Create a recursive Proxy that lazily materializes MockFn stubs
|
|
101
|
+
* at any property access depth.
|
|
102
|
+
*/
|
|
103
|
+
function createDeepProxy(pathMap, path = []) {
|
|
104
|
+
const cache = new Map();
|
|
105
|
+
// istanbul ignore next -- Proxy target is never called directly
|
|
106
|
+
return new Proxy(function () { }, {
|
|
107
|
+
get(_target, prop) {
|
|
108
|
+
// Prevent spurious thenable detection (await/Promise.resolve)
|
|
109
|
+
if (prop === 'then')
|
|
110
|
+
return undefined;
|
|
111
|
+
// Support typeof checks
|
|
112
|
+
if (prop === Symbol.toPrimitive)
|
|
113
|
+
return undefined;
|
|
114
|
+
if (prop === Symbol.iterator)
|
|
115
|
+
return undefined;
|
|
116
|
+
if (prop === Symbol.toStringTag)
|
|
117
|
+
return 'MockProxy';
|
|
118
|
+
// MockFn property access — create stub eagerly and delegate
|
|
119
|
+
if (typeof prop === 'string' && MOCK_FN_PROPS.has(prop)) {
|
|
120
|
+
const stub = getOrCreateStub(pathMap, path.join('.'));
|
|
121
|
+
return stub[prop];
|
|
122
|
+
}
|
|
123
|
+
// Return cached child proxy
|
|
124
|
+
if (cache.has(prop)) {
|
|
125
|
+
return cache.get(prop);
|
|
126
|
+
}
|
|
127
|
+
// Create child proxy for the next level
|
|
128
|
+
const childPath = [...path, String(prop)];
|
|
129
|
+
const child = createDeepProxy(pathMap, childPath);
|
|
130
|
+
cache.set(prop, child);
|
|
131
|
+
return child;
|
|
132
|
+
},
|
|
133
|
+
apply(_target, thisArg, args) {
|
|
134
|
+
const stub = getOrCreateStub(pathMap, path.join('.'));
|
|
135
|
+
return stub.apply(thisArg, args);
|
|
136
|
+
},
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Create a fully-mocked AugurAPI client.
|
|
141
|
+
*
|
|
142
|
+
* Every property chain resolves to either a nested namespace or a callable
|
|
143
|
+
* MockFn. The same object serves as both `client` (passed to production code)
|
|
144
|
+
* and `mocks` (used in assertions).
|
|
145
|
+
*
|
|
146
|
+
* @returns `{ client, mocks }` — same object, dual-typed for ergonomics
|
|
147
|
+
*
|
|
148
|
+
* @example
|
|
149
|
+
* ```typescript
|
|
150
|
+
* const { client, mocks } = createMockClient();
|
|
151
|
+
*
|
|
152
|
+
* // Stub a return value
|
|
153
|
+
* mocks.items.products.get.mockResolvedValue({ data: { id: 1 } });
|
|
154
|
+
*
|
|
155
|
+
* // Call through the client
|
|
156
|
+
* const result = await client.items.products.get(1);
|
|
157
|
+
*
|
|
158
|
+
* // Assert
|
|
159
|
+
* expect(mocks.items.products.get.mock.calls).toHaveLength(1);
|
|
160
|
+
* expect(mocks.items.products.get.mock.calls[0]).toEqual([1]);
|
|
161
|
+
* ```
|
|
162
|
+
*/
|
|
163
|
+
function createMockClient() {
|
|
164
|
+
const pathMap = new Map();
|
|
165
|
+
const proxy = createDeepProxy(pathMap);
|
|
166
|
+
return {
|
|
167
|
+
client: proxy,
|
|
168
|
+
mocks: proxy,
|
|
169
|
+
};
|
|
170
|
+
}
|
|
171
|
+
//# sourceMappingURL=testing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"testing.js","sourceRoot":"","sources":["../../src/testing.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export declare const VERSION = "0.9.
|
|
1
|
+
export declare const VERSION = "0.9.12";
|
|
2
2
|
export { AugurAPI } from './client';
|
|
3
3
|
export { authenticateUserForSite, createCrossSiteAuthenticator, type CrossSiteAuthParams, type CrossSiteAuthResult, } from './utils/cross-site-auth';
|
|
4
4
|
export { AugurAPIConfig, RequestConfig, type AugurContext, ContextCreationError, } from './core/config';
|
package/dist/esm/index.js
CHANGED
|
@@ -18,7 +18,7 @@ export declare function createItemFavoritesResource(executeRequest: ExecuteReque
|
|
|
18
18
|
*/
|
|
19
19
|
list: (usersId: number, params?: ItemFavoritesListParams) => Promise<{
|
|
20
20
|
params: Record<string, unknown> | unknown[];
|
|
21
|
-
data:
|
|
21
|
+
data: Record<string, unknown>[];
|
|
22
22
|
options: Record<string, unknown> | unknown[];
|
|
23
23
|
status: number;
|
|
24
24
|
message: string;
|
|
@@ -103,7 +103,7 @@ export declare function createItemFavoritesResource(executeRequest: ExecuteReque
|
|
|
103
103
|
* Creates the itemFavoritesData resource methods (data-only versions)
|
|
104
104
|
*/
|
|
105
105
|
export declare function createItemFavoritesDataResource(itemFavorites: ReturnType<typeof createItemFavoritesResource>): {
|
|
106
|
-
list: (usersId: number, params?: ItemFavoritesListParams) => Promise<
|
|
106
|
+
list: (usersId: number, params?: ItemFavoritesListParams) => Promise<Record<string, unknown>[]>;
|
|
107
107
|
get: (usersId: number, invMastUid: number, options?: CacheParams) => Promise<unknown>;
|
|
108
108
|
create: (usersId: number, data: unknown) => Promise<unknown>;
|
|
109
109
|
update: (usersId: number, invMastUid: number, data: unknown) => Promise<unknown>;
|
|
@@ -35,10 +35,10 @@ export declare const ItemFavoritesListParamsSchema: z.ZodObject<{
|
|
|
35
35
|
edgeCache: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<"30s">, z.ZodLiteral<"1m">, z.ZodLiteral<"5m">, z.ZodLiteral<1>, z.ZodLiteral<2>, z.ZodLiteral<3>, z.ZodLiteral<4>, z.ZodLiteral<5>, z.ZodLiteral<8>, z.ZodLiteral<"1">, z.ZodLiteral<"2">, z.ZodLiteral<"3">, z.ZodLiteral<"4">, z.ZodLiteral<"5">, z.ZodLiteral<"8">]>>;
|
|
36
36
|
}, z.ZodTypeAny, "passthrough">>;
|
|
37
37
|
/**
|
|
38
|
-
* GET response data - array of
|
|
39
|
-
* API returns: { data: [86491,
|
|
38
|
+
* GET response data - array of item favorite objects
|
|
39
|
+
* API returns: { data: [{ invMastUid: 86491, ... }, ...], ... }
|
|
40
40
|
*/
|
|
41
|
-
export declare const ItemFavoritesListDataSchema: z.ZodArray<z.
|
|
41
|
+
export declare const ItemFavoritesListDataSchema: z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>, "many">;
|
|
42
42
|
export declare const ItemFavoriteResponseSchema: z.ZodEffects<z.ZodObject<{
|
|
43
43
|
count: z.ZodNumber;
|
|
44
44
|
data: z.ZodObject<{
|
|
@@ -109,7 +109,7 @@ export declare const ItemFavoriteResponseSchema: z.ZodEffects<z.ZodObject<{
|
|
|
109
109
|
}>;
|
|
110
110
|
export declare const ItemFavoriteListResponseSchema: z.ZodEffects<z.ZodObject<{
|
|
111
111
|
count: z.ZodNumber;
|
|
112
|
-
data: z.ZodArray<z.
|
|
112
|
+
data: z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>, "many">;
|
|
113
113
|
message: z.ZodString;
|
|
114
114
|
options: z.ZodUnion<[z.ZodArray<z.ZodUnknown, "many">, z.ZodRecord<z.ZodString, z.ZodUnknown>]>;
|
|
115
115
|
params: z.ZodUnion<[z.ZodArray<z.ZodUnknown, "many">, z.ZodRecord<z.ZodString, z.ZodUnknown>]>;
|
|
@@ -118,7 +118,7 @@ export declare const ItemFavoriteListResponseSchema: z.ZodEffects<z.ZodObject<{
|
|
|
118
118
|
totalResults: z.ZodNumber;
|
|
119
119
|
}, "strip", z.ZodTypeAny, {
|
|
120
120
|
params: Record<string, unknown> | unknown[];
|
|
121
|
-
data:
|
|
121
|
+
data: Record<string, unknown>[];
|
|
122
122
|
options: Record<string, unknown> | unknown[];
|
|
123
123
|
status: number;
|
|
124
124
|
message: string;
|
|
@@ -127,7 +127,7 @@ export declare const ItemFavoriteListResponseSchema: z.ZodEffects<z.ZodObject<{
|
|
|
127
127
|
totalResults: number;
|
|
128
128
|
}, {
|
|
129
129
|
params: Record<string, unknown> | unknown[];
|
|
130
|
-
data:
|
|
130
|
+
data: Record<string, unknown>[];
|
|
131
131
|
options: Record<string, unknown> | unknown[];
|
|
132
132
|
status: number;
|
|
133
133
|
message: string;
|
|
@@ -136,7 +136,7 @@ export declare const ItemFavoriteListResponseSchema: z.ZodEffects<z.ZodObject<{
|
|
|
136
136
|
totalResults: number;
|
|
137
137
|
}>, {
|
|
138
138
|
params: Record<string, unknown> | unknown[];
|
|
139
|
-
data:
|
|
139
|
+
data: Record<string, unknown>[];
|
|
140
140
|
options: Record<string, unknown> | unknown[];
|
|
141
141
|
status: number;
|
|
142
142
|
message: string;
|
|
@@ -145,7 +145,7 @@ export declare const ItemFavoriteListResponseSchema: z.ZodEffects<z.ZodObject<{
|
|
|
145
145
|
totalResults: number;
|
|
146
146
|
}, {
|
|
147
147
|
params: Record<string, unknown> | unknown[];
|
|
148
|
-
data:
|
|
148
|
+
data: Record<string, unknown>[];
|
|
149
149
|
options: Record<string, unknown> | unknown[];
|
|
150
150
|
status: number;
|
|
151
151
|
message: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"favorites.d.ts","sourceRoot":"","sources":["../../../../../src/services/items/schemas/favorites.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,sEAAsE;AACtE,eAAO,MAAM,kBAAkB;;;;;;gCAAkE,CAAC;AAElG;;;GAGG;AACH,eAAO,MAAM,+BAA+B,iCAAsB,CAAC;AAEnE,sDAAsD;AACtD,eAAO,MAAM,+BAA+B,uJAA6B,CAAC;AAE1E,+DAA+D;AAC/D,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;gCAMX,CAAC;AAEhC;;;GAGG;AACH,eAAO,MAAM,2BAA2B,
|
|
1
|
+
{"version":3,"file":"favorites.d.ts","sourceRoot":"","sources":["../../../../../src/services/items/schemas/favorites.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,sEAAsE;AACtE,eAAO,MAAM,kBAAkB;;;;;;gCAAkE,CAAC;AAElG;;;GAGG;AACH,eAAO,MAAM,+BAA+B,iCAAsB,CAAC;AAEnE,sDAAsD;AACtD,eAAO,MAAM,+BAA+B,uJAA6B,CAAC;AAE1E,+DAA+D;AAC/D,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;gCAMX,CAAC;AAEhC;;;GAGG;AACH,eAAO,MAAM,2BAA2B,4DAAiC,CAAC;AAG1E,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAyC,CAAC;AACjF,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAkD,CAAC;AAG9F,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC9D,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAC;AACxF,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAC;AACxF,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AACpF,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAC9E,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;AACtF,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC"}
|
|
@@ -18,10 +18,10 @@ export const ItemFavoritesListParamsSchema = z
|
|
|
18
18
|
})
|
|
19
19
|
.merge(EdgeCacheParamsSchema);
|
|
20
20
|
/**
|
|
21
|
-
* GET response data - array of
|
|
22
|
-
* API returns: { data: [86491,
|
|
21
|
+
* GET response data - array of item favorite objects
|
|
22
|
+
* API returns: { data: [{ invMastUid: 86491, ... }, ...], ... }
|
|
23
23
|
*/
|
|
24
|
-
export const ItemFavoritesListDataSchema = z.array(z.
|
|
24
|
+
export const ItemFavoritesListDataSchema = z.array(z.record(z.unknown()));
|
|
25
25
|
// Response Schemas
|
|
26
26
|
export const ItemFavoriteResponseSchema = BaseResponseSchema(ItemFavoriteSchema);
|
|
27
27
|
export const ItemFavoriteListResponseSchema = BaseResponseSchema(ItemFavoritesListDataSchema);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"favorites.js","sourceRoot":"","sources":["../../../../../src/services/items/schemas/favorites.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAElF,sEAAsE;AACtE,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,gBAAgB,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;AAElG;;;GAGG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AAEnE,sDAAsD;AACtD,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;AAE1E,+DAA+D;AAC/D,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC;KAC3C,MAAM,CAAC;IACN,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACpD,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACjD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAClC,CAAC;KACD,KAAK,CAAC,qBAAqB,CAAC,CAAC;AAEhC;;;GAGG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"favorites.js","sourceRoot":"","sources":["../../../../../src/services/items/schemas/favorites.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAElF,sEAAsE;AACtE,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,gBAAgB,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;AAElG;;;GAGG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AAEnE,sDAAsD;AACtD,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;AAE1E,+DAA+D;AAC/D,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC;KAC3C,MAAM,CAAC;IACN,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACpD,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACjD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAClC,CAAC;KACD,KAAK,CAAC,qBAAqB,CAAC,CAAC;AAEhC;;;GAGG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;AAE1E,mBAAmB;AACnB,MAAM,CAAC,MAAM,0BAA0B,GAAG,kBAAkB,CAAC,kBAAkB,CAAC,CAAC;AACjF,MAAM,CAAC,MAAM,8BAA8B,GAAG,kBAAkB,CAAC,2BAA2B,CAAC,CAAC"}
|
|
@@ -2,12 +2,12 @@ import { z } from 'zod';
|
|
|
2
2
|
/**
|
|
3
3
|
* Response Schemas for /item-favorites endpoints
|
|
4
4
|
*
|
|
5
|
-
* GET /item-favorites/{usersId} returns: { data: [86491,
|
|
5
|
+
* GET /item-favorites/{usersId}/items returns: { data: [{ invMastUid: 86491, ... }, ...], ... }
|
|
6
6
|
* POST/PUT/DELETE return standard BaseResponse
|
|
7
7
|
*/
|
|
8
8
|
export declare const ItemFavoritesListResponseSchema: z.ZodEffects<z.ZodObject<{
|
|
9
9
|
count: z.ZodNumber;
|
|
10
|
-
data: z.ZodArray<z.
|
|
10
|
+
data: z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>, "many">;
|
|
11
11
|
message: z.ZodString;
|
|
12
12
|
options: z.ZodUnion<[z.ZodArray<z.ZodUnknown, "many">, z.ZodRecord<z.ZodString, z.ZodUnknown>]>;
|
|
13
13
|
params: z.ZodUnion<[z.ZodArray<z.ZodUnknown, "many">, z.ZodRecord<z.ZodString, z.ZodUnknown>]>;
|
|
@@ -16,7 +16,7 @@ export declare const ItemFavoritesListResponseSchema: z.ZodEffects<z.ZodObject<{
|
|
|
16
16
|
totalResults: z.ZodNumber;
|
|
17
17
|
}, "strip", z.ZodTypeAny, {
|
|
18
18
|
params: Record<string, unknown> | unknown[];
|
|
19
|
-
data:
|
|
19
|
+
data: Record<string, unknown>[];
|
|
20
20
|
options: Record<string, unknown> | unknown[];
|
|
21
21
|
status: number;
|
|
22
22
|
message: string;
|
|
@@ -25,7 +25,7 @@ export declare const ItemFavoritesListResponseSchema: z.ZodEffects<z.ZodObject<{
|
|
|
25
25
|
totalResults: number;
|
|
26
26
|
}, {
|
|
27
27
|
params: Record<string, unknown> | unknown[];
|
|
28
|
-
data:
|
|
28
|
+
data: Record<string, unknown>[];
|
|
29
29
|
options: Record<string, unknown> | unknown[];
|
|
30
30
|
status: number;
|
|
31
31
|
message: string;
|
|
@@ -34,7 +34,7 @@ export declare const ItemFavoritesListResponseSchema: z.ZodEffects<z.ZodObject<{
|
|
|
34
34
|
totalResults: number;
|
|
35
35
|
}>, {
|
|
36
36
|
params: Record<string, unknown> | unknown[];
|
|
37
|
-
data:
|
|
37
|
+
data: Record<string, unknown>[];
|
|
38
38
|
options: Record<string, unknown> | unknown[];
|
|
39
39
|
status: number;
|
|
40
40
|
message: string;
|
|
@@ -43,7 +43,7 @@ export declare const ItemFavoritesListResponseSchema: z.ZodEffects<z.ZodObject<{
|
|
|
43
43
|
totalResults: number;
|
|
44
44
|
}, {
|
|
45
45
|
params: Record<string, unknown> | unknown[];
|
|
46
|
-
data:
|
|
46
|
+
data: Record<string, unknown>[];
|
|
47
47
|
options: Record<string, unknown> | unknown[];
|
|
48
48
|
status: number;
|
|
49
49
|
message: string;
|
|
@@ -5,7 +5,7 @@ import { ItemFavoritesListDataSchema } from './favorites';
|
|
|
5
5
|
/**
|
|
6
6
|
* Response Schemas for /item-favorites endpoints
|
|
7
7
|
*
|
|
8
|
-
* GET /item-favorites/{usersId} returns: { data: [86491,
|
|
8
|
+
* GET /item-favorites/{usersId}/items returns: { data: [{ invMastUid: 86491, ... }, ...], ... }
|
|
9
9
|
* POST/PUT/DELETE return standard BaseResponse
|
|
10
10
|
*/
|
|
11
11
|
export const ItemFavoritesListResponseSchema = BaseResponseSchema(ItemFavoritesListDataSchema);
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Testing utilities for @simpleapps-com/augur-api
|
|
3
|
+
*
|
|
4
|
+
* Provides a Proxy-based deep mock factory that automatically creates
|
|
5
|
+
* mock functions at any depth, matching the AugurAPI client shape.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```typescript
|
|
9
|
+
* import { createMockClient } from '@simpleapps-com/augur-api/testing';
|
|
10
|
+
*
|
|
11
|
+
* const { client, mocks } = createMockClient();
|
|
12
|
+
* mocks.commerce.cartHeaders.lookup.mockResolvedValue({ data: [] });
|
|
13
|
+
*
|
|
14
|
+
* const result = await client.commerce.cartHeaders.lookup({ userId: 1 });
|
|
15
|
+
* expect(mocks.commerce.cartHeaders.lookup.mock.calls[0]).toEqual([{ userId: 1 }]);
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
import type { AugurAPI } from './client';
|
|
19
|
+
/** Recorded call arguments */
|
|
20
|
+
export interface MockCall {
|
|
21
|
+
args: unknown[];
|
|
22
|
+
timestamp: number;
|
|
23
|
+
}
|
|
24
|
+
/** Call tracking state */
|
|
25
|
+
export interface MockState {
|
|
26
|
+
calls: unknown[][];
|
|
27
|
+
results: Array<{
|
|
28
|
+
type: 'return' | 'throw';
|
|
29
|
+
value: unknown;
|
|
30
|
+
}>;
|
|
31
|
+
instances: unknown[];
|
|
32
|
+
lastCall: unknown[] | undefined;
|
|
33
|
+
}
|
|
34
|
+
/** A mock function with call tracking and return-value control */
|
|
35
|
+
export interface MockFn {
|
|
36
|
+
(...args: unknown[]): unknown;
|
|
37
|
+
mock: MockState;
|
|
38
|
+
mockReturnValue(value: unknown): MockFn;
|
|
39
|
+
mockResolvedValue(value: unknown): MockFn;
|
|
40
|
+
mockRejectedValue(value: unknown): MockFn;
|
|
41
|
+
mockImplementation(fn: (...args: unknown[]) => unknown): MockFn;
|
|
42
|
+
mockReset(): MockFn;
|
|
43
|
+
mockClear(): MockFn;
|
|
44
|
+
}
|
|
45
|
+
/** Recursively maps AugurAPI to MockFn leaves */
|
|
46
|
+
export type DeepMockClient<T> = {
|
|
47
|
+
[K in keyof T]: T[K] extends Function ? MockFn : DeepMockClient<T[K]>;
|
|
48
|
+
};
|
|
49
|
+
/** Return type of createMockClient */
|
|
50
|
+
export interface MockClientResult {
|
|
51
|
+
client: AugurAPI;
|
|
52
|
+
mocks: DeepMockClient<AugurAPI>;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Create a fully-mocked AugurAPI client.
|
|
56
|
+
*
|
|
57
|
+
* Every property chain resolves to either a nested namespace or a callable
|
|
58
|
+
* MockFn. The same object serves as both `client` (passed to production code)
|
|
59
|
+
* and `mocks` (used in assertions).
|
|
60
|
+
*
|
|
61
|
+
* @returns `{ client, mocks }` — same object, dual-typed for ergonomics
|
|
62
|
+
*
|
|
63
|
+
* @example
|
|
64
|
+
* ```typescript
|
|
65
|
+
* const { client, mocks } = createMockClient();
|
|
66
|
+
*
|
|
67
|
+
* // Stub a return value
|
|
68
|
+
* mocks.items.products.get.mockResolvedValue({ data: { id: 1 } });
|
|
69
|
+
*
|
|
70
|
+
* // Call through the client
|
|
71
|
+
* const result = await client.items.products.get(1);
|
|
72
|
+
*
|
|
73
|
+
* // Assert
|
|
74
|
+
* expect(mocks.items.products.get.mock.calls).toHaveLength(1);
|
|
75
|
+
* expect(mocks.items.products.get.mock.calls[0]).toEqual([1]);
|
|
76
|
+
* ```
|
|
77
|
+
*/
|
|
78
|
+
export declare function createMockClient(): MockClientResult;
|
|
79
|
+
//# sourceMappingURL=testing.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../../src/testing.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEzC,8BAA8B;AAC9B,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,OAAO,EAAE,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,0BAA0B;AAC1B,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC;IACnB,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAC7D,SAAS,EAAE,OAAO,EAAE,CAAC;IACrB,QAAQ,EAAE,OAAO,EAAE,GAAG,SAAS,CAAC;CACjC;AAED,kEAAkE;AAClE,MAAM,WAAW,MAAM;IACrB,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IAC9B,IAAI,EAAE,SAAS,CAAC;IAChB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC;IACxC,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC;IAC1C,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC;IAC1C,kBAAkB,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,GAAG,MAAM,CAAC;IAChE,SAAS,IAAI,MAAM,CAAC;IACpB,SAAS,IAAI,MAAM,CAAC;CACrB;AAED,iDAAiD;AACjD,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI;KAE7B,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,QAAQ,GAAG,MAAM,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACtE,CAAC;AAEF,sCAAsC;AACtC,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,QAAQ,CAAC;IACjB,KAAK,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC;CACjC;AAwID;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,gBAAgB,IAAI,gBAAgB,CAQnD"}
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Testing utilities for @simpleapps-com/augur-api
|
|
3
|
+
*
|
|
4
|
+
* Provides a Proxy-based deep mock factory that automatically creates
|
|
5
|
+
* mock functions at any depth, matching the AugurAPI client shape.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```typescript
|
|
9
|
+
* import { createMockClient } from '@simpleapps-com/augur-api/testing';
|
|
10
|
+
*
|
|
11
|
+
* const { client, mocks } = createMockClient();
|
|
12
|
+
* mocks.commerce.cartHeaders.lookup.mockResolvedValue({ data: [] });
|
|
13
|
+
*
|
|
14
|
+
* const result = await client.commerce.cartHeaders.lookup({ userId: 1 });
|
|
15
|
+
* expect(mocks.commerce.cartHeaders.lookup.mock.calls[0]).toEqual([{ userId: 1 }]);
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
/** Create a stub function with full call-tracking */
|
|
19
|
+
function createStubFn() {
|
|
20
|
+
let implementation = null;
|
|
21
|
+
const state = {
|
|
22
|
+
calls: [],
|
|
23
|
+
results: [],
|
|
24
|
+
instances: [],
|
|
25
|
+
lastCall: undefined,
|
|
26
|
+
};
|
|
27
|
+
const fn = function mockFn(...args) {
|
|
28
|
+
state.calls.push(args);
|
|
29
|
+
state.lastCall = args;
|
|
30
|
+
state.instances.push(this);
|
|
31
|
+
try {
|
|
32
|
+
const result = implementation ? implementation(...args) : undefined;
|
|
33
|
+
state.results.push({ type: 'return', value: result });
|
|
34
|
+
return result;
|
|
35
|
+
}
|
|
36
|
+
catch (error) {
|
|
37
|
+
state.results.push({ type: 'throw', value: error });
|
|
38
|
+
throw error;
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
fn.mock = state;
|
|
42
|
+
fn.mockReturnValue = (value) => {
|
|
43
|
+
implementation = () => value;
|
|
44
|
+
return fn;
|
|
45
|
+
};
|
|
46
|
+
fn.mockResolvedValue = (value) => {
|
|
47
|
+
implementation = () => Promise.resolve(value);
|
|
48
|
+
return fn;
|
|
49
|
+
};
|
|
50
|
+
fn.mockRejectedValue = (value) => {
|
|
51
|
+
implementation = () => Promise.reject(value);
|
|
52
|
+
return fn;
|
|
53
|
+
};
|
|
54
|
+
fn.mockImplementation = (implFn) => {
|
|
55
|
+
implementation = implFn;
|
|
56
|
+
return fn;
|
|
57
|
+
};
|
|
58
|
+
fn.mockReset = () => {
|
|
59
|
+
state.calls = [];
|
|
60
|
+
state.results = [];
|
|
61
|
+
state.instances = [];
|
|
62
|
+
state.lastCall = undefined;
|
|
63
|
+
implementation = null;
|
|
64
|
+
return fn;
|
|
65
|
+
};
|
|
66
|
+
fn.mockClear = () => {
|
|
67
|
+
state.calls = [];
|
|
68
|
+
state.results = [];
|
|
69
|
+
state.instances = [];
|
|
70
|
+
state.lastCall = undefined;
|
|
71
|
+
return fn;
|
|
72
|
+
};
|
|
73
|
+
return fn;
|
|
74
|
+
}
|
|
75
|
+
/** Property names that belong to MockFn — triggers stub creation */
|
|
76
|
+
const MOCK_FN_PROPS = new Set([
|
|
77
|
+
'mock',
|
|
78
|
+
'mockReturnValue',
|
|
79
|
+
'mockResolvedValue',
|
|
80
|
+
'mockRejectedValue',
|
|
81
|
+
'mockImplementation',
|
|
82
|
+
'mockReset',
|
|
83
|
+
'mockClear',
|
|
84
|
+
]);
|
|
85
|
+
/**
|
|
86
|
+
* Get or create a stub for a given path key.
|
|
87
|
+
*/
|
|
88
|
+
function getOrCreateStub(pathMap, key) {
|
|
89
|
+
let stub = pathMap.get(key);
|
|
90
|
+
if (!stub) {
|
|
91
|
+
stub = createStubFn();
|
|
92
|
+
pathMap.set(key, stub);
|
|
93
|
+
}
|
|
94
|
+
return stub;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Create a recursive Proxy that lazily materializes MockFn stubs
|
|
98
|
+
* at any property access depth.
|
|
99
|
+
*/
|
|
100
|
+
function createDeepProxy(pathMap, path = []) {
|
|
101
|
+
const cache = new Map();
|
|
102
|
+
// istanbul ignore next -- Proxy target is never called directly
|
|
103
|
+
return new Proxy(function () { }, {
|
|
104
|
+
get(_target, prop) {
|
|
105
|
+
// Prevent spurious thenable detection (await/Promise.resolve)
|
|
106
|
+
if (prop === 'then')
|
|
107
|
+
return undefined;
|
|
108
|
+
// Support typeof checks
|
|
109
|
+
if (prop === Symbol.toPrimitive)
|
|
110
|
+
return undefined;
|
|
111
|
+
if (prop === Symbol.iterator)
|
|
112
|
+
return undefined;
|
|
113
|
+
if (prop === Symbol.toStringTag)
|
|
114
|
+
return 'MockProxy';
|
|
115
|
+
// MockFn property access — create stub eagerly and delegate
|
|
116
|
+
if (typeof prop === 'string' && MOCK_FN_PROPS.has(prop)) {
|
|
117
|
+
const stub = getOrCreateStub(pathMap, path.join('.'));
|
|
118
|
+
return stub[prop];
|
|
119
|
+
}
|
|
120
|
+
// Return cached child proxy
|
|
121
|
+
if (cache.has(prop)) {
|
|
122
|
+
return cache.get(prop);
|
|
123
|
+
}
|
|
124
|
+
// Create child proxy for the next level
|
|
125
|
+
const childPath = [...path, String(prop)];
|
|
126
|
+
const child = createDeepProxy(pathMap, childPath);
|
|
127
|
+
cache.set(prop, child);
|
|
128
|
+
return child;
|
|
129
|
+
},
|
|
130
|
+
apply(_target, thisArg, args) {
|
|
131
|
+
const stub = getOrCreateStub(pathMap, path.join('.'));
|
|
132
|
+
return stub.apply(thisArg, args);
|
|
133
|
+
},
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Create a fully-mocked AugurAPI client.
|
|
138
|
+
*
|
|
139
|
+
* Every property chain resolves to either a nested namespace or a callable
|
|
140
|
+
* MockFn. The same object serves as both `client` (passed to production code)
|
|
141
|
+
* and `mocks` (used in assertions).
|
|
142
|
+
*
|
|
143
|
+
* @returns `{ client, mocks }` — same object, dual-typed for ergonomics
|
|
144
|
+
*
|
|
145
|
+
* @example
|
|
146
|
+
* ```typescript
|
|
147
|
+
* const { client, mocks } = createMockClient();
|
|
148
|
+
*
|
|
149
|
+
* // Stub a return value
|
|
150
|
+
* mocks.items.products.get.mockResolvedValue({ data: { id: 1 } });
|
|
151
|
+
*
|
|
152
|
+
* // Call through the client
|
|
153
|
+
* const result = await client.items.products.get(1);
|
|
154
|
+
*
|
|
155
|
+
* // Assert
|
|
156
|
+
* expect(mocks.items.products.get.mock.calls).toHaveLength(1);
|
|
157
|
+
* expect(mocks.items.products.get.mock.calls[0]).toEqual([1]);
|
|
158
|
+
* ```
|
|
159
|
+
*/
|
|
160
|
+
export function createMockClient() {
|
|
161
|
+
const pathMap = new Map();
|
|
162
|
+
const proxy = createDeepProxy(pathMap);
|
|
163
|
+
return {
|
|
164
|
+
client: proxy,
|
|
165
|
+
mocks: proxy,
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
//# sourceMappingURL=testing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"testing.js","sourceRoot":"","sources":["../../src/testing.ts"],"names":[],"mappings":"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"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export declare const VERSION = "0.9.
|
|
1
|
+
export declare const VERSION = "0.9.12";
|
|
2
2
|
export { AugurAPI } from './client';
|
|
3
3
|
export { authenticateUserForSite, createCrossSiteAuthenticator, type CrossSiteAuthParams, type CrossSiteAuthResult, } from './utils/cross-site-auth';
|
|
4
4
|
export { AugurAPIConfig, RequestConfig, type AugurContext, ContextCreationError, } from './core/config';
|
|
@@ -18,7 +18,7 @@ export declare function createItemFavoritesResource(executeRequest: ExecuteReque
|
|
|
18
18
|
*/
|
|
19
19
|
list: (usersId: number, params?: ItemFavoritesListParams) => Promise<{
|
|
20
20
|
params: Record<string, unknown> | unknown[];
|
|
21
|
-
data:
|
|
21
|
+
data: Record<string, unknown>[];
|
|
22
22
|
options: Record<string, unknown> | unknown[];
|
|
23
23
|
status: number;
|
|
24
24
|
message: string;
|
|
@@ -103,7 +103,7 @@ export declare function createItemFavoritesResource(executeRequest: ExecuteReque
|
|
|
103
103
|
* Creates the itemFavoritesData resource methods (data-only versions)
|
|
104
104
|
*/
|
|
105
105
|
export declare function createItemFavoritesDataResource(itemFavorites: ReturnType<typeof createItemFavoritesResource>): {
|
|
106
|
-
list: (usersId: number, params?: ItemFavoritesListParams) => Promise<
|
|
106
|
+
list: (usersId: number, params?: ItemFavoritesListParams) => Promise<Record<string, unknown>[]>;
|
|
107
107
|
get: (usersId: number, invMastUid: number, options?: CacheParams) => Promise<unknown>;
|
|
108
108
|
create: (usersId: number, data: unknown) => Promise<unknown>;
|
|
109
109
|
update: (usersId: number, invMastUid: number, data: unknown) => Promise<unknown>;
|
|
@@ -35,10 +35,10 @@ export declare const ItemFavoritesListParamsSchema: z.ZodObject<{
|
|
|
35
35
|
edgeCache: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<"30s">, z.ZodLiteral<"1m">, z.ZodLiteral<"5m">, z.ZodLiteral<1>, z.ZodLiteral<2>, z.ZodLiteral<3>, z.ZodLiteral<4>, z.ZodLiteral<5>, z.ZodLiteral<8>, z.ZodLiteral<"1">, z.ZodLiteral<"2">, z.ZodLiteral<"3">, z.ZodLiteral<"4">, z.ZodLiteral<"5">, z.ZodLiteral<"8">]>>;
|
|
36
36
|
}, z.ZodTypeAny, "passthrough">>;
|
|
37
37
|
/**
|
|
38
|
-
* GET response data - array of
|
|
39
|
-
* API returns: { data: [86491,
|
|
38
|
+
* GET response data - array of item favorite objects
|
|
39
|
+
* API returns: { data: [{ invMastUid: 86491, ... }, ...], ... }
|
|
40
40
|
*/
|
|
41
|
-
export declare const ItemFavoritesListDataSchema: z.ZodArray<z.
|
|
41
|
+
export declare const ItemFavoritesListDataSchema: z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>, "many">;
|
|
42
42
|
export declare const ItemFavoriteResponseSchema: z.ZodEffects<z.ZodObject<{
|
|
43
43
|
count: z.ZodNumber;
|
|
44
44
|
data: z.ZodObject<{
|
|
@@ -109,7 +109,7 @@ export declare const ItemFavoriteResponseSchema: z.ZodEffects<z.ZodObject<{
|
|
|
109
109
|
}>;
|
|
110
110
|
export declare const ItemFavoriteListResponseSchema: z.ZodEffects<z.ZodObject<{
|
|
111
111
|
count: z.ZodNumber;
|
|
112
|
-
data: z.ZodArray<z.
|
|
112
|
+
data: z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>, "many">;
|
|
113
113
|
message: z.ZodString;
|
|
114
114
|
options: z.ZodUnion<[z.ZodArray<z.ZodUnknown, "many">, z.ZodRecord<z.ZodString, z.ZodUnknown>]>;
|
|
115
115
|
params: z.ZodUnion<[z.ZodArray<z.ZodUnknown, "many">, z.ZodRecord<z.ZodString, z.ZodUnknown>]>;
|
|
@@ -118,7 +118,7 @@ export declare const ItemFavoriteListResponseSchema: z.ZodEffects<z.ZodObject<{
|
|
|
118
118
|
totalResults: z.ZodNumber;
|
|
119
119
|
}, "strip", z.ZodTypeAny, {
|
|
120
120
|
params: Record<string, unknown> | unknown[];
|
|
121
|
-
data:
|
|
121
|
+
data: Record<string, unknown>[];
|
|
122
122
|
options: Record<string, unknown> | unknown[];
|
|
123
123
|
status: number;
|
|
124
124
|
message: string;
|
|
@@ -127,7 +127,7 @@ export declare const ItemFavoriteListResponseSchema: z.ZodEffects<z.ZodObject<{
|
|
|
127
127
|
totalResults: number;
|
|
128
128
|
}, {
|
|
129
129
|
params: Record<string, unknown> | unknown[];
|
|
130
|
-
data:
|
|
130
|
+
data: Record<string, unknown>[];
|
|
131
131
|
options: Record<string, unknown> | unknown[];
|
|
132
132
|
status: number;
|
|
133
133
|
message: string;
|
|
@@ -136,7 +136,7 @@ export declare const ItemFavoriteListResponseSchema: z.ZodEffects<z.ZodObject<{
|
|
|
136
136
|
totalResults: number;
|
|
137
137
|
}>, {
|
|
138
138
|
params: Record<string, unknown> | unknown[];
|
|
139
|
-
data:
|
|
139
|
+
data: Record<string, unknown>[];
|
|
140
140
|
options: Record<string, unknown> | unknown[];
|
|
141
141
|
status: number;
|
|
142
142
|
message: string;
|
|
@@ -145,7 +145,7 @@ export declare const ItemFavoriteListResponseSchema: z.ZodEffects<z.ZodObject<{
|
|
|
145
145
|
totalResults: number;
|
|
146
146
|
}, {
|
|
147
147
|
params: Record<string, unknown> | unknown[];
|
|
148
|
-
data:
|
|
148
|
+
data: Record<string, unknown>[];
|
|
149
149
|
options: Record<string, unknown> | unknown[];
|
|
150
150
|
status: number;
|
|
151
151
|
message: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"favorites.d.ts","sourceRoot":"","sources":["../../../../../src/services/items/schemas/favorites.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,sEAAsE;AACtE,eAAO,MAAM,kBAAkB;;;;;;gCAAkE,CAAC;AAElG;;;GAGG;AACH,eAAO,MAAM,+BAA+B,iCAAsB,CAAC;AAEnE,sDAAsD;AACtD,eAAO,MAAM,+BAA+B,uJAA6B,CAAC;AAE1E,+DAA+D;AAC/D,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;gCAMX,CAAC;AAEhC;;;GAGG;AACH,eAAO,MAAM,2BAA2B,
|
|
1
|
+
{"version":3,"file":"favorites.d.ts","sourceRoot":"","sources":["../../../../../src/services/items/schemas/favorites.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,sEAAsE;AACtE,eAAO,MAAM,kBAAkB;;;;;;gCAAkE,CAAC;AAElG;;;GAGG;AACH,eAAO,MAAM,+BAA+B,iCAAsB,CAAC;AAEnE,sDAAsD;AACtD,eAAO,MAAM,+BAA+B,uJAA6B,CAAC;AAE1E,+DAA+D;AAC/D,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;gCAMX,CAAC;AAEhC;;;GAGG;AACH,eAAO,MAAM,2BAA2B,4DAAiC,CAAC;AAG1E,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAyC,CAAC;AACjF,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAkD,CAAC;AAG9F,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC9D,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAC;AACxF,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAC;AACxF,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AACpF,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAC9E,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;AACtF,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC"}
|
|
@@ -2,12 +2,12 @@ import { z } from 'zod';
|
|
|
2
2
|
/**
|
|
3
3
|
* Response Schemas for /item-favorites endpoints
|
|
4
4
|
*
|
|
5
|
-
* GET /item-favorites/{usersId} returns: { data: [86491,
|
|
5
|
+
* GET /item-favorites/{usersId}/items returns: { data: [{ invMastUid: 86491, ... }, ...], ... }
|
|
6
6
|
* POST/PUT/DELETE return standard BaseResponse
|
|
7
7
|
*/
|
|
8
8
|
export declare const ItemFavoritesListResponseSchema: z.ZodEffects<z.ZodObject<{
|
|
9
9
|
count: z.ZodNumber;
|
|
10
|
-
data: z.ZodArray<z.
|
|
10
|
+
data: z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>, "many">;
|
|
11
11
|
message: z.ZodString;
|
|
12
12
|
options: z.ZodUnion<[z.ZodArray<z.ZodUnknown, "many">, z.ZodRecord<z.ZodString, z.ZodUnknown>]>;
|
|
13
13
|
params: z.ZodUnion<[z.ZodArray<z.ZodUnknown, "many">, z.ZodRecord<z.ZodString, z.ZodUnknown>]>;
|
|
@@ -16,7 +16,7 @@ export declare const ItemFavoritesListResponseSchema: z.ZodEffects<z.ZodObject<{
|
|
|
16
16
|
totalResults: z.ZodNumber;
|
|
17
17
|
}, "strip", z.ZodTypeAny, {
|
|
18
18
|
params: Record<string, unknown> | unknown[];
|
|
19
|
-
data:
|
|
19
|
+
data: Record<string, unknown>[];
|
|
20
20
|
options: Record<string, unknown> | unknown[];
|
|
21
21
|
status: number;
|
|
22
22
|
message: string;
|
|
@@ -25,7 +25,7 @@ export declare const ItemFavoritesListResponseSchema: z.ZodEffects<z.ZodObject<{
|
|
|
25
25
|
totalResults: number;
|
|
26
26
|
}, {
|
|
27
27
|
params: Record<string, unknown> | unknown[];
|
|
28
|
-
data:
|
|
28
|
+
data: Record<string, unknown>[];
|
|
29
29
|
options: Record<string, unknown> | unknown[];
|
|
30
30
|
status: number;
|
|
31
31
|
message: string;
|
|
@@ -34,7 +34,7 @@ export declare const ItemFavoritesListResponseSchema: z.ZodEffects<z.ZodObject<{
|
|
|
34
34
|
totalResults: number;
|
|
35
35
|
}>, {
|
|
36
36
|
params: Record<string, unknown> | unknown[];
|
|
37
|
-
data:
|
|
37
|
+
data: Record<string, unknown>[];
|
|
38
38
|
options: Record<string, unknown> | unknown[];
|
|
39
39
|
status: number;
|
|
40
40
|
message: string;
|
|
@@ -43,7 +43,7 @@ export declare const ItemFavoritesListResponseSchema: z.ZodEffects<z.ZodObject<{
|
|
|
43
43
|
totalResults: number;
|
|
44
44
|
}, {
|
|
45
45
|
params: Record<string, unknown> | unknown[];
|
|
46
|
-
data:
|
|
46
|
+
data: Record<string, unknown>[];
|
|
47
47
|
options: Record<string, unknown> | unknown[];
|
|
48
48
|
status: number;
|
|
49
49
|
message: string;
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Testing utilities for @simpleapps-com/augur-api
|
|
3
|
+
*
|
|
4
|
+
* Provides a Proxy-based deep mock factory that automatically creates
|
|
5
|
+
* mock functions at any depth, matching the AugurAPI client shape.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```typescript
|
|
9
|
+
* import { createMockClient } from '@simpleapps-com/augur-api/testing';
|
|
10
|
+
*
|
|
11
|
+
* const { client, mocks } = createMockClient();
|
|
12
|
+
* mocks.commerce.cartHeaders.lookup.mockResolvedValue({ data: [] });
|
|
13
|
+
*
|
|
14
|
+
* const result = await client.commerce.cartHeaders.lookup({ userId: 1 });
|
|
15
|
+
* expect(mocks.commerce.cartHeaders.lookup.mock.calls[0]).toEqual([{ userId: 1 }]);
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
import type { AugurAPI } from './client';
|
|
19
|
+
/** Recorded call arguments */
|
|
20
|
+
export interface MockCall {
|
|
21
|
+
args: unknown[];
|
|
22
|
+
timestamp: number;
|
|
23
|
+
}
|
|
24
|
+
/** Call tracking state */
|
|
25
|
+
export interface MockState {
|
|
26
|
+
calls: unknown[][];
|
|
27
|
+
results: Array<{
|
|
28
|
+
type: 'return' | 'throw';
|
|
29
|
+
value: unknown;
|
|
30
|
+
}>;
|
|
31
|
+
instances: unknown[];
|
|
32
|
+
lastCall: unknown[] | undefined;
|
|
33
|
+
}
|
|
34
|
+
/** A mock function with call tracking and return-value control */
|
|
35
|
+
export interface MockFn {
|
|
36
|
+
(...args: unknown[]): unknown;
|
|
37
|
+
mock: MockState;
|
|
38
|
+
mockReturnValue(value: unknown): MockFn;
|
|
39
|
+
mockResolvedValue(value: unknown): MockFn;
|
|
40
|
+
mockRejectedValue(value: unknown): MockFn;
|
|
41
|
+
mockImplementation(fn: (...args: unknown[]) => unknown): MockFn;
|
|
42
|
+
mockReset(): MockFn;
|
|
43
|
+
mockClear(): MockFn;
|
|
44
|
+
}
|
|
45
|
+
/** Recursively maps AugurAPI to MockFn leaves */
|
|
46
|
+
export type DeepMockClient<T> = {
|
|
47
|
+
[K in keyof T]: T[K] extends Function ? MockFn : DeepMockClient<T[K]>;
|
|
48
|
+
};
|
|
49
|
+
/** Return type of createMockClient */
|
|
50
|
+
export interface MockClientResult {
|
|
51
|
+
client: AugurAPI;
|
|
52
|
+
mocks: DeepMockClient<AugurAPI>;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Create a fully-mocked AugurAPI client.
|
|
56
|
+
*
|
|
57
|
+
* Every property chain resolves to either a nested namespace or a callable
|
|
58
|
+
* MockFn. The same object serves as both `client` (passed to production code)
|
|
59
|
+
* and `mocks` (used in assertions).
|
|
60
|
+
*
|
|
61
|
+
* @returns `{ client, mocks }` — same object, dual-typed for ergonomics
|
|
62
|
+
*
|
|
63
|
+
* @example
|
|
64
|
+
* ```typescript
|
|
65
|
+
* const { client, mocks } = createMockClient();
|
|
66
|
+
*
|
|
67
|
+
* // Stub a return value
|
|
68
|
+
* mocks.items.products.get.mockResolvedValue({ data: { id: 1 } });
|
|
69
|
+
*
|
|
70
|
+
* // Call through the client
|
|
71
|
+
* const result = await client.items.products.get(1);
|
|
72
|
+
*
|
|
73
|
+
* // Assert
|
|
74
|
+
* expect(mocks.items.products.get.mock.calls).toHaveLength(1);
|
|
75
|
+
* expect(mocks.items.products.get.mock.calls[0]).toEqual([1]);
|
|
76
|
+
* ```
|
|
77
|
+
*/
|
|
78
|
+
export declare function createMockClient(): MockClientResult;
|
|
79
|
+
//# sourceMappingURL=testing.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../../src/testing.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEzC,8BAA8B;AAC9B,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,OAAO,EAAE,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,0BAA0B;AAC1B,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC;IACnB,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAC7D,SAAS,EAAE,OAAO,EAAE,CAAC;IACrB,QAAQ,EAAE,OAAO,EAAE,GAAG,SAAS,CAAC;CACjC;AAED,kEAAkE;AAClE,MAAM,WAAW,MAAM;IACrB,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IAC9B,IAAI,EAAE,SAAS,CAAC;IAChB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC;IACxC,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC;IAC1C,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC;IAC1C,kBAAkB,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,GAAG,MAAM,CAAC;IAChE,SAAS,IAAI,MAAM,CAAC;IACpB,SAAS,IAAI,MAAM,CAAC;CACrB;AAED,iDAAiD;AACjD,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI;KAE7B,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,QAAQ,GAAG,MAAM,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACtE,CAAC;AAEF,sCAAsC;AACtC,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,QAAQ,CAAC;IACjB,KAAK,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC;CACjC;AAwID;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,gBAAgB,IAAI,gBAAgB,CAQnD"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@simpleapps-com/augur-api",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.12",
|
|
4
4
|
"description": "TypeScript client library for Augur microservices API endpoints",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"augur",
|
|
@@ -16,6 +16,11 @@
|
|
|
16
16
|
"types": "./dist/types/index.d.ts",
|
|
17
17
|
"require": "./dist/cjs/index.js",
|
|
18
18
|
"import": "./dist/esm/index.js"
|
|
19
|
+
},
|
|
20
|
+
"./testing": {
|
|
21
|
+
"types": "./dist/types/testing.d.ts",
|
|
22
|
+
"require": "./dist/cjs/testing.js",
|
|
23
|
+
"import": "./dist/esm/testing.js"
|
|
19
24
|
}
|
|
20
25
|
},
|
|
21
26
|
"main": "./dist/cjs/index.js",
|