@effect-app/infra 1.18.2 → 1.19.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 +15 -0
- package/_cjs/api/Middlewares.cjs +59 -0
- package/_cjs/api/Middlewares.cjs.map +1 -0
- package/_cjs/api/internal/middlewares.cjs +196 -0
- package/_cjs/api/internal/middlewares.cjs.map +1 -0
- package/_cjs/{test.arbs.cjs → test/arbs.cjs} +1 -1
- package/_cjs/test/arbs.cjs.map +1 -0
- package/_cjs/test.cjs +6 -6
- package/_cjs/test.cjs.map +1 -1
- package/dist/api/Middlewares.d.ts +81 -0
- package/dist/api/Middlewares.d.ts.map +1 -0
- package/dist/api/Middlewares.js +51 -0
- package/dist/api/internal/middlewares.d.ts +16 -0
- package/dist/api/internal/middlewares.d.ts.map +1 -0
- package/dist/api/internal/middlewares.js +168 -0
- package/dist/{test.arbs.d.ts → test/arbs.d.ts} +1 -1
- package/dist/test/arbs.d.ts.map +1 -0
- package/dist/test/arbs.js +21 -0
- package/dist/test.d.ts +1 -1
- package/dist/test.js +2 -2
- package/package.json +39 -9
- package/src/api/internal/middlewares.ts +286 -0
- package/src/api/middlewares.ts +102 -0
- package/src/test.ts +2 -2
- package/vitest.config.ts.timestamp-1711656440838-19c636fe320df.mjs +0 -0
- package/vitest.config.ts.timestamp-1711724061890-6ecedb0a07fdd.mjs +0 -0
- package/vitest.config.ts.timestamp-1711743489537-da8d9e5f66c9f.mjs +0 -0
- package/vitest.config.ts.timestamp-1711744615239-dcf257a844e01.mjs +37 -0
- package/_cjs/test.arbs.cjs.map +0 -1
- package/dist/test.arbs.d.ts.map +0 -1
- package/dist/test.arbs.js +0 -21
- /package/src/{test.arbs.ts → test/arbs.ts} +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
# @effect-app/infra
|
|
2
2
|
|
|
3
|
+
## 1.19.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- a40d2bf: port middlewares
|
|
8
|
+
|
|
9
|
+
## 1.18.3
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- 38c0e65: cleanup
|
|
14
|
+
- Updated dependencies [38c0e65]
|
|
15
|
+
- effect-app@1.17.1
|
|
16
|
+
- @effect-app/infra-adapters@1.11.3
|
|
17
|
+
|
|
3
18
|
## 1.18.2
|
|
4
19
|
|
|
5
20
|
### Patch Changes
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.uuidLogAnnotation = exports.errorLog = exports.endpointCallsMetric = exports.cors = exports.basicAuth = exports.accessLog = void 0;
|
|
7
|
+
var internal = _interopRequireWildcard(require("./internal/middlewares.cjs"));
|
|
8
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
9
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
10
|
+
/**
|
|
11
|
+
* Add access logs for handled requests. The log runs before each request.
|
|
12
|
+
* Optionally configure log level using the first argument. The default log level
|
|
13
|
+
* is `Debug`.
|
|
14
|
+
*
|
|
15
|
+
* @category logging
|
|
16
|
+
* @since 1.0.0
|
|
17
|
+
*/
|
|
18
|
+
const accessLog = exports.accessLog = internal.accessLog;
|
|
19
|
+
/**
|
|
20
|
+
* Annotate request logs using generated UUID. The default annotation key is `requestId`.
|
|
21
|
+
* The annotation key is configurable using the first argument.
|
|
22
|
+
*
|
|
23
|
+
* Note that in order to apply the annotation also for access logging, you should
|
|
24
|
+
* make sure the `accessLog` middleware is plugged after the `uuidLogAnnotation`.
|
|
25
|
+
*
|
|
26
|
+
* @category logging
|
|
27
|
+
* @since 1.0.0
|
|
28
|
+
*/
|
|
29
|
+
const uuidLogAnnotation = exports.uuidLogAnnotation = internal.uuidLogAnnotation;
|
|
30
|
+
/**
|
|
31
|
+
* Measure how many times each endpoint was called in a
|
|
32
|
+
* `server.endpoint_calls` counter metrics.
|
|
33
|
+
*
|
|
34
|
+
* @category metrics
|
|
35
|
+
* @since 1.0.0
|
|
36
|
+
*/
|
|
37
|
+
const endpointCallsMetric = exports.endpointCallsMetric = internal.endpointCallsMetric;
|
|
38
|
+
/**
|
|
39
|
+
* Logs out a handler failure.
|
|
40
|
+
*
|
|
41
|
+
* @category logging
|
|
42
|
+
* @since 1.0.0
|
|
43
|
+
*/
|
|
44
|
+
const errorLog = exports.errorLog = internal.errorLog;
|
|
45
|
+
/**
|
|
46
|
+
* Basic auth middleware.
|
|
47
|
+
*
|
|
48
|
+
* @category authorization
|
|
49
|
+
* @since 1.0.0
|
|
50
|
+
*/
|
|
51
|
+
const basicAuth = exports.basicAuth = internal.basicAuth;
|
|
52
|
+
/**
|
|
53
|
+
* Basic auth middleware.
|
|
54
|
+
*
|
|
55
|
+
* @category authorization
|
|
56
|
+
* @since 1.0.0
|
|
57
|
+
*/
|
|
58
|
+
const cors = exports.cors = internal.cors;
|
|
59
|
+
//# sourceMappingURL=Middlewares.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Middlewares.cjs","names":["internal","_interopRequireWildcard","require","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","accessLog","exports","uuidLogAnnotation","endpointCallsMetric","errorLog","basicAuth","cors"],"sources":["../../src/api/Middlewares.ts"],"sourcesContent":[null],"mappings":";;;;;;AAQA,IAAAA,QAAA,GAAAC,uBAAA,CAAAC,OAAA;AAAqD,SAAAC,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAH,wBAAAG,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAErD;;;;;;;;AAQO,MAAMW,SAAS,GAAAC,OAAA,CAAAD,SAAA,GAEqCvB,QAAQ,CAACuB,SAAS;AAE7E;;;;;;;;;;AAUO,MAAME,iBAAiB,GAAAD,OAAA,CAAAC,iBAAA,GAE6BzB,QAAQ,CAACyB,iBAAiB;AAErF;;;;;;;AAOO,MAAMC,mBAAmB,GAAAF,OAAA,CAAAE,mBAAA,GAEP1B,QAAQ,CAAC0B,mBAAmB;AAErD;;;;;;AAMO,MAAMC,QAAQ,GAAAH,OAAA,CAAAG,QAAA,GAAwD3B,QAAQ,CAAC2B,QAAQ;AAW9F;;;;;;AAMO,MAAMC,SAAS,GAAAJ,OAAA,CAAAI,SAAA,GAQ6C5B,QAAQ,CAAC4B,SAAS;AAerF;;;;;;AAMO,MAAMC,IAAI,GAAAL,OAAA,CAAAK,IAAA,GAE0C7B,QAAQ,CAAC6B,IAAI","ignoreList":[]}
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.uuidLogAnnotation = exports.toServerResponse = exports.errorLog = exports.endpointCallsMetric = exports.cors = exports.basicAuth = exports.accessLog = void 0;
|
|
7
|
+
var crypto = _interopRequireWildcard(require("crypto"));
|
|
8
|
+
var _utils = require("@effect-app/core/utils");
|
|
9
|
+
var _errors = require("@effect-app/infra/errors");
|
|
10
|
+
var Middleware = _interopRequireWildcard(require("@effect/platform/HttpMiddleware"));
|
|
11
|
+
var HttpServerRequest = _interopRequireWildcard(require("@effect/platform/HttpServerRequest"));
|
|
12
|
+
var ServerResponse = _interopRequireWildcard(require("@effect/platform/HttpServerResponse"));
|
|
13
|
+
var _effectApp = require("effect-app");
|
|
14
|
+
var _http = require("effect-app/http");
|
|
15
|
+
var Either = _interopRequireWildcard(require("effect/Either"));
|
|
16
|
+
var FiberRef = _interopRequireWildcard(require("effect/FiberRef"));
|
|
17
|
+
var _Function = require("effect/Function");
|
|
18
|
+
var HashMap = _interopRequireWildcard(require("effect/HashMap"));
|
|
19
|
+
var Metric = _interopRequireWildcard(require("effect/Metric"));
|
|
20
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
21
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
22
|
+
/**
|
|
23
|
+
* Mechanism for extendning behaviour of all handlers on the server.
|
|
24
|
+
*
|
|
25
|
+
* @since 1.0.0
|
|
26
|
+
*/
|
|
27
|
+
|
|
28
|
+
const accessLog = (level = "Info") => Middleware.make(app => (0, _Function.pipe)(HttpServerRequest.HttpServerRequest, _effectApp.Effect.flatMap(request => _effectApp.Effect[`log${level}`](`${request.method} ${request.url}`)), _effectApp.Effect.flatMap(() => app)));
|
|
29
|
+
exports.accessLog = accessLog;
|
|
30
|
+
const uuidLogAnnotation = (logAnnotationKey = "requestId") => Middleware.make(app => (0, _Function.pipe)(_effectApp.Effect.sync(() => crypto.randomUUID()), _effectApp.Effect.flatMap(uuid => FiberRef.update(FiberRef.currentLogAnnotations, HashMap.set(logAnnotationKey, uuid))), _effectApp.Effect.flatMap(() => app)));
|
|
31
|
+
exports.uuidLogAnnotation = uuidLogAnnotation;
|
|
32
|
+
const endpointCallsMetric = () => {
|
|
33
|
+
const endpointCalledCounter = Metric.counter("server.endpoint_calls");
|
|
34
|
+
return Middleware.make(app => _effectApp.Effect.gen(function* (_) {
|
|
35
|
+
const request = yield* _(HttpServerRequest.HttpServerRequest);
|
|
36
|
+
yield* _(Metric.increment(endpointCalledCounter), _effectApp.Effect.tagMetrics("path", request.url));
|
|
37
|
+
return yield* _(app);
|
|
38
|
+
}));
|
|
39
|
+
};
|
|
40
|
+
exports.endpointCallsMetric = endpointCallsMetric;
|
|
41
|
+
const errorLog = exports.errorLog = Middleware.make(app => _effectApp.Effect.gen(function* (_) {
|
|
42
|
+
const request = yield* _(HttpServerRequest.HttpServerRequest);
|
|
43
|
+
const response = yield* _(app);
|
|
44
|
+
if (response.status >= 400 && response.status < 500) {
|
|
45
|
+
yield* _(_effectApp.Effect.logWarning(`${request.method.toUpperCase()} ${request.url} client error ${response.status}`));
|
|
46
|
+
} else if (response.status >= 500) {
|
|
47
|
+
yield* _(_effectApp.Effect.logError(`${request.method.toUpperCase()} ${request.url} server error ${response.status}`));
|
|
48
|
+
}
|
|
49
|
+
return response;
|
|
50
|
+
}));
|
|
51
|
+
const toServerResponse = err => _http.HttpServerResponse.empty().pipe(_http.HttpServerResponse.setStatus(401), _http.HttpServerResponse.setBody(_http.HttpBody.unsafeJson({
|
|
52
|
+
message: err.message
|
|
53
|
+
})));
|
|
54
|
+
exports.toServerResponse = toServerResponse;
|
|
55
|
+
const basicAuth = (checkCredentials, options) => Middleware.make(app => _effectApp.Effect.gen(function* (_) {
|
|
56
|
+
const headerName = options?.headerName ?? "Authorization";
|
|
57
|
+
const skippedPaths = options?.skipPaths ?? [];
|
|
58
|
+
const request = yield* _(HttpServerRequest.HttpServerRequest);
|
|
59
|
+
if (skippedPaths.includes(request.url)) {
|
|
60
|
+
return yield* _(app);
|
|
61
|
+
}
|
|
62
|
+
const authHeader = request.headers[headerName.toLowerCase()];
|
|
63
|
+
if (authHeader === undefined) {
|
|
64
|
+
return toServerResponse(new _errors.NotLoggedInError(`Expected header ${headerName}`));
|
|
65
|
+
}
|
|
66
|
+
const authorizationParts = authHeader.split(" ");
|
|
67
|
+
if (authorizationParts.length !== 2) {
|
|
68
|
+
return toServerResponse(new _errors.NotLoggedInError("Incorrect auhorization scheme. Expected \"Basic <credentials>\""));
|
|
69
|
+
}
|
|
70
|
+
if (authorizationParts[0] !== "Basic") {
|
|
71
|
+
return toServerResponse(new _errors.NotLoggedInError(`Incorrect auhorization type. Expected "Basic", got "${authorizationParts[0]}"`));
|
|
72
|
+
}
|
|
73
|
+
const credentialsBuffer = Buffer.from(authorizationParts[1], "base64");
|
|
74
|
+
const credentialsText = credentialsBuffer.toString("utf-8");
|
|
75
|
+
const credentialsParts = credentialsText.split(":");
|
|
76
|
+
if (credentialsParts.length !== 2) {
|
|
77
|
+
return toServerResponse(new _errors.NotLoggedInError("Incorrect basic auth credentials format. Expected base64 encoded \"<user>:<pass>\"."));
|
|
78
|
+
}
|
|
79
|
+
const check = yield* _(checkCredentials({
|
|
80
|
+
user: credentialsParts[0],
|
|
81
|
+
password: credentialsParts[1]
|
|
82
|
+
}), _effectApp.Effect.either);
|
|
83
|
+
if (Either.isLeft(check)) {
|
|
84
|
+
return toServerResponse(check.left);
|
|
85
|
+
}
|
|
86
|
+
return yield* _(app);
|
|
87
|
+
}));
|
|
88
|
+
exports.basicAuth = basicAuth;
|
|
89
|
+
const cors = _options => {
|
|
90
|
+
const DEFAULTS = {
|
|
91
|
+
allowedOrigins: ["*"],
|
|
92
|
+
allowedMethods: ["GET", "HEAD", "PUT", "PATCH", "POST", "DELETE"],
|
|
93
|
+
allowedHeaders: [],
|
|
94
|
+
exposedHeaders: [],
|
|
95
|
+
credentials: false
|
|
96
|
+
};
|
|
97
|
+
const options = {
|
|
98
|
+
...DEFAULTS,
|
|
99
|
+
..._options
|
|
100
|
+
};
|
|
101
|
+
const isAllowedOrigin = origin => {
|
|
102
|
+
return options.allowedOrigins.includes(origin);
|
|
103
|
+
};
|
|
104
|
+
const allowOrigin = originHeader => {
|
|
105
|
+
if (options.allowedOrigins.length === 0) {
|
|
106
|
+
return {
|
|
107
|
+
"Access-Control-Allow-Origin": "*"
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
if (options.allowedOrigins.length === 1) {
|
|
111
|
+
return {
|
|
112
|
+
"Access-Control-Allow-Origin": options.allowedOrigins[0],
|
|
113
|
+
Vary: "Origin"
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
if (isAllowedOrigin(originHeader)) {
|
|
117
|
+
return {
|
|
118
|
+
"Access-Control-Allow-Origin": originHeader,
|
|
119
|
+
Vary: "Origin"
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
return undefined;
|
|
123
|
+
};
|
|
124
|
+
const allowMethods = (() => {
|
|
125
|
+
if (options.allowedMethods.length > 0) {
|
|
126
|
+
return {
|
|
127
|
+
"Access-Control-Allow-Methods": options.allowedMethods.join(", ")
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
return undefined;
|
|
131
|
+
})();
|
|
132
|
+
const allowCredentials = (() => {
|
|
133
|
+
if (options.credentials) {
|
|
134
|
+
return {
|
|
135
|
+
"Access-Control-Allow-Credentials": "true"
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
return undefined;
|
|
139
|
+
})();
|
|
140
|
+
const allowHeaders = accessControlRequestHeaders => {
|
|
141
|
+
if (options.allowedHeaders.length === 0 && accessControlRequestHeaders) {
|
|
142
|
+
return {
|
|
143
|
+
Vary: "Access-Control-Request-Headers",
|
|
144
|
+
"Access-Control-Allow-Headers": accessControlRequestHeaders
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
if (options.allowedHeaders) {
|
|
148
|
+
return {
|
|
149
|
+
"Access-Control-Allow-Headers": options.allowedHeaders.join(",")
|
|
150
|
+
};
|
|
151
|
+
}
|
|
152
|
+
return undefined;
|
|
153
|
+
};
|
|
154
|
+
const exposeHeaders = (() => {
|
|
155
|
+
if (options.exposedHeaders.length > 0) {
|
|
156
|
+
return {
|
|
157
|
+
"Access-Control-Expose-Headers": options.exposedHeaders.join(",")
|
|
158
|
+
};
|
|
159
|
+
}
|
|
160
|
+
return undefined;
|
|
161
|
+
})();
|
|
162
|
+
const maxAge = (() => {
|
|
163
|
+
if (options.maxAge) {
|
|
164
|
+
return {
|
|
165
|
+
"Access-Control-Max-Age": options.maxAge.toString()
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
return undefined;
|
|
169
|
+
})();
|
|
170
|
+
return Middleware.make(app => _effectApp.Effect.gen(function* (_) {
|
|
171
|
+
const request = yield* _(HttpServerRequest.HttpServerRequest);
|
|
172
|
+
const origin = request.headers["origin"];
|
|
173
|
+
const accessControlRequestHeaders = request.headers["access-control-request-headers"];
|
|
174
|
+
let corsHeaders = {
|
|
175
|
+
...allowOrigin(origin ?? ""),
|
|
176
|
+
...allowCredentials,
|
|
177
|
+
...exposeHeaders
|
|
178
|
+
};
|
|
179
|
+
if (request.method === "OPTIONS") {
|
|
180
|
+
corsHeaders = {
|
|
181
|
+
...corsHeaders,
|
|
182
|
+
...allowMethods,
|
|
183
|
+
...allowHeaders(accessControlRequestHeaders),
|
|
184
|
+
...maxAge
|
|
185
|
+
};
|
|
186
|
+
return ServerResponse.empty({
|
|
187
|
+
status: 204,
|
|
188
|
+
headers: _http.HttpHeaders.fromInput((0, _utils.dropUndefined)(corsHeaders))
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
const response = yield* _(app);
|
|
192
|
+
return response.pipe(ServerResponse.setHeaders((0, _utils.dropUndefined)(corsHeaders)));
|
|
193
|
+
}));
|
|
194
|
+
};
|
|
195
|
+
exports.cors = cors;
|
|
196
|
+
//# sourceMappingURL=middlewares.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"middlewares.cjs","names":["crypto","_interopRequireWildcard","require","_utils","_errors","Middleware","HttpServerRequest","ServerResponse","_effectApp","_http","Either","FiberRef","_Function","HashMap","Metric","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","accessLog","level","make","app","pipe","Effect","flatMap","request","method","url","exports","uuidLogAnnotation","logAnnotationKey","sync","randomUUID","uuid","update","currentLogAnnotations","endpointCallsMetric","endpointCalledCounter","counter","gen","_","increment","tagMetrics","errorLog","response","status","logWarning","toUpperCase","logError","toServerResponse","err","HttpServerResponse","empty","setStatus","setBody","HttpBody","unsafeJson","message","basicAuth","checkCredentials","options","headerName","skippedPaths","skipPaths","includes","authHeader","headers","toLowerCase","undefined","NotLoggedInError","authorizationParts","split","length","credentialsBuffer","Buffer","from","credentialsText","toString","credentialsParts","check","user","password","either","isLeft","left","cors","_options","DEFAULTS","allowedOrigins","allowedMethods","allowedHeaders","exposedHeaders","credentials","isAllowedOrigin","origin","allowOrigin","originHeader","Vary","allowMethods","join","allowCredentials","allowHeaders","accessControlRequestHeaders","exposeHeaders","maxAge","corsHeaders","HttpHeaders","fromInput","dropUndefined","setHeaders"],"sources":["../../../src/api/internal/middlewares.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"arbs.cjs","names":["_schema","require","_faker","_faker2","_fastCheck","rand","_interopRequireWildcard","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","rnd","Random","congruential32","setFaker","faker","generate","arb","undefined","generateFromArbitrary","FastCheck"],"sources":["../../src/test/arbs.ts"],"sourcesContent":[null],"mappings":";;;;;;;AAEA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AAEA,IAAAG,UAAA,GAAAH,OAAA;AACA,IAAAI,IAAA,GAAAC,uBAAA,CAAAL,OAAA;AAAiC,SAAAM,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAF,wBAAAE,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAPjC;;AASA,MAAMW,GAAG,GAAG,IAAIC,iBAAM,CAACvB,IAAI,CAACwB,cAAc,CAAC,CAAC,CAAC,CAAC;AAE9C,IAAAC,gBAAQ,EAACC,YAAK,CAAC;AAEf;;;AAGM,SAAUC,QAAQA,CAAIC,GAA2B;EACrD,OAAOA,GAAG,CAACD,QAAQ,CAACL,GAAG,EAAEO,SAAS,CAAC;AACrC;AAEA;;;AAGM,SAAUC,qBAAqBA,CAAIF,GAAuB;EAC9D,OAAOD,QAAQ,CAACC,GAAG,CAACG,iBAAS,CAAC,CAAC;AACjC","ignoreList":[]}
|
package/_cjs/test.cjs
CHANGED
|
@@ -11,15 +11,15 @@ exports.createRandomInstanceI = exports.createRandomInstance = void 0;
|
|
|
11
11
|
var _schema = require("@effect/schema");
|
|
12
12
|
var _effectApp = require("effect-app");
|
|
13
13
|
var _utils = require("effect-app/utils");
|
|
14
|
-
var
|
|
15
|
-
Object.keys(
|
|
14
|
+
var _arbs = require("./test/arbs.cjs");
|
|
15
|
+
Object.keys(_arbs).forEach(function (key) {
|
|
16
16
|
if (key === "default" || key === "__esModule") return;
|
|
17
17
|
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
18
|
-
if (key in exports && exports[key] ===
|
|
18
|
+
if (key in exports && exports[key] === _arbs[key]) return;
|
|
19
19
|
Object.defineProperty(exports, key, {
|
|
20
20
|
enumerable: true,
|
|
21
21
|
get: function () {
|
|
22
|
-
return
|
|
22
|
+
return _arbs[key];
|
|
23
23
|
}
|
|
24
24
|
});
|
|
25
25
|
});
|
|
@@ -44,7 +44,7 @@ const defaults = fields => {
|
|
|
44
44
|
* Given the schema for an object-like structure, creates a function that generates random instances of that object with some values provided.
|
|
45
45
|
*/
|
|
46
46
|
const createRandomInstance = s => {
|
|
47
|
-
const gen = (0,
|
|
47
|
+
const gen = (0, _arbs.generate)(_schema.Arbitrary.make(s));
|
|
48
48
|
return overrides => {
|
|
49
49
|
const v = {
|
|
50
50
|
...gen.value,
|
|
@@ -58,7 +58,7 @@ const createRandomInstance = s => {
|
|
|
58
58
|
*/
|
|
59
59
|
exports.createRandomInstance = createRandomInstance;
|
|
60
60
|
const createRandomInstanceI = s => {
|
|
61
|
-
const gen = (0,
|
|
61
|
+
const gen = (0, _arbs.generate)(_schema.Arbitrary.make(s));
|
|
62
62
|
const encode = _effectApp.S.encodeSync(s);
|
|
63
63
|
const decode = _effectApp.S.decodeSync(s);
|
|
64
64
|
return overrides => {
|
package/_cjs/test.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test.cjs","names":["_schema","require","_effectApp","_utils","
|
|
1
|
+
{"version":3,"file":"test.cjs","names":["_schema","require","_effectApp","_utils","_arbs","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","isPropertySignature","u","Predicate","hasProperty","S","PropertySignatureTypeId","defaults","fields","out","field","ast","defaultValue","_tag","to","undefined","createRandomInstance","s","gen","generate","Arbitrary","make","overrides","v","value","copy","createRandomInstanceI","encode","encodeSync","decode","decodeSync"],"sources":["../src/test.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAEA,IAAAC,UAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AACA,IAAAG,KAAA,GAAAH,OAAA;AA+CAI,MAAA,CAAAC,IAAA,CAAAF,KAAA,EAAAG,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAJ,KAAA,CAAAI,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAZ,KAAA,CAAAI,GAAA;IAAA;EAAA;AAAA;AA7CA,MAAMS,mBAAmB,GAAIC,CAAU,IACrCC,oBAAS,CAACC,WAAW,CAACF,CAAC,EAAEG,YAAC,CAACC,uBAAuB,CAAC;AAErD,MAAMC,QAAQ,GAAIC,MAAuB,IAAI;EAC3C,MAAMlB,IAAI,GAAGD,MAAM,CAACC,IAAI,CAACkB,MAAM,CAAC;EAChC;EACA,MAAMC,GAAG,GAAwB,EAAE;EACnC,KAAK,MAAMjB,GAAG,IAAIF,IAAI,EAAE;IACtB,MAAMoB,KAAK,GAAGF,MAAM,CAAChB,GAAG,CAAC;IACzB,IAAIS,mBAAmB,CAACS,KAAK,CAAC,EAAE;MAC9B,MAAMC,GAAG,GAAGD,KAAK,CAACC,GAAG;MACrB,MAAMC,YAAY,GAAGD,GAAG,CAACE,IAAI,KAAK,8BAA8B,GAAGF,GAAG,CAACC,YAAY,GAAGD,GAAG,CAACG,EAAE,CAACF,YAAY;MACzG,IAAIA,YAAY,KAAKG,SAAS,EAAE;QAC9BN,GAAG,CAACjB,GAAG,CAAC,GAAGoB,YAAY,EAAE;MAC3B;IACF;EACF;EACA,OAAOH,GAAG;AACZ,CAAC;AAED;;;AAGO,MAAMO,oBAAoB,GAA4BC,CAAkD,IAAI;EACjH,MAAMC,GAAG,GAAG,IAAAC,cAAQ,EAACC,iBAAS,CAACC,IAAI,CAACJ,CAAC,CAAC,CAAC;EACvC,OAAQK,SAAsB,IAAI;IAChC,MAAMC,CAAC,GAAG;MAAE,GAAGL,GAAG,CAACM,KAAK;MAAE,GAAGjB,QAAQ,CAACU,CAAC,CAACT,MAAM;IAAC,CAAE;IACjD,OAAOc,SAAS,GAAG,IAAAG,WAAI,EAACF,CAAC,EAAED,SAAS,CAAC,GAAGC,CAAC;EAC3C,CAAC;AACH,CAAC;AAED;;;AAAA1B,OAAA,CAAAmB,oBAAA,GAAAA,oBAAA;AAGO,MAAMU,qBAAqB,GAAyBT,CAAsD,IAAI;EACnH,MAAMC,GAAG,GAAG,IAAAC,cAAQ,EAACC,iBAAS,CAACC,IAAI,CAACJ,CAAC,CAAC,CAAC;EACvC,MAAMU,MAAM,GAAGtB,YAAC,CAACuB,UAAU,CAACX,CAAC,CAAC;EAC9B,MAAMY,MAAM,GAAGxB,YAAC,CAACyB,UAAU,CAACb,CAAC,CAAC;EAC9B,OAAQK,SAAsB,IAAI;IAChC,MAAMC,CAAC,GAAG;MAAE,GAAGL,GAAG,CAACM,KAAK;MAAE,GAAGjB,QAAQ,CAACU,CAAC,CAACT,MAAM;IAAC,CAAE;IACjD,IAAI,CAACc,SAAS,EAAE,OAAOC,CAAC;IACxB,OAAOM,MAAM,CAAC;MAAE,GAAGF,MAAM,CAACJ,CAAC,CAAC;MAAE,GAAGD;IAAS,CAAE,CAAC;EAC/C,CAAC;AACH,CAAC;AAAAzB,OAAA,CAAA6B,qBAAA,GAAAA,qBAAA","ignoreList":[]}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Mechanism for extendning behaviour of all handlers on the server.
|
|
3
|
+
*
|
|
4
|
+
* @since 1.0.0
|
|
5
|
+
*/
|
|
6
|
+
import type * as App from "@effect/platform/HttpApp";
|
|
7
|
+
import type { Effect } from "effect-app";
|
|
8
|
+
import type { NotLoggedInError } from "../errors.js";
|
|
9
|
+
/**
|
|
10
|
+
* Add access logs for handled requests. The log runs before each request.
|
|
11
|
+
* Optionally configure log level using the first argument. The default log level
|
|
12
|
+
* is `Debug`.
|
|
13
|
+
*
|
|
14
|
+
* @category logging
|
|
15
|
+
* @since 1.0.0
|
|
16
|
+
*/
|
|
17
|
+
export declare const accessLog: (level?: "Info" | "Warning" | "Debug") => <R, E>(app: App.Default<R, E>) => App.Default<R, E>;
|
|
18
|
+
/**
|
|
19
|
+
* Annotate request logs using generated UUID. The default annotation key is `requestId`.
|
|
20
|
+
* The annotation key is configurable using the first argument.
|
|
21
|
+
*
|
|
22
|
+
* Note that in order to apply the annotation also for access logging, you should
|
|
23
|
+
* make sure the `accessLog` middleware is plugged after the `uuidLogAnnotation`.
|
|
24
|
+
*
|
|
25
|
+
* @category logging
|
|
26
|
+
* @since 1.0.0
|
|
27
|
+
*/
|
|
28
|
+
export declare const uuidLogAnnotation: (logAnnotationKey?: string) => <R, E>(app: App.Default<R, E>) => App.Default<R, E>;
|
|
29
|
+
/**
|
|
30
|
+
* Measure how many times each endpoint was called in a
|
|
31
|
+
* `server.endpoint_calls` counter metrics.
|
|
32
|
+
*
|
|
33
|
+
* @category metrics
|
|
34
|
+
* @since 1.0.0
|
|
35
|
+
*/
|
|
36
|
+
export declare const endpointCallsMetric: () => <R, E>(app: App.Default<R, E>) => App.Default<R, E>;
|
|
37
|
+
/**
|
|
38
|
+
* Logs out a handler failure.
|
|
39
|
+
*
|
|
40
|
+
* @category logging
|
|
41
|
+
* @since 1.0.0
|
|
42
|
+
*/
|
|
43
|
+
export declare const errorLog: <R, E>(app: App.Default<R, E>) => App.Default<R, E>;
|
|
44
|
+
/**
|
|
45
|
+
* @category models
|
|
46
|
+
* @since 1.0.0
|
|
47
|
+
*/
|
|
48
|
+
export interface BasicAuthCredentials {
|
|
49
|
+
user: string;
|
|
50
|
+
password: string;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Basic auth middleware.
|
|
54
|
+
*
|
|
55
|
+
* @category authorization
|
|
56
|
+
* @since 1.0.0
|
|
57
|
+
*/
|
|
58
|
+
export declare const basicAuth: <R2, _>(checkCredentials: (credentials: BasicAuthCredentials) => Effect<_, NotLoggedInError, R2>, options?: Partial<{
|
|
59
|
+
headerName: string;
|
|
60
|
+
skipPaths: readonly string[];
|
|
61
|
+
}>) => <R1, E>(app: App.Default<E, R1>) => App.Default<E, R1 | R2>;
|
|
62
|
+
/**
|
|
63
|
+
* @category models
|
|
64
|
+
* @since 1.0.0
|
|
65
|
+
*/
|
|
66
|
+
export interface CorsOptions {
|
|
67
|
+
allowedOrigins: readonly string[];
|
|
68
|
+
allowedMethods: readonly string[];
|
|
69
|
+
allowedHeaders: readonly string[];
|
|
70
|
+
exposedHeaders: readonly string[];
|
|
71
|
+
maxAge: number;
|
|
72
|
+
credentials: boolean;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Basic auth middleware.
|
|
76
|
+
*
|
|
77
|
+
* @category authorization
|
|
78
|
+
* @since 1.0.0
|
|
79
|
+
*/
|
|
80
|
+
export declare const cors: (options?: Partial<CorsOptions>) => <R, E>(app: App.Default<R, E>) => App.Default<R, E>;
|
|
81
|
+
//# sourceMappingURL=Middlewares.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"middlewares.d.ts","sourceRoot":"","sources":["../../src/api/middlewares.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,KAAK,GAAG,MAAM,0BAA0B,CAAA;AACpD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAGpD;;;;;;;GAOG;AACH,eAAO,MAAM,SAAS,EAAE,CACtB,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,KACjC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAsB,CAAA;AAE7E;;;;;;;;;GASG;AACH,eAAO,MAAM,iBAAiB,EAAE,CAC9B,gBAAgB,CAAC,EAAE,MAAM,KACtB,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAA8B,CAAA;AAErF;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,EAC3C,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,KACnB,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAgC,CAAA;AAErD;;;;;GAKG;AACH,eAAO,MAAM,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAqB,CAAA;AAE9F;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED;;;;;GAKG;AACH,eAAO,MAAM,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC,EAC5B,gBAAgB,EAAE,CAChB,WAAW,EAAE,oBAAoB,KAC9B,MAAM,CAAC,CAAC,EAAE,gBAAgB,EAAE,EAAE,CAAC,EACpC,OAAO,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,SAAS,MAAM,EAAE,CAAA;CAC7B,CAAC,KACC,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,CAAsB,CAAA;AAErF;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,cAAc,EAAE,SAAS,MAAM,EAAE,CAAA;IACjC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAA;IACjC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAA;IACjC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAA;IACjC,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,OAAO,CAAA;CACrB;AAED;;;;;GAKG;AACH,eAAO,MAAM,IAAI,EAAE,CACjB,OAAO,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,KAC3B,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAiB,CAAA"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import * as internal from "./internal/middlewares.js";
|
|
2
|
+
/**
|
|
3
|
+
* Add access logs for handled requests. The log runs before each request.
|
|
4
|
+
* Optionally configure log level using the first argument. The default log level
|
|
5
|
+
* is `Debug`.
|
|
6
|
+
*
|
|
7
|
+
* @category logging
|
|
8
|
+
* @since 1.0.0
|
|
9
|
+
*/
|
|
10
|
+
export const accessLog = internal.accessLog;
|
|
11
|
+
/**
|
|
12
|
+
* Annotate request logs using generated UUID. The default annotation key is `requestId`.
|
|
13
|
+
* The annotation key is configurable using the first argument.
|
|
14
|
+
*
|
|
15
|
+
* Note that in order to apply the annotation also for access logging, you should
|
|
16
|
+
* make sure the `accessLog` middleware is plugged after the `uuidLogAnnotation`.
|
|
17
|
+
*
|
|
18
|
+
* @category logging
|
|
19
|
+
* @since 1.0.0
|
|
20
|
+
*/
|
|
21
|
+
export const uuidLogAnnotation = internal.uuidLogAnnotation;
|
|
22
|
+
/**
|
|
23
|
+
* Measure how many times each endpoint was called in a
|
|
24
|
+
* `server.endpoint_calls` counter metrics.
|
|
25
|
+
*
|
|
26
|
+
* @category metrics
|
|
27
|
+
* @since 1.0.0
|
|
28
|
+
*/
|
|
29
|
+
export const endpointCallsMetric = internal.endpointCallsMetric;
|
|
30
|
+
/**
|
|
31
|
+
* Logs out a handler failure.
|
|
32
|
+
*
|
|
33
|
+
* @category logging
|
|
34
|
+
* @since 1.0.0
|
|
35
|
+
*/
|
|
36
|
+
export const errorLog = internal.errorLog;
|
|
37
|
+
/**
|
|
38
|
+
* Basic auth middleware.
|
|
39
|
+
*
|
|
40
|
+
* @category authorization
|
|
41
|
+
* @since 1.0.0
|
|
42
|
+
*/
|
|
43
|
+
export const basicAuth = internal.basicAuth;
|
|
44
|
+
/**
|
|
45
|
+
* Basic auth middleware.
|
|
46
|
+
*
|
|
47
|
+
* @category authorization
|
|
48
|
+
* @since 1.0.0
|
|
49
|
+
*/
|
|
50
|
+
export const cors = internal.cors;
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWlkZGxld2FyZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXBpL01pZGRsZXdhcmVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVFBLE9BQU8sS0FBSyxRQUFRLE1BQU0sMkJBQTJCLENBQUE7QUFFckQ7Ozs7Ozs7R0FPRztBQUNILE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FFcUMsUUFBUSxDQUFDLFNBQVMsQ0FBQTtBQUU3RTs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FFNkIsUUFBUSxDQUFDLGlCQUFpQixDQUFBO0FBRXJGOzs7Ozs7R0FNRztBQUNILE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUVQLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQTtBQUVyRDs7Ozs7R0FLRztBQUNILE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBd0QsUUFBUSxDQUFDLFFBQVEsQ0FBQTtBQVc5Rjs7Ozs7R0FLRztBQUNILE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FRNkMsUUFBUSxDQUFDLFNBQVMsQ0FBQTtBQWVyRjs7Ozs7R0FLRztBQUNILE1BQU0sQ0FBQyxNQUFNLElBQUksR0FFMEMsUUFBUSxDQUFDLElBQUksQ0FBQSJ9
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { NotLoggedInError } from "@effect-app/infra/errors";
|
|
2
|
+
import * as HttpServerRequest from "@effect/platform/HttpServerRequest";
|
|
3
|
+
import * as ServerResponse from "@effect/platform/HttpServerResponse";
|
|
4
|
+
import { Effect } from "effect-app";
|
|
5
|
+
import type * as Middlewares from "../middlewares.js";
|
|
6
|
+
export declare const accessLog: (level?: "Info" | "Warning" | "Debug") => <E, R>(app: import("@effect/platform/HttpApp").Default<E, R>) => Effect.Effect<ServerResponse.HttpServerResponse, E, HttpServerRequest.HttpServerRequest | R>;
|
|
7
|
+
export declare const uuidLogAnnotation: (logAnnotationKey?: string) => <E, R>(app: import("@effect/platform/HttpApp").Default<E, R>) => Effect.Effect<ServerResponse.HttpServerResponse, E, HttpServerRequest.HttpServerRequest | R>;
|
|
8
|
+
export declare const endpointCallsMetric: () => <E, R>(app: import("@effect/platform/HttpApp").Default<E, R>) => Effect.Effect<ServerResponse.HttpServerResponse, E, HttpServerRequest.HttpServerRequest | R>;
|
|
9
|
+
export declare const errorLog: <E, R>(app: import("@effect/platform/HttpApp").Default<E, R>) => Effect.Effect<ServerResponse.HttpServerResponse, E, HttpServerRequest.HttpServerRequest | R>;
|
|
10
|
+
export declare const toServerResponse: (err: NotLoggedInError) => ServerResponse.HttpServerResponse;
|
|
11
|
+
export declare const basicAuth: <_, R>(checkCredentials: (credentials: Middlewares.BasicAuthCredentials) => Effect<_, NotLoggedInError, R>, options?: Partial<{
|
|
12
|
+
headerName: string;
|
|
13
|
+
skipPaths: readonly string[];
|
|
14
|
+
}>) => <E, R_1>(app: import("@effect/platform/HttpApp").Default<E, R_1>) => Effect.Effect<ServerResponse.HttpServerResponse, E, HttpServerRequest.HttpServerRequest | R | R_1>;
|
|
15
|
+
export declare const cors: (_options?: Partial<Middlewares.CorsOptions>) => <E, R>(app: import("@effect/platform/HttpApp").Default<E, R>) => Effect.Effect<ServerResponse.HttpServerResponse, E, HttpServerRequest.HttpServerRequest | R>;
|
|
16
|
+
//# sourceMappingURL=middlewares.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"middlewares.d.ts","sourceRoot":"","sources":["../../../src/api/internal/middlewares.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAE3D,OAAO,KAAK,iBAAiB,MAAM,oCAAoC,CAAA;AACvE,OAAO,KAAK,cAAc,MAAM,qCAAqC,CAAA;AACrE,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAOnC,OAAO,KAAK,KAAK,WAAW,MAAM,mBAAmB,CAAA;AAErD,eAAO,MAAM,SAAS,WAAW,MAAM,GAAG,SAAS,GAAG,OAAO,kKAO1D,CAAA;AAEH,eAAO,MAAM,iBAAiB,8LAY3B,CAAA;AAEH,eAAO,MAAM,mBAAmB,qKAe/B,CAAA;AAED,eAAO,MAAM,QAAQ,+JAsBpB,CAAA;AAED,eAAO,MAAM,gBAAgB,QAAS,gBAAgB,sCAInD,CAAA;AAEH,eAAO,MAAM,SAAS,GAAI,CAAC,EAAE,CAAC,oBACV,CAChB,WAAW,EAAE,WAAW,CAAC,oBAAoB,KAC1C,MAAM,CAAC,CAAC,EAAE,gBAAgB,EAAE,CAAC,CAAC,YACzB,OAAO,CAAC;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,SAAS,MAAM,EAAE,CAAA;CAC7B,CAAC,4KAkED,CAAA;AAEH,eAAO,MAAM,IAAI,cAAe,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,kKAuH/D,CAAA"}
|