@fluixi/session 1.0.0-alpha.53
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/LICENSE +21 -0
- package/README.md +39 -0
- package/dist/index.cjs +1 -0
- package/dist/index.d.ts +166 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +275 -0
- package/dist/index.mjs +1 -0
- package/dist/tsconfig.lib.tsbuildinfo +1 -0
- package/package.json +52 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Fluixi
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# @fluixi/session
|
|
2
|
+
|
|
3
|
+
The **client-side** session lifecycle as a reusable primitive. Bring a small backend
|
|
4
|
+
**adapter**; `createSession` owns the rest: token/user signals, `isAuthenticated`,
|
|
5
|
+
loading/error state, SSR-safe persistence (via `@fluixi/core`'s universal `storage`),
|
|
6
|
+
the hydrate-on-load flow, and **automatic token refresh** before expiry.
|
|
7
|
+
|
|
8
|
+
> Looking for the full server-first auth engine (OAuth, MFA, organizations, RBAC,
|
|
9
|
+
> database adapters)? That's `@fluixi/auth`. This package is the lightweight,
|
|
10
|
+
> bring-your-own-backend session tier.
|
|
11
|
+
|
|
12
|
+
```ts
|
|
13
|
+
import { createSession } from '@fluixi/session';
|
|
14
|
+
|
|
15
|
+
const session = createSession<Customer, { email: string; password: string }>({
|
|
16
|
+
// adapter — the backend-specific bits you provide:
|
|
17
|
+
login: (c) => authApi.login(c.email, c.password), // → token | { token, expiresAt }
|
|
18
|
+
fetchUser: () => customerApi.me(),
|
|
19
|
+
logout: () => authApi.logout(),
|
|
20
|
+
register: (d) => authApi.register(d), // optional
|
|
21
|
+
refresh: (t) => authApi.refresh(t), // optional → auto-refresh
|
|
22
|
+
getExpiry: (t) => decodeJwt(t).exp * 1000, // optional
|
|
23
|
+
|
|
24
|
+
// hooks (optional):
|
|
25
|
+
onLogin, onLogout, onError, onRefresh,
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
session.user(); // reactive
|
|
29
|
+
session.isAuthenticated();
|
|
30
|
+
session.isLoading();
|
|
31
|
+
session.error();
|
|
32
|
+
await session.login(creds); // adapter → store token → fetchUser → persist → onLogin
|
|
33
|
+
await session.hydrate(); // restore from stored token on load
|
|
34
|
+
await session.logout();
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
Provide `refresh` + (`getExpiry` or an `expiresAt` from `login`) and the session
|
|
38
|
+
schedules a refresh `refreshSkewMs` (default 60s) before the token expires — client
|
|
39
|
+
only, never during SSR.
|
package/dist/index.cjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var v=Object.defineProperty;var q=Object.getOwnPropertyDescriptor;var M=Object.getOwnPropertyNames;var N=Object.prototype.hasOwnProperty;var Y=(e,t)=>{for(var o in t)v(e,o,{get:t[o],enumerable:!0})},J=(e,t,o,u)=>{if(t&&typeof t=="object"||typeof t=="function")for(let l of M(t))!N.call(e,l)&&l!==o&&v(e,l,{get:()=>t[l],enumerable:!(u=q(t,l))||u.enumerable});return e};var D=e=>J(v({},"__esModule",{value:!0}),e);var B={};Y(B,{createFetchGuard:()=>w,createSession:()=>j,installGlobalFetchGuard:()=>S});module.exports=D(B);var c=require("@fluixi/reactive/signal"),n=require("@fluixi/core"),X=e=>e instanceof Request?e.url:e instanceof URL?e.href:String(e);function w(e){let t=e.fetch??globalThis.fetch.bind(globalThis),o=e.status??401,u=!1,l=(async(i,p)=>{let d=await t(i,p);return d.status===o&&!u&&(!e.shouldHandle||e.shouldHandle(X(i),d))&&(u=!0,e.onUnauthorized()),d});return l.reset=()=>{u=!1},l}function S(e){if(!n.isClient)return()=>{};let t=globalThis.fetch.bind(globalThis),o=w({...e,fetch:t});return globalThis.fetch=o,S._reset=o.reset,()=>{globalThis.fetch=t}}var b=e=>typeof e=="string"?{token:e}:e;function j(e){let t=e.storageKeys?.token??"fx_session_token",o=e.storageKeys?.user??"fx_session_user",u=e.storageKeys?.expiry??"fx_session_exp",l=e.refreshSkewMs??6e4,i=e.access,p=()=>{try{return JSON.parse(n.storage.getItem(o)??"null")}catch{return null}},[d,T]=(0,c.createSignal)(p()),[f,R]=(0,c.createSignal)(n.storage.getItem(t)),[A,E]=(0,c.createSignal)(!1),[z,C]=(0,c.createSignal)(null),[I,P]=(0,c.createSignal)(!1),G=(0,c.createMemo)(()=>{let s=i?.getRole?.(d());return s==null?[]:Array.isArray(s)?s:[s]}),O=(0,c.createMemo)(()=>{if(!i)return;let s=G();if(typeof i.permissions=="function")return i.permissions(d(),s)??i.guest;let r=i.permissions,a=s.map(k=>r[k]).filter(k=>k!=null);return a.length===0?i.guest:a.length===1?a[0]:i.merge?i.merge(a):a[a.length-1]}),_=i?.match??((s,r)=>typeof r=="function"?r(s):!1),H=s=>{let r=O();return r!=null?_(r,s,d()):!1},K=(0,c.createMemo)(()=>A()?"authenticating":I()?"expired":z()?"error":f()?"authenticated":"idle"),g=null,F=()=>{g&&(clearTimeout(g),g=null)},Q=s=>{if(F(),!n.isClient||!e.refresh||!s)return;let r=s-Date.now()-l;g=setTimeout(()=>{L()},Math.max(0,r))},U=s=>{R(s.token),n.storage.setItem(t,s.token);let r=s.expiresAt??e.getExpiry?.(s.token)??void 0;r?n.storage.setItem(u,String(r)):n.storage.removeItem(u),Q(r)},m=s=>{T(()=>s),n.storage.setItem(o,JSON.stringify(s))},y=async(s,r)=>{E(!0),C(null);try{return await r()}catch(a){throw C(a),e.onError?.(a,s),a}finally{E(!1)}};async function L(){let s=f();!e.refresh||!s||await y("refresh",async()=>{let r=b(await e.refresh(s));U(r),e.onRefresh?.(r.token)})}let h;if(e.unauthorized){let s=e.unauthorized.onExpiry??(()=>{x.logout()}),r=()=>{P(!0),e.onExpired?.(),s()};h=w({status:e.unauthorized.status,shouldHandle:e.unauthorized.shouldHandle,onUnauthorized:r}),e.unauthorized.installGlobal&&S({status:e.unauthorized.status,shouldHandle:e.unauthorized.shouldHandle,onUnauthorized:r})}let x={user:d,token:f,isAuthenticated:()=>f()!==null,isLoading:A,error:z,status:K,expired:I,roles:G,permissions:O,can:H,guardedFetch:h,async login(s){await y("login",async()=>{U(b(await e.login(s)));let r=await e.fetchUser(f());m(r),P(!1),h?.reset(),e.onLogin?.(r)})},async register(s){await y("register",async()=>{let r=await e.register?.(s);if(r){U(b(r));let a=await e.fetchUser(f());m(a),P(!1),h?.reset(),e.onLogin?.(a)}})},async logout(){try{await e.logout?.()}catch{}F(),n.storage.removeItem(t),n.storage.removeItem(o),n.storage.removeItem(u),R(null),T(null),h?.reset(),e.onLogout?.()},async hydrate(){let s=n.storage.getItem(t);if(!s)return;f()||R(s);let r=n.storage.getItem(u);if(Q(r?Number(r):e.getExpiry?.(s)??void 0),!d())try{m(await y("hydrate",()=>e.fetchUser(s)))}catch{await x.logout()}},refresh:L,updateUser(s){m(s)}};return x}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fluixi/session — the client session lifecycle + access control as reusable primitives.
|
|
3
|
+
*
|
|
4
|
+
* You provide a small backend ADAPTER (login / fetchUser / logout / optional refresh);
|
|
5
|
+
* the framework owns token + user signals, a status state-machine, persistence (SSR-safe
|
|
6
|
+
* via @fluixi/core's universal `storage`), the hydrate-on-load flow, automatic refresh
|
|
7
|
+
* before expiry, role/permission derivation, and an unauthorized (session-expiry) guard.
|
|
8
|
+
* Apps stop rewriting the same ~150 lines of session glue. (The server-first auth engine —
|
|
9
|
+
* OAuth / MFA / orgs / cookies — is @fluixi/auth.)
|
|
10
|
+
*
|
|
11
|
+
* ── SECURITY BOUNDARY ─────────────────────────────────────────────────────────
|
|
12
|
+
* `roles()`, `permissions()` and `can()` are a CLIENT-SIDE UI affordance: they decide what
|
|
13
|
+
* to RENDER, never what is ALLOWED. A client can forge any role, so authorization MUST be
|
|
14
|
+
* enforced by the backend on every request. Read `can(...)` as "should I show this button",
|
|
15
|
+
* and let the server reject unauthorized calls regardless. The `unauthorized` guard below
|
|
16
|
+
* exists precisely because the server — not the client — is the authority.
|
|
17
|
+
*/
|
|
18
|
+
import { type Accessor } from '@fluixi/reactive/signal';
|
|
19
|
+
/** A token plus, optionally, its expiry as an epoch-ms timestamp. */
|
|
20
|
+
export interface TokenResult {
|
|
21
|
+
token: string;
|
|
22
|
+
expiresAt?: number;
|
|
23
|
+
}
|
|
24
|
+
/** The backend-specific bits you must (or may) provide. */
|
|
25
|
+
export interface SessionAdapter<U, C, R = unknown> {
|
|
26
|
+
/** Authenticate credentials → a raw token string or a {token, expiresAt}. */
|
|
27
|
+
login: (creds: C) => Promise<string | TokenResult>;
|
|
28
|
+
/** Fetch the current user given the active token. */
|
|
29
|
+
fetchUser: (token: string) => Promise<U>;
|
|
30
|
+
/** Invalidate the session on the backend (optional). */
|
|
31
|
+
logout?: () => Promise<void> | void;
|
|
32
|
+
/** Register an account (optional). Return a token to auto-login, or void. */
|
|
33
|
+
register?: (data: R) => Promise<string | TokenResult | void>;
|
|
34
|
+
/** Exchange the current token for a fresh one (optional → enables auto-refresh). */
|
|
35
|
+
refresh?: (token: string) => Promise<string | TokenResult>;
|
|
36
|
+
/** Derive expiry (epoch ms) from a token, e.g. decode a JWT `exp` (optional). */
|
|
37
|
+
getExpiry?: (token: string) => number | null;
|
|
38
|
+
}
|
|
39
|
+
export type Role = string;
|
|
40
|
+
/**
|
|
41
|
+
* Declarative role → permission mapping. `P` is YOUR permission shape — a nested capability
|
|
42
|
+
* object, a flat `Set`, a Better-Auth-style `{ resource: action[] }` statement, whatever you
|
|
43
|
+
* check against. `Q` is the QUERY you pass to `can()` — by default a predicate `(p) => bool`,
|
|
44
|
+
* but supply a `match` to use a declarative query instead (a `'resource:action'` string, an
|
|
45
|
+
* object, a CASL ability, …). The framework derives the active role(s), hands you the matching
|
|
46
|
+
* permission set, and runs your matcher; it does not prescribe either shape.
|
|
47
|
+
*/
|
|
48
|
+
export interface AccessControl<U, P, Q = (p: P) => boolean> {
|
|
49
|
+
/**
|
|
50
|
+
* Derive the user's role(s) from ANY user field — `u => u?.metadata?.access` returns
|
|
51
|
+
* whatever word lives there. Return one role, several, or null. Optional: omit it when
|
|
52
|
+
* `permissions` is a resolver that reads the user directly.
|
|
53
|
+
*/
|
|
54
|
+
getRole?: (user: U | null) => Role | Role[] | null | undefined;
|
|
55
|
+
/**
|
|
56
|
+
* Either a static role → permission map, OR a resolver that derives the permission set
|
|
57
|
+
* straight from the user (when access isn't a fixed matrix — e.g. computed from user
|
|
58
|
+
* flags / fields). The resolver also receives the derived roles.
|
|
59
|
+
*/
|
|
60
|
+
permissions: Record<Role, P> | ((user: U | null, roles: Role[]) => P | undefined);
|
|
61
|
+
/** Permissions for an unauthenticated / unknown-role user (default: undefined). */
|
|
62
|
+
guest?: P;
|
|
63
|
+
/** Combine permission sets when a user has multiple roles (default: last role wins). */
|
|
64
|
+
merge?: (sets: P[]) => P;
|
|
65
|
+
/**
|
|
66
|
+
* Interpret a `can(query)` call. Default: the query IS a predicate, run as
|
|
67
|
+
* `query(permissions)`. Override for declarative queries — `match: (perms, q: string) =>
|
|
68
|
+
* perms.has(q)` → `can('products:edit')`. The `user` is passed too, so a check can read a
|
|
69
|
+
* user field directly: `match: (_p, q, user) => user?.metadata?.access === q`.
|
|
70
|
+
*/
|
|
71
|
+
match?: (permissions: P, query: Q, user: U | null) => boolean;
|
|
72
|
+
}
|
|
73
|
+
export interface FetchGuardOptions {
|
|
74
|
+
/** The fetch to wrap (default: the global fetch). */
|
|
75
|
+
fetch?: typeof fetch;
|
|
76
|
+
/** Status that signals an expired/invalid session (default 401). */
|
|
77
|
+
status?: number;
|
|
78
|
+
/** Narrow which responses count as expiry — e.g. your API origin, minus the login route. */
|
|
79
|
+
shouldHandle?: (url: string, response: Response) => boolean;
|
|
80
|
+
/** Fired at most once until `reset()` — so one expired session isn't reported N times. */
|
|
81
|
+
onUnauthorized: () => void;
|
|
82
|
+
}
|
|
83
|
+
export type GuardedFetch = typeof fetch & {
|
|
84
|
+
reset: () => void;
|
|
85
|
+
};
|
|
86
|
+
/**
|
|
87
|
+
* Wrap a fetch so a chosen status (401) trips `onUnauthorized` once. Returns a NEW fetch —
|
|
88
|
+
* pass it to your SDK / data layer. Nothing global is mutated: this is the standards-clean
|
|
89
|
+
* way to react to an expired session. (For SDKs that only ever call the global `fetch`,
|
|
90
|
+
* `installGlobalFetchGuard` is the explicit escape hatch.)
|
|
91
|
+
*/
|
|
92
|
+
export declare function createFetchGuard(opts: FetchGuardOptions): GuardedFetch;
|
|
93
|
+
/**
|
|
94
|
+
* Replace the GLOBAL `fetch` with a guarded one. A deliberate global side effect — use it
|
|
95
|
+
* only when your SDK gives you no way to inject a custom fetch (e.g. Medusa's JS SDK).
|
|
96
|
+
* No-op on the server. Returns an uninstaller that restores the original fetch.
|
|
97
|
+
*/
|
|
98
|
+
export declare function installGlobalFetchGuard(opts: FetchGuardOptions): () => void;
|
|
99
|
+
export type SessionOp = 'login' | 'register' | 'hydrate' | 'refresh';
|
|
100
|
+
/** The lifecycle state. Derived; read it instead of juggling isLoading + flags by hand. */
|
|
101
|
+
export type SessionStatus = 'idle' | 'authenticating' | 'authenticated' | 'expired' | 'error';
|
|
102
|
+
export interface UnauthorizedOptions {
|
|
103
|
+
/** Status that means "session expired" (default 401). */
|
|
104
|
+
status?: number;
|
|
105
|
+
/** Narrow which responses count — e.g. only your API, excluding the login endpoint. */
|
|
106
|
+
shouldHandle?: (url: string, response: Response) => boolean;
|
|
107
|
+
/**
|
|
108
|
+
* Patch the GLOBAL fetch. Needed when your data layer always uses the global `fetch`
|
|
109
|
+
* (Medusa's SDK). Default false — prefer wiring `session.guardedFetch` into your SDK.
|
|
110
|
+
*/
|
|
111
|
+
installGlobal?: boolean;
|
|
112
|
+
/** What to do when the session expires (default: mark expired + logout). */
|
|
113
|
+
onExpiry?: () => void;
|
|
114
|
+
}
|
|
115
|
+
export interface SessionOptions<U, C, R = unknown, P = unknown, Q = (p: P) => boolean> extends SessionAdapter<U, C, R> {
|
|
116
|
+
/** localStorage keys (defaults: `fx_session_token` / `fx_session_user`). */
|
|
117
|
+
storageKeys?: {
|
|
118
|
+
token?: string;
|
|
119
|
+
user?: string;
|
|
120
|
+
expiry?: string;
|
|
121
|
+
};
|
|
122
|
+
/** Refresh this many ms BEFORE expiry (default 60_000). */
|
|
123
|
+
refreshSkewMs?: number;
|
|
124
|
+
/** Client-side RBAC — see the security note at the top of this file. */
|
|
125
|
+
access?: AccessControl<U, P, Q>;
|
|
126
|
+
/** React to server "session expired" (401) responses. */
|
|
127
|
+
unauthorized?: UnauthorizedOptions;
|
|
128
|
+
onLogin?: (user: U) => void;
|
|
129
|
+
onLogout?: () => void;
|
|
130
|
+
onRefresh?: (token: string) => void;
|
|
131
|
+
onExpired?: () => void;
|
|
132
|
+
onError?: (err: unknown, op: SessionOp) => void;
|
|
133
|
+
}
|
|
134
|
+
export interface Session<U, C, R = unknown, P = unknown, Q = (p: P) => boolean> {
|
|
135
|
+
user: Accessor<U | null>;
|
|
136
|
+
token: Accessor<string | null>;
|
|
137
|
+
isAuthenticated: Accessor<boolean>;
|
|
138
|
+
isLoading: Accessor<boolean>;
|
|
139
|
+
error: Accessor<unknown | null>;
|
|
140
|
+
/** Lifecycle state-machine value. */
|
|
141
|
+
status: Accessor<SessionStatus>;
|
|
142
|
+
/** True once the server rejected the token (401 via the unauthorized guard). */
|
|
143
|
+
expired: Accessor<boolean>;
|
|
144
|
+
/** The active user's role(s) (empty when unauthenticated / no `access`). */
|
|
145
|
+
roles: Accessor<Role[]>;
|
|
146
|
+
/** The active permission set (UI affordance only — see the security note). */
|
|
147
|
+
permissions: Accessor<P | undefined>;
|
|
148
|
+
/** Check the active permission set with your matcher (default: a predicate). `false` when there is none. */
|
|
149
|
+
can: (query: Q) => boolean;
|
|
150
|
+
login: (creds: C) => Promise<void>;
|
|
151
|
+
register: (data: R) => Promise<void>;
|
|
152
|
+
logout: () => Promise<void>;
|
|
153
|
+
/** Restore a session from the stored token (call once on client load). */
|
|
154
|
+
hydrate: () => Promise<void>;
|
|
155
|
+
/** Force a token refresh now (no-op without a `refresh` adapter). */
|
|
156
|
+
refresh: () => Promise<void>;
|
|
157
|
+
/** Update the cached user (e.g. after a profile edit). */
|
|
158
|
+
updateUser: (user: U) => void;
|
|
159
|
+
/** A 401-guarded fetch (present when `unauthorized` is configured) for SDKs that accept one. */
|
|
160
|
+
guardedFetch?: GuardedFetch;
|
|
161
|
+
}
|
|
162
|
+
export declare function createSession<U, C = {
|
|
163
|
+
email: string;
|
|
164
|
+
password: string;
|
|
165
|
+
}, R = unknown, P = unknown, Q = (p: P) => boolean>(options: SessionOptions<U, C, R, P, Q>): Session<U, C, R, P, Q>;
|
|
166
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,275 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fluixi/session — the client session lifecycle + access control as reusable primitives.
|
|
3
|
+
*
|
|
4
|
+
* You provide a small backend ADAPTER (login / fetchUser / logout / optional refresh);
|
|
5
|
+
* the framework owns token + user signals, a status state-machine, persistence (SSR-safe
|
|
6
|
+
* via @fluixi/core's universal `storage`), the hydrate-on-load flow, automatic refresh
|
|
7
|
+
* before expiry, role/permission derivation, and an unauthorized (session-expiry) guard.
|
|
8
|
+
* Apps stop rewriting the same ~150 lines of session glue. (The server-first auth engine —
|
|
9
|
+
* OAuth / MFA / orgs / cookies — is @fluixi/auth.)
|
|
10
|
+
*
|
|
11
|
+
* ── SECURITY BOUNDARY ─────────────────────────────────────────────────────────
|
|
12
|
+
* `roles()`, `permissions()` and `can()` are a CLIENT-SIDE UI affordance: they decide what
|
|
13
|
+
* to RENDER, never what is ALLOWED. A client can forge any role, so authorization MUST be
|
|
14
|
+
* enforced by the backend on every request. Read `can(...)` as "should I show this button",
|
|
15
|
+
* and let the server reject unauthorized calls regardless. The `unauthorized` guard below
|
|
16
|
+
* exists precisely because the server — not the client — is the authority.
|
|
17
|
+
*/
|
|
18
|
+
import { createSignal, createMemo } from '@fluixi/reactive/signal';
|
|
19
|
+
import { storage, isClient } from '@fluixi/core';
|
|
20
|
+
const requestUrl = (input) => input instanceof Request ? input.url : input instanceof URL ? input.href : String(input);
|
|
21
|
+
/**
|
|
22
|
+
* Wrap a fetch so a chosen status (401) trips `onUnauthorized` once. Returns a NEW fetch —
|
|
23
|
+
* pass it to your SDK / data layer. Nothing global is mutated: this is the standards-clean
|
|
24
|
+
* way to react to an expired session. (For SDKs that only ever call the global `fetch`,
|
|
25
|
+
* `installGlobalFetchGuard` is the explicit escape hatch.)
|
|
26
|
+
*/
|
|
27
|
+
export function createFetchGuard(opts) {
|
|
28
|
+
const base = opts.fetch ?? globalThis.fetch.bind(globalThis);
|
|
29
|
+
const status = opts.status ?? 401;
|
|
30
|
+
let tripped = false;
|
|
31
|
+
const guarded = (async (input, init) => {
|
|
32
|
+
const res = await base(input, init);
|
|
33
|
+
if (res.status === status && !tripped) {
|
|
34
|
+
if (!opts.shouldHandle || opts.shouldHandle(requestUrl(input), res)) {
|
|
35
|
+
tripped = true;
|
|
36
|
+
opts.onUnauthorized();
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
return res;
|
|
40
|
+
});
|
|
41
|
+
guarded.reset = () => {
|
|
42
|
+
tripped = false;
|
|
43
|
+
};
|
|
44
|
+
return guarded;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Replace the GLOBAL `fetch` with a guarded one. A deliberate global side effect — use it
|
|
48
|
+
* only when your SDK gives you no way to inject a custom fetch (e.g. Medusa's JS SDK).
|
|
49
|
+
* No-op on the server. Returns an uninstaller that restores the original fetch.
|
|
50
|
+
*/
|
|
51
|
+
export function installGlobalFetchGuard(opts) {
|
|
52
|
+
if (!isClient)
|
|
53
|
+
return () => { };
|
|
54
|
+
const original = globalThis.fetch.bind(globalThis);
|
|
55
|
+
const guarded = createFetchGuard({ ...opts, fetch: original });
|
|
56
|
+
globalThis.fetch = guarded;
|
|
57
|
+
installGlobalFetchGuard._reset = guarded.reset;
|
|
58
|
+
return () => {
|
|
59
|
+
globalThis.fetch = original;
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
const normalize = (r) => typeof r === 'string' ? { token: r } : r;
|
|
63
|
+
export function createSession(options) {
|
|
64
|
+
const TOKEN_KEY = options.storageKeys?.token ?? 'fx_session_token';
|
|
65
|
+
const USER_KEY = options.storageKeys?.user ?? 'fx_session_user';
|
|
66
|
+
const EXP_KEY = options.storageKeys?.expiry ?? 'fx_session_exp';
|
|
67
|
+
const skew = options.refreshSkewMs ?? 60_000;
|
|
68
|
+
const access = options.access;
|
|
69
|
+
const readUser = () => {
|
|
70
|
+
try {
|
|
71
|
+
return JSON.parse(storage.getItem(USER_KEY) ?? 'null');
|
|
72
|
+
}
|
|
73
|
+
catch {
|
|
74
|
+
return null;
|
|
75
|
+
}
|
|
76
|
+
};
|
|
77
|
+
const [user, setUser] = createSignal(readUser());
|
|
78
|
+
const [token, setTokenSig] = createSignal(storage.getItem(TOKEN_KEY));
|
|
79
|
+
const [isLoading, setLoading] = createSignal(false);
|
|
80
|
+
const [error, setError] = createSignal(null);
|
|
81
|
+
const [expired, setExpired] = createSignal(false);
|
|
82
|
+
// ── Derived access control ──────────────────────────────────────────────────
|
|
83
|
+
const roles = createMemo(() => {
|
|
84
|
+
const r = access?.getRole?.(user());
|
|
85
|
+
if (r == null)
|
|
86
|
+
return [];
|
|
87
|
+
return Array.isArray(r) ? r : [r];
|
|
88
|
+
});
|
|
89
|
+
const permissions = createMemo(() => {
|
|
90
|
+
if (!access)
|
|
91
|
+
return undefined;
|
|
92
|
+
const rs = roles();
|
|
93
|
+
// Resolver form: derive the set straight from the user (no fixed matrix).
|
|
94
|
+
if (typeof access.permissions === 'function')
|
|
95
|
+
return access.permissions(user(), rs) ?? access.guest;
|
|
96
|
+
// Record form: look the role(s) up in the matrix, merging when there are several.
|
|
97
|
+
const map = access.permissions;
|
|
98
|
+
const sets = rs.map((r) => map[r]).filter((s) => s != null);
|
|
99
|
+
if (sets.length === 0)
|
|
100
|
+
return access.guest;
|
|
101
|
+
if (sets.length === 1)
|
|
102
|
+
return sets[0];
|
|
103
|
+
return access.merge ? access.merge(sets) : sets[sets.length - 1];
|
|
104
|
+
});
|
|
105
|
+
// Default matcher: the query IS a predicate. A custom `match` swaps in declarative queries.
|
|
106
|
+
const matcher = access?.match ??
|
|
107
|
+
((p, q) => (typeof q === 'function' ? q(p) : false));
|
|
108
|
+
const can = (query) => {
|
|
109
|
+
const p = permissions();
|
|
110
|
+
return p != null ? matcher(p, query, user()) : false;
|
|
111
|
+
};
|
|
112
|
+
const status = createMemo(() => {
|
|
113
|
+
if (isLoading())
|
|
114
|
+
return 'authenticating';
|
|
115
|
+
if (expired())
|
|
116
|
+
return 'expired';
|
|
117
|
+
if (error())
|
|
118
|
+
return 'error';
|
|
119
|
+
return token() ? 'authenticated' : 'idle';
|
|
120
|
+
});
|
|
121
|
+
let refreshTimer = null;
|
|
122
|
+
const clearTimer = () => {
|
|
123
|
+
if (refreshTimer) {
|
|
124
|
+
clearTimeout(refreshTimer);
|
|
125
|
+
refreshTimer = null;
|
|
126
|
+
}
|
|
127
|
+
};
|
|
128
|
+
// Schedule an automatic refresh `skew` ms before the token expires. Client-only —
|
|
129
|
+
// never run timers during SSR. No-op without a `refresh` adapter or a known expiry.
|
|
130
|
+
const scheduleRefresh = (expiresAt) => {
|
|
131
|
+
clearTimer();
|
|
132
|
+
if (!isClient || !options.refresh || !expiresAt)
|
|
133
|
+
return;
|
|
134
|
+
const delay = expiresAt - Date.now() - skew;
|
|
135
|
+
refreshTimer = setTimeout(() => void doRefresh(), Math.max(0, delay));
|
|
136
|
+
};
|
|
137
|
+
const persistToken = (t) => {
|
|
138
|
+
setTokenSig(t.token);
|
|
139
|
+
storage.setItem(TOKEN_KEY, t.token);
|
|
140
|
+
const expiresAt = t.expiresAt ?? options.getExpiry?.(t.token) ?? undefined;
|
|
141
|
+
if (expiresAt)
|
|
142
|
+
storage.setItem(EXP_KEY, String(expiresAt));
|
|
143
|
+
else
|
|
144
|
+
storage.removeItem(EXP_KEY);
|
|
145
|
+
scheduleRefresh(expiresAt);
|
|
146
|
+
};
|
|
147
|
+
const persistUser = (u) => {
|
|
148
|
+
setUser(() => u);
|
|
149
|
+
storage.setItem(USER_KEY, JSON.stringify(u));
|
|
150
|
+
};
|
|
151
|
+
const run = async (op, fn) => {
|
|
152
|
+
setLoading(true);
|
|
153
|
+
setError(null);
|
|
154
|
+
try {
|
|
155
|
+
return await fn();
|
|
156
|
+
}
|
|
157
|
+
catch (err) {
|
|
158
|
+
setError(err);
|
|
159
|
+
options.onError?.(err, op);
|
|
160
|
+
throw err;
|
|
161
|
+
}
|
|
162
|
+
finally {
|
|
163
|
+
setLoading(false);
|
|
164
|
+
}
|
|
165
|
+
};
|
|
166
|
+
async function doRefresh() {
|
|
167
|
+
const current = token();
|
|
168
|
+
if (!options.refresh || !current)
|
|
169
|
+
return;
|
|
170
|
+
await run('refresh', async () => {
|
|
171
|
+
const next = normalize(await options.refresh(current));
|
|
172
|
+
persistToken(next);
|
|
173
|
+
options.onRefresh?.(next.token);
|
|
174
|
+
});
|
|
175
|
+
}
|
|
176
|
+
// ── Unauthorized guard wiring ────────────────────────────────────────────────
|
|
177
|
+
let guard;
|
|
178
|
+
if (options.unauthorized) {
|
|
179
|
+
const onExpiry = options.unauthorized.onExpiry ??
|
|
180
|
+
(() => {
|
|
181
|
+
void session.logout();
|
|
182
|
+
});
|
|
183
|
+
const handler = () => {
|
|
184
|
+
setExpired(true);
|
|
185
|
+
options.onExpired?.();
|
|
186
|
+
onExpiry();
|
|
187
|
+
};
|
|
188
|
+
guard = createFetchGuard({
|
|
189
|
+
status: options.unauthorized.status,
|
|
190
|
+
shouldHandle: options.unauthorized.shouldHandle,
|
|
191
|
+
onUnauthorized: handler,
|
|
192
|
+
});
|
|
193
|
+
if (options.unauthorized.installGlobal) {
|
|
194
|
+
installGlobalFetchGuard({
|
|
195
|
+
status: options.unauthorized.status,
|
|
196
|
+
shouldHandle: options.unauthorized.shouldHandle,
|
|
197
|
+
onUnauthorized: handler,
|
|
198
|
+
});
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
const session = {
|
|
202
|
+
user,
|
|
203
|
+
token,
|
|
204
|
+
isAuthenticated: () => token() !== null,
|
|
205
|
+
isLoading,
|
|
206
|
+
error,
|
|
207
|
+
status,
|
|
208
|
+
expired,
|
|
209
|
+
roles,
|
|
210
|
+
permissions,
|
|
211
|
+
can,
|
|
212
|
+
guardedFetch: guard,
|
|
213
|
+
async login(creds) {
|
|
214
|
+
await run('login', async () => {
|
|
215
|
+
persistToken(normalize(await options.login(creds)));
|
|
216
|
+
const u = await options.fetchUser(token());
|
|
217
|
+
persistUser(u);
|
|
218
|
+
setExpired(false);
|
|
219
|
+
guard?.reset();
|
|
220
|
+
options.onLogin?.(u);
|
|
221
|
+
});
|
|
222
|
+
},
|
|
223
|
+
async register(data) {
|
|
224
|
+
await run('register', async () => {
|
|
225
|
+
const res = await options.register?.(data);
|
|
226
|
+
if (res) {
|
|
227
|
+
persistToken(normalize(res));
|
|
228
|
+
const u = await options.fetchUser(token());
|
|
229
|
+
persistUser(u);
|
|
230
|
+
setExpired(false);
|
|
231
|
+
guard?.reset();
|
|
232
|
+
options.onLogin?.(u);
|
|
233
|
+
}
|
|
234
|
+
});
|
|
235
|
+
},
|
|
236
|
+
async logout() {
|
|
237
|
+
try {
|
|
238
|
+
await options.logout?.();
|
|
239
|
+
}
|
|
240
|
+
catch {
|
|
241
|
+
/* best-effort backend logout */
|
|
242
|
+
}
|
|
243
|
+
clearTimer();
|
|
244
|
+
storage.removeItem(TOKEN_KEY);
|
|
245
|
+
storage.removeItem(USER_KEY);
|
|
246
|
+
storage.removeItem(EXP_KEY);
|
|
247
|
+
setTokenSig(null);
|
|
248
|
+
setUser(null);
|
|
249
|
+
guard?.reset();
|
|
250
|
+
options.onLogout?.();
|
|
251
|
+
},
|
|
252
|
+
async hydrate() {
|
|
253
|
+
const stored = storage.getItem(TOKEN_KEY);
|
|
254
|
+
if (!stored)
|
|
255
|
+
return;
|
|
256
|
+
if (!token())
|
|
257
|
+
setTokenSig(stored);
|
|
258
|
+
const expStr = storage.getItem(EXP_KEY);
|
|
259
|
+
scheduleRefresh(expStr ? Number(expStr) : options.getExpiry?.(stored) ?? undefined);
|
|
260
|
+
if (user())
|
|
261
|
+
return;
|
|
262
|
+
try {
|
|
263
|
+
persistUser(await run('hydrate', () => options.fetchUser(stored)));
|
|
264
|
+
}
|
|
265
|
+
catch {
|
|
266
|
+
await session.logout(); // token invalid/expired → clear
|
|
267
|
+
}
|
|
268
|
+
},
|
|
269
|
+
refresh: doRefresh,
|
|
270
|
+
updateUser(u) {
|
|
271
|
+
persistUser(u);
|
|
272
|
+
},
|
|
273
|
+
};
|
|
274
|
+
return session;
|
|
275
|
+
}
|
package/dist/index.mjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{createSignal as f,createMemo as v}from"@fluixi/reactive/signal";import{storage as o,isClient as Q}from"@fluixi/core";var M=e=>e instanceof Request?e.url:e instanceof URL?e.href:String(e);function L(e){let i=e.fetch??globalThis.fetch.bind(globalThis),u=e.status??401,l=!1,h=(async(t,p)=>{let a=await i(t,p);return a.status===u&&!l&&(!e.shouldHandle||e.shouldHandle(M(t),a))&&(l=!0,e.onUnauthorized()),a});return h.reset=()=>{l=!1},h}function _(e){if(!Q)return()=>{};let i=globalThis.fetch.bind(globalThis),u=L({...e,fetch:i});return globalThis.fetch=u,_._reset=u.reset,()=>{globalThis.fetch=i}}var b=e=>typeof e=="string"?{token:e}:e;function J(e){let i=e.storageKeys?.token??"fx_session_token",u=e.storageKeys?.user??"fx_session_user",l=e.storageKeys?.expiry??"fx_session_exp",h=e.refreshSkewMs??6e4,t=e.access,p=()=>{try{return JSON.parse(o.getItem(u)??"null")}catch{return null}},[a,w]=f(p()),[c,R]=f(o.getItem(i)),[S,T]=f(!1),[A,E]=f(null),[z,P]=f(!1),C=v(()=>{let s=t?.getRole?.(a());return s==null?[]:Array.isArray(s)?s:[s]}),I=v(()=>{if(!t)return;let s=C();if(typeof t.permissions=="function")return t.permissions(a(),s)??t.guest;let r=t.permissions,n=s.map(k=>r[k]).filter(k=>k!=null);return n.length===0?t.guest:n.length===1?n[0]:t.merge?t.merge(n):n[n.length-1]}),H=t?.match??((s,r)=>typeof r=="function"?r(s):!1),K=s=>{let r=I();return r!=null?H(r,s,a()):!1},q=v(()=>S()?"authenticating":z()?"expired":A()?"error":c()?"authenticated":"idle"),g=null,G=()=>{g&&(clearTimeout(g),g=null)},O=s=>{if(G(),!Q||!e.refresh||!s)return;let r=s-Date.now()-h;g=setTimeout(()=>{F()},Math.max(0,r))},U=s=>{R(s.token),o.setItem(i,s.token);let r=s.expiresAt??e.getExpiry?.(s.token)??void 0;r?o.setItem(l,String(r)):o.removeItem(l),O(r)},m=s=>{w(()=>s),o.setItem(u,JSON.stringify(s))},y=async(s,r)=>{T(!0),E(null);try{return await r()}catch(n){throw E(n),e.onError?.(n,s),n}finally{T(!1)}};async function F(){let s=c();!e.refresh||!s||await y("refresh",async()=>{let r=b(await e.refresh(s));U(r),e.onRefresh?.(r.token)})}let d;if(e.unauthorized){let s=e.unauthorized.onExpiry??(()=>{x.logout()}),r=()=>{P(!0),e.onExpired?.(),s()};d=L({status:e.unauthorized.status,shouldHandle:e.unauthorized.shouldHandle,onUnauthorized:r}),e.unauthorized.installGlobal&&_({status:e.unauthorized.status,shouldHandle:e.unauthorized.shouldHandle,onUnauthorized:r})}let x={user:a,token:c,isAuthenticated:()=>c()!==null,isLoading:S,error:A,status:q,expired:z,roles:C,permissions:I,can:K,guardedFetch:d,async login(s){await y("login",async()=>{U(b(await e.login(s)));let r=await e.fetchUser(c());m(r),P(!1),d?.reset(),e.onLogin?.(r)})},async register(s){await y("register",async()=>{let r=await e.register?.(s);if(r){U(b(r));let n=await e.fetchUser(c());m(n),P(!1),d?.reset(),e.onLogin?.(n)}})},async logout(){try{await e.logout?.()}catch{}G(),o.removeItem(i),o.removeItem(u),o.removeItem(l),R(null),w(null),d?.reset(),e.onLogout?.()},async hydrate(){let s=o.getItem(i);if(!s)return;c()||R(s);let r=o.getItem(l);if(O(r?Number(r):e.getExpiry?.(s)??void 0),!a())try{m(await y("hydrate",()=>e.fetchUser(s)))}catch{await x.logout()}},refresh:F,updateUser(s){m(s)}};return x}export{L as createFetchGuard,J as createSession,_ as installGlobalFetchGuard};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"fileNames":["../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2021.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.dom.iterable.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2017.date.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2021.string.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../../node_modules/.pnpm/tslib@2.8.1/node_modules/tslib/tslib.d.ts","../../../node_modules/.pnpm/tslib@2.8.1/node_modules/tslib/modules/index.d.ts","../../reactive/dist/lib/observable/types.d.ts","../../reactive/dist/lib/observable/subscription.d.ts","../../reactive/dist/lib/observable/observable.d.ts","../../reactive/dist/lib/signal/graph/detect.d.ts","../../reactive/dist/lib/signal/graph/derived.d.ts","../../reactive/dist/lib/signal/graph/runtime.d.ts","../../reactive/dist/lib/signal/graph/compat.d.ts","../../reactive/dist/lib/signal/graph/children.d.ts","../../reactive/dist/lib/signal/graph/ssr-hooks.d.ts","../../reactive/dist/lib/signal/signal.d.ts","../../reactive/dist/lib/signal/list.d.ts","../../reactive/dist/lib/signal/graph/resource.d.ts","../../reactive/dist/lib/signal/graph/suspense.d.ts","../../reactive/dist/lib/signal/graph/error-boundary.d.ts","../../reactive/dist/lib/signal/graph/core.d.ts","../../reactive/dist/lib/signal/graph/index.d.ts","../../reactive/dist/lib/signal/graph/signal-next.d.ts","../../reactive/dist/lib/signal/index.d.ts","../../reactive/dist/lib/signal/utilities.d.ts","../../dom/dist/lib/dom/utils.d.ts","../../dom/dist/lib/dom/runtime.d.ts","../../reactive/dist/lib/observable/index.d.ts","../../reactive/dist/lib/subject.d.ts","../../utils/dist/lib/maths/types/basic.d.ts","../../utils/dist/lib/maths/types/advanced.d.ts","../../utils/dist/lib/maths/types/negative.d.ts","../../utils/dist/lib/maths/types/operations.d.ts","../../utils/dist/lib/maths/types/index.d.ts","../../utils/dist/lib/maths/constants.d.ts","../../utils/dist/lib/maths/guards.d.ts","../../utils/dist/lib/maths/fn/basic.d.ts","../../utils/dist/lib/maths/fn/advanced.d.ts","../../utils/dist/lib/maths/fn/vector.d.ts","../../utils/dist/lib/maths/fn/complex.d.ts","../../utils/dist/lib/maths/fn/trigo.d.ts","../../utils/dist/lib/maths/fn/index.d.ts","../../utils/dist/lib/maths/formatter.d.ts","../../utils/dist/lib/maths/random.d.ts","../../utils/dist/lib/maths/parser.d.ts","../../utils/dist/lib/maths/index.d.ts","../../utils/dist/lib/primitive/string/string.d.ts","../../utils/dist/lib/primitive/string/types.d.ts","../../utils/dist/lib/primitive/string/index.d.ts","../../utils/dist/lib/primitive/boolean/types.d.ts","../../utils/dist/lib/primitive/boolean/boolean.d.ts","../../utils/dist/lib/primitive/boolean/index.d.ts","../../utils/dist/lib/primitive/date/types.d.ts","../../utils/dist/lib/primitive/date/date.d.ts","../../utils/dist/lib/primitive/date/index.d.ts","../../utils/dist/lib/primitive/types.d.ts","../../utils/dist/lib/primitive/index.d.ts","../../utils/dist/lib/object/types.d.ts","../../utils/dist/lib/object/object.d.ts","../../utils/dist/lib/object/diff.d.ts","../../utils/dist/lib/object/selector.d.ts","../../utils/dist/lib/object/merge.d.ts","../../utils/dist/lib/object/clone.d.ts","../../utils/dist/lib/object/getter-setter.d.ts","../../utils/dist/lib/object/omit.d.ts","../../utils/dist/lib/object/transform.d.ts","../../utils/dist/lib/object/reconcile.d.ts","../../utils/dist/lib/object/sort.d.ts","../../utils/dist/lib/object/utils.d.ts","../../utils/dist/lib/object/index.d.ts","../../reactive/dist/lib/store/setter.types.d.ts","../../reactive/dist/lib/store/types.d.ts","../../reactive/dist/lib/store/store.d.ts","../../reactive/dist/lib/store/utils.d.ts","../../reactive/dist/lib/store/index.d.ts","../../reactive/dist/lib/index.d.ts","../../reactive/dist/index.d.ts","../../dom/dist/lib/dom/types.d.ts","../../dom/dist/lib/dom/integration.d.ts","../../dom/dist/lib/dom/server/host.d.ts","../../dom/dist/lib/dom/island.d.ts","../../dom/dist/lib/dom/hydration.d.ts","../../dom/dist/lib/dom/hydration-state.d.ts","../../dom/dist/lib/dom/index.d.ts","../../../node_modules/.pnpm/@lit+reactive-element@2.1.2/node_modules/@lit/reactive-element/development/css-tag.d.ts","../../../node_modules/.pnpm/@lit+reactive-element@2.1.2/node_modules/@lit/reactive-element/development/reactive-controller.d.ts","../../../node_modules/.pnpm/@lit+reactive-element@2.1.2/node_modules/@lit/reactive-element/development/reactive-element.d.ts","../../../node_modules/.pnpm/lit-html@3.3.3/node_modules/lit-html/development/directive.d.ts","../../../node_modules/.pnpm/@types+trusted-types@2.0.7/node_modules/@types/trusted-types/lib/index.d.ts","../../../node_modules/.pnpm/lit-html@3.3.3/node_modules/lit-html/development/lit-html.d.ts","../../../node_modules/.pnpm/lit-element@4.2.2/node_modules/lit-element/development/lit-element.d.ts","../../../node_modules/.pnpm/lit-html@3.3.3/node_modules/lit-html/development/is-server.d.ts","../../../node_modules/.pnpm/lit@3.3.3/node_modules/lit/development/index.d.ts","../../dom/dist/lib/shared/types.d.ts","../../dom/dist/lib/component/modifiers.d.ts","../../dom/dist/lib/component/index.d.ts","../../dom/dist/lib/flow/show.d.ts","../../dom/dist/lib/flow/for.d.ts","../../dom/dist/lib/flow/index-flow.d.ts","../../dom/dist/lib/flow/switch.d.ts","../../dom/dist/lib/flow/dynamic.d.ts","../../dom/dist/lib/flow/portal.d.ts","../../dom/dist/lib/flow/error-boundary.d.ts","../../dom/dist/lib/flow/class-map.d.ts","../../dom/dist/lib/flow/style-map.d.ts","../../dom/dist/lib/flow/index.d.ts","../../dom/dist/lib/dom/server/nodes.d.ts","../../dom/dist/lib/dom/server/serialize.d.ts","../../dom/dist/lib/dom/server/fx-data.d.ts","../../dom/dist/lib/dom/server/request-context.d.ts","../../dom/dist/lib/dom/server/render.d.ts","../../dom/dist/lib/dom/server/index.d.ts","../../dom/dist/lib/index.d.ts","../../dom/dist/index.d.ts","../../core/dist/src/lib/render/component.d.ts","../../core/dist/src/lib/render/suspense.d.ts","../../core/dist/src/lib/render/lazy.d.ts","../../core/dist/src/lib/render/index.d.ts","../../core/dist/src/lib/context/context.d.ts","../../core/dist/src/lib/context/index.d.ts","../../core/dist/src/lib/isomorphic.d.ts","../../core/dist/src/lib/env/index.d.ts","../../core/dist/src/lib/theme/index.d.ts","../../utils/dist/lib/array/array.d.ts","../../utils/dist/lib/array/utils.d.ts","../../utils/dist/lib/array/advanced.d.ts","../../utils/dist/lib/array/index.d.ts","../../utils/dist/lib/dom/events.d.ts","../../utils/dist/lib/dom/utils.d.ts","../../utils/dist/lib/dom/index.d.ts","../../utils/dist/lib/crypto/hash.d.ts","../../utils/dist/lib/crypto/index.d.ts","../../utils/dist/lib/functions/functions.d.ts","../../utils/dist/lib/functions/types.d.ts","../../utils/dist/lib/functions/index.d.ts","../../utils/dist/lib/helpers.d.ts","../../utils/dist/lib/index.d.ts","../../utils/dist/index.d.ts","../../router/dist/lib/types.d.ts","../../router/dist/lib/match.d.ts","../../router/dist/lib/history.d.ts","../../router/dist/lib/router.d.ts","../../router/dist/index.d.ts","../../core/dist/src/lib/router-next/data.d.ts","../../core/dist/src/lib/router-next/index.d.ts","../../core/dist/src/lib/control-flow.d.ts","../../../node_modules/.pnpm/lit@3.3.3/node_modules/lit/development/directive.d.ts","../../lit/dist/directives/classMap.d.ts","../../lit/dist/directives/styleMap.d.ts","../../lit/dist/directives/ifDefined.d.ts","../../lit/dist/directives/live.d.ts","../../lit/dist/directives/ref.d.ts","../../../node_modules/.pnpm/lit-html@3.3.3/node_modules/lit-html/development/directives/repeat.d.ts","../../../node_modules/.pnpm/lit@3.3.3/node_modules/lit/development/directives/repeat.d.ts","../../lit/dist/directives/repeat.d.ts","../../lit/dist/directives/unsafeHTML.d.ts","../../lit/dist/directives/unsafeSVG.d.ts","../../../node_modules/.pnpm/lit-html@3.3.3/node_modules/lit-html/development/async-directive.d.ts","../../../node_modules/.pnpm/lit@3.3.3/node_modules/lit/development/async-directive.d.ts","../../lit/dist/directives/async-append.d.ts","../../lit/dist/directives/suspense.d.ts","../../lit/dist/directives/litrx.d.ts","../../lit/dist/directives/reactiveAttr.d.ts","../../lit/dist/directives/utils.d.ts","../../lit/dist/directives/index.d.ts","../../lit/dist/templates/index.d.ts","../../lit/dist/control-flow/for.d.ts","../../lit/dist/control-flow/each.d.ts","../../lit/dist/control-flow/index-flow.d.ts","../../lit/dist/control-flow/show.d.ts","../../lit/dist/control-flow/switch.d.ts","../../lit/dist/control-flow/dynamic.d.ts","../../lit/dist/control-flow/portal.d.ts","../../lit/dist/control-flow/index.d.ts","../../lit/dist/index.d.ts","../../core/dist/src/lib/core.d.ts","../../core/dist/src/index.d.ts","../src/index.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/assert.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/assert/strict.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/globals.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/async_hooks.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/buffer.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/child_process.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/cluster.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/console.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/constants.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/crypto.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/dgram.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/diagnostics_channel.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/dns.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/dns/promises.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/domain.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/dom-events.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/events.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/fs.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/fs/promises.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/http.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/http2.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/https.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/inspector.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/module.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/net.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/os.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/path.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/process.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/punycode.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/querystring.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/readline.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/readline/promises.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/repl.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/stream.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/stream/promises.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/stream/consumers.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/stream/web.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/string_decoder.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/test.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/timers.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/timers/promises.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/tls.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/trace_events.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/tty.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/url.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/util.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/v8.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/vm.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/wasi.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/worker_threads.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/zlib.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/globals.global.d.ts","../../../node_modules/.pnpm/@types+node@18.16.9/node_modules/@types/node/index.d.ts"],"fileIdsList":[[274],[134,135,274],[228,274],[231,274],[232,237,265,274],[233,244,245,252,262,273,274],[233,234,244,252,274],[235,274],[236,237,245,253,274],[237,262,270,274],[238,240,244,252,274],[239,274],[240,241,274],[244,274],[242,244,274],[244,245,246,262,273,274],[244,245,246,259,262,265,274],[274,278],[240,244,247,252,262,273,274],[244,245,247,248,252,262,270,273,274],[247,249,262,270,273,274],[228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280],[244,250,274],[251,273,274],[240,244,252,262,274],[253,274],[254,274],[231,255,274],[256,272,274,278],[257,274],[258,274],[244,259,260,274],[259,261,274,276],[232,244,262,263,264,265,274],[232,262,264,274],[262,263,274],[265,274],[266,274],[244,268,269,274],[268,269,274],[237,252,262,270,274],[271,274],[252,272,274],[232,247,258,273,274],[237,274],[262,274,275],[274,276],[274,277],[232,237,244,246,255,262,273,274,276,278],[262,274,279],[136,139,274],[137,139,274],[139,274],[137,138,274],[207,274],[137,274],[202,274],[136,139,140,141,274],[54,274],[225,274],[73,163,274],[168,274],[163,274],[73,74,124,163,167,169,170,171,172,187,194,195,224,274],[73,274],[164,165,166,274],[73,106,119,166,192,193,274],[162,274],[144,274],[75,76,127,128,129,130,131,132,274],[127,274],[129,156,157,158,159,160,274],[129,274],[159,274],[126,274],[73,146,147,148,149,150,151,152,153,154,274],[127,128,133,143,145,155,161,274],[142,274],[126,142,163,274],[196,274],[73,142,163,274],[216,217,218,219,220,221,222,274],[196,208,274],[142,196,274],[197,198,199,200,201,204,205,206,209,210,211,212,213,274],[73,142,196,274],[203,274],[208,274],[126,196,274],[214,215,223,274],[125,274],[73,77,78,124,274],[56,57,58,274],[57,274],[56,274],[62,274],[61,274],[65,274],[70,274],[59,60,61,62,63,64,65,66,67,68,69,71,274],[72,274],[58,59,60,63,64,274],[58,65,274],[121,122,123,274],[119,274],[58,73,120,121,274],[121,274],[77,274],[188,189,190,191,274],[188,274],[188,190,274],[55,73,226,274],[186,274],[107,274],[173,174,175,274],[180,274],[177,178,274],[182,183,274],[106,274],[176,179,181,184,185,274],[80,274],[79,274],[86,87,88,89,90,274],[83,274],[83,84,85,91,92,93,94,274],[79,80,82,274],[79,81,274],[107,108,109,110,111,112,113,114,115,116,117,118,274],[95,106,274],[106,107,274],[99,274],[99,100,274],[102,274],[102,103,274],[98,101,104,105,274],[96,97,274]],"fileInfos":[{"version":"69684132aeb9b5642cbcd9e22dff7818ff0ee1aa831728af0ecf97d3364d5546","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"092c2bfe125ce69dbb1223c85d68d4d2397d7d8411867b5cc03cec902c233763","affectsGlobalScope":true,"impliedFormat":1},{"version":"07f073f19d67f74d732b1adea08e1dc66b1b58d77cb5b43931dee3d798a2fd53","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"936e80ad36a2ee83fc3caf008e7c4c5afe45b3cf3d5c24408f039c1d47bdc1df","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"fef8cfad2e2dc5f5b3d97a6f4f2e92848eb1b88e897bb7318cef0e2820bceaab","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"811c71eee4aa0ac5f7adf713323a5c41b0cf6c4e17367a34fbce379e12bbf0a4","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"a6a5253138c5432c68a1510c70fe78a644fe2e632111ba778e1978010d6edfec","impliedFormat":1},{"version":"b8f34dd1757f68e03262b1ca3ddfa668a855b872f8bdd5224d6f993a7b37dc2c","impliedFormat":99},{"version":"e592cf1b998ce8043e72ca38e2f40c5631e65e937e3102223f7086140bf979a3","impliedFormat":99},{"version":"0ceea501c52cdf869e3562ea96fca2785a3394a9e1e446afb5e11092ad2dc7fc","impliedFormat":99},{"version":"ebe92631232ee90bd0cd2668b349a8ecf869a42f94aa5a80505aaf7833be6819","impliedFormat":99},{"version":"892323d83df6c419a9f961e7156e70184b4a27638de72f7b92931ab3c165298e","impliedFormat":99},{"version":"ed51ea7ddcddfe0523b5a8d3112c55f8494f3f419ad6b830a1aac7dfe499a8ab","impliedFormat":99},{"version":"f930ceeb25ec3a15c78ff12771c202a67164e232a5b588635c89603c6c961928","impliedFormat":99},{"version":"96e415a91946f00ac400e74dfeb26b575aade405169df35621a822e6b4d5abf0","impliedFormat":99},{"version":"e8be3e24c3b98c301590ee0fefc462accc9a0f1fa674f62a3b63be9786ef9a99","impliedFormat":99},{"version":"e08f70018aeffb92654e466522e4b194b712da2091b20bdb0922c8441f2a43b7","impliedFormat":99},{"version":"97b4ab5a8db570e67a3a764a456486d97b8808b658e0e0a3eb9e38b63270d086","impliedFormat":99},{"version":"1f33d92b487c119aee6f7cf04ac95c0dab317c228b388fead9d7d87540f8adf7","impliedFormat":99},{"version":"e972de4985925f07d08dfb7eb73a400506f75b3596cac60591fab948eade26b7","impliedFormat":99},{"version":"c03135439ad665f4a011a75586bf96098f6fe0b0716e78afc8cdf651bcc8f879","impliedFormat":99},{"version":"290111961dc134d534be036cd591c09a0e65ceed2fcf9aa9666ae2bcdac7034f","impliedFormat":99},{"version":"ac292cffbb31f9c76b09f7b0c630cfc2b9c7e5070dfc4472cfc60023ec447bd2","impliedFormat":99},{"version":"ac23329299d15c989ebe7e62bb1858a58de39aa3cd4fb1265e93ddc6d9631b07","impliedFormat":99},{"version":"16b49126ba492eb0b4abc93a518addf8ca7e850bed2fc56c111ffa768d23113e","impliedFormat":99},{"version":"1122b4ca26147813c76ac7a2f38911854cb2bd5cf0af003f578175f3db1c3aee","impliedFormat":99},{"version":"2dce570f3d8917cca7d605dc74f96d74ec8af5c590b68fccb4bfaf939a297bf6","impliedFormat":99},{"version":"8fe10058c65480f8667d1099d1ca25c75f07091ae303f287eda65bb622d7e1d5","impliedFormat":99},{"version":"13bb96268e358a7e2a50476df6db22b4258ec01edbd3f9de3ed2fafffed11e1d","impliedFormat":99},{"version":"e6597aaf78157a53337c8794d2f7eee5eecef77a6ec0c60480c74a936811fa36","impliedFormat":99},{"version":"7112073e38bc7d171cbc5530734f550065ecbc76eb302319c5e8a06105dae5bb","impliedFormat":99},{"version":"631287e5e4a8a6ff2348789b7d2d00944c0f09ff3fed60cc3642323a1ff0ed4a","impliedFormat":99},{"version":"4f24eafbd6e05dd55f4597c6d286171fbe5066785625c482ab5c5cbba2fc7487","impliedFormat":99},{"version":"e9ad8fb60df94fd4f929f944a12d496271d6523e69d5ad4de20fc080a0a30711","impliedFormat":99},{"version":"a928f91a183425984c472e4d2763f7649e8d63c92c74a2fa59482ad8905bc664","impliedFormat":99},{"version":"c323e45a420e39e384e86db3e4470969016e8f507e04a9ceff1f073d8e5efeff","impliedFormat":99},{"version":"120b522225d94dea3356d056952f0ca9c626a4643a7734fbff1b031f16a0cb65","impliedFormat":99},{"version":"52a743346fe3f9758188a0ba974989e2ec948d8bb145539b6b6d6058204f2612","impliedFormat":99},{"version":"b19bb5d1b4f1ed34aad8e57dc096f7f333dc2fccb0a86633b9c8405c4797b190","impliedFormat":99},{"version":"fde9c3aaca2fb4f489fe2c25d3d0a5d56c145272cf92c6fd1f39f41589d9d0b1","impliedFormat":99},{"version":"2289a9520455d5a74bff1f23ddf0bee2593baedb8b9cda9c3e8720ca66338f65","impliedFormat":99},{"version":"1ff7de3d6cb03553a07592092fcd7a0ed61a88c6be9f5344239ac247be712cfd","impliedFormat":99},{"version":"b071dcadeb17235e2a1116231ca370bac5c97ec090fc73b3736791cb0a2aa91d","impliedFormat":99},{"version":"b4ed0f4d07ca274437eb9d49400de8c81659760e59507f08b94442873eb49a25","impliedFormat":99},{"version":"88978beb444b1d65c0f48d1099717d2a935ce74d9e3e1411bcaa1fe497910ab6","impliedFormat":99},{"version":"712fdf289306e77c2c097843e29560d99ff83bd336da277498ea18ca8cd999f0","impliedFormat":99},{"version":"ceb05e55219637c8dcb77490777c52e537363adc0a060af39cc95d46310f2128","impliedFormat":99},{"version":"a1b05ca68a811afb49605cf1346a53efadc4ec6269caf9e19d97bee4543f1479","impliedFormat":99},{"version":"4e454ae8246e2b13c51c12adaccda8d0fe8e36e120d4e5bbc554021244240fdb","impliedFormat":99},{"version":"4edc87837b7285fe2141b92b492ecc6428a5fc152d7d013af9d0e7017e78befa","impliedFormat":99},{"version":"20e3c2b6bfdfbde9073c6309992943094ab954bd50954c2561daa4d377c78bbc","impliedFormat":99},{"version":"de969e2fcf0e6bfe70c844762f81e47e713dfdf3f1b8ed89378ff3865e78f16d","impliedFormat":99},{"version":"7349d52ef2d997de63d4298417883a9ae8d94ad2d6b0a1ad4a11971fbf01ec3d","impliedFormat":99},{"version":"1673bc6ee9b15e4bc9e4de777b1497bd1ec544d6939061ce7a25de9a0c09565d","impliedFormat":99},{"version":"73eae9a32499f88a8c73cedd49a43ecf441116bb55c7a150f346e333b35c687b","impliedFormat":99},{"version":"9b1c12fce85d708544c70e12e0d8ca6c4a9b27690a27448577b9f4053c49908d","impliedFormat":99},{"version":"68e1a72149e6384295c078bdb945bc3238afcaeb850be14f3ba0571661addf82","impliedFormat":99},{"version":"abc4efc89e29e107946fd0a40b96c4c862d4d340c4c26dd7647183568c3e33c3","impliedFormat":99},{"version":"e1cb7303d3d49535d39fac5d8ded4b5e5e430526eb8a44411cfec3694eae6223","impliedFormat":99},{"version":"1fb68873fd2a769163972685c0516cb3f88fcedd57409f285dfe7c71be13cbbd","impliedFormat":99},{"version":"6685db351c23e0cb6cec2426ea1680a41d29c1633d722c7d7621207c55f6491e","impliedFormat":99},{"version":"cc74864af16373ee02499f7e65758f13f903d37aa1e13e7ad5598facc70dc274","impliedFormat":99},{"version":"71830cf6fc186afa64f4d6d015eed23c78a3af68bd8dc770ffa4d5cee77744b3","impliedFormat":99},{"version":"72ff78881cb1d71790e047eba022ce05845b7dd05e94ba64267dc478ce1457f1","impliedFormat":99},{"version":"fdf1008f43e52d69c62571db0aaa782604dca7e7c2206825a9f46ada5154b610","impliedFormat":99},{"version":"9b3b063cf484aa4088728e28f73f98c7b8fa267debd6f289acec4d70f5977253","impliedFormat":99},{"version":"fe21672b2e8f8ad092ba5ca8ecc4c83f3952dd5144e459f1f001dfdac2f9e7a5","impliedFormat":99},{"version":"95b067197bb5c2f7ca7ee0ede9be77c4724aa09687b75d6e8cacf0904ff565f9","impliedFormat":99},{"version":"3ab7a86cdb01a3f6d3845a82add1feee0ec6b0620fde0224ada4ab929f459b61","impliedFormat":99},{"version":"0c40740c1cb8ae5f8a74182579c5a392f7e0ce20826d1a4907417e6929e20666","impliedFormat":99},{"version":"ea7a689828afde6f1565f81d9a675c48daa0b91c36020aaeef7193b8769cccf9","impliedFormat":99},{"version":"4c362ca187c7fc9d6a986d33da9966cac1738dc14f8da9f1315b0703214f7be5","impliedFormat":99},{"version":"45d0b9f6985725909f26094b518f6e5017ecc9fff784fb71792addb7c90c70bf","impliedFormat":99},{"version":"62512a36ef5e3ed8dca2f7ac0800e2d3bd461025c7b4ae5539cd871258dcd00c","impliedFormat":99},{"version":"f431bb373494e78c5e01546c80fc41921ca9b24386c388da802a2afbe9705392","impliedFormat":99},{"version":"07a2317b33ba403c06f14a9c8cf0ed93a83d85d22ffc64cab4452327a1e08e24","impliedFormat":99},{"version":"415f940ff9853f2e98ac9864385e88ac819ae9dda1a1ca69c8cdb170054b2820","impliedFormat":99},{"version":"f6e6e7e47824c8366b0cad7f6582ac611143a12bac48ecff2f6b88ff78187d68","impliedFormat":99},{"version":"9a6c3e2900643e20e37b47f712af6420048e737db80c1975707cfde23681b2c9","impliedFormat":99},{"version":"3f06e42c5281bc88f1de705b90b69da10d106a09296ae2bda90e62b5cc0e8cc8","impliedFormat":99},{"version":"73f3a592934d6163184e94890ac9c369ff8d4338e57cdad77a1b775830a06642","impliedFormat":99},{"version":"9dbe39e850dcc9124b71341467f46bb1a0f34e0e15066291bd8f98ec15c03280","impliedFormat":99},{"version":"746a5c6e2eb8982e2b0cd37bab36ff773d1e9f84abd8244a598f9af0d2ecfe9f","impliedFormat":99},{"version":"9f41d91eeb174fefed6f6317fe406b39be79e87f7c4de3388e6657ea797e8b8c","impliedFormat":99},{"version":"4c0bfb5426c29cbb62fef9241e667b70a7350086ac62b64c3dc94a7985af4c72","impliedFormat":99},{"version":"d211c8d3dbf70442d54e6b5ea5bbfb3e394001d8c802b842a7ced12c1c7d536c","impliedFormat":99},{"version":"74012d464fbc5354ca3a7d5e71bee43b17da01a853c8ff10971bbe3680c76f40","impliedFormat":99},{"version":"5e30131b6a5587fe666926ad1d9807e733c0a597ed12d682669fcaa331aea576","impliedFormat":99},{"version":"a0f82d2f9450bd147a8c137798d9501bd49b7c9e118f75b07b76709ff39b6b55","affectsGlobalScope":true,"impliedFormat":99},{"version":"00cb63103f9670f8094c238a4a7e252c8b4c06ba371fea5c44add7e41b7247e4","impliedFormat":99},{"version":"15fe687c59d62741b4494d5e623d497d55eb38966ecf5bea7f36e48fc3fbe15e","impliedFormat":1},{"version":"e09db3291e6b440f7debed2227d8357e80c95987a0d0d67ac17521d8f7b11bdb","impliedFormat":99},{"version":"9a318e3a8900672b85cd3c8c3a5acf51b88049557a3ae897ccdcf2b85a8f61f9","impliedFormat":99},{"version":"1bcd560deed90a43c51b08aa18f7f55229f2e30974ab5ed1b7bb5721be379013","impliedFormat":99},{"version":"dc08fe04e50bc24d1baded4f33e942222bbdd5d77d6341a93cfe6e4e4586a3be","impliedFormat":99},{"version":"35b2e19d086f311343f1ffae8a1bd1f0fd4f70de2f49d9605241c4f74b53ddc2","impliedFormat":99},{"version":"5a2fad844d16083a48af5d82bffb196e7bdd6f44e46e80f552e16b170c4a8f71","impliedFormat":99},{"version":"c6650df9082a55ae635b96b371b9957d8eafbc12ffdbc0e0b77f0b002fdd8e7f","impliedFormat":99},{"version":"326daff479c598c3230df94051092329abffd458689dc3cce3f21b767b499d99","impliedFormat":99},{"version":"9291566976678663eb96b938d284bf09d2139043d0d7d0976cffbdcbe44f0d0e","impliedFormat":99},{"version":"213b1ac213e38d56741eee5e31ca39ee579d7489084e7c30486fe3b3b9684028","impliedFormat":99},{"version":"0e416bf225e5eb5ec5b58e890d34d9c645feb834b95b73bd767d9a1526e58fbf","impliedFormat":99},{"version":"44b89266a40c97f4d533e43a64342d12b7f03c818b0ea0b5ed3314f27a5ea3c1","impliedFormat":99},{"version":"9c44147ff2f963a6a6430664b8073eba81fe22adfdceefe5d4b94c58a1744247","impliedFormat":99},{"version":"1e46f8f10c9d81c3c36accfe6076d8abd35e6218d28e3f7deadd08e2cf99857a","impliedFormat":99},{"version":"91ef71cd917ce22fd4a3f7fac1094bd492dcc85e7e4646af6a982268fbb5f89b","impliedFormat":99},{"version":"04353aa31b2939f6ff9a67ad4937896b2ff275852248d2549731e05fc9ea3fe0","impliedFormat":99},{"version":"f3209b787ae8fb62327ebc904a12ee79ae0638a3c423d66b4f5186ff08b891a0","impliedFormat":99},{"version":"8da735bbcdf3eef496c20933a969c898c45abf151d6ef9f1a3f719eb54495e59","impliedFormat":99},{"version":"cca8d9f11c7209da2e992525500746ff81ccb0e74597dc482338b56bbca43977","impliedFormat":99},{"version":"09eea8ae8576e45b470e9506ef332fc71e07dca2dd3c8b4da89fc9ef9d3cc0b0","impliedFormat":99},{"version":"e9e4b5e403d534250d1ae0cfc12a3b14b975a106886ddcafc4c1b44fe362000a","impliedFormat":99},{"version":"963c208c61e15b6a1226512b80a2a63aa80d9195956b0a087e6fe382eeb7b3ba","impliedFormat":99},{"version":"4b6a4593207c56d2da0a64f8f5ce34c54b7af90754c9e5964f696e72f0037530","impliedFormat":99},{"version":"30295332c8cc2b18f1691fb3f9785e48ea3b7d7b544c915b666b8963a414162d","impliedFormat":99},{"version":"73cbc0a2e4774f7128943e055cdce1195b4a66587d8f00e5b7ce64fd5423584a","impliedFormat":99},{"version":"d061f0776c8bedf6ec233e421154a196b83228dfc1260c107e7ebb4efbccd7cf","impliedFormat":99},{"version":"137a896ad9dd6c91df545f023a5e4f3cb1d18694724771e0137afbf82d207de5","impliedFormat":99},{"version":"af74cb86213e1c274ab4ff70f6a471764de959ccedc3e916018bd60f44f656b4","impliedFormat":99},{"version":"5a98a22cc9a5b50c804b350b8b870a40d5474bfde18731dee0ef50129b0fa91f","impliedFormat":99},{"version":"002effc00f23bd8cf9ba1d75309e8f213be4147c1bd2a5b4a4fd6763f7063692","impliedFormat":99},{"version":"cb4d2b44b2e9aa0bfbaa47fbf54c1558d0d77387a3e405644fc1d44f182520a5","impliedFormat":99},{"version":"78536d7cbddfbab8163267ce61d0005be870b0bd49a9435d58952a27504d90e7","impliedFormat":99},{"version":"d16aedbdca35dbc65b0b000a334b29a2b1dd40e6a5d9c135fac28cd05cac355d","impliedFormat":99},{"version":"a23795b931d9e0a3d84bf02dc06e6c2afa3c37ac5e077b96dffb3006cfbe52a7","impliedFormat":99},{"version":"f15921cf5d9640e2c54c35fc6a3c36e8a4c0061f78dce854724413127338c7e9","impliedFormat":99},{"version":"93b0f0fe75bafd0c0d384e2de7ef7358098653416740881a5aff042703bcb97a","impliedFormat":99},{"version":"1765fca10cad95f2ddb420591e089b4ed74639eb1085f52ab81283642fbcbaa3","impliedFormat":99},{"version":"e71869ee1e7ffb064578d3010aa8f364ba7d992dde650dc2561a718cd48d3a10","impliedFormat":99},{"version":"0f6f1ed13d6924402359ace5d0fb77bdfd3b80beaf87318df3cc9d44a50b925b","impliedFormat":99},{"version":"db0123abae93f8141f9fc417ff13feeb368ec0ba7296d5745efd35a5ce79f52b","impliedFormat":99},{"version":"f23a7c9fe54c8a623696aa9a8b13225b4b926fae0d98d592748d635c2603723f","impliedFormat":99},{"version":"ed28747437d5c4ab842ac70bba457a89ef867a7bf50864e3a1e333378b531ddc","impliedFormat":99},{"version":"064c05ad917a300e188b8374d95ae3360794fd9c0b91110c967f79c00c9413da","impliedFormat":99},{"version":"8af0262b31af8ba340a2c3f1ed31b1199b3271cadedf8ef41d9faeb1e259332e","impliedFormat":99},{"version":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881","impliedFormat":99},{"version":"bfb5e43efed96b73d2a8018a84353efbbd8ddd0569bab3e172b7a21ca3e9c451","impliedFormat":99},{"version":"11a574d9d2ffd0d34deb5b3ba9f1e36d5797072cb8974365e2dc9fa8428a8856","impliedFormat":99},{"version":"9f4166bc2e232d9f8c9500751a9e9be0438f6d9a76c76cc990e110a3276f7dec","impliedFormat":99},{"version":"9a6c3e2900643e20e37b47f712af6420048e737db80c1975707cfde23681b2c9","impliedFormat":99},{"version":"4d19aa2a9bf11f03350f885799abb2a399e49308ff23582f0bfc7ca3de1ef964","impliedFormat":99},{"version":"3206bc8f6c9cf553a7bdd45999e405e7e95524558b6516359bd552ad49e02edb","impliedFormat":99},{"version":"d06367c35e944d602fec4a3bfe3cb00ca44fab949354392add4d6386c620d294","impliedFormat":99},{"version":"f0c0df41d93b49b7a7fc3c69f9f2b2f6cfb58e59d8e0869f6bf7bd6a3003b7dd","impliedFormat":99},{"version":"a4766338e78a77ceb79b55f54ad3b9d6d9f0aa3ecea6d6097bbbb671020594a1","impliedFormat":99},{"version":"5a54a9ae40b3a00ecfa95c3f70d349ee537cef18a681ac7e8138d5e7d1a6b155","impliedFormat":99},{"version":"18ffeb24e3dbb7cb3b407703454ff84120c8357917f7d494de45afce811b1ff0","impliedFormat":99},{"version":"0f06c3d71d0e686261997eba0eef8e8b4b0837d69c10ac841858ac793f2ad2ae","impliedFormat":99},{"version":"25d5a8f05e1c4225f718beca2610465a2f4d317d3f1344dceb342a29af57a1eb","impliedFormat":99},{"version":"2a172abe1478bd65206bff70aff82ca71fb7128bbf02717bb3dcfd9646bde351","impliedFormat":99},{"version":"ce82849d142b991369a34d14c0c7635df527dd2a16c6c02fa108be8169a87c0d","impliedFormat":99},{"version":"89c8d4b261417a769f262a097eb07b104389bc1c8487620aaf4fe0617dd5857e","impliedFormat":99},{"version":"a02dc067ef5b75deab2f5486ce388526390cba8eff1689eb69a997f668f71f17","impliedFormat":99},{"version":"e9c326f6d1638102b8fd1fbd64c7a5d1c3c5b28e3fce944e4836a2b9e275f887","impliedFormat":99},{"version":"a4bbe05f59182f4ce279bf92b2fcf9ce52fe1a9feba61867aa97e11eaa1912aa","impliedFormat":99},{"version":"1b9d0b8dbfe4d820b52271376daab06fde5205e840010c63c7b0f53458ece5bc","impliedFormat":99},{"version":"c955a20bfebe856f4c2f2696c496a53005de11bca7492ce6bd15581de3a20039","impliedFormat":99},{"version":"ff7644a69b155764f45cffceeebf7f817273bf4d77cd19aca433bb0a509cfb37","impliedFormat":99},{"version":"a0226f43a8bd8493122d61bf6fe01cd57a2d09037c775e6e269998d6a16e6dfb","impliedFormat":99},{"version":"c42f9b18f5f559b133cf9b409f678afb30df9c6498865aae9a1abad0f1e727a8","impliedFormat":99},{"version":"eabff483c855b848eefb979dbfb64c8858444c56a2f3ea0e59de026ef03fd089","impliedFormat":99},{"version":"85aa06bd38cf2d7fe53f2adf608136b80aa0004cc1186ec684ec9f17f58eab76","impliedFormat":99},{"version":"4058d0875b427fb53accb102c254afa8274821316d024960a336e3ac3ab0b39f","impliedFormat":99},{"version":"2fc203df885f75b6e2286b0cecafac52f6afabdb39656a61eed68ef6bb25db6c","impliedFormat":99},{"version":"02264596562a8bb62b6f044adcbe5ef60dc7954feca93a2faca23a93c51320e0","impliedFormat":99},{"version":"8e4772e8a1119a61458be078b24758952b2af898599b44bc50fb9fe7de22a464","impliedFormat":99},{"version":"f004c4c4005fadfff56786bc1e5d987a45d3b4f81f64ad7a416e8b865998e887","impliedFormat":99},{"version":"fc9bebf4be86621c39191eae6259a5510cdf4c820bb655f5568ba7aad21af18c","impliedFormat":99},{"version":"950da1bb01e156d02581a5acc24c3f639d3b3ef6ce8f2e752d314c2170e96a25","impliedFormat":99},{"version":"907358a13c2e757d2db30306df44eea79012b01b645d49cc869c3cbbd3c1c761","impliedFormat":99},{"version":"f95753a22340d6e32bdf3264888a95b63b0cc16c9fb198f696b2ea0f9ef7e209","impliedFormat":99},{"version":"b4c759ab69629cba0201435880cde35e62df058a676620a03f8dda998e8f14eb","impliedFormat":99},{"version":"1e055dac94e15a36e63ec72615e06653fa11acbfae0a0351d282b915a21c582e","impliedFormat":99},{"version":"b7bc2afdcb5d05c02f7421be9a705db407db295bcd7927df3548851f20ab3f29","impliedFormat":99},{"version":"8372927a8f37d0a8ba7bb694143f016225953f621b8c4709666a680892676c5d","impliedFormat":99},{"version":"7260a53873f59b8da4ad4ecab85a6649931e5f894c2bb8d066a162c9ba2e10f7","impliedFormat":99},{"version":"825964f3ced37213188a17f06a62118d9d4472967b505429267cd6d7950e1e6d","impliedFormat":99},{"version":"a6fdd29c5d849eb1e954575bc49e4ee299c6f6d7463c03ff2cdf3a56a36a3f58","impliedFormat":99},{"version":"b55d64662ed325e2b3de133ed6b304d0608580e73fe51f6d36b6777b2920e0e2","impliedFormat":99},{"version":"cf1c580b60b6bc9b624a680eb4249e63abe22bc75d70ec8f2793748c8486a227","signature":"38fad30452977de07407ca35d0a5326be42824c51cf502dde5f4e5a773bd1e6a","impliedFormat":99},{"version":"7e771891adaa85b690266bc37bd6eb43bc57eecc4b54693ead36467e7369952a","impliedFormat":1},{"version":"a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a","impliedFormat":1},{"version":"f749812878fecfa53cfc13b36e5d35086fb6377983a9df44175da83ccc23af1f","affectsGlobalScope":true,"impliedFormat":1},{"version":"7d2e3fea24c712c99c03ad8f556abedbfe105f87f1be10b95dbd409d24bc05a3","impliedFormat":1},{"version":"211e3f15fbced4ab4be19f49ffa990b9ff20d749d33b65ff753be691e7616239","affectsGlobalScope":true,"impliedFormat":1},{"version":"3719525a8f6ab731e3dfd585d9f87df55ec7d50d461df84f74eb4d68bb165244","impliedFormat":1},{"version":"5a94487653355b56018122d92392beb2e5f4a6c63ba5cef83bbe1c99775ef713","impliedFormat":1},{"version":"d5135ad93b33adcce80b18f8065087934cdc1730d63db58562edcf017e1aad9b","affectsGlobalScope":true,"impliedFormat":1},{"version":"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","impliedFormat":1},{"version":"e596c9bb2f29a2699fdd4ae89139612652245192f67f45617c5a4b20832aaae9","impliedFormat":1},{"version":"bb9c4ffa5e6290c6980b63c815cdd1625876dadb2efaf77edbe82984be93e55e","impliedFormat":1},{"version":"1cdcfc1f624d6c08aa12c73935f6e13f095919cd99edf95752951796eb225729","impliedFormat":1},{"version":"4eaff3d8e10676fd7913d8c108890e71c688e1e7d52f6d1d55c39514f493dc47","impliedFormat":1},{"version":"14b5aa23c5d0ae1907bc696ac7b6915d88f7d85799cc0dc2dcf98fbce2c5a67c","impliedFormat":1},{"version":"5c439dafdc09abe4d6c260a96b822fa0ba5be7203c71a63ab1f1423cd9e838ea","impliedFormat":1},{"version":"6b526a5ec4a401ca7c26cfe6a48e641d8f30af76673bad3b06a1b4504594a960","affectsGlobalScope":true,"impliedFormat":1},{"version":"00dee7cdca8b8420c47ea4a31a34b8e8294013ebc4f463fd941e867e7bf05029","affectsGlobalScope":true,"impliedFormat":1},{"version":"3256f3cccd578f9e7fe3a28096c505634bebcee8afb738ffa99368e536ca3a0b","impliedFormat":1},{"version":"1c84b46267610a34028edfd0d035509341751262bac1062857f3c8df7aff7153","impliedFormat":1},{"version":"7f138842074d0a40681775af008c8452093b68c383c94de31759e853c6d06b5c","impliedFormat":1},{"version":"a3d541d303ee505053f5dcbf9fafb65cac3d5631037501cd616195863a6c5740","impliedFormat":1},{"version":"8d3c583a07e0c37e876908c2d5da575019f689df8d9fa4c081d99119d53dba22","impliedFormat":1},{"version":"2c828a5405191d006115ab34e191b8474bc6c86ffdc401d1a9864b1b6e088a58","impliedFormat":1},{"version":"e630e5528e899219ae319e83bef54bf3bcb91b01d76861ecf881e8e614b167f0","affectsGlobalScope":true,"impliedFormat":1},{"version":"bcebb922784739bdb34c18ee51095d25a92b560c78ccd2eaacd6bd00f7443d83","impliedFormat":1},{"version":"7ee6ed878c4528215c82b664fe0cfe80e8b4da6c0d4cc80869367868774db8b1","impliedFormat":1},{"version":"b0973c3cbcdc59b37bf477731d468696ecaf442593ec51bab497a613a580fe30","impliedFormat":1},{"version":"4989e92ba5b69b182d2caaea6295af52b7dc73a4f7a2e336a676722884e7139d","affectsGlobalScope":true,"impliedFormat":1},{"version":"0715e4cd28ad471b2a93f3e552ff51a3ae423417a01a10aa1d3bc7c6b95059d6","affectsGlobalScope":true,"impliedFormat":1},{"version":"5153a2fd150e46ce57bb3f8db1318d33f6ad3261ed70ceeff92281c0608c74a3","impliedFormat":1},{"version":"210d54cd652ec0fec8c8916e4af59bb341065576ecda039842f9ffb2e908507c","impliedFormat":1},{"version":"36b03690b628eab08703d63f04eaa89c5df202e5f1edf3989f13ad389cd2c091","impliedFormat":1},{"version":"0effadd232a20498b11308058e334d3339cc5bf8c4c858393e38d9d4c0013dcf","impliedFormat":1},{"version":"25846d43937c672bab7e8195f3d881f93495df712ee901860effc109918938cc","impliedFormat":1},{"version":"4f3fdeba4e28e21aa719c081b8dc8f91d47e12e773389b9d35679c08151c9d37","impliedFormat":1},{"version":"1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff","impliedFormat":1},{"version":"69ee23dd0d215b09907ad30d23f88b7790c93329d1faf31d7835552a10cf7cbf","impliedFormat":1},{"version":"44b8b584a338b190a59f4f6929d072431950c7bd92ec2694821c11bce180c8a5","impliedFormat":1},{"version":"23b89798789dffbd437c0c423f5d02d11f9736aea73d6abf16db4f812ff36eda","impliedFormat":1},{"version":"f69ff39996a61a0dd10f4bce73272b52e8024a4d58b13ab32bf4712909d0a2b7","impliedFormat":1},{"version":"3c4ba1dd9b12ffa284b565063108f2f031d150ea15b8fafbdc17f5d2a07251f3","affectsGlobalScope":true,"impliedFormat":1},{"version":"e10177274a35a9d07c825615340b2fcde2f610f53f3fb40269fd196b4288dda6","impliedFormat":1},{"version":"1422cd9e705adcc09088fda85a900c2b70e3ad36ea85846f68bd1a884cdf4e2b","impliedFormat":1},{"version":"3c13ef48634e7b5012fcf7e8fce7496352c2d779a7201389ca96a2a81ee4314d","impliedFormat":1},{"version":"5d0a25ec910fa36595f85a67ac992d7a53dd4064a1ba6aea1c9f14ab73a023f2","impliedFormat":1},{"version":"a73ae8c0e62103bb9e21bb6538700881bf135b9a8b125b857ec68edfa0da4ed3","affectsGlobalScope":true,"impliedFormat":1},{"version":"e1c1b2fbe236bf7ee3e342eeae7e20efb8988a0ac7da1cbbfa2c1f66b76c3423","affectsGlobalScope":true,"impliedFormat":1},{"version":"868831cab82b65dfe1d68180e898af1f2101e89ba9b754d1db6fb8cc2fac1921","impliedFormat":1},{"version":"0fe8985a28f82c450a04a6edf1279d7181c0893f37da7d2a27f8efd4fd5edb03","impliedFormat":1},{"version":"e59a892d87e72733e2a9ca21611b9beb52977be2696c7ba4b216cbbb9a48f5aa","impliedFormat":1},{"version":"52120bb7e4583612225bdf08e7c12559548170f11e660d33a33623bae9bbdbba","affectsGlobalScope":true,"impliedFormat":1},{"version":"8a300fa9b698845a1f9c41ecbe2c5966634582a8e2020d51abcace9b55aa959e","impliedFormat":1},{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a6dd3dba8e665ac43d279e0fdf5219edda0eed69b5e9a5061f46cd6a65c4f7a1","impliedFormat":1}],"root":[227],"options":{"composite":true,"declarationMap":true,"emitDeclarationOnly":false,"importHelpers":true,"module":199,"noEmitOnError":true,"noFallthroughCasesInSwitch":true,"noImplicitOverride":true,"noImplicitReturns":true,"noUnusedLocals":false,"noUnusedParameters":false,"outDir":"./","rootDir":"../src","skipLibCheck":true,"strict":true,"target":9,"tsBuildInfoFile":"./tsconfig.lib.tsbuildinfo"},"referencedMap":[[134,1],[135,1],[136,2],[228,3],[229,3],[231,4],[232,5],[233,6],[234,7],[235,8],[236,9],[237,10],[238,11],[239,12],[240,13],[241,13],[243,14],[242,15],[244,14],[245,16],[246,17],[230,18],[280,1],[247,19],[248,20],[249,21],[281,22],[250,23],[251,24],[252,25],[253,26],[254,27],[255,28],[256,29],[257,30],[258,31],[259,32],[260,32],[261,33],[262,34],[264,35],[263,36],[265,37],[266,38],[267,1],[268,39],[269,40],[270,41],[271,42],[272,43],[273,44],[274,45],[275,46],[276,47],[277,48],[278,49],[279,50],[138,1],[140,51],[207,52],[137,53],[202,52],[141,1],[139,54],[208,55],[196,56],[203,57],[142,58],[55,59],[54,1],[52,1],[53,1],[9,1],[10,1],[12,1],[11,1],[2,1],[13,1],[14,1],[15,1],[16,1],[17,1],[18,1],[19,1],[20,1],[3,1],[21,1],[22,1],[4,1],[23,1],[27,1],[24,1],[25,1],[26,1],[28,1],[29,1],[30,1],[5,1],[31,1],[32,1],[33,1],[34,1],[6,1],[38,1],[35,1],[36,1],[37,1],[39,1],[7,1],[40,1],[45,1],[46,1],[41,1],[42,1],[43,1],[44,1],[8,1],[50,1],[47,1],[48,1],[49,1],[1,1],[51,1],[226,60],[168,61],[169,62],[195,63],[225,64],[171,1],[170,65],[164,61],[167,66],[166,63],[165,1],[193,65],[194,67],[172,65],[163,68],[145,69],[144,1],[132,1],[131,1],[133,70],[128,71],[130,1],[76,1],[158,1],[129,1],[161,72],[156,73],[160,74],[159,1],[157,1],[127,75],[75,1],[153,65],[150,65],[152,65],[147,65],[148,65],[155,76],[151,1],[146,65],[154,65],[149,65],[162,77],[143,78],[221,79],[217,80],[216,81],[218,79],[223,82],[222,81],[219,61],[220,79],[209,83],[197,84],[199,84],[214,85],[211,86],[200,80],[212,80],[201,84],[204,87],[198,84],[210,88],[205,80],[206,80],[213,89],[224,90],[215,78],[126,91],[125,92],[77,93],[58,94],[57,95],[56,94],[63,96],[62,97],[70,1],[60,98],[59,98],[69,97],[71,99],[67,1],[61,1],[72,100],[64,1],[68,97],[73,101],[66,96],[65,102],[74,103],[124,104],[120,105],[122,106],[121,1],[123,107],[78,108],[192,109],[190,110],[189,110],[191,111],[188,1],[227,112],[187,113],[175,114],[173,1],[176,115],[174,105],[180,1],[181,116],[177,1],[179,117],[178,1],[182,1],[184,118],[183,1],[185,119],[186,120],[84,1],[87,121],[86,122],[89,121],[91,123],[90,122],[88,121],[92,1],[85,124],[95,125],[94,1],[93,1],[80,122],[79,1],[83,126],[81,1],[82,127],[112,1],[109,114],[113,114],[119,128],[111,114],[108,114],[114,114],[116,1],[110,114],[117,114],[115,114],[107,129],[118,130],[100,131],[101,132],[99,1],[103,133],[104,134],[102,1],[106,135],[98,136],[96,1],[97,1],[105,1]],"latestChangedDtsFile":"./index.d.ts","version":"5.8.3"}
|
package/package.json
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@fluixi/session",
|
|
3
|
+
"version": "1.0.0-alpha.53",
|
|
4
|
+
"private": false,
|
|
5
|
+
"publishConfig": {
|
|
6
|
+
"registry": "https://registry.npmjs.org/",
|
|
7
|
+
"access": "public"
|
|
8
|
+
},
|
|
9
|
+
"description": "Client-side session lifecycle for Fluixi — createSession: bring a backend adapter, get token/user signals, isAuthenticated, persistence, hydrate and automatic token refresh. (The full server-first auth engine lives in @fluixi/auth.)",
|
|
10
|
+
"type": "module",
|
|
11
|
+
"files": [
|
|
12
|
+
"dist",
|
|
13
|
+
"README.md"
|
|
14
|
+
],
|
|
15
|
+
"main": "./dist/index.js",
|
|
16
|
+
"module": "./dist/index.js",
|
|
17
|
+
"types": "./dist/index.d.ts",
|
|
18
|
+
"exports": {
|
|
19
|
+
"./package.json": "./package.json",
|
|
20
|
+
".": {
|
|
21
|
+
"types": "./dist/index.d.ts",
|
|
22
|
+
"import": "./dist/index.mjs",
|
|
23
|
+
"require": "./dist/index.cjs",
|
|
24
|
+
"default": "./dist/index.js"
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
"dependencies": {
|
|
28
|
+
"tslib": "^2.3.0"
|
|
29
|
+
},
|
|
30
|
+
"devDependencies": {
|
|
31
|
+
"@bambiste/mix-builder": "*",
|
|
32
|
+
"cross-env": "^7.0.3",
|
|
33
|
+
"inquirer": "^14.0.2",
|
|
34
|
+
"@fluixi/core": "1.0.0-alpha.53",
|
|
35
|
+
"@fluixi/reactive": "1.0.0-alpha.53"
|
|
36
|
+
},
|
|
37
|
+
"peerDependencies": {
|
|
38
|
+
"@fluixi/core": "1.0.0-alpha.53",
|
|
39
|
+
"@fluixi/reactive": "1.0.0-alpha.53"
|
|
40
|
+
},
|
|
41
|
+
"repository": {
|
|
42
|
+
"type": "git",
|
|
43
|
+
"url": "https://github.com/fluixi/core.git",
|
|
44
|
+
"directory": "packages/session"
|
|
45
|
+
},
|
|
46
|
+
"scripts": {
|
|
47
|
+
"build:typings": "tsc -p tsconfig.lib.json",
|
|
48
|
+
"build": "pnpm run build:typings && cross-env NODE_ENV=production mix-builder",
|
|
49
|
+
"dev": "tsc -w -p tsconfig.lib.json",
|
|
50
|
+
"test": "vitest run"
|
|
51
|
+
}
|
|
52
|
+
}
|