hatchkit 0.2.1 → 0.2.3

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 (57) hide show
  1. package/dist/adopt.js +1 -1
  2. package/dist/adopt.js.map +1 -1
  3. package/dist/assets/env.d.ts +2 -2
  4. package/dist/assets/env.d.ts.map +1 -1
  5. package/dist/assets/index.js +11 -11
  6. package/dist/assets/index.js.map +1 -1
  7. package/dist/assets/mirror.js +1 -1
  8. package/dist/completion.js +1 -1
  9. package/dist/completion.js.map +1 -1
  10. package/dist/config.d.ts.map +1 -1
  11. package/dist/config.js +39 -7
  12. package/dist/config.js.map +1 -1
  13. package/dist/deploy/terraform.d.ts +18 -0
  14. package/dist/deploy/terraform.d.ts.map +1 -1
  15. package/dist/deploy/terraform.js +52 -5
  16. package/dist/deploy/terraform.js.map +1 -1
  17. package/dist/dev-setup.d.ts +3 -1
  18. package/dist/dev-setup.d.ts.map +1 -1
  19. package/dist/dev-setup.js +104 -4
  20. package/dist/dev-setup.js.map +1 -1
  21. package/dist/doctor.d.ts.map +1 -1
  22. package/dist/doctor.js +4 -3
  23. package/dist/doctor.js.map +1 -1
  24. package/dist/explain.js +1 -1
  25. package/dist/explain.js.map +1 -1
  26. package/dist/index.js +265 -42
  27. package/dist/index.js.map +1 -1
  28. package/dist/provision/glitchtip.d.ts +1 -0
  29. package/dist/provision/glitchtip.d.ts.map +1 -1
  30. package/dist/provision/glitchtip.js +16 -0
  31. package/dist/provision/glitchtip.js.map +1 -1
  32. package/dist/provision/index.d.ts +6 -0
  33. package/dist/provision/index.d.ts.map +1 -1
  34. package/dist/provision/index.js +114 -9
  35. package/dist/provision/index.js.map +1 -1
  36. package/dist/provision/openpanel.d.ts +1 -0
  37. package/dist/provision/openpanel.d.ts.map +1 -1
  38. package/dist/provision/openpanel.js +27 -4
  39. package/dist/provision/openpanel.js.map +1 -1
  40. package/dist/provision/plausible.d.ts +10 -0
  41. package/dist/provision/plausible.d.ts.map +1 -1
  42. package/dist/provision/plausible.js +78 -17
  43. package/dist/provision/plausible.js.map +1 -1
  44. package/dist/provision/resend.d.ts +4 -0
  45. package/dist/provision/resend.d.ts.map +1 -1
  46. package/dist/provision/resend.js +11 -6
  47. package/dist/provision/resend.js.map +1 -1
  48. package/dist/scaffold/app.js +2 -2
  49. package/dist/scaffold/app.js.map +1 -1
  50. package/dist/scaffold/manifest.d.ts +14 -0
  51. package/dist/scaffold/manifest.d.ts.map +1 -1
  52. package/dist/scaffold/manifest.js.map +1 -1
  53. package/dist/scaffold/server-add.js +3 -1
  54. package/dist/scaffold/server-add.js.map +1 -1
  55. package/dist/scaffold/starter-files.d.ts +3 -3
  56. package/dist/scaffold/starter-files.js +3 -3
  57. package/package.json +2 -2
@@ -30,14 +30,57 @@ import { dirname, join, relative, resolve } from "node:path";
30
30
  import { confirm, input, select } from "@inquirer/prompts";
31
31
  import chalk from "chalk";
32
32
  import { ensureGlitchtip, ensureGoogleSearchConsole, ensureOpenpanel, ensurePlausible, ensureResend, ensureS3, getConfigPath, } from "../config.js";
33
+ import { MANIFEST_FILENAME, readManifest, writeManifest } from "../scaffold/manifest.js";
33
34
  import { validateDomain, validateProjectName } from "../utils/validate.js";
34
- import { deleteGlitchtipClient, provisionGlitchtipClient, } from "./glitchtip.js";
35
- import { deleteOpenpanelClient, provisionOpenpanelClient, } from "./openpanel.js";
36
- import { deletePlausibleSite, provisionPlausibleSite } from "./plausible.js";
37
- import { createResendDomain, deleteResendClient, listResendDomains, normalizeDomainInput, provisionResendClient, } from "./resend.js";
35
+ import { deleteGlitchtipClient, glitchtipProjectExists, provisionGlitchtipClient, } from "./glitchtip.js";
36
+ import { deleteOpenpanelClient, openpanelProjectExists, provisionOpenpanelClient, } from "./openpanel.js";
37
+ import { deletePlausibleSite, plausibleSiteExists, provisionPlausibleSite, } from "./plausible.js";
38
+ import { createResendDomain, deleteResendClient, listResendApiKeys, listResendDomains, normalizeDomainInput, provisionResendClient, } from "./resend.js";
38
39
  import { provisionR2BucketTokens, renderR2BucketTokensEnv, unprovisionR2BucketTokens, } from "./s3.js";
39
40
  import { provisionSearchConsoleForDomain, unprovisionSearchConsoleForDomain, } from "./search-console.js";
40
41
  import { parseEnvLines, writeDevEnv, writeProdEnv } from "./write-env.js";
42
+ async function assertNoExistingProviderResources(args) {
43
+ const conflicts = [];
44
+ if (args.services.includes("glitchtip")) {
45
+ const names = args.surfaces && args.surfaces.mode === "separate"
46
+ ? [`${args.baseName}-server`, `${args.baseName}-client`]
47
+ : [args.baseName];
48
+ for (const name of names) {
49
+ if (await glitchtipProjectExists(name))
50
+ conflicts.push(`GlitchTip project ${name}`);
51
+ }
52
+ }
53
+ if (args.services.includes("openpanel")) {
54
+ const names = args.surfaces && args.surfaces.mode === "separate"
55
+ ? [`${args.baseName}-server`, `${args.baseName}-client`]
56
+ : [args.baseName];
57
+ for (const name of names) {
58
+ if (await openpanelProjectExists(name))
59
+ conflicts.push(`OpenPanel project ${name}`);
60
+ }
61
+ }
62
+ if (args.services.includes("plausible") && args.plausibleDomain) {
63
+ if (await plausibleSiteExists(args.plausibleDomain)) {
64
+ conflicts.push(`Plausible site ${args.plausibleDomain}`);
65
+ }
66
+ }
67
+ if (args.services.includes("resend")) {
68
+ const keys = await listResendApiKeys();
69
+ const names = new Set(keys.map((key) => key.name));
70
+ for (const name of [`${args.baseName}-dev`, `${args.baseName}-prod`]) {
71
+ if (names.has(name))
72
+ conflicts.push(`Resend API key ${name}`);
73
+ }
74
+ }
75
+ if (conflicts.length > 0) {
76
+ throw new Error([
77
+ "Refusing to add services because these resources already exist:",
78
+ ...conflicts.map((conflict) => ` - ${conflict}`),
79
+ "",
80
+ "Remove or rename the existing resources, or run `hatchkit remove` if Hatchkit created them before.",
81
+ ].join("\n"));
82
+ }
83
+ }
41
84
  export async function runProvision(opts) {
42
85
  const nameCheck = validateProjectName(opts.baseName);
43
86
  if (nameCheck !== true)
@@ -80,6 +123,14 @@ export async function runProvision(opts) {
80
123
  const plausibleDomain = opts.services.includes("plausible")
81
124
  ? await resolvePlausibleDomain(opts, surfaces)
82
125
  : undefined;
126
+ if (opts.failIfExists) {
127
+ await assertNoExistingProviderResources({
128
+ baseName: opts.baseName,
129
+ services: opts.services,
130
+ surfaces,
131
+ plausibleDomain,
132
+ });
133
+ }
83
134
  console.log(chalk.bold(`\n ── Provisioning ${opts.baseName} ──────────────────────────\n`));
84
135
  // ── GlitchTip ──
85
136
  if (opts.services.includes("glitchtip")) {
@@ -139,8 +190,16 @@ export async function runProvision(opts) {
139
190
  console.log(chalk.yellow(` Skipping Plausible — couldn't resolve the public site domain for ${opts.baseName}.`));
140
191
  }
141
192
  else {
142
- const res = await withSpinner(`Plausible: creating site ${plausibleDomain}`, () => provisionPlausibleSite(opts.baseName, plausibleDomain));
143
- opts.onProvisioned?.({ service: "plausible", project: opts.baseName, domain: res.domain });
193
+ const res = await withSpinner(`Plausible: wiring site ${plausibleDomain}`, () => provisionPlausibleSite(opts.baseName, plausibleDomain));
194
+ if (res.manual) {
195
+ console.log(chalk.yellow(` Plausible Sites API unavailable at ${res.baseUrl}; wrote tracker env for ${res.domain}. Create/confirm that site manually in Plausible.`));
196
+ }
197
+ opts.onProvisioned?.({
198
+ service: "plausible",
199
+ project: opts.baseName,
200
+ domain: res.domain,
201
+ created: res.created,
202
+ });
144
203
  pushObsLines(buckets, "client", renderPlausibleEnv(res), enableDevObs);
145
204
  }
146
205
  }
@@ -201,6 +260,17 @@ export async function runProvision(opts) {
201
260
  created: r.created,
202
261
  })),
