@hexclave/js 1.0.110 → 1.0.112

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.
Files changed (34) hide show
  1. package/dist/{admin-app-impl-G4DIOMk4.d.ts → admin-app-impl-DLUdv3HI.d.ts} +8 -8
  2. package/dist/{admin-app-impl-G4DIOMk4.d.ts.map → admin-app-impl-DLUdv3HI.d.ts.map} +1 -1
  3. package/dist/{cookie-DTOQvCYn.d.ts → cookie-DwI1VmzU.d.ts} +6 -1
  4. package/dist/cookie-DwI1VmzU.d.ts.map +1 -0
  5. package/dist/esm/lib/cookie.d.ts +5 -0
  6. package/dist/esm/lib/cookie.d.ts.map +1 -1
  7. package/dist/esm/lib/cookie.js +5 -0
  8. package/dist/esm/lib/cookie.js.map +1 -1
  9. package/dist/esm/lib/hexclave-app/apps/implementations/admin-app-impl.d.ts +4 -4
  10. package/dist/esm/lib/hexclave-app/apps/implementations/admin-app-impl.d.ts.map +1 -1
  11. package/dist/esm/lib/hexclave-app/apps/implementations/client-app-impl.d.ts +2 -2
  12. package/dist/esm/lib/hexclave-app/apps/implementations/client-app-impl.d.ts.map +1 -1
  13. package/dist/esm/lib/hexclave-app/apps/implementations/client-app-impl.js.map +1 -1
  14. package/dist/esm/lib/hexclave-app/apps/implementations/client-app-impl.next-server-session.test.d.ts +1 -0
  15. package/dist/esm/lib/hexclave-app/apps/implementations/client-app-impl.next-server-session.test.js +46 -0
  16. package/dist/esm/lib/hexclave-app/apps/implementations/client-app-impl.next-server-session.test.js.map +1 -0
  17. package/dist/esm/lib/hexclave-app/apps/implementations/common.js +2 -2
  18. package/dist/lib/cookie.d.ts +1 -1
  19. package/dist/lib/cookie.js +5 -0
  20. package/dist/lib/cookie.js.map +1 -1
  21. package/dist/lib/hexclave-app/apps/implementations/admin-app-impl.d.ts +1 -1
  22. package/dist/lib/hexclave-app/apps/implementations/client-app-impl.d.ts +1 -1
  23. package/dist/lib/hexclave-app/apps/implementations/client-app-impl.js.map +1 -1
  24. package/dist/lib/hexclave-app/apps/implementations/client-app-impl.next-server-session.test.d.ts +1 -0
  25. package/dist/lib/hexclave-app/apps/implementations/client-app-impl.next-server-session.test.js +45 -0
  26. package/dist/lib/hexclave-app/apps/implementations/client-app-impl.next-server-session.test.js.map +1 -0
  27. package/dist/lib/hexclave-app/apps/implementations/common.js +2 -2
  28. package/dist/lib/hexclave-app/apps/implementations/index.d.ts +1 -1
  29. package/dist/lib/hexclave-app/apps/implementations/server-app-impl.d.ts +1 -1
  30. package/package.json +2 -2
  31. package/src/lib/cookie.ts +9 -0
  32. package/src/lib/hexclave-app/apps/implementations/client-app-impl.next-server-session.test.ts +55 -0
  33. package/src/lib/hexclave-app/apps/implementations/client-app-impl.ts +1 -0
  34. package/dist/cookie-DTOQvCYn.d.ts.map +0 -1
