@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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@shophost/rest-api",
3
- "version": "2.0.9",
3
+ "version": "2.0.11",
4
4
  "type": "module",
5
5
  "main": "./src/index.js",
6
6
  "types": "./src/index.d.ts",
@@ -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":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAGjE,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExD,MAAM,SAAS,GAAG;IAChB,OAAO,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC;IAC/C,YAAY,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC;CAC5C,CAAC;AAEX,MAAM,EAAE,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC;AAE1C,MAAM,QAAQ,GAAG,EAAE,CAAC,OAAO,CAAC;IAC1B,OAAO,EAAE,CAAC,MAAM,CAAC;CAClB,CAAC,CAAC;AAEH,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC;IACzB,OAAO,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC;CAChD,CAAC,CAAC;AAEH,MAAM,KAAK,GAAG,EAAE,CAAC,OAAO,CAAC;IACvB,OAAO,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC;IAC/C,YAAY,EAAE,CAAC,QAAQ,CAAC;CACzB,CAAC,CAAC;AAEH,MAAM,KAAK,GAAG,EAAE,CAAC,OAAO,CAAC;IACvB,OAAO,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC;IAC/C,YAAY,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;CACnC,CAAC,CAAC;AAeH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,EAC/B,MAAM,EACN,OAAO,EACP,MAAM,EACN,cAAc,EACd,eAAe,GACH,EAAO,EAAE;IACrB,MAAM,IAAI,GAAG,UAAU,CAAC;QACtB,OAAO;QACP,QAAQ,EAAE,aAAa,CAAC,MAAM,EAAE;YAC9B,QAAQ,EAAE,YAAY;SACvB,CAAC;QACF,cAAc;QACd,IAAI,EAAE;YACJ,gBAAgB,EAAE;gBAChB,SAAS,EAAE;oBACT,IAAI,EAAE,QAAQ;oBACd,QAAQ,EAAE,IAAI;iBACf;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,QAAQ,EAAE,IAAI;iBACf;aACF;SACF;QACD,QAAQ,EAAE;YACR,qBAAqB,EAAE;gBACrB,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,MAAM;aACf;YACD,gBAAgB,EAAE,MAAM,KAAK,WAAW;YACxC,uBAAuB,EAAE;gBACvB,IAAI,EAAE,GAAG;gBACT,QAAQ,EAAE,KAAK,EAAE,wEAAwE;gBACzF,QAAQ,EAAE,IAAI,EAAE,wCAAwC;gBACxD,MAAM,EAAE,MAAM,KAAK,WAAW;aAC/B;SACF;QACD,gBAAgB,EAAE;YAChB,OAAO,EAAE,IAAI;SACd;QACD,eAAe,oBACV,CAAC,CAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,MAAM;YACzB,CAAC,CAAC;gBACE,MAAM,EAAE;oBACN,MAAM,EAAE,gBAAgB;oBACxB,QAAQ,EAAE,eAAe,CAAC,MAAM,CAAC,QAAQ;oBACzC,YAAY,EAAE,eAAe,CAAC,MAAM,CAAC,YAAY;oBACjD,gBAAgB,EAAE,CAAC,OAAO,EAAE,EAAE;wBAC5B,OAAO;4BACL,SAAS,EAAE,OAAO,CAAC,UAAU;4BAC7B,QAAQ,EAAE,OAAO,CAAC,WAAW;yBAC9B,CAAC;oBACJ,CAAC;iBACF;aACF;YACH,CAAC,CAAC,EAAE,CAAC,CACR;QACD,OAAO,EAAE;YACP,OAAO,EAAE;YACT,WAAW,EAAE;YACb,YAAY,CAAC;gBACX,EAAE;gBACF,KAAK,EAAE;oBACL,QAAQ;oBACR,OAAO;oBACP,KAAK;oBACL,KAAK;iBACN;aACF,CAAC;SACH;KACF,CAAC,CAAC;IAEH,OAAO;QACL,IAAI;QACJ,cAAc,EAAE,cAAc,CAAC,IAAI,CAAC;QACpC,SAAS,EAAE,SAAS,CAAC,IAAI,CAAC;KAC3B,CAAC;AACJ,CAAC,CAAC"}
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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"}
@@ -21,7 +21,23 @@ export const createNextHandler = (options) => {
21
21
  log: options.database.log,
22
22
  });
23
23
  })();
24
- const auth = createAuthClient(Object.assign({ prisma }, options.auth));
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":"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"}
1
+ {"version":3,"file":"next.js","sourceRoot":"","sources":["../../../../../packages/rest-api/src/integrations/next.ts"],"names":[],"mappings":"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"}