sveltekit-firebase-helpers 0.0.8 → 0.0.10

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/README.md CHANGED
@@ -109,32 +109,6 @@ export const handle = createProxyHandle(
109
109
  )
110
110
  ```
111
111
 
112
- #### Combined Handle
113
-
114
- An alternative is to use a single combined `createHandle` function that will add each individual handle if the property it needs is included.
115
-
116
- So pass the `auth` instance (`firebase-admin/auth`) and it will add the Auth Handle. Pass the `options` object and it will add the Options Handle. Pass the `auth_domain` and the Proxy Handle will be added.
117
-
118
- ```ts
119
- import { env } from '$env/dynamic/public'
120
- import { createHandle } from 'sveltekit-firebase-helpers'
121
- import { options } from './routes/firebase'
122
- import { auth } from './routes/firebase-server'
123
-
124
- const auth_domain = env.PUBLIC_FIREBASE_AUTH_DOMAIN
125
-
126
- // optional additional http response headers
127
- const init = { 'Cross-Origin-Embedder-Policy': 'require-corp' }
128
-
129
- export const handle = createHandle({
130
- auth,
131
- options,
132
- max_age: 86400,
133
- auth_domain,
134
- init,
135
- })
136
- ```
137
-
138
112
  ### Service Worker
139
113
 
140
114
  To automatically add the `Authentication Bearer [idToken]` http header to each server request, use the `addFirebaseAuth` method in your service worker. If running against the Firebase Auth Emulator pass that as a separate `auth_emulator` parameter. The service-worker code will automatically request and use the `/__/firebase/init.json` endpoint provided by the Options Handle above so it needs to be added to the Server Hooks.
package/dist/index.d.ts CHANGED
@@ -11,14 +11,6 @@ declare function createOptionsHandle(options: FirebaseOptions, max_age?: number)
11
11
 
12
12
  declare function createProxyHandle(auth_domain: string, init?: HeadersInit): Handle;
13
13
 
14
- declare function createHandle(config: {
15
- auth?: Auth$1;
16
- options?: FirebaseOptions;
17
- max_age?: number;
18
- auth_domain?: string;
19
- init?: HeadersInit;
20
- }): Handle;
21
-
22
14
  declare global {
23
15
  namespace App {
24
16
  interface Locals {
@@ -32,4 +24,4 @@ declare function addFirebaseAuth(config?: {
32
24
  auth_emulator?: string;
33
25
  }): void;
34
26
 
35
- export { addFirebaseAuth, createAuthHandle, createHandle, createOptionsHandle, createProxyHandle, syncAuthToken };
27
+ export { addFirebaseAuth, createAuthHandle, createOptionsHandle, createProxyHandle, syncAuthToken };
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- import{getIdToken as y}from"firebase/auth";async function j(t){let n=t.currentUser?await y(t.currentUser,!0):null,{serviceWorker:s}=navigator,{controller:o}=s;o&&await new Promise(u=>{s.addEventListener("message",()=>u(),{once:!0}),o.postMessage({type:"useToken",useToken:n})})}function h(t){return async({event:s,resolve:o})=>{let{locals:u,request:c}=s,r=c.headers.get("Authorization")?.split("Bearer ")[1];if(r)try{u.user=await t.verifyIdToken(r)}catch(i){console.error(i)}return o(s)}}import{json as k}from"@sveltejs/kit";function l(t,n=300){return async({event:o,resolve:u})=>{let{request:c,setHeaders:e,url:r}=o;return c.method==="GET"&&r.pathname.startsWith("/__/firebase/init.json")?(n&&e({"Cache-Control":`public, max-age: ${n}`}),k(t)):u(o)}}function m(t,n){return async({event:o,resolve:u})=>{let{request:c,url:e}=o;if(c.method==="GET"&&e.pathname.startsWith("/__/auth/")){e.host=t,e.port="443";let r=await fetch(e,{headers:{"Accept-Encoding":"identity"}}),i=await r.text(),a=new Headers({...n,"Cache-Control":r.headers.get("Cache-Control"),"Content-Type":r.headers.get("Content-Type"),Vary:"accept-encoding"});return new Response(i,{headers:a})}return u(o)}}import{sequence as H}from"@sveltejs/kit/hooks";function P(t){let n=[];return t.auth&&n.push(h(t.auth)),t.options&&n.push(l(t.options,t.max_age)),t.auth_domain&&n.push(m(t.auth_domain,t.init)),H(...n)}import{initializeApp as T}from"firebase/app";import{getIdToken as x,initializeAuth as w,connectAuthEmulator as A,indexedDBLocalPersistence as b}from"firebase/auth";function B(t){let n=new Promise(async(e,r)=>{let a=await(await fetch("/__/firebase/init.json")).json(),p=T(a),d=w(p,{persistence:[b]});t?.auth_emulator&&A(d,t.auth_emulator),await d.authStateReady(),e(d)}),s,o;self.addEventListener("message",e=>{function r(){self.clients.matchAll({}).then(function(i){i&&i.length&&i[0].postMessage({ack:!0})})}if(e.data)switch(e.data.type){case"useToken":s=e.data.useToken,r(),o&&self.clearTimeout(o),o=self.setTimeout(()=>s=void 0,5e3);break}});async function u(){let e=await n;if(e.currentUser)try{return await x(e.currentUser)}catch{return null}else return null}async function c(e){try{if(e.method!=="GET")if(e.headers.get("Content-Type")?.indexOf("json")!==-1){let r=await e.json();return JSON.stringify(r)}else return e.text()}catch{}}self.addEventListener("fetch",e=>{if(new URL(e.request.url).origin!==location.origin)return;async function i(){let a=e.request,p=s===void 0?await u():s;if(p){let d=new Headers(a.headers);d.append("Authorization","Bearer "+p);let f=await c(a);try{a=new Request(a.url,{method:a.method,headers:d,mode:"same-origin",credentials:a.credentials,cache:a.cache,redirect:a.redirect,referrer:a.referrer,body:f})}catch{}}return fetch(a)}e.respondWith(i())})}export{B as addFirebaseAuth,h as createAuthHandle,P as createHandle,l as createOptionsHandle,m as createProxyHandle,j as syncAuthToken};
1
+ import{getIdToken as p}from"firebase/auth";async function A(s){let c=s.currentUser?await p(s.currentUser,!0):null,{serviceWorker:a}=navigator,{controller:o}=a;o&&await new Promise(u=>{a.addEventListener("message",()=>u(),{once:!0}),o.postMessage({type:"useToken",useToken:c})})}function H(s){return async({event:a,resolve:o})=>{let{locals:u,request:t}=a,r=t.headers.get("Authorization")?.split("Bearer ")[1];if(r)try{u.user=await s.verifyIdToken(r)}catch(e){console.error(e)}return o(a)}}import{json as f}from"@sveltejs/kit";function _(s,c=300){return async({event:o,resolve:u})=>{let{request:t,setHeaders:n,url:r}=o;return t.method==="GET"&&r.pathname.startsWith("/__/firebase/init.json")?(c&&n({"Cache-Control":`public, max-age: ${c}`}),f(s)):u(o)}}function C(s,c){return async({event:o,resolve:u})=>{let{request:t,url:n}=o;if(t.method==="GET"&&n.pathname.startsWith("/__/auth/")){n.host=s,n.port="443";let r=await fetch(n,{headers:{"Accept-Encoding":"identity"}}),e=await r.text(),i=new Headers({...c,"Cache-Control":r.headers.get("Cache-Control"),"Content-Type":r.headers.get("Content-Type"),Vary:"accept-encoding"});return new Response(e,{headers:i})}return u(o)}}import{initializeApp as m}from"firebase/app";import{getIdToken as y,initializeAuth as k,connectAuthEmulator as T,indexedDBLocalPersistence as w}from"firebase/auth";function U(s){let c=new Promise(async(t,n)=>{let r="/__/firebase/init.json",e=await caches.open("sveltekit-firebase-helpers"),i=await e.match(r);i||(i=await fetch(r),i.ok&&e.put(r,i.clone()));let d=await i.json(),h=m(d),l=k(h,{persistence:[w]});s?.auth_emulator&&T(l,s.auth_emulator),await l.authStateReady(),t(l)}),a,o;self.addEventListener("message",t=>{function n(){self.clients.matchAll({}).then(function(r){r&&r.length&&r[0].postMessage({ack:!0})})}t.data&&t.data.type==="useToken"&&(a=t.data.useToken,n(),o&&self.clearTimeout(o),o=self.setTimeout(()=>a=void 0,5e3))});async function u(){let t=await c;if(t.currentUser)try{return await y(t.currentUser)}catch{return null}else return null}self.addEventListener("fetch",t=>{let n=new URL(t.request.url);if(n.origin!==location.origin||n.pathname.startsWith("/_app/"))return;async function r(){let e=t.request,i=a===void 0?await u():a;if(i){let d=new Headers(e.headers);d.append("Authorization","Bearer "+i);let h=e.method!=="GET"&&e.method!=="HEAD"?await e.blob():void 0;try{e=new Request(e.url,{method:e.method,headers:d,mode:e.mode,credentials:e.credentials,cache:e.cache,redirect:e.redirect,referrer:e.referrer,keepalive:e.keepalive,integrity:e.integrity,body:h})}catch{}}return fetch(e)}t.respondWith(r())})}export{U as addFirebaseAuth,H as createAuthHandle,_ as createOptionsHandle,C as createProxyHandle,A as syncAuthToken};
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "sveltekit-firebase-helpers",
3
3
  "description": "Helpers for using Firebase with SvelteKit",
4
- "version": "0.0.8",
4
+ "version": "0.0.10",
5
5
  "files": [
6
6
  "dist",
7
7
  "!dist/**/*.test.*",
@@ -20,34 +20,34 @@
20
20
  }
21
21
  },
22
22
  "peerDependencies": {
23
+ "@sveltejs/kit": "^2.0.0",
23
24
  "firebase": "^11.0.0 || ^12.0.0",
24
- "firebase-admin": "^13.0.0",
25
- "@sveltejs/kit": "^2.0.0"
25
+ "firebase-admin": "^13.0.0"
26
26
  },
27
27
  "devDependencies": {
28
- "@sveltejs/adapter-auto": "^6.1.0",
29
- "@sveltejs/kit": "^2.42.2",
30
- "@sveltejs/vite-plugin-svelte": "^6.2.0",
28
+ "@sveltejs/adapter-node": "^5.5.1",
29
+ "@sveltejs/kit": "^2.50.0",
30
+ "@sveltejs/vite-plugin-svelte": "^6.2.4",
31
31
  "esm-env": "^1.2.2",
32
- "firebase": "^12.3.0",
33
- "firebase-admin": "^13.5.0",
34
- "prettier": "^3.6.2",
35
- "prettier-plugin-svelte": "^3.4.0",
36
- "publint": "^0.3.13",
37
- "svelte": "^5.39.3",
38
- "svelte-check": "^4.3.1",
39
- "tsup": "^8.5.0",
40
- "typescript": "^5.9.2",
41
- "vite": "^6.3.6",
32
+ "firebase": "^12.8.0",
33
+ "firebase-admin": "^13.6.0",
34
+ "prettier": "^3.8.1",
35
+ "prettier-plugin-svelte": "^3.4.1",
36
+ "publint": "^0.3.17",
37
+ "svelte": "^5.47.1",
38
+ "svelte-check": "^4.3.5",
39
+ "tsup": "^8.5.1",
40
+ "typescript": "^5.9.3",
41
+ "vite": "^6.4.1",
42
42
  "vite-plugin-devtools-json": "^1.0.0",
43
- "vite-plugin-mkcert": "^1.17.8"
43
+ "vite-plugin-mkcert": "^1.17.9"
44
44
  },
45
45
  "keywords": [
46
46
  "svelte"
47
47
  ],
48
48
  "scripts": {
49
49
  "dev": "vite dev",
50
- "build": "vite build && npm run prepack",
50
+ "build": "npm run prepack && vite build",
51
51
  "preview": "vite preview",
52
52
  "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
53
53
  "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch",