ugly-app 0.1.1068 → 0.1.1069

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.
@@ -1,2 +1,2 @@
1
- export declare const CLI_VERSION = "0.1.1068";
1
+ export declare const CLI_VERSION = "0.1.1069";
2
2
  //# sourceMappingURL=version.d.ts.map
@@ -1,3 +1,3 @@
1
1
  // Auto-generated by prebuild — do not edit manually
2
- export const CLI_VERSION = "0.1.1068";
2
+ export const CLI_VERSION = "0.1.1069";
3
3
  //# sourceMappingURL=version.js.map
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Load ugly.bot's silent-auth endpoint in a hidden iframe and resolve with the
3
+ * one-time code it postMessages back (or null if there's no ugly.bot session, or
4
+ * on timeout). This is the SAME mechanism as auto-login (a same-site iframe that
5
+ * reads the live ugly.bot cookie), repurposed so it ALSO serves as the
6
+ * keep-the-token-fresh / account-sync check on every boot.
7
+ *
8
+ * Cross-origin-isolated apps (COEP `require-corp`, the framework default): the
9
+ * iframe must load WITH credentials. ugly.bot's `/oauth/silent?mode=iframe`
10
+ * asserts its own `Cross-Origin-Embedder-Policy: require-corp` +
11
+ * `Cross-Origin-Resource-Policy: cross-origin`, so it embeds under a
12
+ * require-corp parent as an ordinary iframe on every engine. Do NOT mark it
13
+ * `credentialless`: that attribute dates from when the framework stamped COEP
14
+ * `credentialless`, and it strips the ugly.bot cookie, so the endpoint always
15
+ * answered "no session" and no COI app (love, ink, search, fit, ...) could
16
+ * auto-login from an existing ugly.bot session (feedback ce9498b2).
17
+ */
18
+ export declare function silentAuthViaIframe(uglyBotUrl: string, timeoutMs?: number): Promise<string | null>;
19
+ //# sourceMappingURL=silentAuthIframe.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"silentAuthIframe.d.ts","sourceRoot":"","sources":["../../../src/client/auth/silentAuthIframe.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,MAAM,EAClB,SAAS,SAAO,GACf,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAyCxB"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Load ugly.bot's silent-auth endpoint in a hidden iframe and resolve with the
3
+ * one-time code it postMessages back (or null if there's no ugly.bot session, or
4
+ * on timeout). This is the SAME mechanism as auto-login (a same-site iframe that
5
+ * reads the live ugly.bot cookie), repurposed so it ALSO serves as the
6
+ * keep-the-token-fresh / account-sync check on every boot.
7
+ *
8
+ * Cross-origin-isolated apps (COEP `require-corp`, the framework default): the
9
+ * iframe must load WITH credentials. ugly.bot's `/oauth/silent?mode=iframe`
10
+ * asserts its own `Cross-Origin-Embedder-Policy: require-corp` +
11
+ * `Cross-Origin-Resource-Policy: cross-origin`, so it embeds under a
12
+ * require-corp parent as an ordinary iframe on every engine. Do NOT mark it
13
+ * `credentialless`: that attribute dates from when the framework stamped COEP
14
+ * `credentialless`, and it strips the ugly.bot cookie, so the endpoint always
15
+ * answered "no session" and no COI app (love, ink, search, fit, ...) could
16
+ * auto-login from an existing ugly.bot session (feedback ce9498b2).
17
+ */
18
+ export function silentAuthViaIframe(uglyBotUrl, timeoutMs = 6000) {
19
+ return new Promise((resolve) => {
20
+ if (typeof document === 'undefined') {
21
+ resolve(null);
22
+ return;
23
+ }
24
+ const origin = window.location.origin;
25
+ let botOrigin;
26
+ try {
27
+ botOrigin = new URL(uglyBotUrl).origin;
28
+ }
29
+ catch {
30
+ resolve(null);
31
+ return;
32
+ }
33
+ const src = `${botOrigin}/oauth/silent?origin=${encodeURIComponent(origin)}&mode=iframe`;
34
+ const iframe = document.createElement('iframe');
35
+ iframe.style.display = 'none';
36
+ iframe.setAttribute('aria-hidden', 'true');
37
+ iframe.setAttribute('tabindex', '-1');
38
+ let settled = false;
39
+ const finish = (code) => {
40
+ if (settled)
41
+ return;
42
+ settled = true;
43
+ window.removeEventListener('message', onMessage);
44
+ clearTimeout(timer);
45
+ iframe.remove();
46
+ resolve(code);
47
+ };
48
+ const onMessage = (e) => {
49
+ if (e.origin !== botOrigin)
50
+ return;
51
+ const data = e.data;
52
+ if (data?.type === 'ugly-bot-silent-auth') {
53
+ finish(typeof data.code === 'string' ? data.code : null);
54
+ }
55
+ };
56
+ window.addEventListener('message', onMessage);
57
+ const timer = setTimeout(() => finish(null), timeoutMs);
58
+ iframe.src = src;
59
+ document.body.appendChild(iframe);
60
+ });
61
+ }
62
+ //# sourceMappingURL=silentAuthIframe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"silentAuthIframe.js","sourceRoot":"","sources":["../../../src/client/auth/silentAuthIframe.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,mBAAmB,CACjC,UAAkB,EAClB,SAAS,GAAG,IAAI;IAEhB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE,CAAC;YACpC,OAAO,CAAC,IAAI,CAAC,CAAC;YACd,OAAO;QACT,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;QACtC,IAAI,SAAiB,CAAC;QACtB,IAAI,CAAC;YACH,SAAS,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC;QACzC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,IAAI,CAAC,CAAC;YACd,OAAO;QACT,CAAC;QACD,MAAM,GAAG,GAAG,GAAG,SAAS,wBAAwB,kBAAkB,CAAC,MAAM,CAAC,cAAc,CAAC;QACzF,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAChD,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;QAC9B,MAAM,CAAC,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;QAC3C,MAAM,CAAC,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QAEtC,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,MAAM,MAAM,GAAG,CAAC,IAAmB,EAAQ,EAAE;YAC3C,IAAI,OAAO;gBAAE,OAAO;YACpB,OAAO,GAAG,IAAI,CAAC;YACf,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YACjD,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,MAAM,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO,CAAC,IAAI,CAAC,CAAC;QAChB,CAAC,CAAC;QACF,MAAM,SAAS,GAAG,CAAC,CAAe,EAAQ,EAAE;YAC1C,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS;gBAAE,OAAO;YACnC,MAAM,IAAI,GAAG,CAAC,CAAC,IAAsD,CAAC;YACtE,IAAI,IAAI,EAAE,IAAI,KAAK,sBAAsB,EAAE,CAAC;gBAC1C,MAAM,CAAC,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC,CAAC;QACF,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAC9C,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,CAAC;QACxD,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC;QACjB,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrapApp.d.ts","sourceRoot":"","sources":["../../src/client/bootstrapApp.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEpE,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAqBzE,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAmFlE,UAAU,mBAAmB;IAC3B,mFAAmF;IACnF,QAAQ,EAAE,eAAe,CAAC;IAE1B,mFAAmF;IACnF,QAAQ,CAAC,EAAE,eAAe,CAAC;IAE3B,uDAAuD;IACvD,cAAc,EAAE,aAAa,CAAC;QAC5B,QAAQ,EAAE,SAAS,CAAC;QACpB,QAAQ,CAAC,EAAE,SAAS,CAAC;QACrB,eAAe,CAAC,EAAE,MAAM,OAAO,CAAC;QAChC,6DAA6D;QAC7D,UAAU,CAAC,EAAE;YAAE,QAAQ,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC;KACnD,CAAC,CAAC;IAEH,0EAA0E;IAC1E,MAAM,EAAE,MAAM,YAAY,CAAC;IAE3B,4DAA4D;IAC5D,IAAI,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC;IAE5B,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,SAAS,CAAC;IAErB,6CAA6C;IAC7C,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,qFAAqF;IACrF,OAAO,CAAC,EAAE,qBAAqB,CAAC;IAEhC,iFAAiF;IACjF,QAAQ,CAAC,EAAE,KAAK,CAAC;IAEjB;;;;;;;;OAQG;IACH,aAAa,CAAC,EAAE,KAAK,CAAC;IAEtB;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;qFACiF;IACjF,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AA+MD,wBAAgB,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI,CAwc/D"}
1
+ {"version":3,"file":"bootstrapApp.d.ts","sourceRoot":"","sources":["../../src/client/bootstrapApp.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEpE,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAqBzE,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAoFlE,UAAU,mBAAmB;IAC3B,mFAAmF;IACnF,QAAQ,EAAE,eAAe,CAAC;IAE1B,mFAAmF;IACnF,QAAQ,CAAC,EAAE,eAAe,CAAC;IAE3B,uDAAuD;IACvD,cAAc,EAAE,aAAa,CAAC;QAC5B,QAAQ,EAAE,SAAS,CAAC;QACpB,QAAQ,CAAC,EAAE,SAAS,CAAC;QACrB,eAAe,CAAC,EAAE,MAAM,OAAO,CAAC;QAChC,6DAA6D;QAC7D,UAAU,CAAC,EAAE;YAAE,QAAQ,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC;KACnD,CAAC,CAAC;IAEH,0EAA0E;IAC1E,MAAM,EAAE,MAAM,YAAY,CAAC;IAE3B,4DAA4D;IAC5D,IAAI,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC;IAE5B,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,SAAS,CAAC;IAErB,6CAA6C;IAC7C,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,qFAAqF;IACrF,OAAO,CAAC,EAAE,qBAAqB,CAAC;IAEhC,iFAAiF;IACjF,QAAQ,CAAC,EAAE,KAAK,CAAC;IAEjB;;;;;;;;OAQG;IACH,aAAa,CAAC,EAAE,KAAK,CAAC;IAEtB;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;qFACiF;IACjF,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AA+ID,wBAAgB,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI,CAwc/D"}
@@ -17,6 +17,7 @@ import { installImageAudit } from './imageAudit.js';
17
17
  import { installUglyStudioPreviewBridge } from './uglyStudioPreviewBridge.js';
18
18
  import { installFeedbackBridge } from './feedbackBridge.js';
19
19
  import { createUglyBotSocket } from './uglyBotSocket.js';
20
+ import { silentAuthViaIframe } from './auth/silentAuthIframe.js';
20
21
  import { attachDebugStream } from './debugStreamClient.js';
21
22
  import { installProxyClient, installUglyNative, nativePlatform, } from '../native/index.js';
22
23
  import { isTestMode, isBrowserTestMode } from '../testing/testMode.js';
@@ -120,73 +121,7 @@ function markReconciled(userId) {
120
121
  }
121
122
  }
