atxp 1.0.0 → 1.0.2
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/README.md +42 -0
- package/dist/create-project.d.ts +2 -0
- package/dist/create-project.d.ts.map +1 -0
- package/dist/create-project.js +129 -0
- package/dist/create-project.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +16 -0
- package/dist/index.js.map +1 -0
- package/dist/index.test.d.ts +2 -0
- package/dist/index.test.d.ts.map +1 -0
- package/dist/index.test.js +7 -0
- package/dist/index.test.js.map +1 -0
- package/dist/run-demo.d.ts +2 -0
- package/dist/run-demo.d.ts.map +1 -0
- package/dist/run-demo.js +204 -0
- package/dist/run-demo.js.map +1 -0
- package/package.json +50 -6
package/README.md
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# ATXP CLI
|
|
2
|
+
|
|
3
|
+
The official ATXP (Authorization Token Exchange Protocol) CLI tool for creating projects and running demos.
|
|
4
|
+
|
|
5
|
+
## Quick Start
|
|
6
|
+
|
|
7
|
+
### Create a new ATXP project
|
|
8
|
+
```bash
|
|
9
|
+
npm create atxp
|
|
10
|
+
```
|
|
11
|
+
Creates a new project with interactive prompts for:
|
|
12
|
+
- Project name and template
|
|
13
|
+
- Solana network configuration
|
|
14
|
+
- Environment setup
|
|
15
|
+
- Git initialization
|
|
16
|
+
|
|
17
|
+
### Run the ATXP demo
|
|
18
|
+
```bash
|
|
19
|
+
npx atxp
|
|
20
|
+
```
|
|
21
|
+
Downloads and runs the latest ATXP agent demo from GitHub, showcasing a full web-based agent with MCP servers.
|
|
22
|
+
|
|
23
|
+
## What is ATXP?
|
|
24
|
+
|
|
25
|
+
ATXP is a framework for building agents that can interact with the world through secure OAuth authentication and Solana payments. It provides:
|
|
26
|
+
|
|
27
|
+
- 🔐 OAuth-based authentication
|
|
28
|
+
- 💰 Solana payment integration
|
|
29
|
+
- 🤖 MCP (Model Context Protocol) support
|
|
30
|
+
- ⚡ Fast and secure architecture
|
|
31
|
+
|
|
32
|
+
## Templates
|
|
33
|
+
|
|
34
|
+
- **Basic Client**: CLI client example
|
|
35
|
+
- **Server**: MCP server with payments
|
|
36
|
+
- **Full Stack**: Complete client + server setup
|
|
37
|
+
|
|
38
|
+
## Learn More
|
|
39
|
+
|
|
40
|
+
- [Documentation](https://docs.atxp.ai)
|
|
41
|
+
- [GitHub Repository](https://github.com/atxp-dev/sdk)
|
|
42
|
+
- [Examples](https://github.com/atxp-dev/sdk/tree/main/examples)
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-project.d.ts","sourceRoot":"","sources":["../src/create-project.ts"],"names":[],"mappings":"AAyBA,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAkGnD"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import inquirer from 'inquirer';
|
|
2
|
+
import fs from 'fs-extra';
|
|
3
|
+
import path from 'path';
|
|
4
|
+
import chalk from 'chalk';
|
|
5
|
+
import { spawn } from 'child_process';
|
|
6
|
+
// Template repositories
|
|
7
|
+
const TEMPLATES = {
|
|
8
|
+
agent: {
|
|
9
|
+
url: 'https://github.com/atxp-dev/agent-demo.git',
|
|
10
|
+
humanText: 'Agent Demo (Full-stack web agent)'
|
|
11
|
+
}
|
|
12
|
+
};
|
|
13
|
+
export async function createProject() {
|
|
14
|
+
try {
|
|
15
|
+
// Get project details from user
|
|
16
|
+
const answers = await inquirer.prompt([
|
|
17
|
+
{
|
|
18
|
+
type: 'input',
|
|
19
|
+
name: 'projectName',
|
|
20
|
+
message: 'What is your project named?',
|
|
21
|
+
default: 'my-atxp-app',
|
|
22
|
+
validate: (input) => {
|
|
23
|
+
if (!input.trim())
|
|
24
|
+
return 'Project name is required';
|
|
25
|
+
if (!/^[a-zA-Z0-9-_]+$/.test(input)) {
|
|
26
|
+
return 'Project name can only contain letters, numbers, hyphens, and underscores';
|
|
27
|
+
}
|
|
28
|
+
return true;
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
type: 'list',
|
|
33
|
+
name: 'template',
|
|
34
|
+
message: 'Choose a template:',
|
|
35
|
+
choices: Object.entries(TEMPLATES).map(([key, template]) => ({
|
|
36
|
+
name: template.humanText,
|
|
37
|
+
value: key
|
|
38
|
+
})),
|
|
39
|
+
default: 'agent'
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
type: 'confirm',
|
|
43
|
+
name: 'initGit',
|
|
44
|
+
message: 'Initialize git repository?',
|
|
45
|
+
default: true
|
|
46
|
+
}
|
|
47
|
+
]);
|
|
48
|
+
const { projectName, template, initGit } = answers;
|
|
49
|
+
const projectPath = path.resolve(process.cwd(), projectName);
|
|
50
|
+
// Check if directory already exists
|
|
51
|
+
if (await fs.pathExists(projectPath)) {
|
|
52
|
+
console.error(chalk.red(`Directory "${projectName}" already exists`));
|
|
53
|
+
process.exit(1);
|
|
54
|
+
}
|
|
55
|
+
console.log(chalk.blue(`Creating project at ${projectPath}`));
|
|
56
|
+
// Create project directory
|
|
57
|
+
await fs.ensureDir(projectPath);
|
|
58
|
+
// Clone template from GitHub
|
|
59
|
+
await cloneTemplate(template, projectPath);
|
|
60
|
+
// Copy .env file from env.example if it exists
|
|
61
|
+
const envExamplePath = path.join(projectPath, 'env.example');
|
|
62
|
+
const envPath = path.join(projectPath, '.env');
|
|
63
|
+
if (await fs.pathExists(envExamplePath)) {
|
|
64
|
+
await fs.copy(envExamplePath, envPath);
|
|
65
|
+
console.log(chalk.green('Environment file created from template'));
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
console.log(chalk.yellow('No env.example found in template'));
|
|
69
|
+
}
|
|
70
|
+
// Update package.json with project name
|
|
71
|
+
const packageJsonPath = path.join(projectPath, 'package.json');
|
|
72
|
+
if (await fs.pathExists(packageJsonPath)) {
|
|
73
|
+
const packageJson = await fs.readJson(packageJsonPath);
|
|
74
|
+
packageJson.name = projectName;
|
|
75
|
+
await fs.writeJson(packageJsonPath, packageJson, { spaces: 2 });
|
|
76
|
+
}
|
|
77
|
+
// Remove .git directory from template (if it exists)
|
|
78
|
+
const gitDir = path.join(projectPath, '.git');
|
|
79
|
+
if (await fs.pathExists(gitDir)) {
|
|
80
|
+
await fs.remove(gitDir);
|
|
81
|
+
}
|
|
82
|
+
// Initialize git if requested
|
|
83
|
+
if (initGit) {
|
|
84
|
+
const { execSync } = await import('child_process');
|
|
85
|
+
try {
|
|
86
|
+
execSync('git init', { cwd: projectPath, stdio: 'ignore' });
|
|
87
|
+
console.log(chalk.green('Git repository initialized'));
|
|
88
|
+
}
|
|
89
|
+
catch {
|
|
90
|
+
console.log(chalk.yellow('Could not initialize git repository'));
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
console.log(chalk.green('\nProject created successfully!'));
|
|
94
|
+
console.log(chalk.blue('\nNext steps:'));
|
|
95
|
+
console.log(chalk.white(` cd ${projectName}`));
|
|
96
|
+
console.log(chalk.white(' npm install'));
|
|
97
|
+
console.log(chalk.white(' npm start'));
|
|
98
|
+
console.log(chalk.yellow('\nRemember to configure your environment variables in the .env file!'));
|
|
99
|
+
}
|
|
100
|
+
catch (error) {
|
|
101
|
+
console.error(chalk.red('Error creating project:'), error.message);
|
|
102
|
+
process.exit(1);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
async function cloneTemplate(template, projectPath) {
|
|
106
|
+
const templateConfig = TEMPLATES[template];
|
|
107
|
+
if (!templateConfig) {
|
|
108
|
+
throw new Error(`Template "${template}" not found`);
|
|
109
|
+
}
|
|
110
|
+
return new Promise((resolve, reject) => {
|
|
111
|
+
console.log(chalk.blue('Downloading template from GitHub...'));
|
|
112
|
+
const git = spawn('git', ['clone', templateConfig.url, projectPath], {
|
|
113
|
+
stdio: 'inherit'
|
|
114
|
+
});
|
|
115
|
+
git.on('close', (code) => {
|
|
116
|
+
if (code === 0) {
|
|
117
|
+
console.log(chalk.green('Template downloaded successfully'));
|
|
118
|
+
resolve();
|
|
119
|
+
}
|
|
120
|
+
else {
|
|
121
|
+
reject(new Error(`Git clone failed with code ${code}`));
|
|
122
|
+
}
|
|
123
|
+
});
|
|
124
|
+
git.on('error', (_error) => {
|
|
125
|
+
reject(new Error(`Failed to clone template`));
|
|
126
|
+
});
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
//# sourceMappingURL=create-project.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-project.js","sourceRoot":"","sources":["../src/create-project.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { createProject } from './create-project.js';
|
|
3
|
+
import { runDemo } from './run-demo.js';
|
|
4
|
+
// Detect if we're in create mode (npm create atxp or npx atxp create)
|
|
5
|
+
const isCreateMode = process.env.npm_config_argv?.includes('create') ||
|
|
6
|
+
process.argv.includes('--create') ||
|
|
7
|
+
process.argv[2] === 'create';
|
|
8
|
+
if (isCreateMode) {
|
|
9
|
+
console.log('Creating new ATXP project...');
|
|
10
|
+
createProject();
|
|
11
|
+
}
|
|
12
|
+
else {
|
|
13
|
+
console.log('Starting ATXP demo...');
|
|
14
|
+
runDemo();
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,sEAAsE;AACtE,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,QAAQ,CAAC,QAAQ,CAAC;IAC/C,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;IACjC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC;AAElD,IAAI,YAAY,EAAE,CAAC;IACjB,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;IAC5C,aAAa,EAAE,CAAC;AAClB,CAAC;KAAM,CAAC;IACN,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;IACrC,OAAO,EAAE,CAAC;AACZ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.test.d.ts","sourceRoot":"","sources":["../src/index.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.test.js","sourceRoot":"","sources":["../src/index.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAE7C,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;IACxB,EAAE,CAAC,sBAAsB,EAAE,GAAG,EAAE;QAC9B,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAA;IAClD,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-demo.d.ts","sourceRoot":"","sources":["../src/run-demo.ts"],"names":[],"mappings":"AAcA,wBAAsB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CA2B7C"}
|
package/dist/run-demo.js
ADDED
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import { spawn } from 'child_process';
|
|
3
|
+
import fs from 'fs-extra';
|
|
4
|
+
import path from 'path';
|
|
5
|
+
import open from 'open';
|
|
6
|
+
import os from 'os';
|
|
7
|
+
const DEMO_REPO_URL = 'https://github.com/atxp-dev/agent-demo.git';
|
|
8
|
+
const DEMO_DIR = path.join(os.homedir(), '.cache', 'atxp', 'demo');
|
|
9
|
+
const DEMO_PORT = 8016;
|
|
10
|
+
const isVerbose = process.argv.includes('--verbose') || process.argv.includes('-v');
|
|
11
|
+
const shouldRefresh = process.argv.includes('--refresh');
|
|
12
|
+
export async function runDemo() {
|
|
13
|
+
try {
|
|
14
|
+
// Check if demo directory exists, if not clone it
|
|
15
|
+
if (!await fs.pathExists(DEMO_DIR)) {
|
|
16
|
+
console.log(chalk.blue('Downloading demo from GitHub...'));
|
|
17
|
+
await cloneDemoRepo();
|
|
18
|
+
}
|
|
19
|
+
else if (shouldRefresh) {
|
|
20
|
+
// Force refresh if --refresh flag is used
|
|
21
|
+
console.log(chalk.blue('Forcing demo refresh...'));
|
|
22
|
+
await fs.remove(DEMO_DIR);
|
|
23
|
+
await cloneDemoRepo();
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
console.log(chalk.blue('Using existing demo...'));
|
|
27
|
+
// Pull latest changes
|
|
28
|
+
await updateDemoRepo();
|
|
29
|
+
}
|
|
30
|
+
// Install dependencies if needed
|
|
31
|
+
await installDependencies();
|
|
32
|
+
// Start the demo and open browser
|
|
33
|
+
await startDemo();
|
|
34
|
+
}
|
|
35
|
+
catch (error) {
|
|
36
|
+
console.error(chalk.red('Error starting demo:'), error.message);
|
|
37
|
+
process.exit(1);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
async function cloneDemoRepo() {
|
|
41
|
+
return new Promise((resolve, reject) => {
|
|
42
|
+
const git = spawn('git', ['clone', DEMO_REPO_URL, DEMO_DIR], {
|
|
43
|
+
stdio: isVerbose ? 'inherit' : 'pipe'
|
|
44
|
+
});
|
|
45
|
+
git.on('close', (code) => {
|
|
46
|
+
if (code === 0) {
|
|
47
|
+
console.log(chalk.green('Demo downloaded successfully'));
|
|
48
|
+
resolve();
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
reject(new Error(`Git clone failed with code ${code}`));
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
git.on('error', (_error) => {
|
|
55
|
+
reject(new Error(`Failed to clone repository`));
|
|
56
|
+
});
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
async function updateDemoRepo() {
|
|
60
|
+
return new Promise((resolve, _reject) => {
|
|
61
|
+
const git = spawn('git', ['pull'], {
|
|
62
|
+
cwd: DEMO_DIR,
|
|
63
|
+
stdio: isVerbose ? 'inherit' : 'pipe'
|
|
64
|
+
});
|
|
65
|
+
git.on('close', (code) => {
|
|
66
|
+
if (code === 0) {
|
|
67
|
+
console.log(chalk.green('Demo updated successfully'));
|
|
68
|
+
resolve();
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
console.log(chalk.yellow('Could not update demo, using existing version'));
|
|
72
|
+
resolve(); // Don't fail if update fails
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
git.on('error', (_error) => {
|
|
76
|
+
console.log(chalk.yellow('Could not update demo, using existing version'));
|
|
77
|
+
resolve(); // Don't fail if update fails
|
|
78
|
+
});
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
async function installDependencies() {
|
|
82
|
+
console.log(chalk.blue('Installing dependencies...'));
|
|
83
|
+
return new Promise((resolve, reject) => {
|
|
84
|
+
// Use --silent flag to reduce npm output
|
|
85
|
+
const npmArgs = isVerbose ? ['run', 'install-all'] : ['run', 'install-all', '--silent'];
|
|
86
|
+
const npm = spawn('npm', npmArgs, {
|
|
87
|
+
cwd: DEMO_DIR,
|
|
88
|
+
stdio: isVerbose ? 'inherit' : 'pipe'
|
|
89
|
+
});
|
|
90
|
+
npm.on('close', (code) => {
|
|
91
|
+
if (code === 0) {
|
|
92
|
+
console.log(chalk.green('Dependencies installed successfully'));
|
|
93
|
+
resolve();
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
reject(new Error(`npm install failed with code ${code}`));
|
|
97
|
+
}
|
|
98
|
+
});
|
|
99
|
+
npm.on('error', (error) => {
|
|
100
|
+
reject(new Error(`Failed to install dependencies: ${error.message}`));
|
|
101
|
+
});
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
async function startDemo() {
|
|
105
|
+
console.log(chalk.blue('Starting demo application...'));
|
|
106
|
+
console.log(chalk.green(`Demo will be available at: http://localhost:${DEMO_PORT}`));
|
|
107
|
+
console.log(chalk.yellow('Press Ctrl+C to stop the demo'));
|
|
108
|
+
if (!isVerbose) {
|
|
109
|
+
console.log(chalk.gray('Run with --verbose to see detailed logs'));
|
|
110
|
+
}
|
|
111
|
+
return new Promise((resolve, reject) => {
|
|
112
|
+
// Set the port environment variable for the demo
|
|
113
|
+
const env = {
|
|
114
|
+
...process.env,
|
|
115
|
+
PORT: DEMO_PORT.toString(),
|
|
116
|
+
// Suppress deprecation warnings
|
|
117
|
+
NODE_NO_WARNINGS: '1',
|
|
118
|
+
// Suppress React warnings in development
|
|
119
|
+
CI: 'false'
|
|
120
|
+
};
|
|
121
|
+
const demo = spawn('npm', ['run', 'dev'], {
|
|
122
|
+
cwd: DEMO_DIR,
|
|
123
|
+
stdio: 'pipe', // Always use pipe to capture output
|
|
124
|
+
env
|
|
125
|
+
});
|
|
126
|
+
let demoOutput = '';
|
|
127
|
+
// Capture and display output
|
|
128
|
+
demo.stdout?.on('data', (data) => {
|
|
129
|
+
const output = data.toString();
|
|
130
|
+
demoOutput += output;
|
|
131
|
+
if (isVerbose) {
|
|
132
|
+
// In verbose mode, show everything
|
|
133
|
+
process.stdout.write(output);
|
|
134
|
+
}
|
|
135
|
+
else {
|
|
136
|
+
// In non-verbose mode, filter and show only important messages
|
|
137
|
+
if (output.includes('Local:') || output.includes('Network:') || output.includes('ready')) {
|
|
138
|
+
process.stdout.write(output);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
});
|
|
142
|
+
// Handle stderr
|
|
143
|
+
demo.stderr?.on('data', (data) => {
|
|
144
|
+
const output = data.toString();
|
|
145
|
+
if (isVerbose) {
|
|
146
|
+
// In verbose mode, show everything
|
|
147
|
+
process.stderr.write(output);
|
|
148
|
+
}
|
|
149
|
+
else {
|
|
150
|
+
// In non-verbose mode, show only errors, not warnings
|
|
151
|
+
if (output.includes('Error:') && !output.includes('Warning:')) {
|
|
152
|
+
process.stderr.write(output);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
});
|
|
156
|
+
// Open browser after delay if demo didn't handle it
|
|
157
|
+
setTimeout(async () => {
|
|
158
|
+
const demoOpenedBrowser = demoOutput.includes('You can now view');
|
|
159
|
+
if (!demoOpenedBrowser) {
|
|
160
|
+
try {
|
|
161
|
+
console.log(chalk.blue('Opening browser...'));
|
|
162
|
+
await open(`http://localhost:${DEMO_PORT}`);
|
|
163
|
+
}
|
|
164
|
+
catch {
|
|
165
|
+
console.log(chalk.yellow('Could not open browser automatically'));
|
|
166
|
+
console.log(chalk.white(`Please open http://localhost:${DEMO_PORT} in your browser`));
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
}, 2000);
|
|
170
|
+
// Handle graceful shutdown
|
|
171
|
+
process.on('SIGINT', () => {
|
|
172
|
+
console.log(chalk.yellow('\nShutting down demo...'));
|
|
173
|
+
demo.kill('SIGINT');
|
|
174
|
+
cleanup();
|
|
175
|
+
process.exit(0);
|
|
176
|
+
});
|
|
177
|
+
demo.on('close', (code) => {
|
|
178
|
+
if (code === 0) {
|
|
179
|
+
console.log(chalk.green('Demo stopped successfully'));
|
|
180
|
+
cleanup();
|
|
181
|
+
resolve();
|
|
182
|
+
}
|
|
183
|
+
else {
|
|
184
|
+
console.log(chalk.red(`Demo stopped with code ${code}`));
|
|
185
|
+
cleanup();
|
|
186
|
+
reject(new Error(`Demo process exited with code ${code}`));
|
|
187
|
+
}
|
|
188
|
+
});
|
|
189
|
+
demo.on('error', (error) => {
|
|
190
|
+
reject(new Error(`Failed to start demo: ${error.message}`));
|
|
191
|
+
});
|
|
192
|
+
});
|
|
193
|
+
}
|
|
194
|
+
async function cleanup() {
|
|
195
|
+
try {
|
|
196
|
+
// Optionally clean up the demo directory
|
|
197
|
+
// Uncomment the next line if you want to remove the demo after each run
|
|
198
|
+
// await fs.remove(DEMO_DIR);
|
|
199
|
+
}
|
|
200
|
+
catch {
|
|
201
|
+
console.log(chalk.yellow('Could not clean up demo directory'));
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
//# sourceMappingURL=run-demo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-demo.js","sourceRoot":"","sources":["../src/run-demo.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,11 +1,55 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "atxp",
|
|
3
|
-
"version": "1.0.
|
|
4
|
-
"
|
|
3
|
+
"version": "1.0.2",
|
|
4
|
+
"description": "ATXP CLI - Command line tool for creating ATXP projects and running demos",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"repository": {
|
|
7
|
+
"type": "git",
|
|
8
|
+
"url": "git+https://github.com/atxp-dev/sdk.git",
|
|
9
|
+
"directory": "packages/atxp"
|
|
10
|
+
},
|
|
11
|
+
"main": "dist/index.js",
|
|
12
|
+
"bin": {
|
|
13
|
+
"atxp": "./dist/index.js"
|
|
14
|
+
},
|
|
15
|
+
"type": "module",
|
|
16
|
+
"files": [
|
|
17
|
+
"dist/**/*"
|
|
18
|
+
],
|
|
5
19
|
"scripts": {
|
|
6
|
-
"
|
|
20
|
+
"build": "tsc",
|
|
21
|
+
"dev": "tsx src/index.ts",
|
|
22
|
+
"typecheck": "tsc --noEmit",
|
|
23
|
+
"lint": "eslint . --ext .ts",
|
|
24
|
+
"lint:fix": "eslint . --ext .ts --fix",
|
|
25
|
+
"test": "vitest run",
|
|
26
|
+
"prepublishOnly": "npm run build"
|
|
27
|
+
},
|
|
28
|
+
"keywords": [
|
|
29
|
+
"atxp",
|
|
30
|
+
"oauth",
|
|
31
|
+
"payment",
|
|
32
|
+
"solana",
|
|
33
|
+
"cli",
|
|
34
|
+
"demo",
|
|
35
|
+
"create"
|
|
36
|
+
],
|
|
37
|
+
"dependencies": {
|
|
38
|
+
"chalk": "^5.3.0",
|
|
39
|
+
"inquirer": "^9.2.12",
|
|
40
|
+
"ora": "^7.0.1",
|
|
41
|
+
"fs-extra": "^11.2.0",
|
|
42
|
+
"open": "^9.1.0"
|
|
43
|
+
},
|
|
44
|
+
"devDependencies": {
|
|
45
|
+
"@types/fs-extra": "^11.0.4",
|
|
46
|
+
"@types/inquirer": "^9.0.7",
|
|
47
|
+
"@types/node": "^22.13.0",
|
|
48
|
+
"tsx": "^4.19.2",
|
|
49
|
+
"typescript": "^5.7.3",
|
|
50
|
+
"vitest": "^1.0.0"
|
|
7
51
|
},
|
|
8
|
-
"
|
|
9
|
-
|
|
10
|
-
|
|
52
|
+
"engines": {
|
|
53
|
+
"node": ">=18.0.0"
|
|
54
|
+
}
|
|
11
55
|
}
|