@linktr.ee/linkapp 0.0.10 → 0.0.11

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 (61) hide show
  1. package/dev-server/classic/main.tsx +45 -24
  2. package/dev-server/classic.html +58 -0
  3. package/dev-server/featured/main.tsx +45 -24
  4. package/dev-server/featured.html +58 -0
  5. package/dev-server/preview/Preview.tsx +425 -14
  6. package/dist/cli.js +9 -3
  7. package/dist/cli.js.map +1 -1
  8. package/dist/commands/add.js +3 -3
  9. package/dist/commands/add.js.map +1 -1
  10. package/dist/commands/deploy.d.ts.map +1 -1
  11. package/dist/commands/deploy.js +10 -4
  12. package/dist/commands/deploy.js.map +1 -1
  13. package/dist/components/ThemeStyle.d.ts +30 -0
  14. package/dist/components/ThemeStyle.d.ts.map +1 -0
  15. package/dist/components/ThemeStyle.js +33 -0
  16. package/dist/components/ThemeStyle.js.map +1 -0
  17. package/dist/components/index.d.ts +2 -0
  18. package/dist/components/index.d.ts.map +1 -0
  19. package/dist/components/index.js +2 -0
  20. package/dist/components/index.js.map +1 -0
  21. package/dist/lib/build/detect-layouts.d.ts.map +1 -1
  22. package/dist/lib/build/detect-layouts.js +1 -4
  23. package/dist/lib/build/detect-layouts.js.map +1 -1
  24. package/dist/lib/deploy/generate-manifest-files.d.ts.map +1 -1
  25. package/dist/lib/deploy/generate-manifest-files.js +6 -0
  26. package/dist/lib/deploy/generate-manifest-files.js.map +1 -1
  27. package/dist/lib/deploy/pack-project.d.ts.map +1 -1
  28. package/dist/lib/deploy/pack-project.js +32 -5
  29. package/dist/lib/deploy/pack-project.js.map +1 -1
  30. package/dist/lib/deploy/upload.d.ts +1 -0
  31. package/dist/lib/deploy/upload.d.ts.map +1 -1
  32. package/dist/lib/deploy/upload.js +12 -2
  33. package/dist/lib/deploy/upload.js.map +1 -1
  34. package/dist/lib/deploy/validation.d.ts.map +1 -1
  35. package/dist/lib/deploy/validation.js +4 -61
  36. package/dist/lib/deploy/validation.js.map +1 -1
  37. package/dist/lib/utils/setup-runtime.d.ts.map +1 -1
  38. package/dist/lib/utils/setup-runtime.js +48 -17
  39. package/dist/lib/utils/setup-runtime.js.map +1 -1
  40. package/dist/schema/config.schema.d.ts +50 -114
  41. package/dist/schema/config.schema.d.ts.map +1 -1
  42. package/dist/schema/config.schema.js +94 -18
  43. package/dist/schema/config.schema.js.map +1 -1
  44. package/dist/sdk/index.d.ts +21 -0
  45. package/dist/sdk/index.d.ts.map +1 -0
  46. package/dist/sdk/index.js +21 -0
  47. package/dist/sdk/index.js.map +1 -0
  48. package/dist/sdk/send-message.d.ts +16 -0
  49. package/dist/sdk/send-message.d.ts.map +1 -0
  50. package/dist/sdk/send-message.js +34 -0
  51. package/dist/sdk/send-message.js.map +1 -0
  52. package/dist/sdk/use-open-popup.d.ts +23 -0
  53. package/dist/sdk/use-open-popup.d.ts.map +1 -0
  54. package/dist/sdk/use-open-popup.js +29 -0
  55. package/dist/sdk/use-open-popup.js.map +1 -0
  56. package/dist/types.d.ts +149 -31
  57. package/dist/types.d.ts.map +1 -1
  58. package/dist/types.js +37 -1
  59. package/dist/types.js.map +1 -1
  60. package/package.json +11 -3
  61. package/runtime/index.html +58 -0
