@inquir/compute-cli 0.2.2 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (119) hide show
  1. package/README.md +228 -21
  2. package/dist/commands/admin-tenants.d.ts +11 -0
  3. package/dist/commands/admin-tenants.d.ts.map +1 -0
  4. package/dist/commands/admin-tenants.js +318 -0
  5. package/dist/commands/admin-tenants.js.map +1 -0
  6. package/dist/commands/admin.d.ts +2 -0
  7. package/dist/commands/admin.d.ts.map +1 -0
  8. package/dist/commands/admin.js +445 -0
  9. package/dist/commands/admin.js.map +1 -0
  10. package/dist/commands/apps-describe.d.ts +9 -0
  11. package/dist/commands/apps-describe.d.ts.map +1 -0
  12. package/dist/commands/apps-describe.js +118 -0
  13. package/dist/commands/apps-describe.js.map +1 -0
  14. package/dist/commands/apps-observability.d.ts +9 -0
  15. package/dist/commands/apps-observability.d.ts.map +1 -0
  16. package/dist/commands/apps-observability.js +281 -0
  17. package/dist/commands/apps-observability.js.map +1 -0
  18. package/dist/commands/apps-promote.d.ts +31 -0
  19. package/dist/commands/apps-promote.d.ts.map +1 -0
  20. package/dist/commands/apps-promote.js +115 -0
  21. package/dist/commands/apps-promote.js.map +1 -0
  22. package/dist/commands/apps-resources.d.ts +6 -0
  23. package/dist/commands/apps-resources.d.ts.map +1 -0
  24. package/dist/commands/apps-resources.js +107 -0
  25. package/dist/commands/apps-resources.js.map +1 -0
  26. package/dist/commands/apps.d.ts +65 -5
  27. package/dist/commands/apps.d.ts.map +1 -1
  28. package/dist/commands/apps.js +1293 -89
  29. package/dist/commands/apps.js.map +1 -1
  30. package/dist/commands/config.d.ts.map +1 -1
  31. package/dist/commands/config.js +7 -3
  32. package/dist/commands/config.js.map +1 -1
  33. package/dist/commands/delete.d.ts.map +1 -1
  34. package/dist/commands/delete.js +10 -2
  35. package/dist/commands/delete.js.map +1 -1
  36. package/dist/commands/deploy.d.ts +38 -0
  37. package/dist/commands/deploy.d.ts.map +1 -1
  38. package/dist/commands/deploy.js +165 -12
  39. package/dist/commands/deploy.js.map +1 -1
  40. package/dist/commands/doctor.js +2 -2
  41. package/dist/commands/init.d.ts.map +1 -1
  42. package/dist/commands/init.js +3 -0
  43. package/dist/commands/init.js.map +1 -1
  44. package/dist/commands/login.d.ts.map +1 -1
  45. package/dist/commands/login.js +96 -20
  46. package/dist/commands/login.js.map +1 -1
  47. package/dist/commands/logout.d.ts.map +1 -1
  48. package/dist/commands/logout.js +37 -5
  49. package/dist/commands/logout.js.map +1 -1
  50. package/dist/commands/mcp.d.ts +13 -0
  51. package/dist/commands/mcp.d.ts.map +1 -1
  52. package/dist/commands/mcp.js +184 -77
  53. package/dist/commands/mcp.js.map +1 -1
  54. package/dist/commands/projects.d.ts +2 -0
  55. package/dist/commands/projects.d.ts.map +1 -0
  56. package/dist/commands/projects.js +194 -0
  57. package/dist/commands/projects.js.map +1 -0
  58. package/dist/index.js +11 -0
  59. package/dist/index.js.map +1 -1
  60. package/dist/lib/finite-source-command-client.d.ts +3 -0
  61. package/dist/lib/finite-source-command-client.d.ts.map +1 -0
  62. package/dist/lib/finite-source-command-client.js +3 -0
  63. package/dist/lib/finite-source-command-client.js.map +1 -0
  64. package/dist/lib/mcp-io.d.ts +23 -0
  65. package/dist/lib/mcp-io.d.ts.map +1 -0
  66. package/dist/lib/mcp-io.js +185 -0
  67. package/dist/lib/mcp-io.js.map +1 -0
  68. package/dist/lib/mcp-source-commands.d.ts +17 -0
  69. package/dist/lib/mcp-source-commands.d.ts.map +1 -0
  70. package/dist/lib/mcp-source-commands.js +345 -0
  71. package/dist/lib/mcp-source-commands.js.map +1 -0
  72. package/dist/utils/api.d.ts +58 -8
  73. package/dist/utils/api.d.ts.map +1 -1
  74. package/dist/utils/api.js +86 -7
  75. package/dist/utils/api.js.map +1 -1
  76. package/dist/utils/apps-presentation.d.ts +11 -1
  77. package/dist/utils/apps-presentation.d.ts.map +1 -1
  78. package/dist/utils/apps-presentation.js +37 -0
  79. package/dist/utils/apps-presentation.js.map +1 -1
  80. package/dist/utils/args.d.ts.map +1 -1
  81. package/dist/utils/args.js +8 -1
  82. package/dist/utils/args.js.map +1 -1
  83. package/dist/utils/assets.d.ts +48 -1
  84. package/dist/utils/assets.d.ts.map +1 -1
  85. package/dist/utils/assets.js +185 -7
  86. package/dist/utils/assets.js.map +1 -1
  87. package/dist/utils/auth.d.ts +29 -2
  88. package/dist/utils/auth.d.ts.map +1 -1
  89. package/dist/utils/auth.js +164 -27
  90. package/dist/utils/auth.js.map +1 -1
  91. package/dist/utils/browser.d.ts +12 -0
  92. package/dist/utils/browser.d.ts.map +1 -1
  93. package/dist/utils/browser.js +37 -16
  94. package/dist/utils/browser.js.map +1 -1
  95. package/dist/utils/context.d.ts.map +1 -1
  96. package/dist/utils/context.js +2 -0
  97. package/dist/utils/context.js.map +1 -1
  98. package/dist/utils/deploy-follow.d.ts +4 -3
  99. package/dist/utils/deploy-follow.d.ts.map +1 -1
  100. package/dist/utils/deploy-follow.js +76 -17
  101. package/dist/utils/deploy-follow.js.map +1 -1
  102. package/dist/utils/detect.d.ts +49 -1
  103. package/dist/utils/detect.d.ts.map +1 -1
  104. package/dist/utils/detect.js +153 -12
  105. package/dist/utils/detect.js.map +1 -1
  106. package/dist/utils/ensure-auth.d.ts.map +1 -1
  107. package/dist/utils/ensure-auth.js +6 -2
  108. package/dist/utils/ensure-auth.js.map +1 -1
  109. package/dist/utils/package-metadata.js +1 -1
  110. package/dist/utils/project-context.d.ts +17 -0
  111. package/dist/utils/project-context.d.ts.map +1 -0
  112. package/dist/utils/project-context.js +96 -0
  113. package/dist/utils/project-context.js.map +1 -0
  114. package/dist/utils/project-lookup.d.ts +10 -0
  115. package/dist/utils/project-lookup.d.ts.map +1 -0
  116. package/dist/utils/project-lookup.js +52 -0
  117. package/dist/utils/project-lookup.js.map +1 -0
  118. package/package.json +7 -4
  119. package/skill/SKILL.md +15 -2