122
123
  /**
123
- * Load ugly.bot's silent-auth endpoint in a hidden iframe and resolve with the
124
- * one-time code it postMessages back (or null if there's no ugly.bot session, or
125
- * on timeout). This is the SAME mechanism as auto-login — a same-site iframe that
126
- * reads the live ugly.bot cookie — repurposed here so it ALSO serves as the
127
- * keep-the-token-fresh / account-sync check on every boot.
128
- */
129
- function silentAuthViaIframe(uglyBotUrl) {
130
- return new Promise((resolve) => {
131
- if (typeof document === 'undefined') {
132
- resolve(null);
133
- return;
134
- }
135
- const origin = window.location.origin;
136
- let botOrigin;
137
- try {
138
- botOrigin = new URL(uglyBotUrl).origin;
139
- }
140
- catch {
141
- resolve(null);
142
- return;
143
- }
144
- const src = `${botOrigin}/oauth/silent?origin=${encodeURIComponent(origin)}&mode=iframe`;
145
- const iframe = document.createElement('iframe');
146
- iframe.style.display = 'none';
147
- iframe.setAttribute('aria-hidden', 'true');
148
- iframe.setAttribute('tabindex', '-1');
149
- // A cross-origin-isolated page stamps COEP, which otherwise HARD-BLOCKS this
150
- // cross-origin auth iframe (silent SSO) — failing every authed RPC. Marking the
151
- // iframe `credentialless` lets it load under COEP credentialless instead of being
152
- // blocked. It loads without third-party cookies, so silent SSO resolves anonymous
153
- // (fine for public/COI apps) rather than the whole app breaking on a blocked frame.
154
- if (typeof window !== 'undefined' && window.crossOriginIsolated) {
155
- try {
156
- iframe.credentialless =
157
- true;
158
- }
159
- catch {
160
- /* older engines */
161
- }
162
- iframe.setAttribute('credentialless', '');
163
- }
164
- let settled = false;
165
- const finish = (code) => {
166
- if (settled)
167
- return;
168
- settled = true;
169
- window.removeEventListener('message', onMessage);
170
- clearTimeout(timer);
171
- iframe.remove();
172
- resolve(code);
173
- };
174
- const onMessage = (e) => {
175
- if (e.origin !== botOrigin)
176
- return;
177
- const data = e.data;
178
- if (data?.type === 'ugly-bot-silent-auth') {
179
- finish(typeof data.code === 'string' ? data.code : null);
180
- }
181
- };
182
- window.addEventListener('message', onMessage);
183
- const timer = setTimeout(() => finish(null), 6000);
184
- iframe.src = src;
185
- document.body.appendChild(iframe);
186
- });
187
- }
188
- /**
189
- * Boot-time silent auth + account-sync via the iframe above. One mechanism, three
124
+ * Boot-time silent auth + account-sync via `silentAuthViaIframe`. One mechanism, three
190
125
  * jobs: (1) logged-out → auto-login if a ugly.bot session exists; (2) logged-in,
191
126
  * same account → redeem a fresh code so the session cookie/token stays valid;
192
127
  * (3) logged-in, DIFFERENT ugly.bot account → reload onto the live account (the
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrapApp.js","sourceRoot":"","sources":["../../src/client/bootstrapApp.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAa,MAAM,kBAAkB,CAAC;AAEtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,mBAAmB,EACnB,wBAAwB,EACxB,kBAAkB,GACnB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEpD,OAAO,EAAE,8BAA8B,EAAE,MAAM,8BAA8B,CAAC;AAC9E,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,GAEf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAEvE,oFAAoF;AACpF,SAAS,aAAa;IACpB,MAAM,GAAG,GAAG,qBAAqB,CAAC;IAClC,MAAM,GAAG,GAAG,GAAW,EAAE,CACvB,UAAU,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE;QACjC,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;IACnF,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC3C,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAC;QAC9B,MAAM,EAAE,GAAG,GAAG,EAAE,CAAC;QACjB,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC9B,OAAO,EAAE,CAAC;IACZ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,GAAG,EAAE,CAAC;IACf,CAAC;AACH,CAAC;AAED,iGAAiG;AACjG,SAAS,mBAAmB;IAC1B,MAAM,CAAC,GAAG,cAAc,EAAE,CAAC;IAC3B,OAAO,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AACjE,CAAC;AAED;;oEAEoE;AACpE,KAAK,UAAU,iBAAiB,CAC9B,MAAe,EACf,YAA2B,EAC3B,KAAa;IAEb,IAAI,CAAC,YAAY;QAAE,OAAO;IAC1B,MAAM,UAAU,GAIV,CAAC,EAAE,IAAI,EAAE,+BAA+B,EAAE,CAAC,CAAC;IAClD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,uBAAuB,EAAE;YAC/C,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,eAAe,EAAE,UAAU,KAAK,EAAE;gBAClC,cAAc,EAAE,kBAAkB;aACnC;YACD,IAAI,EAAE,IAAI;SACX,CAAC,CAAC;QACH,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;YACX,iFAAiF;YACjF,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAE7B,CAAC;YACF,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC;YAC5B,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;gBAAE,UAAU,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC;iBAC9C,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;gBAAE,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,wBAAwB;IAC1B,CAAC;IACD,IAAI,CAAC;QACF,UAAuC,CAAC,UAAU,GAAG,kBAAkB,CAAC;YACvE,MAAM,EAAE,iBAAiB,EAAE;YAC3B,MAAM,EAAE,MAAqB;YAC7B,YAAY;YACZ,UAAU;SACX,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,kFAAkF;IACpF,CAAC;AACH,CAAC;AA6DD,MAAM,CAAC,GACL,OAAO,MAAM,KAAK,WAAW;IAC3B,CAAC,CAAE,MAAwD;IAC3D,CAAC,CAAE,EAAyC,CAAC;AAEjD,MAAM,mBAAmB,GAAG,yBAAyB,CAAC;AACtD,gFAAgF;AAChF,+EAA+E;AAC/E,8EAA8E;AAC9E,6EAA6E;AAC7E,kFAAkF;AAClF,8CAA8C;AAC9C,MAAM,iBAAiB,GAAG,4BAA4B,CAAC;AAEvD,SAAS,WAAW,CAAC,KAAa;IAChC,IAAI,CAAC;QACH,OAAO,CACJ,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAsB,CAAC,GAAG;YACrE,IAAI,CACL,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AACD,SAAS,YAAY,CAAC,MAAc;IAClC,IAAI,CAAC;QACH,OAAO,YAAY,CAAC,OAAO,CAAC,GAAG,iBAAiB,IAAI,MAAM,EAAE,CAAC,KAAK,GAAG,CAAC;IACxE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AACD,SAAS,cAAc,CAAC,MAAc;IACpC,IAAI,CAAC;QACH,YAAY,CAAC,OAAO,CAAC,GAAG,iBAAiB,IAAI,MAAM,EAAE,EAAE,GAAG,CAAC,CAAC;IAC9D,CAAC;IAAC,MAAM,CAAC;QACP,gFAAgF;IAClF,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,SAAS,mBAAmB,CAAC,UAAkB;IAC7C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE,CAAC;YACpC,OAAO,CAAC,IAAI,CAAC,CAAC;YACd,OAAO;QACT,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;QACtC,IAAI,SAAiB,CAAC;QACtB,IAAI,CAAC;YACH,SAAS,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC;QACzC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,IAAI,CAAC,CAAC;YACd,OAAO;QACT,CAAC;QACD,MAAM,GAAG,GAAG,GAAG,SAAS,wBAAwB,kBAAkB,CAAC,MAAM,CAAC,cAAc,CAAC;QACzF,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAChD,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;QAC9B,MAAM,CAAC,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;QAC3C,MAAM,CAAC,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QACtC,6EAA6E;QAC7E,gFAAgF;QAChF,kFAAkF;QAClF,kFAAkF;QAClF,oFAAoF;QACpF,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,mBAAmB,EAAE,CAAC;YAChE,IAAI,CAAC;gBACF,MAAiD,CAAC,cAAc;oBAC/D,IAAI,CAAC;YACT,CAAC;YAAC,MAAM,CAAC;gBACP,mBAAmB;YACrB,CAAC;YACD,MAAM,CAAC,YAAY,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;QAC5C,CAAC;QAED,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,MAAM,MAAM,GAAG,CAAC,IAAmB,EAAQ,EAAE;YAC3C,IAAI,OAAO;gBAAE,OAAO;YACpB,OAAO,GAAG,IAAI,CAAC;YACf,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YACjD,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,MAAM,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO,CAAC,IAAI,CAAC,CAAC;QAChB,CAAC,CAAC;QACF,MAAM,SAAS,GAAG,CAAC,CAAe,EAAQ,EAAE;YAC1C,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS;gBAAE,OAAO;YACnC,MAAM,IAAI,GAAG,CAAC,CAAC,IAAsD,CAAC;YACtE,IAAI,IAAI,EAAE,IAAI,KAAK,sBAAsB,EAAE,CAAC;gBAC1C,MAAM,CAAC,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC,CAAC;QACF,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAC9C,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;QACnD,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC;QACjB,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH;;;;;;;;;;;;;;;;;GAiBG;AACH,SAAS,cAAc,CACrB,UAAkB,EAClB,aAA4B,EAC5B,oBAAoB,GAAG,KAAK;IAE5B,IAAI,OAAO,MAAM,KAAK,WAAW;QAAE,OAAO;IAC1C,KAAK,CAAC,KAAK,IAAI,EAAE;QACf,MAAM,IAAI,GAAG,MAAM,mBAAmB,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QACrE,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,0EAA0E;YAC1E,yEAAyE;YACzE,yEAAyE;YACzE,sEAAsE;YACtE,0EAA0E;YAC1E,0EAA0E;YAC1E,wEAAwE;YACxE,qDAAqD;YACrD,yEAAyE;YACzE,sEAAsE;YACtE,wEAAwE;YACxE,mCAAmC;YACnC,IACE,oBAAoB;gBACpB,aAAa,KAAK,IAAI;gBACtB,CAAC,YAAY,CAAC,aAAa,CAAC,EAC5B,CAAC;gBACD,gBAAgB,EAAE,CAAC;YACrB,CAAC;YACD,OAAO;QACT,CAAC;QACD,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,cAAc,EAAE;gBACtC,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;gBAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC;aAC/B,CAAC,CAAC;YACH,IAAI,CAAC,GAAG,CAAC,EAAE;gBAAE,OAAO;YACpB,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAuB,CAAC;YAC3D,IAAI,CAAC,KAAK;gBAAE,OAAO;YACnB,MAAM,UAAU,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;YACtC,wEAAwE;YACxE,mEAAmE;YACnE,IAAI,CAAC,UAAU,IAAI,UAAU,KAAK,aAAa,EAAE,CAAC;gBAChD,IAAI,UAAU;oBAAE,cAAc,CAAC,UAAU,CAAC,CAAC;gBAC3C,OAAO;YACT,CAAC;YAED,0EAA0E;YAC1E,uEAAuE;YACvE,MAAM,QAAQ,GAAG,GAAG,mBAAmB,IAAI,aAAa,IAAI,KAAK,IAAI,UAAU,EAAE,CAAC;YAClF,IAAI,CAAC;gBACH,IAAI,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC;oBAAE,OAAO;gBAC7C,cAAc,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;YACxC,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO;YACT,CAAC;YACD,2EAA2E;YAC3E,2DAA2D;YAC3D,IAAI,aAAa,KAAK,IAAI,EAAE,CAAC;gBAC3B,MAAM,KAAK,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YAClE,CAAC;YACD,mBAAmB,EAAE,CAAC;YACtB,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QAC3B,CAAC;QAAC,MAAM,CAAC;YACP,8CAA8C;QAChD,CAAC;IACH,CAAC,CAAC,EAAE,CAAC;AACP,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,OAA4B;IACvD,4EAA4E;IAC5E,mEAAmE;IACnE,0DAA0D;IAC1D,wBAAwB,EAAE,CAAC;IAC3B,MAAM,EACJ,QAAQ,EAAE,WAAW,EACrB,QAAQ,EAAE,WAAW,GAAG,EAAE,EAC1B,cAAc,EACd,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,OAAO,GAAG,OAAO,EACvB,QAAQ,GAAG,sDAA+B,EAC1C,SAAS,GAAG,MAAM,EAClB,OAAO,EAAE,aAAa,EACtB,QAAQ,EAAE,WAAW,GACtB,GAAG,OAAO,CAAC;IACZ,MAAM,cAAc,GAAG,WAAW,KAAK,KAAK,CAAC;IAE7C,8EAA8E;IAC9E,+EAA+E;IAC/E,6EAA6E;IAC7E,0EAA0E;IAC1E,oDAAoD;IACpD,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,iBAAiB,EAAE,CAAC;IACnE,IAAI,MAAM,EAAE,CAAC;QACX,4DAA4D;QAC5D,IAAI,CAAC;YACH,MAAM,CAAC,GAAG,8BAA8B,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC/D,IAAI,CAAC;gBACF,MAAiD,CAAC,cAAc;oBAC/D,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC;QAChC,CAAC;QAAC,MAAM,CAAC;YACP,YAAY;QACd,CAAC;IACH,CAAC;IAED,2EAA2E;IAC3E,8EAA8E;IAC9E,gFAAgF;IAChF,+EAA+E;IAC/E,yEAAyE;IACzE,qEAAqE;IACrE,IACE,CAAC,MAAM;QACP,OAAO,SAAS,KAAK,WAAW;QAChC,eAAe,IAAI,SAAS,EAC5B,CAAC;QACD,MAAM,UAAU,GAAG,GAAS,EAAE;YAC5B,KAAK,SAAS,CAAC,aAAa;iBACzB,QAAQ,CAAC,kBAAkB,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;iBAC5C,KAAK,CAAC,GAAG,EAAE;gBACV,qDAAqD;YACvD,CAAC,CAAC,CAAC;QACP,CAAC,CAAC;QACF,IAAI,QAAQ,CAAC,UAAU,KAAK,UAAU;YAAE,UAAU,EAAE,CAAC;;YAChD,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,MAAM,MAAM,GACV,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAE,CAAC,CAAC,CAAC,OAAO,CAAC;IAE3E,0EAA0E;IAC1E,4EAA4E;IAC5E,4EAA4E;IAC5E,6BAA6B;IAC7B,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IAC1C,4EAA4E;IAC5E,+EAA+E;IAC/E,IAAI,WAAW;QAAE,kBAAkB,EAAE,CAAC;IAEtC,8EAA8E;IAC9E,2EAA2E;IAC3E,mDAAmD;IACnD,IAAI,SAAS,GAAgB,IAAI,CAAC;IAElC,4EAA4E;IAC5E,SAAS,KAAK,CAAC,IAAkB,EAAE,OAAO,GAAG,KAAK;QAChD,IAAI,SAAS,EAAE,CAAC;YACd,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACvB,OAAO;QACT,CAAC;QACD,IAAI,OAAO,EAAE,CAAC;YACZ,0EAA0E;YAC1E,2EAA2E;YAC3E,SAAS,GAAG,WAAW,CAAC,MAAM,EAAE,IAAI,EAAE;gBACpC,kBAAkB,EAAE,CAAC,GAAG,EAAE,EAAE;oBAC1B,OAAO,CAAC,KAAK,CAAC,oCAAoC,EAAE,GAAG,CAAC,CAAC;gBAC3D,CAAC;aACF,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QACD,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;QAC/B,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAED,uEAAuE;IACvE,sEAAsE;IACtE,iEAAiE;IACjE,uEAAuE;IACvE,iEAAiE;IACjE,IACE,OAAO,MAAM,KAAK,WAAW;QAC7B,MAAM,CAAC,QAAQ,CAAC,QAAQ,KAAK,yBAAyB,EACtD,CAAC;QACD,KAAK,CAAC,KAAC,iBAAiB,KAAG,CAAC,CAAC;QAC7B,OAAO;IACT,CAAC;IAED,8EAA8E;IAC9E,8EAA8E;IAC9E,+EAA+E;IAC/E,sEAAsE;IACtE,8EAA8E;IAC9E,2EAA2E;IAC3E,qEAAqE;IACrE,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;QAClC,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC3D,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAChD,IAAI,SAAS,EAAE,CAAC;YACd,kBAAkB,EAAE,CAAC,CAAC,2CAA2C;YACjE,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;YACjC,MAAM,EAAE,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;YAC7B,MAAM,QAAQ,GACZ,MAAM,CAAC,QAAQ,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;YACzE,8EAA8E;YAC9E,+EAA+E;YAC/E,6EAA6E;YAC7E,+EAA+E;YAC/E,0EAA0E;YAC1E,qEAAqE;YACrE,MAAM,UAAU,GAAG,CAAC,CAAC,gBAAgB,CAAC,CAAC;YACvC,MAAM,WAAW,GAAG,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAChE,IAAI,WAAW,EAAE,CAAC;gBAChB,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC;gBAChD,KAAK,CAAC,KAAK,IAAI,EAAE;oBACf,IAAI,CAAC;wBACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,cAAc,EAAE;4BACtC,MAAM,EAAE,MAAM;4BACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;4BAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;yBAC1C,CAAC,CAAC;wBACH,IAAI,CAAC,GAAG,CAAC,EAAE;4BAAE,OAAO;wBACpB,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAuB,CAAC;wBAC3D,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;wBACrD,IAAI,CAAC,UAAU,IAAI,UAAU,KAAK,WAAW,EAAE,CAAC;4BAC9C,wEAAwE;4BACxE,cAAc,CAAC,WAAW,CAAC,CAAC;4BAC5B,OAAO;wBACT,CAAC;wBACD,yEAAyE;wBACzE,gDAAgD;wBAChD,MAAM,QAAQ,GAAG,GAAG,mBAAmB,IAAI,WAAW,IAAI,UAAU,EAAE,CAAC;wBACvE,IAAI,CAAC;4BACH,IAAI,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC;gCAAE,OAAO;4BAC7C,cAAc,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;wBACxC,CAAC;wBAAC,MAAM,CAAC;4BACP,OAAO;wBACT,CAAC;wBACD,MAAM,KAAK,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;wBAChE,mBAAmB,EAAE,CAAC;wBACtB,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;oBAC3B,CAAC;oBAAC,MAAM,CAAC;wBACP,8CAA8C;oBAChD,CAAC;gBACH,CAAC,CAAC,EAAE,CAAC;gBACL,2EAA2E;YAC7E,CAAC;iBAAM,CAAC;gBACN,4EAA4E;gBAC5E,iCAAiC;gBACjC,6EAA6E;gBAC7E,0EAA0E;gBAC1E,4EAA4E;gBAC5E,2EAA2E;gBAC3E,oEAAoE;gBACpE,qEAAqE;gBACrE,yEAAyE;gBACzE,8EAA8E;gBAC9E,MAAM,YAAY,GAAG,wBAAwB,EAAE,CAAC;gBAChD,KAAK,CAAC,KAAK,IAAI,EAAE;oBACf,IAAI,EAAE,GAAG,KAAK,CAAC;oBACf,IAAI,CAAC;wBACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,cAAc,EAAE;4BACtC,MAAM,EAAE,MAAM;4BACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;4BAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;yBAC1C,CAAC,CAAC;wBACH,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC;oBACd,CAAC;oBAAC,MAAM,CAAC;wBACP,uEAAuE;oBACzE,CAAC;oBACD,IAAI,YAAY,IAAI,EAAE,EAAE,CAAC;wBACvB,kEAAkE;wBAClE,qBAAqB,EAAE,CAAC;wBACxB,uEAAuE;wBACvE,sEAAsE;wBACtE,MAAM,CAAC,KAAK,EAAE,CAAC;oBACjB,CAAC;oBACD,6EAA6E;oBAC7E,yDAAyD;oBACzD,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBACpC,CAAC,CAAC,EAAE,CAAC;gBACL,KAAK,CAAC,mBAAK,CAAC,CAAC;gBACb,OAAO;YACT,CAAC;QACH,CAAC;QACD,4EAA4E;QAC5E,0EAA0E;QAC1E,IAAI,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,MAAM,EAAE,CAAC;YACtC,kBAAkB,EAAE,CAAC;YACrB,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAC1B,MAAM,EAAE,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;YAC7B,MAAM,CAAC,OAAO,CAAC,YAAY,CACzB,IAAI,EACJ,EAAE,EACF,MAAM,CAAC,QAAQ,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CACvE,CAAC;QACJ,CAAC;IACH,CAAC;IAED,8BAA8B,EAAE,CAAC;IACjC,MAAM,YAAY,GAAG,cAAc,EAAE,CAAC;IACtC,gFAAgF;IAChF,oFAAoF;IACpF,oBAAoB,CAAC,YAAY,CAAC,CAAC;IACnC,+EAA+E;IAC/E,oFAAoF;IACpF,iBAAiB,EAAE,CAAC;IACpB,kFAAkF;IAClF,qFAAqF;IACrF,qBAAqB,EAAE,CAAC;IAExB,sCAAsC;IACtC,MAAM,UAAU,GAAG,CAAC,CAAC,kBAAkB,CAAC,IAAI,kBAAkB,CAAC;IAC/D,MAAM,gBAAgB,GAAG,CAAC,CAAC,yBAAyB,CAAC,IAAI,EAAE,CAAC;IAC5D,IAAI,gBAAgB,EAAE,CAAC;QACrB,UAAU,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC,CAAC;IACrE,CAAC;IAED,6EAA6E;IAC7E,2EAA2E;IAC3E,iDAAiD;IACjD,MAAM,KAAK,GAAG,CAAC,CAAC,gBAAgB,CAAC,CAAC;IAElC,+EAA+E;IAC/E,mEAAmE;IACnE,MAAM,UAAU,GAAG;QACjB,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,QAAQ;QAClC,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM;KAC/B,CAAC;IAEF,SAAS,gBAAgB,CACvB,eAAwB,EACxB,QAAsB,EACtB,OAAO,GAAG,KAAK;QAEf,KAAK,CACH,YAAY,CAAC;YACX,cAAc;YACd,MAAM,EAAE,GAAG,EAAE,CAAC,QAAQ;YACtB,eAAe,EAAE,GAAG,EAAE,CAAC,eAAe;YACtC,QAAQ,EAAE,cAAc;YACxB,QAAQ;YACR,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACpD,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACvC,CAAC,EACF,OAAO,CACR,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,SAAS,qBAAqB,CAAC,SAAiB;QAC9C,MAAM,MAAM,GACV,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC,CAC1C,CAAC,GAAG,CAAC;QACN,mFAAmF;QACnF,gFAAgF;QAChF,qFAAqF;QACrF,iFAAiF;QACjF,mFAAmF;QACnF,qFAAqF;QACrF,MAAM,QAAQ,GAAG,mBAAmB,EAAE,CAAC;QACvC,MAAM,MAAM,GAAG,YAAY,CAAC;YAC1B,QAAQ,EAAE,EAAE,GAAG,iBAAiB,EAAE,GAAG,WAAW,EAAE;YAClD,QAAQ,EAAE,EAAE,GAAG,iBAAiB,EAAE,GAAG,WAAW,EAAE;YAClD,GAAG,EAAE,SAAS;YACd,2EAA2E;YAC3E,wEAAwE;YACxE,0EAA0E;YAC1E,0BAA0B,EAAE,QAAQ,KAAK,IAAI;YAC7C,YAAY,EAAE,GAAG,EAAE,CAAC,CAAC;gBACnB,KAAK,EAAE,SAAS;gBAChB,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC5C,CAAC;SACH,CAAC,CAAC;QAEH,8EAA8E;QAC9E,0EAA0E;QAC1E,6EAA6E;QAC7E,6EAA6E;QAC7E,6EAA6E;QAC7E,yEAAyE;QACzE,6EAA6E;QAC7E,qDAAqD;QACrD,IAAI,eAAe,GAAG,KAAK,CAAC;QAC5B,MAAM,CAAC,gBAAgB,CAAC,aAAa,EAAE,GAAG,EAAE;YAC1C,IAAI,eAAe;gBAAE,OAAO;YAC5B,eAAe,GAAG,IAAI,CAAC;YACvB,wEAAwE;YACxE,oDAAoD;YACpD,mBAAmB,EAAE,CAAC;YACtB,mBAAmB,EAAE,CAAC;YACtB,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QAC3B,CAAC,CAAC,CAAC;QAEH,MAAM;aACH,OAAO,CAAC,SAAS,CAAC;aAClB,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;YACpC,uEAAuE;YACvE,qEAAqE;YACrE,iEAAiE;YACjE,sEAAsE;YACtE,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YACnC,uEAAuE;YACvE,sEAAsE;YACtE,sEAAsE;YACtE,8DAA8D;YAC9D,YAAY,CAAC,MAAM,CAAC,CAAC;YACrB,4EAA4E;YAC5E,qEAAqE;YACrE,iBAAiB,CACf,MAAuE,EACvE,MAAM,CACP,CAAC;YACF,6EAA6E;YAC7E,KAAK,iBAAiB,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;YACpD,yDAAyD;YACzD,0DAA0D;YAC1D,uDAAuD;YACvD,0DAA0D;YAC1D,2DAA2D;YAC3D,2DAA2D;YAC3D,6DAA6D;YAC7D,MAAM,iBAAiB,GAAG,QAAQ,IAAI,SAAS,CAAC;YAChD,MAAM,aAAa,GAAG,iBAAiB;gBACrC,CAAC,CAAC,mBAAmB,CAAC,iBAAiB,EAAE,UAAU,CAAC;gBACpD,CAAC,CAAC,IAAI,CAAC;YACT,gBAAgB,CACd,IAAI,EACJ,KAAC,WAAW,IACV,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,aAAa,EAC5B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,IAAI,EACV,aAAa,EAAE,OAAO,CAAC,aAAa,IAAI,IAAI,YAE3C,SAAS,EAAE,GACA,CACf,CAAC;YACF,2EAA2E;YAC3E,wEAAwE;YACxE,0EAA0E;YAC1E,6EAA6E;YAC7E,0EAA0E;YAC1E,IAAI,CAAC,MAAM;gBACT,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,SAAS,IAAI,KAAK,CAAC,CAAC;QACnE,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;YACtB,wEAAwE;YACxE,uEAAuE;YACvE,sEAAsE;YACtE,uEAAuE;YACvE,sEAAsE;YACtE,sEAAsE;YACtE,sEAAsE;YACtE,wBAAwB;YACxB,EAAE;YACF,wEAAwE;YACxE,sEAAsE;YACtE,2DAA2D;YAC3D,IAAI,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC;gBACzB,OAAO,CAAC,KAAK,CACX,2EAA2E,EAC3E,GAAG,CACJ,CAAC;gBACF,QAAQ,CAAC,MAAM;oBACb,4DAA4D,CAAC;YACjE,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,IAAI,CACV,yEAAyE,EACzE,GAAG,CACJ,CAAC;YACJ,CAAC;YACD,gBAAgB,CAAC,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;IACP,CAAC;IAED,+EAA+E;IAC/E,8EAA8E;IAC9E,4EAA4E;IAC5E,kFAAkF;IAClF,gFAAgF;IAChF,8EAA8E;IAC9E,6EAA6E;IAC7E,sEAAsE;IACtE,IAAI,WAAW,IAAI,CAAC,KAAK,EAAE,CAAC;QAC1B,gBAAgB,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;QACzD,KAAK,CAAC,KAAK,IAAI,EAAE;YACf,IAAI,YAAY,GAAkB,IAAI,CAAC;YACvC,IAAI,CAAC;gBACH,sEAAsE;gBACtE,mEAAmE;gBACnE,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,qBAAqB,EAAE;oBAC7C,WAAW,EAAE,SAAS;iBACvB,CAAC,CAAC;gBACH,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;oBACX,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAuB,CAAC;oBACtD,YAAY,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC;gBACpC,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,oEAAoE;YACtE,CAAC;YACD,IAAI,YAAY,EAAE,CAAC;gBACjB,qBAAqB,CAAC,YAAY,CAAC,CAAC;gBACpC,OAAO;YACT,CAAC;YACD,0EAA0E;YAC1E,0EAA0E;YAC1E,IAAI,CAAC,MAAM;gBAAE,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QAChD,CAAC,CAAC,EAAE,CAAC;QACL,OAAO;IACT,CAAC;IAED,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,sEAAsE;QACtE,6EAA6E;QAC7E,6EAA6E;QAC7E,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,SAAS,IAAI,gBAAgB,EAAE,EAAE,CAAC;YACvD,KAAK,CAAC,mBAAK,CAAC,CAAC;YACb,OAAO;QACT,CAAC;QACD,gBAAgB,CAAC,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QACrC,2EAA2E;QAC3E,8EAA8E;QAC9E,4EAA4E;QAC5E,4EAA4E;QAC5E,6EAA6E;QAC7E,0EAA0E;QAC1E,IAAI,CAAC,MAAM;YAAE,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QAC9C,OAAO;IACT,CAAC;IAED,qBAAqB,CAAC,KAAK,CAAC,CAAC;AAC/B,CAAC"}
1
+ {"version":3,"file":"bootstrapApp.js","sourceRoot":"","sources":["../../src/client/bootstrapApp.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "ugly-app",
3
3
  "packageManager": "pnpm@10.34.5",
4
- "version": "0.1.1068",
4
+ "version": "0.1.1069",
5
5
  "type": "module",
6
6
  "comment:files": "Allowlist what ships to npm. dist = runtime; src = sourcemap targets (dist/*.js.map reference ../../src/); templates = CLI scaffold. Everything else at repo root (.pgdata local Postgres, coverage, assets/icons sources, test/, test-results/) is excluded by omission. The !negations strip the scaffold's installed deps + cruft (templates/node_modules is 200MB+ and must never ship). package.json/README/LICENSE ship automatically.",
7
7
  "files": [
@@ -1,2 +1,2 @@
1
1
  // Auto-generated by prebuild — do not edit manually
2
- export const CLI_VERSION = "0.1.1068";
2
+ export const CLI_VERSION = "0.1.1069";
@@ -0,0 +1,82 @@
1
+ import { describe, it, expect, beforeEach, afterEach, vi } from 'vitest';
2
+
3
+ interface FakeIframe {
4
+ style: Record<string, string>;
5
+ attrs: Record<string, string>;
6
+ credentialless?: boolean;
7
+ src: string;
8
+ setAttribute(k: string, v: string): void;
9
+ remove: ReturnType<typeof vi.fn>;
10
+ }
11
+
12
+ describe('silentAuthViaIframe', () => {
13
+ let listeners: ((e: MessageEvent) => void)[];
14
+ let appended: FakeIframe[];
15
+
16
+ beforeEach(() => {
17
+ vi.resetModules();
18
+ listeners = [];
19
+ appended = [];
20
+ vi.stubGlobal('window', {
21
+ location: { origin: 'https://love.ugly.bot' },
22
+ // The framework default: every app is cross-origin isolated.
23
+ crossOriginIsolated: true,
24
+ addEventListener: (_t: string, fn: (e: MessageEvent) => void) =>
25
+ listeners.push(fn),
26
+ removeEventListener: (_t: string, fn: (e: MessageEvent) => void) => {
27
+ listeners = listeners.filter((l) => l !== fn);
28
+ },
29
+ });
30
+ vi.stubGlobal('document', {
31
+ createElement: (): FakeIframe => {
32
+ const f: FakeIframe = {
33
+ style: {},
34
+ attrs: {},
35
+ src: '',
36
+ setAttribute(k, v) {
37
+ this.attrs[k] = v;
38
+ },
39
+ remove: vi.fn(),
40
+ };
41
+ return f;
42
+ },
43
+ body: { appendChild: (f: FakeIframe) => appended.push(f) },
44
+ });
45
+ });
46
+ afterEach(() => vi.unstubAllGlobals());
47
+
48
+ it('loads the ugly.bot frame WITH credentials on a cross-origin-isolated page', async () => {
49
+ const { silentAuthViaIframe } = await import('./silentAuthIframe');
50
+ const p = silentAuthViaIframe('https://ugly.bot');
51
+ const frame = appended[0]!;
52
+ expect(frame.src).toBe(
53
+ 'https://ugly.bot/oauth/silent?origin=https%3A%2F%2Flove.ugly.bot&mode=iframe',
54
+ );
55
+ // A credentialless frame never carries the ugly.bot cookie, so silent SSO
56
+ // always came back anonymous on COI apps (feedback ce9498b2).
57
+ expect(frame.credentialless).toBeUndefined();
58
+ expect(frame.attrs.credentialless).toBeUndefined();
59
+
60
+ for (const l of listeners)
61
+ l({
62
+ origin: 'https://ugly.bot',
63
+ data: { type: 'ugly-bot-silent-auth', code: 'abc' },
64
+ } as MessageEvent);
65
+ await expect(p).resolves.toBe('abc');
66
+ expect(frame.remove).toHaveBeenCalled();
67
+ });
68
+
69
+ it('ignores messages from other origins and times out to null', async () => {
70
+ vi.useFakeTimers();
71
+ const { silentAuthViaIframe } = await import('./silentAuthIframe');
72
+ const p = silentAuthViaIframe('https://ugly.bot', 100);
73
+ for (const l of listeners)
74
+ l({
75
+ origin: 'https://evil.example',
76
+ data: { type: 'ugly-bot-silent-auth', code: 'x' },
77
+ } as MessageEvent);
78
+ vi.advanceTimersByTime(150);
79
+ await expect(p).resolves.toBeNull();
80
+ vi.useRealTimers();
81
+ });
82
+ });
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Load ugly.bot's silent-auth endpoint in a hidden iframe and resolve with the
3
+ * one-time code it postMessages back (or null if there's no ugly.bot session, or
4
+ * on timeout). This is the SAME mechanism as auto-login (a same-site iframe that
5
+ * reads the live ugly.bot cookie), repurposed so it ALSO serves as the
6
+ * keep-the-token-fresh / account-sync check on every boot.
7
+ *
8
+ * Cross-origin-isolated apps (COEP `require-corp`, the framework default): the
9
+ * iframe must load WITH credentials. ugly.bot's `/oauth/silent?mode=iframe`
10
+ * asserts its own `Cross-Origin-Embedder-Policy: require-corp` +
11
+ * `Cross-Origin-Resource-Policy: cross-origin`, so it embeds under a
12
+ * require-corp parent as an ordinary iframe on every engine. Do NOT mark it
13
+ * `credentialless`: that attribute dates from when the framework stamped COEP
14
+ * `credentialless`, and it strips the ugly.bot cookie, so the endpoint always
15
+ * answered "no session" and no COI app (love, ink, search, fit, ...) could
16
+ * auto-login from an existing ugly.bot session (feedback ce9498b2).
17
+ */
18
+ export function silentAuthViaIframe(
19
+ uglyBotUrl: string,
20
+ timeoutMs = 6000,
21
+ ): Promise<string | null> {
22
+ return new Promise((resolve) => {
23
+ if (typeof document === 'undefined') {
24
+ resolve(null);
25
+ return;
26
+ }
27
+ const origin = window.location.origin;
28
+ let botOrigin: string;
29
+ try {
30
+ botOrigin = new URL(uglyBotUrl).origin;
31
+ } catch {
32
+ resolve(null);
33
+ return;
34
+ }
35
+ const src = `${botOrigin}/oauth/silent?origin=${encodeURIComponent(origin)}&mode=iframe`;
36
+ const iframe = document.createElement('iframe');
37
+ iframe.style.display = 'none';
38
+ iframe.setAttribute('aria-hidden', 'true');
39
+ iframe.setAttribute('tabindex', '-1');
40
+
41
+ let settled = false;
42
+ const finish = (code: string | null): void => {
43
+ if (settled) return;
44
+ settled = true;
45
+ window.removeEventListener('message', onMessage);
46
+ clearTimeout(timer);
47
+ iframe.remove();
48
+ resolve(code);
49
+ };
50
+ const onMessage = (e: MessageEvent): void => {
51
+ if (e.origin !== botOrigin) return;
52
+ const data = e.data as { type?: string; code?: string | null } | null;
53
+ if (data?.type === 'ugly-bot-silent-auth') {
54
+ finish(typeof data.code === 'string' ? data.code : null);
55
+ }
56
+ };
57
+ window.addEventListener('message', onMessage);
58
+ const timer = setTimeout(() => finish(null), timeoutMs);
59
+ iframe.src = src;
60
+ document.body.appendChild(iframe);
61
+ });
62
+ }
@@ -25,6 +25,7 @@ import { type StringsProviderConfig } from './StringsProvider.js';
25
25
  import { installUglyStudioPreviewBridge } from './uglyStudioPreviewBridge.js';