@@ -0,0 +1,30 @@
1
+ import type { LinkAppTheme } from '../types.js';
2
+ type Props = {
3
+ theme: LinkAppTheme;
4
+ };
5
+ /**
6
+ * @deprecated This component is deprecated and will be removed in a future version.
7
+ * Theme CSS variables are now injected using a CSS-native approach via postMessage.
8
+ * The HTML template includes a listener for THEME_UPDATE messages that injects
9
+ * variables into a <style id="linktree-theme"> element automatically.
10
+ *
11
+ * Migration: Remove <ThemeStyle /> from your code - theme variables are now
12
+ * applied automatically via the HTML script listener.
13
+ *
14
+ * Legacy usage (DO NOT USE IN NEW CODE):
15
+ * ```tsx
16
+ * import { ThemeStyle } from '@linktr.ee/linkapp/components'
17
+ *
18
+ * export default function Layout({ children, theme }: { children: React.ReactNode; theme: LinkAppTheme }) {
19
+ * return (
20
+ * <>
21
+ * <ThemeStyle theme={theme} />
22
+ * {children}
23
+ * </>
24
+ * )
25
+ * }
26
+ * ```
27
+ */
28
+ export declare const ThemeStyle: ({ theme }: Props) => import("react/jsx-runtime").JSX.Element;
29
+ export {};
30
+ //# sourceMappingURL=ThemeStyle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ThemeStyle.d.ts","sourceRoot":"","sources":["../../src/components/ThemeStyle.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE/C,KAAK,KAAK,GAAG;IACX,KAAK,EAAE,YAAY,CAAA;CACpB,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,UAAU,GAAI,WAAW,KAAK,4CAY1C,CAAA"}
@@ -0,0 +1,33 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ /**
3
+ * @deprecated This component is deprecated and will be removed in a future version.
4
+ * Theme CSS variables are now injected using a CSS-native approach via postMessage.
5
+ * The HTML template includes a listener for THEME_UPDATE messages that injects
6
+ * variables into a <style id="linktree-theme"> element automatically.
7
+ *
8
+ * Migration: Remove <ThemeStyle /> from your code - theme variables are now
9
+ * applied automatically via the HTML script listener.
10
+ *
11
+ * Legacy usage (DO NOT USE IN NEW CODE):
12
+ * ```tsx
13
+ * import { ThemeStyle } from '@linktr.ee/linkapp/components'
14
+ *
15
+ * export default function Layout({ children, theme }: { children: React.ReactNode; theme: LinkAppTheme }) {
16
+ * return (
17
+ * <>
18
+ * <ThemeStyle theme={theme} />
19
+ * {children}
20
+ * </>
21
+ * )
22
+ * }
23
+ * ```
24
+ */
25
+ export const ThemeStyle = ({ theme }) => {
26
+ const cssVariablesString = Object.entries(theme.cssVariables)
27
+ .map(([key, value]) => ` ${key}: ${value};`)
28
+ .join('\n');
29
+ return (_jsx("style", { children: `:root {
30
+ ${cssVariablesString}
31
+ }` }));
32
+ };
33
+ //# sourceMappingURL=ThemeStyle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ThemeStyle.js","sourceRoot":"","sources":["../../src/components/ThemeStyle.tsx"],"names":[],"mappings":";AAMA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,EAAE,KAAK,EAAS,EAAE,EAAE;IAC7C,MAAM,kBAAkB,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC;SAC1D,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,GAAG,KAAK,KAAK,GAAG,CAAC;SAC5C,IAAI,CAAC,IAAI,CAAC,CAAA;IAEb,OAAO,CACL,0BACG;EACL,kBAAkB;EAClB,GACU,CACT,CAAA;AACH,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export { ThemeStyle } from './ThemeStyle.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA"}
@@ -0,0 +1,2 @@
1
+ export { ThemeStyle } from './ThemeStyle.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"detect-layouts.d.ts","sourceRoot":"","sources":["../../../src/lib/build/detect-layouts.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,SAAS,EAAE,OAAO,CAAA;CACnB;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,eAAe,CA4BlE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAmBzF"}
1
+ {"version":3,"file":"detect-layouts.d.ts","sourceRoot":"","sources":["../../../src/lib/build/detect-layouts.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,SAAS,EAAE,OAAO,CAAA;CACnB;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,eAAe,CA4BlE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAgBzF"}
@@ -38,10 +38,7 @@ export function validateLayouts(projectPath) {
38
38
  if (!hasClassic) {
39
39
  errors.push('app/classic.tsx is required. This is the default layout for your Link App.');
40
40
  }
41
- // Layout wrapper is required
42
- if (!detection.hasLayout) {
43
- errors.push('Layout wrapper not found. Create app/layout.tsx');
44
- }
41
+ // Layout wrapper is optional - will be used if present
45
42
  return {
46
43
  valid: errors.length === 0,
47
44
  errors,
@@ -1 +1 @@
1
- {"version":3,"file":"detect-layouts.js","sourceRoot":"","sources":["../../../src/lib/build/detect-layouts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAahC;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,WAAmB;IAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAA;IAEvC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QACxB,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAA;IAC1C,CAAC;IAED,MAAM,OAAO,GAAa,EAAE,CAAA;IAE5B,6EAA6E;IAC7E,MAAM,gBAAgB,GAAG;QACvB,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,WAAW,EAAE,SAAS,EAAE;QACpE,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,WAAW,EAAE,UAAU,EAAE;KACxE,CAAA;IAED,KAAK,MAAM,MAAM,IAAI,gBAAgB,EAAE,CAAC;QACtC,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAA;QAChD,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC3B,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACtB,CAAC;IACH,CAAC;IAED,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAA;IAEjG,OAAO;QACL,OAAO;QACP,SAAS;KACV,CAAA;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,WAAmB;IACjD,MAAM,SAAS,GAAG,aAAa,CAAC,WAAW,CAAC,CAAA;IAC5C,MAAM,MAAM,GAAa,EAAE,CAAA;IAE3B,iCAAiC;IACjC,MAAM,UAAU,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAA;IACpE,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,CAAC,IAAI,CAAC,4EAA4E,CAAC,CAAA;IAC3F,CAAC;IAED,6BAA6B;IAC7B,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;QACzB,MAAM,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAA;IAChE,CAAC;IAED,OAAO;QACL,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC;QAC1B,MAAM;KACP,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"detect-layouts.js","sourceRoot":"","sources":["../../../src/lib/build/detect-layouts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAahC;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,WAAmB;IAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAA;IAEvC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QACxB,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAA;IAC1C,CAAC;IAED,MAAM,OAAO,GAAa,EAAE,CAAA;IAE5B,6EAA6E;IAC7E,MAAM,gBAAgB,GAAG;QACvB,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,WAAW,EAAE,SAAS,EAAE;QACpE,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,WAAW,EAAE,UAAU,EAAE;KACxE,CAAA;IAED,KAAK,MAAM,MAAM,IAAI,gBAAgB,EAAE,CAAC;QACtC,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAA;QAChD,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC3B,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACtB,CAAC;IACH,CAAC;IAED,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAA;IAEjG,OAAO;QACL,OAAO;QACP,SAAS;KACV,CAAA;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,WAAmB;IACjD,MAAM,SAAS,GAAG,aAAa,CAAC,WAAW,CAAC,CAAA;IAC5C,MAAM,MAAM,GAAa,EAAE,CAAA;IAE3B,iCAAiC;IACjC,MAAM,UAAU,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAA;IACpE,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,CAAC,IAAI,CAAC,4EAA4E,CAAC,CAAA;IAC3F,CAAC;IAED,uDAAuD;IAEvD,OAAO;QACL,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC;QAC1B,MAAM;KACP,CAAA;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"generate-manifest-files.d.ts","sourceRoot":"","sources":["../../../src/lib/deploy/generate-manifest-files.ts"],"names":[],"mappings":"AAMA,wBAAsB,qBAAqB,CAAC,WAAW,GAAE,MAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CA8D9F"}
1
+ {"version":3,"file":"generate-manifest-files.d.ts","sourceRoot":"","sources":["../../../src/lib/deploy/generate-manifest-files.ts"],"names":[],"mappings":"AAMA,wBAAsB,qBAAqB,CAAC,WAAW,GAAE,MAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CAoE9F"}
@@ -46,6 +46,12 @@ export async function generateManifestFiles(projectPath = process.cwd()) {
46
46
  elements: config.settings.elements,
47
47
  // Auto-detected: true if app/featured.tsx exists, false otherwise
48
48
  supports_featured_layout: hasFeaturedLayout,
49
+ // Include optional fields if present
50
+ ...(config.settings.uses_url !== undefined && { uses_url: config.settings.uses_url }),
51
+ ...(config.settings.icon && { icon: config.settings.icon }),
52
+ ...(config.settings.settings_tab_title && { settings_tab_title: config.settings.settings_tab_title }),
53
+ ...(config.settings.setup_instructions && { setup_instructions: config.settings.setup_instructions }),
54
+ ...(config.settings.has_settings !== undefined && { has_settings: config.settings.has_settings }),
49
55
  };
50
56
  writeFileSync(join(linkappDir, 'settings.json'), JSON.stringify(settings, null, 2), 'utf-8');
51
57
  // Generate url_match_rules.json if present
@@ -1 +1 @@
1
- {"version":3,"file":"generate-manifest-files.js","sourceRoot":"","sources":["../../../src/lib/deploy/generate-manifest-files.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate-manifest-files.js","sourceRoot":"","sources":["../../../src/lib/deploy/generate-manifest-files.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"pack-project.d.ts","sourceRoot":"","sources":["../../../src/lib/deploy/pack-project.ts"],"names":[],"mappings":"AAIA,UAAU,WAAW;IACnB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,wBAAsB,WAAW,CAAC,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CA8F9E"}
1
+ {"version":3,"file":"pack-project.d.ts","sourceRoot":"","sources":["../../../src/lib/deploy/pack-project.ts"],"names":[],"mappings":"AAIA,UAAU,WAAW;IACnB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,wBAAsB,WAAW,CAAC,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CA8H9E"}
@@ -8,9 +8,18 @@ export async function packProject(options = {}) {
8
8
  const rootConfigPath = join(projectPath, 'linkapp.config.ts');
9
9
  const configPath = existsSync(rootConfigPath) ? 'linkapp.config.ts' : '.config/linkapp.config.ts';
10
10
  const requiredFiles = [configPath];
11
- const optionalFiles = ['package.json', 'package-lock.json', 'README.md'];
12
- const requiredDirs = ['dist', 'app'];
13
- const optionalDirs = ['components', 'hooks', 'lib'];
11
+ const optionalFiles = ['package.json', 'package-lock.json', 'README.md', 'tsconfig.json', 'yarn.lock'];
12
+ const requiredDirs = ['app'];
13
+ const optionalDirs = ['dist', 'components', 'hooks', 'lib'];
14
+ // Manifest files from .linkapp directory
15
+ const linkappDir = join(projectPath, '.linkapp');
16
+ const manifestFiles = [
17
+ { source: join(linkappDir, 'manifest.json'), dest: 'manifest.json', required: true },
18
+ { source: join(linkappDir, 'settings.json'), dest: 'settings.json', required: false },
19
+ { source: join(linkappDir, 'url_match_rules.json'), dest: 'url_match_rules.json', required: false },
20
+ ];
21
+ // Icon file from app directory
22
+ const iconSource = join(projectPath, 'app', 'icon.svg');
14
23
  const packedFiles = [];
15
24
  // Validate required files exist
16
25
  for (const file of requiredFiles) {
@@ -19,11 +28,17 @@ export async function packProject(options = {}) {
19
28
  throw new Error(`Required file missing: ${file}`);
20
29
  }
21
30
  }
22
- // Validate dist directory exists
31
+ // Validate required directories exist
23
32
  for (const dir of requiredDirs) {
24
33
  const dirPath = join(projectPath, dir);
25
34
  if (!existsSync(dirPath) || !statSync(dirPath).isDirectory()) {
26
- throw new Error(`Required directory missing: ${dir}. Run 'linkapp build' first.`);
35
+ throw new Error(`Required directory missing: ${dir}`);
36
+ }
37
+ }
38
+ // Validate required manifest files exist
39
+ for (const manifest of manifestFiles) {
40
+ if (manifest.required && !existsSync(manifest.source)) {
41
+ throw new Error(`Required manifest file missing: ${manifest.dest}. Run manifest generation first.`);
27
42
  }
28
43
  }
29
44
  return new Promise((resolve, reject) => {
@@ -47,6 +62,18 @@ export async function packProject(options = {}) {
47
62
  }
48
63
  });
49
64
  archive.pipe(output);
65
+ // Add manifest files to package root
66
+ for (const manifest of manifestFiles) {
67
+ if (existsSync(manifest.source)) {
68
+ archive.file(manifest.source, { name: manifest.dest });
69
+ packedFiles.push(manifest.dest);
70
+ }
71
+ }
72
+ // Add icon.svg to package root if it exists
73
+ if (existsSync(iconSource)) {
74
+ archive.file(iconSource, { name: 'icon.svg' });
75
+ packedFiles.push('icon.svg');
76
+ }
50
77
  // Add required files
51
78
  for (const file of requiredFiles) {
52
79
  const filePath = join(projectPath, file);
@@ -1 +1 @@
1
- {"version":3,"file":"pack-project.js","sourceRoot":"","sources":["../../../src/lib/deploy/pack-project.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pack-project.js","sourceRoot":"","sources":["../../../src/lib/deploy/pack-project.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import type { DeployResponse } from '../../types.js';
2
2
  interface UploadOptions {
3
3
  projectPath?: string | undefined;
4
4
  apiUrl: string;
5
+ linkAppId: string;
5
6
  accessToken: string;
6
7
  isUpdate?: boolean | undefined;
7
8
  forceUpdate?: boolean | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"upload.d.ts","sourceRoot":"","sources":["../../../src/lib/deploy/upload.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAEpD,UAAU,aAAa;IACrB,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAChC,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAC9B,WAAW,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CAClC;AAED,wBAAsB,YAAY,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC,CA6ElF;AAED,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAcjH"}
1
+ {"version":3,"file":"upload.d.ts","sourceRoot":"","sources":["../../../src/lib/deploy/upload.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAEpD,UAAU,aAAa;IACrB,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAChC,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAC9B,WAAW,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CAClC;AAED,wBAAsB,YAAY,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC,CA0FlF;AAED,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAcjH"}
@@ -53,14 +53,24 @@ export async function uploadAssets(options) {
53
53
  if (options.isUpdate && options.forceUpdate) {
54
54
  headers['force-update'] = 'true';
55
55
  }
56
+ const method = options.isUpdate ? 'put' : 'post';
57
+ // For PUT (update), append the link app ID to the URL
58
+ // For POST (create), use the base URL
59
+ const url = options.isUpdate ? `${options.apiUrl}/${options.linkAppId}` : options.apiUrl;
56
60
  try {
57
- const method = options.isUpdate ? 'put' : 'post';
58
- const response = await axios[method](options.apiUrl, form, { headers });
61
+ const response = await axios[method](url, form, { headers });
59
62
  return response.data;
60
63
  }
61
64
  catch (error) {
62
65
  if (axios.isAxiosError(error) && error.response?.data) {
63
66
  const errorData = error.response.data;
67
+ // Log verbose error details
68
+ console.error('\n=== VERBOSE ERROR DETAILS ===');
69
+ console.error('Status:', error.response.status);
70
+ console.error('Response data:', JSON.stringify(errorData, null, 2));
71
+ console.error('Request URL:', url);
72
+ console.error('Request method:', method.toUpperCase());
73
+ console.error('=============================\n');
64
74
  // Create a more detailed error message
65
75
  const detailedError = new Error('API request failed');
66
76
  detailedError.statusCode = error.response.status;
@@ -1 +1 @@
1
- {"version":3,"file":"upload.js","sourceRoot":"","sources":["../../../src/lib/deploy/upload.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"upload.js","sourceRoot":"","sources":["../../../src/lib/deploy/upload.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../src/lib/deploy/validation.ts"],"names":[],"mappings":"AAMA,UAAU,gBAAgB;IACxB,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAA;CACnB;AAED,wBAAsB,eAAe,CAAC,WAAW,GAAE,MAAsB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA2DpG;AAgGD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI,CAqBrE"}
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../src/lib/deploy/validation.ts"],"names":[],"mappings":"AAKA,UAAU,gBAAgB;IACxB,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAA;CACnB;AAED,wBAAsB,eAAe,CAAC,WAAW,GAAE,MAAsB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAgDpG;AA6CD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI,CAqBrE"}
@@ -2,7 +2,6 @@ import { existsSync, statSync, readdirSync } from 'node:fs';
2
2
  import { join } from 'node:path';
3
3
  import { spawn } from 'node:child_process';
4
4
  import pc from 'picocolors';
5
- import { ZodError } from 'zod';
6
5
  export async function validateProject(projectPath = process.cwd()) {
7
6
  const result = {
8
7
  success: true,
@@ -17,29 +16,17 @@ export async function validateProject(projectPath = process.cwd()) {
17
16
  result.errors.push('Config file missing: linkapp.config.ts');
18
17
  result.success = false;
19
18
  }
20
- else {
21
- // Validate config schema
22
- const configValidation = await validateConfigSchema(projectPath);
23
- if (!configValidation.success) {
24
- result.errors.push(...configValidation.errors);
25
- result.success = false;
26
- }
27
- if (configValidation.warnings.length > 0) {
28
- result.warnings.push(...configValidation.warnings);
29
- }
30
- }
31
- // Check dist directory exists
19
+ // Note: Config schema validation happens during manifest generation via generateManifestFiles()
20
+ // Check dist directory exists (optional - CI/Buildkite will build)
32
21
  const distPath = join(projectPath, 'dist');
33
22
  if (!existsSync(distPath)) {
34
- result.errors.push('Build output missing. Run "linkapp build" first.');
35
- result.success = false;
23
+ result.warnings.push('Build output missing. This is OK if deploying to CI/Buildkite. Run "linkapp build" for local testing.');
36
24
  }
37
25
  else {
38
26
  // Check dist has files
39
27
  const distSize = getDirSize(distPath);
40
28
  if (distSize === 0) {
41
- result.errors.push('Build output is empty. Run "linkapp build" first.');
42
- result.success = false;
29
+ result.warnings.push('Build output is empty. This is OK if deploying to CI/Buildkite.');
43
30
  }
44
31
  else if (distSize > 5 * 1024 * 1024) {
45
32
  // Warn if over 5MB
@@ -60,50 +47,6 @@ export async function validateProject(projectPath = process.cwd()) {
60
47
  }
61
48
  return result;
62
49
  }
63
- /**
64
- * Validates the linkapp.config.ts schema
65
- * Similar to how Next.js validates next.config.js and Tailwind validates tailwind.config.js
66
- */
67
- async function validateConfigSchema(projectPath) {
68
- const result = {
69
- success: true,
70
- errors: [],
71
- warnings: [],
72
- };
73
- try {
74
- // Use tsx or ts-node to load the TypeScript config
75
- // For now, we'll import the schema and validate the built config
76
- const { validateLinkAppConfig } = await import('../../schema/config.schema.js');
77
- // Try to import the config from the built dist (check root first, then .config)
78
- const rootDistConfigPath = join(projectPath, 'dist', 'linkapp.config.js');
79
- const nestedDistConfigPath = join(projectPath, 'dist', '.config', 'linkapp.config.js');
80
- const distConfigPath = existsSync(rootDistConfigPath) ? rootDistConfigPath : nestedDistConfigPath;
81
- if (!existsSync(distConfigPath)) {
82
- result.warnings.push('Config validation skipped: Build output not found. Schema validation will occur during build.');
83
- return result;
84
- }
85
- const configModule = await import(distConfigPath);
86
- const config = configModule.default;
87
- // Validate using Zod schema
88
- validateLinkAppConfig(config);
89
- }
90
- catch (error) {
91
- if (error instanceof ZodError) {
92
- result.success = false;
93
- result.errors.push('Config schema validation failed:');
94
- // Format Zod errors in a user-friendly way (like Next.js does)
95
- for (const issue of error.issues) {
96
- const path = issue.path.join('.');
97
- result.errors.push(` • ${path}: ${issue.message}`);
98
- }
99
- }
100
- else if (error instanceof Error) {
101
- // Other errors (import errors, etc.)
102
- result.warnings.push(`Config validation warning: ${error.message}`);
103
- }
104
- }
105
- return result;
106
- }
107
50
  async function runTypeCheck(projectPath) {
108
51
  return new Promise((resolve) => {
109
52
  const child = spawn('npm', ['run', 'type-check'], {
@@ -1 +1 @@
1
- {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../src/lib/deploy/validation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../src/lib/deploy/validation.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"setup-runtime.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/setup-runtime.ts"],"names":[],"mappings":"AA4EA;;;GAGG;AACH,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAyBtD"}
1
+ {"version":3,"file":"setup-runtime.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/setup-runtime.ts"],"names":[],"mappings":"AAgHA;;;GAGG;AACH,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAyBtD"}
@@ -1,7 +1,7 @@
1
- import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
2
- import { join, dirname } from 'node:path';
3
- import { fileURLToPath } from 'node:url';
4
- import { detectLayouts } from '../build/detect-layouts.js';
1
+ import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
2
+ import { dirname, join } from "node:path";
3
+ import { fileURLToPath } from "node:url";
4
+ import { detectLayouts } from "../build/detect-layouts.js";
5
5
  const __filename = fileURLToPath(import.meta.url);
6
6
  const __dirname = dirname(__filename);
7
7
  /**
@@ -10,13 +10,28 @@ const __dirname = dirname(__filename);
10
10
  function generateMainTsx(projectPath) {
11
11
  const detection = detectLayouts(projectPath);
12
12
  const layouts = detection.layouts;
13
+ const hasLayout = detection.hasLayout;
13
14
  // Generate import statements for each layout
14
- const imports = layouts.map((layout) => `import ${layout.displayName} from '../app/${layout.fileName}'`).join('\n');
15
+ const imports = layouts
16
+ .map((layout) => `import ${layout.displayName} from '../app/${layout.fileName}'`)
17
+ .join("\n");
18
+ // Conditionally import Layout if it exists
19
+ const layoutImport = hasLayout
20
+ ? `import Layout from '../app/layout.tsx'`
21
+ : "";
15
22
  // Generate layouts object
16
- const layoutsObj = layouts.map((layout) => ` ${layout.name}: ${layout.displayName},`).join('\n');
23
+ const layoutsObj = layouts
24
+ .map((layout) => ` ${layout.name}: ${layout.displayName},`)
25
+ .join("\n");
26
+ // Generate the wrapper logic - use Layout if it exists, otherwise render directly
27
+ const renderLogic = hasLayout
28
+ ? ` <Layout>
29
+ <LayoutComponent {...mockContext} />
30
+ </Layout>`
31
+ : ` <LayoutComponent {...mockContext} />`;
17
32
  return `import { StrictMode } from 'react'
18
33
  import { createRoot } from 'react-dom/client'
19
- import Layout from '../app/layout.tsx'
34
+ ${layoutImport}
20
35
  ${imports}
21
36
  import '../app/globals.css'
22
37
 
@@ -47,12 +62,28 @@ function App() {
47
62
  const mockContext = {
48
63
  linkUrl: 'https://example.com/demo',
49
64
  showTitle: true,
65
+ theme: {
66
+ cssVariables: {
67
+ '--button-style-text': '#000000',
68
+ '--button-style-background': '#ffffff',
69
+ '--button-style-inner-radius': '12px',
70
+ '--button-style-border-color': '#e5e7eb',
71
+ '--button-style-background-hover': '#f3f4f6',
72
+ '--button-style-contrast-color': '#ffffff',
73
+ '--profileBackground': '#ffffff',
74
+ },
75
+ textColor: '#000000',
76
+ backgroundColor: '#ffffff',
77
+ borderRadius: '12px',
78
+ borderColor: '#e5e7eb',
79
+ backgroundHover: '#f3f4f6',
80
+ contrastColor: '#ffffff',
81
+ textHoverColor: '#111827',
82
+ },
50
83
  }
51
84
 
52
85
  return (
53
- <Layout>
54
- <LayoutComponent {...mockContext} />
55
- </Layout>
86
+ ${renderLogic}
56
87
  )
57
88
  }
58
89
 
@@ -74,25 +105,25 @@ createRoot(rootElement).render(
74
105
  */
75
106
  export function setupRuntime(projectPath) {
76
107
  try {
77
- const linkappDir = join(projectPath, '.linkapp');
78
- const runtimeSourceDir = join(__dirname, '..', '..', '..', 'runtime');
108
+ const linkappDir = join(projectPath, ".linkapp");
109
+ const runtimeSourceDir = join(__dirname, "..", "..", "..", "runtime");
79
110
  // Create .linkapp directory if it doesn't exist
80
111
  if (!existsSync(linkappDir)) {
81
112
  mkdirSync(linkappDir, { recursive: true });
82
113
  }
83
114
  // Copy index.html
84
- const indexHtmlPath = join(runtimeSourceDir, 'index.html');
115
+ const indexHtmlPath = join(runtimeSourceDir, "index.html");
85
116
  if (!existsSync(indexHtmlPath)) {
86
117
  throw new Error(`Runtime file not found: ${indexHtmlPath}`);
87
118
  }
88
- const indexHtml = readFileSync(indexHtmlPath, 'utf-8');
89
- writeFileSync(join(linkappDir, 'index.html'), indexHtml, 'utf-8');
119
+ const indexHtml = readFileSync(indexHtmlPath, "utf-8");
120
+ writeFileSync(join(linkappDir, "index.html"), indexHtml, "utf-8");
90
121
  // Generate and write main.tsx dynamically based on detected layouts
91
122
  const mainTsx = generateMainTsx(projectPath);
92
- writeFileSync(join(linkappDir, 'main.tsx'), mainTsx, 'utf-8');
123
+ writeFileSync(join(linkappDir, "main.tsx"), mainTsx, "utf-8");
93
124
  }
94
125
  catch (error) {
95
- console.error('Failed to setup runtime files:', error);
126
+ console.error("Failed to setup runtime files:", error);
96
127
  throw error;
97
128
  }
98
129
  }
@@ -1 +1 @@
1
- {"version":3,"file":"setup-runtime.js","sourceRoot":"","sources":["../../../src/lib/utils/setup-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAC5E,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAE1D,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AACjD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;AAErC;;GAEG;AACH,SAAS,eAAe,CAAC,WAAmB;IAC1C,MAAM,SAAS,GAAG,aAAa,CAAC,WAAW,CAAC,CAAA;IAC5C,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAA;IAEjC,6CAA6C;IAC7C,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,UAAU,MAAM,CAAC,WAAW,iBAAiB,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAEnH,0BAA0B;IAC1B,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,WAAW,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAEjG,OAAO;;;EAGP,OAAO;;;;;EAKP,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4CX,CAAA;AACD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,WAAmB;IAC9C,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAA;QAChD,MAAM,gBAAgB,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,CAAA;QAErE,gDAAgD;QAChD,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC5B,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QAC5C,CAAC;QAED,kBAAkB;QAClB,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE,YAAY,CAAC,CAAA;QAC1D,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,2BAA2B,aAAa,EAAE,CAAC,CAAA;QAC7D,CAAC;QACD,MAAM,SAAS,GAAG,YAAY,CAAC,aAAa,EAAE,OAAO,CAAC,CAAA;QACtD,aAAa,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,CAAA;QAEjE,oEAAoE;QACpE,MAAM,OAAO,GAAG,eAAe,CAAC,WAAW,CAAC,CAAA;QAC5C,aAAa,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;IAC/D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,KAAK,CAAC,CAAA;QACtD,MAAM,KAAK,CAAA;IACb,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"setup-runtime.js","sourceRoot":"","sources":["../../../src/lib/utils/setup-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAE3D,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAEtC;;GAEG;AACH,SAAS,eAAe,CAAC,WAAmB;IAC1C,MAAM,SAAS,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;IAC7C,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC;IAClC,MAAM,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC;IAEtC,6CAA6C;IAC7C,MAAM,OAAO,GAAG,OAAO;SACpB,GAAG,CACF,CAAC,MAAM,EAAE,EAAE,CACT,UAAU,MAAM,CAAC,WAAW,iBAAiB,MAAM,CAAC,QAAQ,GAAG,CAClE;SACA,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,2CAA2C;IAC3C,MAAM,YAAY,GAAG,SAAS;QAC5B,CAAC,CAAC,wCAAwC;QAC1C,CAAC,CAAC,EAAE,CAAC;IAEP,0BAA0B;IAC1B,MAAM,UAAU,GAAG,OAAO;SACvB,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,WAAW,GAAG,CAAC;SAC3D,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,kFAAkF;IAClF,MAAM,WAAW,GAAG,SAAS;QAC3B,CAAC,CAAC;;gBAEU;QACZ,CAAC,CAAC,4CAA4C,CAAC;IAEjD,OAAO;;EAEP,YAAY;EACZ,OAAO;;;;;EAKP,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8CV,WAAW;;;;;;;;;;;;;;CAcZ,CAAC;AACF,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,WAAmB;IAC9C,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;QACjD,MAAM,gBAAgB,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;QAEtE,gDAAgD;QAChD,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC5B,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7C,CAAC;QAED,kBAAkB;QAClB,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE,YAAY,CAAC,CAAC;QAC3D,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,2BAA2B,aAAa,EAAE,CAAC,CAAC;QAC9D,CAAC;QACD,MAAM,SAAS,GAAG,YAAY,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QACvD,aAAa,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QAElE,oEAAoE;QACpE,MAAM,OAAO,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC;QAC7C,aAAa,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAChE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,KAAK,CAAC,CAAC;QACvD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}