203
262
  });
263
+ writeManifest(projectDir, {
264
+ ...manifest,
265
+ integrations: {
266
+ ...manifest.integrations,
267
+ email: {
268
+ domain: result.domain,
269
+ configuredAt: new Date().toISOString(),
270
+ destinationEmail: result.destination.record.email,
271
+ },
272
+ },
273
+ });
204
274
  }
205
275
  }
206
276
  }
@@ -228,6 +298,17 @@ export async function runProvision(opts) {
228
298
  siteUrl: result.siteUrl,
229
299
  dnsRecord: result.dnsRecord,
230
300
  });
301
+ writeManifest(projectDir, {
302
+ ...manifest,
303
+ integrations: {
304
+ ...manifest.integrations,
305
+ searchConsole: {
306
+ domain: result.domain,
307
+ siteUrl: result.siteUrl,
308
+ verifiedAt: new Date().toISOString(),
309
+ },
310
+ },
311
+ });
231
312
  }
232
313
  }
233
314
  }
@@ -254,6 +335,8 @@ export async function runProvision(opts) {
254
335
  bucketKey: bt.bucketKey,
255
336
  bucketName: bt.bucketName,
256
337
  tokenId: bt.tokenId,
338
+ accountId: bt.accountId,
339
+ minted: bt.minted,
257
340
  });
258
341
  }
259
342
  serverBucket.prodLines.push(...renderR2BucketTokensEnv(r2Result));
@@ -336,8 +419,10 @@ async function resolveSurfaces(opts) {
336
419
  return null;
337
420
  if (opts.surfaces)
338
421
  return opts.surfaces;
339
- // Step 1 — project dir. Default to `./<baseName>` if it exists.
340
- const guess = resolve(opts.baseName);
422
+ // Step 1 — project dir. Prefer the current Hatchkit project when cwd
423
+ // is inside one; otherwise default to `./<baseName>` if it exists.
424
+ const manifestGuess = inferProjectDir(process.cwd());
425
+ const guess = manifestGuess ?? resolve(opts.baseName);
341
426
  const guessExists = existsSync(guess);
342
427
  const wantWrite = await confirm({
343
428
  message: guessExists
@@ -355,6 +440,12 @@ async function resolveSurfaces(opts) {
355
440
  return existsSync(abs) ? true : `No such directory: ${abs}`;
356
441
  },
357
442
  })).trim());
443
+ const manifest = readManifest(projectDir);
444
+ const defaultMode = manifest?.surfaces === "server-only"
445
+ ? "server-only"
446
+ : manifest?.surfaces === "client-only"
447
+ ? "client-only"
448
+ : "shared";
358
449
  // Step 2 — surfaces.
359
450
  const mode = (await select({
360
451
  message: "What surfaces does this project have?",
@@ -370,7 +461,7 @@ async function resolveSurfaces(opts) {
370
461
  value: "separate",
371
462
  },
372
463
  ],
373
- default: "shared",
464
+ default: defaultMode,
374
465
  }));
375
466
  // Step 3 — env dirs per surface. Auto-detect common monorepo layouts
376
467
  // (packages/server, apps/web, etc.) and offer the first match as the
@@ -442,6 +533,20 @@ function detectSurfaceDir(projectDir, candidates) {
442
533
  }
443
534
  return ".";
444
535
  }
