@beignet/core 0.0.1
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 +5 -0
- package/README.md +288 -0
- package/dist/application/index.d.ts +260 -0
- package/dist/application/index.d.ts.map +1 -0
- package/dist/application/index.js +324 -0
- package/dist/application/index.js.map +1 -0
- package/dist/client/client.d.ts +241 -0
- package/dist/client/client.d.ts.map +1 -0
- package/dist/client/client.js +531 -0
- package/dist/client/client.js.map +1 -0
- package/dist/client/index.d.ts +10 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +8 -0
- package/dist/client/index.js.map +1 -0
- package/dist/client/types.d.ts +139 -0
- package/dist/client/types.d.ts.map +1 -0
- package/dist/client/types.js +2 -0
- package/dist/client/types.js.map +1 -0
- package/dist/config/index.d.ts +122 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +216 -0
- package/dist/config/index.js.map +1 -0
- package/dist/contracts/contract-builder.d.ts +121 -0
- package/dist/contracts/contract-builder.d.ts.map +1 -0
- package/dist/contracts/contract-builder.js +346 -0
- package/dist/contracts/contract-builder.js.map +1 -0
- package/dist/contracts/contract-group.d.ts +106 -0
- package/dist/contracts/contract-group.d.ts.map +1 -0
- package/dist/contracts/contract-group.js +240 -0
- package/dist/contracts/contract-group.js.map +1 -0
- package/dist/contracts/contract-like.d.ts +21 -0
- package/dist/contracts/contract-like.d.ts.map +1 -0
- package/dist/contracts/contract-like.js +9 -0
- package/dist/contracts/contract-like.js.map +1 -0
- package/dist/contracts/index.d.ts +15 -0
- package/dist/contracts/index.d.ts.map +1 -0
- package/dist/contracts/index.js +11 -0
- package/dist/contracts/index.js.map +1 -0
- package/dist/contracts/openapi-meta.d.ts +23 -0
- package/dist/contracts/openapi-meta.d.ts.map +1 -0
- package/dist/contracts/openapi-meta.js +2 -0
- package/dist/contracts/openapi-meta.js.map +1 -0
- package/dist/contracts/path-template.d.ts +17 -0
- package/dist/contracts/path-template.d.ts.map +1 -0
- package/dist/contracts/path-template.js +50 -0
- package/dist/contracts/path-template.js.map +1 -0
- package/dist/contracts/rate-limit.d.ts +50 -0
- package/dist/contracts/rate-limit.d.ts.map +1 -0
- package/dist/contracts/rate-limit.js +2 -0
- package/dist/contracts/rate-limit.js.map +1 -0
- package/dist/contracts/types.d.ts +97 -0
- package/dist/contracts/types.d.ts.map +1 -0
- package/dist/contracts/types.js +54 -0
- package/dist/contracts/types.js.map +1 -0
- package/dist/contracts/utils.d.ts +3 -0
- package/dist/contracts/utils.d.ts.map +1 -0
- package/dist/contracts/utils.js +44 -0
- package/dist/contracts/utils.js.map +1 -0
- package/dist/domain/entity.d.ts +87 -0
- package/dist/domain/entity.d.ts.map +1 -0
- package/dist/domain/entity.js +155 -0
- package/dist/domain/entity.js.map +1 -0
- package/dist/domain/events.d.ts +41 -0
- package/dist/domain/events.d.ts.map +1 -0
- package/dist/domain/events.js +21 -0
- package/dist/domain/events.js.map +1 -0
- package/dist/domain/index.d.ts +14 -0
- package/dist/domain/index.d.ts.map +1 -0
- package/dist/domain/index.js +14 -0
- package/dist/domain/index.js.map +1 -0
- package/dist/domain/value-object.d.ts +60 -0
- package/dist/domain/value-object.d.ts.map +1 -0
- package/dist/domain/value-object.js +87 -0
- package/dist/domain/value-object.js.map +1 -0
- package/dist/errors/catalog.d.ts +71 -0
- package/dist/errors/catalog.d.ts.map +1 -0
- package/dist/errors/catalog.js +71 -0
- package/dist/errors/catalog.js.map +1 -0
- package/dist/errors/http.d.ts +77 -0
- package/dist/errors/http.d.ts.map +1 -0
- package/dist/errors/http.js +74 -0
- package/dist/errors/http.js.map +1 -0
- package/dist/errors/index.d.ts +10 -0
- package/dist/errors/index.d.ts.map +1 -0
- package/dist/errors/index.js +14 -0
- package/dist/errors/index.js.map +1 -0
- package/dist/errors/response.d.ts +26 -0
- package/dist/errors/response.d.ts.map +1 -0
- package/dist/errors/response.js +34 -0
- package/dist/errors/response.js.map +1 -0
- package/dist/errors/validation.d.ts +18 -0
- package/dist/errors/validation.d.ts.map +1 -0
- package/dist/errors/validation.js +21 -0
- package/dist/errors/validation.js.map +1 -0
- package/dist/events/index.d.ts +58 -0
- package/dist/events/index.d.ts.map +1 -0
- package/dist/events/index.js +102 -0
- package/dist/events/index.js.map +1 -0
- package/dist/jobs/index.d.ts +56 -0
- package/dist/jobs/index.d.ts.map +1 -0
- package/dist/jobs/index.js +89 -0
- package/dist/jobs/index.js.map +1 -0
- package/dist/mail/index.d.ts +75 -0
- package/dist/mail/index.d.ts.map +1 -0
- package/dist/mail/index.js +84 -0
- package/dist/mail/index.js.map +1 -0
- package/dist/openapi/index.d.ts +207 -0
- package/dist/openapi/index.d.ts.map +1 -0
- package/dist/openapi/index.js +449 -0
- package/dist/openapi/index.js.map +1 -0
- package/dist/openapi/schema-introspector.d.ts +38 -0
- package/dist/openapi/schema-introspector.d.ts.map +1 -0
- package/dist/openapi/schema-introspector.js +67 -0
- package/dist/openapi/schema-introspector.js.map +1 -0
- package/dist/ports/audit.d.ts +58 -0
- package/dist/ports/audit.d.ts.map +1 -0
- package/dist/ports/audit.js +74 -0
- package/dist/ports/audit.js.map +1 -0
- package/dist/ports/auth.d.ts +23 -0
- package/dist/ports/auth.d.ts.map +1 -0
- package/dist/ports/auth.js +31 -0
- package/dist/ports/auth.js.map +1 -0
- package/dist/ports/builder.d.ts +61 -0
- package/dist/ports/builder.d.ts.map +1 -0
- package/dist/ports/builder.js +48 -0
- package/dist/ports/builder.js.map +1 -0
- package/dist/ports/cache.d.ts +15 -0
- package/dist/ports/cache.d.ts.map +1 -0
- package/dist/ports/cache.js +57 -0
- package/dist/ports/cache.js.map +1 -0
- package/dist/ports/clock.d.ts +10 -0
- package/dist/ports/clock.d.ts.map +1 -0
- package/dist/ports/clock.js +21 -0
- package/dist/ports/clock.js.map +1 -0
- package/dist/ports/events.d.ts +71 -0
- package/dist/ports/events.d.ts.map +1 -0
- package/dist/ports/events.js +2 -0
- package/dist/ports/events.js.map +1 -0
- package/dist/ports/id-generator.d.ts +12 -0
- package/dist/ports/id-generator.d.ts.map +1 -0
- package/dist/ports/id-generator.js +22 -0
- package/dist/ports/id-generator.js.map +1 -0
- package/dist/ports/index.d.ts +98 -0
- package/dist/ports/index.d.ts.map +1 -0
- package/dist/ports/index.js +67 -0
- package/dist/ports/index.js.map +1 -0
- package/dist/ports/logger.d.ts +22 -0
- package/dist/ports/logger.d.ts.map +1 -0
- package/dist/ports/logger.js +34 -0
- package/dist/ports/logger.js.map +1 -0
- package/dist/ports/mailer.d.ts +6 -0
- package/dist/ports/mailer.d.ts.map +1 -0
- package/dist/ports/mailer.js +2 -0
- package/dist/ports/mailer.js.map +1 -0
- package/dist/ports/policy.d.ts +53 -0
- package/dist/ports/policy.d.ts.map +1 -0
- package/dist/ports/policy.js +81 -0
- package/dist/ports/policy.js.map +1 -0
- package/dist/ports/rate-limit.d.ts +41 -0
- package/dist/ports/rate-limit.d.ts.map +1 -0
- package/dist/ports/rate-limit.js +37 -0
- package/dist/ports/rate-limit.js.map +1 -0
- package/dist/ports/redaction.d.ts +26 -0
- package/dist/ports/redaction.d.ts.map +1 -0
- package/dist/ports/redaction.js +126 -0
- package/dist/ports/redaction.js.map +1 -0
- package/dist/ports/schedules.d.ts +9 -0
- package/dist/ports/schedules.d.ts.map +1 -0
- package/dist/ports/schedules.js +2 -0
- package/dist/ports/schedules.js.map +1 -0
- package/dist/ports/storage.d.ts +47 -0
- package/dist/ports/storage.d.ts.map +1 -0
- package/dist/ports/storage.js +185 -0
- package/dist/ports/storage.js.map +1 -0
- package/dist/ports/testing.d.ts +73 -0
- package/dist/ports/testing.d.ts.map +1 -0
- package/dist/ports/testing.js +105 -0
- package/dist/ports/testing.js.map +1 -0
- package/dist/ports/unit-of-work.d.ts +56 -0
- package/dist/ports/unit-of-work.d.ts.map +1 -0
- package/dist/ports/unit-of-work.js +64 -0
- package/dist/ports/unit-of-work.js.map +1 -0
- package/dist/providers/index.d.ts +8 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/index.js +8 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/providers/instrumentation.d.ts +91 -0
- package/dist/providers/instrumentation.d.ts.map +1 -0
- package/dist/providers/instrumentation.js +93 -0
- package/dist/providers/instrumentation.js.map +1 -0
- package/dist/providers/provider.d.ts +146 -0
- package/dist/providers/provider.d.ts.map +1 -0
- package/dist/providers/provider.js +31 -0
- package/dist/providers/provider.js.map +1 -0
- package/dist/schedules/index.d.ts +105 -0
- package/dist/schedules/index.d.ts.map +1 -0
- package/dist/schedules/index.js +178 -0
- package/dist/schedules/index.js.map +1 -0
- package/dist/server/contract-like.d.ts +5 -0
- package/dist/server/contract-like.d.ts.map +1 -0
- package/dist/server/contract-like.js +5 -0
- package/dist/server/contract-like.js.map +1 -0
- package/dist/server/health.d.ts +41 -0
- package/dist/server/health.d.ts.map +1 -0
- package/dist/server/health.js +46 -0
- package/dist/server/health.js.map +1 -0
- package/dist/server/hooks/auth.d.ts +42 -0
- package/dist/server/hooks/auth.d.ts.map +1 -0
- package/dist/server/hooks/auth.js +61 -0
- package/dist/server/hooks/auth.js.map +1 -0
- package/dist/server/hooks/cors.d.ts +13 -0
- package/dist/server/hooks/cors.d.ts.map +1 -0
- package/dist/server/hooks/cors.js +70 -0
- package/dist/server/hooks/cors.js.map +1 -0
- package/dist/server/hooks/errors.d.ts +66 -0
- package/dist/server/hooks/errors.d.ts.map +1 -0
- package/dist/server/hooks/errors.js +83 -0
- package/dist/server/hooks/errors.js.map +1 -0
- package/dist/server/hooks/index.d.ts +12 -0
- package/dist/server/hooks/index.d.ts.map +1 -0
- package/dist/server/hooks/index.js +12 -0
- package/dist/server/hooks/index.js.map +1 -0
- package/dist/server/hooks/logging.d.ts +33 -0
- package/dist/server/hooks/logging.d.ts.map +1 -0
- package/dist/server/hooks/logging.js +90 -0
- package/dist/server/hooks/logging.js.map +1 -0
- package/dist/server/hooks/rate-limit.d.ts +29 -0
- package/dist/server/hooks/rate-limit.d.ts.map +1 -0
- package/dist/server/hooks/rate-limit.js +93 -0
- package/dist/server/hooks/rate-limit.js.map +1 -0
- package/dist/server/hooks/utils.d.ts +9 -0
- package/dist/server/hooks/utils.d.ts.map +1 -0
- package/dist/server/hooks/utils.js +16 -0
- package/dist/server/hooks/utils.js.map +1 -0
- package/dist/server/hooks.d.ts +2 -0
- package/dist/server/hooks.d.ts.map +1 -0
- package/dist/server/hooks.js +2 -0
- package/dist/server/hooks.js.map +1 -0
- package/dist/server/http.d.ts +124 -0
- package/dist/server/http.d.ts.map +1 -0
- package/dist/server/http.js +2 -0
- package/dist/server/http.js.map +1 -0
- package/dist/server/index.d.ts +19 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +15 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server/openapi.d.ts +32 -0
- package/dist/server/openapi.d.ts.map +1 -0
- package/dist/server/openapi.js +43 -0
- package/dist/server/openapi.js.map +1 -0
- package/dist/server/providers/index.d.ts +4 -0
- package/dist/server/providers/index.d.ts.map +1 -0
- package/dist/server/providers/index.js +4 -0
- package/dist/server/providers/index.js.map +1 -0
- package/dist/server/providers/loadProviderConfig.d.ts +7 -0
- package/dist/server/providers/loadProviderConfig.d.ts.map +1 -0
- package/dist/server/providers/loadProviderConfig.js +42 -0
- package/dist/server/providers/loadProviderConfig.js.map +1 -0
- package/dist/server/server.d.ts +86 -0
- package/dist/server/server.d.ts.map +1 -0
- package/dist/server/server.js +1031 -0
- package/dist/server/server.js.map +1 -0
- package/dist/server/types.d.ts +3 -0
- package/dist/server/types.d.ts.map +1 -0
- package/dist/server/types.js +3 -0
- package/dist/server/types.js.map +1 -0
- package/package.json +129 -0
- package/src/application/index.ts +747 -0
- package/src/client/client.ts +1105 -0
- package/src/client/index.ts +45 -0
- package/src/client/types.ts +305 -0
- package/src/config/index.ts +497 -0
- package/src/contracts/contract-builder.ts +583 -0
- package/src/contracts/contract-group.ts +502 -0
- package/src/contracts/contract-like.ts +29 -0
- package/src/contracts/index.ts +53 -0
- package/src/contracts/openapi-meta.ts +22 -0
- package/src/contracts/path-template.ts +91 -0
- package/src/contracts/rate-limit.ts +50 -0
- package/src/contracts/types.ts +207 -0
- package/src/contracts/utils.ts +56 -0
- package/src/domain/entity.ts +256 -0
- package/src/domain/events.ts +52 -0
- package/src/domain/index.ts +18 -0
- package/src/domain/value-object.ts +135 -0
- package/src/errors/catalog.ts +149 -0
- package/src/errors/http.ts +80 -0
- package/src/errors/index.ts +28 -0
- package/src/errors/response.ts +54 -0
- package/src/errors/validation.ts +35 -0
- package/src/events/index.ts +246 -0
- package/src/jobs/index.ts +211 -0
- package/src/mail/index.ts +177 -0
- package/src/openapi/index.ts +865 -0
- package/src/openapi/schema-introspector.ts +107 -0
- package/src/ports/audit.ts +176 -0
- package/src/ports/auth.ts +76 -0
- package/src/ports/builder.ts +97 -0
- package/src/ports/cache.ts +94 -0
- package/src/ports/clock.ts +34 -0
- package/src/ports/events.ts +100 -0
- package/src/ports/id-generator.ts +36 -0
- package/src/ports/index.ts +221 -0
- package/src/ports/logger.ts +67 -0
- package/src/ports/policy.ts +242 -0
- package/src/ports/rate-limit.ts +91 -0
- package/src/ports/redaction.ts +199 -0
- package/src/ports/storage.ts +282 -0
- package/src/ports/testing.ts +234 -0
- package/src/ports/unit-of-work.ts +134 -0
- package/src/providers/index.ts +40 -0
- package/src/providers/instrumentation.ts +248 -0
- package/src/providers/provider.ts +191 -0
- package/src/schedules/index.ts +442 -0
- package/src/server/contract-like.ts +8 -0
- package/src/server/health.ts +82 -0
- package/src/server/hooks/auth.ts +147 -0
- package/src/server/hooks/cors.ts +87 -0
- package/src/server/hooks/errors.ts +126 -0
- package/src/server/hooks/index.ts +43 -0
- package/src/server/hooks/logging.ts +121 -0
- package/src/server/hooks/rate-limit.ts +171 -0
- package/src/server/hooks/utils.ts +16 -0
- package/src/server/hooks.ts +1 -0
- package/src/server/http.ts +189 -0
- package/src/server/index.ts +35 -0
- package/src/server/openapi.ts +72 -0
- package/src/server/providers/index.ts +3 -0
- package/src/server/providers/loadProviderConfig.ts +72 -0
- package/src/server/server.ts +1521 -0
- package/src/server/types.ts +2 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contract-builder.d.ts","sourceRoot":"","sources":["../../src/contracts/contract-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,346 @@
|
|
|
1
|
+
import { parsePathTemplate } from "./path-template";
|
|
2
|
+
import { methodSupportsRequestBody, STANDARD_ERROR_RESPONSE_SCHEMA, } from "./types";
|
|
3
|
+
import { generateContractName } from "./utils";
|
|
4
|
+
function responsesFromErrors(errors) {
|
|
5
|
+
const responses = {};
|
|
6
|
+
for (const error of Object.values(errors)) {
|
|
7
|
+
responses[error.status] = STANDARD_ERROR_RESPONSE_SCHEMA;
|
|
8
|
+
}
|
|
9
|
+
return responses;
|
|
10
|
+
}
|
|
11
|
+
function assertNoResponseStatusConflicts(current, next) {
|
|
12
|
+
const currentStatuses = new Set(Object.keys(current));
|
|
13
|
+
const conflicts = Object.keys(next).filter((status) => currentStatuses.has(status));
|
|
14
|
+
if (conflicts.length) {
|
|
15
|
+
throw new Error(`.errors() cannot declare status ${conflicts.join(", ")} because a response schema for that status already exists. Use .responses() without .errors() when you need a custom error response body.`);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
function assertNoCatalogErrorStatusConflicts(metadata, next) {
|
|
19
|
+
const errors = metadata.errors;
|
|
20
|
+
if (typeof errors !== "object" || errors === null)
|
|
21
|
+
return;
|
|
22
|
+
const errorStatuses = new Set(Object.values(errors)
|
|
23
|
+
.map((error) => typeof error === "object" &&
|
|
24
|
+
error !== null &&
|
|
25
|
+
typeof error.status === "number"
|
|
26
|
+
? String(error.status)
|
|
27
|
+
: undefined)
|
|
28
|
+
.filter((status) => status !== undefined));
|
|
29
|
+
const conflicts = Object.keys(next).filter((status) => errorStatuses.has(status));
|
|
30
|
+
if (conflicts.length) {
|
|
31
|
+
throw new Error(`.responses() cannot declare status ${conflicts.join(", ")} because that status is already declared by .errors(). Use .responses() without .errors() when you need a custom error response body.`);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Contract builder for constructing HTTP contracts in a fluent API style
|
|
36
|
+
* Schemas are accessible via the .schema property for introspection
|
|
37
|
+
*/
|
|
38
|
+
export class ContractBuilder {
|
|
39
|
+
kind;
|
|
40
|
+
name;
|
|
41
|
+
namespace;
|
|
42
|
+
localName;
|
|
43
|
+
method;
|
|
44
|
+
_path;
|
|
45
|
+
_pathParams;
|
|
46
|
+
_query;
|
|
47
|
+
_body;
|
|
48
|
+
_headers;
|
|
49
|
+
_responses;
|
|
50
|
+
_meta;
|
|
51
|
+
constructor(config) {
|
|
52
|
+
if (config.body && !methodSupportsRequestBody(config.method)) {
|
|
53
|
+
throw new Error(`Request bodies are not supported for ${config.method} contracts. Use POST, PUT, or PATCH for contract request bodies.`);
|
|
54
|
+
}
|
|
55
|
+
this.kind = config.kind;
|
|
56
|
+
this.name = config.name;
|
|
57
|
+
this.namespace = config.namespace;
|
|
58
|
+
this.localName = config.localName ?? config.name;
|
|
59
|
+
this.method = config.method;
|
|
60
|
+
this._path = config.path;
|
|
61
|
+
this._pathParams = config.pathParams;
|
|
62
|
+
this._query = config.query;
|
|
63
|
+
this._body = config.body;
|
|
64
|
+
this._headers = config.headers ?? null;
|
|
65
|
+
this._responses = config.responses;
|
|
66
|
+
this._meta = config.metadata;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Access schemas for introspection
|
|
70
|
+
*/
|
|
71
|
+
get schema() {
|
|
72
|
+
return {
|
|
73
|
+
pathParams: this._pathParams,
|
|
74
|
+
query: this._query,
|
|
75
|
+
headers: this._headers,
|
|
76
|
+
body: this._body,
|
|
77
|
+
responses: this._responses,
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Get response schemas for introspection
|
|
82
|
+
*/
|
|
83
|
+
get responseSchemas() {
|
|
84
|
+
return this._responses;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Get the URL path template
|
|
88
|
+
*/
|
|
89
|
+
get pathTemplate() {
|
|
90
|
+
return this._path;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Get the URL path (alias for pathTemplate)
|
|
94
|
+
*/
|
|
95
|
+
get path() {
|
|
96
|
+
return this._path;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Get contract metadata
|
|
100
|
+
*/
|
|
101
|
+
get metadata() {
|
|
102
|
+
return this._meta;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Get the contract as an HttpContractConfig object
|
|
106
|
+
* Use this when passing to adapters that expect the plain config type
|
|
107
|
+
*/
|
|
108
|
+
get config() {
|
|
109
|
+
return {
|
|
110
|
+
kind: this.kind,
|
|
111
|
+
name: this.name,
|
|
112
|
+
namespace: this.namespace,
|
|
113
|
+
localName: this.localName,
|
|
114
|
+
method: this.method,
|
|
115
|
+
path: this._path,
|
|
116
|
+
pathParams: this._pathParams,
|
|
117
|
+
query: this._query,
|
|
118
|
+
headers: this._headers,
|
|
119
|
+
body: this._body,
|
|
120
|
+
responses: this._responses,
|
|
121
|
+
metadata: this._meta,
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Set path parameters schema (chainable builder method)
|
|
126
|
+
*/
|
|
127
|
+
pathParams(schema) {
|
|
128
|
+
return new ContractBuilder({
|
|
129
|
+
kind: this.kind,
|
|
130
|
+
name: this.name,
|
|
131
|
+
namespace: this.namespace,
|
|
132
|
+
localName: this.localName,
|
|
133
|
+
method: this.method,
|
|
134
|
+
path: this._path,
|
|
135
|
+
pathParams: schema,
|
|
136
|
+
query: this._query,
|
|
137
|
+
headers: this._headers,
|
|
138
|
+
body: this._body,
|
|
139
|
+
responses: this._responses,
|
|
140
|
+
metadata: this._meta,
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Set query parameters schema (chainable builder method)
|
|
145
|
+
*/
|
|
146
|
+
query(schema) {
|
|
147
|
+
return new ContractBuilder({
|
|
148
|
+
kind: this.kind,
|
|
149
|
+
name: this.name,
|
|
150
|
+
namespace: this.namespace,
|
|
151
|
+
localName: this.localName,
|
|
152
|
+
method: this.method,
|
|
153
|
+
path: this._path,
|
|
154
|
+
pathParams: this._pathParams,
|
|
155
|
+
query: schema,
|
|
156
|
+
headers: this._headers,
|
|
157
|
+
body: this._body,
|
|
158
|
+
responses: this._responses,
|
|
159
|
+
metadata: this._meta,
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Set request body schema (chainable builder method)
|
|
164
|
+
* Only available on POST, PUT, and PATCH contracts.
|
|
165
|
+
*/
|
|
166
|
+
body(schema) {
|
|
167
|
+
const self = this;
|
|
168
|
+
return new ContractBuilder({
|
|
169
|
+
kind: self.kind,
|
|
170
|
+
name: self.name,
|
|
171
|
+
namespace: self.namespace,
|
|
172
|
+
localName: self.localName,
|
|
173
|
+
method: self.method,
|
|
174
|
+
path: self._path,
|
|
175
|
+
pathParams: self._pathParams,
|
|
176
|
+
query: self._query,
|
|
177
|
+
headers: self._headers,
|
|
178
|
+
body: schema,
|
|
179
|
+
responses: self._responses,
|
|
180
|
+
metadata: self._meta,
|
|
181
|
+
});
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Add request header schema (chainable).
|
|
185
|
+
*
|
|
186
|
+
* Multiple schemas are evaluated in declaration order and their parsed
|
|
187
|
+
* outputs are merged. This keeps group-level headers library-agnostic.
|
|
188
|
+
*/
|
|
189
|
+
headers(schema) {
|
|
190
|
+
const existingHeaders = this._headers
|
|
191
|
+
? Array.isArray(this._headers)
|
|
192
|
+
? this._headers
|
|
193
|
+
: [this._headers]
|
|
194
|
+
: [];
|
|
195
|
+
return new ContractBuilder({
|
|
196
|
+
kind: this.kind,
|
|
197
|
+
name: this.name,
|
|
198
|
+
namespace: this.namespace,
|
|
199
|
+
localName: this.localName,
|
|
200
|
+
method: this.method,
|
|
201
|
+
path: this._path,
|
|
202
|
+
pathParams: this._pathParams,
|
|
203
|
+
query: this._query,
|
|
204
|
+
headers: [
|
|
205
|
+
...existingHeaders,
|
|
206
|
+
schema,
|
|
207
|
+
],
|
|
208
|
+
body: this._body,
|
|
209
|
+
responses: this._responses,
|
|
210
|
+
metadata: this._meta,
|
|
211
|
+
});
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Add or replace response schemas by status code (chainable).
|
|
215
|
+
* Use `null` for void/empty responses such as 204 No Content.
|
|
216
|
+
*/
|
|
217
|
+
responses(responseSchemas) {
|
|
218
|
+
assertNoCatalogErrorStatusConflicts(this._meta, responseSchemas);
|
|
219
|
+
return new ContractBuilder({
|
|
220
|
+
kind: this.kind,
|
|
221
|
+
name: this.name,
|
|
222
|
+
namespace: this.namespace,
|
|
223
|
+
localName: this.localName,
|
|
224
|
+
method: this.method,
|
|
225
|
+
path: this._path,
|
|
226
|
+
pathParams: this._pathParams,
|
|
227
|
+
query: this._query,
|
|
228
|
+
headers: this._headers,
|
|
229
|
+
body: this._body,
|
|
230
|
+
responses: {
|
|
231
|
+
...this._responses,
|
|
232
|
+
...responseSchemas,
|
|
233
|
+
},
|
|
234
|
+
metadata: this._meta,
|
|
235
|
+
});
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* Declare route-owned application errors from an error catalog.
|
|
239
|
+
*
|
|
240
|
+
* Catalog errors use Beignet's standard error response envelope. Use
|
|
241
|
+
* `.responses()` when a route needs a custom error response body.
|
|
242
|
+
*/
|
|
243
|
+
errors(errorDefs) {
|
|
244
|
+
const errorResponses = responsesFromErrors(errorDefs);
|
|
245
|
+
assertNoResponseStatusConflicts(this._responses, errorResponses);
|
|
246
|
+
return new ContractBuilder({
|
|
247
|
+
kind: this.kind,
|
|
248
|
+
name: this.name,
|
|
249
|
+
namespace: this.namespace,
|
|
250
|
+
localName: this.localName,
|
|
251
|
+
method: this.method,
|
|
252
|
+
path: this._path,
|
|
253
|
+
pathParams: this._pathParams,
|
|
254
|
+
query: this._query,
|
|
255
|
+
headers: this._headers,
|
|
256
|
+
body: this._body,
|
|
257
|
+
responses: {
|
|
258
|
+
...this._responses,
|
|
259
|
+
...errorResponses,
|
|
260
|
+
},
|
|
261
|
+
metadata: {
|
|
262
|
+
...this._meta,
|
|
263
|
+
errors: errorDefs,
|
|
264
|
+
},
|
|
265
|
+
});
|
|
266
|
+
}
|
|
267
|
+
/**
|
|
268
|
+
* Set or merge contract metadata (chainable builder method)
|
|
269
|
+
*/
|
|
270
|
+
meta(newMeta) {
|
|
271
|
+
return new ContractBuilder({
|
|
272
|
+
kind: this.kind,
|
|
273
|
+
name: this.name,
|
|
274
|
+
namespace: this.namespace,
|
|
275
|
+
localName: this.localName,
|
|
276
|
+
method: this.method,
|
|
277
|
+
path: this._path,
|
|
278
|
+
pathParams: this._pathParams,
|
|
279
|
+
query: this._query,
|
|
280
|
+
headers: this._headers,
|
|
281
|
+
body: this._body,
|
|
282
|
+
responses: this._responses,
|
|
283
|
+
metadata: {
|
|
284
|
+
...this._meta,
|
|
285
|
+
...newMeta,
|
|
286
|
+
},
|
|
287
|
+
});
|
|
288
|
+
}
|
|
289
|
+
/**
|
|
290
|
+
* Set or merge OpenAPI metadata for this operation (chainable)
|
|
291
|
+
*/
|
|
292
|
+
openapi(patch) {
|
|
293
|
+
const existingOpenApi = this._meta.openapi ?? {};
|
|
294
|
+
return new ContractBuilder({
|
|
295
|
+
kind: this.kind,
|
|
296
|
+
name: this.name,
|
|
297
|
+
namespace: this.namespace,
|
|
298
|
+
localName: this.localName,
|
|
299
|
+
method: this.method,
|
|
300
|
+
path: this._path,
|
|
301
|
+
pathParams: this._pathParams,
|
|
302
|
+
query: this._query,
|
|
303
|
+
headers: this._headers,
|
|
304
|
+
body: this._body,
|
|
305
|
+
responses: this._responses,
|
|
306
|
+
metadata: {
|
|
307
|
+
...this._meta,
|
|
308
|
+
openapi: {
|
|
309
|
+
...existingOpenApi,
|
|
310
|
+
...patch,
|
|
311
|
+
},
|
|
312
|
+
},
|
|
313
|
+
});
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
/**
|
|
317
|
+
* Create a new HTTP contract with the builder pattern.
|
|
318
|
+
*
|
|
319
|
+
* @example
|
|
320
|
+
* ```ts
|
|
321
|
+
* const getTodo = createContract({
|
|
322
|
+
* method: "GET",
|
|
323
|
+
* path: "/api/todos/:id",
|
|
324
|
+
* })
|
|
325
|
+
* .pathParams(z.object({ id: z.string() }))
|
|
326
|
+
* .responses({ 200: TodoSchema });
|
|
327
|
+
* ```
|
|
328
|
+
*/
|
|
329
|
+
export function createContract(options) {
|
|
330
|
+
parsePathTemplate(options.path);
|
|
331
|
+
const name = options.name || generateContractName(options.method, options.path);
|
|
332
|
+
return new ContractBuilder({
|
|
333
|
+
kind: "http",
|
|
334
|
+
name,
|
|
335
|
+
localName: name,
|
|
336
|
+
method: options.method,
|
|
337
|
+
path: options.path,
|
|
338
|
+
pathParams: null,
|
|
339
|
+
query: null,
|
|
340
|
+
headers: null,
|
|
341
|
+
body: null,
|
|
342
|
+
responses: {},
|
|
343
|
+
metadata: {},
|
|
344
|
+
});
|
|
345
|
+
}
|
|
346
|
+
//# sourceMappingURL=contract-builder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contract-builder.js","sourceRoot":"","sources":["../../src/contracts/contract-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { ContractBuilder } from "./contract-builder";
|
|
2
|
+
import type { ContractErrorResponses, ContractHeaderSchemas, ContractMeta, ContractResponses, ResponsesFromErrorDefinitions, StandardSchema } from "./types";
|
|
3
|
+
type TrimLeadingSlash<T extends string> = T extends `/${infer Rest}` ? TrimLeadingSlash<Rest> : T;
|
|
4
|
+
type TrimTrailingSlash<T extends string> = T extends "/" ? "" : T extends `${infer Rest}/` ? TrimTrailingSlash<Rest> : T;
|
|
5
|
+
type NormalizedPrefix<T extends string> = T extends "" | "/" ? "" : TrimTrailingSlash<T>;
|
|
6
|
+
type NormalizedChildPath<T extends string> = TrimTrailingSlash<TrimLeadingSlash<T>>;
|
|
7
|
+
type JoinPaths<TPrefix extends string, TPath extends string> = string extends TPrefix | TPath ? string : NormalizedPrefix<TPrefix> extends "" ? TPath : NormalizedChildPath<TPath> extends "" ? NormalizedPrefix<TPrefix> : `${NormalizedPrefix<TPrefix>}/${NormalizedChildPath<TPath>}`;
|
|
8
|
+
/**
|
|
9
|
+
* ContractGroup is a feature-scoped factory for creating related contracts
|
|
10
|
+
* with shared configuration. Immutable — each method returns a new instance.
|
|
11
|
+
*/
|
|
12
|
+
export declare class ContractGroup<TSharedResponses extends ContractResponses = Record<never, never>, TSharedMeta extends ContractMeta = ContractMeta, TSharedHeaders extends ContractHeaderSchemas = null, TPathPrefix extends string = ""> {
|
|
13
|
+
private readonly _namespace;
|
|
14
|
+
private readonly _meta;
|
|
15
|
+
private readonly _responses;
|
|
16
|
+
private readonly _headers;
|
|
17
|
+
private readonly _pathPrefix;
|
|
18
|
+
constructor(state?: {
|
|
19
|
+
namespace?: string;
|
|
20
|
+
meta?: TSharedMeta;
|
|
21
|
+
responses?: TSharedResponses;
|
|
22
|
+
headers?: TSharedHeaders;
|
|
23
|
+
pathPrefix?: TPathPrefix;
|
|
24
|
+
});
|
|
25
|
+
/**
|
|
26
|
+
* Set the namespace for all contracts created from this group
|
|
27
|
+
*/
|
|
28
|
+
namespace(ns: string): ContractGroup<TSharedResponses, TSharedMeta, TSharedHeaders, TPathPrefix>;
|
|
29
|
+
/**
|
|
30
|
+
* Add a path prefix to all contracts created from this group.
|
|
31
|
+
*
|
|
32
|
+
* Prefixes compose immutably, so `prefix("/api").prefix("/v1")`
|
|
33
|
+
* produces paths under `/api/v1`.
|
|
34
|
+
*/
|
|
35
|
+
prefix<const TNewPrefix extends string>(pathPrefix: TNewPrefix): ContractGroup<TSharedResponses, TSharedMeta, TSharedHeaders, JoinPaths<TPathPrefix, TNewPrefix>>;
|
|
36
|
+
/**
|
|
37
|
+
* Set shared metadata for all contracts created from this group
|
|
38
|
+
*/
|
|
39
|
+
meta<TNewMeta extends ContractMeta>(meta: TNewMeta): ContractGroup<TSharedResponses, Omit<TSharedMeta, keyof TNewMeta> & TNewMeta, TSharedHeaders, TPathPrefix>;
|
|
40
|
+
/**
|
|
41
|
+
* Set shared response schemas for all contracts created from this group.
|
|
42
|
+
* Typically used for shared error responses (e.g. 401, 403, 500).
|
|
43
|
+
*/
|
|
44
|
+
responses<TNewResponses extends ContractResponses>(responseSchemas: TNewResponses): ContractGroup<Omit<TSharedResponses, keyof TNewResponses> & TNewResponses, TSharedMeta, TSharedHeaders, TPathPrefix>;
|
|
45
|
+
/**
|
|
46
|
+
* Set shared route-owned application errors for all contracts in the group.
|
|
47
|
+
*/
|
|
48
|
+
errors<TErrorDefs extends ContractErrorResponses>(errorDefs: TErrorDefs): ContractGroup<Omit<TSharedResponses, keyof ResponsesFromErrorDefinitions<TErrorDefs>> & ResponsesFromErrorDefinitions<TErrorDefs>, Omit<TSharedMeta, "errors"> & {
|
|
49
|
+
errors: TErrorDefs;
|
|
50
|
+
}, TSharedHeaders, TPathPrefix>;
|
|
51
|
+
/**
|
|
52
|
+
* Add shared request header schema for all contracts created from this group.
|
|
53
|
+
*/
|
|
54
|
+
headers<TNewHeaders extends StandardSchema>(schema: TNewHeaders): ContractGroup<TSharedResponses, TSharedMeta, TSharedHeaders extends readonly StandardSchema[] ? readonly [...TSharedHeaders, TNewHeaders] : TSharedHeaders extends StandardSchema ? readonly [TSharedHeaders, TNewHeaders] : readonly [TNewHeaders], TPathPrefix>;
|
|
55
|
+
/**
|
|
56
|
+
* Create a GET contract
|
|
57
|
+
*/
|
|
58
|
+
get<const TPath extends string>(path: TPath, name?: string): ContractBuilder<"GET", null, null, null, TSharedHeaders, TSharedResponses, TSharedMeta, JoinPaths<TPathPrefix, TPath>>;
|
|
59
|
+
/**
|
|
60
|
+
* Create a POST contract
|
|
61
|
+
*/
|
|
62
|
+
post<const TPath extends string>(path: TPath, name?: string): ContractBuilder<"POST", null, null, null, TSharedHeaders, TSharedResponses, TSharedMeta, JoinPaths<TPathPrefix, TPath>>;
|
|
63
|
+
/**
|
|
64
|
+
* Create a PUT contract
|
|
65
|
+
*/
|
|
66
|
+
put<const TPath extends string>(path: TPath, name?: string): ContractBuilder<"PUT", null, null, null, TSharedHeaders, TSharedResponses, TSharedMeta, JoinPaths<TPathPrefix, TPath>>;
|
|
67
|
+
/**
|
|
68
|
+
* Create a PATCH contract
|
|
69
|
+
*/
|
|
70
|
+
patch<const TPath extends string>(path: TPath, name?: string): ContractBuilder<"PATCH", null, null, null, TSharedHeaders, TSharedResponses, TSharedMeta, JoinPaths<TPathPrefix, TPath>>;
|
|
71
|
+
/**
|
|
72
|
+
* Create a DELETE contract
|
|
73
|
+
*/
|
|
74
|
+
delete<const TPath extends string>(path: TPath, name?: string): ContractBuilder<"DELETE", null, null, null, TSharedHeaders, TSharedResponses, TSharedMeta, JoinPaths<TPathPrefix, TPath>>;
|
|
75
|
+
/**
|
|
76
|
+
* Create a HEAD contract
|
|
77
|
+
*/
|
|
78
|
+
head<const TPath extends string>(path: TPath, name?: string): ContractBuilder<"HEAD", null, null, null, TSharedHeaders, TSharedResponses, TSharedMeta, JoinPaths<TPathPrefix, TPath>>;
|
|
79
|
+
/**
|
|
80
|
+
* Create a OPTIONS contract
|
|
81
|
+
*/
|
|
82
|
+
options<const TPath extends string>(path: TPath, name?: string): ContractBuilder<"OPTIONS", null, null, null, TSharedHeaders, TSharedResponses, TSharedMeta, JoinPaths<TPathPrefix, TPath>>;
|
|
83
|
+
/**
|
|
84
|
+
* Internal helper to create a contract builder with shared config
|
|
85
|
+
*/
|
|
86
|
+
private createBuilder;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Create a new ContractGroup for grouping related contracts with shared configuration.
|
|
90
|
+
*
|
|
91
|
+
* @example
|
|
92
|
+
* ```ts
|
|
93
|
+
* const todos = createContractGroup()
|
|
94
|
+
* .namespace("todos")
|
|
95
|
+
* .prefix("/api/todos")
|
|
96
|
+
* .meta({ auth: "required" })
|
|
97
|
+
* .responses({
|
|
98
|
+
* 401: z.object({ message: z.literal("Unauthorized") }),
|
|
99
|
+
* });
|
|
100
|
+
*
|
|
101
|
+
* const getTodo = todos.get("/:id")...
|
|
102
|
+
* ```
|
|
103
|
+
*/
|
|
104
|
+
export declare function createContractGroup(): ContractGroup<Record<never, never>, ContractMeta, null, "">;
|
|
105
|
+
export {};
|
|
106
|
+
//# sourceMappingURL=contract-group.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contract-group.d.ts","sourceRoot":"","sources":["../../src/contracts/contract-group.ts"],"names":[],"mappings":"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"}
|