@linktr.ee/linkapp 0.0.45 → 0.0.47

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 (76) hide show
  1. package/README.md +6 -6
  2. package/dev-server/{sheet → expanded}/main.tsx +2 -2
  3. package/dev-server/{sheet.html → expanded.html} +2 -2
  4. package/dev-server/preview/Preview.tsx +257 -245
  5. package/dist/commands/dev.d.ts.map +1 -1
  6. package/dist/commands/dev.js +21 -11
  7. package/dist/commands/dev.js.map +1 -1
  8. package/dist/lib/build/detect-layouts.d.ts +3 -1
  9. package/dist/lib/build/detect-layouts.d.ts.map +1 -1
  10. package/dist/lib/build/detect-layouts.js +16 -8
  11. package/dist/lib/build/detect-layouts.js.map +1 -1
  12. package/dist/lib/utils/setup-runtime.d.ts.map +1 -1
  13. package/dist/lib/utils/setup-runtime.js +26 -18
  14. package/dist/lib/utils/setup-runtime.js.map +1 -1
  15. package/dist/schema/config.schema.d.ts +2 -2
  16. package/dist/schema/config.schema.js +1 -1
  17. package/dist/schema/config.schema.js.map +1 -1
  18. package/dist/types.d.ts +1 -1
  19. package/dist/types.d.ts.map +1 -1
  20. package/package.json +2 -1
  21. package/dist/lib/config/resolve-config-path.d.ts +0 -19
  22. package/dist/lib/config/resolve-config-path.d.ts.map +0 -1
  23. package/dist/lib/config/resolve-config-path.js +0 -54
  24. package/dist/lib/config/resolve-config-path.js.map +0 -1
  25. package/dist/lib/deploy/artifacts.d.ts +0 -21
  26. package/dist/lib/deploy/artifacts.d.ts.map +0 -1
  27. package/dist/lib/deploy/artifacts.js +0 -35
  28. package/dist/lib/deploy/artifacts.js.map +0 -1
  29. package/dist/lib/deploy/confirmation.d.ts +0 -12
  30. package/dist/lib/deploy/confirmation.d.ts.map +0 -1
  31. package/dist/lib/deploy/confirmation.js +0 -30
  32. package/dist/lib/deploy/confirmation.js.map +0 -1
  33. package/dist/lib/deploy/context.d.ts +0 -44
  34. package/dist/lib/deploy/context.d.ts.map +0 -1
  35. package/dist/lib/deploy/context.js +0 -39
  36. package/dist/lib/deploy/context.js.map +0 -1
  37. package/dist/lib/deploy/execution.d.ts +0 -24
  38. package/dist/lib/deploy/execution.d.ts.map +0 -1
  39. package/dist/lib/deploy/execution.js +0 -29
  40. package/dist/lib/deploy/execution.js.map +0 -1
  41. package/dist/lib/deploy/output.d.ts +0 -16
  42. package/dist/lib/deploy/output.d.ts.map +0 -1
  43. package/dist/lib/deploy/output.js +0 -115
  44. package/dist/lib/deploy/output.js.map +0 -1
  45. package/dist/lib/deploy/preflight.d.ts +0 -9
  46. package/dist/lib/deploy/preflight.d.ts.map +0 -1
  47. package/dist/lib/deploy/preflight.js +0 -59
  48. package/dist/lib/deploy/preflight.js.map +0 -1
  49. package/dist/lib/utils/constants.d.ts +0 -42
  50. package/dist/lib/utils/constants.d.ts.map +0 -1
  51. package/dist/lib/utils/constants.js +0 -42
  52. package/dist/lib/utils/constants.js.map +0 -1
  53. package/dist/lib/utils/create-project.d.ts +0 -8
  54. package/dist/lib/utils/create-project.d.ts.map +0 -1
  55. package/dist/lib/utils/create-project.js +0 -48
  56. package/dist/lib/utils/create-project.js.map +0 -1
  57. package/dist/lib/utils/errors.d.ts +0 -49
  58. package/dist/lib/utils/errors.d.ts.map +0 -1
  59. package/dist/lib/utils/errors.js +0 -70
  60. package/dist/lib/utils/errors.js.map +0 -1
  61. package/dist/lib/utils/formatters.d.ts +0 -34
  62. package/dist/lib/utils/formatters.d.ts.map +0 -1
  63. package/dist/lib/utils/formatters.js +0 -59
  64. package/dist/lib/utils/formatters.js.map +0 -1
  65. package/dist/lib/utils/output.d.ts +0 -46
  66. package/dist/lib/utils/output.d.ts.map +0 -1
  67. package/dist/lib/utils/output.js +0 -66
  68. package/dist/lib/utils/output.js.map +0 -1
  69. package/dist/schema/index.d.ts +0 -8
  70. package/dist/schema/index.d.ts.map +0 -1
  71. package/dist/schema/index.js +0 -8
  72. package/dist/schema/index.js.map +0 -1
  73. package/dist/sdk/use-open-popup.d.ts +0 -23
  74. package/dist/sdk/use-open-popup.d.ts.map +0 -1
  75. package/dist/sdk/use-open-popup.js +0 -29
  76. package/dist/sdk/use-open-popup.js.map +0 -1