536
+ function inferProjectDir(startDir) {
537
+ if (!startDir)
538
+ return undefined;
539
+ let cur = startDir;
540
+ for (let i = 0; i < 4; i++) {
541
+ if (existsSync(join(cur, MANIFEST_FILENAME)))
542
+ return cur;
543
+ const up = dirname(cur);
544
+ if (up === cur)
545
+ break;
546
+ cur = up;
547
+ }
548
+ return undefined;
549
+ }
445
550
  function relativeTo(p, from = process.cwd()) {
446
551
  const rel = relative(from, p);
447
552
  return rel === "" ? "." : rel.startsWith("..") ? p : `./${rel}`;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/provision/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACvE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EACL,eAAe,EACf,yBAAyB,EACzB,eAAe,EACf,eAAe,EACf,YAAY,EACZ,QAAQ,EACR,aAAa,GACd,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3E,OAAO,EAEL,qBAAqB,EACrB,wBAAwB,GACzB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAEL,qBAAqB,EACrB,wBAAwB,GACzB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAsB,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACjG,OAAO,EAEL,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,aAAa,CAAC;AACrB,OAAO,EAEL,uBAAuB,EACvB,uBAAuB,EACvB,yBAAyB,GAC1B,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,+BAA+B,EAC/B,iCAAiC,GAClC,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAsG1E,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,IAAsB;IACvD,MAAM,SAAS,GAAG,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACrD,IAAI,SAAS,KAAK,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,SAAS,EAAE,CAAC,CAAC;IAE3E,oEAAoE;IACpE,qEAAqE;IACrE,0DAA0D;IAC1D,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC;QAAE,MAAM,eAAe,EAAE,CAAC;IACjE,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC;QAAE,MAAM,eAAe,EAAE,CAAC;IACjE,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC;QAAE,MAAM,eAAe,EAAE,CAAC;IACjE,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,MAAM,YAAY,EAAE,CAAC;IAC3D,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QAAE,MAAM,yBAAyB,EAAE,CAAC;IAChF,mEAAmE;IACnE,gEAAgE;IAChE,+DAA+D;IAC/D,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC;IACvD,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACpC,MAAM,EAAE,SAAS,EAAE,4BAA4B,EAAE,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC;QACjF,MAAM,SAAS,EAAE,CAAC;QAClB,MAAM,4BAA4B,EAAE,CAAC;IACvC,CAAC;IACD,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAC7C,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC;QACnD,MAAM,SAAS,EAAE,CAAC;IACpB,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,IAAI,CAAC,CAAC;IAC7C,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,KAAK,CAAC;IAEhD,sDAAsD;IACtD,IAAI,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;IACzC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;QACxD,cAAc,GAAG,MAAM,gBAAgB,EAAE,CAAC;IAC5C,CAAC;IAED,MAAM,OAAO,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;IACtC,MAAM,eAAe,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC;QACzD,CAAC,CAAC,MAAM,sBAAsB,CAAC,IAAI,EAAE,QAAQ,CAAC;QAC9C,CAAC,CAAC,SAAS,CAAC;IAEd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,uBAAuB,IAAI,CAAC,QAAQ,+BAA+B,CAAC,CAAC,CAAC;IAE7F,kBAAkB;IAClB,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QACxC,IAAI,QAAQ,EAAE,IAAI,KAAK,UAAU,EAAE,CAAC;YAClC,KAAK,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAU,EAAE,CAAC;gBACjD,MAAM,WAAW,GAAG,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,EAAE,CAAC;gBAC/C,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,+BAA+B,WAAW,EAAE,EAAE,GAAG,EAAE,CAC/E,wBAAwB,CAAC,WAAW,CAAC,CACtC,CAAC;gBACF,IAAI,CAAC,aAAa,EAAE,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;gBACrE,YAAY,CAAC,OAAO,EAAE,IAAI,EAAE,kBAAkB,CAAC,GAAG,EAAE,IAAI,KAAK,QAAQ,CAAC,EAAE,YAAY,CAAC,CAAC;YACxF,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC;YAClC,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,+BAA+B,WAAW,EAAE,EAAE,GAAG,EAAE,CAC/E,wBAAwB,CAAC,WAAW,CAAC,CACtC,CAAC;YACF,IAAI,CAAC,aAAa,EAAE,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;YACrE,kEAAkE;YAClE,6DAA6D;YAC7D,+DAA+D;YAC/D,aAAa;YACb,IAAI,QAAQ,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,aAAa,CAAC,EAAE,CAAC;gBAChF,YAAY,CAAC,OAAO,EAAE,QAAQ,EAAE,kBAAkB,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,YAAY,CAAC,CAAC;YAChF,CAAC;YACD,IAAI,QAAQ,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,aAAa,CAAC,EAAE,CAAC;gBAChF,YAAY,CAAC,OAAO,EAAE,QAAQ,EAAE,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,YAAY,CAAC,CAAC;YAC/E,CAAC;QACH,CAAC;IACH,CAAC;IAED,kBAAkB;IAClB,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QACxC,IAAI,QAAQ,EAAE,IAAI,KAAK,UAAU,EAAE,CAAC;YAClC,KAAK,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAU,EAAE,CAAC;gBACjD,MAAM,WAAW,GAAG,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,EAAE,CAAC;gBAC/C,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,+BAA+B,WAAW,EAAE,EAAE,GAAG,EAAE,CAC/E,wBAAwB,CAAC,WAAW,CAAC,CACtC,CAAC;gBACF,IAAI,CAAC,aAAa,EAAE,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;gBACrE,YAAY,CAAC,OAAO,EAAE,IAAI,EAAE,kBAAkB,CAAC,GAAG,EAAE,IAAI,KAAK,QAAQ,CAAC,EAAE,YAAY,CAAC,CAAC;YACxF,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC;YAClC,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,+BAA+B,WAAW,EAAE,EAAE,GAAG,EAAE,CAC/E,wBAAwB,CAAC,WAAW,CAAC,CACtC,CAAC;YACF,IAAI,CAAC,aAAa,EAAE,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;YACrE,IAAI,QAAQ,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,aAAa,CAAC,EAAE,CAAC;gBAChF,YAAY,CAAC,OAAO,EAAE,QAAQ,EAAE,kBAAkB,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,YAAY,CAAC,CAAC;YAChF,CAAC;YACD,IAAI,QAAQ,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,aAAa,CAAC,EAAE,CAAC;gBAChF,YAAY,CAAC,OAAO,EAAE,QAAQ,EAAE,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,YAAY,CAAC,CAAC;YAC/E,CAAC;QACH,CAAC;IACH,CAAC;IAED,kDAAkD;IAClD,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QACxC,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC;QAC/D,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,MAAM,CACV,+GAA+G,CAChH,CACF,CAAC;QACJ,CAAC;aAAM,IAAI,CAAC,eAAe,EAAE,CAAC;YAC5B,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,MAAM,CACV,sEAAsE,IAAI,CAAC,QAAQ,GAAG,CACvF,CACF,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,4BAA4B,eAAe,EAAE,EAAE,GAAG,EAAE,CAChF,sBAAsB,CAAC,IAAI,CAAC,QAAQ,EAAE,eAAe,CAAC,CACvD,CAAC;YACF,IAAI,CAAC,aAAa,EAAE,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;YAC3F,YAAY,CAAC,OAAO,EAAE,QAAQ,EAAE,kBAAkB,CAAC,GAAG,CAAC,EAAE,YAAY,CAAC,CAAC;QACzE,CAAC;IACH,CAAC;IAED,yEAAyE;IACzE,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACrC,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC;QAC/D,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,MAAM,CACV,mGAAmG,CACpG,CACF,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,MAAM,GAAG,MAAM,WAAW,CAC9B,uCAAuC,IAAI,CAAC,QAAQ,MAAM,EAC1D,GAAG,EAAE,CAAC,qBAAqB,CAAC,GAAG,IAAI,CAAC,QAAQ,MAAM,EAAE,cAAc,CAAC,CACpE,CAAC;YACF,IAAI,CAAC,aAAa,EAAE,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,MAAM,EAAE,CAAC,CAAC;YAC5E,MAAM,OAAO,GAAG,MAAM,WAAW,CAC/B,uCAAuC,IAAI,CAAC,QAAQ,OAAO,EAC3D,GAAG,EAAE,CAAC,qBAAqB,CAAC,GAAG,IAAI,CAAC,QAAQ,OAAO,EAAE,cAAc,CAAC,CACrE,CAAC;YACF,IAAI,CAAC,aAAa,EAAE,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,OAAO,EAAE,CAAC,CAAC;YAC7E,+DAA+D;YAC/D,8DAA8D;YAC9D,oBAAoB;YACpB,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;YACvD,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;IAED,wEAAwE;IACxE,EAAE;IACF,4DAA4D;IAC5D,iEAAiE;IACjE,+DAA+D;IAC/D,qEAAqE;IACrE,mEAAmE;IACnE,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACpC,MAAM,UAAU,GAAG,QAAQ,EAAE,UAAU,CAAC;QACxC,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,MAAM,CACV,wJAAwJ,CACzJ,CACF,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,yBAAyB,CAAC,CAAC;YACjE,MAAM,QAAQ,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;YAC1C,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;gBACtB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,oDAAoD,CAAC,CAAC,CAAC;YAClF,CAAC;iBAAM,CAAC;gBACN,MAAM,EAAE,sBAAsB,EAAE,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC;gBACrE,MAAM,MAAM,GAAG,MAAM,sBAAsB,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,EAAE,UAAU,CAAC,CAAC;gBACrF,IAAI,CAAC,aAAa,EAAE,CAAC;oBACnB,OAAO,EAAE,OAAO;oBAChB,MAAM,EAAE,MAAM,CAAC,MAAM;oBACrB,MAAM,EAAE,MAAM,CAAC,MAAM;oBACrB,SAAS,EAAE,MAAM,CAAC,SAAS;oBAC3B,aAAa,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE;oBAC3C,gBAAgB,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK;oBACjD,yBAAyB,EAAE,MAAM,CAAC,WAAW,CAAC,cAAc;oBAC5D,qBAAqB,EAAE,MAAM,CAAC,qBAAqB;oBACnD,UAAU,EAAE,MAAM,CAAC,UAAU;yBAC1B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;yBACxB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;oBACzD,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;wBAC9B,EAAE,EAAE,CAAC,CAAC,EAAE;wBACR,OAAO,EAAE,CAAC,CAAC,OAAO;wBAClB,OAAO,EAAE,CAAC,CAAC,OAAO;qBACnB,CAAC,CAAC;iBACJ,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,mEAAmE;IACnE,EAAE;IACF,oEAAoE;IACpE,qEAAqE;IACrE,mDAAmD;IACnD,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAC7C,MAAM,UAAU,GAAG,QAAQ,EAAE,UAAU,CAAC;QACxC,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,MAAM,CACV,yGAAyG,CAC1G,CACF,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,yBAAyB,CAAC,CAAC;YACjE,MAAM,QAAQ,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;YAC1C,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;gBACtB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,6DAA6D,CAAC,CAAC,CAAC;YAC3F,CAAC;iBAAM,CAAC;gBACN,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,6BAA6B,QAAQ,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE,CACpF,+BAA+B,CAAC,QAAQ,CAAC,MAAM,CAAC,CACjD,CAAC;gBACF,IAAI,CAAC,aAAa,EAAE,CAAC;oBACnB,OAAO,EAAE,gBAAgB;oBACzB,MAAM,EAAE,MAAM,CAAC,MAAM;oBACrB,OAAO,EAAE,MAAM,CAAC,OAAO;oBACvB,SAAS,EAAE,MAAM,CAAC,SAAS;iBAC5B,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,6DAA6D;IAC7D,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACjC,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC;QAC/D,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,MAAM,CACV,qFAAqF,CACtF,CACF,CAAC;QACJ,CAAC;aAAM,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;YAC7C,gEAAgE;YAChE,6DAA6D;YAC7D,qDAAqD;YACrD,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,MAAM,CACV,iGAAiG,CAClG,CACF,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,QAAQ,GAA4B,MAAM,uBAAuB,CAAC;gBACtE,WAAW,EAAE,IAAI,CAAC,QAAQ;gBAC1B,UAAU,EAAE,QAAQ,CAAC,UAAU;aAChC,CAAC,CAAC;YACH,KAAK,MAAM,EAAE,IAAI,QAAQ,CAAC,YAAY,EAAE,CAAC;gBACvC,IAAI,CAAC,aAAa,EAAE,CAAC;oBACnB,OAAO,EAAE,IAAI;oBACb,SAAS,EAAE,EAAE,CAAC,SAAS;oBACvB,UAAU,EAAE,EAAE,CAAC,UAAU;oBACzB,OAAO,EAAE,EAAE,CAAC,OAAO;iBACpB,CAAC,CAAC;YACL,CAAC;YACD,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,uBAAuB,CAAC,QAAQ,CAAC,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;IAED,oDAAoD;IACpD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,EAAE,aAAa,CAAC,CAAC;IAC7D,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,SAAS,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAChE,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,KAAK,MAAM,KAAK,IAAI,CAAC,KAAK,EAAE,MAAM,CAAU,EAAE,CAAC;YAC7C,MAAM,KAAK,GAAG,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACzD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAS;YACjC,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,KAAK,IAAI,KAAK,MAAM,CAAC,CAAC;YACtE,MAAM,MAAM,GAAG,SAAS,IAAI,CAAC,QAAQ,MAAM,CAAC,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC;YACpE,aAAa,CAAC,IAAI,EAAE,GAAG,MAAM,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC;IAED,iEAAiE;IACjE,oCAAoC;IACpC,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,mEAAmE,CAAC,CAAC,CAAC;QAC7F,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,MAAM,QAAQ,GAAG,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAC9D,MAAM,OAAO,GAAG,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAC5D,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9C,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACzC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACxB,OAAO,CAAC,GAAG,CACT,aAAa,KAAK,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,MAAM,OAAO,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CACzF,CAAC;gBACJ,CAAC;gBACD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACvB,OAAO,CAAC,GAAG,CACT,aAAa,KAAK,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,MAAM,OAAO,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CACvF,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,MAAM,CACV,wBAAwB,MAAM,IAAI,IAAI,CAAC,QAAQ,uBAAuB;YACpE,kFAAkF,CACrF,CACF,CAAC;QACF,OAAO;IACT,CAAC;IAED,8CAA8C;IAC9C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAC,CAAC;IAC5F,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,MAAM,SAAS,GAAG,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAC7C,MAAM,QAAQ,GAAG,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAC3C,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QAE9D,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,MAAM,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACnE,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,QAAQ,EAAE,CAAC,CAAC;QACrD,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;YACnD,MAAM,IAAI,GAAG,YAAY,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;YAC/C,OAAO,CAAC,GAAG,CACT,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,kCAAkC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CACtF,CAAC;QACJ,CAAC;QACD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;YACnD,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAC5C,OAAO,CAAC,GAAG,CACT,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,qBAAqB,KAAK,CAAC,GAAG,CAAC,yBAAyB,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAClH,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,IACE,CAAC,YAAY;QACb,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC;YAClC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC;YACnC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,EACtC,CAAC;QACD,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,GAAG,CACP,mFAAmF;YACjF,6EAA6E;YAC7E,qEAAqE,CACxE,CACF,CAAC;IACJ,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,6BAA6B,MAAM,IAAI,IAAI,CAAC,QAAQ,UAAU,CAAC,CAAC,CAAC;AACzF,CAAC;AAED,8EAA8E;AAC9E,qBAAqB;AACrB,8EAA8E;AAE9E;;aAEa;AACb,KAAK,UAAU,eAAe,CAAC,IAAsB;IACnD,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK;QAAE,OAAO,IAAI,CAAC;IACzC,IAAI,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC,QAAQ,CAAC;IAExC,gEAAgE;IAChE,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACrC,MAAM,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IACtC,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC;QAC9B,OAAO,EAAE,WAAW;YAClB,CAAC,CAAC,qBAAqB,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,sCAAsC;YAC1F,CAAC,CAAC,wCAAwC;QAC5C,OAAO,EAAE,IAAI;KACd,CAAC,CAAC;IACH,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAE5B,MAAM,UAAU,GAAG,OAAO,CACxB,CACE,MAAM,KAAK,CAAC;QACV,OAAO,EAAE,sCAAsC;QAC/C,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,QAAQ,EAAE;QAC/D,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE;YACd,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YAC9B,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,sBAAsB,GAAG,EAAE,CAAC;QAC9D,CAAC;KACF,CAAC,CACH,CAAC,IAAI,EAAE,CACT,CAAC;IAEF,qBAAqB;IACrB,MAAM,IAAI,GAAG,CAAC,MAAM,MAAM,CAAc;QACtC,OAAO,EAAE,uCAAuC;QAChD,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,8DAA8D;gBACpE,KAAK,EAAE,QAAQ;aAChB;YACD,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE;YAC7C,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE;YAC7C;gBACE,IAAI,EAAE,oEAAoE;gBAC1E,KAAK,EAAE,UAAU;aAClB;SACF;QACD,OAAO,EAAE,QAAQ;KAClB,CAAC,CAAgB,CAAC;IAEnB,qEAAqE;IACrE,qEAAqE;IACrE,WAAW;IACX,MAAM,QAAQ,GAAa,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;IAChD,IAAI,IAAI,KAAK,aAAa,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;QACvE,MAAM,GAAG,GAAG,gBAAgB,CAAC,UAAU,EAAE;YACvC,iBAAiB;YACjB,aAAa;YACb,UAAU;YACV,QAAQ;YACR,EAAE,EAAE,wBAAwB;SAC7B,CAAC,CAAC;QACH,QAAQ,CAAC,YAAY,GAAG,OAAO,CAC7B,UAAU,EACV,CACE,MAAM,KAAK,CAAC;YACV,OAAO,EAAE,kDAAkD;YAC3D,OAAO,EAAE,GAAG;YACZ,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE;gBACd,MAAM,GAAG,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC1C,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,sBAAsB,GAAG,EAAE,CAAC;YAC9D,CAAC;SACF,CAAC,CACH,CAAC,IAAI,EAAE,CACT,CAAC;IACJ,CAAC;IACD,IAAI,IAAI,KAAK,aAAa,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;QACvE,MAAM,GAAG,GAAG,gBAAgB,CAAC,UAAU,EAAE;YACvC,iBAAiB;YACjB,cAAc;YACd,UAAU;YACV,aAAa;YACb,QAAQ;YACR,KAAK;YACL,EAAE,EAAE,wBAAwB;SAC7B,CAAC,CAAC;QACH,QAAQ,CAAC,YAAY,GAAG,OAAO,CAC7B,UAAU,EACV,CACE,MAAM,KAAK,CAAC;YACV,OAAO,EAAE,kDAAkD;YAC3D,OAAO,EAAE,GAAG;YACZ,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE;gBACd,MAAM,GAAG,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC1C,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,sBAAsB,GAAG,EAAE,CAAC;YAC9D,CAAC;SACF,CAAC,CACH,CAAC,IAAI,EAAE,CACT,CAAC;IACJ,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,KAAK,UAAU,sBAAsB,CACnC,IAAsB,EACtB,QAAyB;IAEzB,IAAI,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAEzD,IAAI,QAAQ,EAAE,UAAU,EAAE,CAAC;QACzB,IAAI,CAAC;YACH,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,yBAAyB,CAAC,CAAC;YACjE,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;YACnD,IAAI,QAAQ,EAAE,MAAM;gBAAE,OAAO,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACpE,CAAC;QAAC,MAAM,CAAC;YACP,gCAAgC;QAClC,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,CACb,MAAM,KAAK,CAAC;QACV,OAAO,EAAE,wBAAwB;QACjC,OAAO,EAAE,GAAG,IAAI,CAAC,QAAQ,MAAM;QAC/B,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;KAC1C,CAAC,CACH,CAAC,IAAI,EAAE,CAAC;IACT,OAAO,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AACnD,CAAC;AAED,SAAS,gBAAgB,CAAC,UAAkB,EAAE,UAAoB;IAChE,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,IAAI,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;YAAE,OAAO,CAAC,IAAI,GAAG,CAAC;IACvD,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,UAAU,CAAC,CAAS,EAAE,IAAI,GAAG,OAAO,CAAC,GAAG,EAAE;IACjD,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAC9B,OAAO,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;AAClE,CAAC;AAED,SAAS,WAAW,CAAC,QAAyB;IAC5C,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,mEAAmE;QACnE,OAAO;YACL,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;YAC5D,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;SAC7D,CAAC;IACJ,CAAC;IACD,MAAM,GAAG,GAAkB,EAAE,CAAC;IAC9B,IAAI,QAAQ,CAAC,YAAY,EAAE,CAAC;QAC1B,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,YAAY,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;IAC5F,CAAC;IACD,IAAI,QAAQ,CAAC,YAAY,EAAE,CAAC;QAC1B,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,YAAY,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;IAC5F,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;gCAEgC;AAChC,SAAS,YAAY,CACnB,OAAsB,EACtB,IAAyB,EACzB,KAAe,EACf,YAAqB;IAErB,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC;IACrD,IAAI,CAAC,MAAM;QAAE,OAAO;IACpB,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;IAChC,IAAI,YAAY;QAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;AACnD,CAAC;AAkBD,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,IAAwB;IAC3D,MAAM,SAAS,GAAG,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACrD,IAAI,SAAS,KAAK,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,SAAS,EAAE,CAAC,CAAC;IAE3E,2EAA2E;IAC3E,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC;QAAE,MAAM,eAAe,EAAE,CAAC;IACjE,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC;QAAE,MAAM,eAAe,EAAE,CAAC;IACjE,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC;QAAE,MAAM,eAAe,EAAE,CAAC;IACjE,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,MAAM,YAAY,EAAE,CAAC;IAE3D,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,6CAA6C,CAAC,CAAC,CAAC;IAC3E,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,IAAI,CAAC,QAAQ,kCAAkC,CAAC,CAAC,CAAC;IAE5F,qEAAqE;IACrE,qEAAqE;IACrE,sDAAsD;IACtD,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QACxC,KAAK,MAAM,IAAI,IAAI,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YACrD,MAAM,SAAS,CAAC,+BAA+B,IAAI,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CACvE,qBAAqB,CAAC,IAAI,CAAC,CAC5B,CAAC;QACJ,CAAC;IACH,CAAC;IACD,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QACxC,KAAK,MAAM,IAAI,IAAI,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YACrD,MAAM,SAAS,CAAC,+BAA+B,IAAI,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CACvE,qBAAqB,CAAC,IAAI,CAAC,CAC5B,CAAC;QACJ,CAAC;IACH,CAAC;IACD,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QACxC,MAAM,SAAS,CAAC,gCAAgC,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CACjF,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,CACnC,CAAC;IACJ,CAAC;IACD,oCAAoC;IACpC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACrC,KAAK,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,MAAM,CAAU,EAAE,CAAC;YAC3C,MAAM,IAAI,GAAG,GAAG,IAAI,CAAC,QAAQ,IAAI,GAAG,EAAE,CAAC;YACvC,MAAM,SAAS,CAAC,4BAA4B,IAAI,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CACpE,kBAAkB,CAAC,IAAI,CAAC,CACzB,CAAC;QACJ,CAAC;IACH,CAAC;IAED,iEAAiE;IACjE,qEAAqE;IACrE,sDAAsD;IACtD,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAC7C,IAAI,MAA0B,CAAC;QAC/B,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,yBAAyB,CAAC,CAAC;YACjE,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QACjD,CAAC;QACD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,MAAM,CACV,wFAAwF,CACzF,CACF,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,SAAS,CAAC,yCAAyC,MAAM,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CACnF,iCAAiC,CAAC,MAAM,CAAC,CAC1C,CAAC;QACJ,CAAC;IACH,CAAC;IAED,qEAAqE;IACrE,qEAAqE;IACrE,oEAAoE;IACpE,iEAAiE;IACjE,+DAA+D;IAC/D,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACpC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,0CAA0C,IAAI,CAAC,QAAQ,WAAW,CAAC,CAAC,CAAC;QAC7F,CAAC;aAAM,CAAC;YACN,IAAI,CAAC;gBACH,MAAM,0BAA0B,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;YACpE,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,uBAAwB,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YAC1E,CAAC;QACH,CAAC;IACH,CAAC;IAED,qEAAqE;IACrE,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACjC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,2CAA2C,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QACrF,CAAC;aAAM,CAAC;YACN,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,yBAAyB,CAAC;oBAC7C,WAAW,EAAE,IAAI,CAAC,QAAQ;oBAC1B,UAAU,EAAE,IAAI,CAAC,UAAU;iBAC5B,CAAC,CAAC;gBACH,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAChC,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,GAAG,CAAC,qCAAqC,IAAI,CAAC,QAAQ,iBAAiB,CAAC,CAC/E,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;wBAC/B,MAAM,MAAM,GAAG,CAAC,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;wBAC3E,OAAO,CAAC,GAAG,CACT,KAAK,MAAM,iCAAiC,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,GAAG,CACpH,CAAC;oBACJ,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,0BAA2B,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YAC7E,CAAC;QACH,CAAC;IACH,CAAC;IAED,wEAAwE;IACxE,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,EAAE,aAAa,CAAC,CAAC;IAC7D,MAAM,WAAW,GAAG;QAClB,GAAG,IAAI,CAAC,QAAQ,iBAAiB;QACjC,GAAG,IAAI,CAAC,QAAQ,kBAAkB;QAClC,GAAG,IAAI,CAAC,QAAQ,iBAAiB;QACjC,GAAG,IAAI,CAAC,QAAQ,kBAAkB;QAClC,qEAAqE;QACrE,GAAG,IAAI,CAAC,QAAQ,UAAU;QAC1B,GAAG,IAAI,CAAC,QAAQ,WAAW;KAC5B,CAAC;IACF,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;QAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAChC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YAAE,SAAS;QAChC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,kBAAkB,IAAI,EAAE,CAAC,CAAC,CAAC;YACjD,SAAS;QACX,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,CAAC;QACb,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,CAAC,GAAG,EAAE,CAAC;AAChB,CAAC;AAED;;iDAEiD;AACjD,SAAS,kBAAkB,CAAC,QAAgB;IAC1C,OAAO,CAAC,QAAQ,EAAE,GAAG,QAAQ,SAAS,EAAE,GAAG,QAAQ,SAAS,CAAC,CAAC;AAChE,CAAC;AAED;;;;;0DAK0D;AAC1D,KAAK,UAAU,0BAA0B,CAAC,IAA6B;IACrE,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC;IACtD,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,yBAAyB,CAAC,CAAC;IACjE,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,4BAA4B,CAAC,CAAC;IACrE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;QACrB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,sEAAsE,CAAC,CAAC,CAAC;QAC/F,OAAO;IACT,CAAC;IACD,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC/C,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;QACtB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC,CAAC;QAChF,OAAO;IACT,CAAC;IACD,MAAM,GAAG,GAAG,MAAM,YAAY,EAAE,CAAC;IACjC,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,CAAC;QACnB,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,MAAM,CAAC,sEAAsE,CAAC,CACrF,CAAC;QACF,OAAO;IACT,CAAC;IACD,MAAM,EAAE,GAAG,IAAI,aAAa,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,QAAQ,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC;IAChF,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,kBAAkB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC1D,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,mBAAmB,QAAQ,CAAC,MAAM,0BAA0B,CAAC,CAAC,CAAC;QACrF,OAAO;IACT,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACtD,MAAM,MAAM,GAAG,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;IACrC,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAClC,CAAC,CAAC,QAAQ,EAAE,IAAI,CACd,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,IAAI,KAAK,SAAS;QACpB,CAAC,CAAC,KAAK,KAAK,IAAI;QAChB,CAAC,CAAC,KAAK,EAAE,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CACxD,CACF,CAAC;IACF,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,2CAA2C,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACtF,OAAO;IACT,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC5B,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC;QAC/B,IAAI,CAAC,EAAE;YAAE,SAAS;QAClB,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,KAAK,IAAI,GAAG,CAAC;QAC3E,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,sBAAsB,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAC5D,MAAM,GAAG,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACrE,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,wBAAwB,OAAO,EAAE,CAAC,CAAC;IACzD,CAAC;IACD,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,GAAG,CACP,uHAAuH,CACxH,CACF,CAAC;AACJ,CAAC;AAED;6BAC6B;AAC7B,KAAK,UAAU,SAAS,CACtB,KAAa,EACb,MAA2B,EAC3B,EAA0C;IAE1C,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC;QACzD,OAAO;IACT,CAAC;IACD,MAAM,GAAG,GAAG,CAAC,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC;IAC1C,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;IACnC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,EAAE,EAAE,CAAC;QAC1B,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,iBAAiB,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpB,sEAAsE;QACtE,kCAAkC;QAClC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,OAAQ,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAC1D,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E,KAAK,UAAU,WAAW,CAAI,KAAa,EAAE,EAAoB;IAC/D,MAAM,GAAG,GAAG,CAAC,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC;IAC1C,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;IACnC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,EAAE,EAAE,CAAC;QACvB,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACvB,OAAO,GAAG,CAAC;IACb,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpB,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC;AAED,KAAK,UAAU,gBAAgB;IAC7B,MAAM,OAAO,GAAG,MAAM,iBAAiB,EAAE,CAAC;IAC1C,MAAM,MAAM,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACxC,MAAM,EAAE,GAAG,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3C,MAAM,EAAE,GAAG,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3C,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,aAAa,CAAC;IAC9B,MAAM,IAAI,GAAG,EAAE,CAAC;IAEhB,MAAM,OAAO,GAAG;QACd,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACpB,IAAI,EAAE,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;YACnF,KAAK,EAAE,CAAC,CAAC,EAAE;SACZ,CAAC,CAAC;QACH,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE;QACnE,EAAE,IAAI,EAAE,0CAA0C,EAAE,KAAK,EAAE,IAAI,EAAE;KAClE,CAAC;IAEF,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC;QAC1B,OAAO,EAAE,yDAAyD;QAClE,OAAO;KACR,CAAC,CAAC;IAEH,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,SAAS,CAAC;IACtC,IAAI,MAAM,KAAK,OAAO;QAAE,OAAO,MAAM,CAAC;IAEtC,gBAAgB;IAChB,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC;QACtB,OAAO,EAAE,4EAA4E;QACrF,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE;YACd,MAAM,CAAC,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAC;YAClC,IAAI,CAAC,CAAC;gBAAE,OAAO,iBAAiB,CAAC;YACjC,IAAI,CAAC,mEAAmE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;gBACjF,OAAO,wCAAwC,CAAC;YAClD,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;KACF,CAAC,CAAC;IACH,MAAM,IAAI,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC;IACvC,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,2BAA2B,IAAI,EAAE,EAAE,GAAG,EAAE,CACxE,kBAAkB,CAAC,IAAI,CAAC,CACzB,CAAC;IACF,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,MAAM,CACV,KAAK,OAAO,CAAC,IAAI,qBAAqB,OAAO,CAAC,MAAM,8FAA8F,OAAO,CAAC,EAAE,EAAE,CAC/J,CACF,CAAC;IACF,OAAO,OAAO,CAAC,EAAE,CAAC;AACpB,CAAC;AAED;;;;;cAKc;AACd,SAAS,kBAAkB,CAAC,CAAkB,EAAE,SAAkB;IAChE,OAAO,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,eAAe,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,kBAAkB,CAAC,CAAkB,EAAE,SAAkB;IAChE,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,CAAC,4BAA4B,CAAC,CAAC,MAAM,EAAE,EAAE,8BAA8B,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC9F,CAAC;IACD,OAAO;QACL,qBAAqB,CAAC,CAAC,MAAM,EAAE;QAC/B,uBAAuB,CAAC,CAAC,QAAQ,EAAE;QACnC,2BAA2B,CAAC,CAAC,YAAY,EAAE;KAC5C,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,CAAgB;IAC1C,OAAO;QACL,2BAA2B,CAAC,CAAC,MAAM,EAAE;QACrC,+BAA+B,CAAC,CAAC,SAAS,EAAE;QAC5C,gCAAgC,CAAC,CAAC,MAAM,EAAE;QAC1C,oCAAoC,CAAC,CAAC,SAAS,EAAE;KAClD,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,CAAe;IACtC,OAAO,CAAC,kBAAkB,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AACxC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/provision/index.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ export interface OpenpanelClient {
4
4
  clientSecret: string;
5
5
  apiUrl: string;
6
6
  }
7
+ export declare function openpanelProjectExists(clientName: string): Promise<boolean>;
7
8
  export declare function provisionOpenpanelClient(clientName: string): Promise<OpenpanelClient>;
8
9
  export type DeleteResult = "deleted" | "not-found";
9
10
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"openpanel.d.ts","sourceRoot":"","sources":["../../src/provision/openpanel.ts"],"names":[],"mappings":"AAqBA,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;CAChB;AAqBD,wBAAsB,wBAAwB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CA+E3F;AAED,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,WAAW,CAAC;AAEnD;;;;GAIG;AACH,wBAAsB,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAoCrF"}
1
+ {"version":3,"file":"openpanel.d.ts","sourceRoot":"","sources":["../../src/provision/openpanel.ts"],"names":[],"mappings":"AAqBA,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;CAChB;AA0BD,wBAAsB,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAsBjF;AAED,wBAAsB,wBAAwB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CA+E3F;AAED,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,WAAW,CAAC;AAEnD;;;;GAIG;AACH,wBAAsB,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAoCrF"}
@@ -21,17 +21,40 @@ import { SECRET_KEYS, deleteSecret, getSecret, setSecret } from "../utils/secret
21
21
  * — separate from the client id slot so we can target the right row. */
