@etohq/framework 1.4.0 → 1.5.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/dist/config/config.d.ts.map +1 -1
- package/dist/config/config.js +11 -4
- package/dist/config/config.js.map +1 -1
- package/dist/config/loader.d.ts +2 -5
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/loader.js +14 -13
- package/dist/config/loader.js.map +1 -1
- package/dist/context/index.d.ts +1 -1
- package/dist/context/index.d.ts.map +1 -1
- package/dist/context/index.js.map +1 -1
- package/dist/database/pg-connection-loader.d.ts +1 -1
- package/dist/database/pg-connection-loader.d.ts.map +1 -1
- package/dist/database/pg-connection-loader.js +25 -3
- package/dist/database/pg-connection-loader.js.map +1 -1
- package/dist/eto-app-loader.d.ts +6 -7
- package/dist/eto-app-loader.d.ts.map +1 -1
- package/dist/eto-app-loader.js +54 -4
- package/dist/eto-app-loader.js.map +1 -1
- package/dist/eto.d.ts +7 -7
- package/dist/eto.d.ts.map +1 -1
- package/dist/eto.js +4 -13
- package/dist/eto.js.map +1 -1
- package/dist/http/middlewares/apply-default-filters.d.ts.map +1 -1
- package/dist/http/middlewares/apply-default-filters.js.map +1 -1
- package/dist/http/middlewares/apply-params-as-filters.d.ts.map +1 -1
- package/dist/http/middlewares/apply-params-as-filters.js.map +1 -1
- package/dist/http/middlewares/authenticate-middleware.d.ts +3 -1
- package/dist/http/middlewares/authenticate-middleware.d.ts.map +1 -1
- package/dist/http/middlewares/authenticate-middleware.js +19 -10
- package/dist/http/middlewares/authenticate-middleware.js.map +1 -1
- package/dist/http/middlewares/bodyparser.d.ts +2 -0
- package/dist/http/middlewares/bodyparser.d.ts.map +1 -0
- package/dist/http/middlewares/bodyparser.js +99 -0
- package/dist/http/middlewares/bodyparser.js.map +1 -0
- package/dist/http/middlewares/ensure-publishable-api-key.d.ts.map +1 -1
- package/dist/http/middlewares/ensure-publishable-api-key.js +2 -2
- package/dist/http/middlewares/ensure-publishable-api-key.js.map +1 -1
- package/dist/http/middlewares/error-handler.d.ts.map +1 -1
- package/dist/http/middlewares/error-handler.js +1 -0
- package/dist/http/middlewares/error-handler.js.map +1 -1
- package/dist/http/types.d.ts +41 -10
- package/dist/http/types.d.ts.map +1 -1
- package/dist/http/utils/get-query-config.d.ts +5 -6
- package/dist/http/utils/get-query-config.d.ts.map +1 -1
- package/dist/http/utils/get-query-config.js +7 -5
- package/dist/http/utils/get-query-config.js.map +1 -1
- package/dist/http/utils/maybe-apply-link-filter.d.ts.map +1 -1
- package/dist/http/utils/maybe-apply-link-filter.js +12 -14
- package/dist/http/utils/maybe-apply-link-filter.js.map +1 -1
- package/dist/http/utils/refetch-entities.d.ts +1 -1
- package/dist/http/utils/refetch-entities.d.ts.map +1 -1
- package/dist/http/utils/refetch-entities.js +2 -2
- package/dist/http/utils/refetch-entities.js.map +1 -1
- package/dist/http/utils/validate-query.d.ts.map +1 -1
- package/dist/http/utils/validate-query.js +2 -1
- package/dist/http/utils/validate-query.js.map +1 -1
- package/dist/http/utils/wrap-handler.d.ts +2 -0
- package/dist/http/utils/wrap-handler.d.ts.map +1 -0
- package/dist/http/utils/wrap-handler.js +40 -0
- package/dist/http/utils/wrap-handler.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/jobs/job-loader.d.ts +13 -16
- package/dist/jobs/job-loader.d.ts.map +1 -1
- package/dist/jobs/job-loader.js +18 -88
- package/dist/jobs/job-loader.js.map +1 -1
- package/dist/links/link-loader.js +1 -1
- package/dist/links/link-loader.js.map +1 -1
- package/dist/loader.d.ts +8 -12
- package/dist/loader.d.ts.map +1 -1
- package/dist/loader.js +40 -35
- package/dist/loader.js.map +1 -1
- package/dist/logger/index.d.ts +28 -1
- package/dist/logger/index.d.ts.map +1 -1
- package/dist/logger/index.js +249 -3
- package/dist/logger/index.js.map +1 -1
- package/dist/migrations/index.d.ts +3 -0
- package/dist/migrations/index.d.ts.map +1 -0
- package/dist/migrations/index.js +19 -0
- package/dist/migrations/index.js.map +1 -0
- package/dist/migrations/migrator.d.ts +38 -0
- package/dist/migrations/migrator.d.ts.map +1 -0
- package/dist/migrations/migrator.js +130 -0
- package/dist/migrations/migrator.js.map +1 -0
- package/dist/migrations/run-migration-scripts.d.ts +17 -0
- package/dist/migrations/run-migration-scripts.d.ts.map +1 -0
- package/dist/migrations/run-migration-scripts.js +95 -0
- package/dist/migrations/run-migration-scripts.js.map +1 -0
- package/dist/mikro-orm-cli/bin.js +3 -3
- package/dist/mikro-orm-cli/bin.js.map +1 -1
- package/dist/subscribers/subscriber-loader.d.ts +5 -18
- package/dist/subscribers/subscriber-loader.d.ts.map +1 -1
- package/dist/subscribers/subscriber-loader.js +19 -95
- package/dist/subscribers/subscriber-loader.js.map +1 -1
- package/dist/types/container.d.ts +3 -2
- package/dist/types/container.d.ts.map +1 -1
- package/dist/utils/resource-loader.d.ts +26 -0
- package/dist/utils/resource-loader.d.ts.map +1 -0
- package/dist/utils/resource-loader.js +78 -0
- package/dist/utils/resource-loader.js.map +1 -0
- package/dist/workflows/workflow-loader.d.ts +4 -2
- package/dist/workflows/workflow-loader.d.ts.map +1 -1
- package/dist/workflows/workflow-loader.js +8 -58
- package/dist/workflows/workflow-loader.js.map +1 -1
- package/package.json +25 -20
- package/dist/telemetry/index.d.ts +0 -50
- package/dist/telemetry/index.d.ts.map +0 -1
- package/dist/telemetry/index.js +0 -81
- package/dist/telemetry/index.js.map +0 -1
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.authenticate = void 0;
|
|
3
|
+
exports.getAuthContextFromJwtToken = exports.authenticate = void 0;
|
|
4
4
|
const utils_1 = require("@etohq/utils");
|
|
5
5
|
const jsonwebtoken_1 = require("jsonwebtoken");
|
|
6
6
|
const context_1 = require("../../context");
|
|
7
|
+
const error_1 = require("../../error");
|
|
7
8
|
const SESSION_AUTH = "session";
|
|
8
9
|
const BEARER_AUTH = "bearer";
|
|
9
10
|
const API_KEY_AUTH = "api-key";
|
|
@@ -13,6 +14,9 @@ const authenticate = (actorType, authType, options = {}) => {
|
|
|
13
14
|
const authenticateMiddleware = async (req, next) => {
|
|
14
15
|
const authTypes = Array.isArray(authType) ? authType : [authType];
|
|
15
16
|
const actorTypes = Array.isArray(actorType) ? actorType : [actorType];
|
|
17
|
+
if (!req.requestMeta) {
|
|
18
|
+
throw new Error("Request meta is required for authentication middleware");
|
|
19
|
+
}
|
|
16
20
|
const reqCtx = (0, context_1.reqContext)(req.requestMeta);
|
|
17
21
|
// We only allow authenticating using a secret API key on the admin
|
|
18
22
|
const isExclusivelyUser = actorTypes.length === 1 && actorTypes[0] === ADMIN_ACTOR_TYPE;
|
|
@@ -31,15 +35,15 @@ const authenticate = (actorType, authType, options = {}) => {
|
|
|
31
35
|
// We try to extract the auth context either from the session or from a JWT token
|
|
32
36
|
let authCtxFromSession = getAuthContextFromSession(req.data.session, authTypes, actorTypes);
|
|
33
37
|
if (!authCtxFromSession) {
|
|
34
|
-
const { projectConfig: { http }, } =
|
|
35
|
-
authCtxFromSession = getAuthContextFromJwtToken(reqCtx.req.headers
|
|
38
|
+
const { projectConfig: { http }, } = reqCtx.scope.resolve(utils_1.ContainerRegistrationKeys.CONFIG_MODULE);
|
|
39
|
+
authCtxFromSession = (0, exports.getAuthContextFromJwtToken)(reqCtx.req.headers["authorization"], http.jwtSecret, authTypes, actorTypes);
|
|
36
40
|
}
|
|
37
41
|
// If the entity is authenticated, and it is a registered actor we can continue
|
|
38
42
|
if (authCtxFromSession?.actor_id) {
|
|
39
|
-
|
|
43
|
+
req.data.authContext = authCtxFromSession;
|
|
40
44
|
return next(req);
|
|
41
45
|
}
|
|
42
|
-
const authCtx = (0, context_1.authContext)(req);
|
|
46
|
+
const authCtx = (0, context_1.authContext)(req.requestMeta);
|
|
43
47
|
// If the entity is authenticated, but there is no registered actor yet, we can continue (eg. in the case of a user invite) if allow unregistered is set
|
|
44
48
|
// We also don't want to allow creating eg. a customer with a token created for a `user` provider.
|
|
45
49
|
if (req.data?.auth_identity_id &&
|
|
@@ -52,14 +56,13 @@ const authenticate = (actorType, authType, options = {}) => {
|
|
|
52
56
|
if (options.allowUnauthenticated) {
|
|
53
57
|
return next(req);
|
|
54
58
|
}
|
|
55
|
-
|
|
56
|
-
// res.status(401).json({ message: "Unauthorized" })
|
|
59
|
+
throw error_1.APIError.unauthenticated("Unauthorized");
|
|
57
60
|
};
|
|
58
61
|
return authenticateMiddleware;
|
|
59
62
|
};
|
|
60
63
|
exports.authenticate = authenticate;
|
|
61
64
|
const getApiKeyInfo = async (req) => {
|
|
62
|
-
const authHeader = req.req.headers
|
|
65
|
+
const authHeader = req.req.headers["authorization"];
|
|
63
66
|
if (!authHeader) {
|
|
64
67
|
return null;
|
|
65
68
|
}
|
|
@@ -103,7 +106,7 @@ const getAuthContextFromSession = (session = {}, authTypes, actorTypes) => {
|
|
|
103
106
|
}
|
|
104
107
|
return null;
|
|
105
108
|
};
|
|
106
|
-
const getAuthContextFromJwtToken = (authHeader, jwtSecret, authTypes, actorTypes) => {
|
|
109
|
+
const getAuthContextFromJwtToken = (authHeader, jwtSecret, authTypes, actorTypes, jwtPublicKey, jwtOptions) => {
|
|
107
110
|
if (!authTypes.includes(BEARER_AUTH)) {
|
|
108
111
|
return null;
|
|
109
112
|
}
|
|
@@ -120,7 +123,12 @@ const getAuthContextFromJwtToken = (authHeader, jwtSecret, authTypes, actorTypes
|
|
|
120
123
|
// get config jwt secret
|
|
121
124
|
// verify token and set authUser
|
|
122
125
|
try {
|
|
123
|
-
const
|
|
126
|
+
const options = { ...jwtOptions };
|
|
127
|
+
if (!options.algorithms && options.algorithm) {
|
|
128
|
+
options.algorithms = [options.algorithm];
|
|
129
|
+
delete options.algorithm;
|
|
130
|
+
}
|
|
131
|
+
const verified = (0, jsonwebtoken_1.verify)(token, jwtPublicKey ?? jwtSecret, options);
|
|
124
132
|
if (isActorTypePermitted(actorTypes, verified.actor_type)) {
|
|
125
133
|
return verified;
|
|
126
134
|
}
|
|
@@ -132,6 +140,7 @@ const getAuthContextFromJwtToken = (authHeader, jwtSecret, authTypes, actorTypes
|
|
|
132
140
|
}
|
|
133
141
|
return null;
|
|
134
142
|
};
|
|
143
|
+
exports.getAuthContextFromJwtToken = getAuthContextFromJwtToken;
|
|
135
144
|
const isActorTypePermitted = (actorTypes, currentActorType) => {
|
|
136
145
|
return actorTypes.includes("*") || actorTypes.includes(currentActorType);
|
|
137
146
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authenticate-middleware.js","sourceRoot":"","sources":["../../../src/http/middlewares/authenticate-middleware.ts"],"names":[],"mappings":";;;AACA,wCAAiE;
|
|
1
|
+
{"version":3,"file":"authenticate-middleware.js","sourceRoot":"","sources":["../../../src/http/middlewares/authenticate-middleware.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bodyparser.d.ts","sourceRoot":"","sources":["../../../src/http/middlewares/bodyparser.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
// import { memoize } from "lodash"
|
|
4
|
+
// import logger from "@etohq/cli/dist/reporter"
|
|
5
|
+
// import { json, NextFunction, RequestHandler, text, urlencoded } from "express"
|
|
6
|
+
//
|
|
7
|
+
// import type {
|
|
8
|
+
// EtoRequest,
|
|
9
|
+
// EtoResponse,
|
|
10
|
+
// MiddlewareVerb,
|
|
11
|
+
// ParserConfigArgs,
|
|
12
|
+
// MiddlewareFunction,
|
|
13
|
+
// BodyParserConfigRoute,
|
|
14
|
+
// } from "../types"
|
|
15
|
+
// import type { RoutesFinder } from "../routes-finder"
|
|
16
|
+
//
|
|
17
|
+
// /**
|
|
18
|
+
// * Parsers to use for parsing the HTTP request body
|
|
19
|
+
// */
|
|
20
|
+
// const parsers = {
|
|
21
|
+
// json: memoize(function jsonParserMiddleware(options?: ParserConfigArgs) {
|
|
22
|
+
// return json({
|
|
23
|
+
// limit: options?.sizeLimit,
|
|
24
|
+
// verify: options?.preserveRawBody
|
|
25
|
+
// ? (req: EtoRequest, res: EtoResponse, buf: Buffer) => {
|
|
26
|
+
// req.rawBody = buf
|
|
27
|
+
// }
|
|
28
|
+
// : undefined,
|
|
29
|
+
// })
|
|
30
|
+
// }),
|
|
31
|
+
// text: memoize(function textParser(options?: ParserConfigArgs) {
|
|
32
|
+
// return text({
|
|
33
|
+
// limit: options?.sizeLimit,
|
|
34
|
+
// })
|
|
35
|
+
// }),
|
|
36
|
+
// urlencoded: memoize(function urlencodedParserMiddleware(
|
|
37
|
+
// options?: ParserConfigArgs
|
|
38
|
+
// ) {
|
|
39
|
+
// return urlencoded({
|
|
40
|
+
// limit: options?.sizeLimit,
|
|
41
|
+
// extended: true,
|
|
42
|
+
// })
|
|
43
|
+
// }),
|
|
44
|
+
// }
|
|
45
|
+
//
|
|
46
|
+
// /**
|
|
47
|
+
// * Creates the bodyparser middlewares stack that creates custom bodyparsers
|
|
48
|
+
// * during an HTTP request based upon the defined config. The bodyparser
|
|
49
|
+
// * instances are cached for re-use.
|
|
50
|
+
// */
|
|
51
|
+
// export function createBodyParserMiddlewaresStack(
|
|
52
|
+
// route: string,
|
|
53
|
+
// routesFinder: RoutesFinder<BodyParserConfigRoute>,
|
|
54
|
+
// tracer?: (
|
|
55
|
+
// handler: RequestHandler | MiddlewareFunction,
|
|
56
|
+
// route: { route: string; method?: string }
|
|
57
|
+
// ) => RequestHandler | MiddlewareFunction
|
|
58
|
+
// ) {
|
|
59
|
+
// return (["json", "text", "urlencoded"] as (keyof typeof parsers)[]).map(
|
|
60
|
+
// (parser) => {
|
|
61
|
+
// function bodyParser(
|
|
62
|
+
// req: EtoRequest,
|
|
63
|
+
// res: EtoResponse,
|
|
64
|
+
// next: NextFunction
|
|
65
|
+
// ) {
|
|
66
|
+
// const matchingRoute = routesFinder.find(
|
|
67
|
+
// req.path,
|
|
68
|
+
// req.method as MiddlewareVerb
|
|
69
|
+
// )
|
|
70
|
+
// const parserMiddleware = parsers[parser]
|
|
71
|
+
//
|
|
72
|
+
// if (!matchingRoute) {
|
|
73
|
+
// return parserMiddleware()(req, res, next)
|
|
74
|
+
// }
|
|
75
|
+
//
|
|
76
|
+
// if (matchingRoute.config === false) {
|
|
77
|
+
// logger.debug(
|
|
78
|
+
// `skipping ${parser} bodyparser middleware ${req.method} ${req.path}`
|
|
79
|
+
// )
|
|
80
|
+
// return next()
|
|
81
|
+
// }
|
|
82
|
+
//
|
|
83
|
+
// logger.debug(
|
|
84
|
+
// `using custom ${parser} bodyparser config ${req.method} ${req.path}`
|
|
85
|
+
// )
|
|
86
|
+
// return parserMiddleware(matchingRoute.config)(req, res, next)
|
|
87
|
+
// }
|
|
88
|
+
//
|
|
89
|
+
// Object.defineProperty(bodyParser, "name", {
|
|
90
|
+
// value: `${parser}BodyParser`,
|
|
91
|
+
// })
|
|
92
|
+
//
|
|
93
|
+
// return (
|
|
94
|
+
// tracer ? tracer(bodyParser, { route }) : bodyParser
|
|
95
|
+
// ) as RequestHandler
|
|
96
|
+
// }
|
|
97
|
+
// )
|
|
98
|
+
// }
|
|
99
|
+
//# sourceMappingURL=bodyparser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bodyparser.js","sourceRoot":"","sources":["../../../src/http/middlewares/bodyparser.ts"],"names":[],"mappings":";;AAAA,mCAAmC;AACnC,gDAAgD;AAChD,iFAAiF;AACjF,EAAE;AACF,gBAAgB;AAChB,gBAAgB;AAChB,iBAAiB;AACjB,oBAAoB;AACpB,sBAAsB;AACtB,wBAAwB;AACxB,2BAA2B;AAC3B,oBAAoB;AACpB,uDAAuD;AACvD,EAAE;AACF,MAAM;AACN,sDAAsD;AACtD,MAAM;AACN,oBAAoB;AACpB,8EAA8E;AAC9E,oBAAoB;AACpB,mCAAmC;AACnC,yCAAyC;AACzC,kEAAkE;AAClE,gCAAgC;AAChC,cAAc;AACd,uBAAuB;AACvB,SAAS;AACT,QAAQ;AACR,oEAAoE;AACpE,oBAAoB;AACpB,mCAAmC;AACnC,SAAS;AACT,QAAQ;AACR,6DAA6D;AAC7D,iCAAiC;AACjC,QAAQ;AACR,0BAA0B;AAC1B,mCAAmC;AACnC,wBAAwB;AACxB,SAAS;AACT,QAAQ;AACR,IAAI;AACJ,EAAE;AACF,MAAM;AACN,8EAA8E;AAC9E,0EAA0E;AAC1E,sCAAsC;AACtC,MAAM;AACN,oDAAoD;AACpD,mBAAmB;AACnB,uDAAuD;AACvD,eAAe;AACf,oDAAoD;AACpD,gDAAgD;AAChD,6CAA6C;AAC7C,MAAM;AACN,6EAA6E;AAC7E,oBAAoB;AACpB,6BAA6B;AAC7B,2BAA2B;AAC3B,4BAA4B;AAC5B,6BAA6B;AAC7B,YAAY;AACZ,mDAAmD;AACnD,sBAAsB;AACtB,yCAAyC;AACzC,YAAY;AACZ,mDAAmD;AACnD,EAAE;AACF,gCAAgC;AAChC,sDAAsD;AACtD,YAAY;AACZ,EAAE;AACF,gDAAgD;AAChD,0BAA0B;AAC1B,mFAAmF;AACnF,cAAc;AACd,0BAA0B;AAC1B,YAAY;AACZ,EAAE;AACF,wBAAwB;AACxB,iFAAiF;AACjF,YAAY;AACZ,wEAAwE;AACxE,UAAU;AACV,EAAE;AACF,oDAAoD;AACpD,wCAAwC;AACxC,WAAW;AACX,EAAE;AACF,iBAAiB;AACjB,8DAA8D;AAC9D,4BAA4B;AAC5B,QAAQ;AACR,MAAM;AACN,IAAI"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ensure-publishable-api-key.d.ts","sourceRoot":"","sources":["../../../src/http/middlewares/ensure-publishable-api-key.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACrB,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"ensure-publishable-api-key.d.ts","sourceRoot":"","sources":["../../../src/http/middlewares/ensure-publishable-api-key.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACrB,MAAM,YAAY,CAAA;AAKnB,wBAAsB,iCAAiC,CACrD,GAAG,EAAE,oBAAoB,EACzB,IAAI,EAAE,iBAAiB,mDA0DxB"}
|
|
@@ -5,7 +5,7 @@ const utils_1 = require("@etohq/utils");
|
|
|
5
5
|
const context_1 = require("../../context");
|
|
6
6
|
async function ensurePublishableApiKeyMiddleware(req, next) {
|
|
7
7
|
const storeReqCtx = (0, context_1.storeReqContext)(req.requestMeta);
|
|
8
|
-
const publishableApiKey = storeReqCtx.req.headers
|
|
8
|
+
const publishableApiKey = storeReqCtx.req.headers[utils_1.PUBLISHABLE_KEY_HEADER];
|
|
9
9
|
if (!(0, utils_1.isPresent)(publishableApiKey)) {
|
|
10
10
|
try {
|
|
11
11
|
throw new utils_1.EtoError(utils_1.EtoError.Types.NOT_ALLOWED, `Publishable API key required in the request header: ${utils_1.PUBLISHABLE_KEY_HEADER}. You can manage your keys in settings in the dashboard.`);
|
|
@@ -28,7 +28,7 @@ async function ensurePublishableApiKeyMiddleware(req, next) {
|
|
|
28
28
|
{ revoked_at: { $gt: new Date() } },
|
|
29
29
|
],
|
|
30
30
|
},
|
|
31
|
-
}
|
|
31
|
+
});
|
|
32
32
|
apiKey = data[0];
|
|
33
33
|
}
|
|
34
34
|
catch (e) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ensure-publishable-api-key.js","sourceRoot":"","sources":["../../../src/http/middlewares/ensure-publishable-api-key.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"ensure-publishable-api-key.js","sourceRoot":"","sources":["../../../src/http/middlewares/ensure-publishable-api-key.ts"],"names":[],"mappings":";;AAeA,8EA4DC;AA3ED,wCAMqB;AAMrB,2CAA+C;AAGxC,KAAK,UAAU,iCAAiC,CACrD,GAAyB,EACzB,IAAuB;IAEvB,MAAM,WAAW,GAAG,IAAA,yBAAe,EAAC,GAAG,CAAC,WAA0B,CAAC,CAAA;IACnE,MAAM,iBAAiB,GAAG,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,8BAAsB,CAAC,CAAA;IAGzE,IAAI,CAAC,IAAA,iBAAS,EAAC,iBAAiB,CAAC,EAAE,CAAC;QAClC,IAAI,CAAC;YACH,MAAM,IAAI,gBAAQ,CAChB,gBAAQ,CAAC,KAAK,CAAC,WAAW,EAC1B,uDAAuD,8BAAsB,0DAA0D,CACxI,CAAA;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,IAAI,CAAC,CAAC,CAAC,CAAA;QAChB,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAA;IACV,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,iCAAyB,CAAC,KAAK,CAAC,CAAA;IAExE,IAAI,CAAC;QACH,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC;YACjC,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,sCAAsC,CAAC;YAC/D,OAAO,EAAE;gBACP,KAAK,EAAE,iBAAiB;gBACxB,IAAI,EAAE,kBAAU,CAAC,WAAW;gBAC5B,GAAG,EAAE;oBACH,EAAE,UAAU,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;oBAC7B,EAAE,UAAU,EAAE,EAAE,GAAG,EAAE,IAAI,IAAI,EAAE,EAAE,EAAE;iBACpC;aACF;SACF,CAAC,CAAA;QAEF,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;IAClB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,IAAI,CAAC,CAAC,CAAC,CAAA;IAChB,CAAC;IAED,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,IAAI,CAAC;YACH,MAAM,IAAI,gBAAQ,CAChB,gBAAQ,CAAC,KAAK,CAAC,WAAW,EAC1B,iEAAiE,CAClE,CAAA;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,IAAI,CAAC,CAAC,CAAC,CAAA;QAChB,CAAC;IACH,CAAC;IAED,GAAG,CAAC,IAAI,CAAC,qBAAqB,GAAG;QAC/B,GAAG,EAAE,MAAM,CAAC,KAAK;QACjB,iBAAiB,EAAE,MAAM,CAAC,mBAAmB,CAAC,GAAG,CAC/C,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAChC;KACF,CAAA;IAED,OAAO,IAAI,CAAC,GAAG,CAAC,CAAA;AAClB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error-handler.d.ts","sourceRoot":"","sources":["../../../src/http/middlewares/error-handler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,EAA6B,QAAQ,EAAE,MAAM,cAAc,CAAA;AAElE,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AAYlE,wBAAgB,YAAY,KAExB,KAAK,QAAQ,EACb,KAAK,oBAAoB,EACzB,KAAK,WAAW,EAChB,MAAM,iBAAiB,
|
|
1
|
+
{"version":3,"file":"error-handler.d.ts","sourceRoot":"","sources":["../../../src/http/middlewares/error-handler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,EAA6B,QAAQ,EAAE,MAAM,cAAc,CAAA;AAElE,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AAYlE,wBAAgB,YAAY,KAExB,KAAK,QAAQ,EACb,KAAK,oBAAoB,EACzB,KAAK,WAAW,EAChB,MAAM,iBAAiB,qDAmE1B;AAED;;;;;;;;;;;;;;;;;GAiBG"}
|
|
@@ -12,6 +12,7 @@ const INVALID_REQUEST_ERROR = error_1.ErrCode.InvalidArgument;
|
|
|
12
12
|
const INVALID_STATE_ERROR = error_1.ErrCode.FailedPrecondition;
|
|
13
13
|
function errorHandler() {
|
|
14
14
|
return async (err, req, res, next) => {
|
|
15
|
+
// i think data is to set not get.
|
|
15
16
|
const logger = req.data.resolve(utils_1.ContainerRegistrationKeys.LOGGER);
|
|
16
17
|
err = (0, exception_formatter_1.formatException)(err);
|
|
17
18
|
logger.error(err);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error-handler.js","sourceRoot":"","sources":["../../../src/http/middlewares/error-handler.ts"],"names":[],"mappings":";;AAgBA,
|
|
1
|
+
{"version":3,"file":"error-handler.js","sourceRoot":"","sources":["../../../src/http/middlewares/error-handler.ts"],"names":[],"mappings":"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"}
|
package/dist/http/types.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { ZodNullable, ZodObject, ZodOptional } from "zod";
|
|
2
|
-
import { RouteVerb, FindConfig, Middleware, MiddlewareFn, MiddlewareOptions, MiddlewareRequest, HandlerResponse, Next, MiddlewareVerb, EtoContainer, EtoResponse, EtoRequest } from "@etohq/types";
|
|
3
|
-
import type { APICallMeta } from "encore.dev";
|
|
2
|
+
import { RouteVerb, FindConfig, Middleware, MiddlewareFn, MiddlewareOptions, MiddlewareRequest, HandlerResponse, Next, MiddlewareVerb, EtoContainer, EtoResponse, EtoRequest, APICallMeta } from "@etohq/types";
|
|
4
3
|
import { RestrictedFields } from "./utils/restricted-fields";
|
|
5
4
|
type SyncRouteHandler = (req: EtoRequest, res: EtoResponse) => void;
|
|
6
5
|
export type AsyncRouteHandler = (req: EtoRequest, res: EtoResponse) => Promise<void>;
|
|
@@ -25,21 +24,52 @@ export type ParserConfigArgs = {
|
|
|
25
24
|
};
|
|
26
25
|
export type ParserConfig = false | ParserConfigArgs;
|
|
27
26
|
export type MiddlewareRoute = {
|
|
28
|
-
|
|
27
|
+
methods?: MiddlewareVerb[];
|
|
29
28
|
matcher: string | RegExp;
|
|
30
29
|
bodyParser?: ParserConfig;
|
|
30
|
+
additionalDataValidator?: any;
|
|
31
31
|
middlewares?: MiddlewareFunction[];
|
|
32
32
|
};
|
|
33
33
|
export type MiddlewaresConfig = {
|
|
34
34
|
errorHandler?: false | EtoErrorHandlerFunction;
|
|
35
35
|
routes?: MiddlewareRoute[];
|
|
36
36
|
};
|
|
37
|
+
/**
|
|
38
|
+
* Route descriptor refers represents a route either scanned
|
|
39
|
+
* from the filesystem or registered manually. It does not
|
|
40
|
+
* represent a middleware
|
|
41
|
+
*/
|
|
37
42
|
export type RouteDescriptor = {
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
+
matcher: string;
|
|
44
|
+
method: RouteVerb;
|
|
45
|
+
handler: RouteHandler;
|
|
46
|
+
optedOutOfAuth: boolean;
|
|
47
|
+
isRoute: true;
|
|
48
|
+
routeType?: "admin" | "store" | "auth";
|
|
49
|
+
absolutePath?: string;
|
|
50
|
+
relativePath?: string;
|
|
51
|
+
shouldAppendAdminCors: boolean;
|
|
52
|
+
shouldAppendStoreCors: boolean;
|
|
53
|
+
shouldAppendAuthCors: boolean;
|
|
54
|
+
};
|
|
55
|
+
/**
|
|
56
|
+
* Represents a middleware
|
|
57
|
+
*/
|
|
58
|
+
export type MiddlewareDescriptor = {
|
|
59
|
+
matcher: string;
|
|
60
|
+
methods?: MiddlewareVerb | MiddlewareVerb[];
|
|
61
|
+
handler: MiddlewareFunction;
|
|
62
|
+
};
|
|
63
|
+
export type BodyParserConfigRoute = {
|
|
64
|
+
matcher: string;
|
|
65
|
+
methods: MiddlewareVerb | MiddlewareVerb[];
|
|
66
|
+
config: ParserConfig;
|
|
67
|
+
};
|
|
68
|
+
export type AdditionalDataValidatorRoute = {
|
|
69
|
+
matcher: string;
|
|
70
|
+
methods: MiddlewareVerb | MiddlewareVerb[];
|
|
71
|
+
schema: any;
|
|
72
|
+
validator: ZodOptional<ZodNullable<ZodObject<any, any>>>;
|
|
43
73
|
};
|
|
44
74
|
export type GlobalMiddlewareDescriptor = {
|
|
45
75
|
config?: MiddlewaresConfig;
|
|
@@ -84,6 +114,7 @@ export interface EtoRequestContext {
|
|
|
84
114
|
skip: number;
|
|
85
115
|
take?: number;
|
|
86
116
|
};
|
|
117
|
+
withDeleted?: boolean;
|
|
87
118
|
};
|
|
88
119
|
/**
|
|
89
120
|
* An object containing the fields that are filterable e.g `{ id: Any<String> }`
|
|
@@ -114,12 +145,12 @@ export interface EtoRequestContext {
|
|
|
114
145
|
*/
|
|
115
146
|
additionalDataValidator?: ZodOptional<ZodNullable<ZodObject<any, any>>>;
|
|
116
147
|
}
|
|
117
|
-
export
|
|
148
|
+
export interface AuthContext {
|
|
118
149
|
actor_id: string;
|
|
119
150
|
actor_type: string;
|
|
120
151
|
auth_identity_id: string;
|
|
121
152
|
app_metadata: Record<string, unknown>;
|
|
122
|
-
}
|
|
153
|
+
}
|
|
123
154
|
export interface PublishableKeyContext {
|
|
124
155
|
key: string;
|
|
125
156
|
sales_channel_ids: string[];
|
package/dist/http/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/http/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,KAAK,CAAA;AAEzD,OAAO,EACL,SAAS,EACT,UAAU,EACV,UAAU,EACV,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,IAAI,EACJ,cAAc,EACd,YAAY,EACZ,WAAW,EACX,UAAU,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/http/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,23 +8,21 @@ export declare function prepareListQuery<T extends RequestQueryFields, TEntity>(
|
|
|
8
8
|
relations: string[];
|
|
9
9
|
skip: number;
|
|
10
10
|
take: number;
|
|
11
|
-
order:
|
|
12
|
-
|
|
13
|
-
} | undefined;
|
|
11
|
+
order: import("@etohq/utils").Order | undefined;
|
|
12
|
+
withDeleted: boolean | undefined;
|
|
14
13
|
};
|
|
15
14
|
remoteQueryConfig: {
|
|
16
15
|
fields: string[];
|
|
17
16
|
pagination: {
|
|
18
17
|
skip: number;
|
|
19
18
|
take: number;
|
|
20
|
-
order:
|
|
21
|
-
[k: symbol]: "DESC" | "ASC";
|
|
22
|
-
} | undefined;
|
|
19
|
+
order: import("@etohq/utils").Order | undefined;
|
|
23
20
|
} | {
|
|
24
21
|
skip?: undefined;
|
|
25
22
|
take?: undefined;
|
|
26
23
|
order?: undefined;
|
|
27
24
|
};
|
|
25
|
+
withDeleted: boolean | undefined;
|
|
28
26
|
};
|
|
29
27
|
};
|
|
30
28
|
export declare function prepareRetrieveQuery<T extends RequestQueryFields, TEntity>(validated: T, queryConfig?: QueryConfig<TEntity> & {
|
|
@@ -37,6 +35,7 @@ export declare function prepareRetrieveQuery<T extends RequestQueryFields, TEnti
|
|
|
37
35
|
remoteQueryConfig: {
|
|
38
36
|
fields: string[];
|
|
39
37
|
pagination: {};
|
|
38
|
+
withDeleted: boolean | undefined;
|
|
40
39
|
};
|
|
41
40
|
};
|
|
42
41
|
//# sourceMappingURL=get-query-config.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-query-config.d.ts","sourceRoot":"","sources":["../../../src/http/utils/get-query-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"get-query-config.d.ts","sourceRoot":"","sources":["../../../src/http/utils/get-query-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AAU1E,wBAAgB,YAAY,CAAC,MAAM,EACjC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,EACtB,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,GACzB,OAAO,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,EAAE,CAWrC;AAoED,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,kBAAkB,EAAE,OAAO,EACpE,SAAS,EAAE,CAAC,EACZ,WAAW,GAAE,WAAW,CAAC,OAAO,CAAC,GAAG;IAAE,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;CAAO;;;;;;;;;;;;;;;;;;;;;;EAwJnE;AAED,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,kBAAkB,EAAE,OAAO,EACxE,SAAS,EAAE,CAAC,EACZ,WAAW,CAAC,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG;IAAE,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE;;;;;;;;;;EAkB/D"}
|
|
@@ -56,7 +56,7 @@ function checkAllowedFields({ fields, allowed, starFields, }) {
|
|
|
56
56
|
}
|
|
57
57
|
function prepareListQuery(validated, queryConfig = {}) {
|
|
58
58
|
let { allowed = [], restricted = [], defaults = [], defaultLimit = 50, isList, } = queryConfig;
|
|
59
|
-
const { order, fields, limit = defaultLimit, offset = 0 } = validated;
|
|
59
|
+
const { order, fields, limit = defaultLimit, offset = 0, with_deleted, } = validated;
|
|
60
60
|
// e.g *product.variants meaning that we want all fields from the product.variants
|
|
61
61
|
// in that case it wont be part of the select but it will be part of the relations.
|
|
62
62
|
// For the remote query we will have to add the fields to the fields array as product.variants.*
|
|
@@ -131,9 +131,8 @@ function prepareListQuery(validated, queryConfig = {}) {
|
|
|
131
131
|
if ((0, utils_1.isDefined)(order)) {
|
|
132
132
|
let orderField = order;
|
|
133
133
|
if (order.startsWith("-")) {
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
orderBy = { [field]: "DESC" };
|
|
134
|
+
orderField = order.slice(1);
|
|
135
|
+
orderBy = { [orderField]: "DESC" };
|
|
137
136
|
}
|
|
138
137
|
else {
|
|
139
138
|
orderBy = { [order]: "ASC" };
|
|
@@ -142,7 +141,7 @@ function prepareListQuery(validated, queryConfig = {}) {
|
|
|
142
141
|
throw new utils_1.EtoError(utils_1.EtoError.Types.INVALID_DATA, `Order field ${orderField} is not valid`);
|
|
143
142
|
}
|
|
144
143
|
}
|
|
145
|
-
const finalOrder = (0, utils_1.isPresent)(orderBy) ? orderBy : undefined;
|
|
144
|
+
const finalOrder = (0, utils_1.isPresent)(orderBy) ? (0, utils_1.buildOrder)(orderBy) : undefined;
|
|
146
145
|
return {
|
|
147
146
|
listConfig: {
|
|
148
147
|
select: select.length ? select : undefined,
|
|
@@ -150,6 +149,7 @@ function prepareListQuery(validated, queryConfig = {}) {
|
|
|
150
149
|
skip: offset,
|
|
151
150
|
take: limit,
|
|
152
151
|
order: finalOrder,
|
|
152
|
+
withDeleted: with_deleted,
|
|
153
153
|
},
|
|
154
154
|
remoteQueryConfig: {
|
|
155
155
|
// Add starFields that are relations only on which we want all properties with a dedicated format to the remote query
|
|
@@ -164,6 +164,7 @@ function prepareListQuery(validated, queryConfig = {}) {
|
|
|
164
164
|
order: finalOrder,
|
|
165
165
|
}
|
|
166
166
|
: {},
|
|
167
|
+
withDeleted: with_deleted,
|
|
167
168
|
},
|
|
168
169
|
};
|
|
169
170
|
}
|
|
@@ -177,6 +178,7 @@ function prepareRetrieveQuery(validated, queryConfig) {
|
|
|
177
178
|
remoteQueryConfig: {
|
|
178
179
|
fields: remoteQueryConfig.fields,
|
|
179
180
|
pagination: {},
|
|
181
|
+
withDeleted: remoteQueryConfig.withDeleted,
|
|
180
182
|
},
|
|
181
183
|
};
|
|
182
184
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-query-config.js","sourceRoot":"","sources":["../../../src/http/utils/get-query-config.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"get-query-config.js","sourceRoot":"","sources":["../../../src/http/utils/get-query-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"maybe-apply-link-filter.d.ts","sourceRoot":"","sources":["../../../src/http/utils/maybe-apply-link-filter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"maybe-apply-link-filter.d.ts","sourceRoot":"","sources":["../../../src/http/utils/maybe-apply-link-filter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AAIlE,wBAAgB,oBAAoB,CAAC,EACnC,UAAU,EACV,UAAU,EACV,eAAe,EACf,aAAoB,GACrB;;;;;CAAA,IAEG,KAAK,oBAAoB,EACzB,MAAM,iBAAiB,qDA+C1B"}
|
|
@@ -14,23 +14,21 @@ function maybeApplyLinkFilter({ entryPoint, resourceId, filterableField, filterB
|
|
|
14
14
|
? filterFields
|
|
15
15
|
: [filterFields];
|
|
16
16
|
delete filterableFields[filterableField];
|
|
17
|
-
const remoteQuery = (0, context_1.reqContext)(req.requestMeta).scope.resolve(utils_1.ContainerRegistrationKeys.REMOTE_QUERY);
|
|
18
|
-
const queryObject = (0, utils_1.remoteQueryObjectFromString)({
|
|
19
|
-
entryPoint,
|
|
20
|
-
fields: [resourceId],
|
|
21
|
-
variables: { filters: { [filterableField]: idsToFilterBy } },
|
|
22
|
-
});
|
|
23
|
-
const resources = await remoteQuery(queryObject);
|
|
24
17
|
let existingFilters = filterableFields[filterByField];
|
|
18
|
+
const requestMeta = req.requestMeta;
|
|
19
|
+
const query = (0, context_1.reqContext)(requestMeta).scope.resolve(utils_1.ContainerRegistrationKeys.QUERY);
|
|
20
|
+
const filters = {
|
|
21
|
+
[filterableField]: idsToFilterBy,
|
|
22
|
+
};
|
|
25
23
|
if (existingFilters) {
|
|
26
|
-
|
|
27
|
-
existingFilters = [existingFilters];
|
|
28
|
-
}
|
|
29
|
-
filterableFields[filterByField] = (0, utils_1.arrayIntersection)(existingFilters, resources.map((p) => p[resourceId]));
|
|
30
|
-
}
|
|
31
|
-
else {
|
|
32
|
-
filterableFields[filterByField] = resources.map((p) => p[resourceId]);
|
|
24
|
+
filters[resourceId] = existingFilters;
|
|
33
25
|
}
|
|
26
|
+
const { data: resources } = await query.graph({
|
|
27
|
+
entity: entryPoint,
|
|
28
|
+
fields: [resourceId],
|
|
29
|
+
filters,
|
|
30
|
+
});
|
|
31
|
+
filterableFields[filterByField] = resources.map((p) => p[resourceId]);
|
|
34
32
|
req.data.filterableFields = transformFilterableFields(filterableFields);
|
|
35
33
|
return next(req);
|
|
36
34
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"maybe-apply-link-filter.js","sourceRoot":"","sources":["../../../src/http/utils/maybe-apply-link-filter.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"maybe-apply-link-filter.js","sourceRoot":"","sources":["../../../src/http/utils/maybe-apply-link-filter.ts"],"names":[],"mappings":";;AAKA,oDAuDC;AA5DD,wCAAwD;AAExD,2CAA0C;AAG1C,SAAgB,oBAAoB,CAAC,EACnC,UAAU,EACV,UAAU,EACV,eAAe,EACf,aAAa,GAAG,IAAI,GACrB;IACC,OAAO,KAAK,UAAU,UAAU,CAC9B,GAAyB,EACzB,IAAuB;QAEvB,MAAM,gBAAgB,GAAG,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAA;QAElD,IAAI,CAAC,gBAAgB,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC;YACzC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAA;QAClB,CAAC;QAED,MAAM,YAAY,GAAG,gBAAgB,CAAC,eAAe,CAAC,CAAA;QAEtD,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC;YAC/C,CAAC,CAAC,YAAY;YACd,CAAC,CAAC,CAAC,YAAY,CAAC,CAAA;QAElB,OAAO,gBAAgB,CAAC,eAAe,CAAC,CAAA;QAExC,IAAI,eAAe,GAAG,gBAAgB,CAAC,aAAa,CAGvC,CAAA;QAEb,MAAM,WAAW,GAAG,GAAG,CAAC,WAA0B,CAAA;QAElD,MAAM,KAAK,GAAG,IAAA,oBAAU,EAAC,WAAW,CAAC,CAAC,KAAK,CAAC,OAAO,CACjD,iCAAyB,CAAC,KAAK,CAChC,CAAA;QAED,MAAM,OAAO,GAA4B;YACvC,CAAC,eAAe,CAAC,EAAE,aAAa;SACjC,CAAA;QAED,IAAI,eAAe,EAAE,CAAC;YACpB,OAAO,CAAC,UAAU,CAAC,GAAG,eAAe,CAAA;QACvC,CAAC;QAED,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC;YAC5C,MAAM,EAAE,UAAU;YAClB,MAAM,EAAE,CAAC,UAAU,CAAC;YACpB,OAAO;SACR,CAAC,CAAA;QAEF,gBAAgB,CAAC,aAAa,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAA;QAErE,GAAG,CAAC,IAAI,CAAC,gBAAgB,GAAG,yBAAyB,CAAC,gBAAgB,CAAC,CAAA;QAEvE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAA;IAClB,CAAC,CAAA;AACH,CAAC;AACD;;;;;;;;;;;;;EAaE;AACF,SAAS,yBAAyB,CAAC,gBAAyC;IAC1E,MAAM,MAAM,GAAG,EAAE,CAAA;IACjB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAChD,MAAM,KAAK,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAA;QACnC,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAC3B,IAAI,OAAO,GAAG,MAAM,CAAA;QAEpB,2DAA2D;QAC3D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;YACpB,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,CAAA;YAEpB,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC1B,wCAAwC;gBACxC,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,CAAA;gBACrB,MAAK;YACP,CAAC;YAED,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;QACzB,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { EtoContainer } from "@etohq/types";
|
|
2
2
|
import { EtoRequestContext } from "../types";
|
|
3
|
-
export declare const refetchEntities: (entryPoint: string, idOrFilter: string | object, scope: EtoContainer, fields: string[], pagination?: EtoRequestContext["queryConfig"]["pagination"]) => Promise<any>;
|
|
3
|
+
export declare const refetchEntities: (entryPoint: string, idOrFilter: string | object, scope: EtoContainer, fields: string[], pagination?: EtoRequestContext["queryConfig"]["pagination"], withDeleted?: boolean) => Promise<any>;
|
|
4
4
|
export declare const refetchEntity: (entryPoint: string, idOrFilter: string | object, scope: EtoContainer, fields: string[]) => Promise<any>;
|
|
5
5
|
//# sourceMappingURL=refetch-entities.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"refetch-entities.d.ts","sourceRoot":"","sources":["../../../src/http/utils/refetch-entities.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAM3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA;AAE5C,eAAO,MAAM,eAAe,GAC1B,YAAY,MAAM,EAClB,YAAY,MAAM,GAAG,MAAM,EAC3B,OAAO,YAAY,EACnB,QAAQ,MAAM,EAAE,EAChB,aAAa,iBAAiB,CAAC,aAAa,CAAC,CAAC,YAAY,CAAC,
|
|
1
|
+
{"version":3,"file":"refetch-entities.d.ts","sourceRoot":"","sources":["../../../src/http/utils/refetch-entities.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAM3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA;AAE5C,eAAO,MAAM,eAAe,GAC1B,YAAY,MAAM,EAClB,YAAY,MAAM,GAAG,MAAM,EAC3B,OAAO,YAAY,EACnB,QAAQ,MAAM,EAAE,EAChB,aAAa,iBAAiB,CAAC,aAAa,CAAC,CAAC,YAAY,CAAC,EAC3D,cAAc,OAAO,iBAuBtB,CAAA;AAED,eAAO,MAAM,aAAa,GACxB,YAAY,MAAM,EAClB,YAAY,MAAM,GAAG,MAAM,EAC3B,OAAO,YAAY,EACnB,QAAQ,MAAM,EAAE,iBAKjB,CAAA"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.refetchEntity = exports.refetchEntities = void 0;
|
|
4
4
|
const utils_1 = require("@etohq/utils");
|
|
5
|
-
const refetchEntities = async (entryPoint, idOrFilter, scope, fields, pagination) => {
|
|
5
|
+
const refetchEntities = async (entryPoint, idOrFilter, scope, fields, pagination, withDeleted) => {
|
|
6
6
|
const remoteQuery = scope.resolve(utils_1.ContainerRegistrationKeys.REMOTE_QUERY);
|
|
7
7
|
const filters = (0, utils_1.isString)(idOrFilter) ? { id: idOrFilter } : idOrFilter;
|
|
8
8
|
let context = {};
|
|
@@ -12,7 +12,7 @@ const refetchEntities = async (entryPoint, idOrFilter, scope, fields, pagination
|
|
|
12
12
|
}
|
|
13
13
|
delete filters.context;
|
|
14
14
|
}
|
|
15
|
-
const variables = { filters, ...context, ...pagination };
|
|
15
|
+
const variables = { filters, ...context, ...pagination, withDeleted };
|
|
16
16
|
const queryObject = (0, utils_1.remoteQueryObjectFromString)({
|
|
17
17
|
entryPoint,
|
|
18
18
|
variables,
|