@@ -1,35 +0,0 @@
1
- import * as p from '@clack/prompts';
2
- import { generateManifestFiles } from './generate-manifest-files.js';
3
- import { packProject } from './pack-project.js';
4
- import { checkLinkAppExists } from './upload.js';
5
- import { pluralize } from '../utils/formatters.js';
6
- /**
7
- * Prepares all deployment artifacts including manifests and packed files.
8
- * Also checks if the LinkApp already exists on the platform.
9
- *
10
- * @param context - Deployment context
11
- * @returns Artifact preparation result
12
- */
13
- export async function prepareDeploymentArtifacts(context) {
14
- const s = p.spinner();
15
- // Generate manifest files from config
16
- s.start('Generating manifest files');
17
- await generateManifestFiles(context.projectPath);
18
- s.stop('Manifest files generated');
19
- // Check if LinkApp exists
20
- s.start('Checking LinkApp status');
21
- const apiUrl = context.options.endpoint ?? `${context.config.link_types_url}/link-types`;
22
- const exists = await checkLinkAppExists(apiUrl, context.linkAppId, context.accessToken);
23
- const action = exists ? 'Updating existing LinkApp' : 'Creating new LinkApp';
24
- s.stop(action);
25
- // Pack project files
26
- s.start('Packing project files');
27
- const packedFiles = await packProject({ projectPath: context.projectPath });
28
- s.stop(`Packed ${pluralize(packedFiles.length, 'item')}`);
29
- return {
30
- packedFiles,
31
- exists,
32
- apiUrl,
33
- };
34
- }
35
- //# sourceMappingURL=artifacts.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../../../src/lib/deploy/artifacts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAA;AACnC,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAA;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAelD;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,OAA0B;IAE1B,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAA;IAErB,sCAAsC;IACtC,CAAC,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAA;IACpC,MAAM,qBAAqB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;IAChD,CAAC,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAA;IAElC,0BAA0B;IAC1B,CAAC,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAA;IAClC,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,cAAc,aAAa,CAAA;IACxF,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,WAAW,CAAC,CAAA;IAEvF,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,sBAAsB,CAAA;IAC5E,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAEd,qBAAqB;IACrB,CAAC,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAA;IAChC,MAAM,WAAW,GAAG,MAAM,WAAW,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAA;IAC3E,CAAC,CAAC,IAAI,CAAC,UAAU,SAAS,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAAA;IAEzD,OAAO;QACL,WAAW;QACX,MAAM;QACN,MAAM;KACP,CAAA;AACH,CAAC"}
@@ -1,12 +0,0 @@
1
- import type { DeploymentContext } from './context.js';
2
- import type { ArtifactPreparationResult } from './artifacts.js';
3
- /**
4
- * Displays the files that will be uploaded and prompts the user for confirmation.
5
- *
6
- * @param context - Deployment context
7
- * @param artifacts - Prepared artifacts
8
- * @returns true if user confirms, false otherwise
9
- * @throws DeploymentCancelledError if user cancels deployment
10
- */
11
- export declare function confirmDeployment(context: DeploymentContext, artifacts: ArtifactPreparationResult): Promise<void>;
12
- //# sourceMappingURL=confirmation.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"confirmation.d.ts","sourceRoot":"","sources":["../../../src/lib/deploy/confirmation.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AACrD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAA;AAE/D;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,iBAAiB,EAC1B,SAAS,EAAE,yBAAyB,GACnC,OAAO,CAAC,IAAI,CAAC,CAmBf"}
@@ -1,30 +0,0 @@
1
- import * as p from '@clack/prompts';
2
- import { DeploymentCancelledError } from '../utils/errors.js';
3
- import { displayFileList } from '../utils/formatters.js';
4
- import { writeLine } from '../utils/output.js';
5
- /**
6
- * Displays the files that will be uploaded and prompts the user for confirmation.
7
- *
8
- * @param context - Deployment context
9
- * @param artifacts - Prepared artifacts
10
- * @returns true if user confirms, false otherwise
11
- * @throws DeploymentCancelledError if user cancels deployment
12
- */
13
- export async function confirmDeployment(context, artifacts) {
14
- // Skip confirmation if requested
15
- if (context.options.skipConfirm) {
16
- return;
17
- }
18
- // Show files to upload
19
- displayFileList(artifacts.packedFiles, 'Files to upload:');
20
- // Prompt for confirmation
21
- writeLine();
22
- const shouldDeploy = await p.confirm({
23
- message: `Deploy to ${context.env}?`,
24
- initialValue: true,
25
- });
26
- if (p.isCancel(shouldDeploy) || !shouldDeploy) {
27
- throw new DeploymentCancelledError();
28
- }
29
- }
30
- //# sourceMappingURL=confirmation.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"confirmation.js","sourceRoot":"","sources":["../../../src/lib/deploy/confirmation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAA;AACnC,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAA;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAI9C;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,OAA0B,EAC1B,SAAoC;IAEpC,iCAAiC;IACjC,IAAI,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QAChC,OAAM;IACR,CAAC;IAED,uBAAuB;IACvB,eAAe,CAAC,SAAS,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAA;IAE1D,0BAA0B;IAC1B,SAAS,EAAE,CAAA;IACX,MAAM,YAAY,GAAG,MAAM,CAAC,CAAC,OAAO,CAAC;QACnC,OAAO,EAAE,aAAa,OAAO,CAAC,GAAG,GAAG;QACpC,YAAY,EAAE,IAAI;KACnB,CAAC,CAAA;IAEF,IAAI,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;QAC9C,MAAM,IAAI,wBAAwB,EAAE,CAAA;IACtC,CAAC;AACH,CAAC"}
@@ -1,44 +0,0 @@
1
- import type { AppConfig } from '../../types.js';
2
- export type Environment = 'production' | 'qa';
3
- /**
4
- * Options for the deploy command
5
- */
6
- export interface DeployOptions {
7
- path?: string;
8
- endpoint?: string;
9
- qa?: boolean;
10
- skipBuild?: boolean;
11
- skipChecks?: boolean;
12
- force?: boolean;
13
- skipConfirm?: boolean;
14
- }
15
- /**
16
- * Deployment context containing all necessary information for deployment
17
- */
18
- export interface DeploymentContext {
19
- /** Environment to deploy to */
20
- env: Environment;
21
- /** App configuration (auth, URLs, etc.) */
22
- config: AppConfig;
23
- /** Absolute path to the LinkApp project */
24
- projectPath: string;
25
- /** LinkApp ID (kebab-cased manifest name) */
26
- linkAppId: string;
27
- /** OAuth access token */
28
- accessToken: string;
29
- /** Deployment start timestamp */
30
- startTime: number;
31
- /** Original deploy command options */
32
- options: DeployOptions;
33
- }
34
- /**
35
- * Initializes the deployment context by loading configuration,
36
- * authenticating, and preparing all necessary information.
37
- *
38
- * @param options - Deploy command options
39
- * @returns Deployment context
40
- * @throws AuthenticationError if not authenticated
41
- * @throws Error if configuration loading fails
42
- */
43
- export declare function initializeDeployment(options: DeployOptions): Promise<DeploymentContext>;
44
- //# sourceMappingURL=context.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/lib/deploy/context.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAM/C,MAAM,MAAM,WAAW,GAAG,YAAY,GAAG,IAAI,CAAA;AAE7C;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,EAAE,CAAC,EAAE,OAAO,CAAA;IACZ,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,+BAA+B;IAC/B,GAAG,EAAE,WAAW,CAAA;IAChB,2CAA2C;IAC3C,MAAM,EAAE,SAAS,CAAA;IACjB,2CAA2C;IAC3C,WAAW,EAAE,MAAM,CAAA;IACnB,6CAA6C;IAC7C,SAAS,EAAE,MAAM,CAAA;IACjB,yBAAyB;IACzB,WAAW,EAAE,MAAM,CAAA;IACnB,iCAAiC;IACjC,SAAS,EAAE,MAAM,CAAA;IACjB,sCAAsC;IACtC,OAAO,EAAE,aAAa,CAAA;CACvB;AAED;;;;;;;;GAQG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,iBAAiB,CAAC,CA2B5B"}
@@ -1,39 +0,0 @@
1
- import { getAppConfig } from '../auth/config.js';
2
- import { getToken } from '../auth/token-storage.js';
3
- import { resolveConfigPath, getLinkAppIdFromConfig } from '../config/resolve-config-path.js';
4
- import { AuthenticationError } from '../utils/errors.js';
5
- import { writeSection } from '../utils/output.js';
6
- /**
7
- * Initializes the deployment context by loading configuration,
8
- * authenticating, and preparing all necessary information.
9
- *
10
- * @param options - Deploy command options
11
- * @returns Deployment context
12
- * @throws AuthenticationError if not authenticated
13
- * @throws Error if configuration loading fails
14
- */
15
- export async function initializeDeployment(options) {
16
- const env = options.qa ? 'qa' : 'production';
17
- const config = await getAppConfig(env);
18
- const projectPath = options.path ?? process.cwd();
19
- // Resolve config path and extract LinkApp ID
20
- const configPath = resolveConfigPath(projectPath);
21
- const linkAppId = await getLinkAppIdFromConfig(configPath);
22
- // Display deployment header
23
- writeSection(`Deploying ${linkAppId} to ${env}`);
24
- // Check authentication
25
- const accessToken = getToken(config.auth.audience);
26
- if (!accessToken) {
27
- throw new AuthenticationError(env);
28
- }
29
- return {
30
- env,
31
- config,
32
- projectPath,
33
- linkAppId,
34
- accessToken,
35
- startTime: Date.now(),
36
- options,
37
- };
38
- }
39
- //# sourceMappingURL=context.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/lib/deploy/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAEhD,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AACnD,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAA;AAC5F,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAqCjD;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,OAAsB;IAEtB,MAAM,GAAG,GAAgB,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAA;IACzD,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,GAAG,CAAC,CAAA;IACtC,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,EAAE,CAAA;IAEjD,6CAA6C;IAC7C,MAAM,UAAU,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAA;IACjD,MAAM,SAAS,GAAG,MAAM,sBAAsB,CAAC,UAAU,CAAC,CAAA;IAE1D,4BAA4B;IAC5B,YAAY,CAAC,aAAa,SAAS,OAAO,GAAG,EAAE,CAAC,CAAA;IAEhD,uBAAuB;IACvB,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IAClD,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,IAAI,mBAAmB,CAAC,GAAG,CAAC,CAAA;IACpC,CAAC;IAED,OAAO;QACL,GAAG;QACH,MAAM;QACN,WAAW;QACX,SAAS;QACT,WAAW;QACX,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;QACrB,OAAO;KACR,CAAA;AACH,CAAC"}
@@ -1,24 +0,0 @@
1
- import type { DeploymentContext } from './context.js';
2
- import type { ArtifactPreparationResult } from './artifacts.js';
3
- /**
4
- * Upload result from the LinkTypes API
5
- */
6
- export interface UploadResult {
7
- linkType: {
8
- linkTypeId: string;
9
- status: string;
10
- updatedTimestamp?: number;
11
- };
12
- build?: {
13
- id: string;
14
- };
15
- }
16
- /**
17
- * Executes the deployment by uploading assets to the LinkTypes API.
18
- *
19
- * @param context - Deployment context
20
- * @param artifacts - Prepared artifacts
21
- * @returns Upload result from API
22
- */
23
- export declare function executeDeployment(context: DeploymentContext, artifacts: ArtifactPreparationResult): Promise<UploadResult>;
24
- //# sourceMappingURL=execution.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"execution.d.ts","sourceRoot":"","sources":["../../../src/lib/deploy/execution.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AACrD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAA;AAE/D;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE;QACR,UAAU,EAAE,MAAM,CAAA;QAClB,MAAM,EAAE,MAAM,CAAA;QACd,gBAAgB,CAAC,EAAE,MAAM,CAAA;KAC1B,CAAA;IACD,KAAK,CAAC,EAAE;QACN,EAAE,EAAE,MAAM,CAAA;KACX,CAAA;CACF;AAED;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,iBAAiB,EAC1B,SAAS,EAAE,yBAAyB,GACnC,OAAO,CAAC,YAAY,CAAC,CAoBvB"}
@@ -1,29 +0,0 @@
1
- import * as p from '@clack/prompts';
2
- import { uploadAssets } from './upload.js';
3
- import { formatElapsedTime } from '../utils/formatters.js';
4
- import { writeLine } from '../utils/output.js';
5
- /**
6
- * Executes the deployment by uploading assets to the LinkTypes API.
7
- *
8
- * @param context - Deployment context
9
- * @param artifacts - Prepared artifacts
10
- * @returns Upload result from API
11
- */
12
- export async function executeDeployment(context, artifacts) {
13
- writeLine();
14
- const uploadStart = Date.now();
15
- const s = p.spinner();
16
- s.start('Uploading assets');
17
- const result = await uploadAssets({
18
- projectPath: context.projectPath,
19
- apiUrl: artifacts.apiUrl,
20
- linkAppId: context.linkAppId,
21
- accessToken: context.accessToken,
22
- isUpdate: artifacts.exists,
23
- forceUpdate: context.options.force,
24
- });
25
- const uploadTime = formatElapsedTime(Date.now() - uploadStart);
26
- s.stop(`Assets uploaded (${uploadTime})`);
27
- return result;
28
- }
29
- //# sourceMappingURL=execution.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"execution.js","sourceRoot":"","sources":["../../../src/lib/deploy/execution.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAA;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAkB9C;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,OAA0B,EAC1B,SAAoC;IAEpC,SAAS,EAAE,CAAA;IACX,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;IAC9B,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAA;IAErB,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAA;IAE3B,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC;QAChC,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,MAAM,EAAE,SAAS,CAAC,MAAM;QACxB,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,QAAQ,EAAE,SAAS,CAAC,MAAM;QAC1B,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK;KACnC,CAAC,CAAA;IAEF,MAAM,UAAU,GAAG,iBAAiB,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,WAAW,CAAC,CAAA;IAC9D,CAAC,CAAC,IAAI,CAAC,oBAAoB,UAAU,GAAG,CAAC,CAAA;IAEzC,OAAO,MAAM,CAAA;AACf,CAAC"}
@@ -1,16 +0,0 @@
1
- import type { DeploymentContext } from './context.js';
2
- import type { UploadResult } from './execution.js';
3
- /**
4
- * Displays the successful deployment results including details and next steps.
5
- *
6
- * @param context - Deployment context
7
- * @param result - Upload result from API
8
- */
9
- export declare function displayDeploymentSuccess(context: DeploymentContext, result: UploadResult): void;
10
- /**
11
- * Displays deployment error information.
12
- *
13
- * @param error - Error that occurred during deployment
14
- */
15
- export declare function displayDeploymentError(error: unknown): void;
16
- //# sourceMappingURL=output.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../../src/lib/deploy/output.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAElD;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,iBAAiB,EAC1B,MAAM,EAAE,YAAY,GACnB,IAAI,CAmBN;AAuCD;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAiC3D"}
@@ -1,115 +0,0 @@
1
- import pc from 'picocolors';
2
- import { writeLine, writeSeparator, writeSuccess, writeError, writeWarning, writeLabelValue, } from '../utils/output.js';
3
- import { formatElapsedTime, formatTimestamp } from '../utils/formatters.js';
4
- import { isAPIError, DeploymentCancelledError, AuthenticationError, } from '../utils/errors.js';
5
- import { URLS } from '../utils/constants.js';
6
- /**
7
- * Displays the successful deployment results including details and next steps.
8
- *
9
- * @param context - Deployment context
10
- * @param result - Upload result from API
11
- */
12
- export function displayDeploymentSuccess(context, result) {
13
- const totalTime = formatElapsedTime(Date.now() - context.startTime);
14
- writeLine();
15
- writeSeparator();
16
- writeSuccess('\nDeployment successful!');
17
- writeIndented(`Completed in ${totalTime}`);
18
- writeLine();
19
- writeLine(pc.bold('Details:'));
20
- writeLabelValue('ID', result.linkType.linkTypeId);
21
- writeLabelValue('Status', result.linkType.status);
22
- const timestamp = formatTimestamp(result.linkType.updatedTimestamp);
23
- if (timestamp) {
24
- writeLabelValue('Updated', timestamp);
25
- }
26
- displayNextSteps(context, result);
27
- }
28
- /**
29
- * Displays next steps after successful deployment.
30
- *
31
- * @param context - Deployment context
32
- * @param result - Upload result from API
33
- */
34
- function displayNextSteps(context, result) {
35
- writeLine();
36
- writeLine(pc.bold('Next steps:'));
37
- // Step 1: Build is happening
38
- if (result.build?.id) {
39
- const buildUrl = URLS.buildStatus(result.linkType.linkTypeId, result.build.id);
40
- writeLine(pc.cyan(' 1. Building your LinkApp (this may take a few minutes):'));
41
- writeIndented(buildUrl, 5);
42
- writeLine();
43
- }
44
- // Step 2: Add to page (only after build completes)
45
- const createUrl = context.env === 'qa'
46
- ? URLS.adminCreateLink.qa(result.linkType.linkTypeId)
47
- : URLS.adminCreateLink.production(result.linkType.linkTypeId);
48
- writeLine(pc.cyan(' 2. Once the build completes, add it to your page:'));
49
- writeIndented(createUrl, 5);
50
- writeLine();
51
- }
52
- /**
53
- * Helper function to write indented text with dimmed styling.
54
- */
55
- function writeIndented(text, indent = 2) {
56
- writeLine(pc.dim(' '.repeat(indent) + text));
57
- }
58
- /**
59
- * Displays deployment error information.
60
- *
61
- * @param error - Error that occurred during deployment
62
- */
63
- export function displayDeploymentError(error) {
64
- writeLine();
65
- writeSeparator();
66
- writeError('\nDeployment failed');
67
- writeLine();
68
- // Handle specific error types
69
- if (error instanceof DeploymentCancelledError) {
70
- writeWarning('Deployment cancelled');
71
- writeLine();
72
- return;
73
- }
74
- if (error instanceof AuthenticationError) {
75
- writeIndented(error.userMessage ?? error.message);
76
- writeLine();
77
- return;
78
- }
79
- // Handle API errors with detailed information
80
- if (isAPIError(error)) {
81
- displayAPIError(error);
82
- return;
83
- }
84
- // Handle generic errors
85
- if (error instanceof Error) {
86
- writeIndented(error.message);
87
- }
88
- else {
89
- writeIndented(String(error));
90
- }
91
- writeLine();
92
- }
93
- /**
94
- * Displays detailed API error information.
95
- *
96
- * @param error - API error with status and messages
97
- */
98
- function displayAPIError(error) {
99
- writeLine(pc.bold('Error Details:'));
100
- writeLine(pc.red(` Status: ${error.statusCode}`));
101
- if (error.messages.length > 0) {
102
- writeLine();
103
- writeLine(pc.bold(' Validation Errors:'));
104
- for (const msg of error.messages) {
105
- writeLine(pc.red(` • ${msg}`));
106
- }
107
- }
108
- if (error.responseData?.error) {
109
- writeLine();
110
- writeLine(pc.bold(' Error Type:'));
111
- writeLine(pc.red(` ${error.responseData.error}`));
112
- }
113
- writeLine();
114
- }
115
- //# sourceMappingURL=output.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"output.js","sourceRoot":"","sources":["../../../src/lib/deploy/output.ts"],"names":[],"mappings":"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"}
@@ -1,9 +0,0 @@
1
- import type { DeploymentContext } from './context.js';
2
- /**
3
- * Runs all preflight checks before deployment.
4
- * Includes building the project and validating its structure.
5
- *
6
- * @param context - Deployment context
7
- */
8
- export declare function runPreflightChecks(context: DeploymentContext): Promise<void>;
9
- //# sourceMappingURL=preflight.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"preflight.d.ts","sourceRoot":"","sources":["../../../src/lib/deploy/preflight.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAiDrD;;;;;GAKG;AACH,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAMlF"}
@@ -1,59 +0,0 @@
1
- import { existsSync } from 'node:fs';
2
- import { join } from 'node:path';
3
- import pc from 'picocolors';
4
- import { buildCommand } from '../../commands/build.js';
5
- import { validateProject, printValidationResults } from './validation.js';
6
- import { ValidationError } from '../utils/errors.js';
7
- import { writeLine, writeIndented } from '../utils/output.js';
8
- import { formatElapsedTime } from '../utils/formatters.js';
9
- /**
10
- * Ensures the project has been built before deployment.
11
- * Runs the build command if dist/ directory doesn't exist.
12
- *
13
- * @param context - Deployment context
14
- */
15
- async function ensureProjectBuilt(context) {
16
- if (context.options.skipBuild) {
17
- return;
18
- }
19
- const distPath = join(context.projectPath, 'dist');
20
- if (existsSync(distPath)) {
21
- return;
22
- }
23
- writeLine(pc.bold('Building project...'));
24
- const buildStart = Date.now();
25
- await buildCommand({ sourcemap: false });
26
- const buildTime = formatElapsedTime(Date.now() - buildStart);
27
- writeIndented(`Completed in ${buildTime}`);
28
- writeLine();
29
- }
30
- /**
31
- * Validates the project structure and configuration.
32
- * Checks for required files, valid config, and proper setup.
33
- *
34
- * @param context - Deployment context
35
- * @throws ValidationError if validation fails
36
- */
37
- async function validateProjectStructure(_context) {
38
- writeLine(pc.bold('Pre-deployment checks'));
39
- const validationResult = await validateProject();
40
- printValidationResults(validationResult);
41
- if (!validationResult.success) {
42
- writeLine();
43
- throw new ValidationError('Validation failed');
44
- }
45
- writeLine();
46
- }
47
- /**
48
- * Runs all preflight checks before deployment.
49
- * Includes building the project and validating its structure.
50
- *
51
- * @param context - Deployment context
52
- */
53
- export async function runPreflightChecks(context) {
54
- await ensureProjectBuilt(context);
55
- if (!context.options.skipChecks) {
56
- await validateProjectStructure(context);
57
- }
58
- }
59
- //# sourceMappingURL=preflight.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"preflight.js","sourceRoot":"","sources":["../../../src/lib/deploy/preflight.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,MAAM,YAAY,CAAA;AAC3B,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AACtD,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAA;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAG1D;;;;;GAKG;AACH,KAAK,UAAU,kBAAkB,CAAC,OAA0B;IAC1D,IAAI,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;QAC9B,OAAM;IACR,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,CAAA;IAClD,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzB,OAAM;IACR,CAAC;IAED,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAA;IACzC,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;IAE7B,MAAM,YAAY,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAA;IAExC,MAAM,SAAS,GAAG,iBAAiB,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,UAAU,CAAC,CAAA;IAC5D,aAAa,CAAC,gBAAgB,SAAS,EAAE,CAAC,CAAA;IAC1C,SAAS,EAAE,CAAA;AACb,CAAC;AAED;;;;;;GAMG;AACH,KAAK,UAAU,wBAAwB,CAAC,QAA2B;IACjE,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAA;IAE3C,MAAM,gBAAgB,GAAG,MAAM,eAAe,EAAE,CAAA;IAChD,sBAAsB,CAAC,gBAAgB,CAAC,CAAA;IAExC,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;QAC9B,SAAS,EAAE,CAAA;QACX,MAAM,IAAI,eAAe,CAAC,mBAAmB,CAAC,CAAA;IAChD,CAAC;IAED,SAAS,EAAE,CAAA;AACb,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,OAA0B;IACjE,MAAM,kBAAkB,CAAC,OAAO,CAAC,CAAA;IAEjC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;QAChC,MAAM,wBAAwB,CAAC,OAAO,CAAC,CAAA;IACzC,CAAC;AACH,CAAC"}
@@ -1,42 +0,0 @@
1
- /**
2
- * Display constants for formatting output
3
- */
4
- export declare const DISPLAY: {
5
- /** Maximum number of files to show in preview list */
6
- readonly FILE_PREVIEW_LIMIT: 8;
7
- /** Length of separator lines */
8
- readonly SEPARATOR_LENGTH: 50;
9
- /** Character used for separator lines */
10
- readonly SEPARATOR_CHAR: "─";
11
- };
12
- /**
13
- * Timestamp constants for date/time handling
14
- */
15
- export declare const TIMESTAMP: {
16
- /** Threshold for detecting seconds vs milliseconds (year 2100 in seconds) */
17
- readonly SECONDS_TO_MS_THRESHOLD: 10000000000;
18
- };
19
- /**
20
- * CLI command templates
21
- */
22
- export declare const CLI_COMMANDS: {
23
- readonly login: (qa: boolean) => string;
24
- readonly build: () => string;
25
- };
26
- /**
27
- * URL templates for deployment-related links
28
- */
29
- export declare const URLS: {
30
- /**
31
- * Build status URL for LinkApp CI
32
- */
33
- readonly buildStatus: (linkTypeId: string, buildId: string) => string;
34
- /**
35
- * Admin URL for creating a link in production
36
- */
37
- readonly adminCreateLink: {
38
- readonly production: (linkTypeId: string) => string;
39
- readonly qa: (linkTypeId: string) => string;
40
- };
41
- };
42
- //# sourceMappingURL=constants.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,OAAO;IAClB,sDAAsD;;IAEtD,gCAAgC;;IAEhC,yCAAyC;;CAEjC,CAAA;AAEV;;GAEG;AACH,eAAO,MAAM,SAAS;IACpB,6EAA6E;;CAErE,CAAA;AAEV;;GAEG;AACH,eAAO,MAAM,YAAY;yBACX,OAAO;;CAEX,CAAA;AAEV;;GAEG;AACH,eAAO,MAAM,IAAI;IACf;;OAEG;uCACuB,MAAM,WAAW,MAAM;IAGjD;;OAEG;;0CAEwB,MAAM;kCAEd,MAAM;;CAGjB,CAAA"}
@@ -1,42 +0,0 @@
1
- /**
2
- * Display constants for formatting output
3
- */
4
- export const DISPLAY = {
5
- /** Maximum number of files to show in preview list */
6
- FILE_PREVIEW_LIMIT: 8,
7
- /** Length of separator lines */
8
- SEPARATOR_LENGTH: 50,
9
- /** Character used for separator lines */
10
- SEPARATOR_CHAR: '─',
11
- };
12
- /**
13
- * Timestamp constants for date/time handling
14
- */
15
- export const TIMESTAMP = {
16
- /** Threshold for detecting seconds vs milliseconds (year 2100 in seconds) */
17
- SECONDS_TO_MS_THRESHOLD: 10000000000,
18
- };
19
- /**
20
- * CLI command templates
21
- */
22
- export const CLI_COMMANDS = {
23
- login: (qa) => `npx @linktr.ee/linkapp login${qa ? ' --qa' : ''}`,
24
- build: () => 'linkapp build',
25
- };
26
- /**
27
- * URL templates for deployment-related links
28
- */
29
- export const URLS = {
30
- /**
31
- * Build status URL for LinkApp CI
32
- */
33
- buildStatus: (linkTypeId, buildId) => `https://linkapp-ci.replit.app/?linkTypeId=${linkTypeId}&buildId=${buildId}`,
34
- /**
35
- * Admin URL for creating a link in production
36
- */
37
- adminCreateLink: {
38
- production: (linkTypeId) => `https://linktr.ee/admin?action=create-link&linkType=${linkTypeId}`,
39
- qa: (linkTypeId) => `https://qa.linktr.ee/admin?action=create-link&linkType=${linkTypeId}`,
40
- },
41
- };
42
- //# sourceMappingURL=constants.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/lib/utils/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,sDAAsD;IACtD,kBAAkB,EAAE,CAAC;IACrB,gCAAgC;IAChC,gBAAgB,EAAE,EAAE;IACpB,yCAAyC;IACzC,cAAc,EAAE,GAAG;CACX,CAAA;AAEV;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,6EAA6E;IAC7E,uBAAuB,EAAE,WAAW;CAC5B,CAAA;AAEV;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,KAAK,EAAE,CAAC,EAAW,EAAE,EAAE,CAAC,+BAA+B,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;IAC1E,KAAK,EAAE,GAAG,EAAE,CAAC,eAAe;CACpB,CAAA;AAEV;;GAEG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG;IAClB;;OAEG;IACH,WAAW,EAAE,CAAC,UAAkB,EAAE,OAAe,EAAE,EAAE,CACnD,6CAA6C,UAAU,YAAY,OAAO,EAAE;IAE9E;;OAEG;IACH,eAAe,EAAE;QACf,UAAU,EAAE,CAAC,UAAkB,EAAE,EAAE,CACjC,uDAAuD,UAAU,EAAE;QACrE,EAAE,EAAE,CAAC,UAAkB,EAAE,EAAE,CACzB,0DAA0D,UAAU,EAAE;KACzE;CACO,CAAA"}
@@ -1,8 +0,0 @@
1
- interface CreateProjectOptions {
2
- projectName: string;
3
- projectPath: string;
4
- template: string;
5
- }
6
- export declare function createProject(options: CreateProjectOptions): Promise<void>;
7
- export {};
8
- //# sourceMappingURL=create-project.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"create-project.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/create-project.ts"],"names":[],"mappings":"AAOA,UAAU,oBAAoB;IAC5B,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;CACjB;AASD,wBAAsB,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CAiChF"}
@@ -1,48 +0,0 @@
1
- import { cpSync, existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
2
- import { join, dirname } from 'node:path';
3
- import { fileURLToPath } from 'node:url';
4
- const __filename = fileURLToPath(import.meta.url);
5
- const __dirname = dirname(__filename);
6
- function toTitleCase(str) {
7
- return str
8
- .split('-')
9
- .map((word) => word.charAt(0).toUpperCase() + word.slice(1))
10
- .join(' ');
11
- }
12
- export async function createProject(options) {
13
- const { projectName, projectPath, template } = options;
14
- const templatesDir = join(__dirname, '..', '..', '..', 'templates');
15
- const templatePath = join(templatesDir, template);
16
- const sharedPath = join(templatesDir, 'shared');
17
- if (!existsSync(templatePath)) {
18
- throw new Error(`Template ${template} not found`);
19
- }
20
- // Create project directory
21
- mkdirSync(projectPath, { recursive: true });
22
- // Copy template files
23
- cpSync(templatePath, projectPath, { recursive: true });
24
- // Copy shared files
25
- if (existsSync(sharedPath)) {
26
- cpSync(sharedPath, projectPath, { recursive: true });
27
- }
28
- // Replace placeholders
29
- const projectTitle = toTitleCase(projectName);
30
- const placeholders = {
31
- '{{PROJECT_NAME}}': projectName,
32
- '{{PROJECT_TITLE}}': projectTitle,
33
- '{{AUTHOR_NAME}}': 'Your Name',
34
- };
35
- replaceInFile(join(projectPath, 'package.json'), placeholders);
36
- replaceInFile(join(projectPath, 'linkapp.config.ts'), placeholders);
37
- replaceInFile(join(projectPath, 'README.md'), placeholders);
38
- }
39
- function replaceInFile(filePath, placeholders) {
40
- if (!existsSync(filePath))
41
- return;
42
- let content = readFileSync(filePath, 'utf-8');
43
- for (const [placeholder, value] of Object.entries(placeholders)) {
44
- content = content.replaceAll(placeholder, value);
45
- }
46
- writeFileSync(filePath, content, 'utf-8');
47
- }
48
- //# sourceMappingURL=create-project.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"create-project.js","sourceRoot":"","sources":["../../../src/lib/utils/create-project.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AACpF,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAExC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AACjD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;AAQrC,SAAS,WAAW,CAAC,GAAW;IAC9B,OAAO,GAAG;SACP,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SAC3D,IAAI,CAAC,GAAG,CAAC,CAAA;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,OAA6B;IAC/D,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAA;IAEtD,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,CAAC,CAAA;IACnE,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAA;IACjD,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAA;IAE/C,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,YAAY,QAAQ,YAAY,CAAC,CAAA;IACnD,CAAC;IAED,2BAA2B;IAC3B,SAAS,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAE3C,sBAAsB;IACtB,MAAM,CAAC,YAAY,EAAE,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAEtD,oBAAoB;IACpB,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC3B,MAAM,CAAC,UAAU,EAAE,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IACtD,CAAC;IAED,uBAAuB;IACvB,MAAM,YAAY,GAAG,WAAW,CAAC,WAAW,CAAC,CAAA;IAC7C,MAAM,YAAY,GAAG;QACnB,kBAAkB,EAAE,WAAW;QAC/B,mBAAmB,EAAE,YAAY;QACjC,iBAAiB,EAAE,WAAW;KAC/B,CAAA;IAED,aAAa,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,EAAE,YAAY,CAAC,CAAA;IAC9D,aAAa,CAAC,IAAI,CAAC,WAAW,EAAE,mBAAmB,CAAC,EAAE,YAAY,CAAC,CAAA;IACnE,aAAa,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,YAAY,CAAC,CAAA;AAC7D,CAAC;AAED,SAAS,aAAa,CAAC,QAAgB,EAAE,YAAoC;IAC3E,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAM;IAEjC,IAAI,OAAO,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;IAE7C,KAAK,MAAM,CAAC,WAAW,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;QAChE,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,WAAW,EAAE,KAAK,CAAC,CAAA;IAClD,CAAC;IAED,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;AAC3C,CAAC"}