@timeback/sdk 0.1.8 → 0.1.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -6
- package/dist/chunk-3mqpr9vx.js +2 -0
- package/dist/chunk-92nnwa7t.js +2 -0
- package/dist/{chunk-ewsp6v3b.js → chunk-af3xwwsv.js} +5 -5
- package/dist/{chunk-07j8zre9.js → chunk-b8649tw4.js} +1 -1
- package/dist/{chunk-3886xy48.js → chunk-bd09q1fw.js} +6 -6
- package/dist/chunk-js665z11.js +1 -0
- package/dist/chunk-nsr7a2dv.js +2 -0
- package/dist/chunk-sgcwg4j6.js +1 -0
- package/dist/{chunk-9se82640.js → chunk-txwjkpfz.js} +1 -1
- package/dist/client/adapters/react/hooks/types.d.ts +34 -27
- package/dist/client/adapters/react/hooks/types.d.ts.map +1 -1
- package/dist/client/adapters/react/hooks/useTimebackVerification.d.ts +17 -5
- package/dist/client/adapters/react/hooks/useTimebackVerification.d.ts.map +1 -1
- package/dist/client/adapters/react/index.d.ts +1 -1
- package/dist/client/adapters/react/index.d.ts.map +1 -1
- package/dist/client/adapters/react/index.js +2 -2
- package/dist/client/adapters/react/provider.d.ts.map +1 -1
- package/dist/client/adapters/solid/primitives/createTimebackVerification.d.ts +3 -1
- package/dist/client/adapters/solid/primitives/createTimebackVerification.d.ts.map +1 -1
- package/dist/client/adapters/solid/primitives/createTimebackVerification.ts +55 -15
- package/dist/client/adapters/solid/types.d.ts +25 -29
- package/dist/client/adapters/solid/types.d.ts.map +1 -1
- package/dist/client/adapters/solid/types.ts +27 -18
- package/dist/client/adapters/svelte/stores/client.d.ts.map +1 -1
- package/dist/client/adapters/svelte/stores/client.ts +2 -9
- package/dist/client/adapters/svelte/stores/profile.d.ts +1 -1
- package/dist/client/adapters/svelte/stores/profile.d.ts.map +1 -1
- package/dist/client/adapters/svelte/stores/profile.ts +4 -11
- package/dist/client/adapters/svelte/stores/verification.d.ts +1 -1
- package/dist/client/adapters/svelte/stores/verification.d.ts.map +1 -1
- package/dist/client/adapters/svelte/stores/verification.ts +90 -17
- package/dist/client/adapters/svelte/types.d.ts +1 -29
- package/dist/client/adapters/svelte/types.d.ts.map +1 -1
- package/dist/client/adapters/vue/composables/useTimebackVerification.d.ts +3 -1
- package/dist/client/adapters/vue/composables/useTimebackVerification.d.ts.map +1 -1
- package/dist/client/adapters/vue/composables/useTimebackVerification.ts +59 -18
- package/dist/client/adapters/vue/provider.d.ts.map +1 -1
- package/dist/client/adapters/vue/provider.ts +4 -11
- package/dist/client/adapters/vue/types.d.ts +25 -29
- package/dist/client/adapters/vue/types.d.ts.map +1 -1
- package/dist/client/adapters/vue/types.ts +27 -18
- package/dist/client/auth/types.d.ts +1 -1
- package/dist/client/index.d.ts +1 -1
- package/dist/client/lib/activity/activity.class.d.ts +130 -22
- package/dist/client/lib/activity/activity.class.d.ts.map +1 -1
- package/dist/client/lib/activity/transport.d.ts +15 -0
- package/dist/client/lib/activity/transport.d.ts.map +1 -0
- package/dist/client/lib/activity/types.d.ts +53 -0
- package/dist/client/lib/activity/types.d.ts.map +1 -0
- package/dist/client/lib/utils.d.ts +33 -0
- package/dist/client/lib/utils.d.ts.map +1 -1
- package/dist/client/lib/utils.ts +109 -0
- package/dist/client/namespaces/activity.d.ts +45 -6
- package/dist/client/namespaces/activity.d.ts.map +1 -1
- package/dist/client/timeback-client.class.d.ts +7 -1
- package/dist/client/timeback-client.class.d.ts.map +1 -1
- package/dist/client.d.ts +1 -1
- package/dist/client.js +1 -1
- package/dist/edge.js +1 -1
- package/dist/identity.js +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +22 -22
- package/dist/server/adapters/express.d.ts.map +1 -1
- package/dist/server/adapters/express.js +1 -1
- package/dist/server/adapters/native.d.ts.map +1 -1
- package/dist/server/adapters/native.js +1 -1
- package/dist/server/adapters/nextjs.js +1 -1
- package/dist/server/adapters/nuxt.d.ts.map +1 -1
- package/dist/server/adapters/nuxt.js +1 -1
- package/dist/server/adapters/solid-start.d.ts.map +1 -1
- package/dist/server/adapters/solid-start.js +1 -1
- package/dist/server/adapters/svelte-kit.d.ts.map +1 -1
- package/dist/server/adapters/svelte-kit.js +1 -1
- package/dist/server/adapters/tanstack-start.d.ts.map +1 -1
- package/dist/server/adapters/tanstack-start.js +1 -1
- package/dist/server/adapters/utils.d.ts +1 -1
- package/dist/server/adapters/utils.d.ts.map +1 -1
- package/dist/server/handlers/activity/caliper.d.ts +50 -14
- package/dist/server/handlers/activity/caliper.d.ts.map +1 -1
- package/dist/server/handlers/activity/heartbeat-handler.d.ts +15 -0
- package/dist/server/handlers/activity/heartbeat-handler.d.ts.map +1 -0
- package/dist/server/handlers/activity/index.d.ts +5 -3
- package/dist/server/handlers/activity/index.d.ts.map +1 -1
- package/dist/server/handlers/activity/progress.d.ts +2 -2
- package/dist/server/handlers/activity/progress.d.ts.map +1 -1
- package/dist/server/handlers/activity/schema.d.ts +40 -6
- package/dist/server/handlers/activity/schema.d.ts.map +1 -1
- package/dist/server/handlers/activity/submit-handler.d.ts +29 -0
- package/dist/server/handlers/activity/submit-handler.d.ts.map +1 -0
- package/dist/server/handlers/activity/submit.d.ts +44 -0
- package/dist/server/handlers/activity/submit.d.ts.map +1 -0
- package/dist/server/handlers/activity/types.d.ts +126 -5
- package/dist/server/handlers/activity/types.d.ts.map +1 -1
- package/dist/server/handlers/identity/handler.d.ts +23 -4
- package/dist/server/handlers/identity/handler.d.ts.map +1 -1
- package/dist/server/handlers/identity/index.d.ts +2 -2
- package/dist/server/handlers/identity/index.d.ts.map +1 -1
- package/dist/server/handlers/identity/oidc.d.ts.map +1 -1
- package/dist/server/handlers/identity/types.d.ts +0 -6
- package/dist/server/handlers/identity/types.d.ts.map +1 -1
- package/dist/server/handlers/index.d.ts +3 -3
- package/dist/server/handlers/index.d.ts.map +1 -1
- package/dist/server/handlers/user/handler.d.ts.map +1 -1
- package/dist/server/handlers/user/profile.d.ts.map +1 -1
- package/dist/server/handlers/user/types.d.ts +3 -0
- package/dist/server/handlers/user/types.d.ts.map +1 -1
- package/dist/server/handlers/user/verify.d.ts.map +1 -1
- package/dist/server/index.d.ts +1 -1
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/lib/hooks.d.ts +20 -0
- package/dist/server/lib/hooks.d.ts.map +1 -0
- package/dist/server/lib/index.d.ts +4 -2
- package/dist/server/lib/index.d.ts.map +1 -1
- package/dist/server/lib/logger.d.ts +36 -9
- package/dist/server/lib/logger.d.ts.map +1 -1
- package/dist/server/lib/resolve.d.ts +1 -1
- package/dist/server/lib/resolve.d.ts.map +1 -1
- package/dist/server/lib/utils.d.ts +19 -1
- package/dist/server/lib/utils.d.ts.map +1 -1
- package/dist/server/lib/validation.d.ts +55 -0
- package/dist/server/lib/validation.d.ts.map +1 -0
- package/dist/server/namespaces/activity/index.d.ts +8 -0
- package/dist/server/namespaces/activity/index.d.ts.map +1 -0
- package/dist/server/namespaces/activity/record.d.ts +49 -0
- package/dist/server/namespaces/activity/record.d.ts.map +1 -0
- package/dist/server/namespaces/activity/schema.d.ts +50 -0
- package/dist/server/namespaces/activity/schema.d.ts.map +1 -0
- package/dist/server/namespaces/user/get-profile.d.ts +32 -0
- package/dist/server/namespaces/user/get-profile.d.ts.map +1 -0
- package/dist/server/namespaces/user/index.d.ts +8 -0
- package/dist/server/namespaces/user/index.d.ts.map +1 -0
- package/dist/server/namespaces/user/verify.d.ts +28 -0
- package/dist/server/namespaces/user/verify.d.ts.map +1 -0
- package/dist/server/timeback.d.ts +3 -3
- package/dist/server/timeback.d.ts.map +1 -1
- package/dist/server/types.d.ts +394 -12
- package/dist/server/types.d.ts.map +1 -1
- package/dist/shared/constants.d.ts +20 -0
- package/dist/shared/constants.d.ts.map +1 -1
- package/dist/shared/constants.ts +51 -0
- package/dist/shared/index.d.ts +9 -0
- package/dist/shared/index.d.ts.map +1 -0
- package/dist/shared/schemas.d.ts +57 -0
- package/dist/shared/schemas.d.ts.map +1 -0
- package/dist/shared/types.d.ts +263 -10
- package/dist/shared/types.d.ts.map +1 -1
- package/dist/shared/types.ts +620 -0
- package/package.json +5 -5
- package/dist/chunk-ahy54f2r.js +0 -2
- package/dist/chunk-j1xdrfqj.js +0 -2
- package/dist/chunk-qaa129bd.js +0 -2
- package/dist/chunk-qr0bbnsr.js +0 -1
- package/dist/chunk-rgbpvxbv.js +0 -1
- package/dist/server/handlers/activity/handler.d.ts +0 -32
- package/dist/server/handlers/activity/handler.d.ts.map +0 -1
- package/dist/shared/xp-calculator.d.ts +0 -25
- package/dist/shared/xp-calculator.d.ts.map +0 -1
package/README.md
CHANGED
|
@@ -54,8 +54,8 @@ export const timeback = await createTimeback({
|
|
|
54
54
|
},
|
|
55
55
|
identity: {
|
|
56
56
|
mode: 'sso',
|
|
57
|
-
clientId: process.env.
|
|
58
|
-
clientSecret: process.env.
|
|
57
|
+
clientId: process.env.TIMEBACK_SSO_CLIENT_ID!,
|
|
58
|
+
clientSecret: process.env.TIMEBACK_SSO_CLIENT_SECRET!,
|
|
59
59
|
redirectUri: 'http://localhost:3000/api/auth/sso/callback/timeback',
|
|
60
60
|
onCallbackSuccess: async ({ user, state, redirect }) => {
|
|
61
61
|
// user.id is the timebackId (canonical stable identifier)
|
|
@@ -430,8 +430,8 @@ Uses Timeback as the identity provider via OIDC. When using `createTimeback()`,
|
|
|
430
430
|
```typescript
|
|
431
431
|
identity: {
|
|
432
432
|
mode: 'sso',
|
|
433
|
-
clientId: process.env.
|
|
434
|
-
clientSecret: process.env.
|
|
433
|
+
clientId: process.env.TIMEBACK_SSO_CLIENT_ID!,
|
|
434
|
+
clientSecret: process.env.TIMEBACK_SSO_CLIENT_SECRET!,
|
|
435
435
|
redirectUri: 'http://localhost:3000/api/auth/sso/callback/timeback',
|
|
436
436
|
onCallbackSuccess: async ({ user, idp, state, redirect }) => {
|
|
437
437
|
// user.id is the timebackId (canonical stable identifier)
|
|
@@ -538,8 +538,8 @@ export const timeback = createTimebackIdentity({
|
|
|
538
538
|
env: 'production',
|
|
539
539
|
identity: {
|
|
540
540
|
mode: 'sso',
|
|
541
|
-
clientId: process.env.
|
|
542
|
-
clientSecret: process.env.
|
|
541
|
+
clientId: process.env.TIMEBACK_SSO_CLIENT_ID!,
|
|
542
|
+
clientSecret: process.env.TIMEBACK_SSO_CLIENT_SECRET!,
|
|
543
543
|
onCallbackSuccess: async ({ user, tokens, redirect }) => {
|
|
544
544
|
// user is raw OIDC userInfo (sub, email, name, picture, etc.)
|
|
545
545
|
// No Timeback profile enrichment in identity-only mode
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{P as F}from"./chunk-nsr7a2dv.js";function M(j){let g=j.trim();if(g==="")return"/";let A=g.indexOf("?");if(A===-1)return g;let L=g.slice(0,A);if(L==="")return"/";return L}function X(j){let g=M(j);if(g!==""&&!g.startsWith("/"))g=`/${g}`;if(g==="/"||g==="")return"";if(g.endsWith("/"))return g.slice(0,-1);return g}function Z(j){let g=j.method.toUpperCase(),A=M(j.pathname),L=j.callbackPath?M(j.callbackPath):void 0;if(L&&A===L)return g==="GET"?"identity.callback":null;let N=j.basePath,Q=N!==void 0,J=Q?X(N):void 0,V=(G)=>{if(g==="GET"){if(G===F.IDENTITY.SIGNIN)return"identity.signIn";if(G===F.IDENTITY.CALLBACK)return"identity.callback";if(G===F.IDENTITY.SIGNOUT)return"identity.signOut";if(G===F.USER.ME)return"user.me";if(G===F.USER.VERIFY)return"user.verify"}if(g==="POST"){if(G===F.ACTIVITY_HEARTBEAT)return"activity.heartbeat";if(G===F.ACTIVITY_SUBMIT)return"activity.submit"}return null};if(Q&&J!==void 0){if(J!==""&&A===J)return null;if(J!==""&&!A.startsWith(`${J}/`))return null;let G=J===""?A:A.slice(J.length),W=G.startsWith("/")?G:`/${G}`;return V(W)}if(g==="GET"){if(A.endsWith(F.IDENTITY.SIGNIN))return"identity.signIn";if(A.endsWith(F.IDENTITY.CALLBACK))return"identity.callback";if(A.endsWith(F.IDENTITY.SIGNOUT))return"identity.signOut";if(A.endsWith(F.USER.ME))return"user.me";if(A.endsWith(F.USER.VERIFY))return"user.verify"}if(g==="POST"){if(A.endsWith(F.ACTIVITY_HEARTBEAT))return"activity.heartbeat";if(A.endsWith(F.ACTIVITY_SUBMIT))return"activity.submit"}return null}function _(j){return"handle"in j?j.handle:j}function $(j){return"activity"in j}function C(j){return"user"in j}
|
|
2
|
+
export{M as B,Z as C,_ as D,$ as E,C as F};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
var A="/api/timeback",W={ACTIVITY:"/activity",ACTIVITY_HEARTBEAT:"/activity/heartbeat",ACTIVITY_SUBMIT:"/activity/submit",IDENTITY:{SIGNIN:"/identity/signin",SIGNOUT:"/identity/signout",CALLBACK:"/identity/callback"},USER:{ME:"/user/me",VERIFY:"/user/verify"}},L=15000,B=600000;var M=3,I=[100,300,1000];function j(){return typeof window<"u"}function J(){if(!j())return;return`${window.location.origin}${A}`}function k(q){return new Promise((X)=>{setTimeout(X,q)})}function T(q,X){if(typeof q==="number")return q;return q[Math.min(X,q.length-1)]??1000}async function S(q,X,z){let $;for(let K=0;K<=X;K++)try{return await q()}catch(Z){if($=Z,K<X)await k(T(z,K))}throw $ instanceof Error?$:Error(String($))}function E(){if(typeof crypto<"u"&&crypto.randomUUID)return crypto.randomUUID();return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(q)=>{let X=Math.random()*16|0;return(q==="x"?X:X&3|8).toString(16)})}class V{params;id;runId;_startedAt;_timeEnabled;_timeOptions;_callbacks;_windowStartMs;_activeSinceMs;_accumulatedActiveMs=0;_totalFlushedActiveMs=0;_isPaused=!1;_ended=!1;_ending=!1;_heartbeatTimer=null;_flushInFlight=null;_boundVisibilityHandler=null;_boundPageHideHandler=null;_hiddenTimeoutTimer=null;_timedOutWhileHidden=!1;constructor(q,X){this.params=q;this._callbacks=X;let z=Date.now();this.id=q.id,this.runId=q.runId??E(),this._startedAt=new Date(z),this._windowStartMs=z,this._timeEnabled=q.time!==!1;let $=q.time===!1?{}:q.time??{};if(this._timeOptions={flushIntervalMs:$.flushIntervalMs??L,visibilityAware:$.visibilityAware??!0,flushOnVisibilityHidden:$.flushOnVisibilityHidden??!0,flushOnPageHide:$.flushOnPageHide??!0,hiddenTimeoutMs:$.hiddenTimeoutMs??B,retryAttempts:$.retryAttempts??0,retryDelaysMs:$.retryDelaysMs??[...I]},this._timeEnabled)this._activeSinceMs=z,this._startHeartbeatTimer(),this._setupVisibilityHandlers();else this._activeSinceMs=null}_errorContext(q){return{type:q,activityId:this.params.id,runId:this.runId}}get startedAt(){return this._startedAt}get isPaused(){return this._isPaused}get isEnded(){return this._ended}get elapsedMs(){return this._getCurrentWindowActiveMs()}get totalActiveMs(){return this._totalFlushedActiveMs+this._getCurrentWindowActiveMs()}_getCurrentWindowActiveMs(){let q=this._accumulatedActiveMs;if(this._activeSinceMs!==null)q+=Date.now()-this._activeSinceMs;return Math.max(0,q)}_startHeartbeatTimer(){if(this._heartbeatTimer!==null)return;this._heartbeatTimer=setInterval(()=>{this.flushTimeSpent()},this._timeOptions.flushIntervalMs)}_stopHeartbeatTimer(){if(this._heartbeatTimer!==null)clearInterval(this._heartbeatTimer),this._heartbeatTimer=null}_restartHeartbeatTimer(){this._stopHeartbeatTimer(),this._startHeartbeatTimer()}_setupVisibilityHandlers(){if(typeof document>"u")return;if(this._timeOptions.visibilityAware||this._timeOptions.flushOnVisibilityHidden)this._boundVisibilityHandler=this._handleVisibilityChange.bind(this),document.addEventListener("visibilitychange",this._boundVisibilityHandler);if(this._timeOptions.flushOnPageHide&&typeof window<"u")this._boundPageHideHandler=this._handlePageHide.bind(this),window.addEventListener("pagehide",this._boundPageHideHandler)}_teardownVisibilityHandlers(){if(this._clearHiddenTimeout(),this._boundVisibilityHandler)document.removeEventListener("visibilitychange",this._boundVisibilityHandler),this._boundVisibilityHandler=null;if(this._boundPageHideHandler&&typeof window<"u")window.removeEventListener("pagehide",this._boundPageHideHandler),this._boundPageHideHandler=null}_handleVisibilityChange(){if(this._ended)return;if(document.visibilityState==="hidden"){if(this._timeOptions.visibilityAware&&this._activeSinceMs!==null)this._accumulatedActiveMs+=Date.now()-this._activeSinceMs,this._activeSinceMs=null;if(this._timeOptions.flushOnVisibilityHidden)this.flushTimeSpent();this._startHiddenTimeout()}else{if(this._clearHiddenTimeout(),this._timedOutWhileHidden){this._timedOutWhileHidden=!1;let X=Date.now();if(this._windowStartMs=X,this._accumulatedActiveMs=0,!this._isPaused)this.params.onResume?.()}if(this._restartHeartbeatTimer(),this._timeOptions.visibilityAware&&!this._isPaused&&this._activeSinceMs===null)this._activeSinceMs=Date.now()}}_startHiddenTimeout(){let q=this._timeOptions.hiddenTimeoutMs;if(q===null||!Number.isFinite(q))return;this._clearHiddenTimeout(),this._hiddenTimeoutTimer=setTimeout(()=>{if(this._hiddenTimeoutTimer=null,this._stopHeartbeatTimer(),this._timedOutWhileHidden=!0,!this._isPaused)this.params.onPause?.()},q)}_clearHiddenTimeout(){if(this._hiddenTimeoutTimer!==null)clearTimeout(this._hiddenTimeoutTimer),this._hiddenTimeoutTimer=null}_handlePageHide(){if(this._ended)return;let q=Date.now(),X=this._accumulatedActiveMs;if(this._activeSinceMs!==null)X+=q-this._activeSinceMs;if(X<=0)return;this._flushSync(q,X)}async _flushSync(q,X){let z=this._buildHeartbeatPayload(q,X);if(this._totalFlushedActiveMs+=X,this._windowStartMs=q,this._accumulatedActiveMs=0,this._activeSinceMs!==null)this._activeSinceMs=q;try{await this._callbacks.sendHeartbeatOnPageHide(z),this.params.onFlush?.(X)}catch($){let K=$ instanceof Error?$:Error(String($));this.params.onError?.(K,this._errorContext("timeSpent"))}}_buildHeartbeatPayload(q,X){let z=q-this._windowStartMs-X;return{id:this.params.id,name:this.params.name,course:this.params.course,runId:this.runId,startedAt:new Date(this._windowStartMs).toISOString(),endedAt:new Date(q).toISOString(),elapsedMs:Math.max(0,X),pausedMs:Math.max(0,z)}}async flushTimeSpent(){if(!this._timeEnabled)return;if(this._isPaused&&!this._ended&&!this._ending)return;if(this._flushInFlight){await this._flushInFlight;return}let q=Date.now(),X=this._accumulatedActiveMs;if(this._activeSinceMs!==null)X+=q-this._activeSinceMs;if(q-this._windowStartMs<=0)return;let $=this._buildHeartbeatPayload(q,X);if(this._totalFlushedActiveMs+=X,this._windowStartMs=q,this._accumulatedActiveMs=0,this._activeSinceMs!==null)this._activeSinceMs=q;let{retryAttempts:K,retryDelaysMs:Z}=this._timeOptions;this._flushInFlight=S(()=>this._callbacks.sendHeartbeat($),K,Z).then(()=>{this.params.onFlush?.(X)}).catch((H)=>{let C=H instanceof Error?H:Error(String(H));this.params.onError?.(C,this._errorContext("timeSpent"))}).finally(()=>{this._flushInFlight=null}),await this._flushInFlight}pause(){if(this._isPaused||this._ended)return;if(this._activeSinceMs!==null)this._accumulatedActiveMs+=Date.now()-this._activeSinceMs,this._activeSinceMs=null;this.flushTimeSpent(),this._isPaused=!0,this._stopHeartbeatTimer(),this.params.onPause?.()}resume(){if(!this._isPaused||this._ended)return;if(this._isPaused=!1,this._timeEnabled){let q=Date.now();if(this._windowStartMs=q,this._accumulatedActiveMs=0,!this._timeOptions.visibilityAware||document.visibilityState==="visible")this._activeSinceMs=q;this._startHeartbeatTimer()}this.params.onResume?.()}async end(q={}){if(this._ended||this._ending)return;this._ending=!0,this._stopHeartbeatTimer(),this._teardownVisibilityHandlers();let X=this._activeSinceMs!==null,z=this._activeSinceMs;if(this._activeSinceMs!==null)this._accumulatedActiveMs+=Date.now()-this._activeSinceMs,this._activeSinceMs=null;try{if(await this.flushTimeSpent(),q.totalQuestions!==void 0||q.correctQuestions!==void 0||q.xpEarned!==void 0||q.masteredUnits!==void 0||q.pctComplete!==void 0)await this._sendCompletion(q);this._ended=!0,this._ending=!1}catch($){if(this._ending=!1,X)this._activeSinceMs=z;if(this._timeEnabled)this._startHeartbeatTimer(),this._setupVisibilityHandlers();let K=$ instanceof Error?$:Error(String($));throw this.params.onError?.(K,this._errorContext("completion")),$}}async _sendCompletion(q){if(q.xpEarned===void 0)throw Error("Invalid activity completion: xpEarned is required. The SDK cannot auto-calculate XP because total elapsed time may span multiple browser sessions.");let X=new Date,z=q.totalQuestions!==void 0,$=q.correctQuestions!==void 0;if(z!==$)throw Error("Invalid activity metrics: totalQuestions and correctQuestions must be provided together.");if(z&&$&&q.correctQuestions>q.totalQuestions)throw Error("Invalid activity metrics: correctQuestions cannot exceed totalQuestions.");let K={xpEarned:q.xpEarned,...z?{totalQuestions:q.totalQuestions}:{},...$?{correctQuestions:q.correctQuestions}:{},...q.masteredUnits===void 0?{}:{masteredUnits:q.masteredUnits}},Z={id:this.params.id,name:this.params.name,course:this.params.course,runId:this.runId,endedAt:X.toISOString(),metrics:K,...q.pctComplete===void 0?{}:{pctComplete:q.pctComplete}};await this._callbacks.sendSubmit(Z)}}function R(){if(!(typeof globalThis>"u"?void 0:globalThis.fetch))return;return(X,z)=>globalThis.fetch(X,z)}function U(q){let{baseURL:X,fetch:z,canUseBeacon:$,credentials:K}=q,Z=`${X}${W.ACTIVITY_HEARTBEAT}`,H=`${X}${W.ACTIVITY_SUBMIT}`;function C(Q,G){if(!$)return!1;if(typeof navigator>"u")return!1;if(typeof navigator.sendBeacon!=="function")return!1;try{let N=new Blob([G],{type:"application/json"});return navigator.sendBeacon(Q,N)}catch{return!1}}function F(Q,G,N=!1){return z(Q,{method:"POST",headers:{"Content-Type":"application/json"},body:G,credentials:K,keepalive:N})}return{async sendHeartbeat(Q){let G=JSON.stringify(Q),N=await F(Z,G);if(!N.ok){let Y=await N.json().catch(()=>({error:{message:"Unknown error"}})),_=typeof Y.error==="object"?Y.error?.message:Y.error;throw Error(_??"Failed to send heartbeat")}},async sendHeartbeatOnPageHide(Q){let G=JSON.stringify(Q);if(C(Z,G))return;if(!(await F(Z,G,!0)).ok)throw Error("Failed to send heartbeat on page exit")},async sendSubmit(Q){let G=JSON.stringify(Q),N=await F(H,G);if(!N.ok){let Y=await N.json().catch(()=>({error:{message:"Unknown error"}})),_=typeof Y.error==="object"?Y.error?.message:Y.error;throw Error(_??"Failed to submit activity")}}}}class P{transport;_current=null;constructor(q){this.transport=U(q)}get current(){if(this._current?.isEnded)this._current=null;return this._current}start(q){if(this._current&&!this._current.isEnded)throw Error(`An activity is already active (id: "${this._current.id}"). End it before starting a new one.`);return this._current=new V(q,this.transport),this._current}}class x{getBaseURL;constructor(q){this.getBaseURL=q}signIn(){if(!j())throw Error("signIn() requires a browser environment");window.location.href=`${this.getBaseURL()}${W.IDENTITY.SIGNIN}`}}class O{getBaseURL;fetchImpl;constructor(q,X){this.getBaseURL=q;this.fetchImpl=X}async fetch(){if(!j())throw Error("user.fetch() requires a browser environment");let q=await this.fetchImpl(`${this.getBaseURL()}${W.USER.ME}`,{method:"GET",credentials:"include"});if(!q.ok){let X=await q.json().catch(()=>({error:"Unknown error"}));throw Error(X.error??"Failed to fetch user profile")}return q.json()}async verify(){if(!j())throw Error("user.verify() requires a browser environment");let q=await this.fetchImpl(`${this.getBaseURL()}${W.USER.VERIFY}`,{method:"GET",credentials:"include"});if(!q.ok){let z=await q.json().catch(()=>({error:"Unknown error"}));throw Error(z.error??"Failed to verify Timeback user")}let X=await q.json();if(X.verified&&X.timebackId)return{verified:!0,timebackId:X.timebackId};return{verified:!1}}}class D{activity;auth;user;_baseURL;_fetch;constructor(q={}){this._baseURL=q.baseURL;let X=q.fetch??R();if(!X)throw Error("TimebackClient requires a fetch implementation. Provide `fetch` in the constructor config for non-browser runtimes.");let z=q.plugins,$=Array.isArray(z)?z:z?[z]:[];this._fetch=$.reduce((K,Z)=>Z.wrapFetch(K),X),this.activity=new P({baseURL:this.baseURL,fetch:this._fetch,canUseBeacon:$.length===0,credentials:q.credentials??"include"}),this.auth=new x(()=>this.baseURL),this.user=new O(()=>this.baseURL,this._fetch)}get baseURL(){if(!this._baseURL){let q=J();if(!q)throw Error("Timeback client requires a browser environment for default baseURL. Provide an explicit baseURL for server-side usage.");this._baseURL=q}return this._baseURL}}function Wq(q={}){let X=q.baseURL??J();return new D({baseURL:X,fetch:q.fetch,plugins:q.plugins})}
|
|
2
|
+
export{M as a,I as b,k as c,T as d,V as e,D as f,Wq as g};
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import{c as P}from"./chunk-
|
|
1
|
+
import{c as P}from"./chunk-sgcwg4j6.js";import{A as a1,z as c1}from"./chunk-txwjkpfz.js";import{Q as B1,R as P1}from"./chunk-b8649tw4.js";var t=P1((Q3,T1)=>{var r={to(B,$){if(!$)return`\x1B[${B+1}G`;return`\x1B[${$+1};${B+1}H`},move(B,$){let x="";if(B<0)x+=`\x1B[${-B}D`;else if(B>0)x+=`\x1B[${B}C`;if($<0)x+=`\x1B[${-$}A`;else if($>0)x+=`\x1B[${$}B`;return x},up:(B=1)=>`\x1B[${B}A`,down:(B=1)=>`\x1B[${B}B`,forward:(B=1)=>`\x1B[${B}C`,backward:(B=1)=>`\x1B[${B}D`,nextLine:(B=1)=>"\x1B[E".repeat(B),prevLine:(B=1)=>"\x1B[F".repeat(B),left:"\x1B[G",hide:"\x1B[?25l",show:"\x1B[?25h",save:"\x1B7",restore:"\x1B8"},p9={up:(B=1)=>"\x1B[S".repeat(B),down:(B=1)=>"\x1B[T".repeat(B)},l9={screen:"\x1B[2J",up:(B=1)=>"\x1B[1J".repeat(B),down:(B=1)=>"\x1B[J".repeat(B),line:"\x1B[2K",lineEnd:"\x1B[K",lineStart:"\x1B[1K",lines(B){let $="";for(let x=0;x<B;x++)$+=this.line+(x<B-1?r.up():"");if(B)$+=r.left;return $}};T1.exports={cursor:r,scroll:p9,erase:l9,beep:"\x07"}});var E1=P1((W3,e)=>{var l=process||{},y1=l.argv||[],p=l.env||{},d9=!(!!p.NO_COLOR||y1.includes("--no-color"))&&(!!p.FORCE_COLOR||y1.includes("--color")||l.platform==="win32"||(l.stdout||{}).isTTY&&p.TERM!=="dumb"||!!p.CI),D9=(B,$,x=B)=>(X)=>{let Q=""+X,W=Q.indexOf($,B.length);return~W?B+c9(Q,$,x,W)+$:B+Q+$},c9=(B,$,x,X)=>{let Q="",W=0;do Q+=B.substring(W,X)+x,W=X+$.length,X=B.indexOf($,W);while(~X);return Q+B.substring(W)},g1=(B=d9)=>{let $=B?D9:()=>String;return{isColorSupported:B,reset:$("\x1B[0m","\x1B[0m"),bold:$("\x1B[1m","\x1B[22m","\x1B[22m\x1B[1m"),dim:$("\x1B[2m","\x1B[22m","\x1B[22m\x1B[2m"),italic:$("\x1B[3m","\x1B[23m"),underline:$("\x1B[4m","\x1B[24m"),inverse:$("\x1B[7m","\x1B[27m"),hidden:$("\x1B[8m","\x1B[28m"),strikethrough:$("\x1B[9m","\x1B[29m"),black:$("\x1B[30m","\x1B[39m"),red:$("\x1B[31m","\x1B[39m"),green:$("\x1B[32m","\x1B[39m"),yellow:$("\x1B[33m","\x1B[39m"),blue:$("\x1B[34m","\x1B[39m"),magenta:$("\x1B[35m","\x1B[39m"),cyan:$("\x1B[36m","\x1B[39m"),white:$("\x1B[37m","\x1B[39m"),gray:$("\x1B[90m","\x1B[39m"),bgBlack:$("\x1B[40m","\x1B[49m"),bgRed:$("\x1B[41m","\x1B[49m"),bgGreen:$("\x1B[42m","\x1B[49m"),bgYellow:$("\x1B[43m","\x1B[49m"),bgBlue:$("\x1B[44m","\x1B[49m"),bgMagenta:$("\x1B[45m","\x1B[49m"),bgCyan:$("\x1B[46m","\x1B[49m"),bgWhite:$("\x1B[47m","\x1B[49m"),blackBright:$("\x1B[90m","\x1B[39m"),redBright:$("\x1B[91m","\x1B[39m"),greenBright:$("\x1B[92m","\x1B[39m"),yellowBright:$("\x1B[93m","\x1B[39m"),blueBright:$("\x1B[94m","\x1B[39m"),magentaBright:$("\x1B[95m","\x1B[39m"),cyanBright:$("\x1B[96m","\x1B[39m"),whiteBright:$("\x1B[97m","\x1B[39m"),bgBlackBright:$("\x1B[100m","\x1B[49m"),bgRedBright:$("\x1B[101m","\x1B[49m"),bgGreenBright:$("\x1B[102m","\x1B[49m"),bgYellowBright:$("\x1B[103m","\x1B[49m"),bgBlueBright:$("\x1B[104m","\x1B[49m"),bgMagentaBright:$("\x1B[105m","\x1B[49m"),bgCyanBright:$("\x1B[106m","\x1B[49m"),bgWhiteBright:$("\x1B[107m","\x1B[49m")}};e.exports=g1();e.exports.createColors=g1});import*as f from"tty";var{env:A={},argv:q1=[],platform:o1=""}=typeof process>"u"?{}:process,s1="NO_COLOR"in A||q1.includes("--no-color"),r1="FORCE_COLOR"in A||q1.includes("--color"),t1=o1==="win32",H1=A.TERM==="dumb",e1=f&&f.isatty&&f.isatty(1)&&A.TERM&&!H1,b9="CI"in A&&(("GITHUB_ACTIONS"in A)||("GITLAB_CI"in A)||("CIRCLECI"in A)),B9=!s1&&(r1||t1&&!H1||e1||b9),Y1=(B,$,x,X,Q=$.substring(0,B)+X,W=$.substring(B+x.length),b=W.indexOf(x))=>Q+(b<0?W:Y1(b,W,x,X)),$9=(B,$,x,X,Q)=>B<0?x+$+X:x+Y1(B,$,X,Q)+X,x9=(B,$,x=B,X=B.length+1)=>(Q)=>Q||!(Q===""||Q===void 0)?$9((""+Q).indexOf($,X),Q,B,$,x):"",q=(B,$,x)=>x9(`\x1B[${B}m`,`\x1B[${$}m`,x),W1={reset:q(0,0),bold:q(1,22,"\x1B[22m\x1B[1m"),dim:q(2,22,"\x1B[22m\x1B[2m"),italic:q(3,23),underline:q(4,24),inverse:q(7,27),hidden:q(8,28),strikethrough:q(9,29),black:q(30,39),red:q(31,39),green:q(32,39),yellow:q(33,39),blue:q(34,39),magenta:q(35,39),cyan:q(36,39),white:q(37,39),gray:q(90,39),bgBlack:q(40,49),bgRed:q(41,49),bgGreen:q(42,49),bgYellow:q(43,49),bgBlue:q(44,49),bgMagenta:q(45,49),bgCyan:q(46,49),bgWhite:q(47,49),blackBright:q(90,39),redBright:q(91,39),greenBright:q(92,39),yellowBright:q(93,39),blueBright:q(94,39),magentaBright:q(95,39),cyanBright:q(96,39),whiteBright:q(97,39),bgBlackBright:q(100,49),bgRedBright:q(101,49),bgGreenBright:q(102,49),bgYellowBright:q(103,49),bgBlueBright:q(104,49),bgMagentaBright:q(105,49),bgCyanBright:q(106,49),bgWhiteBright:q(107,49)},X9=({useColor:B=B9}={})=>B?W1:Object.keys(W1).reduce(($,x)=>({...$,[x]:String}),{}),{reset:Ab,bold:N,dim:w,italic:Cb,underline:Nb,inverse:wb,hidden:Pb,strikethrough:Tb,black:yb,red:g,green:Q9,yellow:O,blue:W9,magenta:gb,cyan:Eb,white:kb,gray:mb,bgBlack:Fb,bgRed:vb,bgGreen:hb,bgYellow:fb,bgBlue:pb,bgMagenta:lb,bgCyan:db,bgWhite:Db,blackBright:cb,redBright:ab,greenBright:Z1,yellowBright:ub,blueBright:ib,magentaBright:nb,cyanBright:ob,whiteBright:sb,bgBlackBright:rb,bgRedBright:tb,bgGreenBright:eb,bgYellowBright:b4,bgBlueBright:B4,bgMagentaBright:$4,bgCyanBright:x4,bgWhiteBright:X4}=X9();var q9=["playcademy.config.ts","playcademy.config.js","playcademy.config.json"];function H9(){return Promise.resolve({success:!1,error:"Playcademy config parser not yet implemented."})}function Y9(B){console.log(""),console.log(` ${g("✖")} ${N("Configuration Error")}`),console.log(""),console.log(` ${B}`),console.log(""),console.log(` ${w("Example playcademy.config.ts:")}`),console.log(""),console.log(` ${O("export default {")}`),console.log(` ${O(" name: 'My Playcademy App',")}`),console.log(` ${O(" // TODO: Define schema")}`),console.log(` ${O("}")}`),console.log("")}var c={name:"playcademy",filePatterns:q9,parse:H9,printError:Y9};import{readFile as I9}from"node:fs/promises";import{resolve as L9}from"node:path";import{homedir as J9,platform as G9}from"node:os";import{join as k}from"node:path";import{z as E}from"zod";var Z9=E.object({clientId:E.string().min(1,"Client ID is required"),clientSecret:E.string().min(1,"Client secret is required"),email:E.email("Valid email is required").optional()}),Y4=E.string().min(1,"Client ID is required").regex(/^[a-z0-9]+$/,"Client ID must contain only lowercase letters and numbers").length(26,"Client ID must be exactly 26 characters"),Z4=E.string().min(1,"Client secret is required").regex(/^[a-z0-9]+$/,"Client secret must contain only lowercase letters and numbers").max(53,"Client secret must be less than 53 characters");var J1=["staging","production"];function z9(){let B=J9();switch(G9()){case"darwin":return k(B,".timeback");case"win32":return k(process.env.APPDATA||k(B,"AppData","Roaming"),"timeback");default:return k(process.env.XDG_CONFIG_HOME||k(B,".config"),"timeback")}}var V9=z9(),O4=k(V9,"credentials.json");var R="timeback.config.json",G1="https://timeback.dev/schema.json",a="0.0.0",z1=2,V1=["$schema","name","launchUrl","sensor","defaults","courses"],K1=["subject","grade","courseCode","level","sensor","launchUrl","ids","metadata","overrides"],O1=["staging","production"],U1=["courseType","isSupplemental","isCustom","publishStatus","contactEmail","primaryApp","goals","metrics"],M1=["courseCode","level","metadata"],j1=["staging","production"],S1=["level","sensor","launchUrl","metadata"];import{existsSync as K9}from"node:fs";import{basename as I1,extname as O9,relative as U9,resolve as L1}from"node:path";import{loadConfig as M9}from"c12";function R1(B){return O9(B).toLowerCase()===".json"}async function u(B,$){if($&&!R1($))throw Error(`Config file must be JSON (.json): ${$}`);let x=await M9({cwd:B,name:"timeback",configFile:$??R,rcFile:!1,packageJson:!1,dotenv:!1,envName:!1,extend:!1,omit$Keys:!0,defaults:{},overrides:{}});if(!x.config||Object.keys(x.config).length===0)return null;let X=x.config;if("extends"in X)throw Error("The 'extends' feature is not supported in timeback.config.json. Please inline all configuration.");let{$schema:Q,...W}=X;return{config:W,configFile:x.configFile??L1(B,$??R)}}async function j9(B={}){let $=process.cwd();try{if(B.configPath&&!R1(B.configPath))return{success:!1,error:`Config file must be JSON (.json): ${B.configPath}`};if(B.configPath){let Q=L1($,B.configPath);if(!K9(Q))return{success:!1,error:`Config file not found: ${B.configPath}`}}let x=await u($,B.configPath);if(!x)return{success:!1,error:`No timeback config found. Run ${Z1("timeback init")} to create one.`};let X=P.safeParse(x.config);if(!X.success){let Q=X.error.issues.map((W)=>` - ${W.path.join(".")}: ${W.message}`).join(`
|
|
2
2
|
`);return{success:!1,error:`Invalid config in ${I1(x.configFile)}:
|
|
3
3
|
${Q}`}}return{success:!0,config:X.data,configPath:x.configFile}}catch(x){return{success:!1,error:`Failed to load ${B.configPath?I1(B.configPath):R}:
|
|
4
|
-
${x instanceof Error?x.message:String(x)}`}}}function S9(B){return U9(process.cwd(),B)}var R9=[R];function _9(B){let $={staging:[],production:[]};for(let x of J1)$[x]=B.courses.map((X)=>X.ids?.[x]).filter((X)=>!!X);return $}async function A9(B){try{let $=L9(B,"package.json");return JSON.parse(await I9($,"utf-8")).version??
|
|
4
|
+
${x instanceof Error?x.message:String(x)}`}}}function S9(B){return U9(process.cwd(),B)}var R9=[R];function _9(B){let $={staging:[],production:[]};for(let x of J1)$[x]=B.courses.map((X)=>X.ids?.[x]).filter((X)=>!!X);return $}async function A9(B){try{let $=L9(B,"package.json");return JSON.parse(await I9($,"utf-8")).version??a}catch{return a}}async function C9(){let B=process.cwd();try{let $=await u(B);if(!$)return{success:!1,error:`No timeback config found. Create ${R}`};let x=P.safeParse($.config);if(!x.success){let W=x.error.issues.map((b)=>` - ${b.path.join(".")}: ${b.message}`).join(`
|
|
5
5
|
`);return{success:!1,error:`Invalid config in ${R}:
|
|
6
6
|
${W}`}}let X=await A9(B),Q={...x.data,version:X};return{success:!0,config:{...Q,path:$.configFile,courseIds:_9(Q)}}}catch($){return{success:!1,error:`Failed to load ${R}:
|
|
7
7
|
${$ instanceof Error?$.message:String($)}`}}}function N9(B){console.log(""),console.log(` ${g("✖")} ${N("Configuration Error")}`),console.log(""),console.log(` ${B}`),console.log(""),console.log(` ${w("Example timeback.config.json:")}`),console.log(""),console.log(` ${O("{")}`),console.log(` ${O(' "$schema": "https://timeback.dev/schema.json",')}`),console.log(` ${O(' "name": "My Timeback App",')}`),console.log(` ${O(' "launchUrl": "https://example.com/play",')}`),console.log(` ${O(' "courses": [')}`),console.log(` ${O(' { "subject": "Math", "grade": 3 }')}`),console.log(` ${O(" ]")}`),console.log(` ${O("}")}`),console.log("")}var i={name:"timeback",filePatterns:R9,parse:C9,printError:N9};function T(B,$){let x={},X=Object.keys(B),Q=B;for(let W of $)if(W in Q&&Q[W]!==void 0)x[W]=Q[W];for(let W of X)if(!(W in x)&&Q[W]!==void 0)x[W]=Q[W];return x}function A1(B){let $={};for(let[x,X]of Object.entries(B))if(X!==void 0)$[x]=X;return $}function w9(B){if(!B)return;let $=A1(B);if(Object.keys($).length===0)return;return T($,O1)}function n(B){if(!B)return;let $=A1(B);if(Object.keys($).length===0)return;return T($,U1)}function P9(B){if(!B)return;let $={};if(B.courseCode)$.courseCode=B.courseCode;if(B.level)$.level=B.level;if(B.metadata){let x=n(B.metadata);if(x)$.metadata=x}if(Object.keys($).length===0)return;return T($,M1)}function _1(B){if(!B)return;let $={};if(B.level)$.level=B.level;if(B.sensor)$.sensor=B.sensor;if(B.launchUrl)$.launchUrl=B.launchUrl;if(B.metadata){let x=n(B.metadata);if(x)$.metadata=x}if(Object.keys($).length===0)return;return T($,S1)}function T9(B){if(!B)return;let $={};if(B.staging){let x=_1(B.staging);if(x)$.staging=x}if(B.production){let x=_1(B.production);if(x)$.production=x}if(Object.keys($).length===0)return;return T($,j1)}function y9(B){let $={subject:B.subject};if(B.grade!==void 0)$.grade=B.grade;if(B.courseCode)$.courseCode=B.courseCode;if(B.level)$.level=B.level;if(B.sensor)$.sensor=B.sensor;if(B.launchUrl)$.launchUrl=B.launchUrl;let x=w9(B.ids);if(x)$.ids=x;let X=n(B.metadata);if(X)$.metadata=X;let Q=T9(B.overrides);if(Q)$.overrides=Q;return T($,K1)}function m(B){let $={$schema:G1,name:B.name};if(B.launchUrl)$.launchUrl=B.launchUrl;if(B.sensor)$.sensor=B.sensor;let x=P9(B.defaults);if(x)$.defaults=x;$.courses=B.courses.map(y9);let X=T($,V1);return JSON.stringify(X,null,z1)+`
|
|
8
|
-
`}function g9(B){if(!B.every((X)=>X.launchUrl!==void 0))return;let x=new Set(B.map((X)=>X.launchUrl).filter(Boolean));return x.size===1?[...x][0]:void 0}function E9(B){if(!B.courses.every((W)=>W.launchUrl!==void 0))return B;let x=B.courses.map((W)=>W.launchUrl);if(new Set(x).size!==1)return B;let Q=x[0];if(B.launchUrl&&B.launchUrl!==Q)return B;return{...B,launchUrl:Q,courses:B.courses.map((W)=>{if(W.launchUrl===Q){let{launchUrl:b,...H}=W;return H}return W})}}import{writeFile as Ub}from"node:fs/promises";import{stdout as k9}from"node:process";var C1=k9.isTTY??!1;var l4=[10251,10265,10297,10296,10300,10292,10278,10279,10247,10255].map((B)=>String.fromCodePoint(B));import{join as w1}from"node:path";var b3=[w1(".timeback","bin"),w1(".local","bin"),"/usr/local/bin/timeback","/opt/homebrew/bin/timeback"];import{existsSync as h9}from"node:fs";import{resolve as f9}from"node:path";function o(B){let $=[{pm:"bun",file:"bun.lockb"},{pm:"bun",file:"bun.lock"},{pm:"pnpm",file:"pnpm-lock.yaml"},{pm:"yarn",file:"yarn.lock"},{pm:"npm",file:"package-lock.json"}];for(let{pm:x,file:X}of $)if(h9(f9(B,X)))return{packageManager:x,reason:"lockfile",lockfile:X};return{packageManager:"npm",reason:"default"}}function s(B,$){switch(B){case"bun":return{cmd:"bunx",args:[$]};case"pnpm":return{cmd:"pnpm",args:["dlx",$]};case"yarn":return{cmd:"yarn",args:["dlx",$]};case"npm":default:return{cmd:"npx",args:["--yes",$]}}}import{spawn as Gb}from"node:child_process";import{existsSync as zb}from"node:fs";import{resolve as Vb}from"node:path";var F=B1(t(),1);import{stdin as u9,stdout as a9}from"node:process";import*as C from"node:readline";function i9({onlyFirst:B=!1}={}){let $=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?(?:\\u0007|\\u001B\\u005C|\\u009C))","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))"].join("|");return new RegExp($,B?void 0:"g")}var H3=i9();function v1(B){return B&&B.__esModule&&Object.prototype.hasOwnProperty.call(B,"default")?B.default:B}var h1={exports:{}};(function(B){var $={};B.exports=$,$.eastAsianWidth=function(X){var Q=X.charCodeAt(0),W=X.length==2?X.charCodeAt(1):0,b=Q;return 55296<=Q&&Q<=56319&&56320<=W&&W<=57343&&(Q&=1023,W&=1023,b=Q<<10|W,b+=65536),b==12288||65281<=b&&b<=65376||65504<=b&&b<=65510?"F":b==8361||65377<=b&&b<=65470||65474<=b&&b<=65479||65482<=b&&b<=65487||65490<=b&&b<=65495||65498<=b&&b<=65500||65512<=b&&b<=65518?"H":4352<=b&&b<=4447||4515<=b&&b<=4519||4602<=b&&b<=4607||9001<=b&&b<=9002||11904<=b&&b<=11929||11931<=b&&b<=12019||12032<=b&&b<=12245||12272<=b&&b<=12283||12289<=b&&b<=12350||12353<=b&&b<=12438||12441<=b&&b<=12543||12549<=b&&b<=12589||12593<=b&&b<=12686||12688<=b&&b<=12730||12736<=b&&b<=12771||12784<=b&&b<=12830||12832<=b&&b<=12871||12880<=b&&b<=13054||13056<=b&&b<=19903||19968<=b&&b<=42124||42128<=b&&b<=42182||43360<=b&&b<=43388||44032<=b&&b<=55203||55216<=b&&b<=55238||55243<=b&&b<=55291||63744<=b&&b<=64255||65040<=b&&b<=65049||65072<=b&&b<=65106||65108<=b&&b<=65126||65128<=b&&b<=65131||110592<=b&&b<=110593||127488<=b&&b<=127490||127504<=b&&b<=127546||127552<=b&&b<=127560||127568<=b&&b<=127569||131072<=b&&b<=194367||177984<=b&&b<=196605||196608<=b&&b<=262141?"W":32<=b&&b<=126||162<=b&&b<=163||165<=b&&b<=166||b==172||b==175||10214<=b&&b<=10221||10629<=b&&b<=10630?"Na":b==161||b==164||167<=b&&b<=168||b==170||173<=b&&b<=174||176<=b&&b<=180||182<=b&&b<=186||188<=b&&b<=191||b==198||b==208||215<=b&&b<=216||222<=b&&b<=225||b==230||232<=b&&b<=234||236<=b&&b<=237||b==240||242<=b&&b<=243||247<=b&&b<=250||b==252||b==254||b==257||b==273||b==275||b==283||294<=b&&b<=295||b==299||305<=b&&b<=307||b==312||319<=b&&b<=322||b==324||328<=b&&b<=331||b==333||338<=b&&b<=339||358<=b&&b<=359||b==363||b==462||b==464||b==466||b==468||b==470||b==472||b==474||b==476||b==593||b==609||b==708||b==711||713<=b&&b<=715||b==717||b==720||728<=b&&b<=731||b==733||b==735||768<=b&&b<=879||913<=b&&b<=929||931<=b&&b<=937||945<=b&&b<=961||963<=b&&b<=969||b==1025||1040<=b&&b<=1103||b==1105||b==8208||8211<=b&&b<=8214||8216<=b&&b<=8217||8220<=b&&b<=8221||8224<=b&&b<=8226||8228<=b&&b<=8231||b==8240||8242<=b&&b<=8243||b==8245||b==8251||b==8254||b==8308||b==8319||8321<=b&&b<=8324||b==8364||b==8451||b==8453||b==8457||b==8467||b==8470||8481<=b&&b<=8482||b==8486||b==8491||8531<=b&&b<=8532||8539<=b&&b<=8542||8544<=b&&b<=8555||8560<=b&&b<=8569||b==8585||8592<=b&&b<=8601||8632<=b&&b<=8633||b==8658||b==8660||b==8679||b==8704||8706<=b&&b<=8707||8711<=b&&b<=8712||b==8715||b==8719||b==8721||b==8725||b==8730||8733<=b&&b<=8736||b==8739||b==8741||8743<=b&&b<=8748||b==8750||8756<=b&&b<=8759||8764<=b&&b<=8765||b==8776||b==8780||b==8786||8800<=b&&b<=8801||8804<=b&&b<=8807||8810<=b&&b<=8811||8814<=b&&b<=8815||8834<=b&&b<=8835||8838<=b&&b<=8839||b==8853||b==8857||b==8869||b==8895||b==8978||9312<=b&&b<=9449||9451<=b&&b<=9547||9552<=b&&b<=9587||9600<=b&&b<=9615||9618<=b&&b<=9621||9632<=b&&b<=9633||9635<=b&&b<=9641||9650<=b&&b<=9651||9654<=b&&b<=9655||9660<=b&&b<=9661||9664<=b&&b<=9665||9670<=b&&b<=9672||b==9675||9678<=b&&b<=9681||9698<=b&&b<=9701||b==9711||9733<=b&&b<=9734||b==9737||9742<=b&&b<=9743||9748<=b&&b<=9749||b==9756||b==9758||b==9792||b==9794||9824<=b&&b<=9825||9827<=b&&b<=9829||9831<=b&&b<=9834||9836<=b&&b<=9837||b==9839||9886<=b&&b<=9887||9918<=b&&b<=9919||9924<=b&&b<=9933||9935<=b&&b<=9953||b==9955||9960<=b&&b<=9983||b==10045||b==10071||10102<=b&&b<=10111||11093<=b&&b<=11097||12872<=b&&b<=12879||57344<=b&&b<=63743||65024<=b&&b<=65039||b==65533||127232<=b&&b<=127242||127248<=b&&b<=127277||127280<=b&&b<=127337||127344<=b&&b<=127386||917760<=b&&b<=917999||983040<=b&&b<=1048573||1048576<=b&&b<=1114109?"A":"N"},$.characterLength=function(X){var Q=this.eastAsianWidth(X);return Q=="F"||Q=="W"||Q=="A"?2:1};function x(X){return X.match(/[\uD800-\uDBFF][\uDC00-\uDFFF]|[^\uD800-\uDFFF]/g)||[]}$.length=function(X){for(var Q=x(X),W=0,b=0;b<Q.length;b++)W=W+this.characterLength(Q[b]);return W},$.slice=function(X,Q,W){textLen=$.length(X),Q=Q||0,W=W||1,Q<0&&(Q=textLen+Q),W<0&&(W=textLen+W);for(var b="",H=0,G=x(X),U=0;U<G.length;U++){var z=G[U],J=$.length(z);if(H>=Q-(J==2?1:0))if(H+J<=W)b+=z;else break;H+=J}return b}})(h1);var n9=h1.exports,Y3=v1(n9),o9=function(){return/\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67)\uDB40\uDC7F|(?:\uD83E\uDDD1\uD83C\uDFFF\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFC-\uDFFF])|\uD83D\uDC68(?:\uD83C\uDFFB(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|[\u2695\u2696\u2708]\uFE0F|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))?|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])\uFE0F|\u200D(?:(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D[\uDC66\uDC67])|\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC)?|(?:\uD83D\uDC69(?:\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69]))|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC69(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83E\uDDD1(?:\u200D(?:\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDE36\u200D\uD83C\uDF2B|\uD83C\uDFF3\uFE0F\u200D\u26A7|\uD83D\uDC3B\u200D\u2744|(?:(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\uD83C\uDFF4\u200D\u2620|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])\u200D[\u2640\u2642]|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u2600-\u2604\u260E\u2611\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26B0\u26B1\u26C8\u26CF\u26D1\u26D3\u26E9\u26F0\u26F1\u26F4\u26F7\u26F8\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u3030\u303D\u3297\u3299]|\uD83C[\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]|\uD83D[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3])\uFE0F|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDE35\u200D\uD83D\uDCAB|\uD83D\uDE2E\u200D\uD83D\uDCA8|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83E\uDDD1(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83D\uDC69(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF6\uD83C\uDDE6|\uD83C\uDDF4\uD83C\uDDF2|\uD83D\uDC08\u200D\u2B1B|\u2764\uFE0F\u200D(?:\uD83D\uDD25|\uD83E\uDE79)|\uD83D\uDC41\uFE0F|\uD83C\uDFF3\uFE0F|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|[#\*0-9]\uFE0F\u20E3|\u2764\uFE0F|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|\uD83C\uDFF4|(?:[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270C\u270D]|\uD83D[\uDD74\uDD90])(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC08\uDC15\uDC3B\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE2E\uDE35\uDE36\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5]|\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD]|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF]|[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0D\uDD0E\uDD10-\uDD17\uDD1D\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78\uDD7A-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCB\uDDD0\uDDE0-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6]|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26A7\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5-\uDED7\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDD77\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g},Z3=v1(o9);var b1=10,k1=(B=0)=>($)=>`\x1B[${$+B}m`,m1=(B=0)=>($)=>`\x1B[${38+B};5;${$}m`,F1=(B=0)=>($,x,X)=>`\x1B[${38+B};2;${$};${x};${X}m`,Y={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};Object.keys(Y.modifier);var s9=Object.keys(Y.color),r9=Object.keys(Y.bgColor);[...s9,...r9];function t9(){let B=new Map;for(let[$,x]of Object.entries(Y)){for(let[X,Q]of Object.entries(x))Y[X]={open:`\x1B[${Q[0]}m`,close:`\x1B[${Q[1]}m`},x[X]=Y[X],B.set(Q[0],Q[1]);Object.defineProperty(Y,$,{value:x,enumerable:!1})}return Object.defineProperty(Y,"codes",{value:B,enumerable:!1}),Y.color.close="\x1B[39m",Y.bgColor.close="\x1B[49m",Y.color.ansi=k1(),Y.color.ansi256=m1(),Y.color.ansi16m=F1(),Y.bgColor.ansi=k1(b1),Y.bgColor.ansi256=m1(b1),Y.bgColor.ansi16m=F1(b1),Object.defineProperties(Y,{rgbToAnsi256:{value:($,x,X)=>$===x&&x===X?$<8?16:$>248?231:Math.round(($-8)/247*24)+232:16+36*Math.round($/255*5)+6*Math.round(x/255*5)+Math.round(X/255*5),enumerable:!1},hexToRgb:{value:($)=>{let x=/[a-f\d]{6}|[a-f\d]{3}/i.exec($.toString(16));if(!x)return[0,0,0];let[X]=x;X.length===3&&(X=[...X].map((W)=>W+W).join(""));let Q=Number.parseInt(X,16);return[Q>>16&255,Q>>8&255,Q&255]},enumerable:!1},hexToAnsi256:{value:($)=>Y.rgbToAnsi256(...Y.hexToRgb($)),enumerable:!1},ansi256ToAnsi:{value:($)=>{if($<8)return 30+$;if($<16)return 90+($-8);let x,X,Q;if($>=232)x=(($-232)*10+8)/255,X=x,Q=x;else{$-=16;let H=$%36;x=Math.floor($/36)/5,X=Math.floor(H/6)/5,Q=H%6/5}let W=Math.max(x,X,Q)*2;if(W===0)return 30;let b=30+(Math.round(Q)<<2|Math.round(X)<<1|Math.round(x));return W===2&&(b+=60),b},enumerable:!1},rgbToAnsi:{value:($,x,X)=>Y.ansi256ToAnsi(Y.rgbToAnsi256($,x,X)),enumerable:!1},hexToAnsi:{value:($)=>Y.ansi256ToAnsi(Y.hexToAnsi256($)),enumerable:!1}}),Y}var J3=t9();var e9="]";var G3=`${e9}8;;`;var bb=["up","down","left","right","space","enter","cancel"],Bb={actions:new Set(bb),aliases:new Map([["k","up"],["j","down"],["h","left"],["l","right"],["\x03","cancel"],["escape","cancel"]])};function f1(B,$){if(typeof B=="string")return Bb.aliases.get(B)===$;for(let x of B)if(x!==void 0&&f1(x,$))return!0;return!1}var $b=globalThis.process.platform.startsWith("win"),z3=Symbol("clack:cancel");function p1({input:B=u9,output:$=a9,overwrite:x=!0,hideCursor:X=!0}={}){let Q=C.createInterface({input:B,output:$,prompt:"",tabSize:1});C.emitKeypressEvents(B,Q),B.isTTY&&B.setRawMode(!0);let W=(b,{name:H,sequence:G})=>{let U=String(b);if(f1([U,H,G],"cancel")){X&&$.write(F.cursor.show),process.exit(0);return}if(!x)return;C.moveCursor($,H==="return"?0:-1,H==="return"?-1:0,()=>{C.clearLine($,1,()=>{B.once("keypress",W)})})};return X&&$.write(F.cursor.hide),B.once("keypress",W),()=>{B.off("keypress",W),X&&$.write(F.cursor.show),B.isTTY&&!$b&&B.setRawMode(!1),Q.terminal=!1,Q.close()}}var xb;xb=new WeakMap;var K=B1(E1(),1),d=B1(t(),1);import S from"node:process";function Qb(){return S.platform!=="win32"?S.env.TERM!=="linux":!!S.env.CI||!!S.env.WT_SESSION||!!S.env.TERMINUS_SUBLIME||S.env.ConEmuTask==="{cmd::Cmder}"||S.env.TERM_PROGRAM==="Terminus-Sublime"||S.env.TERM_PROGRAM==="vscode"||S.env.TERM==="xterm-256color"||S.env.TERM==="alacritty"||S.env.TERMINAL_EMULATOR==="JetBrains-JediTerm"}var $1=Qb(),Z=(B,$)=>$1?B:$,A3=Z("◆","*"),Wb=Z("■","x"),qb=Z("▲","x"),l1=Z("◇","o"),C3=Z("┌","T"),v=Z("│","|"),N3=Z("└","—"),w3=Z("●",">"),P3=Z("○"," "),T3=Z("◻","[•]"),y3=Z("◼","[+]"),g3=Z("◻","[ ]"),E3=Z("▪","•"),k3=Z("─","-"),m3=Z("╮","+"),F3=Z("├","+"),v3=Z("╯","+"),Hb=Z("●","•"),Yb=Z("◆","*"),Zb=Z("▲","!"),Jb=Z("■","x");var _={message:(B="",{symbol:$=K.default.gray(v)}={})=>{let x=[`${K.default.gray(v)}`];if(B){let[X,...Q]=B.split(`
|
|
8
|
+
`}function g9(B){if(!B.every((X)=>X.launchUrl!==void 0))return;let x=new Set(B.map((X)=>X.launchUrl).filter(Boolean));return x.size===1?[...x][0]:void 0}function E9(B){if(!B.courses.every((W)=>W.launchUrl!==void 0))return B;let x=B.courses.map((W)=>W.launchUrl);if(new Set(x).size!==1)return B;let Q=x[0];if(B.launchUrl&&B.launchUrl!==Q)return B;return{...B,launchUrl:Q,courses:B.courses.map((W)=>{if(W.launchUrl===Q){let{launchUrl:b,...H}=W;return H}return W})}}import{writeFile as Ub}from"node:fs/promises";import{stdout as k9}from"node:process";var C1=k9.isTTY??!1;var l4=[10251,10265,10297,10296,10300,10292,10278,10279,10247,10255].map((B)=>String.fromCodePoint(B));import{join as w1}from"node:path";var b3=[w1(".timeback","bin"),w1(".local","bin"),"/usr/local/bin/timeback","/opt/homebrew/bin/timeback"];import{existsSync as h9}from"node:fs";import{resolve as f9}from"node:path";function o(B){let $=[{pm:"bun",file:"bun.lockb"},{pm:"bun",file:"bun.lock"},{pm:"pnpm",file:"pnpm-lock.yaml"},{pm:"yarn",file:"yarn.lock"},{pm:"npm",file:"package-lock.json"}];for(let{pm:x,file:X}of $)if(h9(f9(B,X)))return{packageManager:x,reason:"lockfile",lockfile:X};return{packageManager:"npm",reason:"default"}}function s(B,$){switch(B){case"bun":return{cmd:"bunx",args:[$]};case"pnpm":return{cmd:"pnpm",args:["dlx",$]};case"yarn":return{cmd:"yarn",args:["dlx",$]};case"npm":default:return{cmd:"npx",args:["--yes",$]}}}import{spawn as Gb}from"node:child_process";import{existsSync as zb}from"node:fs";import{resolve as Vb}from"node:path";var F=B1(t(),1);import{stdin as a9,stdout as u9}from"node:process";import*as C from"node:readline";function i9({onlyFirst:B=!1}={}){let $=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?(?:\\u0007|\\u001B\\u005C|\\u009C))","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))"].join("|");return new RegExp($,B?void 0:"g")}var H3=i9();function v1(B){return B&&B.__esModule&&Object.prototype.hasOwnProperty.call(B,"default")?B.default:B}var h1={exports:{}};(function(B){var $={};B.exports=$,$.eastAsianWidth=function(X){var Q=X.charCodeAt(0),W=X.length==2?X.charCodeAt(1):0,b=Q;return 55296<=Q&&Q<=56319&&56320<=W&&W<=57343&&(Q&=1023,W&=1023,b=Q<<10|W,b+=65536),b==12288||65281<=b&&b<=65376||65504<=b&&b<=65510?"F":b==8361||65377<=b&&b<=65470||65474<=b&&b<=65479||65482<=b&&b<=65487||65490<=b&&b<=65495||65498<=b&&b<=65500||65512<=b&&b<=65518?"H":4352<=b&&b<=4447||4515<=b&&b<=4519||4602<=b&&b<=4607||9001<=b&&b<=9002||11904<=b&&b<=11929||11931<=b&&b<=12019||12032<=b&&b<=12245||12272<=b&&b<=12283||12289<=b&&b<=12350||12353<=b&&b<=12438||12441<=b&&b<=12543||12549<=b&&b<=12589||12593<=b&&b<=12686||12688<=b&&b<=12730||12736<=b&&b<=12771||12784<=b&&b<=12830||12832<=b&&b<=12871||12880<=b&&b<=13054||13056<=b&&b<=19903||19968<=b&&b<=42124||42128<=b&&b<=42182||43360<=b&&b<=43388||44032<=b&&b<=55203||55216<=b&&b<=55238||55243<=b&&b<=55291||63744<=b&&b<=64255||65040<=b&&b<=65049||65072<=b&&b<=65106||65108<=b&&b<=65126||65128<=b&&b<=65131||110592<=b&&b<=110593||127488<=b&&b<=127490||127504<=b&&b<=127546||127552<=b&&b<=127560||127568<=b&&b<=127569||131072<=b&&b<=194367||177984<=b&&b<=196605||196608<=b&&b<=262141?"W":32<=b&&b<=126||162<=b&&b<=163||165<=b&&b<=166||b==172||b==175||10214<=b&&b<=10221||10629<=b&&b<=10630?"Na":b==161||b==164||167<=b&&b<=168||b==170||173<=b&&b<=174||176<=b&&b<=180||182<=b&&b<=186||188<=b&&b<=191||b==198||b==208||215<=b&&b<=216||222<=b&&b<=225||b==230||232<=b&&b<=234||236<=b&&b<=237||b==240||242<=b&&b<=243||247<=b&&b<=250||b==252||b==254||b==257||b==273||b==275||b==283||294<=b&&b<=295||b==299||305<=b&&b<=307||b==312||319<=b&&b<=322||b==324||328<=b&&b<=331||b==333||338<=b&&b<=339||358<=b&&b<=359||b==363||b==462||b==464||b==466||b==468||b==470||b==472||b==474||b==476||b==593||b==609||b==708||b==711||713<=b&&b<=715||b==717||b==720||728<=b&&b<=731||b==733||b==735||768<=b&&b<=879||913<=b&&b<=929||931<=b&&b<=937||945<=b&&b<=961||963<=b&&b<=969||b==1025||1040<=b&&b<=1103||b==1105||b==8208||8211<=b&&b<=8214||8216<=b&&b<=8217||8220<=b&&b<=8221||8224<=b&&b<=8226||8228<=b&&b<=8231||b==8240||8242<=b&&b<=8243||b==8245||b==8251||b==8254||b==8308||b==8319||8321<=b&&b<=8324||b==8364||b==8451||b==8453||b==8457||b==8467||b==8470||8481<=b&&b<=8482||b==8486||b==8491||8531<=b&&b<=8532||8539<=b&&b<=8542||8544<=b&&b<=8555||8560<=b&&b<=8569||b==8585||8592<=b&&b<=8601||8632<=b&&b<=8633||b==8658||b==8660||b==8679||b==8704||8706<=b&&b<=8707||8711<=b&&b<=8712||b==8715||b==8719||b==8721||b==8725||b==8730||8733<=b&&b<=8736||b==8739||b==8741||8743<=b&&b<=8748||b==8750||8756<=b&&b<=8759||8764<=b&&b<=8765||b==8776||b==8780||b==8786||8800<=b&&b<=8801||8804<=b&&b<=8807||8810<=b&&b<=8811||8814<=b&&b<=8815||8834<=b&&b<=8835||8838<=b&&b<=8839||b==8853||b==8857||b==8869||b==8895||b==8978||9312<=b&&b<=9449||9451<=b&&b<=9547||9552<=b&&b<=9587||9600<=b&&b<=9615||9618<=b&&b<=9621||9632<=b&&b<=9633||9635<=b&&b<=9641||9650<=b&&b<=9651||9654<=b&&b<=9655||9660<=b&&b<=9661||9664<=b&&b<=9665||9670<=b&&b<=9672||b==9675||9678<=b&&b<=9681||9698<=b&&b<=9701||b==9711||9733<=b&&b<=9734||b==9737||9742<=b&&b<=9743||9748<=b&&b<=9749||b==9756||b==9758||b==9792||b==9794||9824<=b&&b<=9825||9827<=b&&b<=9829||9831<=b&&b<=9834||9836<=b&&b<=9837||b==9839||9886<=b&&b<=9887||9918<=b&&b<=9919||9924<=b&&b<=9933||9935<=b&&b<=9953||b==9955||9960<=b&&b<=9983||b==10045||b==10071||10102<=b&&b<=10111||11093<=b&&b<=11097||12872<=b&&b<=12879||57344<=b&&b<=63743||65024<=b&&b<=65039||b==65533||127232<=b&&b<=127242||127248<=b&&b<=127277||127280<=b&&b<=127337||127344<=b&&b<=127386||917760<=b&&b<=917999||983040<=b&&b<=1048573||1048576<=b&&b<=1114109?"A":"N"},$.characterLength=function(X){var Q=this.eastAsianWidth(X);return Q=="F"||Q=="W"||Q=="A"?2:1};function x(X){return X.match(/[\uD800-\uDBFF][\uDC00-\uDFFF]|[^\uD800-\uDFFF]/g)||[]}$.length=function(X){for(var Q=x(X),W=0,b=0;b<Q.length;b++)W=W+this.characterLength(Q[b]);return W},$.slice=function(X,Q,W){textLen=$.length(X),Q=Q||0,W=W||1,Q<0&&(Q=textLen+Q),W<0&&(W=textLen+W);for(var b="",H=0,G=x(X),U=0;U<G.length;U++){var z=G[U],J=$.length(z);if(H>=Q-(J==2?1:0))if(H+J<=W)b+=z;else break;H+=J}return b}})(h1);var n9=h1.exports,Y3=v1(n9),o9=function(){return/\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67)\uDB40\uDC7F|(?:\uD83E\uDDD1\uD83C\uDFFF\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFC-\uDFFF])|\uD83D\uDC68(?:\uD83C\uDFFB(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|[\u2695\u2696\u2708]\uFE0F|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))?|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])\uFE0F|\u200D(?:(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D[\uDC66\uDC67])|\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC)?|(?:\uD83D\uDC69(?:\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69]))|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC69(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83E\uDDD1(?:\u200D(?:\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDE36\u200D\uD83C\uDF2B|\uD83C\uDFF3\uFE0F\u200D\u26A7|\uD83D\uDC3B\u200D\u2744|(?:(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\uD83C\uDFF4\u200D\u2620|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])\u200D[\u2640\u2642]|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u2600-\u2604\u260E\u2611\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26B0\u26B1\u26C8\u26CF\u26D1\u26D3\u26E9\u26F0\u26F1\u26F4\u26F7\u26F8\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u3030\u303D\u3297\u3299]|\uD83C[\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]|\uD83D[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3])\uFE0F|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDE35\u200D\uD83D\uDCAB|\uD83D\uDE2E\u200D\uD83D\uDCA8|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83E\uDDD1(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83D\uDC69(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF6\uD83C\uDDE6|\uD83C\uDDF4\uD83C\uDDF2|\uD83D\uDC08\u200D\u2B1B|\u2764\uFE0F\u200D(?:\uD83D\uDD25|\uD83E\uDE79)|\uD83D\uDC41\uFE0F|\uD83C\uDFF3\uFE0F|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|[#\*0-9]\uFE0F\u20E3|\u2764\uFE0F|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|\uD83C\uDFF4|(?:[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270C\u270D]|\uD83D[\uDD74\uDD90])(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC08\uDC15\uDC3B\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE2E\uDE35\uDE36\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5]|\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD]|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF]|[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0D\uDD0E\uDD10-\uDD17\uDD1D\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78\uDD7A-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCB\uDDD0\uDDE0-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6]|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26A7\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5-\uDED7\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDD77\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g},Z3=v1(o9);var b1=10,k1=(B=0)=>($)=>`\x1B[${$+B}m`,m1=(B=0)=>($)=>`\x1B[${38+B};5;${$}m`,F1=(B=0)=>($,x,X)=>`\x1B[${38+B};2;${$};${x};${X}m`,Y={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};Object.keys(Y.modifier);var s9=Object.keys(Y.color),r9=Object.keys(Y.bgColor);[...s9,...r9];function t9(){let B=new Map;for(let[$,x]of Object.entries(Y)){for(let[X,Q]of Object.entries(x))Y[X]={open:`\x1B[${Q[0]}m`,close:`\x1B[${Q[1]}m`},x[X]=Y[X],B.set(Q[0],Q[1]);Object.defineProperty(Y,$,{value:x,enumerable:!1})}return Object.defineProperty(Y,"codes",{value:B,enumerable:!1}),Y.color.close="\x1B[39m",Y.bgColor.close="\x1B[49m",Y.color.ansi=k1(),Y.color.ansi256=m1(),Y.color.ansi16m=F1(),Y.bgColor.ansi=k1(b1),Y.bgColor.ansi256=m1(b1),Y.bgColor.ansi16m=F1(b1),Object.defineProperties(Y,{rgbToAnsi256:{value:($,x,X)=>$===x&&x===X?$<8?16:$>248?231:Math.round(($-8)/247*24)+232:16+36*Math.round($/255*5)+6*Math.round(x/255*5)+Math.round(X/255*5),enumerable:!1},hexToRgb:{value:($)=>{let x=/[a-f\d]{6}|[a-f\d]{3}/i.exec($.toString(16));if(!x)return[0,0,0];let[X]=x;X.length===3&&(X=[...X].map((W)=>W+W).join(""));let Q=Number.parseInt(X,16);return[Q>>16&255,Q>>8&255,Q&255]},enumerable:!1},hexToAnsi256:{value:($)=>Y.rgbToAnsi256(...Y.hexToRgb($)),enumerable:!1},ansi256ToAnsi:{value:($)=>{if($<8)return 30+$;if($<16)return 90+($-8);let x,X,Q;if($>=232)x=(($-232)*10+8)/255,X=x,Q=x;else{$-=16;let H=$%36;x=Math.floor($/36)/5,X=Math.floor(H/6)/5,Q=H%6/5}let W=Math.max(x,X,Q)*2;if(W===0)return 30;let b=30+(Math.round(Q)<<2|Math.round(X)<<1|Math.round(x));return W===2&&(b+=60),b},enumerable:!1},rgbToAnsi:{value:($,x,X)=>Y.ansi256ToAnsi(Y.rgbToAnsi256($,x,X)),enumerable:!1},hexToAnsi:{value:($)=>Y.ansi256ToAnsi(Y.hexToAnsi256($)),enumerable:!1}}),Y}var J3=t9();var e9="]";var G3=`${e9}8;;`;var bb=["up","down","left","right","space","enter","cancel"],Bb={actions:new Set(bb),aliases:new Map([["k","up"],["j","down"],["h","left"],["l","right"],["\x03","cancel"],["escape","cancel"]])};function f1(B,$){if(typeof B=="string")return Bb.aliases.get(B)===$;for(let x of B)if(x!==void 0&&f1(x,$))return!0;return!1}var $b=globalThis.process.platform.startsWith("win"),z3=Symbol("clack:cancel");function p1({input:B=a9,output:$=u9,overwrite:x=!0,hideCursor:X=!0}={}){let Q=C.createInterface({input:B,output:$,prompt:"",tabSize:1});C.emitKeypressEvents(B,Q),B.isTTY&&B.setRawMode(!0);let W=(b,{name:H,sequence:G})=>{let U=String(b);if(f1([U,H,G],"cancel")){X&&$.write(F.cursor.show),process.exit(0);return}if(!x)return;C.moveCursor($,H==="return"?0:-1,H==="return"?-1:0,()=>{C.clearLine($,1,()=>{B.once("keypress",W)})})};return X&&$.write(F.cursor.hide),B.once("keypress",W),()=>{B.off("keypress",W),X&&$.write(F.cursor.show),B.isTTY&&!$b&&B.setRawMode(!1),Q.terminal=!1,Q.close()}}var xb;xb=new WeakMap;var K=B1(E1(),1),d=B1(t(),1);import S from"node:process";function Qb(){return S.platform!=="win32"?S.env.TERM!=="linux":!!S.env.CI||!!S.env.WT_SESSION||!!S.env.TERMINUS_SUBLIME||S.env.ConEmuTask==="{cmd::Cmder}"||S.env.TERM_PROGRAM==="Terminus-Sublime"||S.env.TERM_PROGRAM==="vscode"||S.env.TERM==="xterm-256color"||S.env.TERM==="alacritty"||S.env.TERMINAL_EMULATOR==="JetBrains-JediTerm"}var $1=Qb(),Z=(B,$)=>$1?B:$,A3=Z("◆","*"),Wb=Z("■","x"),qb=Z("▲","x"),l1=Z("◇","o"),C3=Z("┌","T"),v=Z("│","|"),N3=Z("└","—"),w3=Z("●",">"),P3=Z("○"," "),T3=Z("◻","[•]"),y3=Z("◼","[+]"),g3=Z("◻","[ ]"),E3=Z("▪","•"),k3=Z("─","-"),m3=Z("╮","+"),F3=Z("├","+"),v3=Z("╯","+"),Hb=Z("●","•"),Yb=Z("◆","*"),Zb=Z("▲","!"),Jb=Z("■","x");var _={message:(B="",{symbol:$=K.default.gray(v)}={})=>{let x=[`${K.default.gray(v)}`];if(B){let[X,...Q]=B.split(`
|
|
9
9
|
`);x.push(`${$} ${X}`,...Q.map((W)=>`${K.default.gray(v)} ${W}`))}process.stdout.write(`${x.join(`
|
|
10
10
|
`)}
|
|
11
|
-
`)},info:(B)=>{_.message(B,{symbol:K.default.blue(Hb)})},success:(B)=>{_.message(B,{symbol:K.default.green(Yb)})},step:(B)=>{_.message(B,{symbol:K.default.green(l1)})},warn:(B)=>{_.message(B,{symbol:K.default.yellow(Zb)})},warning:(B)=>{_.warn(B)},error:(B)=>{_.message(B,{symbol:K.default.red(Jb)})}},h3=`${K.default.gray(v)} `;var d1=({indicator:B="dots"}={})=>{let $=$1?["◒","◐","◓","◑"]:["•","o","O","0"],x=$1?80:120,X=process.env.CI==="true",Q,W,b=!1,H="",G,U=performance.now(),z=(V)=>{let M=V>1?"Something went wrong":"Canceled";b&&Q1(M,V)},J=()=>z(2),j=()=>z(1),I=()=>{process.on("uncaughtExceptionMonitor",J),process.on("unhandledRejection",J),process.on("SIGINT",j),process.on("SIGTERM",j),process.on("exit",z)},
|
|
11
|
+
`)},info:(B)=>{_.message(B,{symbol:K.default.blue(Hb)})},success:(B)=>{_.message(B,{symbol:K.default.green(Yb)})},step:(B)=>{_.message(B,{symbol:K.default.green(l1)})},warn:(B)=>{_.message(B,{symbol:K.default.yellow(Zb)})},warning:(B)=>{_.warn(B)},error:(B)=>{_.message(B,{symbol:K.default.red(Jb)})}},h3=`${K.default.gray(v)} `;var d1=({indicator:B="dots"}={})=>{let $=$1?["◒","◐","◓","◑"]:["•","o","O","0"],x=$1?80:120,X=process.env.CI==="true",Q,W,b=!1,H="",G,U=performance.now(),z=(V)=>{let M=V>1?"Something went wrong":"Canceled";b&&Q1(M,V)},J=()=>z(2),j=()=>z(1),I=()=>{process.on("uncaughtExceptionMonitor",J),process.on("unhandledRejection",J),process.on("SIGINT",j),process.on("SIGTERM",j),process.on("exit",z)},u1=()=>{process.removeListener("uncaughtExceptionMonitor",J),process.removeListener("unhandledRejection",J),process.removeListener("SIGINT",j),process.removeListener("SIGTERM",j),process.removeListener("exit",z)},x1=()=>{if(G===void 0)return;X&&process.stdout.write(`
|
|
12
12
|
`);let V=G.split(`
|
|
13
13
|
`);process.stdout.write(d.cursor.move(-999,V.length-1)),process.stdout.write(d.erase.down(V.length))},D=(V)=>V.replace(/\.+$/,""),X1=(V)=>{let M=(performance.now()-V)/1000,L=Math.floor(M/60),y=Math.floor(M%60);return L>0?`[${L}m ${y}s]`:`[${y}s]`},i1=(V="")=>{b=!0,Q=p1(),H=D(V),U=performance.now(),process.stdout.write(`${K.default.gray(v)}
|
|
14
14
|
`);let M=0,L=0;I(),W=setInterval(()=>{if(X&&H===G)return;x1(),G=H;let y=K.default.magenta($[M]);if(X)process.stdout.write(`${y} ${H}...`);else if(B==="timer")process.stdout.write(`${y} ${H} ${X1(U)}`);else{let n1=".".repeat(Math.floor(L)).slice(0,3);process.stdout.write(`${y} ${H}${n1}`)}M=M+1<$.length?M+1:0,L=L<$.length?L+0.125:0},x)},Q1=(V="",M=0)=>{b=!1,clearInterval(W),x1();let L=M===0?K.default.green(l1):M===1?K.default.red(Wb):K.default.red(qb);H=D(V??H),B==="timer"?process.stdout.write(`${L} ${H} ${X1(U)}
|
|
15
15
|
`):process.stdout.write(`${L} ${H}
|
|
16
|
-
`),
|
|
16
|
+
`),u1(),Q()};return{start:i1,stop:Q1,message:(V="")=>{H=D(V??H)}}};function D1(B,$,x,X=!1){return new Promise((Q)=>{let W=Gb(B,$,{cwd:x,stdio:X?"ignore":"inherit",shell:process.platform==="win32"});W.on("close",(b)=>Q(b??1)),W.on("error",()=>Q(1))})}function Kb(B){return Vb(B,"node_modules",".bin",process.platform==="win32"?"prettier.cmd":"prettier")}function Ob(B,$){let{packageManager:x}=o(B),X=s(x,"prettier");return D1(X.cmd,[...X.args,...$],B,!0)}async function h(B){let{cwd:$,filePath:x,silent:X=!1,label:Q="file"}=B,W=Kb($),b=["--write",x],H=X?null:d1();H?.start(`Formatting ${Q}...`);try{let G;if(zb(W))G=await D1(W,b,$,!0);else G=await Ob($,b);if(G===0)return H?.stop(`Formatted ${Q}`),!0;if(H?.stop(),!X)_.warn(`Failed to format ${Q}`);return!1}catch{if(H?.stop(),!X)_.warn(`Failed to format ${Q}`);return!1}}async function Mb(B,$,x={}){let{format:X=!1,cwd:Q=process.cwd(),silent:W=!0}=x,b=m($);if(await Ub(B,b,"utf-8"),X)await h({cwd:Q,filePath:B,silent:W})}import{readFile as jb,writeFile as Sb}from"node:fs/promises";async function Ib(B,$,x={}){let{format:X=!1,cwd:Q=process.cwd(),silent:W=!0}=x;try{let b=await jb(B,"utf8"),H=JSON.parse(b);if(!H||typeof H!=="object"||Array.isArray(H))return{success:!1,error:"Config file is not a JSON object."};let{$schema:G,...U}=H,z=P.safeParse(U);if(!z.success)return{success:!1,error:"Config file is invalid; cannot update."};let J={...z.data,...Object.fromEntries(Object.entries($).filter(([,I])=>I!==void 0))},j=P.safeParse(J);if(!j.success)return{success:!1,error:"Update would make config invalid; refusing to write."};if(await Sb(B,m(j.data),"utf8"),X)await h({cwd:Q,filePath:B,silent:W});return{success:!0,config:j.data}}catch(b){return{success:!1,error:b instanceof Error?b.message:"Unknown error"}}}function Lb(B,$){let x={subject:B.subjects?.[0]??"None",grade:B.grades?.[0]??0,ids:{[$]:B.sourcedId}};if(B.courseCode)x.courseCode=B.courseCode;if(B.level)x.level=B.level;if(B.metadata){let X={};if(B.metadata.courseType)X.courseType=B.metadata.courseType;if(B.metadata.isSupplemental!==void 0)X.isSupplemental=B.metadata.isSupplemental;if(B.metadata.isCustom!==void 0)X.isCustom=B.metadata.isCustom;if(B.metadata.publishStatus)X.publishStatus=B.metadata.publishStatus;if(B.metadata.contactEmail)X.contactEmail=B.metadata.contactEmail;if(B.metadata.primaryApp)X.primaryApp=B.metadata.primaryApp;if(B.metadata.goals)X.goals=B.metadata.goals;if(B.metadata.metrics)X.metrics=B.metadata.metrics;if(Object.keys(X).length>0)x.metadata=X}return x}async function Rb(B,$){try{let X=await B.oneroster.courses($).components({where:{status:"active"}}),Q=[];for(let J of X){if(!J.sourcedId)continue;let j=await B.oneroster.courses.componentResources({where:{"courseComponent.sourcedId":J.sourcedId,status:"active"}});for(let I of j)if(I.resource?.sourcedId)Q.push(I.resource.sourcedId)}if(Q.length===0)return;let W=[...new Set(Q)],b=c1(W),H=await Promise.allSettled(b.map((J)=>B.oneroster.resources.listAll({where:{sourcedId:{in:J}}})));if(H.some((J)=>J.status==="rejected"))return;let U=a1(H),z=new Set;for(let J of U){let I=J.metadata?.launchUrl;if(typeof I==="string"&&I.length>0)z.add(I)}if(z.size===1)return[...z][0];return}catch{return}}function _b(B){if(!B.ids)return[];return Object.keys(B.ids).filter(($)=>B.ids?.[$]).map(($)=>({env:$,courseId:B.ids[$]}))}function kB(B={}){return B.playcademy?c:i}export{Ib as updateTimebackConfigFile,Lb as toCourseConfig,i as timebackParser,Mb as saveTimebackConfigFile,c as playcademyParser,E9 as normalizeLaunchUrls,j9 as loadConfig,Rb as inferLaunchUrl,_b as getSyncedCourses,S9 as getRelativeConfigPath,kB as getParser,g9 as getCommonLaunchUrl,m as generateConfigContent};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import{createRequire as k}from"node:module";var g=Object.create;var{getPrototypeOf:h,defineProperty:f,getOwnPropertyNames:i}=Object;var j=Object.prototype.hasOwnProperty;var l=(a,b,c)=>{c=a!=null?g(h(a)):{};let d=b||!a||!a.__esModule?f(c,"default",{value:a,enumerable:!0}):c;for(let e of i(a))if(!j.call(d,e))f(d,e,{get:()=>a[e],enumerable:!0});return d};var m=(a,b)=>()=>(b||a((b={exports:{}}).exports,b),b.exports);var o=k(import.meta.url);
|
|
2
|
-
export{l as
|
|
2
|
+
export{l as Q,m as R,o as S};
|