callman-mcp 0.8.0 → 0.9.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 +55 -0
- package/README.md +25 -9
- package/dist/client/api.d.ts +39 -1
- package/dist/client/api.d.ts.map +1 -1
- package/dist/client/api.js +53 -0
- package/dist/client/api.js.map +1 -1
- package/dist/client/errors.d.ts.map +1 -1
- package/dist/client/errors.js +28 -1
- package/dist/client/errors.js.map +1 -1
- package/dist/client/http.d.ts +2 -1
- package/dist/client/http.d.ts.map +1 -1
- package/dist/client/http.js +4 -2
- package/dist/client/http.js.map +1 -1
- package/dist/client/types.d.ts +92 -1
- package/dist/client/types.d.ts.map +1 -1
- package/dist/client/types.js +0 -3
- package/dist/client/types.js.map +1 -1
- package/dist/config.d.ts +1 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +2 -0
- package/dist/config.js.map +1 -1
- package/dist/context.d.ts +8 -0
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +1 -0
- package/dist/context.js.map +1 -1
- package/dist/index.js +17 -1
- package/dist/index.js.map +1 -1
- package/dist/resources/docs/mocks.d.ts +1 -1
- package/dist/resources/docs/mocks.d.ts.map +1 -1
- package/dist/resources/docs/mocks.js +349 -114
- package/dist/resources/docs/mocks.js.map +1 -1
- package/dist/resources/docs/overview.d.ts +1 -1
- package/dist/resources/docs/overview.d.ts.map +1 -1
- package/dist/resources/docs/overview.js +5 -1
- package/dist/resources/docs/overview.js.map +1 -1
- package/dist/resources/generated/aiPacks.d.ts +1 -1
- package/dist/resources/generated/aiPacks.js +2 -2
- package/dist/resources/index.js +1 -1
- package/dist/resources/index.js.map +1 -1
- package/dist/server.d.ts +3 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +2 -0
- package/dist/server.js.map +1 -1
- package/dist/tools/catalog.d.ts.map +1 -1
- package/dist/tools/catalog.js +15 -1
- package/dist/tools/catalog.js.map +1 -1
- package/dist/tools/import.d.ts.map +1 -1
- package/dist/tools/import.js +7 -1
- package/dist/tools/import.js.map +1 -1
- package/dist/tools/mockData.d.ts +4 -0
- package/dist/tools/mockData.d.ts.map +1 -0
- package/dist/tools/mockData.js +384 -0
- package/dist/tools/mockData.js.map +1 -0
- package/dist/tools/mockEngine.d.ts +129 -0
- package/dist/tools/mockEngine.d.ts.map +1 -0
- package/dist/tools/mockEngine.js +225 -0
- package/dist/tools/mockEngine.js.map +1 -0
- package/dist/tools/mockImport.d.ts +5 -0
- package/dist/tools/mockImport.d.ts.map +1 -0
- package/dist/tools/mockImport.js +298 -0
- package/dist/tools/mockImport.js.map +1 -0
- package/dist/tools/mockSchemas.d.ts +12272 -0
- package/dist/tools/mockSchemas.d.ts.map +1 -0
- package/dist/tools/mockSchemas.js +247 -0
- package/dist/tools/mockSchemas.js.map +1 -0
- package/dist/tools/mockShared.d.ts +5449 -77
- package/dist/tools/mockShared.d.ts.map +1 -1
- package/dist/tools/mockShared.js +101 -43
- package/dist/tools/mockShared.js.map +1 -1
- package/dist/tools/mocks.d.ts.map +1 -1
- package/dist/tools/mocks.js +117 -35
- package/dist/tools/mocks.js.map +1 -1
- package/dist/tools/mocksLocal.d.ts +27 -3
- package/dist/tools/mocksLocal.d.ts.map +1 -1
- package/dist/tools/mocksLocal.js +118 -26
- package/dist/tools/mocksLocal.js.map +1 -1
- package/dist/tools/uiTestAdmin.d.ts.map +1 -1
- package/dist/tools/uiTestAdmin.js +3 -1
- package/dist/tools/uiTestAdmin.js.map +1 -1
- package/dist-cjs/client/api.js +53 -0
- package/dist-cjs/client/errors.js +28 -1
- package/dist-cjs/client/http.js +4 -2
- package/dist-cjs/client/types.js +0 -3
- package/dist-cjs/config.js +2 -0
- package/dist-cjs/context.js +1 -0
- package/dist-cjs/resources/docs/mocks.js +349 -114
- package/dist-cjs/resources/docs/overview.js +5 -1
- package/dist-cjs/resources/generated/aiPacks.js +2 -2
- package/dist-cjs/resources/index.js +1 -1
- package/dist-cjs/server.js +2 -0
- package/dist-cjs/tools/catalog.js +15 -1
- package/dist-cjs/tools/import.js +7 -1
- package/dist-cjs/tools/mockData.js +387 -0
- package/dist-cjs/tools/mockEngine.js +243 -0
- package/dist-cjs/tools/mockImport.js +302 -0
- package/dist-cjs/tools/mockSchemas.js +253 -0
- package/dist-cjs/tools/mockShared.js +113 -53
- package/dist-cjs/tools/mocks.js +121 -39
- package/dist-cjs/tools/mocksLocal.js +133 -35
- package/dist-cjs/tools/uiTestAdmin.js +3 -1
- package/package.json +3 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mockSchemas.d.ts","sourceRoot":"","sources":["../../src/tools/mockSchemas.ts"],"names":[],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAwH,CAAC;AAGzJ,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAA6K,CAAC;AAE9M,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAChE,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAMhE,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqBoF,CAAC;AAErH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAIhE,eAAO,MAAM,UAAU,4BAImH,CAAC"}
|
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
import { faultsFromSimple, MOCK_DATA_OPERATIONS, MOCK_FAKER_HINTS, MOCK_FIELD_NAME_PATTERN, MOCK_FIELD_TYPES, MOCK_ID_STRATEGIES, MOCK_RESOURCE_ENDPOINTS, MOCK_RESOURCE_NAME_PATTERN, MOCK_RESOURCE_TEMPLATES, MOCK_SESSION_ID_PATTERN, } from "callman-core/mock-engine";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
import { unknownKeysErrorMap } from "../lib/strict.js";
|
|
4
|
+
// The typed input shapes of the mock tools: the response shapes of a route
|
|
5
|
+
// (static / template / builder presets with their typed configs) and the
|
|
6
|
+
// mock engine v2 parts — resources, user sign-in, faults, data actions. The
|
|
7
|
+
// vocabularies (field types, id strategies, data operations, endpoints, faker
|
|
8
|
+
// hints, resource templates) come from callman-core, so the tools speak
|
|
9
|
+
// exactly the engine's words. Typed, but the backend stays the validator:
|
|
10
|
+
// what the server requires is described, not always enforced here.
|
|
11
|
+
export const strictObject = (shape, where) => z.object(shape, { errorMap: unknownKeysErrorMap("field", Object.keys(shape), where) }).strict();
|
|
12
|
+
export const statusCode = z.coerce.number().int().min(100).max(599);
|
|
13
|
+
export const headersSchema = z.record(z.string().max(8192));
|
|
14
|
+
export const delaySchema = z.discriminatedUnion("mode", [
|
|
15
|
+
strictObject({ mode: z.literal("none") }, "delay"),
|
|
16
|
+
strictObject({ mode: z.literal("fixed"), ms: z.number().int().min(0).max(60_000) }, "delay"),
|
|
17
|
+
strictObject({ mode: z.literal("random"), minMs: z.number().int().min(0).max(60_000), maxMs: z.number().int().min(0).max(60_000) }, "delay"),
|
|
18
|
+
]);
|
|
19
|
+
export const requestValidationSchema = strictObject({ mode: z.enum(["any", "schema"]), schema: z.unknown().optional().describe("JSON Schema (draft-07) the request body must match when mode is schema; a mismatch answers 400") }, "requestValidation");
|
|
20
|
+
export const conditionSchema = strictObject({
|
|
21
|
+
type: z.enum(["all", "any"]),
|
|
22
|
+
rules: z
|
|
23
|
+
.array(strictObject({
|
|
24
|
+
field: z.string().min(1).max(200).describe("headers.<name>, params.<name>, query.<name> or body.<dotted.path> (engine v2 also auth.sub, auth.claims.<name>, session.id)"),
|
|
25
|
+
operator: z.enum(["exists", "not-exists", "equals", "not-equals", "contains", "starts-with", "matches"]),
|
|
26
|
+
value: z.string().max(2000).optional(),
|
|
27
|
+
}, "condition rule"))
|
|
28
|
+
.min(1)
|
|
29
|
+
.max(20),
|
|
30
|
+
}, "condition");
|
|
31
|
+
// ── builder presets (typed configs) ─────────────────────────────────────
|
|
32
|
+
const sourceSchema = z.discriminatedUnion("kind", [
|
|
33
|
+
strictObject({ kind: z.literal("static"), data: z.array(z.unknown()).describe("The items") }, "source"),
|
|
34
|
+
strictObject({ kind: z.literal("state"), stateKey: z.string().min(1).max(120).describe("Top-level key of the mock's state holding the array") }, "source"),
|
|
35
|
+
]);
|
|
36
|
+
const notFoundSchema = strictObject({ statusCode: statusCode.optional().describe("Default 404"), body: z.unknown().optional() }, "notFoundBehavior");
|
|
37
|
+
const stateKey = z.string().min(1).max(120).describe("Required: the state key (an array of objects) this route writes");
|
|
38
|
+
const lookup = {
|
|
39
|
+
paramName: z.string().min(1).max(120).optional().describe('The path parameter holding the id (default "id"; the route path must use :<paramName>)'),
|
|
40
|
+
lookupField: z.string().min(1).max(120).optional().describe('The item field compared with it (default "id")'),
|
|
41
|
+
};
|
|
42
|
+
const reply = { statusCode: statusCode.optional(), headers: headersSchema.optional() };
|
|
43
|
+
const builderConfigSchema = z.discriminatedUnion("preset", [
|
|
44
|
+
strictObject({
|
|
45
|
+
preset: z.literal("list"),
|
|
46
|
+
source: sourceSchema.optional().describe("Required: { kind: \"state\", stateKey } or { kind: \"static\", data: [...] }"),
|
|
47
|
+
filtering: strictObject({
|
|
48
|
+
enabled: z.boolean(),
|
|
49
|
+
rules: z.array(strictObject({ queryParam: z.string().min(1).max(120), field: z.string().min(1).max(120), operator: z.enum(["equals", "contains", "startsWith", "in"]) }, "filtering rule")).max(20).optional(),
|
|
50
|
+
}, "filtering").optional(),
|
|
51
|
+
sorting: strictObject({ enabled: z.boolean(), sortByParam: z.string().min(1).max(120).optional(), orderParam: z.string().min(1).max(120).optional(), allowedFields: z.array(z.string().min(1).max(120)).max(50).optional() }, "sorting").optional(),
|
|
52
|
+
pagination: strictObject({
|
|
53
|
+
enabled: z.boolean(),
|
|
54
|
+
strategy: z.enum(["page", "offset", "cursor"]).optional(),
|
|
55
|
+
defaultPageSize: z.number().int().min(1).max(1000).optional(),
|
|
56
|
+
maxPageSize: z.number().int().min(1).max(1000).optional(),
|
|
57
|
+
envelope: z.enum(["standard", "data-meta", "raw"]).optional(),
|
|
58
|
+
}, "pagination").optional(),
|
|
59
|
+
...reply,
|
|
60
|
+
}, "list config"),
|
|
61
|
+
strictObject({ preset: z.literal("detail"), source: sourceSchema.optional().describe("Required"), notFoundBehavior: notFoundSchema.optional().describe("Required, e.g. { statusCode: 404 }"), ...lookup, ...reply }, "detail config"),
|
|
62
|
+
strictObject({
|
|
63
|
+
preset: z.literal("create"),
|
|
64
|
+
stateKey: stateKey.optional(),
|
|
65
|
+
autoGenerate: strictObject({ id: z.enum(["uuid", "incremental"]).optional(), createdAt: z.boolean().optional(), updatedAt: z.boolean().optional() }, "autoGenerate").optional(),
|
|
66
|
+
requiredFields: z.array(z.string().min(1).max(120)).max(50).optional().describe("Missing in the request body → 400"),
|
|
67
|
+
responseBehavior: z.enum(["return-created", "return-id", "status-only"]).optional(),
|
|
68
|
+
...reply,
|
|
69
|
+
}, "create config"),
|
|
70
|
+
strictObject({
|
|
71
|
+
preset: z.literal("update"),
|
|
72
|
+
stateKey: stateKey.optional(),
|
|
73
|
+
notFoundBehavior: notFoundSchema.optional().describe("Required, e.g. { statusCode: 404 }"),
|
|
74
|
+
...lookup,
|
|
75
|
+
mergeStrategy: z.enum(["partial", "full"]).optional(),
|
|
76
|
+
autoUpdateUpdatedAt: z.boolean().optional(),
|
|
77
|
+
...reply,
|
|
78
|
+
}, "update config"),
|
|
79
|
+
strictObject({
|
|
80
|
+
preset: z.literal("delete"),
|
|
81
|
+
stateKey: stateKey.optional(),
|
|
82
|
+
notFoundBehavior: notFoundSchema.optional().describe("Required, e.g. { statusCode: 404 }"),
|
|
83
|
+
...lookup,
|
|
84
|
+
responseBehavior: z.enum(["204", "return-deleted", "success-message"]).optional(),
|
|
85
|
+
...reply,
|
|
86
|
+
}, "delete config"),
|
|
87
|
+
strictObject({ preset: z.literal("echo"), ...reply }, "echo config"),
|
|
88
|
+
strictObject({ preset: z.literal("custom"), ...reply, body: z.unknown().optional() }, "custom config"),
|
|
89
|
+
]);
|
|
90
|
+
export const BUILDER_PRESETS = ["list", "detail", "create", "update", "delete", "echo", "custom"];
|
|
91
|
+
export const builderResponseSchema = strictObject({
|
|
92
|
+
type: z.literal("builder"),
|
|
93
|
+
preset: z.enum(BUILDER_PRESETS),
|
|
94
|
+
config: builderConfigSchema.describe("The preset's config; config.preset must equal preset. See callman://docs/mocks"),
|
|
95
|
+
}, "builder response");
|
|
96
|
+
// ── user sign-in requirement, faults ────────────────────────────────────
|
|
97
|
+
export const protectedSchema = z
|
|
98
|
+
.union([z.boolean(), strictObject({ roles: z.array(z.string().trim().min(1).max(64)).min(1).max(20) }, "protected")])
|
|
99
|
+
.describe('Engine v2: needs a user signed in through the mock\'s userAuth (Authorization: Bearer <token>; else 401). true = any user, { roles: ["admin"] } = a user with one of these roles (else 403), false = public even when userAuth protects everything');
|
|
100
|
+
export const toAuthRequirement = (value) => (value === true ? "user" : value === false ? "none" : { roles: value.roles });
|
|
101
|
+
export const fromAuthRequirement = (auth) => auth === undefined || auth === null ? undefined : auth === "user" ? true : auth === "none" ? false : { roles: auth.roles };
|
|
102
|
+
const percent = z.number().min(0).max(100);
|
|
103
|
+
// The flat form (core `faultsFromSimple` turns it into fault rules).
|
|
104
|
+
export const simpleFaultsSchema = strictObject({
|
|
105
|
+
errorRate: percent.optional().describe("% of requests answered with errorStatus"),
|
|
106
|
+
errorStatus: statusCode.optional().describe("Status of the injected errors (default 500)"),
|
|
107
|
+
errorBody: z.unknown().optional().describe("Body of the injected errors"),
|
|
108
|
+
delay: delaySchema.optional().describe("Extra delay on every request"),
|
|
109
|
+
timeoutRate: percent.optional().describe("% of requests held unanswered, then 504 — the client times out"),
|
|
110
|
+
dropRate: percent.optional().describe("% of requests whose connection is closed without an answer"),
|
|
111
|
+
failFirst: z.number().int().min(0).max(1000).optional().describe("The first N calls (per test session) fail with errorStatus, then it recovers — for retry logic"),
|
|
112
|
+
}, "faults").describe("Engine v2: fail on purpose — error rate, delay, timeouts, dropped connections, fail the first N calls");
|
|
113
|
+
export const toFaultConfig = (simple) => faultsFromSimple(simple);
|
|
114
|
+
// ── per-outcome responses (data actions, resource endpoints, sign-in) ───
|
|
115
|
+
export const outcomeResponseSchema = strictObject({ statusCode: statusCode.optional(), headers: headersSchema.optional(), body: z.unknown().optional().describe("Template: {{record}}, {{records}}, {{total}}, {{request.*}}, {{auth.sub}} …") }, "outcome response");
|
|
116
|
+
// The outcomes a data operation ends in (core MockOutcome).
|
|
117
|
+
const OUTCOMES = ["success", "created", "notFound", "conflict", "validationError", "unauthorized", "forbidden", "limitExceeded", "payloadTooLarge"];
|
|
118
|
+
export const outcomeResponsesSchema = strictObject(Object.fromEntries(OUTCOMES.map((outcome) => [outcome, outcomeResponseSchema.optional()])), "responses").describe(`Override the answer per outcome (${OUTCOMES.join(", ")}); the rest keep the engine's default answer`);
|
|
119
|
+
// ── data actions (a route that reads or writes a resource) ──────────────
|
|
120
|
+
const resourceName = z.string().trim().regex(MOCK_RESOURCE_NAME_PATTERN, "Resource names start with a lowercase letter and use letters, digits, _ or - (max 40)");
|
|
121
|
+
const fieldName = z.string().trim().regex(MOCK_FIELD_NAME_PATTERN, "Field names use letters, digits and _ and start with a letter or _ (max 64)");
|
|
122
|
+
export const dataActionSchema = strictObject({
|
|
123
|
+
operation: z.enum(MOCK_DATA_OPERATIONS).describe("insert (create from the body), find (a list), findOne, update, delete, count, upsert"),
|
|
124
|
+
resource: resourceName.describe("The resource it works on"),
|
|
125
|
+
match: z
|
|
126
|
+
.array(strictObject({
|
|
127
|
+
field: z.string().trim().min(1).max(200).regex(/^[A-Za-z0-9_.-]+$/, "A field name or dotted path"),
|
|
128
|
+
// core MockActionMatchRule["op"]
|
|
129
|
+
op: z.enum(["eq", "ne", "gt", "gte", "lt", "lte", "in", "contains", "like"]).optional().describe("Default eq"),
|
|
130
|
+
value: z.string().max(2000).describe('A template or a literal: "{{request.params.id}}", "{{request.query.status}}", "{{auth.sub}}", "active"'),
|
|
131
|
+
skipIfEmpty: z.boolean().optional().describe("Ignore this rule when the value is empty (optional filters)"),
|
|
132
|
+
}, "match rule"))
|
|
133
|
+
.max(10)
|
|
134
|
+
.optional()
|
|
135
|
+
.describe("Which records: every rule must hold"),
|
|
136
|
+
write: strictObject({
|
|
137
|
+
source: z.string().max(2000).optional().describe('Template of the written object (default "{{request.body}}")'),
|
|
138
|
+
pick: z.array(fieldName).max(100).optional(),
|
|
139
|
+
omit: z.array(fieldName).max(100).optional(),
|
|
140
|
+
set: z.record(z.unknown()).optional().describe('Fields set last, e.g. { "status": "cancelled", "userId": "{{auth.sub}}" }'),
|
|
141
|
+
}, "write").optional(),
|
|
142
|
+
mode: z.enum(["merge", "replace"]).optional().describe("update: merge (default) or replace"),
|
|
143
|
+
many: z.boolean().optional().describe("update / delete every match, not just the first"),
|
|
144
|
+
find: strictObject({ useRequestQuery: z.boolean().optional().describe("Apply the caller's list query (?status=paid&_sort=-total …) too"), sort: z.string().max(200).optional(), limit: z.number().int().min(1).max(1000).optional() }, "find").optional(),
|
|
145
|
+
responses: outcomeResponsesSchema.optional(),
|
|
146
|
+
}, "data").describe('Engine v2: this route reads or writes a resource instead of answering a fixed body, e.g. { operation: "update", resource: "orders", match: [{ field: "id", value: "{{request.params.id}}" }], write: { set: { status: "cancelled" } } }');
|
|
147
|
+
const ITEM_TYPES = MOCK_FIELD_TYPES.filter((type) => type !== "password" && type !== "array");
|
|
148
|
+
export const RESOURCE_TEMPLATE_IDS = MOCK_RESOURCE_TEMPLATES.map((template) => template.id);
|
|
149
|
+
const fieldSchema = strictObject({
|
|
150
|
+
name: fieldName,
|
|
151
|
+
type: z.enum(MOCK_FIELD_TYPES).describe("password fields are stored salted-hashed and never returned"),
|
|
152
|
+
required: z.boolean().optional(),
|
|
153
|
+
nullable: z.boolean().optional(),
|
|
154
|
+
unique: z.boolean().optional().describe("A second record with the same value → 409"),
|
|
155
|
+
uniqueCaseInsensitive: z.boolean().optional(),
|
|
156
|
+
default: z.unknown().optional().describe('A literal, or a template such as "{{now}}" / "{{auth.sub}}"'),
|
|
157
|
+
enum: z.array(z.union([z.string().max(500), z.number()])).max(100).optional(),
|
|
158
|
+
min: z.number().optional(),
|
|
159
|
+
max: z.number().optional(),
|
|
160
|
+
minLength: z.number().int().min(0).max(1_000_000).optional(),
|
|
161
|
+
maxLength: z.number().int().min(0).max(1_000_000).optional(),
|
|
162
|
+
pattern: z.string().max(512).optional().describe("A regular expression the value must match"),
|
|
163
|
+
items: strictObject({ type: z.enum(ITEM_TYPES) }, "items").optional().describe("type array: the type of its items"),
|
|
164
|
+
readOnly: z.boolean().optional().describe("Client writes are ignored"),
|
|
165
|
+
writeOnly: z.boolean().optional().describe("Never returned"),
|
|
166
|
+
ref: strictObject({
|
|
167
|
+
resource: resourceName.describe("The resource it points to"),
|
|
168
|
+
onDelete: z.enum(["restrict", "cascade", "nullify", "none"]).optional().describe("When the target is deleted: refuse (409), delete these too, set null, or nothing (default)"),
|
|
169
|
+
check: z.boolean().optional().describe("The target must exist on create / update (default true)"),
|
|
170
|
+
as: fieldName.optional().describe("Name of the expanded object for _expand (default: the field name without Id)"),
|
|
171
|
+
nested: z.boolean().optional().describe("Also answer GET/POST /<target>/:<field>/<this resource> (default true)"),
|
|
172
|
+
}, "ref").optional().describe("A relation (orders.userId → users): _expand / _embed and nested routes follow it"),
|
|
173
|
+
fakerHint: z.string().max(300).optional().describe(`How seed data is generated: ${MOCK_FAKER_HINTS.slice(0, 10).join(", ")} … (any $random* token), or a template like "{{$randomFirstName}} {{$randomLastName}}"`),
|
|
174
|
+
}, "resource field");
|
|
175
|
+
const endpointSchema = z.union([
|
|
176
|
+
z.boolean(),
|
|
177
|
+
strictObject({
|
|
178
|
+
enabled: z.boolean().optional(),
|
|
179
|
+
protected: protectedSchema.optional(),
|
|
180
|
+
faults: simpleFaultsSchema.optional(),
|
|
181
|
+
delay: delaySchema.optional(),
|
|
182
|
+
responses: outcomeResponsesSchema.optional(),
|
|
183
|
+
requestValidation: requestValidationSchema.optional(),
|
|
184
|
+
}, "endpoint"),
|
|
185
|
+
]);
|
|
186
|
+
const endpointsSchema = strictObject(Object.fromEntries(MOCK_RESOURCE_ENDPOINTS.map((endpoint) => [endpoint, endpointSchema.optional()])), "endpoints").describe(`Per auto endpoint (${MOCK_RESOURCE_ENDPOINTS.join(", ")}): false switches it off; an object sets protected / faults / delay / responses / requestValidation`);
|
|
187
|
+
const listSchema = strictObject({
|
|
188
|
+
envelope: z.enum(["array", "data-meta", "items", "custom"]).optional().describe('array (default): a plain array; data-meta: { data, meta: { total, page, limit } }; items: { items, total, page, limit }; custom: customBody'),
|
|
189
|
+
customBody: z.unknown().optional().describe("envelope custom: a template with {{records}} {{total}} {{page}} {{limit}} {{totalPages}}"),
|
|
190
|
+
defaultLimit: z.number().int().min(1).max(1000).nullable().optional().describe("Page size when the client sends none (null = everything up to maxLimit)"),
|
|
191
|
+
maxLimit: z.number().int().min(1).max(1000).optional(),
|
|
192
|
+
totalCountHeader: z.boolean().optional().describe("X-Total-Count (default true)"),
|
|
193
|
+
linkHeader: z.boolean().optional().describe("Link: <…>; rel=\"next\" (default true)"),
|
|
194
|
+
filterMode: z.enum(["declared", "any"]).optional().describe("declared: only declared fields filter; any: every query parameter does"),
|
|
195
|
+
searchable: z.boolean().optional().describe("?q= full-text search"),
|
|
196
|
+
defaultSort: z.string().max(200).optional().describe('e.g. "-createdAt,name"'),
|
|
197
|
+
}, "list");
|
|
198
|
+
const seedSchema = strictObject({
|
|
199
|
+
records: z.array(z.record(z.unknown())).max(5000).optional().describe("Records every new copy of the data starts with"),
|
|
200
|
+
generate: z.number().int().min(0).max(1000).optional().describe("Also generate N records from the fields (fakerHint)"),
|
|
201
|
+
salt: z.string().max(64).optional().describe("Change it to get different generated records"),
|
|
202
|
+
}, "seed");
|
|
203
|
+
const resourceShape = {
|
|
204
|
+
template: z.enum(RESOURCE_TEMPLATE_IDS).optional().describe(`Start from a ready resource (${RESOURCE_TEMPLATE_IDS.join(", ")}): its fields, id strategy and generated seed; what you pass overrides it`),
|
|
205
|
+
name: resourceName.optional().describe("Unique per mock; lowercase first letter (users, orders, line-items). Default: the template's"),
|
|
206
|
+
basePath: z.string().min(1).max(256).optional().describe("Where its endpoints live (default /<name>)"),
|
|
207
|
+
idField: fieldName.optional().describe('Default "id"'),
|
|
208
|
+
idStrategy: z.enum(MOCK_ID_STRATEGIES).optional().describe("How new ids are made (default uuid; client = the caller sends it)"),
|
|
209
|
+
lookupField: fieldName.optional().describe("The field /:id endpoints look up by (default idField, e.g. slug)"),
|
|
210
|
+
allowClientId: z.boolean().optional().describe("Accept an id sent by the client on create (default true)"),
|
|
211
|
+
fields: z.array(fieldSchema).max(100).optional().describe("Typed fields with validation; none = schemaless (anything goes, json-server style)"),
|
|
212
|
+
additionalFields: z.enum(["allow", "strip", "reject"]).optional().describe("Fields that are not declared: keep (default), drop, or 400"),
|
|
213
|
+
timestamps: strictObject({ createdAt: fieldName.nullable().optional(), updatedAt: fieldName.nullable().optional() }, "timestamps").optional().describe("Field names (default createdAt / updatedAt); null switches one off"),
|
|
214
|
+
ownerField: fieldName.optional().describe("Each record belongs to the signed-in user through this field: users see and change only their own (needs userAuth)"),
|
|
215
|
+
protected: protectedSchema.optional(),
|
|
216
|
+
endpoints: endpointsSchema.optional(),
|
|
217
|
+
list: listSchema.optional(),
|
|
218
|
+
seed: seedSchema.optional(),
|
|
219
|
+
};
|
|
220
|
+
export const resourceInputSchema = strictObject(resourceShape, "resource").describe("A resource: a small database in the mock with auto CRUD endpoints");
|
|
221
|
+
const { template: _template, ...patchShape } = resourceShape;
|
|
222
|
+
export const resourcePatchSchema = strictObject(patchShape, "resource changes").describe("The keys to change; each replaces the stored value (fields replaces the whole list — read it with get_mock first)");
|
|
223
|
+
// ── user sign-in ────────────────────────────────────────────────────────
|
|
224
|
+
const authEndpointSchema = strictObject({ enabled: z.boolean().optional(), path: z.string().min(1).max(256).optional() }, "sign-in endpoint");
|
|
225
|
+
export const userAuthInputSchema = strictObject({
|
|
226
|
+
enabled: z.boolean().optional().describe("Default true"),
|
|
227
|
+
usersResource: resourceName.optional().describe('The resource holding the users (default "users"); it needs the identity and password fields'),
|
|
228
|
+
identityField: fieldName.optional().describe('Default "email"'),
|
|
229
|
+
passwordField: fieldName.optional().describe('Default "password" (make it a field of type password)'),
|
|
230
|
+
tokenTtlSeconds: z.number().int().min(60).max(7 * 24 * 3600).optional().describe("Lifetime of the issued JWTs (default 3600)"),
|
|
231
|
+
issuer: z.string().trim().max(200).optional(),
|
|
232
|
+
audience: z.string().trim().max(200).optional(),
|
|
233
|
+
roleClaim: fieldName.optional().describe('The user field copied into the role claim that { roles } requirements check (default "role")'),
|
|
234
|
+
claims: z.record(fieldName).optional().describe("Extra claims: claim name → user field"),
|
|
235
|
+
protect: z.enum(["none", "resources", "all"]).optional().describe("What needs a signed-in user by default: nothing, every resource endpoint (default), or every route"),
|
|
236
|
+
endpoints: strictObject({ login: authEndpointSchema.optional(), register: authEndpointSchema.optional(), me: authEndpointSchema.optional() }, "sign-in endpoints")
|
|
237
|
+
.optional()
|
|
238
|
+
.describe("Default POST /auth/login, POST /auth/register, GET /auth/me"),
|
|
239
|
+
responses: strictObject({ loginSuccess: outcomeResponseSchema.optional(), loginFailure: outcomeResponseSchema.optional(), unauthorized: outcomeResponseSchema.optional(), forbidden: outcomeResponseSchema.optional() }, "sign-in responses").optional(),
|
|
240
|
+
}, "userAuth").describe("Engine v2: user sign-in — login / register / me endpoints issue HS256 JWTs for the users of a resource");
|
|
241
|
+
// ── sessions ────────────────────────────────────────────────────────────
|
|
242
|
+
export const sessionArg = z
|
|
243
|
+
.string()
|
|
244
|
+
.regex(MOCK_SESSION_ID_PATTERN, "1–64 letters, digits, . _ : or -")
|
|
245
|
+
.optional()
|
|
246
|
+
.describe("A test session (what callers send as X-Mock-Session): work on that session's own copy of the data instead of the shared one");
|
|
247
|
+
//# sourceMappingURL=mockSchemas.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mockSchemas.js","sourceRoot":"","sources":["../../src/tools/mockSchemas.ts"],"names":[],"mappings":"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"}
|