@@ -1,4 +1,36 @@
1
1
  import { spawn } from 'node:child_process';
2
+ /**
3
+ * Only absolute http(s) URLs are ever handed to a launcher. The URL can come
4
+ * from the server (device-login verification URL), so anything else — other
5
+ * schemes, option-looking strings, or text with shell metacharacters that
6
+ * would not survive URL parsing — is refused.
7
+ */
8
+ export function browserLaunchUrl(url) {
9
+ let parsed;
10
+ try {
11
+ parsed = new URL(url);
12
+ }
13
+ catch {
14
+ return null;
15
+ }
16
+ if (parsed.protocol !== 'http:' && parsed.protocol !== 'https:') {
17
+ return null;
18
+ }
19
+ return parsed.href;
20
+ }
21
+ /** Launcher command for the platform. No shell is involved on any platform. */
22
+ export function browserLaunchCommand(href, platform = process.platform) {
23
+ if (platform === 'win32') {
24
+ // Not `cmd /c start`: cmd re-parses the URL, so `&` splits it (dropping
25
+ // query parameters) and lets a crafted URL run commands. The URL protocol
26
+ // handler receives the URL as a single argument instead.
27
+ return { command: 'rundll32', args: ['url.dll,FileProtocolHandler', href] };
28
+ }
29
+ if (platform === 'darwin') {
30
+ return { command: 'open', args: [href] };
31
+ }
32
+ return { command: 'xdg-open', args: [href] };
33
+ }
2
34
  /**
3
35
  * Best-effort open of a URL in the user's default browser. Resolves to `true`
4
36
  * if a launcher process was spawned, `false` otherwise (caller should then print
@@ -6,23 +38,12 @@ import { spawn } from 'node:child_process';
6
38
  */
