{"version":3,"file":"D8jjl_OS.mjs","sources":["../../../../../../node_modules/svelte-persisted-store/dist/index.js","../../../../../../src/lib/oauth.ts"],"sourcesContent":["// index.ts\nimport { writable as internal } from \"svelte/store\";\nvar stores = {\n  local: {},\n  session: {}\n};\nfunction getStorage(type) {\n  return type === \"local\" ? localStorage : sessionStorage;\n}\nfunction writable(key, initialValue, options) {\n  console.warn(\"writable() has been deprecated. Please use persisted() instead.\\n\\nchange:\\n\\nimport { writable } from 'svelte-persisted-store'\\n\\nto:\\n\\nimport { persisted } from 'svelte-persisted-store'\");\n  return persisted(key, initialValue, options);\n}\nfunction persisted(key, initialValue, options) {\n  var _a, _b, _c, _d, _e, _f, _g, _h;\n  if (options == null ? void 0 : options.onError) console.warn(\"onError has been deprecated. Please use onWriteError instead\");\n  const serializer = (_a = options == null ? void 0 : options.serializer) != null ? _a : JSON;\n  const storageType = (_b = options == null ? void 0 : options.storage) != null ? _b : \"local\";\n  const syncTabs = (_c = options == null ? void 0 : options.syncTabs) != null ? _c : true;\n  const onWriteError = (_e = (_d = options == null ? void 0 : options.onWriteError) != null ? _d : options == null ? void 0 : options.onError) != null ? _e : (e) => console.error(`Error when writing value from persisted store \"${key}\" to ${storageType}`, e);\n  const onParseError = (_f = options == null ? void 0 : options.onParseError) != null ? _f : (newVal, e) => console.error(`Error when parsing ${newVal ? '\"' + newVal + '\"' : \"value\"} from persisted store \"${key}\"`, e);\n  const beforeRead = (_g = options == null ? void 0 : options.beforeRead) != null ? _g : (val) => val;\n  const beforeWrite = (_h = options == null ? void 0 : options.beforeWrite) != null ? _h : (val) => val;\n  const browser = typeof window !== \"undefined\" && typeof document !== \"undefined\";\n  const storage = browser ? getStorage(storageType) : null;\n  function updateStorage(key2, value) {\n    const newVal = beforeWrite(value);\n    try {\n      storage == null ? void 0 : storage.setItem(key2, serializer.stringify(newVal));\n    } catch (e) {\n      onWriteError(e);\n    }\n  }\n  function maybeLoadInitial() {\n    function serialize(json2) {\n      try {\n        return serializer.parse(json2);\n      } catch (e) {\n        onParseError(json2, e);\n      }\n    }\n    const json = storage == null ? void 0 : storage.getItem(key);\n    if (json == null) return initialValue;\n    const serialized = serialize(json);\n    if (serialized == null) return initialValue;\n    const newVal = beforeRead(serialized);\n    return newVal;\n  }\n  if (!stores[storageType][key]) {\n    const initial = maybeLoadInitial();\n    const store = internal(initial, (set2) => {\n      if (browser && storageType == \"local\" && syncTabs) {\n        const handleStorage = (event) => {\n          if (event.key === key && event.newValue) {\n            let newVal;\n            try {\n              newVal = serializer.parse(event.newValue);\n            } catch (e) {\n              onParseError(event.newValue, e);\n              return;\n            }\n            const processedVal = beforeRead(newVal);\n            set2(processedVal);\n          }\n        };\n        window.addEventListener(\"storage\", handleStorage);\n        return () => window.removeEventListener(\"storage\", handleStorage);\n      }\n    });\n    const { subscribe, set } = store;\n    stores[storageType][key] = {\n      set(value) {\n        set(value);\n        updateStorage(key, value);\n      },\n      update(callback) {\n        return store.update((last) => {\n          const value = callback(last);\n          updateStorage(key, value);\n          return value;\n        });\n      },\n      reset() {\n        this.set(initialValue);\n      },\n      subscribe\n    };\n  }\n  return stores[storageType][key];\n}\nexport {\n  persisted,\n  writable\n};\n//# sourceMappingURL=index.js.map","import * as env from \"$env/static/public\";\nimport { persisted } from \"svelte-persisted-store\";\nimport { derived, readable } from \"svelte/store\";\n\n// eslint-disable-next-line ts/ban-ts-comment\n// @ts-ignore\nconst client_id = env.PUBLIC_GITHUB_CLIENT_ID;\n\nconst SCOPES = \"read:user,read:org,repo\";\n\nexport function getOauthUrl(origin: string) {\n  const url = new URL(\"https://github.com/login/oauth/authorize\");\n  url.searchParams.set(\"client_id\", client_id);\n  url.searchParams.set(\"redirect_uri\", new URL(\"/oauth\", origin).href);\n  url.searchParams.set(\"scope\", SCOPES);\n  return url.href;\n}\n\nexport function login() {\n  if (!client_id)\n    return;\n\n  sessionStorage.setItem(\"continue\", location.href);\n  location.replace(getOauthUrl(location.origin));\n}\n\nexport const accessToken = persisted<string | undefined>(`gh-${SCOPES}`, undefined);\n\nexport const canLogin = client_id ? derived(accessToken, $accessToken => !$accessToken) : readable(false);\n"],"names":["stores","getStorage","type","persisted","key","initialValue","options","_a","_b","_c","_d","_e","_f","_g","_h","serializer","storageType","syncTabs","onWriteError","e","onParseError","newVal","beforeRead","val","beforeWrite","browser","storage","updateStorage","key2","value","maybeLoadInitial","serialize","json2","json","serialized","initial","store","internal","set2","handleStorage","event","processedVal","subscribe","set","callback","last","client_id","env.PUBLIC_GITHUB_CLIENT_ID","SCOPES","getOauthUrl","origin","url","login","accessToken","canLogin","derived","$accessToken"],"mappings":"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","x_google_ignoreList":[0]}