@shophost/rest-api 2.0.9 → 2.0.11
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/package.json
CHANGED
|
@@ -12,6 +12,9 @@ const ac = createAccessControl(statement);
|
|
|
12
12
|
const readOnly = ac.newRole({
|
|
13
13
|
project: ["read"],
|
|
14
14
|
});
|
|
15
|
+
const member = ac.newRole({
|
|
16
|
+
project: ["read"],
|
|
17
|
+
});
|
|
15
18
|
const manager = ac.newRole({
|
|
16
19
|
project: ["create", "read", "update", "delete"],
|
|
17
20
|
});
|
|
@@ -79,6 +82,7 @@ export const createAuthClient = ({ prisma, baseURL, domain, trustedOrigins, soci
|
|
|
79
82
|
organization({
|
|
80
83
|
ac,
|
|
81
84
|
roles: {
|
|
85
|
+
member,
|
|
82
86
|
readOnly,
|
|
83
87
|
manager,
|
|
84
88
|
admin,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"better-auth.lib.js","sourceRoot":"","sources":["../../../../../../packages/rest-api/src/core/auth/better-auth.lib.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"better-auth.lib.js","sourceRoot":"","sources":["../../../../../../packages/rest-api/src/core/auth/better-auth.lib.ts"],"names":[],"mappings":"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"}
|
package/src/integrations/next.js
CHANGED
|
@@ -21,7 +21,23 @@ export const createNextHandler = (options) => {
|
|
|
21
21
|
log: options.database.log,
|
|
22
22
|
});
|
|
23
23
|
})();
|
|
24
|
-
const
|
|
24
|
+
const authClients = new Map();
|
|
25
|
+
const getRequestAuthBaseURL = (request) => {
|
|
26
|
+
if (options.auth.baseURL) {
|
|
27
|
+
return options.auth.baseURL;
|
|
28
|
+
}
|
|
29
|
+
const url = new URL(request.url);
|
|
30
|
+
return `${url.origin}/api/auth`;
|
|
31
|
+
};
|
|
32
|
+
const getAuth = (baseURL) => {
|
|
33
|
+
const cachedAuth = authClients.get(baseURL);
|
|
34
|
+
if (cachedAuth) {
|
|
35
|
+
return cachedAuth;
|
|
36
|
+
}
|
|
37
|
+
const auth = createAuthClient(Object.assign(Object.assign({ prisma }, options.auth), { baseURL }));
|
|
38
|
+
authClients.set(baseURL, auth);
|
|
39
|
+
return auth;
|
|
40
|
+
};
|
|
25
41
|
const getOrganizationIdFromPath = (path) => {
|
|
26
42
|
var _a, _b;
|
|
27
43
|
const segments = path.split("/").filter(Boolean);
|
|
@@ -36,6 +52,7 @@ export const createNextHandler = (options) => {
|
|
|
36
52
|
payment: options.payment,
|
|
37
53
|
prisma,
|
|
38
54
|
resolveAuth: (request, path) => {
|
|
55
|
+
const auth = getAuth(getRequestAuthBaseURL(request));
|
|
39
56
|
const organizationId = getOrganizationIdFromPath(path);
|
|
40
57
|
return {
|
|
41
58
|
getCurrentUser: () => auth.getCurrentUser(request.headers),
|
|
@@ -45,6 +62,7 @@ export const createNextHandler = (options) => {
|
|
|
45
62
|
});
|
|
46
63
|
return (request) => {
|
|
47
64
|
if (request.url.includes("/api/auth")) {
|
|
65
|
+
const auth = getAuth(getRequestAuthBaseURL(request));
|
|
48
66
|
const { GET, POST } = toNextJsHandler(auth.auth.handler);
|
|
49
67
|
switch (request.method) {
|
|
50
68
|
case "GET":
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"next.js","sourceRoot":"","sources":["../../../../../packages/rest-api/src/integrations/next.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAGtD,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EACL,kBAAkB,GAGnB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AA+BlE,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,OAAiC,EAAE,EAAE;;IACrE,sEAAsE;IACtE,MAAM,MAAM,GACV,MAAA,OAAO,CAAC,MAAM,mCACd,CAAC,GAAG,EAAE;QACJ,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CACb,4EAA4E,CAC7E,CAAC;QACJ,CAAC;QAED,IAAI,SAAS,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YAClC,OAAO,kBAAkB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC9C,CAAC;QAED,OAAO,kBAAkB,CAAC;YACxB,OAAO,EAAE,IAAI,UAAU,CAAC;gBACtB,gBAAgB,EAAE,OAAO,CAAC,QAAQ,CAAC,gBAAgB;aACpD,CAAC;YACF,GAAG,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG;SAC1B,CAAC,CAAC;IACL,CAAC,CAAC,EAAE,CAAC;IAEP,MAAM,IAAI,GAAG,
|
|
1
|
+
{"version":3,"file":"next.js","sourceRoot":"","sources":["../../../../../packages/rest-api/src/integrations/next.ts"],"names":[],"mappings":"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"}
|