7
39
  export function openBrowser(url) {
8
40
  try {
9
- const platform = process.platform;
10
- let command;
11
- let args;
12
- if (platform === 'win32') {
13
- // `start` is a cmd builtin; the empty "" is the window title argument.
14
- command = 'cmd';
15
- args = ['/c', 'start', '', url];
16
- }
17
- else if (platform === 'darwin') {
18
- command = 'open';
19
- args = [url];
20
- }
21
- else {
22
- command = 'xdg-open';
23
- args = [url];
41
+ const href = browserLaunchUrl(url);
42
+ if (!href) {
43
+ return false;
24
44
  }
25
- const child = spawn(command, args, { stdio: 'ignore', detached: true });
45
+ const { command, args } = browserLaunchCommand(href);
46
+ const child = spawn(command, args, { stdio: 'ignore', detached: true, shell: false, windowsHide: true });
26
47
  child.on('error', () => undefined);
27
48
  child.unref();
28
49
  return true;
@@ -1 +1 @@
1
- {"version":3,"file":"browser.js","sourceRoot":"","sources":["../../src/utils/browser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,GAAW;IACrC,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QAClC,IAAI,OAAe,CAAC;QACpB,IAAI,IAAc,CAAC;QAEnB,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;YACzB,uEAAuE;YACvE,OAAO,GAAG,KAAK,CAAC;YAChB,IAAI,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;QAClC,CAAC;aAAM,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACjC,OAAO,GAAG,MAAM,CAAC;YACjB,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QACf,CAAC;aAAM,CAAC;YACN,OAAO,GAAG,UAAU,CAAC;YACrB,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QACf,CAAC;QAED,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QACxE,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QACnC,KAAK,CAAC,KAAK,EAAE,CAAC;QACd,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"browser.js","sourceRoot":"","sources":["../../src/utils/browser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,GAAW;IAC1C,IAAI,MAAW,CAAC;IAChB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;IACxB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,MAAM,CAAC,QAAQ,KAAK,OAAO,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAChE,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,oBAAoB,CAClC,IAAY,EACZ,WAA4B,OAAO,CAAC,QAAQ;IAE5C,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QACzB,wEAAwE;QACxE,0EAA0E;QAC1E,yDAAyD;QACzD,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,6BAA6B,EAAE,IAAI,CAAC,EAAE,CAAC;IAC9E,CAAC;IACD,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;IAC3C,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;AAC/C,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,GAAW;IACrC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;QACrD,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;QACzG,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QACnC,KAAK,CAAC,KAAK,EAAE,CAAC;QACd,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/utils/context.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAElD,sEAAsE;AACtE,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;IACf,GAAG,EAAE,OAAO,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAUD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,YAAY,CA8BxD;AAED,wBAAgB,OAAO,IAAI,YAAY,CAEtC;AAED,iBAAiB;AACjB,wBAAgB,YAAY,IAAI,IAAI,CAEnC;AAYD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,iBAAiB,CAWjE"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/utils/context.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAElD,sEAAsE;AACtE,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;IACf,GAAG,EAAE,OAAO,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAUD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,YAAY,CAgCxD;AAED,wBAAgB,OAAO,IAAI,YAAY,CAEtC;AAED,iBAAiB;AACjB,wBAAgB,YAAY,IAAI,IAAI,CAEnC;AAYD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,iBAAiB,CAWjE"}
@@ -15,6 +15,8 @@ let current = {
15
15
  */
16
16
  export function initRuntime(argv) {
17
17
  const json = hasFlag(argv, '--json');
18
+ // Preserve the requested error format even if validation of a later flag fails.
19
+ current = { ...current, json };
18
20
  const flags = {
19
21
  json,
20
22
  debug: hasFlag(argv, '--debug') || process.env.INQUIR_DEBUG === '1',
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/utils/context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/utils/context.ts"],"names":[],"mappings":"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"}
@@ -12,12 +12,13 @@ export interface FollowDeployOptions {
12
12
  json?: boolean;
13
13
  ci?: boolean;
14
14
  noLogs?: boolean;
15
- /** Max time to wait for a terminal status when polling (ms). */
15
+ /** Max time to observe a terminal status, including open log/status requests (ms). */
16
16
  timeoutMs?: number;
17
17
  }
18
18
  /**
19
- * Stream a deploy's logs to stdout, then resolve with the terminal deploy
20
- * record. Falls back to status polling if the SSE stream is unavailable.
19
+ * Observe status independently of the best-effort log connection: a proxy may
20
+ * keep SSE open after the deploy finishes, or lose the terminal frame entirely.
21
+ * A single deadline bounds both channels and aborts their in-flight requests.
21
22
  */
22
23
  export declare function followDeploy(deployId: string, apiOptions: ApiRequestOptions, opts?: FollowDeployOptions): Promise<DeployRecord>;
23
24
  //# sourceMappingURL=deploy-follow.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"deploy-follow.d.ts","sourceRoot":"","sources":["../../src/utils/deploy-follow.ts"],"names":[],"mappings":"AACA,OAAO,EAAqC,KAAK,iBAAiB,EAAE,MAAM,UAAU,CAAC;AACrF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAI7C,MAAM,WAAW,gBAAgB;IAC/B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,4EAA4E;AAC5E,wBAAgB,iBAAiB,IAAI,gBAAgB,GAAG,SAAS,CAShE;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,gEAAgE;IAChE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAqBD;;;GAGG;AACH,wBAAsB,YAAY,CAChC,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,iBAAiB,EAC7B,IAAI,GAAE,mBAAwB,GAC7B,OAAO,CAAC,YAAY,CAAC,CAuBvB"}
1
+ {"version":3,"file":"deploy-follow.d.ts","sourceRoot":"","sources":["../../src/utils/deploy-follow.ts"],"names":[],"mappings":"AACA,OAAO,EAAqC,KAAK,iBAAiB,EAAE,MAAM,UAAU,CAAC;AACrF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAK7C,MAAM,WAAW,gBAAgB;IAC/B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,4EAA4E;AAC5E,wBAAgB,iBAAiB,IAAI,gBAAgB,GAAG,SAAS,CAShE;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,sFAAsF;IACtF,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAgCD;;;;GAIG;AACH,wBAAsB,YAAY,CAChC,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,iBAAiB,EAC7B,IAAI,GAAE,mBAAwB,GAC7B,OAAO,CAAC,YAAY,CAAC,CAkEvB"}
@@ -1,5 +1,6 @@
1
1
  import { isTerminalDeployStatus } from '../sdk.js';
2
2
  import { getDeployStatus, streamDeployLogs } from './api.js';
3
+ import { CliError, ExitCode } from './errors.js';
3
4
  import { dim, printLine } from './output.js';
4
5
  import { redact } from './redact.js';
5
6
  /** Best-effort git/CI context from GitHub Actions environment variables. */
@@ -13,30 +14,63 @@ export function collectGitContext() {
13
14
  };
14
15
  return git.sha || git.ref || git.repo || git.actor ? git : undefined;
15
16
  }
16
- function sleep(ms) {
17
- return new Promise((resolve) => setTimeout(resolve, ms));
17
+ function sleep(ms, signal) {
18
+ signal.throwIfAborted();
19
+ return new Promise((resolve, reject) => {
20
+ const onAbort = () => {
21
+ clearTimeout(timer);
22
+ signal.removeEventListener('abort', onAbort);
23
+ reject(signal.reason);
24
+ };
25
+ const timer = setTimeout(() => {
26
+ signal.removeEventListener('abort', onAbort);
27
+ resolve();
28
+ }, ms);
29
+ signal.addEventListener('abort', onAbort, { once: true });
30
+ });
18
31
  }
19
- async function pollUntilTerminal(deployId, apiOptions, timeoutMs) {
20
- const deadline = Date.now() + timeoutMs;
21
- let last;
32
+ async function pollUntilTerminal(deployId, apiOptions, signal) {
22
33
  for (;;) {
23
- last = await getDeployStatus(deployId, apiOptions);
24
- if (isTerminalDeployStatus(last.status))
25
- return last;
26
- if (Date.now() > deadline)
27
- return last;
28
- await sleep(1000);
34
+ signal.throwIfAborted();
35
+ const deploy = await getDeployStatus(deployId, apiOptions, signal);
36
+ signal.throwIfAborted();
37
+ if (isTerminalDeployStatus(deploy.status))
38
+ return deploy;
39
+ await sleep(1000, signal);
29
40
  }
30
41
  }
31
42
  /**
32
- * Stream a deploy's logs to stdout, then resolve with the terminal deploy
33
- * record. Falls back to status polling if the SSE stream is unavailable.
43
+ * Observe status independently of the best-effort log connection: a proxy may
44
+ * keep SSE open after the deploy finishes, or lose the terminal frame entirely.
45
+ * A single deadline bounds both channels and aborts their in-flight requests.
34
46
  */
35
47
  export async function followDeploy(deployId, apiOptions, opts = {}) {
36
48
  const timeoutMs = opts.timeoutMs ?? 10 * 60_000;
37
- if (!opts.noLogs) {
49
+ const deadline = Date.now() + timeoutMs;
50
+ const controller = new AbortController();
51
+ const timeoutError = new CliError(`Deploy ${deployId} did not finish within ${Math.round(timeoutMs / 1000)}s`, {
52
+ code: 'DEPLOY_TIMEOUT',
53
+ exitCode: ExitCode.ERROR,
54
+ explanation: `The CLI stopped waiting for deploy ${deployId}; it has not cancelled the remote deploy. Check its status before retrying.`,
55
+ fix: 'Use `inquir deploys <function>` to inspect the existing deploy.',
56
+ });
57
+ let deadlineTimer;
58
+ const expired = new Promise((_, reject) => {
59
+ deadlineTimer = setTimeout(() => {
60
+ // Reject with the structured CLI error before aborting fetch so its
61
+ // platform-specific AbortError cannot replace the timeout diagnosis.
62
+ reject(timeoutError);
63
+ controller.abort(timeoutError);
64
+ }, timeoutMs);
65
+ });
66
+ async function consumeLogs() {
67
+ if (opts.noLogs)
68
+ return;
38
69
  try {
39
- for await (const event of streamDeployLogs(deployId, apiOptions)) {
70
+ for await (const event of streamDeployLogs(deployId, apiOptions, controller.signal)) {
71
+ // Do not let an already-buffered frame print after the final JSON/result.
72
+ if (controller.signal.aborted)
73
+ break;
40
74
  if (event.type === 'log') {
41
75
  // In --json mode stdout must stay a single JSON document, so stream
42
76
  // build logs to stderr (still visible) instead of polluting stdout.
@@ -55,9 +89,34 @@ export async function followDeploy(deployId, apiOptions, opts = {}) {
55
89
  }
56
90
  }
57
91
  catch {
58
- // SSE unavailable (e.g. older server) — fall through to polling.
92
+ // Status polling remains authoritative when streaming is unavailable.
93
+ }
94
+ }
95
+ const logs = consumeLogs();
96
+ try {
97
+ const result = await Promise.race([
98
+ pollUntilTerminal(deployId, apiOptions, controller.signal),
99
+ expired,
100
+ ]);
101
+ // Give buffered final logs a brief chance to drain. This never lets a
102
+ // stalled SSE connection hold up success/failure/cancellation indefinitely.
103
+ let drainTimer;
104
+ try {
105
+ await Promise.race([
106
+ logs,
107
+ new Promise((resolve) => {
108
+ drainTimer = setTimeout(resolve, Math.max(0, Math.min(250, deadline - Date.now())));
109
+ }),
110
+ ]);
59
111
  }
112
+ finally {
113
+ clearTimeout(drainTimer);
114
+ }
115
+ return result;
116
+ }
117
+ finally {
118
+ clearTimeout(deadlineTimer);
119
+ controller.abort();
60
120
  }
61
- return pollUntilTerminal(deployId, apiOptions, timeoutMs);
62
121
  }
63
122
  //# sourceMappingURL=deploy-follow.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"deploy-follow.js","sourceRoot":"","sources":["../../src/utils/deploy-follow.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deploy-follow.js","sourceRoot":"","sources":["../../src/utils/deploy-follow.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,8 @@ export type DetectedRuntime = 'nodejs22' | 'python312' | 'go122';
13
13
  export type AppMode = 'handler' | 'web';
14
14
  export interface DetectedApp {
15
15
  name: string;
16
+ /** Pre-0.2.3 derived name, when it differs and no explicit --name was supplied. */
17
+ legacyName?: string;
16
18
  runtime: DetectedRuntime;
17
19
  mode: AppMode;
18
20
  /** module.export spec for handler mode (e.g. "index.handler", "src/api.handler"). */
@@ -35,7 +37,53 @@ export declare class DetectionError extends Error {
35
37
  readonly hints: string[];
36
38
  constructor(message: string, hints?: string[]);
37
39
  }
38
- /** Sanitize an arbitrary string into a deployable function name. */
40
+ /**
41
+ * Sanitize an arbitrary string into a deployable function name.
42
+ *
43
+ * The output alphabet is the server's, `[a-zA-Z0-9_-]` (createFunctionSchema in
44
+ * src/validation/schemas.ts). Case and `_` survive it because the API keeps a
45
+ * name exactly as sent — `@@unique([tenantId, name])` on LambdaFunction
46
+ * (prisma/schema.prisma) is a Postgres unique index over the raw string, so
47
+ * `my_api`, `my-api` and `MyAPI` are three functions, not one. A scoped npm
48
+ * name keeps its scope as a leading segment (`@acme/api` → `acme-api`) because
49
+ * the scope is the only thing that tells it apart from `@billing/api`.
50
+ *
51
+ * A collision here is not cosmetic: the derived name IS the deploy target.
52
+ * `inquir deploy` updates whichever remote function already carries it
53
+ * (pushAndFollow in commands/deploy.ts), so two sources landing on one string
54
+ * take turns overwriting each other's code, env vars and URL.
55
+ *
56
+ * The mapping is still not injective. One collapse is forced by the alphabet;
57
+ * the other three are choices made here, and `--name` is the way out of all
58
+ * four:
59
+ * - Forced: `.`, ` `, `/` and every other rejected character must land
60
+ * somewhere inside the alphabet, and they all become `-`, so `my.api`,
61
+ * `my api` and `my/api` all reach `my-api`.
62
+ * - Chosen: runs of `-` collapse and leading/trailing `-` are trimmed, so
63
+ * `my--api` → `my-api` and `-api` → `api` even though the API accepts
64
+ * both inputs verbatim. Readability over injectivity.
65
+ * - Chosen, and a consequence of that trim: a scoped name collides with the
66
+ * unscoped name that spells its flattened form — `@acme/api` and `acme-api`
67
+ * both derive `acme-api`. `_` and a leading `-` were free (`acme_api`,
68
+ * `-acme-api` would have stayed distinct); the readable form won.
69
+ * - Chosen: a string with no `[a-zA-Z0-9_-]` character at all derives the
70
+ * shared literal `app`, so `касса` and `биллинг` — ordinary names in a
71
+ * product with a ru locale — both derive `app`, and the second deploys over
72
+ * the first. detectApp reports that class in `reasons` (derivesFallbackName)
73
+ * instead of letting it read like a chosen name, the same treatment
74
+ * derivesFallbackApplicationName gives it in src/utils/application-name.ts.
75
+ *
76
+ * The result is not length-capped either. The API's 128-character limit is
77
+ * enforced server-side (a 400 naming the `name` field); truncating here would
78
+ * manufacture exactly the collisions above out of two long, distinct names.
79
+ *
80
+ * One server path does re-fold the wider alphabet: app-sync labels the
81
+ * application with applicationNameForWorkspace (src/utils/application-name.ts —
82
+ * lowercase, `[^a-z0-9-]` → `-`), so `my_api` and `my-api` ask for one
83
+ * application. That path verifies ownership and refuses a foreign hit
84
+ * (workspace-sync.service resolveOwnedApplication), so the cost there is a
85
+ * refused sync that names the application, not lost code.
86
+ */
39
87
  export declare function sanitizeName(raw: string): string;
40
88
  /**
41
89
  * Detect a deployable app in `dir`. Overrides always win over sniffing; every
@@ -1 +1 @@
1
- {"version":3,"file":"detect.d.ts","sourceRoot":"","sources":["../../src/utils/detect.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAKH,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG,WAAW,GAAG,OAAO,CAAC;AACjE,MAAM,MAAM,OAAO,GAAG,SAAS,GAAG,KAAK,CAAC;AAExC,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,eAAe,CAAC;IACzB,IAAI,EAAE,OAAO,CAAC;IACd,qFAAqF;IACrF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6DAA6D;IAC7D,SAAS,EAAE,MAAM,CAAC;IAClB,oFAAoF;IACpF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,+DAA+D;IAC/D,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,qBAAa,cAAe,SAAQ,KAAK;IACV,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE;gBAAzC,OAAO,EAAE,MAAM,EAAW,KAAK,GAAE,MAAM,EAAO;CAI3D;AAgFD,oEAAoE;AACpE,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAQhD;AA6ID;;;GAGG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,GAAE,eAAoB,GAAG,WAAW,CAqInF"}
1
+ {"version":3,"file":"detect.d.ts","sourceRoot":"","sources":["../../src/utils/detect.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAKH,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG,WAAW,GAAG,OAAO,CAAC;AACjE,MAAM,MAAM,OAAO,GAAG,SAAS,GAAG,KAAK,CAAC;AAExC,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,mFAAmF;IACnF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,eAAe,CAAC;IACzB,IAAI,EAAE,OAAO,CAAC;IACd,qFAAqF;IACrF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6DAA6D;IAC7D,SAAS,EAAE,MAAM,CAAC;IAClB,oFAAoF;IACpF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,+DAA+D;IAC/D,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,qBAAa,cAAe,SAAQ,KAAK;IACV,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE;gBAAzC,OAAO,EAAE,MAAM,EAAW,KAAK,GAAE,MAAM,EAAO;CAI3D;AAgFD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAMhD;AA8MD;;;GAGG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,GAAE,eAAoB,GAAG,WAAW,CAyKnF"}
@@ -80,16 +80,125 @@ function listByExtension(dir, extensions) {
80
80
  .map((e) => e.name)
81
81
  .sort();
82
82
  }
83
- /** Sanitize an arbitrary string into a deployable function name. */
83
+ /**
84
+ * Sanitize an arbitrary string into a deployable function name.
85
+ *
86
+ * The output alphabet is the server's, `[a-zA-Z0-9_-]` (createFunctionSchema in
87
+ * src/validation/schemas.ts). Case and `_` survive it because the API keeps a
88
+ * name exactly as sent — `@@unique([tenantId, name])` on LambdaFunction
89
+ * (prisma/schema.prisma) is a Postgres unique index over the raw string, so
90
+ * `my_api`, `my-api` and `MyAPI` are three functions, not one. A scoped npm
91
+ * name keeps its scope as a leading segment (`@acme/api` → `acme-api`) because
92
+ * the scope is the only thing that tells it apart from `@billing/api`.
93
+ *
94
+ * A collision here is not cosmetic: the derived name IS the deploy target.
95
+ * `inquir deploy` updates whichever remote function already carries it
96
+ * (pushAndFollow in commands/deploy.ts), so two sources landing on one string
97
+ * take turns overwriting each other's code, env vars and URL.
98
+ *
99
+ * The mapping is still not injective. One collapse is forced by the alphabet;
100
+ * the other three are choices made here, and `--name` is the way out of all
101
+ * four:
102
+ * - Forced: `.`, ` `, `/` and every other rejected character must land
103
+ * somewhere inside the alphabet, and they all become `-`, so `my.api`,
104
+ * `my api` and `my/api` all reach `my-api`.
105
+ * - Chosen: runs of `-` collapse and leading/trailing `-` are trimmed, so
106
+ * `my--api` → `my-api` and `-api` → `api` even though the API accepts
107
+ * both inputs verbatim. Readability over injectivity.
108
+ * - Chosen, and a consequence of that trim: a scoped name collides with the
109
+ * unscoped name that spells its flattened form — `@acme/api` and `acme-api`
110
+ * both derive `acme-api`. `_` and a leading `-` were free (`acme_api`,
111
+ * `-acme-api` would have stayed distinct); the readable form won.
112
+ * - Chosen: a string with no `[a-zA-Z0-9_-]` character at all derives the
113
+ * shared literal `app`, so `касса` and `биллинг` — ordinary names in a
114
+ * product with a ru locale — both derive `app`, and the second deploys over
115
+ * the first. detectApp reports that class in `reasons` (derivesFallbackName)
116
+ * instead of letting it read like a chosen name, the same treatment
117
+ * derivesFallbackApplicationName gives it in src/utils/application-name.ts.
118
+ *
119
+ * The result is not length-capped either. The API's 128-character limit is
120
+ * enforced server-side (a 400 naming the `name` field); truncating here would
121
+ * manufacture exactly the collisions above out of two long, distinct names.
122
+ *
123
+ * One server path does re-fold the wider alphabet: app-sync labels the
124
+ * application with applicationNameForWorkspace (src/utils/application-name.ts —
125
+ * lowercase, `[^a-z0-9-]` → `-`), so `my_api` and `my-api` ask for one
126
+ * application. That path verifies ownership and refuses a foreign hit
127
+ * (workspace-sync.service resolveOwnedApplication), so the cost there is a
128
+ * refused sync that names the application, not lost code.
129
+ */
84
130
  export function sanitizeName(raw) {
131
+ const cleaned = raw
132
+ .replace(/[^a-zA-Z0-9_-]+/g, '-') // drops the `@` and turns `/` into `-`, keeping the scope
133
+ .replace(/-{2,}/g, '-')
134
+ .replace(/^-+|-+$/g, '');
135
+ return cleaned || 'app';
136
+ }
137
+ /**
138
+ * True when nothing in `raw` survives the API's alphabet, so sanitizeName
139
+ * returns the shared literal `app` rather than anything derived from `raw`.
140
+ */
141
+ function derivesFallbackName(raw) {
142
+ return !/[a-zA-Z0-9_-]/.test(raw);
143
+ }
144
+ /**
145
+ * What sanitizeName derived up to CLI 0.2.2: lowercased, npm scope dropped.
146
+ *
147
+ * Kept only to warn. A function deployed by an older CLI still carries this
148
+ * name, and a deploy never renames a remote function — commands/deploy.ts picks
149
+ * its target by name — so once the two spellings differ the next deploy creates
150
+ * a second function beside the live one instead of updating it. Whether that
151
+ * older function exists is a question only the API can answer, so detectApp
152
+ * reports the derivation change rather than the outcome.
153
+ */
154
+ function legacyName(raw) {
85
155
  const cleaned = raw
86
156
  .toLowerCase()
87
- .replace(/^@[^/]+\//, '') // scoped npm package → drop scope
157
+ .replace(/^@[^/]+\//, '')
88
158
  .replace(/[^a-z0-9-]+/g, '-')
89
159
  .replace(/-{2,}/g, '-')
90
160
  .replace(/^-+|-+$/g, '');
91
161
  return cleaned || 'app';
92
162
  }
163
+ /**
164
+ * The directory's basename as the filesystem spells it, not as the caller typed
165
+ * it.
166
+ *
167
+ * `path.resolve` normalises separators, `.` and `..`, but never case, and on
168
+ * Windows and macOS every spelling opens the same directory: `inquir deploy
169
+ * ./api` and `inquir deploy ./API` are one source tree that would otherwise
170
+ * derive `api` and `API` — two functions and two URLs, the second spelling
171
+ * creating rather than updating (deploy.ts passes the typed path through
172
+ * untouched). Listing the parent gives the spelling the disk holds, so both
173
+ * spellings derive one name.
174
+ *
175
+ * Deliberately not `fs.realpathSync.native`, which also resolves symlinks: a
176
+ * release layout deploying `./current` (a symlink retargeted per release) would
177
+ * then derive a new name per release — the same one-tree-many-functions split,
178
+ * entered from the other side.
179
+ *
180
+ * Falls back to the caller's spelling when the parent cannot be listed or holds
181
+ * no case-insensitive match — a filesystem root, an unreadable parent, a Windows
182
+ * 8.3 short name, a rename racing the read. That fallback is exactly what the
183
+ * basename alone would have produced, so it loses nothing.
184
+ */
185
+ function basenameOnDisk(resolved) {
186
+ const base = path.basename(resolved);
187
+ const parent = path.dirname(resolved);
188
+ if (!base || parent === resolved)
189
+ return base;
190
+ let entries;
191
+ try {
192
+ entries = fs.readdirSync(parent);
193
+ }
194
+ catch {
195
+ return base;
196
+ }
197
+ if (entries.includes(base))
198
+ return base; // already spelled the way the disk spells it
199
+ const lowered = base.toLowerCase();
200
+ return entries.find((entry) => entry.toLowerCase() === lowered) ?? base;
201
+ }
93
202
  /** Find the first existing entry file among conventional Node names. */
94
203
  function findNodeEntry(dir, pkg) {
95
204
  // package.json "main" wins when it exists on disk — unless it points into a
@@ -243,20 +352,42 @@ export function detectApp(dir, overrides = {}) {
243
352
  if (overrides.runtime)
244
353
  reasons.push(`runtime: ${runtime} (--runtime)`);
245
354
  const pkg = runtime === 'nodejs22' ? readPackageJson(resolved) : null;
246
- // Name resolution: flag > manifest name > directory basename.
247
- let name;
355
+ // Name resolution: flag > manifest name > directory basename (as the disk
356
+ // spells it, not as the caller typed it — see basenameOnDisk).
357
+ let nameSource;
358
+ let nameOrigin;
248
359
  if (overrides.name) {
249
- name = sanitizeName(overrides.name);
250
- reasons.push(`name: ${name} (--name)`);
360
+ nameSource = overrides.name;
361
+ nameOrigin = '--name';
251
362
  }
252
363
  else if (pkg?.name) {
253
- name = sanitizeName(pkg.name);
254
- reasons.push(`name: ${name} (package.json name)`);
364
+ nameSource = pkg.name;
365
+ nameOrigin = 'package.json name';
255
366
  }
256
367
  else {
257
- name = sanitizeName(path.basename(resolved));
258
- reasons.push(`name: ${name} (directory name)`);
259
- }
368
+ const typed = path.basename(resolved);
369
+ nameSource = basenameOnDisk(resolved);
370
+ nameOrigin = nameSource === typed
371
+ ? 'directory name'
372
+ : `directory name — the disk spells it "${nameSource}", the path said "${typed}"`;
373
+ }
374
+ const name = sanitizeName(nameSource);
375
+ reasons.push(`name: ${name} (${nameOrigin})`);
376
+ // Two ways the derived name is not the one the user expects. Both are
377
+ // reported here because `reasons` is the deploy plan (commands/deploy.ts
378
+ // prints every line), and neither is visible in the name itself.
379
+ if (derivesFallbackName(nameSource)) {
380
+ reasons.push(`name: "${nameSource}" has no [a-zA-Z0-9_-] character, so it derives the shared fallback ` +
381
+ `"${name}" — every such name derives it, and deploying two of them means the second ` +
382
+ 'overwrites the first. Pass --name to keep them apart.');
383
+ }
384
+ const previousName = legacyName(nameSource);
385
+ if (previousName !== name) {
386
+ reasons.push(`name: CLI 0.2.2 and older derived "${previousName}" from the same source. If this app was ` +
387
+ `deployed by one of those, that function keeps its name and this deploy will not update ` +
388
+ `it — pass --name ${previousName} to keep deploying into it.`);
389
+ }
390
+ const legacyDerivedName = !overrides.name && previousName !== name ? previousName : undefined;
260
391
  // Entry file.
261
392
  let entryFile = null;
262
393
  if (runtime === 'nodejs22')
@@ -271,6 +402,7 @@ export function detectApp(dir, overrides = {}) {
271
402
  reasons.push(`handler: ${overrides.handler} (--handler)`);
272
403
  return {
273
404
  name,
405
+ ...(legacyDerivedName ? { legacyName: legacyDerivedName } : {}),
274
406
  runtime,
275
407
  mode: 'handler',
276
408
  handler: overrides.handler,
@@ -330,7 +462,15 @@ export function detectApp(dir, overrides = {}) {
330
462
  startCommand = pythonStartCommand(resolved, entryPosix, reasons);
331
463
  }
332
464
  reasons.push('mode: web (server app — the platform will run it with PORT and proxy requests)');
333
- return { name, runtime, mode: 'web', entryFile: entryPosix, startCommand, reasons };
465
+ return {
466
+ name,
467
+ ...(legacyDerivedName ? { legacyName: legacyDerivedName } : {}),
468
+ runtime,
469
+ mode: 'web',
470
+ entryFile: entryPosix,
471
+ startCommand,
472
+ reasons,
473
+ };
334
474
  }
335
475
  if (!hasHandlerExport) {
336
476
  if (runtime === 'go122') {
@@ -348,6 +488,7 @@ export function detectApp(dir, overrides = {}) {
348
488
  reasons.push('mode: handler');
349
489
  return {
350
490
  name,
491
+ ...(legacyDerivedName ? { legacyName: legacyDerivedName } : {}),
351
492
  runtime,
352
493
  mode: 'handler',
353
494
  handler: `${stripExtension(entryPosix)}.handler`,
@@ -1 +1 @@
1
- {"version":3,"file":"detect.js","sourceRoot":"","sources":["../../src/utils/detect.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AA2B7B,MAAM,OAAO,cAAe,SAAQ,KAAK;IACD;IAAtC,YAAY,OAAe,EAAW,QAAkB,EAAE;QACxD,KAAK,CAAC,OAAO,CAAC,CAAC;QADqB,UAAK,GAAL,KAAK,CAAe;QAExD,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;IAC/B,CAAC;CACF;AAYD,MAAM,eAAe,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AACvE,MAAM,oBAAoB,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;AAC3E,MAAM,kBAAkB,GAAG,CAAC,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,gBAAgB,CAAC,CAAC;AAE1G,kDAAkD;AAClD,MAAM,oBAAoB,GACxB,uKAAuK,CAAC;AAC1K,MAAM,sBAAsB,GAAG,yCAAyC,CAAC;AACzE,MAAM,kBAAkB,GAAG,qBAAqB,CAAC;AAEjD,wEAAwE;AACxE,MAAM,mBAAmB,GACvB,yKAAyK,CAAC;AAE5K,sEAAsE;AACtE,MAAM,uBAAuB,GAAG;IAC9B,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,SAAS;IAC5D,MAAM,EAAE,cAAc,EAAE,kBAAkB,EAAE,OAAO,EAAE,MAAM;CAC5D,CAAC;AAEF,kEAAkE;AAClE,MAAM,uBAAuB,GAAG,+EAA+E,CAAC;AAChH,MAAM,yBAAyB,GAAG,iEAAiE,CAAC;AAEpG;gEACgE;AAChE,MAAM,uBAAuB,GAAG,yCAAyC,CAAC;AAE1E,SAAS,MAAM,CAAC,GAAW,EAAE,GAAW;IACtC,IAAI,CAAC;QACH,OAAO,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IAC5C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,SAAS,QAAQ,CAAC,GAAW,EAAE,GAAW;IACxC,IAAI,CAAC;QACH,OAAO,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;IACtD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CAAC,GAAW;IAClC,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IAC1C,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IACtB,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAgB,CAAC;IACxC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,qFAAqF;AACrF,SAAS,eAAe,CAAC,GAAW,EAAE,UAAoB;IACxD,IAAI,OAAoB,CAAC;IACzB,IAAI,CAAC;QACH,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IACzD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,OAAO;SACX,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;SACtE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;SAClB,IAAI,EAAE,CAAC;AACZ,CAAC;AAED,oEAAoE;AACpE,MAAM,UAAU,YAAY,CAAC,GAAW;IACtC,MAAM,OAAO,GAAG,GAAG;SAChB,WAAW,EAAE;SACb,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,kCAAkC;SAC3D,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC;SAC5B,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC;SACtB,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAC3B,OAAO,OAAO,IAAI,KAAK,CAAC;AAC1B,CAAC;AAED,wEAAwE;AACxE,SAAS,aAAa,CAAC,GAAW,EAAE,GAAuB;IACzD,4EAA4E;IAC5E,8EAA8E;IAC9E,IAAI,GAAG,EAAE,IAAI,EAAE,CAAC;QACd,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC1C,IAAI,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;IAC5E,CAAC;IACD,KAAK,MAAM,MAAM,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC;QAClC,KAAK,MAAM,IAAI,IAAI,oBAAoB,EAAE,CAAC;YACxC,KAAK,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;gBAClC,MAAM,SAAS,GAAG,GAAG,MAAM,GAAG,IAAI,GAAG,GAAG,EAAE,CAAC;gBAC3C,IAAI,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC;oBAAE,OAAO,SAAS,CAAC;YAC/C,CAAC;QACH,CAAC;IACH,CAAC;IACD,mDAAmD;IACnD,MAAM,KAAK,GAAG,eAAe,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;IACpD,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC9C,CAAC;AAED,SAAS,eAAe,CAAC,GAAW;IAClC,KAAK,MAAM,MAAM,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC;QAClC,KAAK,MAAM,IAAI,IAAI,kBAAkB,EAAE,CAAC;YACtC,MAAM,SAAS,GAAG,GAAG,MAAM,GAAG,IAAI,EAAE,CAAC;YACrC,IAAI,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC;gBAAE,OAAO,SAAS,CAAC;QAC/C,CAAC;IACH,CAAC;IACD,MAAM,KAAK,GAAG,eAAe,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5C,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC9C,CAAC;AAED,4DAA4D;AAC5D,SAAS,cAAc,CAAC,GAAW;IACjC,OAAO,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;AACtC,CAAC;AAED,SAAS,aAAa,CAAC,GAAW,EAAE,OAAiB;IACnD,IAAI,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,CAAC;QAC1B,OAAO,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;QAChD,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,MAAM,WAAW,GACf,MAAM,CAAC,GAAG,EAAE,kBAAkB,CAAC,IAAI,MAAM,CAAC,GAAG,EAAE,gBAAgB,CAAC,IAAI,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IAC7F,MAAM,GAAG,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;IACjC,IAAI,WAAW,IAAI,CAAC,GAAG,EAAE,CAAC;QACxB,OAAO,CAAC,IAAI,CAAC,8DAA8D,CAAC,CAAC;QAC7E,OAAO,WAAW,CAAC;IACrB,CAAC;IACD,IAAI,GAAG,EAAE,CAAC;QACR,OAAO,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;QACzD,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,4CAA4C;IAC5C,IAAI,eAAe,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7C,OAAO,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;QACrD,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,IAAI,eAAe,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC;QACrE,OAAO,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;QACzD,OAAO,WAAW,CAAC;IACrB,CAAC;IACD,IAAI,eAAe,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC;QACjF,OAAO,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;QAC1D,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,MAAM,IAAI,cAAc,CAAC,iCAAiC,GAAG,EAAE,EAAE;QAC/D,0FAA0F;QAC1F,mDAAmD;KACpD,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,SAAS,gBAAgB,CAAC,SAAiB,EAAE,GAAuB,EAAE,OAAiB;IACrF,MAAM,KAAK,GAAG,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IAC1C,IAAI,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1F,OAAO,CAAC,IAAI,CAAC,WAAW,KAAK,yCAAyC,CAAC,CAAC;QACxE,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QACxC,kEAAkE;QAClE,MAAM,IAAI,cAAc,CAAC,aAAa,SAAS,uDAAuD,EAAE;YACtG,6EAA6E;YAC7E,0FAA0F;SAC3F,CAAC,CAAC;IACL,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,gBAAgB,SAAS,gBAAgB,CAAC,CAAC;IACxD,OAAO,QAAQ,SAAS,EAAE,CAAC;AAC7B,CAAC;AAED,wDAAwD;AACxD,SAAS,kBAAkB,CAAC,GAAW,EAAE,SAAiB,EAAE,OAAiB;IAC3E,MAAM,YAAY,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IAC7E,MAAM,SAAS,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,gBAAgB,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IACxE,MAAM,IAAI,GAAG,YAAY,GAAG,IAAI,GAAG,SAAS,CAAC;IAC7C,MAAM,MAAM,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC7D,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC;IAEnD,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7B,MAAM,GAAG,GAAG,qBAAqB,MAAM,qCAAqC,CAAC;QAC7E,OAAO,CAAC,IAAI,CAAC,WAAW,GAAG,sBAAsB,CAAC,CAAC;QACnD,OAAO,GAAG,CAAC;IACb,CAAC;IACD,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3B,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9B,MAAM,GAAG,GAAG,0CAA0C,MAAM,MAAM,CAAC;YACnE,OAAO,CAAC,IAAI,CAAC,WAAW,GAAG,+BAA+B,CAAC,CAAC;YAC5D,OAAO,GAAG,CAAC;QACb,CAAC;QACD,IAAI,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;YACtE,uEAAuE;YACvE,sEAAsE;YACtE,OAAO,CAAC,IAAI,CAAC,kBAAkB,SAAS,qCAAqC,CAAC,CAAC;YAC/E,OAAO,UAAU,SAAS,EAAE,CAAC;QAC/B,CAAC;QACD,MAAM,GAAG,GAAG,yBAAyB,MAAM,qCAAqC,CAAC;QACjF,OAAO,CAAC,IAAI,CAAC,WAAW,GAAG,oBAAoB,CAAC,CAAC;QACjD,OAAO,GAAG,CAAC;IACb,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,kBAAkB,SAAS,gBAAgB,CAAC,CAAC;IAC1D,OAAO,UAAU,SAAS,EAAE,CAAC;AAC/B,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAa;IAC1C,IAAI,KAAK,KAAK,UAAU,IAAI,KAAK,KAAK,WAAW,IAAI,KAAK,KAAK,OAAO;QAAE,OAAO,KAAK,CAAC;IACrF,MAAM,IAAI,cAAc,CAAC,sBAAsB,KAAK,GAAG,EAAE;QACvD,iDAAiD;KAClD,CAAC,CAAC;AACL,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAa;IACvC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,KAAK;QAAE,OAAO,KAAK,CAAC;IACzD,MAAM,IAAI,cAAc,CAAC,mBAAmB,KAAK,GAAG,EAAE,CAAC,gCAAgC,CAAC,CAAC,CAAC;AAC5F,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,GAAW,EAAE,YAA6B,EAAE;IACpE,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACnC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;QACrE,MAAM,IAAI,cAAc,CAAC,oBAAoB,GAAG,EAAE,CAAC,CAAC;IACtD,CAAC;IACD,MAAM,OAAO,GAAa,EAAE,CAAC;IAE7B,IAAI,MAAM,CAAC,QAAQ,EAAE,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;QACzD,OAAO,CAAC,IAAI,CAAC,yFAAyF,CAAC,CAAC;IAC1G,CAAC;IAED,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO;QAC/B,CAAC,CAAC,qBAAqB,CAAC,SAAS,CAAC,OAAO,CAAC;QAC1C,CAAC,CAAC,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACrC,IAAI,SAAS,CAAC,OAAO;QAAE,OAAO,CAAC,IAAI,CAAC,YAAY,OAAO,cAAc,CAAC,CAAC;IAEvE,MAAM,GAAG,GAAG,OAAO,KAAK,UAAU,CAAC,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAEtE,8DAA8D;IAC9D,IAAI,IAAY,CAAC;IACjB,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC;QACnB,IAAI,GAAG,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACpC,OAAO,CAAC,IAAI,CAAC,SAAS,IAAI,WAAW,CAAC,CAAC;IACzC,CAAC;SAAM,IAAI,GAAG,EAAE,IAAI,EAAE,CAAC;QACrB,IAAI,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC9B,OAAO,CAAC,IAAI,CAAC,SAAS,IAAI,sBAAsB,CAAC,CAAC;IACpD,CAAC;SAAM,CAAC;QACN,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC7C,OAAO,CAAC,IAAI,CAAC,SAAS,IAAI,mBAAmB,CAAC,CAAC;IACjD,CAAC;IAED,cAAc;IACd,IAAI,SAAS,GAAkB,IAAI,CAAC;IACpC,IAAI,OAAO,KAAK,UAAU;QAAE,SAAS,GAAG,aAAa,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;SAChE,IAAI,OAAO,KAAK,WAAW;QAAE,SAAS,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;;QACnE,SAAS,GAAG,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IAEzG,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;QACtB,0EAA0E;QAC1E,MAAM,UAAU,GAAG,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QAC7D,OAAO,CAAC,IAAI,CAAC,YAAY,SAAS,CAAC,OAAO,cAAc,CAAC,CAAC;QAC1D,OAAO;YACL,IAAI;YACJ,OAAO;YACP,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,SAAS,CAAC,OAAO;YAC1B,SAAS,EAAE,SAAS,IAAI,GAAG,UAAU,IAAI;YACzC,OAAO;SACR,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,cAAc,CAAC,mCAAmC,GAAG,aAAa,OAAO,GAAG,EAAE;YACtF,OAAO,KAAK,UAAU;gBACpB,CAAC,CAAC,4FAA4F;gBAC9F,CAAC,CAAC,OAAO,KAAK,WAAW;oBACvB,CAAC,CAAC,0DAA0D;oBAC5D,CAAC,CAAC,mBAAmB;YACzB,mEAAmE;SACpE,CAAC,CAAC;IACL,CAAC;IACD,MAAM,UAAU,GAAG,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACjD,OAAO,CAAC,IAAI,CAAC,UAAU,UAAU,EAAE,CAAC,CAAC;IAErC,MAAM,WAAW,GAAG,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC;IACzD,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,kBAAkB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAE9E,gCAAgC;IAChC,MAAM,gBAAgB,GACpB,OAAO,KAAK,UAAU;QACpB,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,WAAW,CAAC;QACxC,CAAC,CAAC,OAAO,KAAK,WAAW;YACvB,CAAC,CAAC,sBAAsB,CAAC,IAAI,CAAC,WAAW,CAAC;YAC1C,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAE7C,4EAA4E;IAC5E,uEAAuE;IACvE,MAAM,QAAQ,GAAG,EAAE,GAAG,GAAG,EAAE,YAAY,EAAE,GAAG,GAAG,EAAE,eAAe,EAAE,CAAC;IACnE,MAAM,UAAU,GAAG,OAAO,KAAK,WAAW;QACxC,CAAC,CAAC,GAAG,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,CAAC,IAAI,EAAE,KAAK,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,EAAE;QAChH,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,cAAc,GAClB,OAAO,KAAK,UAAU;QACpB,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,QAAQ,CAAC;QAC7F,CAAC,CAAC,OAAO,KAAK,WAAW;YACvB,CAAC,CAAC,uBAAuB,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,yBAAyB,CAAC,IAAI,CAAC,WAAW,CAAC;YACzF,CAAC,CAAC,KAAK,CAAC;IACd,MAAM,QAAQ,GACZ,UAAU,KAAK,KAAK;QACpB,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC;QACxB,CAAC,UAAU,KAAK,SAAS,IAAI,CAAC,gBAAgB,IAAI,cAAc,CAAC,CAAC;IAEpE,IAAI,QAAQ,EAAE,CAAC;QACb,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;YACxB,MAAM,IAAI,cAAc,CAAC,sCAAsC,EAAE;gBAC/D,6FAA6F;aAC9F,CAAC,CAAC;QACL,CAAC;QACD,IAAI,YAAoB,CAAC;QACzB,IAAI,SAAS,CAAC,KAAK,EAAE,CAAC;YACpB,YAAY,GAAG,SAAS,CAAC,KAAK,CAAC;YAC/B,OAAO,CAAC,IAAI,CAAC,WAAW,YAAY,aAAa,CAAC,CAAC;QACrD,CAAC;aAAM,IAAI,OAAO,KAAK,UAAU,EAAE,CAAC;YAClC,YAAY,GAAG,gBAAgB,CAAC,UAAU,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;QAC5D,CAAC;aAAM,CAAC;YACN,YAAY,GAAG,kBAAkB,CAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;QACnE,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,gFAAgF,CAAC,CAAC;QAC/F,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC;IACtF,CAAC;IAED,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;YACxB,MAAM,IAAI,cAAc,CAAC,gCAAgC,UAAU,EAAE,EAAE;gBACrE,wFAAwF;aACzF,CAAC,CAAC;QACL,CAAC;QACD,+EAA+E;QAC/E,kEAAkE;QAClE,OAAO,CAAC,IAAI,CAAC,YAAY,cAAc,CAAC,UAAU,CAAC,yDAAyD,CAAC,CAAC;IAChH,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,IAAI,CAAC,YAAY,cAAc,CAAC,UAAU,CAAC,iCAAiC,CAAC,CAAC;IACxF,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAE9B,OAAO;QACL,IAAI;QACJ,OAAO;QACP,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,GAAG,cAAc,CAAC,UAAU,CAAC,UAAU;QAChD,SAAS,EAAE,UAAU;QACrB,OAAO;KACR,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"detect.js","sourceRoot":"","sources":["../../src/utils/detect.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ensure-auth.d.ts","sourceRoot":"","sources":["../../src/utils/ensure-auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAK/D;;;;GAIG;AACH,wBAAsB,UAAU,CAAC,UAAU,GAAE,iBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CAqBlF"}
1
+ {"version":3,"file":"ensure-auth.d.ts","sourceRoot":"","sources":["../../src/utils/ensure-auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAK/D;;;;GAIG;AACH,wBAAsB,UAAU,CAAC,UAAU,GAAE,iBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CAwBlF"}