@osdk/oauth 1.8.0-beta.3 → 1.8.0-beta.5

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 (57) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/build/browser/Logger.js +2 -0
  3. package/build/browser/Logger.js.map +1 -0
  4. package/build/browser/createPublicOauthClient.js +5 -5
  5. package/build/browser/createPublicOauthClient.js.map +1 -1
  6. package/build/browser/index.js.map +1 -1
  7. package/build/browser/utils.js +2 -1
  8. package/build/browser/utils.js.map +1 -1
  9. package/build/cjs/index.cjs +7 -4
  10. package/build/cjs/index.cjs.map +1 -1
  11. package/build/cjs/index.d.cts +10 -1
  12. package/build/esm/Logger.js +2 -0
  13. package/build/esm/Logger.js.map +1 -0
  14. package/build/esm/createPublicOauthClient.js +5 -5
  15. package/build/esm/createPublicOauthClient.js.map +1 -1
  16. package/build/esm/index.js.map +1 -1
  17. package/build/esm/utils.js +2 -1
  18. package/build/esm/utils.js.map +1 -1
  19. package/build/types/Logger.d.ts +3 -0
  20. package/build/types/Logger.d.ts.map +1 -0
  21. package/build/types/createPublicOauthClient.d.ts +6 -0
  22. package/build/types/createPublicOauthClient.d.ts.map +1 -1
  23. package/build/types/index.d.ts +1 -0
  24. package/build/types/index.d.ts.map +1 -1
  25. package/build/types/utils.d.ts +3 -1
  26. package/build/types/utils.d.ts.map +1 -1
  27. package/package.json +1 -1
  28. package/build/browser/AuthorizationServer.test.js +0 -53
  29. package/build/browser/AuthorizationServer.test.js.map +0 -1
  30. package/build/browser/__tests__/createPublicOauthClient.test.js +0 -59
  31. package/build/browser/__tests__/createPublicOauthClient.test.js.map +0 -1
  32. package/build/browser/common.test.js +0 -68
  33. package/build/browser/common.test.js.map +0 -1
  34. package/build/browser/createAuthlessClient.test.js +0 -31
  35. package/build/browser/createAuthlessClient.test.js.map +0 -1
  36. package/build/browser/publicOauth.test.js +0 -430
  37. package/build/browser/publicOauth.test.js.map +0 -1
  38. package/build/esm/AuthorizationServer.test.js +0 -53
  39. package/build/esm/AuthorizationServer.test.js.map +0 -1
  40. package/build/esm/__tests__/createPublicOauthClient.test.js +0 -59
  41. package/build/esm/__tests__/createPublicOauthClient.test.js.map +0 -1
  42. package/build/esm/common.test.js +0 -68
  43. package/build/esm/common.test.js.map +0 -1
  44. package/build/esm/createAuthlessClient.test.js +0 -31
  45. package/build/esm/createAuthlessClient.test.js.map +0 -1
  46. package/build/esm/publicOauth.test.js +0 -430
  47. package/build/esm/publicOauth.test.js.map +0 -1
  48. package/build/types/AuthorizationServer.test.d.ts +0 -1
  49. package/build/types/AuthorizationServer.test.d.ts.map +0 -1
  50. package/build/types/__tests__/createPublicOauthClient.test.d.ts +0 -1
  51. package/build/types/__tests__/createPublicOauthClient.test.d.ts.map +0 -1
  52. package/build/types/common.test.d.ts +0 -1
  53. package/build/types/common.test.d.ts.map +0 -1
  54. package/build/types/createAuthlessClient.test.d.ts +0 -1
  55. package/build/types/createAuthlessClient.test.d.ts.map +0 -1
  56. package/build/types/publicOauth.test.d.ts +0 -1
  57. package/build/types/publicOauth.test.d.ts.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"publicOauth.test.js","names":["afterAll","afterEach","beforeAll","beforeEach","describe","expect","it","vi","commonJs","createPublicOauthClient","hoistedMocks","hoisted","makeTokenAndSaveRefresh","fn","mock","delay","ms","Promise","resolve","setTimeout","importOriginal","original","common","args","result","readLocal","spyOn","readSession","DEFAULT_CUR_URL","URL","fetchFn","mockWindow","location","toString","assign","href","pathname","history","replaceState","mockLocalStorage","setItem","getItem","removeItem","mockSessionStorage","restoreAllMocks","mockRestore","clearAllMocks","mockReset","stubGlobal","unstubAllGlobals","BASE_CLIENT_ARGS","clientId","foundryUrl","redirectUrl","fullLoginUrl","setupWindowLocation","currentUrl","setupLocalState","initialLocalState","mocked","mockImplementation","client","clientArgs","setupClient","clientArgs_","refreshTokenMarker","useHistory","loginPage","postLoginPage","scopes","ctxPath","undefined","expectRedirectToMultipass","tokenPromise","rejects","toThrowError","Error","toHaveBeenCalledOnce","url","calls","origin","toEqual","Object","fromEntries","searchParams","entries","objectContaining","client_id","code_challenge","any","String","redirect_uri","response_type","code_challenge_method","scope","sort","join","state","refresh_token","requestedScopes","mockImplementationOnce","access_token","expires_at","Date","now","expires_in","resolves","toBeCalledTimes","each","name","should","redirectToLoginPage","toHaveBeenCalledWith","token_endpoint_auth_method","createAuthorizationServer","Function","anything","localStorage","sessionStorage","codeVerifier","oldUrl","initialState","ACCESS_TOKEN","Math","random","substring","keys","length","toBeUndefined","toBeCalledWith","JSON","stringify","window","toHaveBeenCalledTimes","env","TARGET","tokenStorage","lastArg","toBe","get","not","toContain","mockClear","toHaveBeenCalled"],"sources":["publicOauth.test.ts"],"sourcesContent":["/*\n * Copyright 2024 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/* eslint-disable @typescript-eslint/consistent-type-imports */\nimport {\n afterAll,\n afterEach,\n beforeAll,\n beforeEach,\n describe,\n expect,\n it,\n vi,\n} from \"vitest\";\n\nimport * as commonJs from \"./common.js\";\nimport { LocalStorageState, SessionStorageState } from \"./common.js\";\nimport { createPublicOauthClient } from \"./createPublicOauthClient.js\";\nimport { PublicOauthClient } from \"./PublicOauthClient.js\";\n\nconst hoistedMocks = vi.hoisted(() => {\n return {\n makeTokenAndSaveRefresh: vi.fn(),\n };\n});\n\nvi.mock(\"./delay.js\", () => ({\n delay: vi.fn((ms: number) =>\n new Promise<void>(resolve => setTimeout(resolve, ms / 100))\n ),\n}));\n\nvi.mock(\"./common.js\", async (importOriginal) => {\n const original = await importOriginal<typeof import(\"./common.js\")>();\n return {\n ...original,\n common: vi.fn<typeof commonJs.common>((...args) => {\n const result = original.common(...args);\n return {\n ...result,\n makeTokenAndSaveRefresh: hoistedMocks.makeTokenAndSaveRefresh,\n };\n }),\n readLocal: vi.spyOn(original, \"readLocal\"),\n readSession: vi.spyOn(original, \"readSession\"),\n // vi.fn(original.readLocal),\n };\n});\n\nvi.mock(\"oauth4webapi\");\n\ninterface BaseClientArgs {\n clientId: string;\n foundryUrl: string;\n redirectUrl: string;\n fetchFn?: typeof globalThis.fetch;\n}\n\ninterface ClientArgs extends BaseClientArgs {\n useHistory?: boolean;\n loginPage?: string;\n postLoginPage?: string;\n scopes?: string[];\n ctxPath?: string;\n refreshTokenMarker?: string;\n}\n\ndescribe(createPublicOauthClient, () => {\n const DEFAULT_CUR_URL = new URL(\"https://fauxurl\");\n const fetchFn = vi.fn<typeof fetch>();\n\n const mockWindow = {\n location: {\n toString: vi.fn(() => DEFAULT_CUR_URL),\n assign: vi.fn(),\n href: DEFAULT_CUR_URL.href,\n pathname: DEFAULT_CUR_URL.pathname,\n },\n history: {\n replaceState: vi.fn<typeof window.history.replaceState>(),\n },\n };\n\n const mockLocalStorage = {\n setItem: vi.fn(),\n getItem: vi.fn(),\n removeItem: vi.fn(),\n };\n\n const mockSessionStorage = {\n setItem: vi.fn(),\n getItem: vi.fn(),\n removeItem: vi.fn(),\n };\n\n beforeEach((context) => {\n vi.restoreAllMocks();\n fetchFn.mockRestore();\n });\n\n afterEach((context) => {\n vi.clearAllMocks();\n fetchFn.mockReset();\n });\n\n beforeAll(() => {\n vi.stubGlobal(\"window\", mockWindow);\n vi.stubGlobal(\"localStorage\", mockLocalStorage);\n vi.stubGlobal(\"sessionStorage\", mockSessionStorage);\n });\n\n afterAll(() => {\n vi.unstubAllGlobals();\n });\n\n const BASE_CLIENT_ARGS: BaseClientArgs = {\n clientId: \"this-would-be-client-id\",\n foundryUrl: \"https://a.foundry.url.local\",\n redirectUrl: \"https://my.redirect.url.local\",\n fetchFn,\n };\n\n const fullLoginUrl = new URL(\"/loginPage\", DEFAULT_CUR_URL);\n\n function setupWindowLocation(currentUrl: string) {\n mockWindow.location.href = new URL(currentUrl).href;\n mockWindow.location.pathname = new URL(currentUrl).pathname;\n }\n\n function setupLocalState(initialLocalState: LocalStorageState) {\n vi.mocked(commonJs.readLocal).mockImplementation(() => initialLocalState);\n }\n\n let client: PublicOauthClient;\n let clientArgs: ClientArgs;\n function setupClient(clientArgs_: ClientArgs) {\n clientArgs = clientArgs_;\n if (clientArgs.refreshTokenMarker) {\n client = createPublicOauthClient(\n clientArgs.clientId,\n clientArgs.foundryUrl,\n clientArgs.redirectUrl,\n clientArgs,\n );\n } else {\n client = createPublicOauthClient(\n clientArgs.clientId,\n clientArgs.foundryUrl,\n clientArgs.redirectUrl,\n clientArgs.useHistory,\n clientArgs.loginPage,\n clientArgs.postLoginPage,\n clientArgs.scopes,\n clientArgs.fetchFn,\n clientArgs.ctxPath,\n );\n }\n }\n beforeEach((context) => {\n // prevents mistakes like forgetting to initialize the client with an\n // old value around\n client = undefined!;\n clientArgs = undefined!;\n });\n\n async function expectRedirectToMultipass(\n tokenPromise: Promise<string>,\n ) {\n // we assume window.location.assign will take you away therefore we\n // also have to expect in this scenario that the thrown error happens\n await expect(tokenPromise)\n .rejects.toThrowError(new Error(\"Unable to redirect\"));\n\n expect(mockWindow.location.assign).toHaveBeenCalledOnce();\n\n const url = new URL(\n mockWindow.location.assign.mock.calls[0][0],\n );\n expect(url.origin).toEqual(clientArgs.foundryUrl);\n expect(url.pathname).toEqual(\"/multipass/api/oauth2/authorize\");\n expect(Object.fromEntries(url.searchParams.entries())).toEqual(\n expect.objectContaining({\n client_id: clientArgs.clientId,\n code_challenge: expect.any(String),\n redirect_uri: clientArgs.redirectUrl,\n response_type: \"code\",\n code_challenge_method: \"S256\",\n scope: [\n \"offline_access\",\n ...(clientArgs.scopes\n ?? [\n \"api:read-data\",\n \"api:write-data\",\n \"api:use-ontologies-read\",\n \"api:use-ontologies-write\",\n ].sort()),\n ].join(\" \"),\n state: expect.any(String),\n }),\n );\n }\n\n describe(\"refresh token marker and scopes\", () => {\n beforeEach(() => {\n setupWindowLocation(\"https://foundry.local\");\n });\n\n // Backwards compatibility from when we didn't store scopes\n it(\"should not allow refresh if scopes in local storage is undefined\", async () => {\n setupLocalState({\n refresh_token: \"refreshToken\",\n });\n\n setupClient({\n ...BASE_CLIENT_ARGS,\n // Testing with default scopes\n });\n\n await expectRedirectToMultipass(\n client(),\n );\n });\n\n it(\"should not allow refresh if requested scopes are different\", async () => {\n setupLocalState({\n refresh_token: \"refreshToken\",\n requestedScopes: \"api:read-data\",\n });\n\n setupClient({\n ...BASE_CLIENT_ARGS,\n scopes: [\"api:write-data\"],\n });\n\n await expectRedirectToMultipass(\n client(),\n );\n });\n\n it(\"should not allow refresh if the refresh markers do not match\", async () => {\n setupLocalState({\n refresh_token: \"refreshToken\",\n refreshTokenMarker: \"not-the-right-marker\",\n requestedScopes: \"api:read-data\",\n });\n\n setupClient({\n ...BASE_CLIENT_ARGS,\n refreshTokenMarker: \"marker\",\n scopes: [\"api:read-data\"],\n });\n\n await expectRedirectToMultipass(\n client(),\n );\n });\n\n it(\"should try to refresh if refresh markers match and requested scopes are equal\", async () => {\n setupLocalState({\n refresh_token: \"refreshToken\",\n refreshTokenMarker: \"marker\",\n requestedScopes: \"api:admin-read api:datasets-read\",\n });\n\n setupClient({\n ...BASE_CLIENT_ARGS,\n refreshTokenMarker: \"marker\",\n scopes: [\"api:datasets-read\", \"api:admin-read\"],\n });\n\n hoistedMocks.makeTokenAndSaveRefresh.mockImplementationOnce(\n () => ({\n access_token: \"some token\",\n expires_at: Date.now(),\n expires_in: 10000,\n }),\n );\n\n const tokenPromise = client();\n\n await expect(tokenPromise).resolves.toEqual(\"some token\");\n\n expect(hoistedMocks.makeTokenAndSaveRefresh).toBeCalledTimes(1);\n });\n });\n\n describe.each<{\n name: string;\n currentUrl: URL;\n clientArgs: BaseClientArgs & {\n useHistory?: boolean;\n loginPage?: string;\n postLoginPage?: string;\n scopes?: string[];\n ctxPath?: string;\n };\n should: {\n redirectToLoginPage: boolean;\n };\n }>([\n {\n name: \"Basic Usage\",\n currentUrl: DEFAULT_CUR_URL,\n clientArgs: {\n ...BASE_CLIENT_ARGS,\n },\n should: {\n redirectToLoginPage: false,\n },\n },\n {\n name: \"Base w/ full loginPage and curUrl is root\",\n currentUrl: DEFAULT_CUR_URL,\n clientArgs: {\n ...BASE_CLIENT_ARGS,\n loginPage: fullLoginUrl.toString(),\n },\n should: {\n redirectToLoginPage: true,\n },\n },\n {\n name: \"Base w/ full loginPage and curUrl is login page\",\n currentUrl: fullLoginUrl,\n clientArgs: {\n ...BASE_CLIENT_ARGS,\n loginPage: fullLoginUrl.toString(),\n },\n should: {\n redirectToLoginPage: false,\n },\n },\n {\n name: \"Base w/ short loginPage and curUrl is root\",\n currentUrl: DEFAULT_CUR_URL,\n clientArgs: {\n ...BASE_CLIENT_ARGS,\n loginPage: \"/loginPage\",\n },\n should: {\n redirectToLoginPage: true,\n },\n },\n {\n name: \"Base w/ short loginPage and curUrl is loginPage\",\n currentUrl: new URL(\"/loginPage\", DEFAULT_CUR_URL),\n clientArgs: {\n ...BASE_CLIENT_ARGS,\n loginPage: \"/loginPage\",\n },\n should: {\n redirectToLoginPage: false,\n },\n },\n ])(\"$name\", ({ clientArgs, currentUrl, should }) => {\n beforeEach(() => {\n setupClient(clientArgs);\n setupWindowLocation(currentUrl.toString());\n });\n\n it(\"calls common with expected values\", () => {\n expect(vi.mocked(commonJs.common)).toHaveBeenCalledWith(\n expect.objectContaining({\n client_id: clientArgs.clientId,\n token_endpoint_auth_method: \"none\",\n }),\n commonJs.createAuthorizationServer(\n clientArgs.ctxPath ?? \"/multipass\",\n clientArgs.foundryUrl,\n ),\n expect.any(Function),\n expect.anything(),\n expect.any(Function),\n undefined,\n (clientArgs.scopes\n ?? [\n \"api:read-data\",\n \"api:write-data\",\n \"api:use-ontologies-read\",\n \"api:use-ontologies-write\",\n ]).sort().join(\" \"),\n undefined,\n );\n });\n\n describe.each<\n { localStorage: LocalStorageState; sessionStorage: SessionStorageState }\n >([\n {\n localStorage: {\n refresh_token: \"a-refresh-token\",\n requestedScopes: (clientArgs.scopes\n ?? [\n \"api:read-data\",\n \"api:write-data\",\n \"api:use-ontologies-read\",\n \"api:use-ontologies-write\",\n ]).sort().join(\" \"),\n },\n sessionStorage: {},\n },\n {\n localStorage: {},\n sessionStorage: {\n codeVerifier: \"hi\",\n state: \"mom\",\n oldUrl: \"https://someoldurl.local\",\n },\n },\n { localStorage: {}, sessionStorage: {} },\n ])(\"Initial Local State: %s\", (initialState) => {\n const ACCESS_TOKEN = (Math.random() + 1).toString(36).substring(7);\n\n beforeEach(() => {\n vi.mocked(commonJs.readLocal).mockImplementation(() =>\n initialState.localStorage\n );\n\n vi.mocked(commonJs.readSession).mockImplementation(() =>\n initialState.sessionStorage\n );\n\n hoistedMocks.makeTokenAndSaveRefresh.mockImplementation(\n () => ({\n access_token: ACCESS_TOKEN,\n expires_at: Date.now(),\n expires_in: 10000,\n }),\n );\n });\n\n if (\n Object.keys(initialState.localStorage).length === 0\n && Object.keys(initialState.sessionStorage).length === 0\n ) {\n if (should.redirectToLoginPage) {\n it(\"redirects to login page\", async () => {\n const tokenPromise = client!();\n expect(vi.mocked(commonJs.common)).toBeCalledTimes(1);\n\n if (should.redirectToLoginPage) {\n // expect save local\n await expect(tokenPromise).resolves.toBeUndefined();\n expect(mockSessionStorage.setItem).toBeCalledWith(\n `@osdk/oauth : refresh : ${clientArgs.clientId}`,\n JSON.stringify({ oldUrl: window.location.toString() }),\n );\n expect(mockWindow.history.replaceState).toHaveBeenCalledWith(\n {},\n \"\",\n clientArgs.loginPage,\n );\n return;\n }\n });\n } else {\n it(\"redirects to multipass\", async () => {\n const tokenPromise = client!();\n expect(vi.mocked(commonJs.common)).toBeCalledTimes(1);\n\n if (should.redirectToLoginPage) {\n // expect save local\n await expect(tokenPromise).resolves.toBeUndefined();\n expect(mockSessionStorage.setItem).toBeCalledWith(\n `@osdk/oauth : refresh : ${clientArgs.clientId}`,\n JSON.stringify({ oldUrl: window.location.toString() }),\n );\n\n expect(mockWindow.history.replaceState).toHaveBeenCalledWith(\n {},\n \"\",\n clientArgs.loginPage,\n );\n return;\n }\n\n await expectRedirectToMultipass(\n tokenPromise,\n );\n });\n }\n }\n\n if (initialState.sessionStorage.codeVerifier) {\n it(\"tries to auth with return results\", async () => {\n await expect(client()).resolves.toEqual(ACCESS_TOKEN);\n expect(hoistedMocks.makeTokenAndSaveRefresh).toHaveBeenCalledTimes(\n 1,\n );\n expect(hoistedMocks.makeTokenAndSaveRefresh).toHaveBeenCalledWith(\n undefined, // this is only because we didn't mock out the internals\n \"signIn\",\n );\n\n expect(mockWindow.history.replaceState).toHaveBeenCalledTimes(1);\n expect(mockWindow.history.replaceState).toBeCalledWith(\n expect.anything(),\n expect.anything(),\n initialState.sessionStorage.oldUrl,\n );\n });\n }\n\n if (initialState.localStorage.refresh_token) {\n it(\"refreshes\", async () => {\n await expect(client()).resolves.toEqual(ACCESS_TOKEN);\n\n expect(hoistedMocks.makeTokenAndSaveRefresh).toHaveBeenCalledTimes(\n 1,\n );\n expect(hoistedMocks.makeTokenAndSaveRefresh).toHaveBeenCalledWith(\n undefined, // this is only because we didn't mock out the internals\n \"refresh\",\n );\n });\n }\n });\n });\n\n describe(\"tokenStorage option\", () => {\n beforeEach(() => {\n setupWindowLocation(\"https://foundry.local\");\n setupLocalState({});\n vi.mocked(commonJs.readSession).mockImplementation(() => ({}));\n // getStorage() checks process.env.TARGET to determine if we're in a browser\n vi.stubGlobal(\"process\", { env: { TARGET: \"browser\" } });\n });\n\n afterEach(() => {\n vi.unstubAllGlobals();\n // Re-stub the globals that the outer describe needs\n vi.stubGlobal(\"window\", mockWindow);\n vi.stubGlobal(\"localStorage\", mockLocalStorage);\n vi.stubGlobal(\"sessionStorage\", mockSessionStorage);\n });\n\n it(\"should pass localStorage to common when tokenStorage is 'localStorage'\", () => {\n createPublicOauthClient(\n BASE_CLIENT_ARGS.clientId,\n BASE_CLIENT_ARGS.foundryUrl,\n BASE_CLIENT_ARGS.redirectUrl,\n { tokenStorage: \"localStorage\" },\n );\n\n // common() is called with 8 args, the last one being the storage\n const lastArg = vi.mocked(commonJs.common).mock.calls[0][7];\n expect(lastArg).toBe(mockLocalStorage);\n });\n\n it(\"should pass sessionStorage to common when tokenStorage is 'sessionStorage'\", () => {\n createPublicOauthClient(\n BASE_CLIENT_ARGS.clientId,\n BASE_CLIENT_ARGS.foundryUrl,\n BASE_CLIENT_ARGS.redirectUrl,\n { tokenStorage: \"sessionStorage\" },\n );\n\n const lastArg = vi.mocked(commonJs.common).mock.calls[0][7];\n expect(lastArg).toBe(mockSessionStorage);\n });\n\n it(\"should pass undefined to common when tokenStorage is 'none'\", () => {\n createPublicOauthClient(\n BASE_CLIENT_ARGS.clientId,\n BASE_CLIENT_ARGS.foundryUrl,\n BASE_CLIENT_ARGS.redirectUrl,\n { tokenStorage: \"none\" },\n );\n\n const lastArg = vi.mocked(commonJs.common).mock.calls[0][7];\n expect(lastArg).toBeUndefined();\n });\n\n it(\"should not include offline_access scope when tokenStorage is 'none'\", async () => {\n const client = createPublicOauthClient(\n BASE_CLIENT_ARGS.clientId,\n BASE_CLIENT_ARGS.foundryUrl,\n BASE_CLIENT_ARGS.redirectUrl,\n { tokenStorage: \"none\" },\n );\n\n // Trigger the auth flow - this should redirect to multipass\n await expect(client()).rejects.toThrowError(\"Unable to redirect\");\n\n expect(mockWindow.location.assign).toHaveBeenCalledOnce();\n\n const url = new URL(mockWindow.location.assign.mock.calls[0][0]);\n const scope = url.searchParams.get(\"scope\");\n\n // Should NOT include offline_access\n expect(scope).not.toContain(\"offline_access\");\n // Should still include the regular scopes\n expect(scope).toContain(\"api:read-data\");\n });\n\n it(\"should pass localStorage to common when tokenStorage is not provided\", () => {\n createPublicOauthClient(\n BASE_CLIENT_ARGS.clientId,\n BASE_CLIENT_ARGS.foundryUrl,\n BASE_CLIENT_ARGS.redirectUrl,\n );\n const lastArg = vi.mocked(commonJs.common).mock.calls[0][7];\n expect(lastArg).toBe(mockLocalStorage);\n });\n\n it(\"should include offline_access scope when tokenStorage is 'localStorage'\", async () => {\n const client = createPublicOauthClient(\n BASE_CLIENT_ARGS.clientId,\n BASE_CLIENT_ARGS.foundryUrl,\n BASE_CLIENT_ARGS.redirectUrl,\n { tokenStorage: \"localStorage\" },\n );\n\n await expect(client()).rejects.toThrowError(\"Unable to redirect\");\n\n const url = new URL(mockWindow.location.assign.mock.calls[0][0]);\n const scope = url.searchParams.get(\"scope\");\n\n expect(scope).toContain(\"offline_access\");\n });\n\n it(\"should include offline_access scope when tokenStorage is 'sessionStorage'\", async () => {\n const client = createPublicOauthClient(\n BASE_CLIENT_ARGS.clientId,\n BASE_CLIENT_ARGS.foundryUrl,\n BASE_CLIENT_ARGS.redirectUrl,\n { tokenStorage: \"sessionStorage\" },\n );\n\n await expect(client()).rejects.toThrowError(\"Unable to redirect\");\n\n const url = new URL(mockWindow.location.assign.mock.calls[0][0]);\n const scope = url.searchParams.get(\"scope\");\n\n expect(scope).toContain(\"offline_access\");\n });\n\n it(\"should not attempt to read from storage when tokenStorage is 'none'\", async () => {\n vi.mocked(commonJs.readLocal).mockClear();\n\n const client = createPublicOauthClient(\n BASE_CLIENT_ARGS.clientId,\n BASE_CLIENT_ARGS.foundryUrl,\n BASE_CLIENT_ARGS.redirectUrl,\n { tokenStorage: \"none\" },\n );\n\n await expect(client()).rejects.toThrowError(\"Unable to redirect\");\n\n expect(vi.mocked(commonJs.readLocal)).not.toHaveBeenCalled();\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- {"mappings":"","names":[],"sources":["../../src/AuthorizationServer.test.ts"],"version":3,"file":"AuthorizationServer.test.d.ts"}
@@ -1 +0,0 @@
1
- {"mappings":"","names":[],"sources":["../../../src/__tests__/createPublicOauthClient.test.ts"],"version":3,"file":"createPublicOauthClient.test.d.ts"}
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- {"mappings":"","names":[],"sources":["../../src/common.test.ts"],"version":3,"file":"common.test.d.ts"}
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- {"mappings":"","names":[],"sources":["../../src/createAuthlessClient.test.ts"],"version":3,"file":"createAuthlessClient.test.d.ts"}
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- {"mappings":"","names":[],"sources":["../../src/publicOauth.test.ts"],"version":3,"file":"publicOauth.test.d.ts"}