@linktr.ee/linkapp 0.0.21 → 0.0.23
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.
- package/dev-server/README.md +5 -5
- package/dev-server/components/SettingsPreview.tsx +330 -0
- package/dev-server/components/ui/dialog.tsx +6 -3
- package/dev-server/env.d.ts +8 -0
- package/dev-server/featured/main.tsx +48 -43
- package/dev-server/featured.html +21 -35
- package/dev-server/index.html +8 -1
- package/dev-server/lib/utils.ts +6 -0
- package/dev-server/package-lock.json +245 -287
- package/dev-server/package.json +7 -4
- package/dev-server/postcss/tailwind-source-fallback.js +94 -0
- package/dev-server/postcss.config.mjs +30 -0
- package/dev-server/preview/Preview.tsx +182 -381
- package/dev-server/preview/preview.css +22 -34
- package/dev-server/public/apple-touch-icon.png +0 -0
- package/dev-server/public/favicon-96x96.png +0 -0
- package/dev-server/public/favicon.ico +0 -0
- package/dev-server/public/favicon.svg +6 -0
- package/dev-server/public/site.webmanifest +21 -0
- package/dev-server/public/web-app-manifest-192x192.png +0 -0
- package/dev-server/public/web-app-manifest-512x512.png +0 -0
- package/dev-server/rsbuild.config.ts +45 -0
- package/dev-server/shared/theme-presets.ts +315 -0
- package/dev-server/shared/theme-utils.ts +38 -0
- package/dev-server/sheet/main.tsx +44 -0
- package/dev-server/sheet.html +56 -0
- package/dist/commands/add.d.ts.map +1 -1
- package/dist/commands/add.js +20 -12
- package/dist/commands/add.js.map +1 -1
- package/dist/commands/build.d.ts.map +1 -1
- package/dist/commands/build.js +55 -36
- package/dist/commands/build.js.map +1 -1
- package/dist/commands/deploy.d.ts.map +1 -1
- package/dist/commands/deploy.js +74 -59
- package/dist/commands/deploy.js.map +1 -1
- package/dist/commands/dev.d.ts.map +1 -1
- package/dist/commands/dev.js +564 -43
- package/dist/commands/dev.js.map +1 -1
- package/dist/commands/login.d.ts.map +1 -1
- package/dist/commands/login.js +19 -9
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/logout.d.ts.map +1 -1
- package/dist/commands/logout.js +9 -4
- package/dist/commands/logout.js.map +1 -1
- package/dist/commands/test-url-match-rules.d.ts.map +1 -1
- package/dist/commands/test-url-match-rules.js +24 -13
- package/dist/commands/test-url-match-rules.js.map +1 -1
- package/dist/components/index.d.ts +0 -1
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +2 -1
- package/dist/components/index.js.map +1 -1
- package/dist/lib/auth/device-flow.d.ts +1 -6
- package/dist/lib/auth/device-flow.d.ts.map +1 -1
- package/dist/lib/auth/device-flow.js +3 -9
- package/dist/lib/auth/device-flow.js.map +1 -1
- package/dist/lib/auth/token-storage.d.ts +0 -5
- package/dist/lib/auth/token-storage.d.ts.map +1 -1
- package/dist/lib/auth/token-storage.js +16 -14
- package/dist/lib/auth/token-storage.js.map +1 -1
- package/dist/lib/build/detect-layouts.d.ts +1 -1
- package/dist/lib/build/detect-layouts.d.ts.map +1 -1
- package/dist/lib/build/detect-layouts.js +8 -7
- package/dist/lib/build/detect-layouts.js.map +1 -1
- package/dist/lib/deploy/generate-manifest-files.js +1 -1
- package/dist/lib/deploy/generate-manifest-files.js.map +1 -1
- package/dist/lib/deploy/pack-project.js +2 -2
- package/dist/lib/deploy/pack-project.js.map +1 -1
- package/dist/lib/deploy/test-url-match-rules.d.ts +2 -1
- package/dist/lib/deploy/test-url-match-rules.d.ts.map +1 -1
- package/dist/lib/deploy/test-url-match-rules.js +1 -1
- package/dist/lib/deploy/test-url-match-rules.js.map +1 -1
- package/dist/lib/deploy/upload.d.ts.map +1 -1
- package/dist/lib/deploy/upload.js +7 -3
- package/dist/lib/deploy/upload.js.map +1 -1
- package/dist/lib/deploy/validation.d.ts.map +1 -1
- package/dist/lib/deploy/validation.js +8 -5
- package/dist/lib/deploy/validation.js.map +1 -1
- package/dist/lib/rsbuild/config-factory.d.ts +24 -0
- package/dist/lib/rsbuild/config-factory.d.ts.map +1 -0
- package/dist/lib/rsbuild/config-factory.js +135 -0
- package/dist/lib/rsbuild/config-factory.js.map +1 -0
- package/dist/lib/rsbuild/plugins/asset-versioning.d.ts +11 -0
- package/dist/lib/rsbuild/plugins/asset-versioning.d.ts.map +1 -0
- package/dist/lib/rsbuild/plugins/asset-versioning.js +62 -0
- package/dist/lib/rsbuild/plugins/asset-versioning.js.map +1 -0
- package/dist/lib/rsbuild/plugins/copy-public.d.ts +11 -0
- package/dist/lib/rsbuild/plugins/copy-public.d.ts.map +1 -0
- package/dist/lib/rsbuild/plugins/copy-public.js +32 -0
- package/dist/lib/rsbuild/plugins/copy-public.js.map +1 -0
- package/dist/lib/rsbuild/postcss/tailwind-source-fallback.d.ts +12 -0
- package/dist/lib/rsbuild/postcss/tailwind-source-fallback.d.ts.map +1 -0
- package/dist/lib/rsbuild/postcss/tailwind-source-fallback.js +60 -0
- package/dist/lib/rsbuild/postcss/tailwind-source-fallback.js.map +1 -0
- package/dist/lib/utils/setup-runtime.d.ts.map +1 -1
- package/dist/lib/utils/setup-runtime.js +78 -17
- package/dist/lib/utils/setup-runtime.js.map +1 -1
- package/dist/lib/vite/config-factory.d.ts.map +1 -1
- package/dist/lib/vite/config-factory.js +8 -3
- package/dist/lib/vite/config-factory.js.map +1 -1
- package/dist/lib/vite/plugins/copy-public.d.ts +12 -0
- package/dist/lib/vite/plugins/copy-public.d.ts.map +1 -0
- package/dist/lib/vite/plugins/copy-public.js +31 -0
- package/dist/lib/vite/plugins/copy-public.js.map +1 -0
- package/dist/schema/config.schema.d.ts +121 -32
- package/dist/schema/config.schema.d.ts.map +1 -1
- package/dist/schema/config.schema.js +28 -17
- package/dist/schema/config.schema.js.map +1 -1
- package/dist/types.d.ts +6 -57
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +7 -4
- package/runtime/index.html +19 -36
- package/dev-server/classic/main.tsx +0 -62
- package/dev-server/classic.html +0 -70
- package/dev-server/vite.config.ts +0 -29
package/dist/commands/add.js
CHANGED
|
@@ -3,17 +3,21 @@ import * as p from '@clack/prompts';
|
|
|
3
3
|
import { existsSync } from 'node:fs';
|
|
4
4
|
import { join } from 'node:path';
|
|
5
5
|
import { spawn } from 'node:child_process';
|
|
6
|
+
const writeLine = (message = '') => {
|
|
7
|
+
process.stdout.write(`${message}\n`);
|
|
8
|
+
};
|
|
6
9
|
// Default registry URL - can be overridden with --registry flag or LINKAPP_REGISTRY_URL env var
|
|
7
10
|
const DEFAULT_REGISTRY = process.env.LINKAPP_REGISTRY_URL || 'https://create-linkapp-registry.vercel.app/r';
|
|
8
11
|
export async function addCommand(component, options = {}) {
|
|
9
|
-
|
|
12
|
+
writeLine(pc.cyan('📦 Adding components from LinkApp registry...'));
|
|
13
|
+
writeLine();
|
|
10
14
|
try {
|
|
11
15
|
// Check if components.json exists
|
|
12
16
|
const projectPath = process.cwd();
|
|
13
17
|
const componentsJsonPath = join(projectPath, 'components.json');
|
|
14
18
|
if (!existsSync(componentsJsonPath)) {
|
|
15
|
-
|
|
16
|
-
|
|
19
|
+
writeLine(pc.red('✗ components.json not found'));
|
|
20
|
+
writeLine(pc.dim('Please run this command from a LinkApp project root'));
|
|
17
21
|
process.exit(1);
|
|
18
22
|
}
|
|
19
23
|
// Determine the registry URL (priority: CLI flag > env var > default)
|
|
@@ -21,11 +25,13 @@ export async function addCommand(component, options = {}) {
|
|
|
21
25
|
// Build the component URL
|
|
22
26
|
let componentUrl;
|
|
23
27
|
if (!component) {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
28
|
+
writeLine(pc.red('✗ Please specify a component name'));
|
|
29
|
+
writeLine();
|
|
30
|
+
writeLine(pc.dim('Available components:'));
|
|
31
|
+
writeLine(pc.dim(' • button'));
|
|
32
|
+
writeLine(pc.dim(' • switch'));
|
|
33
|
+
writeLine();
|
|
34
|
+
writeLine(pc.dim('Example: linkapp add button'));
|
|
29
35
|
process.exit(1);
|
|
30
36
|
}
|
|
31
37
|
// Check if it's a full URL or just a component name
|
|
@@ -35,7 +41,8 @@ export async function addCommand(component, options = {}) {
|
|
|
35
41
|
else {
|
|
36
42
|
componentUrl = `${registryUrl}/${component}.json`;
|
|
37
43
|
}
|
|
38
|
-
|
|
44
|
+
writeLine(pc.dim(`Installing from: ${componentUrl}`));
|
|
45
|
+
writeLine();
|
|
39
46
|
// Use shadcn CLI to install the component
|
|
40
47
|
const args = ['add', componentUrl];
|
|
41
48
|
if (options.yes) {
|
|
@@ -48,9 +55,10 @@ export async function addCommand(component, options = {}) {
|
|
|
48
55
|
s.start(`Installing ${component}`);
|
|
49
56
|
await runShadcnCommand(args);
|
|
50
57
|
s.stop(pc.green(`✓ Successfully installed ${component}`));
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
58
|
+
writeLine();
|
|
59
|
+
writeLine(pc.dim('You can now import and use the component:'));
|
|
60
|
+
writeLine(pc.dim(` import { ${capitalize(component)} } from '@/components/ui/${component}'`));
|
|
61
|
+
writeLine();
|
|
54
62
|
}
|
|
55
63
|
catch (error) {
|
|
56
64
|
console.error(pc.red('\\n✗ Failed to add component:'), error);
|
package/dist/commands/add.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add.js","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAA;AAC3B,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAA;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"add.js","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"AAUA,UAAU,YAAY;IACpB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB;AAED,wBAAsB,YAAY,CAAC,OAAO,EAAE,YAAY,iBAyDvD"}
|
package/dist/commands/build.js
CHANGED
|
@@ -1,70 +1,89 @@
|
|
|
1
1
|
import pc from 'picocolors';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { createRsbuild } from '@rsbuild/core';
|
|
3
|
+
import { createRsbuildConfig } from '../lib/rsbuild/config-factory.js';
|
|
4
4
|
import { existsSync, statSync, readdirSync } from 'node:fs';
|
|
5
5
|
import { join } from 'node:path';
|
|
6
|
+
const writeLine = (message = '') => {
|
|
7
|
+
process.stdout.write(`${message}\n`);
|
|
8
|
+
};
|
|
6
9
|
export async function buildCommand(options) {
|
|
7
|
-
|
|
10
|
+
writeLine(pc.cyan('🏗️ Building for production...'));
|
|
11
|
+
writeLine();
|
|
8
12
|
const startTime = Date.now();
|
|
9
13
|
try {
|
|
10
14
|
// Use profile flag, fall back to analyze for backward compatibility
|
|
11
15
|
const enableProfiling = options.profile || options.analyze || false;
|
|
12
|
-
const config =
|
|
16
|
+
const config = createRsbuildConfig({
|
|
13
17
|
mode: 'production',
|
|
14
18
|
sourcemap: options.sourcemap || false,
|
|
15
19
|
profile: enableProfiling,
|
|
16
20
|
});
|
|
17
|
-
// Run
|
|
18
|
-
const
|
|
21
|
+
// Run Rsbuild build
|
|
22
|
+
const rsbuild = await createRsbuild({ rsbuildConfig: config });
|
|
23
|
+
const buildResult = await rsbuild.build();
|
|
19
24
|
const endTime = Date.now();
|
|
20
25
|
const duration = ((endTime - startTime) / 1000).toFixed(2);
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
26
|
+
writeLine();
|
|
27
|
+
writeLine(pc.green(`✓ Build completed in ${duration}s`));
|
|
28
|
+
writeLine();
|
|
29
|
+
const assetDetails = collectAssetDetails(buildResult?.stats);
|
|
30
|
+
if (assetDetails.length > 0) {
|
|
31
|
+
writeLine(pc.bold('Build output:'));
|
|
32
|
+
for (const asset of assetDetails) {
|
|
33
|
+
const sizeKB = (asset.size / 1024).toFixed(1);
|
|
34
|
+
writeLine(pc.dim(` ${asset.name} ${sizeKB} KB`));
|
|
29
35
|
}
|
|
30
|
-
|
|
31
|
-
else if (result && 'output' in result) {
|
|
32
|
-
showBundleInfo(result.output);
|
|
36
|
+
writeLine();
|
|
33
37
|
}
|
|
34
38
|
// Show dist directory size
|
|
35
39
|
const distPath = join(process.cwd(), 'dist');
|
|
36
40
|
if (existsSync(distPath)) {
|
|
37
41
|
const totalSize = getDirSize(distPath);
|
|
38
42
|
const sizeKB = (totalSize / 1024).toFixed(1);
|
|
39
|
-
|
|
43
|
+
writeLine(pc.dim(`Total dist size: ${sizeKB} KB`));
|
|
44
|
+
writeLine();
|
|
40
45
|
}
|
|
41
46
|
if (enableProfiling) {
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
console.log(pc.cyan('\n🔍 Detailed profiling enabled - check build output above for timing breakdown\n'));
|
|
47
|
+
writeLine(pc.cyan('\n📊 Bundle analysis:'));
|
|
48
|
+
writeLine(pc.cyan(' 💡 Use --sourcemap flag and analyze with external tools'));
|
|
49
|
+
writeLine();
|
|
46
50
|
}
|
|
51
|
+
await buildResult?.close();
|
|
47
52
|
}
|
|
48
53
|
catch (error) {
|
|
49
54
|
console.error(pc.red('Build failed:'), error);
|
|
50
55
|
process.exit(1);
|
|
51
56
|
}
|
|
52
57
|
}
|
|
53
|
-
function
|
|
54
|
-
if (!
|
|
55
|
-
return;
|
|
56
|
-
console.log(pc.bold('Build output:'));
|
|
57
|
-
for (const chunk of output) {
|
|
58
|
-
if (chunk.type === 'chunk') {
|
|
59
|
-
const sizeKB = (chunk.code.length / 1024).toFixed(1);
|
|
60
|
-
console.log(pc.dim(` ${chunk.fileName} ${sizeKB} KB`));
|
|
61
|
-
}
|
|
62
|
-
else if (chunk.type === 'asset') {
|
|
63
|
-
const size = typeof chunk.source === 'string' ? chunk.source.length : chunk.source.byteLength;
|
|
64
|
-
const sizeKB = (size / 1024).toFixed(1);
|
|
65
|
-
console.log(pc.dim(` ${chunk.fileName} ${sizeKB} KB`));
|
|
66
|
-
}
|
|
58
|
+
function collectAssetDetails(stats) {
|
|
59
|
+
if (!stats) {
|
|
60
|
+
return [];
|
|
67
61
|
}
|
|
62
|
+
const collectFromStats = (single) => {
|
|
63
|
+
const json = single.toJson({
|
|
64
|
+
assets: true,
|
|
65
|
+
modules: false,
|
|
66
|
+
chunks: false,
|
|
67
|
+
chunkModules: false,
|
|
68
|
+
entrypoints: false,
|
|
69
|
+
children: false,
|
|
70
|
+
});
|
|
71
|
+
const assets = Array.isArray(json.assets) ? json.assets : [];
|
|
72
|
+
return assets
|
|
73
|
+
.filter((asset) => asset.emitted && asset.name && asset.size !== undefined)
|
|
74
|
+
.map((asset) => ({
|
|
75
|
+
name: asset.name,
|
|
76
|
+
size: asset.size,
|
|
77
|
+
}))
|
|
78
|
+
.sort((a, b) => a.name.localeCompare(b.name));
|
|
79
|
+
};
|
|
80
|
+
if (isMultiStats(stats)) {
|
|
81
|
+
return stats.stats.flatMap(collectFromStats).sort((a, b) => a.name.localeCompare(b.name));
|
|
82
|
+
}
|
|
83
|
+
return collectFromStats(stats);
|
|
84
|
+
}
|
|
85
|
+
function isMultiStats(stats) {
|
|
86
|
+
return 'stats' in stats && Array.isArray(stats.stats);
|
|
68
87
|
}
|
|
69
88
|
function getDirSize(dirPath) {
|
|
70
89
|
let totalSize = 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAA;AAC3B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"AAgBA,UAAU,aAAa;IACrB,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,wBAAsB,aAAa,CAAC,OAAO,EAAE,aAAa,iBAgMzD"}
|
package/dist/commands/deploy.js
CHANGED
|
@@ -9,53 +9,61 @@ import { packProject } from '../lib/deploy/pack-project.js';
|
|
|
9
9
|
import { uploadAssets, checkLinkAppExists } from '../lib/deploy/upload.js';
|
|
10
10
|
import { generateManifestFiles } from '../lib/deploy/generate-manifest-files.js';
|
|
11
11
|
import { buildCommand } from './build.js';
|
|
12
|
+
const writeLine = (message = '') => {
|
|
13
|
+
process.stdout.write(`${message}\n`);
|
|
14
|
+
};
|
|
12
15
|
export async function deployCommand(options) {
|
|
13
16
|
const env = options.qa ? 'QA' : 'Production';
|
|
14
17
|
const startTime = Date.now();
|
|
15
|
-
console.log(pc.bold(pc.cyan(`\n→ Deploying to ${env}`)));
|
|
16
|
-
console.log(pc.dim('─'.repeat(50)) + '\n');
|
|
17
18
|
try {
|
|
18
19
|
const config = await getAppConfig(options.qa ? 'qa' : 'production');
|
|
19
20
|
const projectPath = options.path ?? process.cwd();
|
|
21
|
+
// Get LinkApp ID from config (check root first, then .config for backward compatibility)
|
|
22
|
+
const rootConfigPath = join(projectPath, 'linkapp.config.ts');
|
|
23
|
+
const nestedConfigPath = join(projectPath, '.config', 'linkapp.config.ts');
|
|
24
|
+
const configPath = existsSync(rootConfigPath) ? rootConfigPath : nestedConfigPath;
|
|
25
|
+
const linkAppId = await getLinkAppId(configPath);
|
|
26
|
+
writeLine(pc.bold(pc.cyan(`\n→ Deploying ${linkAppId} to ${env}`)));
|
|
27
|
+
writeLine(pc.dim('─'.repeat(50)));
|
|
28
|
+
writeLine();
|
|
20
29
|
// Check authentication
|
|
21
30
|
const accessToken = getToken(config.auth.audience);
|
|
22
31
|
if (!accessToken) {
|
|
23
|
-
|
|
24
|
-
|
|
32
|
+
writeLine(pc.red('✗ Not authenticated'));
|
|
33
|
+
writeLine(pc.dim(` → Run: ${pc.cyan(`npx @linktr.ee/linkapp login${options.qa ? ' --qa' : ''}`)}`));
|
|
34
|
+
writeLine();
|
|
25
35
|
process.exit(1);
|
|
26
36
|
}
|
|
27
37
|
// Run build if needed
|
|
28
38
|
if (!options.skipBuild) {
|
|
29
39
|
const distPath = join(projectPath, 'dist');
|
|
30
40
|
if (!existsSync(distPath)) {
|
|
31
|
-
|
|
41
|
+
writeLine(pc.bold('Building project...'));
|
|
32
42
|
const buildStart = Date.now();
|
|
33
43
|
await buildCommand({ sourcemap: false });
|
|
34
44
|
const buildTime = ((Date.now() - buildStart) / 1000).toFixed(1);
|
|
35
|
-
|
|
45
|
+
writeLine(pc.dim(` Completed in ${buildTime}s`));
|
|
46
|
+
writeLine();
|
|
36
47
|
}
|
|
37
48
|
}
|
|
38
49
|
// Pre-deployment validation
|
|
39
50
|
if (!options.skipChecks) {
|
|
40
|
-
|
|
51
|
+
writeLine(pc.bold('Pre-deployment checks'));
|
|
41
52
|
const validationResult = await validateProject();
|
|
42
53
|
printValidationResults(validationResult);
|
|
43
54
|
if (!validationResult.success) {
|
|
44
|
-
|
|
55
|
+
writeLine();
|
|
56
|
+
writeLine(pc.red('✗ Validation failed'));
|
|
57
|
+
writeLine();
|
|
45
58
|
process.exit(1);
|
|
46
59
|
}
|
|
47
|
-
|
|
60
|
+
writeLine();
|
|
48
61
|
}
|
|
49
62
|
const s = p.spinner();
|
|
50
63
|
// Generate manifest files from config
|
|
51
64
|
s.start('Generating manifest files');
|
|
52
65
|
await generateManifestFiles(projectPath);
|
|
53
66
|
s.stop('Manifest files generated');
|
|
54
|
-
// Get LinkApp ID from config (check root first, then .config for backward compatibility)
|
|
55
|
-
const rootConfigPath = join(projectPath, 'linkapp.config.ts');
|
|
56
|
-
const nestedConfigPath = join(projectPath, '.config', 'linkapp.config.ts');
|
|
57
|
-
const configPath = existsSync(rootConfigPath) ? rootConfigPath : nestedConfigPath;
|
|
58
|
-
const linkAppId = await getLinkAppId(configPath);
|
|
59
67
|
// Check if LinkApp exists
|
|
60
68
|
s.start('Checking LinkApp status');
|
|
61
69
|
const apiUrl = options.endpoint ?? `${config.link_types_url}/link-types`;
|
|
@@ -67,29 +75,31 @@ export async function deployCommand(options) {
|
|
|
67
75
|
const packedFiles = await packProject({ projectPath });
|
|
68
76
|
s.stop(`Packed ${packedFiles.length} ${packedFiles.length === 1 ? 'item' : 'items'}`);
|
|
69
77
|
// Show files to upload
|
|
70
|
-
|
|
71
|
-
|
|
78
|
+
writeLine();
|
|
79
|
+
writeLine(pc.bold('Files to upload:'));
|
|
72
80
|
const filesToShow = packedFiles.slice(0, 8);
|
|
73
81
|
for (const file of filesToShow) {
|
|
74
|
-
|
|
82
|
+
writeLine(pc.dim(` • ${file}`));
|
|
75
83
|
}
|
|
76
84
|
if (packedFiles.length > 8) {
|
|
77
|
-
|
|
85
|
+
writeLine(pc.dim(` • ... and ${packedFiles.length - 8} more files`));
|
|
78
86
|
}
|
|
79
87
|
// Confirm deployment
|
|
80
88
|
if (!options.skipConfirm) {
|
|
81
|
-
|
|
89
|
+
writeLine();
|
|
82
90
|
const shouldDeploy = await p.confirm({
|
|
83
91
|
message: `Deploy to ${env}?`,
|
|
84
92
|
initialValue: true,
|
|
85
93
|
});
|
|
86
94
|
if (p.isCancel(shouldDeploy) || !shouldDeploy) {
|
|
87
|
-
|
|
95
|
+
writeLine();
|
|
96
|
+
writeLine(pc.yellow('⚠ Deployment cancelled'));
|
|
97
|
+
writeLine();
|
|
88
98
|
return;
|
|
89
99
|
}
|
|
90
100
|
}
|
|
91
101
|
// Upload
|
|
92
|
-
|
|
102
|
+
writeLine();
|
|
93
103
|
const uploadStart = Date.now();
|
|
94
104
|
s.start('Uploading assets');
|
|
95
105
|
const result = await uploadAssets({
|
|
@@ -104,73 +114,74 @@ export async function deployCommand(options) {
|
|
|
104
114
|
s.stop(`Assets uploaded (${uploadTime}s)`);
|
|
105
115
|
// Show success
|
|
106
116
|
const totalTime = ((Date.now() - startTime) / 1000).toFixed(1);
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
117
|
+
writeLine();
|
|
118
|
+
writeLine(pc.dim('─'.repeat(50)));
|
|
119
|
+
writeLine(pc.green(pc.bold('\n✓ Deployment successful!')));
|
|
120
|
+
writeLine(pc.dim(` Completed in ${totalTime}s`));
|
|
121
|
+
writeLine();
|
|
122
|
+
writeLine(pc.bold('Details:'));
|
|
123
|
+
writeLine(pc.dim(` ID: ${result.linkType.linkTypeId}`));
|
|
124
|
+
writeLine(pc.dim(` Status: ${result.linkType.status}`));
|
|
114
125
|
// Fix timestamp handling - check if it exists and handle both seconds and milliseconds
|
|
115
126
|
if (result.linkType.updatedTimestamp) {
|
|
116
127
|
const timestamp = result.linkType.updatedTimestamp;
|
|
117
128
|
// If timestamp is in seconds (less than year 2100 in seconds), convert to ms
|
|
118
129
|
const timestampMs = timestamp < 10000000000 ? timestamp * 1000 : timestamp;
|
|
119
130
|
const date = new Date(timestampMs);
|
|
120
|
-
|
|
131
|
+
writeLine(pc.dim(` Updated: ${date.toLocaleString()}`));
|
|
121
132
|
}
|
|
122
|
-
|
|
123
|
-
|
|
133
|
+
writeLine();
|
|
134
|
+
writeLine(pc.bold('Next steps:'));
|
|
124
135
|
// Step 1: Build is happening
|
|
125
136
|
if (result.build?.id) {
|
|
126
|
-
const buildUrl =
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
console.log(pc.dim(` ${buildUrl}`));
|
|
131
|
-
console.log();
|
|
137
|
+
const buildUrl = `https://linkapp-ci.replit.app/?linkTypeId=${result.linkType.linkTypeId}&buildId=${result.build.id}`;
|
|
138
|
+
writeLine(pc.cyan(` 1. Building your LinkApp (this may take a few minutes):`));
|
|
139
|
+
writeLine(pc.dim(` ${buildUrl}`));
|
|
140
|
+
writeLine();
|
|
132
141
|
}
|
|
133
142
|
// Step 2: Add to page (only after build completes)
|
|
134
143
|
const createUrl = options.qa
|
|
135
144
|
? `https://qa.linktr.ee/admin?action=create-link&linkType=${result.linkType.linkTypeId}`
|
|
136
145
|
: `https://linktr.ee/admin?action=create-link&linkType=${result.linkType.linkTypeId}`;
|
|
137
|
-
|
|
138
|
-
|
|
146
|
+
writeLine(pc.cyan(` 2. Once the build completes, add it to your page:`));
|
|
147
|
+
writeLine(pc.dim(` ${createUrl}`));
|
|
148
|
+
writeLine();
|
|
139
149
|
}
|
|
140
150
|
catch (error) {
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
151
|
+
writeLine();
|
|
152
|
+
writeLine(pc.dim('─'.repeat(50)));
|
|
153
|
+
writeLine(pc.red(pc.bold('\n✗ Deployment failed')));
|
|
154
|
+
writeLine();
|
|
144
155
|
// Check if this is our structured error with API details
|
|
145
156
|
if (error && typeof error === 'object' && 'statusCode' in error && 'messages' in error) {
|
|
146
157
|
const structuredError = error;
|
|
147
|
-
|
|
148
|
-
|
|
158
|
+
writeLine(pc.bold('Error Details:'));
|
|
159
|
+
writeLine(pc.red(` Status: ${structuredError.statusCode}`));
|
|
149
160
|
if (Array.isArray(structuredError.messages) && structuredError.messages.length > 0) {
|
|
150
|
-
|
|
151
|
-
|
|
161
|
+
writeLine();
|
|
162
|
+
writeLine(pc.bold(' Validation Errors:'));
|
|
152
163
|
for (const msg of structuredError.messages) {
|
|
153
|
-
|
|
164
|
+
writeLine(pc.red(` • ${msg}`));
|
|
154
165
|
}
|
|
155
166
|
}
|
|
156
167
|
if (structuredError.responseData?.error) {
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
168
|
+
writeLine();
|
|
169
|
+
writeLine(pc.bold(' Error Type:'));
|
|
170
|
+
writeLine(pc.red(` ${structuredError.responseData.error}`));
|
|
160
171
|
}
|
|
161
172
|
}
|
|
162
173
|
else if (error instanceof Error) {
|
|
163
|
-
|
|
174
|
+
writeLine(pc.red(` ${error.message}`));
|
|
164
175
|
}
|
|
165
176
|
else {
|
|
166
|
-
|
|
177
|
+
writeLine(pc.red(` ${String(error)}`));
|
|
167
178
|
}
|
|
168
|
-
|
|
179
|
+
writeLine(); // Empty line
|
|
169
180
|
process.exit(1);
|
|
170
181
|
}
|
|
171
182
|
}
|
|
172
183
|
async function getLinkAppId(configPath) {
|
|
173
|
-
// Load the TypeScript config
|
|
184
|
+
// Load the TypeScript config and derive ID from manifest name (kebab-case)
|
|
174
185
|
const { createJiti } = await import('jiti');
|
|
175
186
|
const jiti = createJiti(import.meta.url, {
|
|
176
187
|
interopDefault: true,
|
|
@@ -178,16 +189,20 @@ async function getLinkAppId(configPath) {
|
|
|
178
189
|
});
|
|
179
190
|
try {
|
|
180
191
|
const config = jiti(configPath);
|
|
181
|
-
if (!config?.
|
|
182
|
-
throw new Error('
|
|
192
|
+
if (!config?.manifest?.name) {
|
|
193
|
+
throw new Error('manifest.name is required in configuration');
|
|
183
194
|
}
|
|
184
|
-
|
|
195
|
+
// Derive ID from name using kebab-case (matches backend behavior)
|
|
196
|
+
return config.manifest.name
|
|
197
|
+
.toLowerCase()
|
|
198
|
+
.replace(/[^a-z0-9]+/g, '-')
|
|
199
|
+
.replace(/^-+|-+$/g, ''); // Remove leading/trailing hyphens
|
|
185
200
|
}
|
|
186
201
|
catch (error) {
|
|
187
|
-
if (error instanceof Error && error.message.includes('
|
|
202
|
+
if (error instanceof Error && error.message.includes('manifest.name is required')) {
|
|
188
203
|
throw error;
|
|
189
204
|
}
|
|
190
|
-
throw new Error(`Failed to load
|
|
205
|
+
throw new Error(`Failed to load manifest.name from config: ${error instanceof Error ? error.message : error}`);
|
|
191
206
|
}
|
|
192
207
|
}
|
|
193
208
|
//# sourceMappingURL=deploy.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAA;AAC3B,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAA;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAA;AACvD,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AACrF,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAA;AAC3D,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAC1E,OAAO,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAA;AAChF,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"AAoBA,UAAU,UAAU;IAClB,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAkXD,wBAAsB,UAAU,CAAC,OAAO,EAAE,UAAU,iBA4RnD"}
|