@jchat/runtime 1.0.0-alpha.26 → 1.0.0-alpha.28
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/CHANGELOG.md +32 -0
- package/dist/distribution.d.mts +13 -0
- package/dist/distribution.mjs +4 -0
- package/dist/index.d.mts +128 -15
- package/dist/index.mjs +9 -1
- package/package.json +11 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,37 @@
|
|
|
1
1
|
# @jchat/runtime
|
|
2
2
|
|
|
3
|
+
## 1.0.0-alpha.28
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- Enhance license verification security and add offline grace period support
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- Harden public distribution bundle with string encryption and control-flow obfuscation
|
|
12
|
+
|
|
13
|
+
- Enhance feature stage access validation and add runtime feature guard plugin
|
|
14
|
+
|
|
15
|
+
- Harden production licensing against sandbox overrides and localhost spoofing
|
|
16
|
+
|
|
17
|
+
- Isolate runtime data directory in test environments
|
|
18
|
+
|
|
19
|
+
- Enforce signature verification for development multi-site license evaluations
|
|
20
|
+
|
|
21
|
+
- Bumped `@jchat/*` dependencies:
|
|
22
|
+
- [`shared@1.0.0-alpha.26`](https://github.com/jchatcloud/jchat/releases/tag/shared@v1.0.0-alpha.26)
|
|
23
|
+
|
|
24
|
+
## 1.0.0-alpha.27
|
|
25
|
+
|
|
26
|
+
### Patch Changes
|
|
27
|
+
|
|
28
|
+
- Update registry activation and check client to parse standardized response envelope
|
|
29
|
+
|
|
30
|
+
- Standardize Bun.env usage and eliminate redundant process.env dual checks
|
|
31
|
+
|
|
32
|
+
- Bumped `@jchat/*` dependencies:
|
|
33
|
+
- [`shared@1.0.0-alpha.25`](https://github.com/jchatcloud/jchat/releases/tag/shared@v1.0.0-alpha.25)
|
|
34
|
+
|
|
3
35
|
## 1.0.0-alpha.26
|
|
4
36
|
|
|
5
37
|
No changes in this release.
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
//#region src/distribution.d.ts
|
|
2
|
+
export declare const APPLICATION_DISTRIBUTIONS: readonly ["production", "developer-sandbox"];
|
|
3
|
+
export type ApplicationDistribution = (typeof APPLICATION_DISTRIBUTIONS)[number];
|
|
4
|
+
/**
|
|
5
|
+
* Authoritatively resolves the application distribution mode. Completely isomorphic with zero
|
|
6
|
+
* Node/Bun built-in dependencies. In production environments, strictly enforces "production"
|
|
7
|
+
* distribution.
|
|
8
|
+
*/
|
|
9
|
+
export declare function resolveApplicationDistribution(value?: unknown): ApplicationDistribution;
|
|
10
|
+
export declare function isDeveloperSandbox(): boolean;
|
|
11
|
+
export declare const APPLICATION_DISTRIBUTION: ApplicationDistribution;
|
|
12
|
+
export declare const IS_DEVELOPER_SANDBOX: boolean;
|
|
13
|
+
//#endregion
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
function e(){let t=`FexdMSohqYOHaW.l8kxW5OOW5aezCoP.zmkbWOmkWRm5WONcV8kktG.d8kjzs5o.esGsWOe3eSo8fCk6WPG.j8ooWQuQFq.WQhcSXtcQ8kMW6BcKG.WQGNrNqUWRuUbufo.vMhdJcNdRq.E8k0AmkwW4ZcL8kyD1u.mmksxqH9gmogWPi.tCoYW4m.tL/cQGFdImk1WRRcMmoJa8o1WO5KWRa.W5ZcKCoSFSkSemogWR4.bIGVWOyXcCoNeq.nZKOhgW.WQhcO8oGWQNdMSkkW4pcM8oF.imoqWPTBfq.jKGzqJRcGCoNWRpdMW.iCotWPj7oW.n8kyBW5Sgq.W4FcQWxdQ8kBW4u3avNcLa.x8khWOC8WOC.W5RdTuj4WQK.pmkdt8kYeW.kXJcNCkzwq.WQLsWPONvG.W4nMW4NcUmkoWPtcV8kPgmoD.umoVWQ9yWR5WgCo2W6jKWPJdHSki.WPJcPrJcVCkR.W5ZcIf/cJqzWeSk9W57cNvSDoa.W7vUpcHM.W74GtCkwWPpcJ8kz.iCowWQuxBLTotH01.lSokWQJdHmkB.W7RcVSopgCkJ.W7RdICkkrh7cPSoWxSkc.sCoSW4xcK3e.lX/cRSkssa.WQldHCkyp8oslGtcTrtcTG.D8kgWQSaWQ4.WRKprmk+WQBcL8km.W6D5W4tcN8k6.n8osWPKJyW.W6hdQ0yWqW.W67cM8ou.oCkhW5pdUCk1eMqehmk6.fmoWW4xcQ8kgW7DeBHeSpW.WOhcIGiNW5tdKSk6WPnNWOmDWPpdLa.nW/cSwVcMWew.vuJdHINdUq.FmkZz8oLWORcNCkpqh4BWQW.q2ldHc3dUYK.whBdQZ3dSq.EhWTjIi.W61ubvhdIq.vSoqWPVdLI5hWQiOW4lcGa.W7/dISkkmtNdN8orw8k/W65KpW.W5ldLf12.W4fdW6hcRCk8.WQ/dUIddTwezySkcW6xcRa.l8k1W6ldRCkE.n8o1WQq+yG.WPaMWPC+WQe.ACkSW4ldKmkocNK.W6pdQ0JdT8oZWRZdMItcUdjlnYW.qwVdSmoMFGax.WPGgWRSDWRhcGmohWOW.W4NdKSoOr8oDWPv1W6ZcT8o2atNdK8kx.WRlcKGbJpf7cSJhdStKmDSoO.pWyRa0u.v8oBEG.WRXYeCobW4FdMmkqWR9sfCo0W6O.WRtdT8kPk8o5.W7eDW6PUgCkmmGxcONy`.split(`.`);return e=function(){return t},e()}const t=n;(function(e,t){let r=n,i=e();for(;;)try{if(-parseInt(r(255,`1ilt`))/1+parseInt(r(264,`%(Qf`))/2+parseInt(r(254,`Y*9V`))/3*(parseInt(r(248,`L&p#`))/4)+parseInt(r(272,`sLIq`))/5+-parseInt(r(276,`R5]@`))/6+-parseInt(r(216,`EV&W`))/7*(parseInt(r(204,`L&p#`))/8)+parseInt(r(275,`Ivgd`))/9===t)break;i.push(i.shift())}catch{i.push(i.shift())}})(e,914250);function n(t,r){t-=203;let i=e(),a=i[t];if(n.ATbQtk===void 0){var o=function(e){let t=``,n=``,r=t+o,i=(``+function(){return 0}).indexOf(`
|
|
2
|
+
`)!==-1;for(let n=0,a,o,s=0;o=e.charAt(s++);~o&&(a=n%4?a*64+o:o,n++%4)&&(t+=i||r.charCodeAt(s+10)-10!=0?String.fromCharCode(255&a>>(-2*n&6)):n))o=`abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=`.indexOf(o);for(let e=0,r=t.length;e<r;e++)n+=`%`+(`00`+t.charCodeAt(e).toString(16)).slice(-2);return decodeURIComponent(n)};n.dciNfQ=function(e,t){let n=[],r=0,i,a=``;e=o(e);let s=0;for(;s<256;s++)n[s]=s;for(s=0;s<256;s++)r=(r+n[s]+t.charCodeAt(s%t.length))%256,i=n[s],n[s]=n[r],n[r]=i;s=0,r=0;for(let t=0;t<e.length;t++)s=(s+1)%256,r=(r+n[s])%256,i=n[s],n[s]=n[r],n[r]=i,a+=String.fromCharCode(e.charCodeAt(t)^n[(n[s]+n[r])%256]);return a},n.BTgDel={},n.ATbQtk=!0}let s=i[0];n.iFDFBx!==s&&(n.BTgDel={},n.iFDFBx=s);let c=n.BTgDel[t];if(c===void 0){if(n.dFTyjG===void 0){let e=function(e){this.IAIgJJ=e,this.ATsJnB=[1,0,0],this.AiJsfv=function(){return`newState`},this.tCVVVE=`\\w+ *\\(\\) *{\\w+ *`,this.BDwjSP=`['|"].+['|"];? *}`};e.prototype.iVPLLz=function(){let e=new RegExp(this.tCVVVE+this.BDwjSP).test(this.AiJsfv.toString())?--this.ATsJnB[1]:--this.ATsJnB[0];return this.gQMvoH(e)},e.prototype.gQMvoH=function(e){return~e?this.JyjVUj(this.IAIgJJ):e},e.prototype.JyjVUj=function(e){for(let e=0,t=this.ATsJnB.length;e<t;e++)this.ATsJnB.push(Math.round(Math.random())),t=this.ATsJnB.length;return e(this.ATsJnB[0])},(``+function(){return 0}).indexOf(`
|
|
3
|
+
`)===-1&&new e(n).iVPLLz(),n.dFTyjG=!0}a=n.dciNfQ(a,r),n.BTgDel[t]=a}else a=c;return a}const r=[t(240,`x)dT`),t(253,`iM$9`)+t(213,`sLIq`)];function i(e){let n=t,r={TmbCA:function(e,t){return e!==t},jHqjL:n(225,`aSFS`),rWGqG:n(263,`Vgg0`)+n(256,`5f*b`),KtkRA:n(209,`Z^8G`),eOcva:function(e,t){return e!==t},ZinvD:function(e,t){return e===t},vjoYf:function(e,t){return e!==t},SBdJB:function(e,t){return e===t},CKhMh:function(e,t){return e===t}};if(r[n(249,`EU0p`)](typeof e,r[n(250,`mZ[O`)]))return e===r[n(266,`EU0p`)]?n(228,`N6a5`)+n(239,`L&p#`):r[n(222,`[Qov`)];let i=r[n(257,`PcL)`)](typeof Bun,r[n(251,`R5]@`)])&&r[n(270,`3^s5`)](Bun[n(203,`%0LJ`)]?.[n(207,`qeVk`)],r[n(229,`Z^8G`)])||typeof process!==n(223,`VW5N`)&&process.env?.NODE_ENV===n(234,`EU0p`);return r[n(212,`x)dT`)](typeof __JCHAT_DISTRIBUTION__,r[n(250,`mZ[O`)])&&r[n(241,`g#h(`)](__JCHAT_DISTRIBUTION__,r[n(205,`Embc`)])?i?r[n(210,`%lhu`)]:`developer-`+n(256,`5f*b`):r[n(261,`Bqgs`)](typeof Bun,r[n(230,`1ilt`)])&&r[n(277,`[Qov`)](Bun[n(218,`2E@i`)]?.[n(267,`lIKB`)+n(274,`3^s5`)],r[n(232,`HZIx`)])?i?r.KtkRA:r[n(268,`iM$9`)]:r[n(224,`Zb2W`)]}function a(){let e=t,r={joLwM:function(e,t){return e!==t},uaRrc:e(206,`ne5u`)+`+$`,ffivu:function(e,t,n){return e(t,n)},cuGnh:function(e){return e()},EipjC:function(e,t){return e!==t},Jwbro:`undefined`,hqNbi:function(e,t){return e===t},jEGcI:`production`,vPtzV:function(e,t){return e!==t},pgXgd:function(e,t){return e===t},wrQXd:function(e){return e()},pDZYI:e(246,`Embc`)+e(273,`qeVk`)},a=function(){let e=!0;return function(t,r){let i=e?function(){let e=n;if(r){let n=r[e(244,`2E@i`)](t,arguments);return r=null,n}}:function(){};return e=!1,i}}(),o=r[e(215,`PcL)`)](a,this,function(){let t=e;if(!r[t(269,`mZ[O`)](o[t(265,`1ilt`)]()[t(217,`%lhu`)]().indexOf(`
|
|
4
|
+
`),-1))return o[t(221,`D4Z#`)]()[t(259,`PcL)`)](t(214,`X*dK`)+`+$`)[t(220,`R(F]`)]()[t(211,`D4Z#`)+`r`](o)[t(227,`%lhu`)](r[t(238,`X*dK`)])});return r[e(247,`Z^8G`)](o),r.EipjC(typeof Bun,r[e(226,`Zb2W`)])&&r[e(260,`PcL)`)](Bun[e(252,`pmJ[`)]?.[e(208,`QmZF`)],r[e(262,`(RUS`)])||r[e(245,`HZIx`)](typeof process,r[e(236,`sLIq`)])&&r[e(233,`ne5u`)](process.env?.NODE_ENV,r.jEGcI)?!1:r[e(242,`vcXJ`)](i)===r[e(231,`Y*gh`)]}const o=i(),s=a();export{o as APPLICATION_DISTRIBUTION,r as APPLICATION_DISTRIBUTIONS,s as IS_DEVELOPER_SANDBOX,a as isDeveloperSandbox,i as resolveApplicationDistribution};
|
package/dist/index.d.mts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { APPLICATION_DISTRIBUTION, APPLICATION_DISTRIBUTIONS, ApplicationDistribution, IS_DEVELOPER_SANDBOX, isDeveloperSandbox, resolveApplicationDistribution } from "./distribution.mjs";
|
|
1
2
|
import { Elysia } from "elysia";
|
|
2
3
|
//#region src/domain.d.ts
|
|
3
4
|
export type Provider = "envato" | "jchat";
|
|
@@ -78,6 +79,42 @@ type CheckInput = {
|
|
|
78
79
|
export declare const DEFAULT_LICENSE_SERVER_URL = "https://license.jchatcloud.com";
|
|
79
80
|
export declare const DEFAULT_LICENSE_ISSUER = "https://license.jchatcloud.com";
|
|
80
81
|
export declare const DEFAULT_LICENSE_AUDIENCE = "jchat-chat";
|
|
82
|
+
export declare function getOfficialSigningPublicKey(): string;
|
|
83
|
+
export declare const OFFICIAL_SIGNING_PUBLIC_KEY: string;
|
|
84
|
+
//#endregion
|
|
85
|
+
//#region src/feature-crypto.d.ts
|
|
86
|
+
export interface FeatureExecutionContext {
|
|
87
|
+
isValid: boolean;
|
|
88
|
+
featureKey: string;
|
|
89
|
+
stage?: FeatureStage;
|
|
90
|
+
siteId?: string;
|
|
91
|
+
executionToken?: string;
|
|
92
|
+
error?: string;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Derives a cryptographically bound HMAC-SHA256 secret for a specific feature using the verified
|
|
96
|
+
* signature of the instance license token. Throws an Error if the signature is invalid or the token
|
|
97
|
+
* cannot be verified.
|
|
98
|
+
*/
|
|
99
|
+
export declare function deriveFeatureKey(token: string, featureKey: string, domain?: string, options?: RuntimeOptions): string;
|
|
100
|
+
/**
|
|
101
|
+
* Checks and returns the allowed feature stages (stable, beta, experimental) for the current
|
|
102
|
+
* instance. The license token MUST have a valid RS256 cryptographic signature against the vendor
|
|
103
|
+
* public key; otherwise, only "stable" is returned.
|
|
104
|
+
*/
|
|
105
|
+
export declare function checkAllowedStages(domain?: string, options?: RuntimeOptions): FeatureStage[];
|
|
106
|
+
/**
|
|
107
|
+
* Checks and returns the release channel (stable, lts) for the current instance. Reverts to
|
|
108
|
+
* "stable" if the token has no valid cryptographic signature.
|
|
109
|
+
*/
|
|
110
|
+
export declare function checkReleaseChannel(domain?: string, options?: RuntimeOptions): ReleaseChannel;
|
|
111
|
+
/** Verifies that the instance is cryptographically licensed to execute a feature at a given stage. */
|
|
112
|
+
export declare function verifyFeatureStageAccess(stage: FeatureStage, domain?: string, options?: RuntimeOptions): boolean;
|
|
113
|
+
/**
|
|
114
|
+
* Derives a full FeatureExecutionContext. If the feature's required stage is not licensed or the
|
|
115
|
+
* token signature is invalid, isValid is false with an appropriate error message.
|
|
116
|
+
*/
|
|
117
|
+
export declare function deriveFeatureExecutionContext(featureKey: string, requiredStage?: FeatureStage, siteId?: string, domain?: string, options?: RuntimeOptions): FeatureExecutionContext;
|
|
81
118
|
//#endregion
|
|
82
119
|
//#region src/state.d.ts
|
|
83
120
|
type LocalState = {
|
|
@@ -88,10 +125,12 @@ type LocalState = {
|
|
|
88
125
|
lastSuccessfulCheckAt?: string;
|
|
89
126
|
};
|
|
90
127
|
export declare function resolveDataDir(): string;
|
|
128
|
+
export declare function getDefaultStatePath(): string;
|
|
91
129
|
export declare const DEFAULT_STATE_PATH: string;
|
|
92
130
|
export declare function createIdentity(): {
|
|
93
131
|
installationId: string;
|
|
94
132
|
};
|
|
133
|
+
export declare function readStateSync(filePath?: string): LocalState | null;
|
|
95
134
|
export declare function readTokenSync(filePath?: string): string;
|
|
96
135
|
export declare function readState(filePath?: string): Promise<LocalState | null>;
|
|
97
136
|
export declare function writeState(state: LocalState, filePath?: string): Promise<void>;
|
|
@@ -148,8 +187,8 @@ export type RuntimePluginOptions = {
|
|
|
148
187
|
allowedPaths?: Set<string>;
|
|
149
188
|
onInvalidate?: () => void;
|
|
150
189
|
getSiteCount?: () => Promise<number> | number;
|
|
190
|
+
token?: string;
|
|
151
191
|
};
|
|
152
|
-
export declare function startRuntimeSupervisor(options?: RuntimePluginOptions): Promise<void>;
|
|
153
192
|
export declare function jchatRuntime(options?: RuntimePluginOptions): Elysia<"", {
|
|
154
193
|
decorator: {};
|
|
155
194
|
store: {};
|
|
@@ -189,6 +228,64 @@ export declare function jchatRuntime(options?: RuntimePluginOptions): Elysia<"",
|
|
|
189
228
|
standaloneSchema: {};
|
|
190
229
|
response: {};
|
|
191
230
|
}>;
|
|
231
|
+
export declare class FeatureForbiddenError extends Error {
|
|
232
|
+
readonly status = 403;
|
|
233
|
+
readonly responseStatus: string;
|
|
234
|
+
readonly reference: string;
|
|
235
|
+
constructor(message: string, reference?: string, responseStatus?: string);
|
|
236
|
+
}
|
|
237
|
+
export interface FeatureGuardOptions {
|
|
238
|
+
feature: string;
|
|
239
|
+
stage?: FeatureStage;
|
|
240
|
+
domain?: string;
|
|
241
|
+
requiredEntitlement?: string;
|
|
242
|
+
resolveSiteId?: (context: {
|
|
243
|
+
headers: Record<string, string | undefined>;
|
|
244
|
+
authContext?: {
|
|
245
|
+
site?: {
|
|
246
|
+
id: string;
|
|
247
|
+
};
|
|
248
|
+
};
|
|
249
|
+
[key: string]: unknown;
|
|
250
|
+
}) => Promise<string | undefined> | string | undefined;
|
|
251
|
+
isSiteEnabled?: (siteId: string, feature: string) => Promise<boolean> | boolean;
|
|
252
|
+
}
|
|
253
|
+
/**
|
|
254
|
+
* Elysia guard plugin that verifies a feature is active and authorized for the site/instance.
|
|
255
|
+
* Checks cryptographic license stage access, token validity, and site-level overrides.
|
|
256
|
+
*/
|
|
257
|
+
export declare function runtimeFeatureGuard(options: FeatureGuardOptions): Elysia<"", {
|
|
258
|
+
decorator: {};
|
|
259
|
+
store: {};
|
|
260
|
+
derive: {};
|
|
261
|
+
resolve: {};
|
|
262
|
+
}, {
|
|
263
|
+
typebox: {};
|
|
264
|
+
error: {};
|
|
265
|
+
}, {
|
|
266
|
+
schema: {};
|
|
267
|
+
standaloneSchema: {};
|
|
268
|
+
macro: {};
|
|
269
|
+
macroFn: {};
|
|
270
|
+
parser: {};
|
|
271
|
+
response: {};
|
|
272
|
+
}, {}, {
|
|
273
|
+
derive: {
|
|
274
|
+
readonly featureContext: FeatureExecutionContext;
|
|
275
|
+
};
|
|
276
|
+
resolve: {};
|
|
277
|
+
schema: {};
|
|
278
|
+
standaloneSchema: {};
|
|
279
|
+
response: {};
|
|
280
|
+
}, {
|
|
281
|
+
derive: {};
|
|
282
|
+
resolve: {};
|
|
283
|
+
schema: {};
|
|
284
|
+
standaloneSchema: {};
|
|
285
|
+
response: {};
|
|
286
|
+
}>;
|
|
287
|
+
export declare function refreshLicenseLease(options?: RuntimePluginOptions): Promise<CheckResult | null>;
|
|
288
|
+
export declare function startRuntimeSupervisor(options?: RuntimePluginOptions): Promise<void>;
|
|
192
289
|
//#endregion
|
|
193
290
|
//#region src/server-context.d.ts
|
|
194
291
|
export interface BaseServerContext {
|
|
@@ -198,24 +295,32 @@ export interface BaseServerContext {
|
|
|
198
295
|
SYSTEM_BOOTSTRAP_COMPLETE?: boolean;
|
|
199
296
|
[key: string]: unknown;
|
|
200
297
|
}
|
|
298
|
+
export interface ServerSchema<T> {
|
|
299
|
+
parse: (data: unknown) => T;
|
|
300
|
+
}
|
|
201
301
|
/**
|
|
202
|
-
*
|
|
203
|
-
*
|
|
204
|
-
*
|
|
302
|
+
* Validates the server environment against the application schema and seals the server context. In
|
|
303
|
+
* fresh installations or unconfigured bootstrap states where schema parsing fails, it safely falls
|
|
304
|
+
* back to an uninstalled state with a randomized cookie secret and SYSTEM_BOOTSTRAP_COMPLETE =
|
|
305
|
+
* false.
|
|
205
306
|
*/
|
|
206
|
-
export declare function
|
|
307
|
+
export declare function loadServerConfig<T extends Record<string, unknown>>(schema: ServerSchema<T>, environment?: Record<string, unknown>, distribution?: ApplicationDistribution, publicKeyPem?: string): T & {
|
|
207
308
|
JCHAT_COOKIE_SECRET: string;
|
|
208
309
|
SYSTEM_BOOTSTRAP_COMPLETE: boolean;
|
|
209
310
|
};
|
|
210
|
-
/**
|
|
211
|
-
|
|
311
|
+
/**
|
|
312
|
+
* Cryptographically verifies license state, validates production domain rules, salts
|
|
313
|
+
* JCHAT_COOKIE_SECRET with the HMAC license signature if verified, or randomizes it and flags
|
|
314
|
+
* SYSTEM_BOOTSTRAP_COMPLETE as false if invalid.
|
|
315
|
+
*/
|
|
316
|
+
export declare function sealServerContext<T extends Record<string, unknown>>(environmentOrConfig: T, distribution?: ApplicationDistribution, publicKeyPem?: string): T & {
|
|
212
317
|
JCHAT_COOKIE_SECRET: string;
|
|
213
318
|
SYSTEM_BOOTSTRAP_COMPLETE: boolean;
|
|
214
319
|
};
|
|
215
320
|
//#endregion
|
|
216
321
|
//#region src/index.d.ts
|
|
217
322
|
export type RuntimeEnvironment = "production" | "development";
|
|
218
|
-
export type FeatureStage = "stable" | "beta" | "experimental";
|
|
323
|
+
export type FeatureStage = "stable" | "beta" | "experimental" | "deprecated";
|
|
219
324
|
export type ReleaseChannel = "stable" | "lts";
|
|
220
325
|
export type ConfigPayload = {
|
|
221
326
|
iss: string;
|
|
@@ -240,20 +345,28 @@ export type ConfigPayload = {
|
|
|
240
345
|
};
|
|
241
346
|
};
|
|
242
347
|
export type RuntimeOptions = {
|
|
243
|
-
publicKeyPem
|
|
348
|
+
publicKeyPem?: string;
|
|
244
349
|
issuer?: string;
|
|
245
350
|
audience?: string;
|
|
351
|
+
allowOfflineGrace?: boolean;
|
|
352
|
+
lastSuccessfulCheckAt?: string;
|
|
353
|
+
gracePeriodDays?: number;
|
|
246
354
|
};
|
|
247
355
|
export type RuntimeStatus = "valid" | "unreachable-fallback" | "invalid" | "unavailable";
|
|
248
356
|
export declare function parsePayload(token: string): ConfigPayload | null;
|
|
249
|
-
export declare function
|
|
357
|
+
export declare function resolveSigningPublicKey(providedPem?: string): string;
|
|
358
|
+
export declare function verifySignature(token: string, currentDomain: string, options?: RuntimeOptions): boolean;
|
|
250
359
|
export declare function verifyEntitlement(token: string, currentDomain: string, installationId: string, options?: RuntimeOptions): boolean;
|
|
251
|
-
export declare function hasEntitlement(token: string, currentDomain: string, entitlement: string, options
|
|
360
|
+
export declare function hasEntitlement(token: string, currentDomain: string, entitlement: string, options?: RuntimeOptions): boolean;
|
|
252
361
|
export declare function isMultiSiteAllowed(token: string | undefined | null, domain?: string, options?: RuntimeOptions): boolean;
|
|
253
|
-
export declare function hasCapability(token: string | null | undefined, capability: string): boolean;
|
|
254
|
-
export declare function hasStageAccess(token: string | null | undefined, stage: FeatureStage): boolean;
|
|
362
|
+
export declare function hasCapability(token: string | null | undefined, capability: string, domain?: string, options?: RuntimeOptions): boolean;
|
|
363
|
+
export declare function hasStageAccess(token: string | null | undefined, stage: FeatureStage, domain?: string, options?: RuntimeOptions): boolean;
|
|
255
364
|
export declare function getMaxSites(token: string | null | undefined): number;
|
|
256
|
-
export declare function getReleaseChannel(token: string | null | undefined): ReleaseChannel;
|
|
365
|
+
export declare function getReleaseChannel(token: string | null | undefined, domain?: string, options?: RuntimeOptions): ReleaseChannel;
|
|
257
366
|
export declare function canCreateMultiSite(token: string | null | undefined): boolean;
|
|
367
|
+
export declare function checkHasEntitlement(entitlement: string, domain?: string): boolean;
|
|
368
|
+
export declare function checkMaxSites(domain?: string, options?: RuntimeOptions): number;
|
|
369
|
+
export declare function checkCanCreateMultiSite(domain?: string): boolean;
|
|
370
|
+
export declare function getContextPlan(defaultPlan?: string, domain?: string, options?: RuntimeOptions): string;
|
|
258
371
|
//#endregion
|
|
259
|
-
export type
|
|
372
|
+
export { APPLICATION_DISTRIBUTION, APPLICATION_DISTRIBUTIONS, type ActivationInput, type ActivationResult, ApplicationDistribution, type CheckInput, type CheckResult, IS_DEVELOPER_SANDBOX, type LocalState, isDeveloperSandbox, resolveApplicationDistribution };
|
package/dist/index.mjs
CHANGED
|
@@ -1 +1,9 @@
|
|
|
1
|
-
import e from"node:crypto";import t from"node:net";import n from"node:fs/promises";import r from"node:path";import i from"node:fs";import{Elysia as a}from"elysia";const o=`https://license.jchatcloud.com`,s=`https://license.jchatcloud.com`,c=`jchat-chat`,l=new Set([`localhost`,`127.0.0.1`,`::1`]),u=[`.local`,`.test`,`.invalid`,`.example`];function d(e){let t=e.trim();if(!t)throw Error(`Instance domain is required`);let n=new URL(t.includes(`://`)?t:`https://${t}`).hostname.toLowerCase().replace(/\.$/,``),r=n===`www.localhost`?`localhost`:n.replace(/^www\./,``);if(!r||r.includes(`@`)||/\s/.test(r))throw Error(`Invalid instance domain`);return{host:r,isLocalhost:l.has(r)}}function f(e){let{host:n,isLocalhost:r}=d(e);return!r&&t.isIP(n)===0&&n.includes(`.`)&&!u.some(e=>n.endsWith(e))}function p(e){try{return d(e).isLocalhost||f(e)}catch{return!1}}function m(e){try{return d(e).isLocalhost}catch{return!1}}function h(e){let{host:n,isLocalhost:r}=d(e);if(r||t.isIP(n)!==0)return null;let i=n.split(`.`);if(i.length<=2)return n;let a=new Set([`co`,`com`,`org`,`net`,`gov`,`edu`,`ac`,`sch`]),o=i.at(-1)??``,s=i.at(-2)??``;return a.has(s)&&o.length===2&&i.length>=3?i.slice(-3).join(`.`):i.slice(-2).join(`.`)}function g(e,t){try{let n=d(e).host,r=d(t).host;if(n===r||n.endsWith(`.${r}`))return!0;let i=h(n),a=h(r);return!!(i&&a&&i===a)}catch{return!1}}function _(e,t,n,r=`current-host`){let i=d(e).host;return n===`subdomain`&&t&&r===`parent-domain`?h(i)??i:i}function v(e={}){let t=r.resolve(e.cwd??process.cwd()),n=e.env??Bun.env,i=b(t);return{repoRoot:i,runtimeRoot:t,uploadsDir:x(n.JCHAT_UPLOADS_DIR,t,i,`uploads`,`uploads`),addonBundlesDir:x(n.JCHAT_ADDONS_DIR,t,i,`addons`,`addons`),addonSourceDir:i?r.join(i,`addons`):r.join(t,`addons`),migrationsDir:x(n.JCHAT_MIGRATIONS_DIR,t,i,r.join(`packages`,`db`,`migrations`),`migrations`),dataDir:x(n.JCHAT_DATA_DIR,t,i,`data`,`data`)}}function y(e){return i.existsSync(r.join(e,`package.json`))&&i.existsSync(r.join(e,`apps`))&&i.existsSync(r.join(e,`packages`))}function b(e){let t=r.resolve(e);for(;;){if(y(t))return t;let e=r.dirname(t);if(e===t)return null;t=e}}function x(e,t,n,i,a){return e?r.resolve(e):n?r.join(n,i):r.join(t,a)}function S(){return v().dataDir}const C=r.join(S(),`instance.json`);function w(){return{installationId:Bun.randomUUIDv7()}}function T(e=C){try{if(!i.existsSync(e))return``;let t=i.readFileSync(e,`utf8`);return JSON.parse(t)?.instanceToken??``}catch{return``}}async function E(e=C){try{let t=Bun.file(e);if(!await t.exists())return null;let n=JSON.parse(await t.text());if(!n||typeof n!=`object`)return null;let r=n;return r.version!==1||typeof r.installationId!=`string`||!r.installationId||typeof r.instanceToken!=`string`||!r.instanceToken?null:r}catch{return null}}async function D(e,t=C){let i=r.dirname(t);await n.mkdir(i,{recursive:!0});let a=`${t}.${process.pid}.${Bun.randomUUIDv7()}.tmp`;await Bun.write(a,`${JSON.stringify(e,null,2)}\n`),await n.rename(a,t)}async function ee(e,t=C){let n=await E(t);if(!n)throw Error(`Local license state is missing`);await D({...n,instanceToken:e,lastSuccessfulCheckAt:new Date().toISOString()},t)}function O(e){if(e)return e.length<=8?`redacted`:`${e.slice(0,4)}…${e.slice(-4)}`}async function te(e,t,i=r.join(S(),`license-events.log`)){await n.mkdir(r.dirname(i),{recursive:!0});let a=JSON.stringify({at:new Date().toISOString(),event:e,domain:O(t.domain),installationId:O(t.installationId),reference:O(t.reference)});await n.appendFile(i,`${a}\n`,`utf8`)}let k=`unavailable`,A=`startup`,j;function ne(e){j=e}function M(t,n=e.randomUUID()){k=t,A=n,t===`invalid`&&j?.()}function N(){return{status:k,reference:A}}function P(){return k===`invalid`}function F(e=Bun.env.NODE_ENV===`production`){return!!(k===`invalid`||e&&k===`unavailable`)}function I(){return Bun.env.JCHAT_LICENSE_SERVER_URL||(Bun.env.NODE_ENV===`development`||Bun.env.NODE_ENV===`test`?`http://localhost:4100`:o)}async function L(e){try{let t=e.registryEndpoint??I(),n=await(e.fetchImpl??fetch)(`${t}/api/v1/activate`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({purchaseCode:e.purchaseCode,domain:d(e.domain).host,siteSlug:e.siteSlug,domainScope:e.domainScope,provider:e.provider,routingMode:e.routingMode,installationId:e.installationId,environment:d(e.domain).isLocalhost?`development`:`production`})}),r=await n.json();return n.ok===!1||!r.success||!r.token?{success:!1,message:r.message??`This license is already active on another domain. Please deactivate it first.`}:{success:!0,buyer:r.buyer??`Customer`,token:r.token,domain:r.domain??d(e.domain).host}}catch{return{success:!1,message:`Failed to connect to the central registry. Please try again later.`}}}async function R(e,t,n,r,i,a=`envato`,o=fetch){let s=w();try{let c=await L({purchaseCode:e,domain:t,siteSlug:n,domainScope:r,routingMode:i,provider:a,installationId:s.installationId,fetchImpl:o});return c.success?{valid:!0,buyer:c.buyer,token:c.token,domain:c.domain,state:s}:{valid:!1,error:c.message}}catch{return{valid:!1,error:`Failed to verify license. Check your internet connection.`}}}const z=new Set([`/health`,`/api/v1/license/status`]);async function B(e={}){if(!(e.isPrimaryWorker??(!Bun.env.WORKER_ID||Bun.env.WORKER_ID===`0`)))return;let t=e.domain??`localhost`;if(e.onInvalidate&&ne(e.onInvalidate),m(t)){M(`valid`);return}let n=await E();if(!n?.instanceToken){M(e.isBootstrapComplete?`valid`:`unavailable`);return}if(e.signingKey&&!Z(n.instanceToken,t,{publicKeyPem:e.signingKey})){M(`invalid`,`domain-mismatch`);return}if(await W(e)>(m(t)?1/0:$(n.instanceToken))){M(`invalid`,`multi-site-unauthorized`);return}M(`valid`)}function V(e={}){B(e);let t=e.allowedPaths??z;return new a({name:`jchatRuntime`}).derive({as:`global`},()=>({runtimeStatus:N()})).onBeforeHandle({as:`global`},async({request:n,set:r})=>{if(n.method===`POST`&&n.url.includes(`/owner/sites`)){let t=e.domain??`localhost`,n=await E(),i=m(t)?1/0:$(n?.instanceToken);if(await W(e)>=i)return r.status=403,{status:`license_restricted`,message:`Site creation limit reached (${i} site${i===1?``:`s`} allowed on your license). Please upgrade your license to create additional sites.`,reference:`multi-site-unauthorized`}}return U(n,r,t)})}function H(e,t,n){return n.has(e)?!0:t===`invalid`?e===`/install/upgrade-license`:t===`unavailable`?e===`/install`||e.startsWith(`/install/`)||e.startsWith(`/assets/`)||e.startsWith(`/_`)||e===`/favicon.ico`:!1}function U(e,t,n=z,r=Bun.env.NODE_ENV===`production`){let{status:i,reference:a}=N(),o=e.headers.get(`host`)?.split(`:`)[0]?.toLowerCase();if(o&&f(o)&&m(Bun.env.JCHAT_DOMAIN||`localhost`))return t.status=403,{status:`license_invalid`,message:`Public domain deployment requires a valid license matching this domain.`,reference:`public-host-requires-license`};if(i!==`valid`&&i!==`unreachable-fallback`&&(r||i!==`unavailable`)&&!H(new URL(e.url).pathname.replace(/\/+$/,``)||`/`,i,n))return t.status=503,i===`unavailable`?{status:`license_unavailable`,message:`This JChat installation is not activated. Please complete the installation.`,reference:a}:{status:`license_invalid`,message:`This JChat installation is disabled because its license is invalid.`,reference:a}}async function W(e){let t=Bun.env.DATABASE_URL??process.env.DATABASE_URL;if(t&&typeof Bun<`u`&&`SQL`in Bun)try{let e=new Bun.SQL(t),n=await e`SELECT count(*)::int as count FROM sites WHERE deleted_at IS NULL`;if(await e.close(),n?.[0]?.count!==void 0&&n[0].count!==null)return Number(n[0].count)}catch{}if(e.getSiteCount)try{return await e.getSiteCount()}catch{return 0}return 0}function G(t,n=`production`,r){let i={...t},a=!0;typeof i.JCHAT_COOKIE_SECRET!=`string`&&(i.JCHAT_COOKIE_SECRET=``);try{let t=T();if(n===`developer-sandbox`)a=!0;else if(!t)a=!1,n===`production`&&(i.JCHAT_COOKIE_SECRET=e.randomBytes(64).toString(`hex`));else{let o=typeof i.JCHAT_DOMAIN==`string`?i.JCHAT_DOMAIN:void 0,s=typeof i.NODE_ENV==`string`?i.NODE_ENV:void 0;if(!o||!p(o)||s===`production`&&!f(o))throw Error(`A valid installed JChat public domain is required for production deployments.`);if(!Z(t,o||`localhost`,{publicKeyPem:r}))a=!1,n===`production`&&(i.JCHAT_COOKIE_SECRET=e.randomBytes(64).toString(`hex`));else{let r=X(t);if(s===`production`&&r?.environment===`development`)a=!1,n===`production`&&(i.JCHAT_COOKIE_SECRET=e.randomBytes(64).toString(`hex`));else{let n=t.split(`.`),a=n[2]||``;if(a&&r){let t=e.createHmac(`sha256`,a).update(`${n[0]}.${n[1]}:${r.domain}:${r.installationId}`).digest(`hex`);i.JCHAT_COOKIE_SECRET+=t}}}}}catch{a=!1,n===`production`&&(i.JCHAT_COOKIE_SECRET=e.randomBytes(64).toString(`hex`))}return i.SYSTEM_BOOTSTRAP_COMPLETE=a,i}function re(e,t=`production`,n){return G(e,t,n)}function K(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function q(e){return typeof e==`string`&&e.trim().length>0}function J(e){if(!e)return null;try{return JSON.parse(Buffer.from(e,`base64url`).toString(`utf8`))}catch{return null}}function Y(e){let t=e.split(`.`);if(t.length!==3)return null;let n=J(t[0]);return!K(n)||n.alg!==`RS256`||n.typ!==`JWT`?null:{alg:`RS256`,typ:`JWT`}}function ie(e){if(!K(e))return null;let{iss:t,aud:n,licenseId:r,domain:i,buyer:a,installationId:o,plan:s,entitlements:c,purchaseProvider:l,environment:u,routingMode:p,iat:m,exp:h,isTrial:g,stages:_,channel:v,limits:y}=e;if(!q(t)||!q(n)||!q(r)||!q(i)||!q(a)||!q(o)||!q(s)||!Array.isArray(c)||!c.every(q)||l!==`envato`&&l!==`jchat`||u!==`production`&&u!==`development`||p!==`path`&&p!==`subdomain`||typeof m!=`number`||!Number.isSafeInteger(m)||m<0||h!==void 0&&(typeof h!=`number`||!Number.isSafeInteger(h)||h<0)||g!==void 0&&typeof g!=`boolean`)return null;let b=new Set([`stable`,`beta`,`experimental`]),x;if(_!==void 0){if(!Array.isArray(_)||!_.every(e=>typeof e==`string`&&b.has(e)))return null;x=_}let S=new Set([`stable`,`lts`]),C;if(v!==void 0){if(typeof v!=`string`||!S.has(v))return null;C=v}let w;if(y!==void 0){if(!K(y)||typeof y.maxSites!=`number`||!Number.isSafeInteger(y.maxSites))return null;w={maxSites:y.maxSites,...typeof y.maxRoomsPerSite==`number`&&Number.isSafeInteger(y.maxRoomsPerSite)?{maxRoomsPerSite:y.maxRoomsPerSite}:{}}}let T;try{T=d(i)}catch{return null}return u===`development`&&!T.isLocalhost||u===`production`&&!f(i)?null:{iss:t,aud:n,licenseId:r,domain:i,buyer:a,installationId:o,plan:s,entitlements:c,purchaseProvider:l,environment:u,routingMode:p,iat:m,...h===void 0?{}:{exp:h},...g===void 0?{}:{isTrial:g},...x===void 0?{}:{stages:x},...C===void 0?{}:{channel:C},...w===void 0?{}:{limits:w}}}function X(e){let t=e.split(`.`);return t.length!==3||!t.every(Boolean)||!Y(e)?null:ie(J(t[1]))}function Z(t,n,r){if(!t||t===`YOUR_LICENSE_KEY_PLACEHOLDER`)return!1;try{let i=t.split(`.`);if(i.length!==3||!Y(t))return!1;let a=X(t);if(!a)return!1;let o=r.issuer??Bun.env.JCHAT_LICENSE_ISSUER??`https://license.jchatcloud.com`,s=r.audience??Bun.env.JCHAT_LICENSE_AUDIENCE??`jchat-chat`;if(a.iss!==o||a.aud!==s)return!1;let c=d(n).host,l=d(a.domain).host;if(c!==l&&(a.routingMode!==`subdomain`||!c.endsWith(`.${l}`)))return!1;let u=Buffer.from(`${i[0]}.${i[1]}`),f=Buffer.from(i[2].replace(/-/g,`+`).replace(/_/g,`/`),`base64`);return e.verify(`sha256`,u,r.publicKeyPem,f)}catch{return!1}}function ae(e,t,n,r){if(r&&!Z(e,t,r))return!1;let i=X(e);return i?i.installationId===n:!1}function oe(e,t,n,r){return Z(e,t,r)?X(e)?.entitlements?.includes(n)??!1:!1}function se(e,t=`localhost`,n){if(n&&(!e||!Z(e,t,n))||!e)return!1;let r=X(e);return r?r.environment===`development`&&m(t)?!0:$(e)>1||(r.entitlements?.includes(`site.create.multi`)??!1):!1}function Q(e,t){return e?X(e)?.entitlements?.includes(t)??!1:!1}function ce(e,t){return t===`stable`?!0:e?(X(e)?.stages??[`stable`]).includes(t):!1}function $(e){return e?X(e)?.limits?.maxSites??1:1}function le(e){return e?X(e)?.channel??`stable`:`stable`}function ue(e){return $(e)>1||Q(e,`site.create.multi`)}export{c as DEFAULT_LICENSE_AUDIENCE,s as DEFAULT_LICENSE_ISSUER,o as DEFAULT_LICENSE_SERVER_URL,C as DEFAULT_STATE_PATH,L as activateRegistry,ue as canCreateMultiSite,w as createIdentity,b as findRepoRoot,$ as getMaxSites,le as getReleaseChannel,h as getRootDomain,N as getRuntimeStatus,Q as hasCapability,oe as hasEntitlement,ce as hasStageAccess,R as installAndActivate,p as isAllowedConfiguredDomain,P as isApplicationDisabled,m as isLocalhostDomain,g as isMatchingDomain,se as isMultiSiteAllowed,f as isPublicDomain,F as isRuntimeBlocked,V as jchatRuntime,re as loadServerContext,d as normalizeDomain,X as parsePayload,E as readState,T as readTokenSync,te as recordAudit,_ as resolveActivationDomain,S as resolveDataDir,v as resolveRuntimePaths,G as sealServerContext,M as setRuntimeStatus,B as startRuntimeSupervisor,ee as updateInstanceToken,ae as verifyEntitlement,Z as verifySignature,D as writeState};
|
|
1
|
+
function e(){let t=`WRqXCmocW7W.WORcK8o9tCkEo0S.EwFdSxlcGHm.c8oEvbDT.xCksi8k3yLzLxXZcIG.gmobECk8ESkX.WP7cOaddGCkM.WPOvWOdcM0W.y33dPNtcIWNdIa.ECkdn8kgWQO.W47cLbHmybVcS8kgW4hcKa.DmkqkmkVWQ4.b8kFzbtdHCoV.W5RcSrDLW4G.W6ZdNt7cOSoohSo8cmkmWOC.W5tdVJtcSSo7.WQldIW3cRmkMvCkFWOG.WP3cVtddRmkh.r8oUmSoWxmkUyCkKWOG.mSktsG.W5hcOr5YW7y.WPRcOu/dVJm.WOJcJMddOsK.eSohWQaOW7ubbZdcLSoC.W5RcKshcTq.WQv2W4aL.m8kOxIJdQa.WRyiWQpcVMy.i0bKW4S1BmoO.WPtdGf7dIG.WOpdP2aWeG.pmoBsXzhic/dJSoyW7e.mCoQWPSDW4aYkb7cRCo+.WOioemoH.gSo5WRqBW54.qCo0n8oHt8k0.mSkZDCkLWQq.WQpdKxGzdmkKW4m.F8oebmoMCq.WPZcQKOTe8oUgmkLW57dJW.hCktzrC.chuEz8kgomoMlq.CCkbnSkTWPpcJ8o2W6JcJwO.pmkoECkt.WOqfd8oW.j8o6W7/dQLO.W7hdHsJcT8oj.WQ/dSIFcMCkL.aNxdOdddPW.WO3dI8k5gsO.W4j+W6u.W7pcTSk7WRFdLqNcTeHXbG.WORcRSoVASk+.W5dcP1a6jCo1cmkJWPVdJW.cmk8W47cGCom.u8k5W4DtW58.eCkJW4VcHG.u8kGA8o8W5a.v8kYW798W6W.WQpdMgW/lW.i8kbW47cUSon.WO/dHIBcHCk8.q243WRWv.WQ4qpmoPdr8.WOJcMmopcSkn.yfBdQKhcTa.Amkad8kOWORcHCoM.xSoVnCo0vSktymkQWOLD.nffEgSo6chBdKuddQG.yZBdVI/cTuBcNYyX.WO16WPOBW7ddGw7dP8kc.q1BdJ0BcOIpdVMBdOG.WRWenmoVfW.WOlcLSoaFSkc.WO5uW6myW5C.c3hcQMldLa.g8okxSk1Emk4qCodWRpdTW.WRZcKCo8oSk+.umkNW4fuW4/dN3HmW7Kq.bCkrvCkIWP/cO8kzbCoGgG.WOdcQLOYiCo8hSk1.WPSapSoijq.feFcJwZdKKa.emoRWQKmW7m.zebXWQWCW6DY.WRNdJSkxnqPoW61YW4RdMG.W7HpW6xcLa9OW4pdNmoohG.iSoZFCktyG.WOxdQIRcHCkmDmk0WQ0.dvZcHwa.WP8pxmoTuCoqW6z4WORcQa.auldGIZdM8oDWOBdOYjY.W6fYW6C5W6C.W7ddNt/cPCo4.mKjYW5e.WO7dJvhdPCo5.yhddUhtcK03dJ0VdLW4.qCkTW7z+W6O.tM0x.CSkhk8kGWOJcIW.qhCnW5eEW4RcUCosWRii.W4XQWPiaW6/dLci.WR7dR3hdTSo+.aSoSW7RdHf/dRNBdUmo9W5O.gmktAaxdJmoJWR3dHCku.gCkxBW3dKG.eNCuAmkw.WRhcVmoGW6hdMdVcOxrtkG.W4lcJCkQe8oQW7bweq.FeOzWQGwtsX7WPHe.j8oxw0W.aM7dUWm.DKao.fmo8W6ldLvRdRgpdMSoOW4a.mmktq8kM.hLBcMfFdRq.WRTjW6/cG0rqW4pdMmokdW.WOVdHSoQxmkJWRuyfLDx.bLldGcZdM8oqWPpcUI95.u8kKeCkhWQ4.WQtcN8o9pq.WPZcV1e3la.W65jW6tcKGjEW5/dNmoa.W7rbW7xcUJrdW5ldM8oaeq.lSkwW7lcKmoo.h8oSp8o2x8kPFmkK.W4xcGSkThCo6.bMKCAmkwdmoMlgJcPq.dmoCwSkbzG.W7hcQ8kHWQFdIqtcP2XXda.pComWRiOW6eFdHFcJCoh.WQddHaFcJ8kb.c0ddVJ3dNa.cMZdNqxcSHy.WObBW4eaW7bHo8kxWRVcPW.rmk6W4nrW5pdKL9gW7Ko.iCkvuJVdGCoAzWOiyG.n8kJW4hcICouwqaLWOKD.mCkttIBdKCoDkb0cAW.cvFcGgS.amkDWRtdLa.W6HlW6NcLae.s8k2W6b1W48.WPxcGghdHqm.cCoiWR04W7SaksJcLSoq.WRVcS1OWnW.WP5LWP0BW7/dGxJdOSkiW6e.gehdVIBcNa.bmkwWRtdLchcRwbMtCo9.WQpcNSohlq.WQ53W6qGW41q.WOFcSCk3l8kJWQWfW63dK8oG.W63cS8kIWPZdGq.WR8Vi8opz8kPW5HeWRtcJa.xSkVf8ksBa.hmo3imoQ.l8o4W7JcUSoOh04EW6Ce.xCkuWPRdG8kf.WPFcTCoVrmkq.uerRWQ8vW7u3W6j7WRi.WQaQWQ3cMuW.W7tdJItcUW.bfldLJFdISoUWOBdOY8.D0uFWOif.qg4tWP0tW4ZcQmokWRqE.WQJcLCo4lmk3WPC8WRpcH8oK.pCoJWRyvW4i.hSkIW4BcM8oVebGK.W4NdKJ7cOSo8bCo8dSojWPa.jZ7cVtJdIIxdOMC.pmkDBrldJa.WPtcOK8QbG.e3bPk8oei1VdOG.WQRdKaO.u8k8W4LEW5pdKMTUW7mh.WOJcTG3dMSkTcG.WRldTKFdNSoD.WQGtAmo5W7K.zSobcwZcH8kmELKiBNldGSoUkq.WRxcHxRdPmkTxmkVm8keWRSijSot.g8okxSk/.hM/dNa.WOTJWO0.WOpcLbTaEvK.EeSBWOGF.q8kclSkXAbm.qCo1nmoXvCkQBSkOWOi.WORcJSoytCkun2ySn8oS.WOxdKWZcH8kg.vCkjoCkQErr4wW3cGq.aqjNW4WJsmo+o8kdW5a.q8ktlSkXFW5M.x2XrWOW/.W5dcHSkJqmk9WQO.bSkzEWJdGCoOWRC.w8oiWRaOW70BcIxcH8or.eCo6W7ZdKvtdR3y.nKrSW4W1Ba.fLpdKZZdKSoB.jX9GW4TQsCoYf8kwW4O.jmoBW5/dMNi.wCkubSkt.zsZdUZ7cPLW.rCkDWQRdLcpdVZ1WtSoS.mCoQWPSDW4aYkHxcPSo6.WQ7dR3FdPCoJW55xsmkTW4G.uCkqh8klWQu.m8kmAdRdJG.bKBcIgFdM0TJW4i.fxiszCotoSoIn23cRW.meHIW5eKE8oMW6PWcG.m8kAWRtdKbBdUYmZdmkR.xNVdUwBdHYRdR0VdLW4.WQNdKmoNj8kOWOWTWRlcJSoR.dxqEASkFcmoSnwtcPa.gfboomoT.rSkNW4fD.oe7dGWBcLG.WOZcObj2jvtdJmo4W63cUq.F2T7WQe/.W79iW63cLG1z.W6RcQSkIWRldJapcPa.W6ZdMspcSCoPaW.jxm8smkL.WR/dHSkdlYHpW6rWW4pdTW.vmkiiSkIyHu.r1FcJxFdJqvVW4e1W7G.wmkwoSkrAG.WOnIWRiw.lLOnhmo+bxRdMNRdOa.W7v1W6aDW5ZcOq.FJNdRMRcOeRcGZu8WOS.emkiWRddJaW.p8kIW6xcP8krwbnKW7Pa.WOJdQmkVaIG.W75jW7y.cCo6WROOW7e.FJNdQq.f8ogWRa9W7GfbclcLG.W7VcTmk6WPZdRa.pmkytsddLCoqkGWZya.k23dMYhcGG.W6/cSSk/WR7dTq.seWMWPii.BmoVWQ5bWQq.f8o1W7VdKLFdRW.WRqRWRzcWONdSarAWQKexJa.WQ0HbCopsq.W4VcJ8kX.WPGTtCoDW5y.u8k8W5PvWPtdN35aW7Ck.cmkLW5BcJq.ENldPh3cIqhdGuy.n8kVuJRdVq.W5RcNCk6WR/dRa.hwJdPdJdKa.xSo0gSoLxa.ruVdMZ3dM8oqWPtdSMK.FX9id8oPcMZcLhxdPG.w8oxWOT2WOq.WPdcHh3dGYH6W6ZdSG.e1ZcOghdIubYW6qYW6C.Et3dQcdcLW.n2BcNtdcLCoYWQ7dVInD.WPtcMXPalG7dQSoiW4lcNW.WPtdQ1uWi8o+fCk1W57cNa.WQ0PW5OGW7z9nCkCWPNcTq.WPlcGqLroH4.WPNcVY9Cla.hNtdGa7cVr3cGMmc.h8kgp8kQja0NgqVcHW.W4hcIXbOW5y.WRVcG3ddIby.WQxcHH/dRmkf.W615W6a.kwpcQMNdPG.lvqTqmkQ.bhpdOq7cPX/cRMSAWOC.FfWF.rrpcNMVdJ1bPW5u2W6C.bL/cHghdJve6WPnIWQq.bmofzCkOAW.W7DiW6pcLGHFW57dISoq.W7ZcPWBcMtO.iSovtrz9oYVdOmosW6y.W4/dJW7cNSom.C10aWQm.sNyIWR05.rN0bWQS5.qSkgiCkNzbzutXZcIG.hCokzmkVB8k3tSopW7NdVa.krL5W70B.W7/dHSk2ESoQWR0hWRVcHCoKW5m.vCkFjSkWFWG.WQhdMMa.pCk5vdFdPCoiWOddS8k0.rCoqmSorvG.vSkDW49cW6ZdTLr3W4qp.WPVcTW7dNmkWdCoJlCkMia.pSovtbfl.WQKiWQ3cPhy.gXH6W4W.ihJdHdFcPq.WOtcGh/dRJi.WQZdRNFdPCo9.eNqqBG.WPVcTXNdMCkIgSo0.z8kCk8oPWPBcNSoTW6xcL2C.h3/dMJBdIG.sKBcGM/dI1fOW4GHW70.jSkTrSkuWP8.CfWAWRKfsIj7WQjF.FJ3dUY7cTL3cGG.EwFdSxFcIWu.g8ozWQ9yWPxcJCoc.WOhcNmoJdCkc.pCoaxWbckW.WRhcNSkTWPddRbpcOW.cgtdHW.FhldVhZcGW.eCkjCCk6ySk1t8olWRtdVq.fCk6W4pcHmorhui.WO/cTX3dLSkRmmo8jmkp.wmoVp8o7.WR/dIJ3cTmkHwmkuWPW.WPLjW4u.fKpdIIRdMG.fmo4W53dVwm.W4JcRSkdWOldSa.W6FcPCkGWRi.r8kYoSknWOq.WOddLfeBWQWoAqJcIqbCWRZcJq.mmklvCkXWPu.rCk7W5G.oSkyDZa.WPRcSWVdMCkMhq.iCkzBsddHSoxjW4.WOJdG1ZdHCoBW6L8Dmku.brnCW54b.W5BcMGBcOI0Xvx3dMey.uCogWPrbWRhcOCo9.W6RcGmkkf8oU.rSo1jmoWFCkYBSkZWOGj.W4tdILddLSkxW6D2zSkuW7W.r8oWmSo0tSkI.DmkKWRhdTSkVuW.WOtcN2JdHr5gW7ZdP8o2aW.arjOW5Wmtmo3eCkGW50.F1zoWQWtW7b7W757W6e.WPeRWRRdL03cVfeofSof.WONcV2mwgq.WQzXW6OKW4PngSkhWOtcGW.d8oHW5FcHSozdbGKWOuk.aSkOESkSWOG.WPWHWQBcRLa.W5/cUGHgW6S.gSotyCkuBW.aCkpBKtdICo/WQhcLSkmEq.hSkxWQ7dJG.WO3dN2ZdJCodW6rwACkbW6S.mSoRW4tdGwC.WO/cNmo4wmkHj0WHjSo6.W4hcGqDokGpcOSozW4hcIG.jSkctd3dL8okla0.pSkpzZZdHW.FLCB.t38oWPq.cMpcVwZdJa.WOpcV1G+jCk2dSkOW5RdIq.WPRcPGJdGCk2cG.CCooWR5NWPS.dSkDWRddMY/dOW.WQ7dIXG.WOBcG38.WRKvnmoVbW.WQJcN8oJkmkYWPy.cgGZASk9.oCoaW5ldOwu.W7jZW6uFW54.WQlcSc7dUCkG.WQ7dLCkpjHK.WODPWPu.A8oeWP9kWQq.kCo6EWrM.W4mld8o3r8keW7q7.fSoaWRqUW7uzaJ7cJmog.W4ZdRWBcTmoR.m8krx8kSWP4.wgPgWOyVW5rzW4a.nuTzhSoOxdRcM3JdRa.C8kIb8kmrZ9tza.nSkchIddM8kEpqeclW.fCoqySkO.vSoQpmohxa.W442W5S7W7ldLM3dP8koW6S.xddcHLBdPKldMhmEWOtcPvro.rCo4W4HrW5BdKg5eW7uv.W5ddH18lF0pcSSkhWPe.BNBdOKZcLG.WRO/oSoUEW.nSkvuCkTWOlcO8ov.q8ktlSk3FGG.WPmPqSoGW67cN3hcRKva.jmoBvWW.WP57WRi2W53dSu3dIq.W6hdKg3cPmo4dmo2gmkDWOy.hbLaW5y8rmo3hCkxW4u.WP8mcCoOyCkyW6j3WPpcJa.WPpcLazbiaddGmoqW5tcLG.WPtdOsFcKG.WRZdJuFdNSoF.omkCsmkrWOpcQCoueSovhG.CNCxWPrAW4ZcU8oBWRWf.vmocEmkPlSk/smolWQpdOW.sComWO5a.WPZdLxFdL8oX.lCkTW47cGCoCgbGJWPG.DmkDomk/WOFcHCoUW6dcGgG.f3tdMYRdMW.h8kVCZxdQW.WQpdKw0ufCkPW4jV.WQNdIJZcHSkK.aeNdHa.cxqoFW.mgpcIt4.WQnJWPq0W4O.vSonWPvlWRZcTmoWWP7cVmoB.wCkkk8kKWOC.wSkej8kIF1z1xGNcMW.BSkPWQBdSSkm.WPxdGXbdW7bvmgRcRaK.B3CeWRWo.iSkDW5RcGSoB.m2pcNf3dVq.kmkHWOZdScG.xSkMdmkHFq.W5n2W7OyW6K.n8ktsJu.vhahWPqCW4BcP8oBWRK.WQhcKchdTmkj.W5VcSYrMW64.uSkGW4beW5pdKwLQW6yk.gmkJW4ZcHSoDgHHSWP4x.WR7cHh0Ch8oEnCkq.WOe7hmodpcNdL8ol.W6tdNtNcTW.W5/cKahcVW.WPNdIKuqnW.jSkjqSkQWOlcOq.uhS6WOiR.WQNdL28wdSkOW4S.W4ZcOITQW5y.CSkdnCkGWPi.W5hcNHZcSaX2tq.EJFdUsVcV0FcNJaH.rSkXaCklrW.qSkSW6vMW7m.bhpdGq.W4FcJ8k2eW.jmkxCstdKa.WQSrkmo0bG/dUmoPW54y.n0HVW5fHBCkJW7L8qW.i2BdKrRdNa.WOTaWPmZW7m.WOtdMa5eiWhdOmoiW4pcMa.a8kWySo+x8kcxmkMWQC.i1BcGwVdTa.v3O2WPCX.WPpcKbSflK3dTmoiW4ZcMG.dgNdNa.WOJcSXLhhG.CmoYWQS.WONdMCkzkW8.j1hdQcZdIq.W5ldQ0S8mCoUeSk0W57dJW.lmoTvCk1va.h8ogWR49W70d.oSoAW5ZdSwldNfFdUmoaW68.W6NdKI7cUSoOd8o6ga.D1vmWO8A.WOued8oWq8kEW6rXWQZcOG.EenYWO4M.WOeTu8o+W7pcJ0FcS1Hh.W5NcKaVcScr3ug3dHa.brzLW5eU.lgxdMcVdUa.W7hcPCk6WRFdJWFcLxrxla.WQpdJeWxd8k5W5rOx3S.WPpcKeGh.WOGTWRa.WP0NWQdcNK7cUXi.WQRcOhddOcO.W6lcH8kncSoT.feFcJwNdMWH1W4KYW6e.WR41W7SKW5vlfSkQWPpcLq.W5fKW4JcTJbOW6hdTSo2lW.W5n+W6pcLHC.f0hcG2RdI0z0W448W7O.WP3cOf0WmG.y8k/WR3dTCkQwa.WQBdJ8kFlq.WRldMKaDfq.WOtcIhS.lmkpAHddPW.eSohWQaOW7udcdtcTSoA.fvZcMxRdL0TNW6O8W7a.WQOqEmkU.WOL5W4SUW6W.WR1WW4myW6W.offB.WOVcRXX/bG.WR8gn8oIfG/dRCo0W5qs.o15KWOu0B8kHW7POtG.qCo0jmo8vmkGzSkNWPu.yCopaSo3W5xdSmo2nCogfmkloa.W5JdTq/cUmoh.dCovFa1M.tZ4AWP4pW53dQCosWRqs.fCo8WPepW4m.FwibWPKu.WPxcNqDxjHFdP8on.WOdcTqFdLmk3dmoJmCon.qSo1jmo2uSkMFmkKWQ9C.neChWQWrucLXWOrz.bXjaW5W.W6NcRdr/.emkzFqhdJmoKWQldK8kspq.WQddMZ/cT8o+dSk/g8kmWOy.DvCn.gmolDmk6ySkXqSozWQm.jhRdMYVcGW.ACoGWQ9VWONcImoBWRdcKCo8.FubS.WOOUtmo8.WO41rCozW70.W6NdKJVcT8oXaSo7.WOJcMGyfjH7cOSohW4/cHW.qea+WOb5f8kOrmkCW4xcN8kAW4Oy.n2bSW7yz.W5NcI8kGe8oK.WOpdJWZcO8kL.uhSbWQKG.ag4zySkhdmoIkMK.hSk6W4FcMSob.hXHQW5KMtCo0b8kh.WP55WPugW7xdJwNdHmkxW7S.W6VcTH1tW5y.beFcR1tdJW.s2ddVehcSW.phLHp8oP.WRLSW6GJW4HB.WPVcTXRdMSkVd8o0b8kkoG.WP7dICkKmb4.o1zbgSo+fa.W6xdNtNcS8k9cSo7d8kaWOa.aSo2W6hdHf/dRxtdUSoIW4O.W7jjW7pcGWvBW53dMmoqeG.WRCsCCozW5/cVNNcJNu.WPRcUW7dM8kQf8o2h8kgnW.WPRcIh3dVYG.gmkcAd/dVG.b3xdVIZdUG.W6FdMtNcHCo0h8o6kmkgWOe.DvDNWQieW7rFW7T1W7e.x8kXWQJdRSkR.zun3WQ8ZW7LYW7v/W5m.WQxcVd9XoW.p8kfwJldVq.W7tcRmk4jSob.f8oaWRa5W7OEdNZcH8od.F0THWQ8fW7vYW6u.d3imWPiBW4m.hxhcLgtdJa.b8kfAJVdSW.WRNdI28mfCk+.wwe1FCk7bSoz.WRJdNMaCd8kGW6vLwx8.W4RdVWxcL8ojnmotiSkQWRe.WPeQWRhdNG/dTwWlb8ke.bmowEmkTz8k9smoy.W57cMGy.feFcJxRdI1y.W55VW7xcSsi.j8oAtrzpiItdOSodW7W.qvBdIq.bg7dHaBcVXpcJW.b8kiFaddRG.d8oBWROX.crZcHN3dKuS.pCkOqCkpWP8.WOuzl8oLrmkvW456WOZcQa.WQJdHvZdGCozW7j2j8kwW6W.WRpcNdPwoG.ANOVWOaJ.BCkgomo9WPFcPSk6W5xcQwK.W7hcQmkrWOxdKa.WO1GWPCDW6VdR2RdRCklW6y.ySkYnCk7ra.rxSrWQGl.W5FcLGBcTq.iSoBxqncjIFdSmod.C0T0.BCoZWQfjWOu.W6lcMCoGp8k6WPqLWRO.WPqHWRRcKfxcVq.eCoTW6hdGLpcO2xdKSo/W4C.fSkTW5RcU8ordqK/.WQFdHCky.W6VdGadcTmk6rCkwWP41aG.pCkxWPhdLbq.W4ZcM8oQwSkBmuaSBCoG.WPdcICo5rCkCnq.fJfbW5WF.kvXbaCoUaJVdL3VdQa.sSonWPrAWRZcU8o0WP7cQSoE.WPy3uSoqW7a.WPpcKbTviapdSComW7pcHW.w8oUimo0vSkUAW.gg7dLGlcTrpcHwaF.zNZdS3tcIWJdG1ddGG.zd3dUYNcU0RcLwn9.W7JdLHVcR8oR.WPZcVa3dKmkLemo/mCkh.W6jnW5JcUY4.WODTW7KxW4m.W7D/W6ZcLIm.nCkdW6BcRCoNpciA.CwOnWQWx.WOhdPIBcGCkhBSk2WRiBiG.vCkUkW.WO7cM2hdQbm.fmo8W6BdQuC.WP3cOaddMa.WOZcQGddHSk3cSoclCknlq.WOnHWOSEW7NdLgNcQ8ktW6C.eCoszHhdJmo/WRS.W7vOW68wW5ZcOs8FWOqX.WQhcHJ3dPCoJ.WOtcSKK.WPpcRqntoG.E0TjWRqlutm+WPPz.W5RcKdJcLs8.pCkLxqpdKa.kCk1WQJdTCkUrGLs.gmk1WRNdNIu.cwxdHalcVXxcM2GEWOS.WPNcJaKlW7HynZ7cRr8.W6ZcKX7cKWq.bSo3FSkVAW.l8oqwG1apq.WPlcHqrmoW.W75jW7pcKKrdW57cMCohcq.iSoBxWya.WOpcV0SWlSo8.WQ4ekmoQgG.mmodWOqnW4q.WRZdKSkzjX5eW7v6W4FdMa.o8kkrSkmWO0.C2P3WOCc.WOiDWPJcGu8.iCkzvthdMG.WPVdRwy9mCkkW41Tt3a.WPhcOLC.WOddICkvjGvuW6qZW5VdKW.m8kwsmkbWQ8.WO3cMGTeiZNdRCocW4xcNq.j8ohFa1boJVdT8ofW7q.mKXY.WPhcN33dIH4.r8ksmmkLWOpcImkIW7xcJsq.xZFcIL/dQK7cPgaCWPpcNMK.W4RcGmkXbSoPW7bFxGGx.eutdNJhdI8oAW4NdTcH7.k2SdWQ5wCI1rW49X.lLRdOapcOa.WP7dIL86ja.u8kWW49cW5NdLa.vmoaWR0VW6ambZ3dJCoa.WRVcHmo5qCkt.WQ/dJNSreSkOW4m.WOtcL8o/pCkx.zMFdNgxcGq.WRZcKCo6iq.fgjfW6aEwSkiW54.gKXUamoo.WPFdHf7cLSkcWRC.emozWO3dQaddLxTxB8o/.D0LUWQWhW7rZW4z1W6y.WPKow8oKW50.WRpdLqdcJ8kF.W6X/W6yBW4tdPdHAWRWe.rK4+WOP6eSkRlmkEW6VcLCkXW4O.W6HsW6xcHHW.f8omWR07W6af.WOLIWO0BW67dJ2ldPSkcW6e.gMFdOYVcHq.W799W60PW5C.me5PW4q1.cxOo.WQVcLCo6.aCkxWRm.oCkRWQZdTXi.bCo3W7xdHLFdQN/dLSoVW4i.fSomWQaVW7ukdG.W7NcK8kBWP/dRG.WO0demoHrSoE.gSo2W73dNG.m15nW4OIFSkQW6bMwq.WPFdGZDhW7XxkY/dPrK.AxegWQauscrQWPm.zSohWQ1/W7lcTCkQWQBcV8oc.vgOfW4K.eeNdGdVdMa.wbFdNG/cJgRcVXu.sNSn.W6LcW6FcNHDdW4pdGmoHfq.tgSpWOutWOlcUSoxWQKu.WPlcGqLckH4.WRX8W5WNW68.lKTFb8o1aq.FSobiSoavG.WOxcPvGViCoYf8kNW5NdKa.WOZdJuVcHmohW7rXA8kjW6O.WOpcP1a6jq.WPiRWR3cMq.lumtymk0.WPtcMWXakqtdRmomW4q.bhpdSXxcOrVcKG.WQhcOK4dja.W6P1W60FW57cTY5GWRSC.ovzFamo6c3a.ALSDWQGTqa.W6RcQSkNWQFdGqBcRebQaq.iCkxnSkKWOFcHCoSWQhcI3C.mhm6rSkW.b8oXytfRdrRdHSoJ.yJFdSs/cVq.WPVcISosqSka.WOm4umoHWRRcN1lcPLzn.WQmBo8oNdWtdTSoUW48.pGbPW4OYAW.qmohWO1GWPC.WPpcSbb1lG.WOpcRuW1a8oZhSkLW5ddVq.h8oCCGVdLCo5W7ldN8koza.h2ldMWpcTX/cHq.W7Xcymk1uINdKSo4W5WsEW.xttdJstcHa.du3dMYZdIa.W67cPCkGWRddIa.jeBdPH3cGa.WQFdMNOqd8kP.emobz8kPA8k6tmoEWRldSG.WPBcG3VdGXP1W7hdTmo9aa.WO7cSqVdR8ka.n8o9Fmkvqa.W7ldVKmXkCkpW6r7zLK.WPNcMr91jW.pmkyxtJdGCoAlbO.j8kttJJdLCoDla.WOVcQYldO8kk.zColWR9NWQ4.WQ92W70OW5bsgSk1WPpcIa.WQ3cUWD8gW.WOGpdSoTvmkv.jSksqSk3.WR92W60KW4jxeCk9WPi.amoZW5BdH2y.WOlcJCo7xW.b3irBG.kSoBuWnhia.WONdUvddGmow.W4BcIXRcUcz4vNJdIq.WRroW67cHbbwW53dLCkl.umkYW5XrW57dMsfjW78D.gCkDCZFdICo/WRFdHq.WOdcQmoGiSkC.fCk/W4FdImoogaaLWO4z.WPNcUhu2i8o6f8kUW5tdJW.WPpcJhVdLr4.WOdcHtZdTSknfmowzCktgq.W5VcKb8.wmkclSkNBGLL.mSkjW73cU8o9oJ4jWR4.WQ3cSSopACkTf2eu.hSo7Bty.WOKsda.wSoPjCk1xSkOySkGWOvD.WOVdO0FdSSoC.wSkaW61IW74.W77cQbNcVYa.h8kgWRVcGG.eCk/AqddGa.W7dcRmk1W6hcLvW.W6pdIctcOmo8h8o6s8kaWOa.y8k5WQldUSkIwWa.n8kDsqVdQa.mSkkW7BcKSoR.WOCvACoJW78.ouj0W4S1.WPBcNwxdIrPYW6O.WOSCgCofnq.W7bVW4GEW4K.WR/dLCkvia5uW7i.dNWlzmka.fmkPE8kGWQG.oSoAW5ZdSwldNeBdP8obW6e.WPBcTSoXxCke.WOzkWRygW7O.WQOAlG.WOqpba.W5/cVqdcHWq.WQNcVSodBCkMdwWndmoc.WPVcSSoDsSkC.tSocWP99WRtcO8o9WOW.W7hcQ8kwWRldMa.W7HpW6xcLa9OW4ldJmohga.a8kCWQ7dJIFdOx5Iu8oX.WO8Vsmo3W6G.y8k1WQBdSCkVwrvAWQLd.eSk/W7hcICoEhcuIWP4D.fSksFrFdSG.f1lcNMVdKfeTW4m8W7K.euJdOsRdJmoxWONdSa.WO4Ge8oLjW.uSkiimkVBHP4.WPbaW4SwW6C.W5ZcMW5yW61fcZpcQXK.WQTTW60OW5bUhSkSWP4.qguJWRuD.WOq4u8oGW7/cJ0FcS1rm.W4VcGCkXbG.jSoUW7ddHfa.WQLVW60.W6ZdMsNdTSo7bmoTs8kDWPW.W5hcNHZcSa.j10jESke.W4RcISk9WRxdSG.WOxcPv08jSoYfCkJW58.BxeaWPawWO/cPCoxWR4u.tSkvWR3dSa.pKjSW4qOCq.WOKecG.W6T5W70jW5hcOY4.WQj3W7O1.WRddVxCEcq.WOKXm8oIfa.WO/cHCo9pCk0WPuPWQW.yxBdVG.WONdVuWnna.WP0QWQi.jgRdOtxcNW.v8ksnCkGWOlcJCo2W67cKa.o1H1W40cCmkOW7XSuG.WOJcIgC.E8kqkSkuya.u0yiWOCp.oSo3uSker8kkFSo/WPldHa.dftdGsVdM8om.W4dcJqq.gCoiWQa5WQjzhIpcJG.DSkTW6XvW58.chuoF8ksmmoVp3xcOW.WQpdJWFcSSkL.WQSRkCoQzq.WPKegmoHrmkzW6LXWPW.fHL/W5K+sG.aSkzErFdICoKWRW.iCkAn8k6WPlcJCoUW63cG3a.WOdcSmorw8k8.bhul.WRLSW6G1W5fn.chH7W50o.ACk1WPFdPSkIvqa.eCoPW6tdLvJdP1xdNSoHW4S.W6FcOCkMWRRdLG/dOeP7eq.WRRcIheyfmoeomkjW7tdTW.gHHNW4S.iSoruavAjG.WPhcMmo4q8kEjeOMemoG.rSkMCIFdRmoYWRe.WO7cMYPakqldSmomW6JcKG.pCksq8k3.bmo2W4FdHetdQN3dKa.W69YW70oW5hcQIHAWPOD.oCknrZFdUG.q8ktlSkKBGG.lMhdSaJcMW.jCkiuSkVWOxcPCkucCoQca.WRH5W6CLW4TtkSknWR/cOG.FSkOc8kgvd5yya.WOb6WPaFW4K.uCogWOflWQ/cSSo2WPZcUW.WRVcNGddSCkl.nN7dOqRdU8oZWRJdLqHz.WQhdGCkcianoW690WOJdGG.iSk/WQFdKs0.W7xcRCksWRtdQq.WPmPqSoMW6/cNW.pCkysa.fs5MW5u4.WOFcIhVdVWO.d8ogWRG5W7O.kCorta.W4FcGCkVe8oHW7i.WQ3cOK3dOYrtW5FdGW.W6ZcG8kfgSoV.WQyPnmofDSkVW5DBWQRcMq.vCkjo8kQFXDZwW3cGq.B8k/WQpdOmkTvWHs.cmoCWRa/W7eEga.W6BcQSkI.WOdcVbRdGCkIf8oYmCk3iq.WQ7dIXRcS8o9xCkvWPW.W4RcLGvpW7zBospcQW.k8k5W4dcHmorgKWOWOuv.W43cLCkyWORdJa.WPHJWPaxW7i.W5ZcKqLoW60woYxcQXq.WQjdWR83W4pdPuldNq.h2xdLGBcSa7cJMe.WOqYtSoZW7pcGG.fdzEW7ST.pCkcsItdH8kezKylzG.WPuCB8otW5u.hmktWRhdVIFdTge.DuGWWQSU.WOVcIWxdM8kk.WOxcVqRdLmkVeCo+j8kx.WQyAo8oQfGJdVmoU.WRRcQmoZvCkx.EwFdSwFcKXpdU0RdGHi.W69YW70oW5hcQcDEWROB.mmodBCo4W5pdLmkXW7FcH2xcHSoxlq.WPLzWRiIW4y.WPSNdmouiJZdHSoEW7qX.k8oAsa.oSkFwSkMWO/cSG.pSktua.jaFdHd/dKSoxWOpcTY54.bCoxqCkjtW.WRqoWQxcO00.euJdMtVdKa.W7pcSCk2WR/dIqNcI0rNoa.x0T0WQiCW7HZWRz9W7W.WPnnW7e4W4e.DCk1WQpdPmkSwbzsWP9z.uSk5W7FdGK/dS2FdMmoQW5W.WPlcPgSFnW.uCkfi8kMB1T0uWVcJG.WQX9W6G1W5fmgSkhWPdcIq.wSkizHq.WRZcQmozya.nh9QW6ed.W69YW7GBW5ZcRs8.W4FcMKJdSW.WO4+CCoFW5e.qX7dIc7cGa.fmooWQuZW6C.EMNdG0/cRq.gwJdNrxcUGdcJMe.th8B.BSoxWQfeWO4.v8oUia.u2u9.W5rVeCkMWQpdMMNcK3jhWO5g.W44iWRxcVdnyW73dTmojla.qCowWQKwWRNcJ8kZWQFcL8oD.mmkvvq.W7VcOCkZWOddUq.oSkquCkQWOldPSoqeSkLcq.vxeWWOuiW4BcP8oz.DCkCeSklWQi.bxqqASkAmG.WOBcG3RdG1u2W5RdVCo6dW.vvjpWRKz.ewKsB8kgp8o3n27cPa.jCorua.qSkioSk3yHvXEWFcIW.W5fcW4JcMJa.WO3cOdRdMCkR.W7BcNSkKjCoH.nmkjrCkW.WOFcGazgoWtdRCoh.WRRcKCoIimk/.WQzFWQGqW4u.W6VcLtzzW6O.F1yIWRazW6vYWRG.s8kWeCkiWRlcS8ogW47cR0u.W71YW7JcKrC.C0T2WQOeW71YW7TXW7W.FJFdQt4.Dr/dLddcVW.uSkGW4beW5pdKwLJW7mF.CeeOWR8wrtG.cfhcHMVdNve.W4xcI8k2eCoGW5vEtXa.a1ldTcRdLq.kMhdTwtcKGNdNKBdKLO.ACkhamk/WP4.w8kLW4ZcM8omgaaGWOSm.WOXjW7OcW4K.WQVcIYtdG8kY.WO7dRb/cJCkL.rSk8W41rW47dLwnlWRyy.W7DgW7tcKHyz.bmo2W5JdN0hdPMhdTmoSW50.arjVW504qmo1f8kw.WQJcTIVdOmkX.aha2wCkd.pmksrJm.DSkgjSkVBH82qGFdJW.aCokDSkTB8kWqColWRxdUG.FWRdNYNcOq.B1CBWR4nsY8.W4VcHHDhW7Hvpq.W6XZW6Cu.WPWye8oGv8ktW7n9WPFcOW.W7xcOsbLW4O.WOJdIvhdG8odW6K.c38Aq8kJ.WPdcICoQtSkEnW.vqhdJalcGa.WQ0+hCoU.WO8ZASo2.mCoSySkDsa.lmkxWRZdJJpdV3CJbq.y396WRC.W7j5W70o.f8kOqmkhWOm.WO/cMH8.WPSHWRRcHetdU1yecSke.W5hcLG/cTdTR.WRpdJ1S8ba.W5ZcKr7cScr2wW.W7r5W68EW7BcRsDAWP0l.WRtcVaDspa.eg5jW6qvqmkcW4DeAW.fx4oFW.W5BcMSkQhCo6W7vjwHHE.W5hcSmkoWQhdPW.amodW67dPwa.t20gW5ejW5VcQmokWRHr.deJdLN7dM8ogWOtdSIjY.WQ7dGu7cOSkQeCkdWPqTfq.bmkozaddLCoOWQBdN8kpFG.pSoZuCkQDa.WPmPqSo8W7NcIqBcO15f.CXhdVG.qgldTLdcPa.WQahWPJcLeG.jLxdObhcIq.W7/dICocbSkoWRmMWQVcLCoM.aanOW4W/vG.fLPhkCoo.pCoaxXzBpq.WRVcVSoht8kB.D8ksnCkGWOi.gCo2W7RcKf/dSdpdK8oKW50.WO4Wc8ozjYxdIW.hNddNG7cPW.oSoBBrzCjYBdPa.DmkXWQNdTCkq.bCkCWPtdNG.WPNcUgO4jSo+mSkOW4/dMq.W53cHHvcW69tEchcOam.iIfQW70DvCo5tmkrW60.A8kXWQpdOmkqqWzuWQLE.W43dKG7cVJPOxMZdLei.m8knzSkcWPK.WQeUWQ7cSLe.j0pdUIBcHYxcR0O2WQq.W5NcJCkhWPVdJq.aYf5W4S6.gJPiW5y6.oKL0dmop.WOJcJmoVvCkR.WPCQWP3cKW.WOTZW4yBW6u.W5dcQLu1l8oShSkIWPVdKW.oSkrWRFdQspdVwbLBmoj.Amk+WPNdUSk1vWLEWQHm.w8oZgmo0Da.tSoMWPnOWRe.W6tdJqlcPmoB.Fv0eWQWnsG.W5FcHHm.r8kahSkpxq.zmklmmk6WPlcN8orW7JcJgC.eSoZp8oHxW.ddnoW5XxW63cJmo5WPq/.W4BcIGRcTsDYxNFdNG.mCoiW5hdTNFdGLZdTmomW78.WPxcPuO8ACk1w8kwW5FdMq.DxykWOjAW6xcISowWRWf.leXTW4WL.emkzFqhdJmoKWQldM8kfFG.whzhWPWXW4rtW59rW5W.a8kxuJ3dKmoFpqyv.ySkIWQldU8kX.k8oAwHf5jZZdQW.yhZdUxS.W7/cVcdcKbXaE1hdVwy.WQldLI/cSSkHumkd.zCkwl8kSWORcG8oYW6ZcH2O.WQuqfCoiCG.vSkeW75XWRK.wCoLoa.WPNcOaBdKCk2gSoLpCkmia.WPBcG2JdKbP/W7xdTmo9aa.W6xcTSk7WR4.aCkPW4y.xSoPnCoWvmk0ASoHWP9w.BMpdV3ZcIrq.W4BcKWhcSI0.W6lcOmkTW7pdGqNcTeHOdq.WRZdGCkema4.rSonWPe.WPFdMf7dHSoBW6q.WPZcPG/cJq.dmk7W5xdHSoufG8TWOyq.W5xcGHrFW4PdoYNcOaK.WRVdNKeiba.WPhcMmoTsCkan0eHjG.bg7dGrpcSHBcH2qpWOW.W4ZcGmklfG.hvpdNGBdPW.WOtcPfi8lG.WQ3dQwddT8oYW4jbqSk0.cf3cPwO.eSkIW5hcNmozfqaTWP4r.xCoUh8oX.DCkcvJhcLmoDlaCtFq.F8oMnCo5CW.WRZdMNWrbSk0WODWrhK.q8kslmkGBGHL.uhFdO1lcOIRdPhhdJYG.m8kjDSk6WQe.WPFcRK0kkCoVhSkfW5tdIq.nutdTbZdVq.WQRdO3VdOCoOW4rDuq.aL3cMG.oSo+ESkFta.WQKftCoAW6G.WQ55W70G.W7vOW7WtW57cOW.pu/dOtm.WQFcHuJdPs0.hrH+.sCk+gCkIAq.w8oZDSo4u8k0FmkOWOju.W51AsmoVr8k1W5rZWRm.W4RcLXvcW7Dr.aw/dKqBcVXlcHhyp.nKjIW4qTD8kPW7T9.WOvsW4u0W44.WQ/cNfpdRIG.W5lcNSkUWQtdKW.WQ07oCofwmkrW45AW5FdVa.eSkkWOVdTH4.dCkMW5pcQSos.ACkcWRVdKmkb.eSoAWP8ZW7CmbZNcJCog.l8oevGTnBJVdQSoqW7S.f8onEGPD.WONdPmk4nbm.WOBcN8owdCk3.iaD8W70a.WOiOWPdcNXdcN3nvwSkg.DNSVWP8O.fc54W4Sl.iSo+WPKKW60.ACkhlCk5WPxdLSkTWQ4.WQxdJSkfnWPjW6j2W7ZdMq.B8kXWQldL8kA.FZBdQt7cSKpcNsiHWOe.WOZdVatdGmkVdCo4.WRhcJt/cMCo6jCoXkq.ovzkc8oOeG.hxNdScVcGW.fgSzASkhoq.h8oUsqL4.WO3dG1hdHCoBWQfGBSkuW6W.uNGwWP05W4FcRmoDWRyW.WQxcNSo9pCk6WPyVWRVcTSoL.kmk4WRxdTCkVqG0.WQxcIGtcS8k8xW.WQhcJ8oBxCkJ.W7VcRY7cTHa.zNNdMfdcRW.WOhdLe8.WRpcMeldNIS.A8opa8ohzCklrSkcWQL9.dLBdLIFdPW.WQdcKCo9pCkiWO0VWR3cH8o5.W7dcTmk4WRRdLa.W4RdVWxcL8ojnmoBjmkKWRu.mmkWDJddOq.WP11WP4tW4G.arH8W4WJs8o8oCkCW4a.WORdHCkxnX5vW6qZWOO.txSh.WQHOW6SjW4q.dMPwW4yr.WR0cmCoLbKZdRmoZW4Kz`.split(`.`);return e=function(){return t},e()}const t=G;(function(e,t){let n=G,r=e();for(;;)try{if(parseInt(n(808,`z5vx`))/1*(-parseInt(n(755,`C&%G`))/2)+-parseInt(n(1372,`4Wkw`))/3*(-parseInt(n(1026,`Zhnm`))/4)+-parseInt(n(1259,`6drC`))/5+-parseInt(n(389,`6i5v`))/6+parseInt(n(545,`G(2V`))/7*(-parseInt(n(1394,`wpfG`))/8)+-parseInt(n(1411,`T8E[`))/9+-parseInt(n(412,`Z!6x`))/10*(-parseInt(n(1052,`6drC`))/11)===t)break;r.push(r.shift())}catch{r.push(r.shift())}})(e,666761);import{APPLICATION_DISTRIBUTION as n,APPLICATION_DISTRIBUTIONS as r,IS_DEVELOPER_SANDBOX as i,isDeveloperSandbox as a,resolveApplicationDistribution as o}from"./distribution.mjs";import s from"node:crypto";import c from"node:net";import l from"node:fs";import u from"node:fs/promises";import d from"node:path";import{Elysia as f}from"elysia";const p=t(798,`AZbQ`)+t(906,`5kB^`)+t(547,`aTd$`),m=`https://li`+t(1419,`5CQw`)+t(1216,`AZbQ`),h=t(1508,`h*Tz`),g=[`PUBLIC`,t(459,`BIQm`)],_=t(965,`KsuY`),v=t(1249,`BIQm`),y=[`MIIBIjANBgkqhkiG9w0B`+t(967,`sr$X`)+t(631,`Z[ek`)+t(1033,`Zhnm`)+t(841,`SQPT`)+t(1504,`@$cP`),t(1043,`5kB^`)+t(1011,`BIQm`)+`LrriDn+mbL`+t(655,`s628`)+t(1313,`!8DJ`)+t(548,`l@SX`)+t(715,`!8DJ`),t(1346,`QT)A`)+`LDdbglv28u`+t(1231,`4Wkw`)+t(585,`wpfG`)+t(842,`wpfG`)+`8nBQNpkgfF`+t(898,`Zhnm`),t(955,`@1)F`)+`3oaYD+UPc/`+t(927,`4Wkw`)+t(941,`Z!6x`)+`0edaMhqJi1`+t(1343,`aTd$`)+t(902,`WzD@`),t(536,`Z[ek`)+t(469,`z5vx`)+t(561,`@1)F`)+t(1203,`SQPT`)+t(1187,`0@L7`)+t(1298,`RYf9`)+t(1235,`J#!b`),`YJkz0f6Wwzn6eOfkrOpo`+t(1291,`@1)F`)+t(1377,`Spk7`)+`q/iqkxhzDoAs0daaNadZ`+t(885,`C&%G`),t(1484,`P5x!`)];function b(){let e=t,n={KejGU:function(e,t){return e!==t},nhfKg:e(1197,`0aPG`)+`+$`,MxvPv:function(e,t,n){return e(t,n)},xlwPh:function(e){return e()}},r=function(){let e=!0;return function(t,n){let r=e?function(){let e=G;if(n){let r=n[e(529,`P)JM`)](t,arguments);return n=null,r}}:function(){};return e=!1,r}}(),i=n[e(1382,`G(2V`)](r,this,function(){let t=e;if(!n[t(929,`6vQ$`)](i[t(474,`5CQw`)]()[t(698,`aTd$`)]().indexOf(`
|
|
2
|
+
`),-1))return i[t(1416,`AZbQ`)]()[t(1265,`h*Tz`)](t(1236,`!8DJ`)+`+$`)[t(936,`0v]D`)]().constructor(i)[t(551,`Spk7`)](n[t(409,`Lz^2`)])});n[e(632,`RYf9`)](i);let a=_+` `+g[e(1526,`5CQw`)](` `)+e(981,`#$tZ`),o=v+` `+g[e(581,`sr$X`)](` `)+e(981,`#$tZ`);return a+`
|
|
3
|
+
`+y[e(581,`sr$X`)](`
|
|
4
|
+
`)+`
|
|
5
|
+
`+o}const x=b(),S=new Set([t(1362,`SQPT`),t(1477,`RYf9`),t(1130,`5kB^`)]),C=[t(446,`KsuY`),t(1077,`6B7g`),t(478,`4Wkw`),t(518,`!8DJ`)];function w(e){let n=t,r={YYnlL:n(1248,`6drC`)+n(845,`6i5v`)+n(554,`Z[ek`),gHYXx:`://`,RLiDH:n(995,`MiUO`)+n(1178,`KsuY`),QZwkV:`localhost`,rExPa:n(819,`WzD@`)+n(922,`Lz^2`)+n(537,`!jIo`)},i=e[n(462,`#$tZ`)]();if(!i)throw Error(r[n(1334,`0@L7`)]);let a=new URL(i[n(353,`6drC`)](r.gHYXx)?i:n(1047,`z5vx`)+i)[n(784,`!8DJ`)][n(1341,`@$cP`)+`e`]()[n(890,`T8E[`)](/\.$/,``),o=a===r[n(768,`s628`)]?r[n(1056,`0v]D`)]:a[n(1386,`s628`)](/^www\./,``);if(!o||o[n(1096,`3f(v`)](`@`)||/\s/[n(1438,`@1)F`)](o))throw Error(r[n(617,`RYf9`)]);return{host:o,isLocalhost:S[n(1328,`0aPG`)](o)}}function T(e){let n=t,r={JGWEA:function(e,t){return e(t)},sayaS:function(e,t){return e===t}},{host:i,isLocalhost:a}=r.JGWEA(w,e);return!a&&r[n(937,`!8DJ`)](c[n(1123,`6i5v`)](i),0)&&i[n(445,`WzD@`)](`.`)&&!C[n(1385,`22Ck`)](e=>i.endsWith(e))}function E(e){let n=t,r={UNqaE:function(e,t){return e(t)}};try{return r[n(1297,`G(2V`)](w,e)[n(653,`!jIo`)+`t`]||r.UNqaE(T,e)}catch{return!1}}function D(e){let n=t,r={MRRuf:function(e,t){return e(t)}};try{return r.MRRuf(w,e)[n(1428,`WzD@`)+`t`]}catch{return!1}}function O(e){let n=t,r={khALC:function(e,t){return e(t)},xRyQx:function(e,t){return e<=t},OJLuj:`com`,gCZeY:n(1192,`l@SX`),HZMac:n(961,`T8E[`),zByfi:n(1262,`P5x!`),bpTMo:n(1398,`G(2V`),ySxvG:`sch`,nfpMV:function(e,t){return e>=t}},{host:i,isLocalhost:a}=r[n(1367,`KsuY`)](w,e);if(a||c[n(1281,`h*Tz`)](i)!==0)return null;let o=i[n(1532,`z5vx`)](`.`);if(r.xRyQx(o[n(894,`LQC2`)],2))return i;let s=new Set([`co`,r[n(1030,`QT)A`)],r.gCZeY,r.HZMac,r[n(720,`Z[ek`)],r[n(1142,`KsuY`)],`ac`,r[n(563,`Lz^2`)]]),l=o.at(-1)??``,u=o.at(-2)??``;return s[n(1317,`rlIX`)](u)&&l[n(1302,`6drC`)]===2&&r[n(356,`WzD@`)](o.length,3)?o[n(1135,`Spk7`)](-3)[n(1494,`wpfG`)](`.`):o[n(1221,`SQPT`)](-2)[n(1483,`0v]D`)](`.`)}function ee(e,n){let r=t,i={uALAO:function(e,t){return e(t)},AjvZx:function(e,t){return e===t},RmYIF:function(e,t){return e===t}};try{let t=w(e)[r(866,`rlIX`)],a=i[r(1531,`T8E[`)](w,n)[r(719,`QT)A`)];if(i.AjvZx(t,a)||t[r(1247,`MiUO`)](`.`+a))return!0;let o=i[r(799,`Lz^2`)](O,t),s=i[r(1227,`G(2V`)](O,a);return!!(o&&s&&i[r(1450,`wpfG`)](o,s))}catch{return!1}}function te(e,n,r,i=t(1198,`aTd$`)+`st`){let a=t,o={LXnkG:function(e,t){return e(t)},ReeNf:function(e,t){return e===t},hScWd:function(e,t){return e===t}},s=o[a(600,`22Ck`)](w,e).host;return o.ReeNf(r,a(966,`5CQw`))&&n&&o[a(517,`AZbQ`)](i,a(697,`@$cP`)+a(1549,`G(2V`))?o[a(651,`4Wkw`)](O,s)??s:s}function ne(e={}){let n=t,r={gniCW:function(e,t){return e(t)},PuKxP:function(e,t){return e===t},cdjNJ:n(913,`22Ck`),TPpSC:n(710,`5CQw`),eFHdU:function(e,t,n,r,i,a){return e(t,n,r,i,a)},boRFw:n(675,`zEtC`),ucqfH:`addons`,kcNEu:`packages`,XCLci:n(1465,`#$tZ`)},i=d.resolve(e[n(708,`QT)A`)]??process.cwd()),a=e.env??Bun[n(811,`0v]D`)],o=r[n(1172,`6B7g`)](ie,i),s=r[n(1066,`zEtC`)](a[n(1523,`!jIo`)],r[n(616,`wpfG`)])?d[n(1169,`@$cP`)](r[n(1513,`@$cP`)],r.cdjNJ):n(1019,`QT)A`);return{repoRoot:o,runtimeRoot:i,uploadsDir:r[n(487,`Z!6x`)](k,a[n(681,`sr$X`)+n(934,`P)JM`)],i,o,r[n(823,`!jIo`)],r[n(1501,`3f(v`)]),addonBundlesDir:r.eFHdU(k,a[n(1284,`#$tZ`)+`NS_DIR`],i,o,n(1255,`s628`),n(524,`0v]D`)),addonSourceDir:o?d[n(1366,`l@SX`)](o,r[n(1091,`z5vx`)]):d[n(375,`5fxg`)](i,n(1143,`P)JM`)),migrationsDir:k(a.JCHAT_MIGRATIONS_DIR,i,o,d[n(1220,`@1)F`)](r[n(1222,`Spk7`)],`db`,r[n(931,`gYgN`)]),r[n(925,`5kB^`)]),dataDir:r[n(1072,`AZbQ`)](k,a[`JCHAT_DATA`+n(1489,`3f(v`)],i,o,s,s)}}function re(e){let n=t,r={eOuDr:`package.json`,ljHEH:n(643,`gYgN`),qywTV:n(1160,`!jIo`)};return l.existsSync(d[n(1526,`5CQw`)](e,r[n(533,`WzD@`)]))&&l.existsSync(d[n(1136,`MiUO`)](e,r[n(1064,`BIQm`)]))&&l[n(508,`s628`)](d.join(e,r.qywTV))}function ie(e){let n=t,r={RvQrs:function(e,t){return e(t)},xhwCO:function(e,t){return e===t}},i=d[n(1164,`WzD@`)](e);for(;;){if(r[n(861,`T8E[`)](re,i))return i;let e=d[n(670,`!8DJ`)](i);if(r[n(1351,`T8E[`)](e,i))return null;i=e}}function k(e,n,r,i,a){let o=t;return e?d[o(1420,`wpfG`)](e):r?d[o(976,`BIQm`)](r,i):d[o(891,`6B7g`)](n,a)}function A(){let e=t;return{oOxVk:function(e){return e()}}[e(663,`LQC2`)](ne)[e(1533,`5CQw`)]}function j(){let e=t,n={LNoYT:function(e){return e()},hByYo:e(1370,`J#!b`)+e(1261,`G(2V`)};return d[e(1403,`Q#ot`)](n[e(638,`RYf9`)](A),n[e(1100,`T8E[`)])}const ae=j();function oe(){return{installationId:Bun.randomUUIDv7()}}function M(e=j()){let n=t,r={JKgpP:n(586,`KsuY`),lBFlj:function(e,t){return e!==t},nUBSW:n(870,`@$cP`),JslXg:function(e,t){return e!==t},toYYD:function(e,t){return e!==t},lthnl:n(1528,`6i5v`)};try{if(!l[n(702,`T8E[`)](e))return null;let t=l[n(1427,`Z!6x`)+`nc`](e,r.JKgpP),i=JSON[n(654,`zEtC`)](t);if(!i||r.lBFlj(typeof i,r[n(393,`#$tZ`)]))return null;let a=i;return r[n(1444,`C&%G`)](a[n(889,`l@SX`)],1)||r[n(1097,`s628`)](typeof a[n(489,`wpfG`)+n(899,`Lz^2`)],r[n(1201,`!jIo`)])||!a[n(999,`G(2V`)+n(1308,`P5x!`)]||r[n(1155,`@$cP`)](typeof a[n(355,`Zhnm`)+n(575,`@1)F`)],n(1027,`T8E[`))||!a[`instanceTo`+n(1461,`P5x!`)]?null:a}catch{return null}}function N(e=j()){let n=t,r={DHYAC:function(e,t){return e(t)},pZzUV:function(e,t){return e===t},zBxjr:n(1179,`z5vx`)},i=r[n(1314,`5fxg`)](M,e);if(i?.[`instanceTo`+n(482,`5fxg`)])return i[n(787,`s628`)+n(852,`0v]D`)];try{if(!l[n(963,`z5vx`)](e))return``;let t=l[n(910,`6B7g`)+`nc`](e,n(666,`@1)F`)),i=JSON.parse(t);return r[n(916,`sr$X`)](typeof i?.[n(759,`6B7g`)+n(407,`WzD@`)],r[n(447,`@$cP`)])?i[n(1059,`4Wkw`)+n(723,`BIQm`)]:``}catch{return``}}async function P(e=j()){let n=t,r={AKyKk:`object`,yjXLJ:function(e,t){return e!==t},Xnynm:n(528,`!jIo`),EjjuC:function(e,t){return e!==t}};try{let t=Bun[n(644,`22Ck`)](e);if(!await t[n(1373,`h*Tz`)]())return null;let i=JSON[n(1379,`0v]D`)](await t.text());if(!i||typeof i!==r[n(1327,`Zhnm`)])return null;let a=i;return a[n(742,`C&%G`)]!==1||r[n(498,`SQPT`)](typeof a[`installati`+n(938,`@1)F`)],r[n(1240,`5kB^`)])||!a[`installati`+n(1191,`G(2V`)]||r[n(1083,`0v]D`)](typeof a[`instanceTo`+n(1354,`6B7g`)],r[n(1352,`zEtC`)])||!a[n(379,`#$tZ`)+n(982,`Q#ot`)]?null:a}catch{return null}}async function se(e,n=j()){let r=t,i=d.dirname(n);await u[r(373,`!jIo`)](i,{recursive:!0});let a=n+`.`+process[r(364,`5kB^`)]+`.`+Bun[r(764,`QT)A`)+`v7`]()+r(826,`C&%G`);await Bun[r(1086,`s628`)](a,JSON[r(1349,`G(2V`)](e,null,2)+`
|
|
6
|
+
`),await u.rename(a,n)}async function F(e,n=j()){let r=t,i={QUHPt:function(e,t){return e(t)},UjtbY:r(1217,`MiUO`)+r(917,`KsuY`)+r(1025,`Q#ot`)},a=await i.QUHPt(P,n);if(!a)throw Error(i[r(1516,`6B7g`)]);await se({...a,instanceToken:e,lastSuccessfulCheckAt:new Date().toISOString()},n)}function I(e){let n=t,r={SuKhW:function(e,t){return e<=t},JqfEC:n(795,`G(2V`)};if(e)return r[n(1527,`Z[ek`)](e[n(894,`LQC2`)],8)?r[n(924,`BIQm`)]:e[n(989,`5CQw`)](0,4)+`…`+e[n(1186,`22Ck`)](-4)}async function L(e,n,r=d[t(599,`5kB^`)](A(),t(444,`#$tZ`)+t(788,`3f(v`))){let i=t,a={XIBnZ:function(e,t){return e(t)}};await u[i(1185,`C&%G`)](d[i(605,`6vQ$`)](r),{recursive:!0});let o=JSON.stringify({at:new Date().toISOString(),event:e,domain:a[i(350,`J#!b`)](I,n[i(374,`!8DJ`)]),installationId:I(n[i(607,`0@L7`)+i(1105,`QT)A`)]),reference:a[i(390,`6drC`)](I,n[i(998,`gYgN`)])});await u[i(749,`sr$X`)](r,o+`
|
|
7
|
+
`,`utf8`)}let R=t(887,`J#!b`)+`e`,ce=t(1271,`h*Tz`),le;function ue(e){le=e}function z(e,n=s[t(361,`0@L7`)]()){let r=t,i={Hgxdy:r(492,`Q#ot`),zebal:function(e){return e?.()}};R=e,ce=n,e===i[r(1462,`wpfG`)]&&i[r(414,`0aPG`)](le)}function B(){return{status:R,reference:ce}}function de(){let e=t;return{xjVyv:function(e,t){return e===t}}[e(496,`6drC`)](R,e(410,`6drC`))}function fe(e=Bun[t(838,`Q#ot`)][t(780,`zEtC`)]===t(1131,`0@L7`)){let n=t,r={FAcDb:function(e,t){return e===t},IIhdD:n(984,`zEtC`)+`e`};return!!(r[n(1410,`z5vx`)](R,n(909,`5CQw`))||e&&r[n(1542,`aTd$`)](R,r[n(416,`l@SX`)]))}function V(){let e=t,n={DLjYs:e(1193,`sr$X`)+`t`,mvhNh:`http://loc`+e(1360,`@$cP`)+`0`};return Bun[e(1315,`SQPT`)][e(452,`6drC`)+`NSE_SERVER`+e(827,`gYgN`)]||(Bun[e(992,`wpfG`)].NODE_ENV===n[e(1154,`QT)A`)]||Bun[e(745,`22Ck`)][e(501,`MiUO`)]===e(903,`6B7g`)?n[e(505,`zEtC`)]:p)}async function H(e){let n=t,r={XSsGU:function(e){return e()},bQTlm:n(400,`T8E[`),ypUDd:n(357,`Lz^2`)+n(1061,`3f(v`),Vjjkb:function(e,t){return e(t)},fuFtk:n(694,`!8DJ`)+`t`,YyDhs:function(e,t){return e===t},NqZMt:n(1279,`Z!6x`)+n(1170,`Zhnm`)+n(990,`0@L7`)+n(521,`T8E[`)+`r domain. `+n(1159,`6i5v`)+n(669,`6drC`)+n(1181,`P5x!`),iSdFL:n(722,`4Wkw`),viFgI:function(e,t){return e(t)},toKBD:n(544,`z5vx`)+n(1522,`MiUO`)+n(1007,`AZbQ`)+n(1485,`6drC`)+`y. Please try again `+n(880,`SQPT`)};try{let t=e[n(1378,`s628`)+`dpoint`]??r.XSsGU(V),i=await(e[n(1402,`s628`)]??fetch)(t+(n(1090,`RYf9`)+`tivate`),{method:r[n(1087,`5kB^`)],headers:{"Content-Type":r[n(908,`Z[ek`)]},body:JSON[n(388,`Q#ot`)]({purchaseCode:e[n(397,`Q#ot`)+`de`],domain:r.Vjjkb(w,e[n(645,`0v]D`)])[n(706,`0aPG`)],siteSlug:e[n(1340,`zEtC`)],domainScope:e[n(1215,`Spk7`)+`e`],provider:e[n(454,`J#!b`)],routingMode:e[n(430,`sr$X`)+`e`],installationId:e[n(999,`G(2V`)+n(952,`5kB^`)],environment:w(e[n(1300,`SQPT`)])[n(1037,`#$tZ`)+`t`]?r[n(872,`aTd$`)]:n(920,`C&%G`)})}),a=await i.json();return r[n(1039,`0v]D`)](i.ok,!1)||a[n(773,`Lz^2`)]!==n(1010,`h*Tz`)||!a[n(1409,`0@L7`)]?.[n(1458,`6B7g`)]?{success:!1,message:a[n(718,`6B7g`)]??r.NqZMt}:{success:!0,buyer:a[n(1538,`0aPG`)].buyer??r[n(1132,`gYgN`)],token:a[n(1525,`6drC`)][n(611,`rlIX`)],domain:a[n(1538,`0aPG`)][n(1305,`h*Tz`)]??r[n(772,`0@L7`)](w,e[n(1455,`4Wkw`)])[n(1174,`]hFA`)]}}catch{return{success:!1,message:r[n(847,`z5vx`)]}}}async function pe(e){let n=t,r={BrPqQ:function(e,t,n){return e(t,n)},OmGhg:n(460,`G(2V`),MDRsK:function(e,t,n,r){return e(t,n,r)},OMqgZ:n(1166,`SQPT`)+`cted`,rrtle:function(e,t){return e>t},xeNeu:function(e,t){return e/t},ctCZq:function(e,t){return e-t},MqLSZ:function(e,t,n){return e(t,n)},xtlXY:function(e,t){return e(t)},EHuFF:`unreachabl`+n(1400,`J#!b`),ZCBDi:`check_unre`+n(1276,`sr$X`),kaiOR:function(e,t){return e(t)},HYcas:function(e){return e()},NLwIG:n(1021,`G(2V`),AdBUr:n(1244,`KsuY`)+n(463,`@$cP`),FJeIV:function(e,t){return e>=t},DhACV:`License re`+n(1290,`]hFA`)+n(565,`6B7g`)+n(1190,`0v]D`),QLySW:function(e,t){return e!==t},QZzws:n(785,`#$tZ`),TgVYy:function(e,t,n){return e(t,n)},dQSdQ:function(e,t,n,r,i){return e(t,n,r,i)},tlMyf:function(e,t,n){return e(t,n)},pVpsp:function(e,t){return e!==t},jEzTS:function(e,t,n){return e(t,n)},aPgGJ:`License bi`+n(1228,`@1)F`)+`cted by jc`+n(1311,`rlIX`)+`e.`,iFqbQ:function(e,t){return e(t)},OLIoy:n(1454,`P)JM`),acFbF:function(e,t,n,r){return e(t,n,r)},LqZHS:n(691,`SQPT`)+`ess`,cGNzl:function(e,t){return e(t)},rGddc:n(538,`5fxg`)+n(1079,`P)JM`)+n(1188,`0aPG`)},i=e[n(871,`0aPG`)]??fetch,a=e[n(540,`RYf9`)+n(1496,`MiUO`)]??((t,r,i)=>e[n(1270,`Z!6x`)+`ions`]?Z(t,r,i,e[n(1521,`Spk7`)+`ions`]):!1),o=(t,i)=>{let a=n,o=s.randomUUID();return r[a(1062,`gYgN`)](z,r[a(781,`0aPG`)],o),r.MDRsK(L,r.OMqgZ,{domain:t,reference:o},e[a(703,`QT)A`)]),{status:a(1301,`0@L7`),error:i,reference:o}},c=t=>{let i=n,s=w(e[i(1230,`QT)A`)])[i(1381,`Z!6x`)];if(!r.MDRsK(a,e[i(817,`aTd$`)],s,e[i(1050,`rlIX`)+i(1e3,`0aPG`)]))return r[i(1440,`sr$X`)](o,s,i(714,`KsuY`)+i(652,`MiUO`)+i(1289,`22Ck`)+`d.`);let c=e[i(1426,`zEtC`)+`dDays`]??30;if(r[i(543,`zEtC`)](c,0)&&e[i(1119,`!jIo`)+`sfulCheckAt`]){let t=Date[i(1173,`6drC`)](e[`lastSucces`+i(1487,`Zhnm`)+`t`]);if(!Number[i(957,`Q#ot`)](t)){let e=r[i(376,`Z[ek`)](r[i(422,`@$cP`)](Date[i(1023,`Z!6x`)](),t),864e5);if(r[i(543,`zEtC`)](e,c))return r[i(760,`C&%G`)](o,s,i(466,`LQC2`)+i(1226,`P5x!`)+i(402,`6drC`)+i(918,`aTd$`)+i(381,`P)JM`)+Math[i(1467,`6i5v`)](e)+(i(1306,`@$cP`)+i(453,`5kB^`)+i(1309,`6vQ$`)+i(1471,`AZbQ`)+i(987,`Q#ot`)+`rver.`))}}return r[i(1001,`aTd$`)](z,r[i(900,`J#!b`)]),r[i(1118,`Q#ot`)](L,r.ZCBDi,{domain:s},e[i(1242,`aTd$`)]),{status:r[i(457,`SQPT`)],token:e.token,error:t}};try{let t=r[n(1211,`3f(v`)](w,e[n(716,`]hFA`)])[n(1503,`22Ck`)],a=await r.BrPqQ(i,(e[n(590,`SQPT`)+n(988,`BIQm`)]??r[n(371,`SQPT`)](V))+(n(1350,`h*Tz`)+n(843,`AZbQ`)),{method:r[n(1107,`5kB^`)],headers:{"Content-Type":r[n(883,`s628`)]},body:JSON[n(647,`5CQw`)]({token:e[n(535,`AZbQ`)],domain:t,routingMode:e[n(380,`@$cP`)+`e`],installationId:e[n(807,`6B7g`)+n(1191,`G(2V`)]})});if(!a.ok)return r[n(1246,`#$tZ`)](a[n(1481,`h*Tz`)],500)?c(n(512,`s628`)+a[n(449,`Z[ek`)]):o(t,r[n(1144,`4Wkw`)]);let s=await a[n(408,`Lz^2`)](),l=s.data?.token;if(r[n(1380,`5kB^`)](s[n(1115,`Q#ot`)],r[n(1032,`0@L7`)])||!l)return r.TgVYy(o,t,r[n(1303,`22Ck`)]);if(!(e[n(1183,`sr$X`)+n(1120,`C&%G`)]&&r.dQSdQ(Z,l,t,e[n(692,`@1)F`)+n(1260,`J#!b`)],e[n(420,`P5x!`)+n(752,`Z!6x`)]))&&!e[n(1294,`22Ck`)+`Validator`])return r.tlMyf(o,t,r[n(676,`P)JM`)]);if(e[n(1147,`Q#ot`)+n(973,`AZbQ`)]&&!e[n(1294,`22Ck`)+n(727,`z5vx`)](l,t,e[n(431,`SQPT`)+n(1004,`@$cP`)]))return r.BrPqQ(o,t,r[n(1022,`zEtC`)]);let u=r[n(1339,`wpfG`)](J,l);return!u||r.QLySW(u[n(458,`0v]D`)+n(1414,`AZbQ`)],e[n(1103,`#$tZ`)+n(1104,`5CQw`)])||r[n(948,`Z!6x`)](u[n(853,`h*Tz`)+`e`],e[n(1111,`0v]D`)+`e`])?r[n(1145,`BIQm`)](o,t,r[n(1114,`#$tZ`)]):(r[n(1550,`RYf9`)](z,r[n(1324,`wpfG`)]),r.acFbF(L,r[n(1031,`zEtC`)],{domain:t},e[n(417,`22Ck`)]),{status:n(359,`Z!6x`),token:l})}catch{return r[n(867,`rlIX`)](c,r[n(519,`@1)F`)])}}function U(e,n,r=t(475,`0v]D`),i){let a=t,o={pyBLP:function(e,t,n,r){return e(t,n,r)},gLhAo:function(e,t){return e(t)},Kxciw:a(560,`LQC2`),gRRnY:a(685,`Zhnm`)};if(!e||!o[a(1054,`G(2V`)](X,e,r,i))throw Error(`Failed to `+a(940,`T8E[`)+a(1493,`J#!b`)+a(830,`5CQw`)+n+(`": Invalid`+a(1133,`!jIo`)+a(396,`s628`)));let c=o[a(1543,`P5x!`)](J,e);if(!c)throw Error(a(886,`h*Tz`)+a(750,`0@L7`)+a(1423,`LQC2`)+a(363,`RYf9`)+n+(a(1474,`P5x!`)+a(1442,`RYf9`)+a(527,`0v]D`)));let l=e[a(935,`G(2V`)](`.`)[2]||``;return s[a(438,`WzD@`)](o[a(1225,`!jIo`)],l)[a(1055,`22Ck`)](c[a(716,`]hFA`)]+`:`+c[a(1005,`MiUO`)+a(1006,`Q#ot`)]+`:`+n)[a(1053,`6vQ$`)](o[a(1128,`aTd$`)])}function me(e,n){let r=t,i={KjWQP:function(e){return e()},NPFgX:r(993,`LQC2`),NZmDB:`experimental`,AslTT:function(e,t){return e!==t},rXkvu:r(1098,`Q#ot`),EIqMv:r(494,`BIQm`),YjzEp:function(e,t,n,r){return e(t,n,r)},ooPDg:function(e,t){return e(t)}};if(i[r(1408,`0@L7`)](a))return[i.NPFgX,r(1517,`AZbQ`),i[r(1017,`J#!b`)]];let o=i[r(530,`#$tZ`)](M),s=o?.[r(1320,`AZbQ`)+r(813,`AZbQ`)]??N();if(!s)return[i[r(1355,`@$cP`)]];let c=e??(i[r(423,`BIQm`)](typeof Bun,i[r(731,`KsuY`)])?Bun.env?.[r(946,`G(2V`)+`IN`]:void 0)??(typeof process===i[r(514,`RYf9`)]?void 0:process.env?.JCHAT_DOMAIN)??i[r(878,`3f(v`)];return i[r(945,`5kB^`)](X,s,c,{allowOfflineGrace:!0,lastSuccessfulCheckAt:o?.[r(1441,`gYgN`)+r(1304,`5fxg`)+`t`],...n})?i[r(516,`5CQw`)](J,s)?.[r(1082,`BIQm`)]??[i[r(1063,`5CQw`)]]:[i[r(477,`wpfG`)]]}function he(e,n){let r=t,i={TlSPf:function(e){return e()},HBHAJ:r(1162,`@$cP`),UpfWi:function(e){return e()},uKzqv:function(e){return e()},mIWrk:function(e,t){return e!==t},KdLqY:function(e,t){return e!==t},ZCNRI:`undefined`,ZnpEQ:`localhost`,pnXVC:function(e,t,n,r){return e(t,n,r)},sdxtd:function(e,t){return e(t)}};if(i[r(1080,`Lz^2`)](a))return i[r(1384,`LQC2`)];let o=i[r(856,`0aPG`)](M),s=o?.instanceToken??i[r(682,`gYgN`)](N);if(!s)return r(1393,`BIQm`);let c=e??(i.mIWrk(typeof Bun,r(713,`!jIo`))?Bun[r(1502,`aTd$`)]?.JCHAT_DOMAIN:void 0)??(i[r(468,`KsuY`)](typeof process,i[r(1182,`LQC2`)])?process.env?.JCHAT_DOMAIN:void 0)??i[r(1371,`Z!6x`)];return i.pnXVC(X,s,c,{allowOfflineGrace:!0,lastSuccessfulCheckAt:o?.[r(1364,`0v]D`)+r(618,`!jIo`)+`t`],...n})?i[r(1406,`aTd$`)](J,s)?.[r(1480,`6i5v`)]??r(1162,`@$cP`):i[r(1519,`s628`)]}function ge(e,n,r){let i=t,a={jsdfI:function(e,t){return e===t},ZXBWC:`stable`,VGIbc:i(627,`J#!b`)};return a[i(442,`AZbQ`)](e,a[i(701,`QT)A`)])||e===a.VGIbc?!0:me(n,r)[i(804,`P)JM`)](e)}function _e(e,n=t(896,`gYgN`),r,i,a){let o=t,s={yetYS:o(1162,`@$cP`),WeLnR:function(e,t){return e!==t},hquRa:function(e,t,n,r){return e(t,n,r)},IBjuF:function(e){return e()},boUct:function(e,t){return e!==t},hUqLs:o(497,`s628`),HNKkc:o(358,`5CQw`),xegSY:o(1171,`aTd$`)};if(n!==s[o(1195,`@$cP`)]&&s.WeLnR(n,o(1218,`AZbQ`))&&!s[o(1307,`h*Tz`)](ge,n,i,a))return{isValid:!1,featureKey:e,stage:n,siteId:r,error:`Feature "`+e+(o(1359,`@$cP`)+` "`)+n+(o(1338,`6vQ$`)+o(613,`Lz^2`)+o(1510,`T8E[`)+o(1196,`SQPT`)+o(919,`3f(v`)+o(1337,`aTd$`))};let c=s.IBjuF(M)?.[o(1391,`l@SX`)+o(729,`zEtC`)]??s[o(360,`aTd$`)](N),l=i??(s[o(484,`@1)F`)](typeof Bun,`undefined`)?Bun.env?.[o(1071,`6drC`)+`IN`]:void 0)??(s.boUct(typeof process,s[o(464,`6i5v`)])?process.env?.JCHAT_DOMAIN:void 0)??s[o(1257,`Lz^2`)],u;try{c&&(u=U(c,e,l,a))}catch{if(s[o(1044,`KsuY`)](n,s[o(434,`zEtC`)])&&n!==s[o(844,`0@L7`)])return{isValid:!1,featureKey:e,stage:n,siteId:r,error:`Feature "`+e+(o(822,`sr$X`)+o(1038,`0v]D`)+o(480,`sr$X`)+o(879,`Spk7`)+o(580,`Zhnm`))}}return{isValid:!0,featureKey:e,stage:n,siteId:r,executionToken:u}}async function ve(e,n,r,i,a,o=t(741,`Z!6x`),s=fetch){let c=t,l={FLZch:function(e){return e()},ePzKF:function(e,t){return e(t)},drSlh:c(1239,`WzD@`)+c(1009,`Z[ek`)+c(849,`zEtC`)+c(619,`C&%G`)+c(793,`T8E[`)+c(365,`5kB^`)},u=l.FLZch(oe);try{let t=await l.ePzKF(H,{purchaseCode:e,domain:n,siteSlug:r,domainScope:i,routingMode:a,provider:o,installationId:u[c(546,`0aPG`)+`onId`],fetchImpl:s});return t[c(678,`5fxg`)]?{valid:!0,buyer:t[c(1460,`5fxg`)],token:t[c(777,`#$tZ`)],domain:t[c(796,`Lz^2`)],state:u}:{valid:!1,error:t[c(578,`#$tZ`)]}}catch{return{valid:!1,error:l[c(855,`s628`)]}}}const ye=new Set([t(1060,`!8DJ`),`/api/v1/license/status`]);function be(e={}){let n=t,r={ogvos:function(e,t){return e===t},xwYnr:n(660,`0v]D`),LJqTl:n(1283,`@1)F`)+`es`,bnvsR:n(803,`s628`),OsCHQ:function(e){return e()},WHGMV:`production`,qsVRA:function(e,t){return e(t)},QhGMC:function(e,t){return e(t)},MupVg:function(e,t){return e>=t},vmhcx:function(e,t){return e(t)},TBydf:n(1431,`QT)A`)+n(1443,`AZbQ`),Xidyi:function(e,t){return e===t},FhXIs:function(e,t,n,r){return e(t,n,r)},IjSRL:function(e,t){return e(t)},SpuEJ:`jchatRuntime`,WckZl:n(1213,`G(2V`)};r[n(726,`G(2V`)](Ce,e);let i=e[n(562,`WzD@`)+`hs`]??ye;return new f({name:r[n(1042,`Z!6x`)]})[n(639,`Zhnm`)]({as:r[n(1125,`sr$X`)]},()=>({runtimeStatus:B()}))[n(756,`RYf9`)+n(1219,`@$cP`)]({as:n(1325,`sr$X`)},async({request:t,set:a})=>{let o=n;if(r[o(833,`#$tZ`)](t[o(626,`Z[ek`)],r[o(612,`gYgN`)])&&t[o(734,`5CQw`)][o(804,`P)JM`)](r[o(816,`5kB^`)])){let t=e[o(351,`#$tZ`)]??r[o(696,`C&%G`)],n=await r[o(1365,`6drC`)](P),i=e.token===void 0?n?.[o(787,`s628`)+o(589,`KsuY`)]:e.token,s=!r[o(679,`22Ck`)](Bun.env[o(558,`]hFA`)],r.WHGMV)&&r[o(815,`J#!b`)](D,t)?1/0:r[o(609,`22Ck`)](Q,i);if(r[o(499,`QT)A`)](await r[o(1223,`zEtC`)](Ee,e),s))return a[o(1449,`s628`)]=403,{status:r[o(1095,`6drC`)],message:o(1492,`KsuY`)+o(1429,`5kB^`)+o(495,`rlIX`)+s+o(964,`Q#ot`)+(r.Xidyi(s,1)?``:`s`)+(o(954,`!jIo`)+o(392,`KsuY`)+o(968,`!jIo`)+o(387,`]hFA`)+`e your lic`+o(526,`SQPT`)+o(429,`6drC`)+o(1057,`LQC2`)+`s.`),reference:o(591,`KsuY`)+o(398,`l@SX`)+`zed`}}return r[o(636,`wpfG`)](Te,t,a,i)})}var W=class extends Error{status=403;[t(491,`RYf9`)+t(1472,`J#!b`)];[t(882,`Z!6x`)];constructor(e,n=t(1448,`!jIo`)+t(835,`G(2V`),r=t(825,`QT)A`)+`rbidden`){let i=t,a={VxBee:i(1210,`#$tZ`)+`biddenError`};super(e),this[i(1446,`KsuY`)]=a[i(736,`Spk7`)],this[i(767,`wpfG`)]=n,this[i(821,`!8DJ`)+i(857,`6i5v`)]=r}};function G(t,n){t-=348;let r=e(),i=r[t];if(G.DGamxJ===void 0){var a=function(e){let t=``,n=``,r=t+a,i=(``+function(){return 0}).indexOf(`
|
|
8
|
+
`)!==-1;for(let n=0,a,o,s=0;o=e.charAt(s++);~o&&(a=n%4?a*64+o:o,n++%4)&&(t+=i||r.charCodeAt(s+10)-10!=0?String.fromCharCode(255&a>>(-2*n&6)):n))o=`abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=`.indexOf(o);for(let e=0,r=t.length;e<r;e++)n+=`%`+(`00`+t.charCodeAt(e).toString(16)).slice(-2);return decodeURIComponent(n)};G.VFmoiE=function(e,t){let n=[],r=0,i,o=``;e=a(e);let s=0;for(;s<256;s++)n[s]=s;for(s=0;s<256;s++)r=(r+n[s]+t.charCodeAt(s%t.length))%256,i=n[s],n[s]=n[r],n[r]=i;s=0,r=0;for(let t=0;t<e.length;t++)s=(s+1)%256,r=(r+n[s])%256,i=n[s],n[s]=n[r],n[r]=i,o+=String.fromCharCode(e.charCodeAt(t)^n[(n[s]+n[r])%256]);return o},G.OhzauM={},G.DGamxJ=!0}let o=r[0];G.vmFwbN!==o&&(G.OhzauM={},G.vmFwbN=o);let s=G.OhzauM[t];if(s===void 0){if(G.wdttwQ===void 0){let e=function(e){this.pwdiua=e,this.uGmrJs=[1,0,0],this.EjmQHh=function(){return`newState`},this.GzsdFM=`\\w+ *\\(\\) *{\\w+ *`,this.KIDWJT=`['|"].+['|"];? *}`};e.prototype.QsEsjn=function(){let e=new RegExp(this.GzsdFM+this.KIDWJT).test(this.EjmQHh.toString())?--this.uGmrJs[1]:--this.uGmrJs[0];return this.uxkDrO(e)},e.prototype.uxkDrO=function(e){return~e?this.cTipwu(this.pwdiua):e},e.prototype.cTipwu=function(e){for(let e=0,t=this.uGmrJs.length;e<t;e++)this.uGmrJs.push(Math.round(Math.random())),t=this.uGmrJs.length;return e(this.uGmrJs[0])},(``+function(){return 0}).indexOf(`
|
|
9
|
+
`)===-1&&new e(G).QsEsjn(),G.wdttwQ=!0}i=G.VFmoiE(i,n),G.OhzauM[t]=i}else i=s;return i}function xe(e){let n=t,r={VWjHl:`x-site-id`,pzSZJ:function(e,t){return e!==t},gAWCg:n(1202,`SQPT`),NvbGU:n(1318,`#$tZ`),TBKjD:function(e,t,n,r,i){return e(t,n,r,i)},IMyFQ:n(368,`@$cP`)+n(395,`RYf9`),RiRsu:`feature_fo`+n(620,`G(2V`),xxVLX:function(e,t,n){return e(t,n)},ftFyM:n(783,`h*Tz`)+n(1432,`MiUO`)+`ized`,whJYH:`site-feature-disabled`,jBhVL:`feature_di`+n(1415,`s628`),TnvWW:n(425,`QT)A`),iREcr:n(1092,`C&%G`)},{feature:i,stage:a=r.TnvWW,requiredEntitlement:o}=e;return new f({name:n(868,`Spk7`)+n(1422,`Q#ot`)+i}).derive({as:r[n(888,`rlIX`)]},async t=>{let o=n,{headers:s}=t,c=t[o(728,`]hFA`)+`t`],l;e[`resolveSit`+o(923,`rlIX`)]&&(l=await e[o(426,`s628`)+o(504,`h*Tz`)](t)),l||=t[o(754,`gYgN`)+o(399,`Z!6x`)]??c?.[o(1331,`MiUO`)]?.id??s[r[o(1167,`J#!b`)]];let u=e[o(374,`!8DJ`)]??(r[o(834,`BIQm`)](typeof Bun,r[o(797,`Z!6x`)])?Bun[o(745,`22Ck`)]?.[o(977,`5CQw`)+`IN`]:void 0)??r[o(1268,`3f(v`)];return{featureContext:r[o(1280,`sr$X`)](_e,i,a,l,u)}})[`onBeforeHa`+n(1113,`Zhnm`)]({as:r[n(1323,`KsuY`)]},async t=>{let a=n,{set:s,featureContext:c}=t;if(!c||!c[a(1146,`z5vx`)])throw s[a(1347,`RYf9`)]=403,new W(c?.[a(974,`!8DJ`)]??a(901,`@1)F`)+i+(`" is not a`+a(914,`0aPG`)+a(515,`l@SX`)+`cense stage.`),r[a(366,`zEtC`)],r[a(427,`5fxg`)]);if(o&&!r[a(1034,`@1)F`)]($,o,e[a(1305,`h*Tz`)]))throw s[a(456,`@$cP`)]=403,new W(`Feature "`+i+(a(349,`!jIo`)+a(483,`3f(v`)+`nt "`)+o+`".`,r[a(1012,`6i5v`)],r[a(467,`RYf9`)]);if(e[a(1439,`LQC2`)+a(1076,`KsuY`)]&&c[a(606,`l@SX`)]&&!await e[a(1357,`G(2V`)+a(403,`l@SX`)](c.siteId,i))throw s[a(930,`0v]D`)]=403,new W(a(1075,`5fxg`)+i+(`" is disab`+a(709,`6drC`)+a(862,`WzD@`)),r[a(383,`QT)A`)],r[a(686,`5CQw`)])})}async function Se(e={}){let n=t,r={InHef:function(e,t){return e===t},htYvx:n(851,`22Ck`),jFMtf:function(e,t){return e(t)},janAN:function(e){return e()},AkOZA:function(e,t){return e(t)},bAAIP:n(1497,`z5vx`)+`e`,ZDJWF:`path`,CYkNN:function(e,t){return e===t},lvkmU:n(932,`z5vx`),zXhht:function(e,t){return e(t)},bPCMw:function(e,t){return e(t)},vEmqj:n(1117,`Z[ek`)},i=e[n(779,`0aPG`)]??n(419,`Z!6x`),a=r[n(1421,`0aPG`)](Bun.env[n(1468,`WzD@`)],r[n(874,`z5vx`)]);if(r[n(683,`P5x!`)](D,i)&&!a)return z(`valid`),null;let o=await r[n(1175,`LQC2`)](P);if(!o?.[`instanceTo`+n(455,`5CQw`)])return r[n(953,`QT)A`)](z,e[n(541,`0v]D`)+`pComplete`]?n(859,`4Wkw`):r.bAAIP),null;let s=await r[n(1129,`5fxg`)](pe,{token:o[n(1048,`5fxg`)+n(575,`@1)F`)],domain:i,routingMode:e[n(1209,`0@L7`)+`e`]??r[n(1237,`!8DJ`)],installationId:o[n(737,`22Ck`)+n(952,`5kB^`)],lastSuccessfulCheckAt:o[n(996,`T8E[`)+`sfulCheckAt`],gracePeriodDays:30,runtimeOptions:{publicKeyPem:e[n(433,`s628`)],allowOfflineGrace:!0,lastSuccessfulCheckAt:o[`lastSucces`+n(440,`WzD@`)+`t`],gracePeriodDays:30}});return r[n(630,`J#!b`)](s[n(746,`QT)A`)],r[n(766,`P5x!`)])?(s[n(535,`AZbQ`)]&&await r[n(1388,`aTd$`)](F,s[n(817,`aTd$`)]),r[n(1520,`T8E[`)](z,r[n(1322,`0@L7`)])):s[n(928,`Z!6x`)]===n(1344,`RYf9`)+`e-fallback`?r.AkOZA(z,n(1506,`wpfG`)+n(1476,`Spk7`)):s[n(1481,`h*Tz`)]===n(1088,`BIQm`)&&(z(r[n(1511,`l@SX`)],s.reference),e[n(1486,`Z!6x`)+`te`]&&e.onInvalidate()),s}async function Ce(e={}){let n=t,r={fYomr:function(e,t){return e(t)},qwFXP:function(e,t){return e===t},djjRf:n(614,`P)JM`),IFTzS:function(e,t){return e(t)},lzYfJ:function(e,t){return e===t},JWFqz:n(1158,`Spk7`),UFRdS:`valid`,dPhTp:function(e){return e()},LYjVi:n(577,`sr$X`)+`e`,ytZOY:function(e,t,n,r){return e(t,n,r)},stwdN:function(e,t,n){return e(t,n)},AiOxe:n(1081,`gYgN`),iMAnp:`domain-mis`+n(624,`0@L7`),roBax:function(e,t){return e>t},mPQbr:function(e,t){return e(t)},QiwZd:function(e,t,n){return e(t,n)},WBzTI:n(1084,`h*Tz`)+n(1389,`@$cP`)+n(986,`MiUO`),dWIYv:function(e,t){return e(t)},JSSbY:function(e,t){return e*t},MtFjS:function(e,t){return e*t},yacSg:function(e,t,n){return e(t,n)},xJGyc:function(e,t){return e===t},hXdas:n(858,`RYf9`)};if(!(e[`isPrimaryW`+n(693,`Lz^2`)]??(!Bun[n(476,`WzD@`)][n(432,`Lz^2`)]||r.qwFXP(Bun[n(684,`P)JM`)].WORKER_ID,`0`))))return;let i=e[n(848,`22Ck`)]??r[n(1473,`Q#ot`)];e[n(1156,`J#!b`)+`te`]&&r[n(625,`G(2V`)](ue,e[n(956,`!8DJ`)+`te`]);let a=r[n(801,`l@SX`)](Bun[n(1358,`l@SX`)][n(1524,`P)JM`)],r[n(921,`J#!b`)]);if(r[n(672,`MiUO`)](D,i)&&!a){z(r.UFRdS);return}let o=await r[n(394,`l@SX`)](P),s=e[n(1002,`!jIo`)]===void 0?o?.[n(1059,`4Wkw`)+n(1374,`Z[ek`)]:e[n(792,`P5x!`)];if(!s){z(e[n(362,`Z[ek`)+n(584,`l@SX`)]?r[n(832,`rlIX`)]:r.LYjVi);return}if(!r[n(1430,`!jIo`)](X,s,i,{publicKeyPem:e[n(1254,`Spk7`)],allowOfflineGrace:!0,lastSuccessfulCheckAt:o?.[n(1094,`6drC`)+`sfulCheckAt`],gracePeriodDays:30})){r[n(461,`C&%G`)](z,r[n(367,`0aPG`)],r[n(949,`Z!6x`)]);return}if(r[n(690,`0@L7`)](await r[n(775,`Z!6x`)](Ee,e),!a&&r[n(1447,`@$cP`)](D,i)?1/0:Q(s))){r[n(603,`!jIo`)](z,r.AiOxe,r[n(443,`0aPG`)]);return}r[n(1127,`3f(v`)](z,r.UFRdS);let c=e[`checkInter`+n(800,`@1)F`)]??1,l=r.JSSbY(r[n(860,`P5x!`)](r[n(837,`wpfG`)](Math[n(836,`KsuY`)](1,c),24),60)*60,1e3),u=r[n(571,`6B7g`)](setInterval,()=>{r[n(1435,`T8E[`)](Se,e)},l);r[n(1348,`RYf9`)](typeof u.unref,r[n(502,`l@SX`)])&&u[n(587,`aTd$`)]()}function we(e,n,r){let i=t,a={IISOO:function(e,t){return e===t},MfclI:i(552,`#$tZ`)+i(649,`Spk7`)+i(1194,`6i5v`),yLFXH:i(1165,`5fxg`)+`e`,kcDgV:function(e,t){return e===t},tHdhb:`/install`,lyqEe:i(1464,`Zhnm`),sueqx:i(485,`gYgN`)+`co`};return r.has(e)?!0:n===i(829,`6B7g`)?a[i(1272,`WzD@`)](e,a[i(1008,`Q#ot`)]):a[i(1529,`l@SX`)](n,a[i(1101,`zEtC`)])?a.kcDgV(e,a[i(1238,`gYgN`)])||e[i(1482,`Lz^2`)](i(648,`SQPT`))||e[i(806,`BIQm`)](a.lyqEe)||e.startsWith(`/_`)||a.kcDgV(e,a[i(567,`SQPT`)]):!1}function Te(e,n,r=ye,i=Bun[t(1413,`Spk7`)][t(1168,`3f(v`)]===t(983,`s628`)){let a=t,o={FmiFQ:function(e){return e()},YQxjc:a(943,`5CQw`)+a(615,`]hFA`),LBGNS:a(1124,`Zhnm`),cRpNQ:function(e,t){return e(t)},gmvHI:a(1362,`SQPT`),KweWk:`license_in`+a(970,`]hFA`),harCY:a(763,`6i5v`)+a(369,`QT)A`)+a(1205,`Q#ot`),sPvWs:function(e,t){return e===t},CZRds:a(1399,`BIQm`),JeHmT:a(628,`zEtC`)+a(1544,`RYf9`),fkxBC:function(e,t){return e===t},IziLP:a(596,`!jIo`)+`e`,fpVAu:function(e,t,n,r){return e(t,n,r)},zYLvn:function(e,t){return e===t},wPdDl:a(969,`KsuY`)+a(875,`MiUO`)+a(411,`RYf9`)+a(1275,`#$tZ`)+a(583,`T8E[`)+a(509,`P5x!`)+a(1293,`4Wkw`)+`tion.`},{status:s,reference:c}=o[a(1321,`G(2V`)](B),l=[e[a(657,`h*Tz`)][a(574,`4Wkw`)](o[a(1512,`MiUO`)]),e[a(1392,`rlIX`)][a(1099,`AZbQ`)](o[a(893,`T8E[`)])][a(428,`6vQ$`)](Boolean);for(let e of l){let t=e[a(1070,`0@L7`)](`,`)[0][a(507,`s628`)]()[a(1134,`MiUO`)](`:`)[0][a(881,`sr$X`)+`e`]();if(t&&o.cRpNQ(T,t)&&o[a(1093,`T8E[`)](D,Bun.env[a(352,`sr$X`)+`IN`]||o[a(1383,`zEtC`)]))return n[a(1347,`RYf9`)]=403,{status:o[a(730,`h*Tz`)],message:a(790,`MiUO`)+a(1180,`KsuY`)+a(1541,`]hFA`)+a(1548,`RYf9`)+a(1345,`!jIo`)+a(770,`5fxg`)+a(662,`Q#ot`)+`.`,reference:o[a(1049,`!8DJ`)]}}if(!(o[a(1390,`6i5v`)](s,o[a(549,`G(2V`)])||s===o[a(854,`SQPT`)])&&(i||!o[a(539,`6i5v`)](s,o[a(980,`Zhnm`)]))&&!o[a(944,`6i5v`)](we,new URL(e.url)[a(1332,`BIQm`)][a(634,`AZbQ`)](/\/+$/,``)||`/`,s,r))return n[a(1282,`rlIX`)]=503,o[a(534,`5kB^`)](s,o[a(405,`G(2V`)])?{status:a(604,`6B7g`)+a(1150,`P5x!`),message:o[a(1376,`Q#ot`)],reference:c}:{status:o.KweWk,message:a(1292,`BIQm`)+a(743,`z5vx`)+a(933,`sr$X`)+a(824,`h*Tz`)+a(1437,`C&%G`)+`cense is i`+a(1401,`MiUO`),reference:c}}async function Ee(e){let n=t,r={RUzxO:function(e,t){return e!==t},dqOrF:n(740,`Zhnm`),nHXQg:function(e,t){return e in t},FFtqw:function(e,t){return e(t)}};if(e[n(1013,`!jIo`)+`nt`])try{return await e[n(437,`6drC`)+`nt`]()}catch{return 0}let i=Bun[n(1502,`aTd$`)].DATABASE_URL;if(i&&r[n(421,`T8E[`)](typeof Bun,r[n(959,`6drC`)])&&r[n(1234,`h*Tz`)](n(1405,`QT)A`),Bun))try{let e=new Bun[n(1551,`wpfG`)](i),t=await e`SELECT count(*)::int as count FROM sites WHERE deleted_at IS NULL`;if(await e.close(),r[n(747,`]hFA`)](t?.[0]?.count,void 0)&&r[n(472,`h*Tz`)](t[0][n(674,`]hFA`)],null))return r[n(711,`22Ck`)](Number,t[0].count)}catch{}return 0}function De(e,r=typeof Bun===t(1149,`rlIX`)?process.env:Bun[t(811,`0v]D`)],i=n,a=x){let o=t,c={vjqBj:o(386,`P)JM`),iNybO:function(e,t){return e===t},byKVI:o(601,`RYf9`),VZxzj:function(e,t){return e!==t},bRLrD:`hex`,uUIPZ:function(e,t,n){return e(t,n)},ZISHm:function(e,t){return e(t)}},l=r[o(659,`gYgN`)]===c[o(1035,`MiUO`)]||c[o(1299,`WzD@`)](typeof r[o(588,`rlIX`)],c[o(1536,`Spk7`)])&&(c[o(1256,`LQC2`)](typeof Bun,c[o(635,`s628`)])&&c.iNybO(Bun.env?.[o(501,`MiUO`)],c.vjqBj)||typeof process!==c.byKVI&&process.env?.NODE_ENV===o(1158,`Spk7`))?c[o(490,`Lz^2`)]:i,u;try{u=e[o(991,`5fxg`)](r)}catch{let e=s[o(1369,`h*Tz`)+`s`](64)[o(846,`KsuY`)](c[o(436,`aTd$`)]);return u={...r,JCHAT_PORT:r[o(782,`Zhnm`)]?c[o(809,`P5x!`)](parseInt,c[o(947,`0@L7`)](String,r[o(370,`SQPT`)]),10):3e3,JCHAT_COOKIE_SECRET:e},{...u,JCHAT_COOKIE_SECRET:e,SYSTEM_BOOTSTRAP_COMPLETE:!1}}return Oe(u,l,a)}function Oe(e,n=`production`,r=x){let i=t,a={YlvBL:function(e,t){return e!==t},vdUfK:i(1020,`6B7g`),xpnOL:i(892,`Zhnm`),IXnHr:function(e,t){return e===t},BUpDo:function(e,t){return e!==t},xxMZh:i(1518,`KsuY`),aFLQr:function(e){return e()},Xaxzh:function(e,t){return e===t},gYqsA:i(401,`C&%G`)+`sandbox`,nwvOa:i(774,`6i5v`),ltLpf:function(e,t){return e===t},padhu:function(e,t){return e===t},divsF:function(e,t){return e(t)},pjBwP:i(814,`aTd$`)+i(511,`6B7g`)+i(597,`LQC2`)+i(608,`z5vx`)+i(873,`BIQm`)+i(1387,`z5vx`)+`tion deplo`+i(1108,`]hFA`),DcHEo:function(e,t){return e||t},HMzkk:i(1029,`]hFA`),TuQBD:function(e,t){return e(t)},kciGR:i(971,`C&%G`)+`t`,OooFV:i(1425,`!8DJ`),GTULH:i(668,`0@L7`)},o={...e},c=!0;a[i(522,`5CQw`)](typeof o[i(751,`!jIo`)+i(610,`0v]D`)],a[i(593,`QT)A`)])&&(o[`JCHAT_COOK`+i(1375,`C&%G`)]=``);try{let e=o.NODE_ENV===a[i(1329,`Lz^2`)]||a[i(1110,`Z[ek`)](typeof o[i(765,`h*Tz`)],`undefined`)&&a[i(904,`6i5v`)](typeof Bun,a[i(1208,`J#!b`)])&&a[i(1363,`5CQw`)](Bun[i(1016,`@$cP`)]?.[i(1252,`6vQ$`)],a[i(1089,`z5vx`)]),t=M(),l=t?.instanceToken??a[i(424,`6vQ$`)](N);if(a[i(439,`!8DJ`)](n,a[i(1045,`Z!6x`)])&&!e)c=!0;else if(!l)c=!1,(a[i(1018,`Lz^2`)](n,a.xpnOL)||e)&&(o[`JCHAT_COOK`+i(658,`MiUO`)]=s[i(1369,`h*Tz`)+`s`](64).toString(a[i(1436,`J#!b`)]));else{let u=a[i(1336,`Q#ot`)](typeof o[i(863,`z5vx`)+`IN`],a[i(1418,`Z!6x`)])?o[i(1214,`QT)A`)+`IN`]:void 0,d=a.padhu(typeof o.NODE_ENV,a[i(1547,`KsuY`)])?o[i(1523,`!jIo`)]:void 0;if(!u||!a[i(1251,`!jIo`)](E,u)||d===a[i(1319,`0@L7`)]&&!T(u))throw Error(a[i(642,`sr$X`)]);if(!X(l,a[i(1141,`3f(v`)](u,a[i(771,`@1)F`)]),{publicKeyPem:a.TuQBD(Y,r),allowOfflineGrace:!0,lastSuccessfulCheckAt:t?.[i(1069,`4Wkw`)+i(1058,`KsuY`)+`t`]}))c=!1,(a[i(1490,`LQC2`)](n,a[i(564,`3f(v`)])||e)&&(o[i(687,`gYgN`)+`IE_SECRET`]=s[i(1224,`#$tZ`)+`s`](64).toString(a[i(532,`6i5v`)]));else{let t=a[i(550,`Z[ek`)](J,l);if(d===a.xpnOL&&a[i(556,`BIQm`)](t?.environment,a[i(1102,`zEtC`)]))c=!1,(n===i(531,`5fxg`)||e)&&(o[`JCHAT_COOK`+i(610,`0v]D`)]=s[i(1488,`RYf9`)+`s`](64)[i(1404,`3f(v`)](a[i(1232,`0@L7`)]));else{let e=l.split(`.`),n=e[2]||``;if(n&&t){let r=(t[i(761,`h*Tz`)]??[a[i(1505,`P5x!`)]])[i(598,`!jIo`)]()[i(640,`6i5v`)]()[i(375,`5fxg`)](`,`),c=t[i(1530,`Z[ek`)]??a.OooFV,l=s.createHmac(a[i(1106,`C&%G`)],n)[i(1424,`Q#ot`)](e[0]+`.`+e[1]+`:`+t[i(1451,`@1)F`)]+`:`+t[i(607,`0@L7`)+i(1229,`4Wkw`)]+`:`+r+`:`+c)[i(907,`5CQw`)](`hex`);o[`JCHAT_COOK`+i(1003,`LQC2`)]=o[i(406,`wpfG`)+i(1151,`BIQm`)]+l}}}}}catch{c=!1,o[i(1112,`#$tZ`)+i(658,`MiUO`)]=s[i(451,`Z[ek`)+`s`](64)[i(1404,`3f(v`)](a[i(1243,`l@SX`)])}return o[i(769,`aTd$`)+i(810,`P)JM`)+`PLETE`]=c,o}function K(e){let n=t,r={apNLj:function(e,t){return e===t},mEtFl:n(812,`6i5v`),KbGLc:function(e,t){return e!==t}};return r[n(354,`WzD@`)](typeof e,r[n(958,`wpfG`)])&&r[n(1459,`s628`)](e,null)&&!Array[n(978,`3f(v`)](e)}function q(e){let n=t,r={Vwdtf:function(e,t){return e===t},RlmpX:`string`,DyqHL:function(e,t){return e>t}};return r[n(707,`sr$X`)](typeof e,r.RlmpX)&&r.DyqHL(e[n(1241,`6drC`)]()[n(1085,`J#!b`)],0)}function ke(e){let n=t,r={FQsCm:n(735,`#$tZ`),gvYbT:n(994,`s628`)};if(!e)return null;try{return JSON[n(1157,`4Wkw`)](Buffer.from(e,r[n(876,`QT)A`)])[n(758,`sr$X`)](r[n(950,`6vQ$`)]))}catch{return null}}function Ae(e){let n=t,r={gcbZC:function(e,t){return e!==t},PcFBC:function(e,t){return e(t)},qyeaT:n(1137,`z5vx`),mUoda:function(e,t){return e!==t},xOVfn:n(839,`l@SX`)},i=e[n(1152,`P)JM`)](`.`);if(r[n(1368,`KsuY`)](i[n(753,`0v]D`)],3))return null;let a=r[n(1014,`aTd$`)](ke,i[0]);return!r[n(1286,`z5vx`)](K,a)||r[n(629,`s628`)](a.alg,r[n(1073,`P5x!`)])||r[n(646,`LQC2`)](a[n(513,`!jIo`)],r[n(688,`gYgN`)])?null:{alg:r[n(1126,`6drC`)],typ:r[n(1335,`aTd$`)]}}function je(e){let n=t,r={hjirv:function(e,t){return e(t)},kBzPg:function(e,t){return e(t)},KlWnW:function(e,t){return e(t)},RtZrG:function(e,t){return e(t)},nRkDB:function(e,t){return e(t)},MtVkJ:`envato`,Ihncm:n(572,`]hFA`),YWJxy:function(e,t){return e!==t},derYq:function(e,t){return e!==t},vVNHL:n(557,`4Wkw`),mMmSX:function(e,t){return e!==t},BSQJn:n(1266,`Q#ot`),CaBoH:`number`,Hjbcv:function(e,t){return e<t},vsFdy:function(e,t){return e<t},CBBuT:n(700,`h*Tz`),lXlaG:`beta`,axXNP:n(705,`Lz^2`),rhdlf:n(1396,`0v]D`),wgQLV:function(e,t){return e!==t},akKRp:function(e,t){return e!==t},DsNBQ:n(594,`6vQ$`),rlEVp:function(e,t){return e===t},zWOLN:function(e,t){return e===t},FEkdw:n(979,`z5vx`)+`t`,kSxQK:function(e,t){return e(t)},oerjD:function(e,t){return e!==t}};if(!r[n(623,`aTd$`)](K,e))return null;let{iss:i,aud:a,licenseId:o,domain:s,buyer:c,installationId:l,plan:u,entitlements:d,purchaseProvider:f,environment:p,routingMode:m,iat:h,exp:g,isTrial:_,stages:v,channel:y,limits:b}=e;if(!r[n(738,`3f(v`)](q,i)||!r[n(1163,`#$tZ`)](q,a)||!r[n(622,`rlIX`)](q,o)||!r[n(915,`0@L7`)](q,s)||!r[n(1036,`!8DJ`)](q,c)||!r[n(828,`]hFA`)](q,l)||!q(u)||!Array[n(602,`G(2V`)](d)||!d.every(q)||f!==r[n(435,`AZbQ`)]&&f!==r.Ihncm||r[n(704,`l@SX`)](p,`production`)&&r[n(1434,`5kB^`)](p,n(1245,`4Wkw`)+`t`)||m!==r[n(1535,`h*Tz`)]&&r[n(413,`]hFA`)](m,r[n(1514,`@1)F`)])||r[n(1478,`BIQm`)](typeof h,r[n(382,`QT)A`)])||!Number[n(465,`Zhnm`)+`ger`](h)||r[n(415,`3f(v`)](h,0)||g!==void 0&&(typeof g!==r[n(762,`G(2V`)]||!Number[n(695,`MiUO`)+n(377,`zEtC`)](g)||r[n(677,`6B7g`)](g,0))||r[n(1046,`#$tZ`)](_,void 0)&&r[n(473,`KsuY`)](typeof _,r[n(724,`Z[ek`)]))return null;let x=new Set([n(1278,`aTd$`),r[n(500,`SQPT`)],n(1189,`l@SX`)+`al`,r[n(1177,`Spk7`)]]),S;if(r[n(506,`sr$X`)](v,void 0)){if(!Array[n(869,`l@SX`)](v)||!v[n(1412,`6i5v`)](e=>typeof e===n(486,`gYgN`)&&x[n(573,`22Ck`)](e)))return null;S=v}let C=new Set([r.rhdlf,`lts`]),E;if(r[n(962,`h*Tz`)](y,void 0)){if(r[n(1153,`gYgN`)](typeof y,r.DsNBQ)||!C[n(542,`]hFA`)](y))return null;E=y}let D;if(r[n(884,`22Ck`)](b,void 0)){if(!K(b)||r[n(570,`G(2V`)](typeof b[n(650,`C&%G`)],r[n(391,`0v]D`)])||!Number[n(939,`!jIo`)+n(778,`0v]D`)](b.maxSites))return null;D={maxSites:b[n(689,`wpfG`)],...r[n(470,`0@L7`)](typeof b[`maxRoomsPe`+n(523,`J#!b`)],r[n(671,`C&%G`)])&&Number[n(1267,`gYgN`)+n(1445,`l@SX`)](b[n(1491,`6i5v`)+n(1498,`aTd$`)])?{maxRoomsPerSite:b[`maxRoomsPe`+n(1316,`#$tZ`)]}:{}}}let O;try{O=r[n(1036,`!8DJ`)](w,s)}catch{return null}return r[n(579,`0@L7`)](p,r[n(721,`P)JM`)])&&!O[n(582,`]hFA`)+`t`]||p===n(1122,`z5vx`)&&!r[n(1499,`C&%G`)](T,s)?null:{iss:i,aud:a,licenseId:o,domain:s,buyer:c,installationId:l,plan:u,entitlements:d,purchaseProvider:f,environment:p,routingMode:m,iat:h,...g===void 0?{}:{exp:g},...r[n(1138,`Spk7`)](_,void 0)?{isTrial:_}:{},...r[n(1342,`rlIX`)](S,void 0)?{stages:S}:{},...r.wgQLV(E,void 0)?{channel:E}:{},...r[n(776,`zEtC`)](D,void 0)?{limits:D}:{}}}function J(e){let n=t,r={fzVnz:function(e,t){return e!==t},IYFQS:function(e,t){return e(t)},INifR:function(e,t){return e(t)}},i=e[n(1134,`MiUO`)](`.`);return r[n(1287,`AZbQ`)](i[n(568,`#$tZ`)],3)||!i[n(418,`MiUO`)](Boolean)||!r[n(1457,`sr$X`)](Ae,e)?null:r[n(712,`0@L7`)](je,ke(i[1]))}function Y(e){let n=t,r={EDNwx:n(493,`G(2V`),VUFjY:function(e,t){return e===t},igbGO:n(372,`@$cP`),yyTDS:function(e,t){return e!==t},GAUnG:function(e,t){return e===t}};return typeof Bun!==r[n(1040,`5fxg`)]&&r[n(1479,`Zhnm`)](Bun[n(786,`0@L7`)]?.[n(1015,`LQC2`)],r[n(1139,`Z[ek`)])||r[n(378,`AZbQ`)](typeof process,r.EDNwx)&&r[n(739,`Zhnm`)](process.env?.NODE_ENV,n(531,`5fxg`))||!e?x:e}function X(e,n,r){let i=t,a={nACbv:function(e,t){return e===t},gNEfH:function(e,t){return e!==t},DemeJ:function(e,t){return e(t)},fUxfs:i(1469,`6vQ$`)+`cense.jcha`+i(488,`6vQ$`),JoXDl:i(1176,`BIQm`),SYqMT:function(e,t){return e(t)},TbTLL:function(e,t){return e(t)},Xyrma:function(e,t){return e!==t},zzmvJ:function(e,t){return e>t},qBDro:function(e,t){return e/t},KWqnh:function(e,t){return e-t},LAtUl:i(1273,`0aPG`)};if(!e||a[i(1515,`h*Tz`)](e,i(1067,`Q#ot`)+i(1233,`Zhnm`)+i(1470,`h*Tz`)))return!1;try{let t=e[i(525,`RYf9`)](`.`);if(a.gNEfH(t[i(479,`5kB^`)],3)||!a.DemeJ(Ae,e))return!1;let o=a[i(1546,`@$cP`)](J,e);if(!o)return!1;let c=r?.[i(733,`aTd$`)]??Bun[i(1453,`zEtC`)][i(503,`3f(v`)+i(732,`J#!b`)]??a[i(864,`SQPT`)],l=r?.[i(1288,`@$cP`)]??Bun[i(725,`5kB^`)][`JCHAT_LICE`+i(972,`WzD@`)+`CE`]??a[i(1041,`4Wkw`)];if(a.gNEfH(o[i(1537,`G(2V`)],c)||a[i(1116,`6i5v`)](o[i(1253,`3f(v`)],l))return!1;let u=a[i(576,`@1)F`)](w,n)[i(1200,`4Wkw`)],d=a.TbTLL(w,o[i(960,`l@SX`)])[i(757,`6i5v`)];if(a[i(1507,`z5vx`)](u,d)&&(a[i(1463,`0v]D`)](o[i(1074,`Z!6x`)+`e`],i(789,`T8E[`))||!u[i(975,`0v]D`)](`.`+d)))return!1;if(a[i(553,`gYgN`)](o[i(661,`Zhnm`)],void 0)&&Math[i(1206,`0aPG`)](Date[i(905,`RYf9`)]()/1e3)>o[i(1065,`LQC2`)]){if(r?.[i(471,`P5x!`)+i(748,`!8DJ`)]&&r[i(942,`!8DJ`)+`sfulCheckAt`]){let e=Date[i(1361,`J#!b`)](r[`lastSucces`+i(618,`!jIo`)+`t`]),t=r[i(1207,`22Ck`)+`dDays`]??30;if(Number[i(1456,`22Ck`)](e)||a[i(1312,`@1)F`)](a.qBDro(a[i(665,`5CQw`)](Date[i(656,`5CQw`)](),e),864e5),t))return!1}else return!1}let f=Buffer[i(985,`0@L7`)](t[0]+`.`+t[1]),p=Buffer[i(1296,`Spk7`)](t[2][i(1274,`C&%G`)](/-/g,`+`).replace(/_/g,`/`),i(1263,`RYf9`)),m=Y(r?.[i(818,`0@L7`)+`em`]);return s.verify(a[i(595,`Q#ot`)],f,m,p)}catch{return!1}}function Z(e,n,r,i){let a=t,o={yYVab:function(e,t,n,r){return e(t,n,r)},Hihtl:function(e,t){return e(t)},EocVv:function(e,t){return e===t}};if(!o[a(1024,`h*Tz`)](X,e,n,i))return!1;let s=o.Hihtl(J,e);return s?o[a(1295,`6vQ$`)](s[a(489,`wpfG`)+a(1191,`G(2V`)],r):!1}function Me(e,n,r,i){let a=t;return X(e,n,i)?J(e)?.[a(865,`WzD@`)+`ts`]?.[a(633,`AZbQ`)](r)??!1:!1}function Ne(e,n=`localhost`,r){let i=t,a={BYMvq:function(e,t,n,r){return e(t,n,r)},RWHNH:function(e,t){return e===t},NQLYl:i(520,`G(2V`)+`t`,LTvYF:function(e,t){return e(t)},cMZwN:function(e,t){return e>t},MlmDY:function(e,t){return e(t)},UZPxv:`site.creat`+i(1051,`s628`)};if(!e||!a[i(877,`s628`)](X,e,n,r))return!1;let o=J(e);return o?a[i(1199,`z5vx`)](o[i(569,`P5x!`)+`t`],a[i(791,`0@L7`)])&&a[i(1353,`s628`)](D,n)?!0:a[i(744,`gYgN`)](a[i(1395,`4Wkw`)](Q,e),1)||(o.entitlements?.[i(633,`AZbQ`)](a[i(1204,`MiUO`)])??!1):!1}function Pe(e,n,r=t(1028,`G(2V`),i){let a=t,o={ncRMK:function(e,t,n,r){return e(t,n,r)},dlCMU:function(e,t){return e(t)}};return!e||i&&!o[a(831,`Lz^2`)](X,e,r,i)?!1:o.dlCMU(J,e)?.[a(637,`QT)A`)+`ts`]?.[a(1500,`Z[ek`)](n)??!1}function Fe(e,n,r=t(1417,`LQC2`),i){let a=t,o={DIWTt:function(e,t){return e===t},bYlnI:`stable`,TGWcP:a(1540,`P)JM`),xgkMS:function(e,t,n,r){return e(t,n,r)}};return o[a(667,`AZbQ`)](n,o[a(1333,`AZbQ`)])||o[a(441,`RYf9`)](n,o[a(1078,`]hFA`)])?!0:!e||i&&!o.xgkMS(X,e,r,i)?!1:(J(e)?.[a(592,`RYf9`)]??[o[a(802,`s628`)]])[a(1121,`22Ck`)](n)}function Q(e){let n=t;return e?{VVkow:function(e,t){return e(t)}}.VVkow(J,e)?.[n(1277,`]hFA`)]?.[n(481,`MiUO`)]??1:1}function Ie(e,n=t(1417,`LQC2`),r){let i=t,a={YUxye:i(1278,`aTd$`),ngLcb:function(e,t,n,r){return e(t,n,r)},ikSFx:function(e,t){return e(t)}};return e?r&&!a[i(1212,`aTd$`)](X,e,n,r)?a[i(1264,`KsuY`)]:a[i(1250,`AZbQ`)](J,e)?.channel??a[i(805,`gYgN`)]:a[i(820,`QT)A`)]}function Le(e){let n=t,r={HgqtL:function(e,t){return e>t},TtfNF:function(e,t,n){return e(t,n)},zUCRD:n(1330,`Spk7`)+n(510,`C&%G`)};return r[n(555,`4Wkw`)](Q(e),1)||r[n(1161,`P)JM`)](Pe,e,r[n(664,`Spk7`)])}function $(e,n){let r=t,i={xyHsF:function(e){return e()},Eyohd:function(e){return e()},jZtZI:function(e,t,n,r){return e(t,n,r)},XMlRu:function(e,t){return e!==t},jdgHP:r(740,`Zhnm`)};if(i[r(1495,`LQC2`)](a))return!1;let o=i[r(1552,`5fxg`)](N);return o?i[r(385,`RYf9`)](Me,o,n??(i[r(1140,`MiUO`)](typeof Bun,i[r(895,`22Ck`)])?Bun[r(1502,`aTd$`)]?.JCHAT_DOMAIN:void 0)??r(404,`J#!b`),e):!1}function Re(e,n){let r=t,i={gHJqe:function(e){return e()},ATKcD:function(e,t){return e!==t},qaOpd:r(641,`QT)A`),GsCnU:`production`,UIows:r(1534,`rlIX`),iyvfO:function(e,t,n,r){return e(t,n,r)},kqdyY:function(e,t){return e(t)},BvZrw:function(e,t){return e(t)}};if(i[r(673,`Lz^2`)](a))return 1/0;let o=i[r(680,`6i5v`)](typeof Bun,i[r(1539,`AZbQ`)])&&Bun[r(1452,`3f(v`)]?.[r(794,`P5x!`)]===i[r(559,`6vQ$`)]||i[r(699,`P)JM`)](typeof process,i.qaOpd)&&process.env?.NODE_ENV===i.GsCnU,s=e??(typeof Bun===i[r(997,`Z[ek`)]?void 0:Bun[r(717,`Zhnm`)]?.JCHAT_DOMAIN)??i[r(911,`RYf9`)],c=N();if(!c||!i[r(1509,`!8DJ`)](X,c,s,n))return 1;let l=i.kqdyY(J,c);return o?i[r(951,`gYgN`)](Q,c):l?.[r(1269,`h*Tz`)+`t`]===`development`&&i[r(1068,`aTd$`)](D,s)?1/0:i[r(348,`aTd$`)](Q,c)}function ze(e){let n=t,r={jhlkC:function(e){return e()},CYVHS:function(e,t){return e!==t},daIMU:`undefined`,LOPKY:n(1184,`C&%G`),RsToG:function(e,t,n){return e(t,n)},ehUaM:function(e){return e()}};if(r.jhlkC(a))return!0;let i=e??(r[n(897,`rlIX`)](typeof Bun,r[n(1407,`sr$X`)])?Bun[n(384,`6vQ$`)]?.[n(1285,`LQC2`)+`IN`]:void 0)??r[n(1356,`22Ck`)];return r[n(448,`AZbQ`)](Ne,r.ehUaM(N),i)}function Be(e=`single`,n,r){let i=t,o={KURvZ:function(e){return e()},LSKbv:i(1310,`6B7g`),CwMzi:function(e){return e()},wNpha:function(e,t){return e!==t},SaSJE:`undefined`,fjIKm:`localhost`,WUJod:function(e,t){return e(t)}};if(o[i(926,`G(2V`)](a))return o[i(1466,`6drC`)];let s=M()?.[i(1148,`6vQ$`)+i(723,`BIQm`)]??o[i(850,`WzD@`)](N),c=n??(o.wNpha(typeof Bun,o.SaSJE)?Bun[i(1413,`Spk7`)]?.[i(912,`]hFA`)+`IN`]:void 0)??(o.wNpha(typeof process,i(493,`G(2V`))?process.env?.JCHAT_DOMAIN:void 0)??o.fjIKm;return!s||!X(s,c,r)?e:o[i(1433,`6i5v`)](J,s)?.[i(1109,`LQC2`)]??e}export{n as APPLICATION_DISTRIBUTION,r as APPLICATION_DISTRIBUTIONS,h as DEFAULT_LICENSE_AUDIENCE,m as DEFAULT_LICENSE_ISSUER,p as DEFAULT_LICENSE_SERVER_URL,ae as DEFAULT_STATE_PATH,W as FeatureForbiddenError,i as IS_DEVELOPER_SANDBOX,x as OFFICIAL_SIGNING_PUBLIC_KEY,H as activateRegistry,Le as canCreateMultiSite,me as checkAllowedStages,ze as checkCanCreateMultiSite,$ as checkHasEntitlement,Re as checkMaxSites,he as checkReleaseChannel,oe as createIdentity,_e as deriveFeatureExecutionContext,U as deriveFeatureKey,ie as findRepoRoot,Be as getContextPlan,j as getDefaultStatePath,Q as getMaxSites,b as getOfficialSigningPublicKey,Ie as getReleaseChannel,O as getRootDomain,B as getRuntimeStatus,Pe as hasCapability,Me as hasEntitlement,Fe as hasStageAccess,ve as installAndActivate,E as isAllowedConfiguredDomain,de as isApplicationDisabled,a as isDeveloperSandbox,D as isLocalhostDomain,ee as isMatchingDomain,Ne as isMultiSiteAllowed,T as isPublicDomain,fe as isRuntimeBlocked,be as jchatRuntime,De as loadServerConfig,w as normalizeDomain,J as parsePayload,P as readState,M as readStateSync,N as readTokenSync,L as recordAudit,Se as refreshLicenseLease,te as resolveActivationDomain,o as resolveApplicationDistribution,A as resolveDataDir,ne as resolveRuntimePaths,Y as resolveSigningPublicKey,xe as runtimeFeatureGuard,Oe as sealServerContext,z as setRuntimeStatus,Ce as startRuntimeSupervisor,F as updateInstanceToken,Z as verifyEntitlement,ge as verifyFeatureStageAccess,X as verifySignature,se as writeState};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jchat/runtime",
|
|
3
|
-
"version": "1.0.0-alpha.
|
|
3
|
+
"version": "1.0.0-alpha.28",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Runtime support package for JChat deployments.",
|
|
6
6
|
"keywords": [
|
|
@@ -23,6 +23,11 @@
|
|
|
23
23
|
"types": "./src/index.ts",
|
|
24
24
|
"import": "./src/index.ts",
|
|
25
25
|
"default": "./src/index.ts"
|
|
26
|
+
},
|
|
27
|
+
"./distribution": {
|
|
28
|
+
"types": "./src/distribution.ts",
|
|
29
|
+
"import": "./src/distribution.ts",
|
|
30
|
+
"default": "./src/distribution.ts"
|
|
26
31
|
}
|
|
27
32
|
},
|
|
28
33
|
"publishConfig": {
|
|
@@ -32,6 +37,10 @@
|
|
|
32
37
|
".": {
|
|
33
38
|
"types": "./dist/index.d.mts",
|
|
34
39
|
"import": "./dist/index.mjs"
|
|
40
|
+
},
|
|
41
|
+
"./distribution": {
|
|
42
|
+
"types": "./dist/distribution.d.mts",
|
|
43
|
+
"import": "./dist/distribution.mjs"
|
|
35
44
|
}
|
|
36
45
|
},
|
|
37
46
|
"access": "public"
|
|
@@ -50,6 +59,7 @@
|
|
|
50
59
|
"@jchat/shared": "workspace:*",
|
|
51
60
|
"@types/bun": "catalog:",
|
|
52
61
|
"elysia": "catalog:",
|
|
62
|
+
"javascript-obfuscator": "^5.8.1",
|
|
53
63
|
"tsdown": "catalog:",
|
|
54
64
|
"typescript": "catalog:",
|
|
55
65
|
"zod": "catalog:"
|