@@ -0,0 +1,46 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import { StackClientApp } from "../interfaces/client-app.js";
3
+ //#region src/lib/hexclave-app/apps/implementations/client-app-impl.next-server-session.test.ts
4
+ function createCookieHelper(identity) {
5
+ return {
6
+ identity,
7
+ get: () => null,
8
+ getAll: () => ({}),
9
+ set: () => {},
10
+ setOrDelete: () => {},
11
+ delete: () => {}
12
+ };
13
+ }
14
+ function createClientApp() {
15
+ return new StackClientApp({
16
+ baseUrl: "http://localhost:12345",
17
+ projectId: "00000000-0000-4000-8000-000000000000",
18
+ publishableClientKey: "stack-pk-test",
19
+ tokenStore: "memory",
20
+ redirectMethod: "none",
21
+ noAutomaticPrefetch: true,
22
+ devTool: false
23
+ });
24
+ }
25
+ describe("StackClientApp Next.js server sessions", () => {
26
+ it("shares one token store and session across cookie helpers from the same request", () => {
27
+ const clientApp = createClientApp();
28
+ const getTokenStore = Reflect.get(clientApp, "_getOrCreateTokenStore");
29
+ const getSession = Reflect.get(clientApp, "_getSessionFromTokenStore");
30
+ const requestIdentity = {};
31
+ const firstStore = getTokenStore.call(clientApp, createCookieHelper(requestIdentity), "nextjs-cookie");
32
+ const secondStore = getTokenStore.call(clientApp, createCookieHelper(requestIdentity), "nextjs-cookie");
33
+ expect(secondStore).toBe(firstStore);
34
+ expect(getSession.call(clientApp, secondStore)).toBe(getSession.call(clientApp, firstStore));
35
+ });
36
+ it("isolates token stores belonging to different requests", () => {
37
+ const clientApp = createClientApp();
38
+ const getTokenStore = Reflect.get(clientApp, "_getOrCreateTokenStore");
39
+ const firstStore = getTokenStore.call(clientApp, createCookieHelper({}), "nextjs-cookie");
40
+ expect(getTokenStore.call(clientApp, createCookieHelper({}), "nextjs-cookie")).not.toBe(firstStore);
41
+ });
42
+ });
43
+ //#endregion
44
+ export {};
45
+
46
+ //# sourceMappingURL=client-app-impl.next-server-session.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client-app-impl.next-server-session.test.js","names":[],"sources":["../../../../../../src/lib/hexclave-app/apps/implementations/client-app-impl.next-server-session.test.ts"],"sourcesContent":["\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY UNLESS YOU ALSO EDIT THE CORRESPONDING FILE IN packages/template\n//===========================================\nimport { describe, expect, it } from \"vitest\";\nimport { CookieHelper } from \"../../../cookie\";\nimport { StackClientApp } from \"../interfaces/client-app\";\n\nfunction createCookieHelper(identity: object): CookieHelper {\n return {\n identity,\n get: () => null,\n getAll: () => ({}),\n set: () => {},\n setOrDelete: () => {},\n delete: () => {},\n };\n}\n\nfunction createClientApp() {\n return new StackClientApp({\n baseUrl: \"http://localhost:12345\",\n projectId: \"00000000-0000-4000-8000-000000000000\",\n publishableClientKey: \"stack-pk-test\",\n tokenStore: \"memory\",\n redirectMethod: \"none\",\n noAutomaticPrefetch: true,\n devTool: false,\n });\n}\n\ndescribe(\"StackClientApp Next.js server sessions\", () => {\n it(\"shares one token store and session across cookie helpers from the same request\", () => {\n const clientApp = createClientApp();\n const getTokenStore = Reflect.get(clientApp, \"_getOrCreateTokenStore\");\n const getSession = Reflect.get(clientApp, \"_getSessionFromTokenStore\");\n const requestIdentity = {};\n\n const firstStore = getTokenStore.call(clientApp, createCookieHelper(requestIdentity), \"nextjs-cookie\");\n const secondStore = getTokenStore.call(clientApp, createCookieHelper(requestIdentity), \"nextjs-cookie\");\n\n expect(secondStore).toBe(firstStore);\n expect(getSession.call(clientApp, secondStore)).toBe(getSession.call(clientApp, firstStore));\n });\n\n it(\"isolates token stores belonging to different requests\", () => {\n const clientApp = createClientApp();\n const getTokenStore = Reflect.get(clientApp, \"_getOrCreateTokenStore\");\n\n const firstStore = getTokenStore.call(clientApp, createCookieHelper({}), \"nextjs-cookie\");\n const secondStore = getTokenStore.call(clientApp, createCookieHelper({}), \"nextjs-cookie\");\n\n expect(secondStore).not.toBe(firstStore);\n });\n});\n"],"mappings":";;;AAQA,SAAS,mBAAmB,UAAgC;CAC1D,OAAO;EACL;EACA,WAAW;EACX,eAAe,CAAC;EAChB,WAAW,CAAC;EACZ,mBAAmB,CAAC;EACpB,cAAc,CAAC;CACjB;AACF;AAEA,SAAS,kBAAkB;CACzB,OAAO,IAAI,eAAe;EACxB,SAAS;EACT,WAAW;EACX,sBAAsB;EACtB,YAAY;EACZ,gBAAgB;EAChB,qBAAqB;EACrB,SAAS;CACX,CAAC;AACH;AAEA,SAAS,gDAAgD;CACvD,GAAG,wFAAwF;EACzF,MAAM,YAAY,gBAAgB;EAClC,MAAM,gBAAgB,QAAQ,IAAI,WAAW,wBAAwB;EACrE,MAAM,aAAa,QAAQ,IAAI,WAAW,2BAA2B;EACrE,MAAM,kBAAkB,CAAC;EAEzB,MAAM,aAAa,cAAc,KAAK,WAAW,mBAAmB,eAAe,GAAG,eAAe;EACrG,MAAM,cAAc,cAAc,KAAK,WAAW,mBAAmB,eAAe,GAAG,eAAe;EAEtG,OAAO,WAAW,CAAC,CAAC,KAAK,UAAU;EACnC,OAAO,WAAW,KAAK,WAAW,WAAW,CAAC,CAAC,CAAC,KAAK,WAAW,KAAK,WAAW,UAAU,CAAC;CAC7F,CAAC;CAED,GAAG,+DAA+D;EAChE,MAAM,YAAY,gBAAgB;EAClC,MAAM,gBAAgB,QAAQ,IAAI,WAAW,wBAAwB;EAErE,MAAM,aAAa,cAAc,KAAK,WAAW,mBAAmB,CAAC,CAAC,GAAG,eAAe;EAGxF,OAFoB,cAAc,KAAK,WAAW,mBAAmB,CAAC,CAAC,GAAG,eAEzD,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU;CACzC,CAAC;AACH,CAAC"}
@@ -12,8 +12,8 @@ import { resolveHandlerUrls } from "../../url-targets.js";
12
12
  import { AsyncCache } from "@hexclave/shared/dist/utils/caches";
