gemi 0.120.1 → 0.122.0
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/dist/auth/AuthController.d.ts +14 -0
- package/dist/auth/AuthController.d.ts.map +1 -1
- package/dist/auth/config.d.ts +16 -0
- package/dist/auth/config.d.ts.map +1 -1
- package/dist/auth/connections/ConnectionManager.d.ts +33 -8
- package/dist/auth/connections/ConnectionManager.d.ts.map +1 -1
- package/dist/auth/connections/ConnectionStore.d.ts.map +1 -1
- package/dist/auth/connections/ConnectionsController.d.ts.map +1 -1
- package/dist/auth/connections/InstagramConnectionProvider.d.ts +80 -0
- package/dist/auth/connections/InstagramConnectionProvider.d.ts.map +1 -0
- package/dist/auth/connections/OAuthConnectionProvider.d.ts +91 -5
- package/dist/auth/connections/OAuthConnectionProvider.d.ts.map +1 -1
- package/dist/auth/connections/errors.d.ts +1 -1
- package/dist/auth/connections/errors.d.ts.map +1 -1
- package/dist/auth/oauth/InstagramOAuthProvider.d.ts +46 -0
- package/dist/auth/oauth/InstagramOAuthProvider.d.ts.map +1 -0
- package/dist/auth/oauth/OAuthProvider.d.ts +13 -0
- package/dist/auth/oauth/OAuthProvider.d.ts.map +1 -1
- package/dist/auth/oauth/instagram.d.ts +114 -0
- package/dist/auth/oauth/instagram.d.ts.map +1 -0
- package/dist/auth/oauth/metaSignedRequest.d.ts +43 -0
- package/dist/auth/oauth/metaSignedRequest.d.ts.map +1 -0
- package/dist/auth/types.d.ts +2 -1
- package/dist/auth/types.d.ts.map +1 -1
- package/dist/{chunk-cytq2msw.js → chunk-2yw4yezc.js} +1 -1
- package/dist/{chunk-s6vvqsd0.js → chunk-3rvn9a76.js} +1 -1
- package/dist/chunk-3s21p9n2.js +57 -0
- package/dist/{chunk-b5a5vvkk.js.map → chunk-3s21p9n2.js.map} +7 -7
- package/dist/{chunk-ar4d3vmr.js → chunk-dyp0wg9e.js} +1 -1
- package/dist/chunk-rhek27sj.js +71 -0
- package/dist/chunk-rhek27sj.js.map +13 -0
- package/dist/{chunk-qphjhpad.js → chunk-shfe0b22.js} +2 -2
- package/dist/{chunk-qphjhpad.js.map → chunk-shfe0b22.js.map} +1 -1
- package/dist/console/run.js +1 -1
- package/dist/facades/Connections.d.ts +12 -5
- package/dist/facades/Connections.d.ts.map +1 -1
- package/dist/facades/index.js +1 -1
- package/dist/http/index.js +1 -1
- package/dist/i18n/index.js +1 -1
- package/dist/kernel/index.js +1 -1
- package/dist/server/index.js +1 -1
- package/dist/services/index.d.ts +10 -2
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/index.js +15 -15
- package/dist/services/index.js.map +7 -3
- package/package.json +1 -1
- package/dist/chunk-1xdrs2hx.js +0 -71
- package/dist/chunk-1xdrs2hx.js.map +0 -13
- package/dist/chunk-b5a5vvkk.js +0 -57
- /package/dist/{chunk-cytq2msw.js.map → chunk-2yw4yezc.js.map} +0 -0
- /package/dist/{chunk-s6vvqsd0.js.map → chunk-3rvn9a76.js.map} +0 -0
- /package/dist/{chunk-ar4d3vmr.js.map → chunk-dyp0wg9e.js.map} +0 -0
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The Instagram API with Instagram Login (Business Login for Instagram), as
|
|
3
|
+
* both `InstagramOAuthProvider` (sign-in) and `InstagramConnectionProvider`
|
|
4
|
+
* (connections) use it:
|
|
5
|
+
*
|
|
6
|
+
* 1. `https://www.instagram.com/oauth/authorize` — comma-separated scopes, no PKCE.
|
|
7
|
+
* 2. `POST https://api.instagram.com/oauth/access_token` — the code for a
|
|
8
|
+
* short-lived token (one hour), client credentials in the form body.
|
|
9
|
+
* 3. `GET https://graph.instagram.com/access_token?grant_type=ig_exchange_token`
|
|
10
|
+
* — the short-lived token for a long-lived one (60 days).
|
|
11
|
+
* 4. `GET https://graph.instagram.com/refresh_access_token?grant_type=ig_refresh_token`
|
|
12
|
+
* — a long-lived token at least 24 hours old, for another 60 days. There
|
|
13
|
+
* is no refresh token: the access token renews itself.
|
|
14
|
+
* 5. `GET https://graph.instagram.com/me?fields=user_id,username,…` — the
|
|
15
|
+
* account. Instagram returns no email.
|
|
16
|
+
*
|
|
17
|
+
* None of these answers carries a secret in an error message here: only the
|
|
18
|
+
* HTTP status and Instagram's error type and code.
|
|
19
|
+
*/
|
|
20
|
+
/** The scopes asked for unless configured. */
|
|
21
|
+
export declare const INSTAGRAM_DEFAULT_SCOPES: string[];
|
|
22
|
+
/** Where the calls go. Overridable for tests; the defaults are Instagram's. */
|
|
23
|
+
export interface InstagramEndpoints {
|
|
24
|
+
/** Default `https://www.instagram.com/oauth/authorize`. */
|
|
25
|
+
authorizeUrl?: string;
|
|
26
|
+
/** Default `https://api.instagram.com/oauth/access_token`. */
|
|
27
|
+
tokenUrl?: string;
|
|
28
|
+
/** Default `https://graph.instagram.com`: the long-lived exchange, the refresh and `/me`. */
|
|
29
|
+
graphUrl?: string;
|
|
30
|
+
/**
|
|
31
|
+
* A Graph API version for `/me`, such as `"v25.0"`. Default none: the
|
|
32
|
+
* unversioned path, which answers with the app's default version.
|
|
33
|
+
*/
|
|
34
|
+
graphApiVersion?: string;
|
|
35
|
+
}
|
|
36
|
+
export declare const INSTAGRAM_ENDPOINTS: Required<Omit<InstagramEndpoints, "graphApiVersion">>;
|
|
37
|
+
/** The account, as `/me` returns it. Ids are strings, never numbers. */
|
|
38
|
+
export interface InstagramProfile {
|
|
39
|
+
/**
|
|
40
|
+
* The Instagram professional account id (`user_id`, the `<IG_ID>` the
|
|
41
|
+
* publishing endpoints take). Stable, and what gemi uses as the account's
|
|
42
|
+
* identity: `providerId` for sign-in, `providerAccountId` for connections.
|
|
43
|
+
*/
|
|
44
|
+
user_id: string;
|
|
45
|
+
/** The app-scoped user id (`id`). Meta's deauthorize and data-deletion callbacks may name this one. */
|
|
46
|
+
id?: string;
|
|
47
|
+
username?: string;
|
|
48
|
+
name?: string;
|
|
49
|
+
/** `"BUSINESS"` or `"MEDIA_CREATOR"`. */
|
|
50
|
+
account_type?: string;
|
|
51
|
+
profile_picture_url?: string;
|
|
52
|
+
}
|
|
53
|
+
/** A refused or failed call to Instagram. */
|
|
54
|
+
export declare class InstagramApiError extends Error {
|
|
55
|
+
readonly status: number | undefined;
|
|
56
|
+
/** Instagram's `error_type` / `error.type` (`OAuthException`), when it sent one. */
|
|
57
|
+
readonly type?: string;
|
|
58
|
+
/** Instagram's numeric `code` (190: invalid token), when it sent one. */
|
|
59
|
+
readonly code?: number;
|
|
60
|
+
constructor(message: string, status: number | undefined,
|
|
61
|
+
/** Instagram's `error_type` / `error.type` (`OAuthException`), when it sent one. */
|
|
62
|
+
type?: string,
|
|
63
|
+
/** Instagram's numeric `code` (190: invalid token), when it sent one. */
|
|
64
|
+
code?: number, options?: {
|
|
65
|
+
cause?: unknown;
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
export interface InstagramShortLivedToken {
|
|
69
|
+
accessToken: string;
|
|
70
|
+
/** The `user_id` the exchange answered with, as a string (never rounded). */
|
|
71
|
+
userId: string | null;
|
|
72
|
+
/** The permissions granted. */
|
|
73
|
+
permissions: string[] | null;
|
|
74
|
+
}
|
|
75
|
+
export interface InstagramLongLivedToken {
|
|
76
|
+
accessToken: string;
|
|
77
|
+
tokenType: string | null;
|
|
78
|
+
/** Seconds. About 60 days (5184000). */
|
|
79
|
+
expiresIn: number | null;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Exchanges the authorization code for a short-lived token. A trailing `#_`,
|
|
83
|
+
* which Instagram appends to the redirect, is dropped from the code.
|
|
84
|
+
*/
|
|
85
|
+
export declare function exchangeInstagramCode(args: {
|
|
86
|
+
code: string;
|
|
87
|
+
clientId: string;
|
|
88
|
+
clientSecret: string;
|
|
89
|
+
redirectUri: string;
|
|
90
|
+
tokenUrl?: string;
|
|
91
|
+
}): Promise<InstagramShortLivedToken>;
|
|
92
|
+
/** Trades a short-lived token for a long-lived (60-day) one. */
|
|
93
|
+
export declare function exchangeInstagramLongLivedToken(args: {
|
|
94
|
+
accessToken: string;
|
|
95
|
+
clientSecret: string;
|
|
96
|
+
graphUrl?: string;
|
|
97
|
+
}): Promise<InstagramLongLivedToken>;
|
|
98
|
+
/**
|
|
99
|
+
* Renews a long-lived token for another 60 days. Instagram refuses a token
|
|
100
|
+
* younger than 24 hours, an expired one, and one without
|
|
101
|
+
* `instagram_business_basic`.
|
|
102
|
+
*/
|
|
103
|
+
export declare function refreshInstagramToken(args: {
|
|
104
|
+
accessToken: string;
|
|
105
|
+
graphUrl?: string;
|
|
106
|
+
}): Promise<InstagramLongLivedToken>;
|
|
107
|
+
/** The token's account, from `/me`. */
|
|
108
|
+
export declare function fetchInstagramProfile(args: {
|
|
109
|
+
accessToken: string;
|
|
110
|
+
graphUrl?: string;
|
|
111
|
+
graphApiVersion?: string;
|
|
112
|
+
fields?: string[];
|
|
113
|
+
}): Promise<InstagramProfile>;
|
|
114
|
+
//# sourceMappingURL=instagram.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"instagram.d.ts","sourceRoot":"","sources":["../../../auth/oauth/instagram.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/** What a Meta `signed_request` says, once its signature checks out. */
|
|
2
|
+
export interface MetaSignedRequest {
|
|
3
|
+
/** `"HMAC-SHA256"`. */
|
|
4
|
+
algorithm: string;
|
|
5
|
+
/**
|
|
6
|
+
* The user the callback is about, as a string. For Facebook Login, the
|
|
7
|
+
* app-scoped user id. For the Instagram API with Instagram Login it may be
|
|
8
|
+
* the app-scoped id (`id` from `/me`) rather than the Instagram account id
|
|
9
|
+
* (`user_id`), so keep both when an account is connected (`onConnected`'s
|
|
10
|
+
* `profile` has both) and match against either.
|
|
11
|
+
*/
|
|
12
|
+
user_id: string;
|
|
13
|
+
/** Unix seconds. */
|
|
14
|
+
issued_at?: number;
|
|
15
|
+
/** Unix seconds; `0` or absent when it does not expire. */
|
|
16
|
+
expires?: number;
|
|
17
|
+
[key: string]: unknown;
|
|
18
|
+
}
|
|
19
|
+
/** Why `parseMetaSignedRequest` refused a `signed_request`. */
|
|
20
|
+
export declare class MetaSignedRequestError extends Error {
|
|
21
|
+
readonly reason: "malformed" | "unsupported_algorithm" | "bad_signature" | "expired" | "missing_user";
|
|
22
|
+
constructor(reason: "malformed" | "unsupported_algorithm" | "bad_signature" | "expired" | "missing_user", message: string);
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Parses and verifies the `signed_request` Meta POSTs to an app's
|
|
26
|
+
* **deauthorize** and **data deletion** callbacks (Facebook Login, and the
|
|
27
|
+
* Instagram API with Instagram Login): `<signature>.<payload>`, both
|
|
28
|
+
* base64url, the signature an HMAC-SHA256 of the encoded payload under the
|
|
29
|
+
* app secret. Throws `MetaSignedRequestError` unless the signature matches
|
|
30
|
+
* (compared in constant time), the algorithm is HMAC-SHA256, it has not
|
|
31
|
+
* expired, and it names a user.
|
|
32
|
+
*
|
|
33
|
+
* ```ts
|
|
34
|
+
* const { user_id } = parseMetaSignedRequest(req.input.get("signed_request"), process.env.INSTAGRAM_CLIENT_SECRET!);
|
|
35
|
+
* ```
|
|
36
|
+
*
|
|
37
|
+
* For Instagram the app secret is the **Instagram** app secret (the one the
|
|
38
|
+
* Instagram providers use), not the Facebook app's.
|
|
39
|
+
*/
|
|
40
|
+
export declare function parseMetaSignedRequest(signedRequest: unknown, appSecret: string, options?: {
|
|
41
|
+
now?: number;
|
|
42
|
+
}): MetaSignedRequest;
|
|
43
|
+
//# sourceMappingURL=metaSignedRequest.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metaSignedRequest.d.ts","sourceRoot":"","sources":["../../../auth/oauth/metaSignedRequest.ts"],"names":[],"mappings":"AAEA,wEAAwE;AACxE,MAAM,WAAW,iBAAiB;IAChC,uBAAuB;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB;;;;;;OAMG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB,oBAAoB;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2DAA2D;IAC3D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,+DAA+D;AAC/D,qBAAa,sBAAuB,SAAQ,KAAK;IAE7C,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,uBAAuB,GAAG,eAAe,GAAG,SAAS,GAAG,cAAc;gBAA5F,MAAM,EAAE,WAAW,GAAG,uBAAuB,GAAG,eAAe,GAAG,SAAS,GAAG,cAAc,EACrG,OAAO,EAAE,MAAM;CAKlB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,sBAAsB,CACpC,aAAa,EAAE,OAAO,EACtB,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAO,GAC7B,iBAAiB,CAiDnB"}
|
package/dist/auth/types.d.ts
CHANGED
|
@@ -110,7 +110,8 @@ export interface SessionWithUser {
|
|
|
110
110
|
}
|
|
111
111
|
export interface CreateUserArgs {
|
|
112
112
|
name: string;
|
|
113
|
-
|
|
113
|
+
/** `null` only for a user created by an OAuth provider with `createUsersWithoutEmail`. */
|
|
114
|
+
email: string | null;
|
|
114
115
|
password?: string;
|
|
115
116
|
verificationToken?: string;
|
|
116
117
|
emailVerifiedAt?: Date;
|
package/dist/auth/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../auth/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../auth/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{S as q,T as KJ,U as OJ}from"./chunk-
|
|
2
|
+
import{S as q,T as KJ,U as OJ}from"./chunk-shfe0b22.js";import{oa as B,sa as L,ta as UJ}from"./chunk-a22h5cby.js";import"./chunk-kk18xqgc.js";import{De as QJ,Ee as A,Vc as a}from"./chunk-3s21p9n2.js";import"./chunk-65beps2q.js";import"./chunk-m53fgf20.js";import{Ef as o,Ff as n,If as i}from"./chunk-4acpw92g.js";import{Jg as HJ}from"./chunk-cca0grq3.js";import"./chunk-m83zm86m.js";import"./chunk-rhek27sj.js";import"./chunk-19dpzp4y.js";import"./chunk-yds7zwc3.js";import"./chunk-meg8rtr6.js";import"./chunk-h43jp8ws.js";import"./chunk-s07v65x6.js";import"./chunk-gc2dz11k.js";import"./chunk-cskqet01.js";import"./chunk-fenc5tpv.js";import"./chunk-nz8z8jr1.js";import"./chunk-4fx8p02c.js";import{Ui as e}from"./chunk-er8acmch.js";import"./chunk-2n3pgfnb.js";import{fj as YJ}from"./chunk-d5f1m3d2.js";import{gj as N}from"./chunk-rhvc1axc.js";import"./chunk-tewhms9w.js";import{createHash as X2}from"crypto";import{join as w,resolve as VJ,sep as zJ}from"path";import{Duplex as TJ}from"stream";import{constants as P,createBrotliCompress as RJ,createGzip as bJ}from"zlib";var kJ=["br","gzip"],SJ=1024,wJ=5,vJ=19,EJ=6;function yJ(J){if(J===void 0)return 1;if(!/^\d+(\.\d{0,3})?$/.test(J.trim()))return 1;let $=Number(J.trim());return Number.isFinite($)?Math.min($,1):1}function gJ(J){if(J===null||J===void 0)return null;let $=new Map;for(let Z of J.split(",")){let[X,...Q]=Z.split(";"),H=X.trim().toLowerCase();if(H==="")continue;let j=1;for(let Y of Q){let K=Y.indexOf("=");if(K===-1)continue;if(Y.slice(0,K).trim().toLowerCase()==="q"){j=yJ(Y.slice(K+1));break}}$.set(H,j)}return $}function b(J,$=kJ){let Z=gJ(J);if(!Z)return null;let X=Z.get("*"),Q=null,H=0;for(let j of $){let Y=Z.get(j)??X??0;if(Y>H)Q=j,H=Y}return Q}function fJ(J,$){if(!J)return!1;return J.split(",").some((Z)=>Z.trim().toLowerCase().split("=")[0].trim()===$)}function mJ(J,$){if(J==="HEAD")return!1;if($.status<200||$.status===204||$.status===206||$.status===304)return!1;if($.headers.has("Content-Range"))return!1;let Z=$.headers.get("Content-Type");if(!Z||!/^\s*text\/html\s*(;|$)/i.test(Z))return!1;if(!$.body)return!1;let X=$.headers.get("Content-Encoding");if(X&&X.trim().toLowerCase()!=="identity")return!1;if(fJ($.headers.get("Cache-Control"),"no-transform"))return!1;let Q=$.headers.get("Content-Length");if(Q!==null&&Number(Q)<SJ)return!1;return!0}function uJ(J){let $=J==="br"?RJ({params:{[P.BROTLI_PARAM_QUALITY]:wJ,[P.BROTLI_PARAM_LGWIN]:vJ},flush:P.BROTLI_OPERATION_FLUSH}):bJ({level:EJ,flush:P.Z_SYNC_FLUSH});return TJ.toWeb($)}function hJ(J){let $=J.get("Vary");if(!$){J.set("Vary","Accept-Encoding");return}let Z=$.split(",").map((X)=>X.trim().toLowerCase());if(Z.includes("*")||Z.includes("accept-encoding"))return;J.append("Vary","Accept-Encoding")}function c(J,$){if(!mJ(J.method,$))return $;let Z=new Headers($.headers);hJ(Z);let X=b(J.headers.get("Accept-Encoding"));if(!X)return new Response($.body,{status:$.status,statusText:$.statusText,headers:Z});let Q;try{Q=uJ(X)}catch{return new Response($.body,{status:$.status,statusText:$.statusText,headers:Z})}return Z.set("Content-Encoding",X),Z.delete("Content-Length"),new Response($.body.pipeThrough(Q),{status:$.status,statusText:$.statusText,headers:Z})}import{readdir as iJ,stat as t}from"fs/promises";import{join as aJ}from"path";import{mkdir as O2,readFile as cJ,stat as V2,writeFile as z2}from"fs/promises";import{dirname as L2,join as pJ}from"path";import{promisify as p}from"util";import{brotliCompress as dJ,constants as I2,gzip as lJ}from"zlib";var oJ=".vite/static-assets.json";var d={br:".br",gzip:".gz"},nJ=["br","gzip"],P2=p(dJ),_2=p(lJ);async function l(J){let $;try{$=await cJ(pJ(J,oJ),"utf8")}catch{return null}let Z;try{Z=JSON.parse($)?.files}catch{return null}if(!Z||typeof Z!=="object")return null;let X={files:{}};for(let[Q,H]of Object.entries(Z)){if(!Array.isArray(H))continue;X.files[Q]=nJ.filter((j)=>H.includes(j))}return X}function k(J){let $=J.toString(),Z=new Bun.CryptoHasher("sha1");return Z.update($),Z.digest("hex")}async function r(J){let $=new Set;async function Z(X,Q){let H;try{H=await iJ(X,{withFileTypes:!0})}catch{return}for(let j of H){if(j.name.startsWith("."))continue;if(Q&&j.name==="assets")continue;let Y=aJ(X,j.name),K=j.isDirectory(),V=j.isFile();if(j.isSymbolicLink())try{let F=await t(Y);K=F.isDirectory(),V=F.isFile()}catch{continue}if(V)$.add(Y);else if(K&&!j.isSymbolicLink())await Z(Y,!1)}}return await Z(J,!0),$}var tJ="public, max-age=31536000, must-revalidate",rJ="public, max-age=31536000, immutable";async function sJ(J,$,Z){if(Z.length===0||J.headers.has("Range"))return null;let X=b(J.headers.get("Accept-Encoding"),Z);if(!X)return null;let Q=$+d[X];try{let H=await t(Q);return H.isFile()?{encoding:X,path:Q,size:H.size}:null}catch{return null}}async function s(J,$,Z={}){let X=Bun.file($),Q=Z.encodings??[],H={"Content-Type":X.type||"application/octet-stream","Cache-Control":Z.immutable?rJ:tJ,"Accept-Ranges":"bytes"};if(Q.length>0)H.Vary="Accept-Encoding";let j=await sJ(J,$,Q);if(j){let V=Bun.file(j.path);return new Response(V.stream(),{headers:{...H,"Content-Encoding":j.encoding,"Content-Length":String(j.size),ETag:`${k(V.lastModified)}-${j.encoding}`}})}let Y=X.size;H.ETag=k(X.lastModified);let K=o(J.headers.get("Range"));if(K){let V=n(K,Y);if(!V)return a(Y);return new Response(X.slice(V.start,V.end+1).stream(),{status:206,headers:{...H,"Content-Range":i(V.start,V.end,Y),"Content-Length":String(V.length)}})}return new Response(X.stream(),{headers:{...H,"Content-Length":String(Y)}})}import{stat as Q2}from"fs/promises";var _="app/client.tsx";function JJ(J,$=B){let Z=J[_]?.file;if(!Z)return;return{module:L(Z,$),preload:M(J,_,$)}}function M(J,$,Z=B){let X=[],Q=new Set,H=(j)=>{if(Q.has(j))return;Q.add(j);let Y=J[j];if(!Y?.file)return;X.push(L(Y.file,Z));for(let K of Y.imports??[])H(K)};return H($),X}function $J(J,$){let Z=[],X=new Set,Q=new Set,H=(j)=>{if(Q.has(j))return;Q.add(j);let Y=J[j];if(!Y)return;for(let K of Y.imports??[])H(K);for(let K of Y.css??[])if(!X.has(K))X.add(K),Z.push(K)};return H($),Z}function ZJ(J,$=B){let Z=new Map;return(X)=>{if(!Z.has(X)){let Q=`${X}${e}`,H=J[Q]?.file;Z.set(X,H?{src:L(H,$),preload:M(J,Q,$)}:void 0)}return Z.get(X)}}function XJ(J,$=30000){let Z=JSON.stringify("gemi:chunk-reload"),X=JSON.stringify(`Failed to fetch dynamically imported module: ${J}`);return`var r=!1;try{var s=window.sessionStorage,m=JSON.parse(s.getItem(${Z})||"null");var d=m?Date.now()-m.at:NaN;if(navigator.onLine!==!1&&!(d>=0&&d<${$})){s.setItem(${Z},JSON.stringify({url:window.location.href,at:Date.now()}));r=!0}}catch(e){}if(r)window.location.reload();else throw new Error(${X});export {}`}var eJ=new RegExp(`^${QJ}/.+\\.m?js$`);function J2(J){return eJ.test(J)}function WJ(J){if(J2(J))return new Response(XJ(J),{headers:{"Content-Type":"application/javascript","Cache-Control":"no-store"}});if(A(J))return new Response("Not found",{status:404});return}var $2=`<!DOCTYPE html>
|
|
3
3
|
<html lang="en">
|
|
4
4
|
<head>
|
|
5
5
|
<meta charset="UTF-8" />
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{R as C,T as h,U as m}from"./chunk-
|
|
2
|
+
import{R as C,T as h,U as m}from"./chunk-shfe0b22.js";import{ma as w,na as q}from"./chunk-zg6hmc48.js";import"./chunk-a22h5cby.js";import"./chunk-epvpmakp.js";import"./chunk-r3v2cnrj.js";import"./chunk-c0v61fp5.js";import"./chunk-kk18xqgc.js";import"./chunk-krtybgz1.js";import{Jg as _}from"./chunk-cca0grq3.js";import{Ui as y}from"./chunk-er8acmch.js";import{gj as N}from"./chunk-rhvc1axc.js";import"./chunk-tewhms9w.js";import{join as $J}from"path";import{createServer as zJ}from"vite";import{join as l}from"path";import{IncomingMessage as d,ServerResponse as p}from"http";import{Socket as i}from"net";function v(J){return J.replace(/\x1b\[[0-9;]*m/g,"").replace(/\[[0-9;]*m/g,"").replace(/\n\s*\n/g,`
|
|
3
3
|
`).split(`
|
|
4
4
|
`).map((W)=>W.trim()).filter((W)=>W.length>0).join(`
|
|
5
5
|
`).trim()}function D(J){return`
|