22
22
  const projectIdKey = (clientName) => SECRET_KEYS.openpanelClientSecret(`${clientName}:project-id`);
23
23
  const clientIdKey = (clientName) => SECRET_KEYS.openpanelClientSecret(`${clientName}:id`);
24
- function buildHeaders(rootClientId, rootClientSecret) {
25
- return {
24
+ function buildHeaders(rootClientId, rootClientSecret, options = {}) {
25
+ const headers = {
26
26
  "openpanel-client-id": rootClientId,
27
27
  "openpanel-client-secret": rootClientSecret,
28
- "Content-Type": "application/json",
29
28
  Accept: "application/json",
30
29
  };
30
+ if (options.jsonBody)
31
+ headers["Content-Type"] = "application/json";
32
+ return headers;
31
33
  }
32
34
  function resolveManageBase(url, apiUrl) {
33
35
  return `${(apiUrl ?? url).replace(/\/$/, "")}/manage`;
34
36
  }
37
+ export async function openpanelProjectExists(clientName) {
38
+ const cfg = await ensureOpenpanel();
39
+ const { url, apiUrl, rootClientId, rootClientSecret } = cfg;
40
+ const cachedSecret = await getSecret(SECRET_KEYS.openpanelClientSecret(clientName));
41
+ const cachedId = await getSecret(clientIdKey(clientName));
42
+ if (cachedSecret && cachedId)
43
+ return true;
44
+ const manageBase = resolveManageBase(url, apiUrl);
45
+ const res = await fetch(`${manageBase}/projects`, {
46
+ headers: buildHeaders(rootClientId, rootClientSecret),
47
+ });
48
+ if (!res.ok) {
49
+ const text = await res.text().catch(() => "");
50
+ throw new Error(`OpenPanel preflight failed: ${res.status} ${res.statusText}${text ? ` — ${text}` : ""}`);
51
+ }
52
+ const raw = (await res.json());
53
+ const projects = Array.isArray(raw)
54
+ ? raw
55
+ : (raw.data ?? []);
56
+ return projects.some((project) => project.name === clientName || project.id === clientName);
57
+ }
35
58
  export async function provisionOpenpanelClient(clientName) {
36
59
  const cfg = await ensureOpenpanel();
37
60
  const { url, apiUrl, rootClientId, rootClientSecret } = cfg;
@@ -47,7 +70,7 @@ export async function provisionOpenpanelClient(clientName) {
47
70
  apiUrl: manageBase,
48
71
  };
49
72
  }
50
- const headers = buildHeaders(rootClientId, rootClientSecret);
73
+ const headers = buildHeaders(rootClientId, rootClientSecret, { jsonBody: true });
51
74
  // Step 1: create the project. The API authenticates the organization
52
75
  // from the root client's auth — don't send organizationSlug.
53
76
  const projectRes = await fetch(`${manageBase}/projects`, {
@@ -1 +1 @@
1
- {"version":3,"file":"openpanel.js","sourceRoot":"","sources":["../../src/provision/openpanel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"openpanel.js","sourceRoot":"","sources":["../../src/provision/openpanel.ts"],"names":[],"mappings":"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"}
@@ -3,8 +3,18 @@ export interface PlausibleSite {
3
3
  domain: string;
4
4
  baseUrl: string;
5
5
  scriptUrl: string;
6
+ /** True only when this run created a remote Plausible site through the Sites API. */
7
+ created: boolean;
8
+ /** True when the Sites API is unavailable and Hatchkit can only write browser env. */
9
+ manual: boolean;
6
10
  }
7
11
  export type DeleteResult = "deleted" | "not-found";
12
+ export declare class PlausibleSitesApiUnavailableError extends Error {
13
+ readonly baseUrl: string;
14
+ readonly status: number;
15
+ constructor(baseUrl: string, status: number, detail?: string);
16
+ }
17
+ export declare function plausibleSiteExists(domain: string): Promise<boolean>;
8
18
  export declare function provisionPlausibleSite(projectName: string, domain: string): Promise<PlausibleSite>;
9
19
  export declare function deletePlausibleSite(projectName: string): Promise<DeleteResult>;
10
20
  //# sourceMappingURL=plausible.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"plausible.d.ts","sourceRoot":"","sources":["../../src/provision/plausible.ts"],"names":[],"mappings":"AAYA,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,WAAW,CAAC;AA8BnD,wBAAsB,sBAAsB,CAC1C,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,aAAa,CAAC,CA6DxB;AAED,wBAAsB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAkBpF"}
1
+ {"version":3,"file":"plausible.d.ts","sourceRoot":"","sources":["../../src/provision/plausible.ts"],"names":[],"mappings":"AAYA,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,qFAAqF;IACrF,OAAO,EAAE,OAAO,CAAC;IACjB,sFAAsF;IACtF,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,WAAW,CAAC;AAEnD,qBAAa,iCAAkC,SAAQ,KAAK;IAExD,QAAQ,CAAC,OAAO,EAAE,MAAM;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM;gBADd,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACvB,MAAM,CAAC,EAAE,MAAM;CAWlB;AA6DD,wBAAsB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAS1E;AAED,wBAAsB,sBAAsB,CAC1C,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,aAAa,CAAC,CAwExB;AAED,wBAAsB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAkBpF"}
@@ -8,6 +8,20 @@
8
8
  */
9
9
  import { ensurePlausible } from "../config.js";
10
10
  import { SECRET_KEYS, deleteSecret, getSecret, setSecret } from "../utils/secrets.js";
11
+ export class PlausibleSitesApiUnavailableError extends Error {
12
+ baseUrl;
13
+ status;
14
+ constructor(baseUrl, status, detail) {
15
+ super(`Plausible Sites API is not available at ${baseUrl}. ` +
16
+ "Plausible Community Edition/self-hosted does not include the Sites API, " +
17
+ "and Plausible Cloud requires Sites API access. " +
18
+ "Create/confirm the site manually in Plausible, or configure Hatchkit with a Sites API-capable Plausible account." +
19
+ (detail ? ` Response: ${detail}` : ""));
20
+ this.baseUrl = baseUrl;
21
+ this.status = status;
22
+ this.name = "PlausibleSitesApiUnavailableError";
23
+ }
24
+ }
11
25
  function siteDomainKey(projectName) {
12
26
  return SECRET_KEYS.plausibleSiteDomain(projectName);
13
27
  }
@@ -21,30 +35,68 @@ function authHeaders(apiKey) {
21
35
  function siteUrl(baseUrl, domain) {
22
36
  return `${baseUrl.replace(/\/$/, "")}/api/v1/sites/${encodeURIComponent(domain)}`;
23
37
  }
38
+ async function responseText(res) {
39
+ return res.text().catch(() => "");
40
+ }
41
+ function isSitesApiUnavailableStatus(status) {
42
+ return status === 406;
43
+ }
44
+ function isCreateSitesApiUnavailableStatus(status) {
45
+ return status === 404 || isSitesApiUnavailableStatus(status);
46
+ }
47
+ function makeSite(projectName, domain, baseUrl, opts) {
48
+ return {
49
+ projectName,
50
+ domain,
51
+ baseUrl,
52
+ scriptUrl: `${baseUrl}/js/script.js`,
53
+ created: opts.created,
54
+ manual: opts.manual ?? false,
55
+ };
56
+ }
24
57
  async function getSite(baseUrl, apiKey, domain) {
25
58
  const res = await fetch(siteUrl(baseUrl, domain), { headers: authHeaders(apiKey) });
26
59
  if (res.status === 404)
27
60
  return false;
28
61
  if (!res.ok) {
29
- const text = await res.text().catch(() => "");
62
+ const text = await responseText(res);
63
+ if (isSitesApiUnavailableStatus(res.status)) {
64
+ throw new PlausibleSitesApiUnavailableError(baseUrl, res.status, text);
65
+ }
30
66
  throw new Error(`Plausible get site failed: ${res.status} ${res.statusText}${text ? ` — ${text}` : ""}`);
31
67
  }
32
68
  return true;
33
69
  }
70
+ export async function plausibleSiteExists(domain) {
71
+ const cfg = await ensurePlausible();
72
+ const baseUrl = cfg.url.replace(/\/$/, "");
73
+ try {
74
+ return await getSite(baseUrl, cfg.apiKey, domain.trim().toLowerCase());
75
+ }
76
+ catch (err) {
77
+ if (err instanceof PlausibleSitesApiUnavailableError)
78
+ return false;
79
+ throw err;
80
+ }
81
+ }
34
82
  export async function provisionPlausibleSite(projectName, domain) {
35
83
  const cfg = await ensurePlausible();
36
84
  const baseUrl = cfg.url.replace(/\/$/, "");
37
85
  const normalizedDomain = domain.trim().toLowerCase();
38
86
  const cachedDomain = await getSecret(siteDomainKey(projectName));
39
87
  if (cachedDomain) {
40
- const exists = await getSite(baseUrl, cfg.apiKey, cachedDomain);
88
+ let exists = false;
89
+ try {
90
+ exists = await getSite(baseUrl, cfg.apiKey, cachedDomain);
91
+ }
92
+ catch (err) {
93
+ if (err instanceof PlausibleSitesApiUnavailableError) {
94
+ return makeSite(projectName, cachedDomain, baseUrl, { created: false, manual: true });
95
+ }
96
+ throw err;
97
+ }
41
98
  if (exists) {
42
- return {
43
- projectName,
44
- domain: cachedDomain,
45
- baseUrl,
46
- scriptUrl: `${baseUrl}/js/script.js`,
47
- };
99
+ return makeSite(projectName, cachedDomain, baseUrl, { created: false });
48
100
  }
49
101
  }
50
102
  const body = {
@@ -64,25 +116,34 @@ export async function provisionPlausibleSite(projectName, domain) {
64
116
  body: JSON.stringify(body),
65
117
  });
66
118
  if (!res.ok) {
67
- const text = await res.text().catch(() => "");
119
+ const text = await responseText(res);
120
+ if (isCreateSitesApiUnavailableStatus(res.status)) {
121
+ await setSecret(siteDomainKey(projectName), normalizedDomain);
122
+ return makeSite(projectName, normalizedDomain, baseUrl, { created: false, manual: true });
123
+ }
68
124
  const alreadyExists = res.status === 409 ||
69
125
  (res.status === 422 && /already|taken|exists/i.test(text)) ||
70
126
  (res.status === 400 && /already|taken|exists/i.test(text));
71
127
  if (!alreadyExists) {
72
128
  throw new Error(`Plausible create site failed: ${res.status} ${res.statusText}${text ? ` — ${text}` : ""}`);
73
129
  }
74
- const exists = await getSite(baseUrl, cfg.apiKey, normalizedDomain);
130
+ let exists = false;
131
+ try {
132
+ exists = await getSite(baseUrl, cfg.apiKey, normalizedDomain);
133
+ }
134
+ catch (err) {
135
+ if (err instanceof PlausibleSitesApiUnavailableError) {
136
+ await setSecret(siteDomainKey(projectName), normalizedDomain);
137
+ return makeSite(projectName, normalizedDomain, baseUrl, { created: false, manual: true });
138
+ }
139
+ throw err;
140
+ }
75
141
  if (!exists) {
76
142
  throw new Error(`Plausible reports ${normalizedDomain} already exists, but it is not readable.`);
77
143
  }
78
144
  }
79
145
  await setSecret(siteDomainKey(projectName), normalizedDomain);
80
- return {
81
- projectName,
82
- domain: normalizedDomain,
83
- baseUrl,
84
- scriptUrl: `${baseUrl}/js/script.js`,
85
- };
146
+ return makeSite(projectName, normalizedDomain, baseUrl, { created: res.ok });
86
147
  }
87
148
  export async function deletePlausibleSite(projectName) {
88
149
  const cfg = await ensurePlausible();
@@ -92,7 +153,7 @@ export async function deletePlausibleSite(projectName) {
92
153
  headers: authHeaders(cfg.apiKey),
93
154
  });
94
155
  await deleteSecret(siteDomainKey(projectName));
95
- if (res.status === 404)
156
+ if (res.status === 404 || isSitesApiUnavailableStatus(res.status))
96
157
  return "not-found";
97
158
  if (!res.ok) {
98
159
  const text = await res.text().catch(() => "");
@@ -1 +1 @@
1
- {"version":3,"file":"plausible.js","sourceRoot":"","sources":["../../src/provision/plausible.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plausible.js","sourceRoot":"","sources":["../../src/provision/plausible.ts"],"names":[],"mappings":"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"}