26
26
  import { installFeedbackBridge } from './feedbackBridge.js';
27
27
  import { createUglyBotSocket } from './uglyBotSocket.js';
28
+ import { silentAuthViaIframe } from './auth/silentAuthIframe.js';
28
29
  import { attachDebugStream } from './debugStreamClient.js';
29
30
  import {
30
31
  installProxyClient,
@@ -203,71 +204,7 @@ function markReconciled(userId: string): void {
203
204
  }
204
205
 
205
206
  /**
206
- * Load ugly.bot's silent-auth endpoint in a hidden iframe and resolve with the
207
- * one-time code it postMessages back (or null if there's no ugly.bot session, or
208
- * on timeout). This is the SAME mechanism as auto-login — a same-site iframe that
209
- * reads the live ugly.bot cookie — repurposed here so it ALSO serves as the
210
- * keep-the-token-fresh / account-sync check on every boot.
211
- */
212
- function silentAuthViaIframe(uglyBotUrl: string): Promise<string | null> {
213
- return new Promise((resolve) => {
214
- if (typeof document === 'undefined') {
215
- resolve(null);
216
- return;
217
- }
218
- const origin = window.location.origin;
219
- let botOrigin: string;
220
- try {
221
- botOrigin = new URL(uglyBotUrl).origin;
222
- } catch {
223
- resolve(null);
224
- return;
225
- }
226
- const src = `${botOrigin}/oauth/silent?origin=${encodeURIComponent(origin)}&mode=iframe`;
227
- const iframe = document.createElement('iframe');
228
- iframe.style.display = 'none';
229
- iframe.setAttribute('aria-hidden', 'true');
230
- iframe.setAttribute('tabindex', '-1');
231
- // A cross-origin-isolated page stamps COEP, which otherwise HARD-BLOCKS this
232
- // cross-origin auth iframe (silent SSO) — failing every authed RPC. Marking the
233
- // iframe `credentialless` lets it load under COEP credentialless instead of being
234
- // blocked. It loads without third-party cookies, so silent SSO resolves anonymous
235
- // (fine for public/COI apps) rather than the whole app breaking on a blocked frame.
236
- if (typeof window !== 'undefined' && window.crossOriginIsolated) {
237
- try {
238
- (iframe as unknown as { credentialless: boolean }).credentialless =
239
- true;
240
- } catch {
241
- /* older engines */
242
- }
243
- iframe.setAttribute('credentialless', '');
244
- }
245
-
246
- let settled = false;
247
- const finish = (code: string | null): void => {
248
- if (settled) return;
249
- settled = true;
250
- window.removeEventListener('message', onMessage);
251
- clearTimeout(timer);
252
- iframe.remove();
253
- resolve(code);
254
- };
255
- const onMessage = (e: MessageEvent): void => {
256
- if (e.origin !== botOrigin) return;
257
- const data = e.data as { type?: string; code?: string | null } | null;
258
- if (data?.type === 'ugly-bot-silent-auth') {
259
- finish(typeof data.code === 'string' ? data.code : null);
260
- }
261
- };
262
- window.addEventListener('message', onMessage);
263
- const timer = setTimeout(() => finish(null), 6000);
264
- iframe.src = src;
265
- document.body.appendChild(iframe);
266
- });
267
- }
268
-
269
- /**
270
- * Boot-time silent auth + account-sync via the iframe above. One mechanism, three
207
+ * Boot-time silent auth + account-sync via `silentAuthViaIframe`. One mechanism, three
271
208
  * jobs: (1) logged-out → auto-login if a ugly.bot session exists; (2) logged-in,
272
209
  * same account → redeem a fresh code so the session cookie/token stays valid;
273
210
  * (3) logged-in, DIFFERENT ugly.bot account → reload onto the live account (the