13
13
  import { createGlobal, getGlobal } from "@hexclave/shared/dist/utils/globals";
14
14
  //#region src/lib/hexclave-app/apps/implementations/common.ts
15
- const clientVersion = "js @hexclave/js@1.0.110";
16
- if ("js @hexclave/js@1.0.110".startsWith("STACK_COMPILE_TIME"));
15
+ const clientVersion = "js @hexclave/js@1.0.112";
16
+ if ("js @hexclave/js@1.0.112".startsWith("STACK_COMPILE_TIME"));
17
17
  const replaceHexclavePortPrefix = (input) => {
18
18
  if (!input) return input;
19
19
  const prefix = envVars.HEXCLAVE_PORT_PREFIX;
@@ -1,2 +1,2 @@
1
- import { _ as setOrDeleteCookieClient, a as createCookieHelperSync, c as deleteCookieClient, d as getCookieClient, f as isSecure, g as setOrDeleteCookie, h as setCookieClient, i as createCookieHelper, l as getAllCookiesClient, m as setCookie, n as consumeVerifierAndStateCookie, o as createPlaceholderCookieHelper, p as saveVerifierAndState, r as createBrowserCookieHelper, s as deleteCookie, t as CookieHelper, u as getCookie } from "../cookie-DTOQvCYn.js";
1
+ import { _ as setOrDeleteCookieClient, a as createCookieHelperSync, c as deleteCookieClient, d as getCookieClient, f as isSecure, g as setOrDeleteCookie, h as setCookieClient, i as createCookieHelper, l as getAllCookiesClient, m as setCookie, n as consumeVerifierAndStateCookie, o as createPlaceholderCookieHelper, p as saveVerifierAndState, r as createBrowserCookieHelper, s as deleteCookie, t as CookieHelper, u as getCookie } from "../cookie-DwI1VmzU.js";
2
2
  export { CookieHelper, consumeVerifierAndStateCookie, createBrowserCookieHelper, createCookieHelper, createCookieHelperSync, createPlaceholderCookieHelper, deleteCookie, deleteCookieClient, getAllCookiesClient, getCookie, getCookieClient, isSecure, saveVerifierAndState, setCookie, setCookieClient, setOrDeleteCookie, setOrDeleteCookieClient };
@@ -100,11 +100,13 @@ URL.parse;
100
100
  function ensureClient() {
101
101
  if (!(0, _hexclave_shared_dist_utils_env.isBrowserLike)()) throw new Error("cookieClient functions can only be called in a browser environment, yet window is undefined");
102
102
  }
103
+ const placeholderCookieHelperIdentity = { "placeholder cookie helper identity": true };
103
104
  async function createPlaceholderCookieHelper() {
104
105
  function throwError() {
105
106
  throw new _hexclave_shared_dist_utils_errors.HexclaveAssertionError("Throwing cookie helper is just a placeholder. This should never be called");
106
107
  }
107
108
  return {
109
+ identity: placeholderCookieHelperIdentity,
108
110
  get: throwError,
109
111
  getAll: throwError,
110
112
  set: throwError,
@@ -128,6 +130,7 @@ function createCookieHelperSync() {
128
130
  throw new _hexclave_shared_dist_utils_errors.HexclaveAssertionError("Synchronous server cookie helpers are not available on this platform");
129
131
  }
130
132
  return {
133
+ identity: placeholderCookieHelperIdentity,
131
134
  get: throwError,
132
135
  getAll: throwError,
133
136
  set: throwError,
@@ -135,8 +138,10 @@ function createCookieHelperSync() {
135
138
  delete: throwError
136
139
  };
137
140
  }
141
+ const browserCookieHelperIdentity = { "browser cookie helper identity": true };
138
142
  function createBrowserCookieHelper() {
139
143
  return {
144
+ identity: browserCookieHelperIdentity,
140
145
  get: getCookieClient,
141
146
  getAll: getAllCookiesClient,
142
147
  set: setCookieClient,