create-ton 0.26.0 → 0.28.0
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/dist/cli.js +2 -202
- package/dist/main.d.ts +1 -0
- package/dist/main.js +208 -0
- package/dist/template/jest.config.ts +1 -5
- package/dist/template/package.json +7 -7
- package/package.json +40 -31
- package/CHANGELOG.md +0 -287
package/dist/cli.js
CHANGED
|
@@ -1,205 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
"use strict";
|
|
3
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
4
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
5
|
-
};
|
|
6
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
const
|
|
8
|
-
|
|
9
|
-
const child_process_1 = require("child_process");
|
|
10
|
-
const inquirer_1 = __importDefault(require("inquirer"));
|
|
11
|
-
const arg_1 = __importDefault(require("arg"));
|
|
12
|
-
const chalk_1 = __importDefault(require("chalk"));
|
|
13
|
-
const FILES_WITH_NAME_TEMPLATE = ['package.json', 'README.md'];
|
|
14
|
-
const NAME_TEMPLATE = '{{name}}';
|
|
15
|
-
const VARIANT_CHOICES = [
|
|
16
|
-
{
|
|
17
|
-
name: 'An empty contract (FunC)',
|
|
18
|
-
value: 'func-empty',
|
|
19
|
-
},
|
|
20
|
-
{
|
|
21
|
-
name: 'An empty contract (Tolk)',
|
|
22
|
-
value: 'tolk-empty',
|
|
23
|
-
},
|
|
24
|
-
{
|
|
25
|
-
name: 'An empty contract (Tact)',
|
|
26
|
-
value: 'tact-empty',
|
|
27
|
-
},
|
|
28
|
-
{
|
|
29
|
-
name: 'A simple counter contract (FunC)',
|
|
30
|
-
value: 'func-counter',
|
|
31
|
-
},
|
|
32
|
-
{
|
|
33
|
-
name: 'A simple counter contract (Tolk)',
|
|
34
|
-
value: 'tolk-counter',
|
|
35
|
-
},
|
|
36
|
-
{
|
|
37
|
-
name: 'A simple counter contract (Tact)',
|
|
38
|
-
value: 'tact-counter',
|
|
39
|
-
},
|
|
40
|
-
];
|
|
41
|
-
async function main() {
|
|
42
|
-
console.log();
|
|
43
|
-
const localArgs = (0, arg_1.default)({
|
|
44
|
-
'--type': String,
|
|
45
|
-
'--contractName': String,
|
|
46
|
-
'--no-ci': Boolean, // whether to skip installation of dependendencies, git init
|
|
47
|
-
// and creation of the first contract via Blueprint
|
|
48
|
-
});
|
|
49
|
-
const desiredProjectName = localArgs._[0] ||
|
|
50
|
-
(await inquirer_1.default.prompt({
|
|
51
|
-
name: 'name',
|
|
52
|
-
message: 'Project name',
|
|
53
|
-
})).name.trim();
|
|
54
|
-
const projectPath = path_1.default.resolve(desiredProjectName);
|
|
55
|
-
const name = path_1.default.basename(projectPath);
|
|
56
|
-
if (name.length === 0)
|
|
57
|
-
throw new Error('Cannot initialize a project with an empty name');
|
|
58
|
-
const noCi = localArgs['--no-ci'] ?? false;
|
|
59
|
-
const contractName = (noCi ? 'NonExistent' : localArgs['--contractName']) ||
|
|
60
|
-
(await inquirer_1.default.prompt({
|
|
61
|
-
name: 'contractName',
|
|
62
|
-
message: 'First created contract name (PascalCase)',
|
|
63
|
-
})).contractName.trim();
|
|
64
|
-
if (!noCi) {
|
|
65
|
-
if (contractName.length === 0)
|
|
66
|
-
throw new Error(`Cannot create a contract with an empty name`);
|
|
67
|
-
if (contractName.toLowerCase() === 'contract' || !/^[A-Z][a-zA-Z0-9]*$/.test(contractName))
|
|
68
|
-
throw new Error(`Cannot create a contract with the name '${contractName}'`);
|
|
69
|
-
}
|
|
70
|
-
const argsVariant = VARIANT_CHOICES.map(e => e.value).indexOf(localArgs['--type'] || '') !== -1
|
|
71
|
-
? localArgs['--type']
|
|
72
|
-
: undefined;
|
|
73
|
-
const variant = (noCi ? 'none' : argsVariant) ||
|
|
74
|
-
(await inquirer_1.default.prompt([
|
|
75
|
-
{
|
|
76
|
-
name: 'variant',
|
|
77
|
-
message: 'Choose the project template',
|
|
78
|
-
type: 'list',
|
|
79
|
-
choices: VARIANT_CHOICES,
|
|
80
|
-
},
|
|
81
|
-
])).variant;
|
|
82
|
-
await fs_extra_1.default.mkdir(projectPath, {
|
|
83
|
-
recursive: true,
|
|
84
|
-
});
|
|
85
|
-
const steps = noCi ? 2 : 3;
|
|
86
|
-
console.log(`\n[1/${steps}] Copying files...`);
|
|
87
|
-
const basePath = path_1.default.join(__dirname, 'template');
|
|
88
|
-
for (const file of await fs_extra_1.default.readdir(basePath)) {
|
|
89
|
-
if (FILES_WITH_NAME_TEMPLATE.includes(file))
|
|
90
|
-
continue;
|
|
91
|
-
await fs_extra_1.default.copy(path_1.default.join(basePath, file), path_1.default.join(projectPath, file));
|
|
92
|
-
}
|
|
93
|
-
await fs_extra_1.default.writeFile(path_1.default.join(projectPath, '.gitignore'), `node_modules
|
|
94
|
-
temp
|
|
95
|
-
build
|
|
96
|
-
dist
|
|
97
|
-
.DS_Store
|
|
98
|
-
package.ts
|
|
99
|
-
|
|
100
|
-
# VS Code
|
|
101
|
-
.vscode/*
|
|
102
|
-
.history/
|
|
103
|
-
*.vsix
|
|
104
|
-
|
|
105
|
-
# IDEA files
|
|
106
|
-
.idea
|
|
107
|
-
|
|
108
|
-
# VIM
|
|
109
|
-
Session.vim
|
|
110
|
-
.vim/
|
|
111
|
-
|
|
112
|
-
# Other private editor folders
|
|
113
|
-
.nvim/
|
|
114
|
-
.emacs/
|
|
115
|
-
.helix/
|
|
116
|
-
`);
|
|
117
|
-
for (const file of FILES_WITH_NAME_TEMPLATE) {
|
|
118
|
-
await fs_extra_1.default.writeFile(path_1.default.join(projectPath, file), (await fs_extra_1.default.readFile(path_1.default.join(basePath, file))).toString().replace(NAME_TEMPLATE, name));
|
|
119
|
-
}
|
|
120
|
-
if (noCi) {
|
|
121
|
-
console.log(`[2/${steps}] Skipping dependencies, git init and contract creation...\n`);
|
|
122
|
-
printResultingUsageDetails(desiredProjectName, noCi);
|
|
123
|
-
return;
|
|
124
|
-
}
|
|
125
|
-
else {
|
|
126
|
-
console.log(`[2/${steps}] Installing dependencies...\n`);
|
|
127
|
-
}
|
|
128
|
-
const execOpts = {
|
|
129
|
-
stdio: 'inherit',
|
|
130
|
-
cwd: projectPath,
|
|
131
|
-
};
|
|
132
|
-
const pkgManager = (process.env.npm_config_user_agent ?? 'npm/').split(' ')[0].split('/')[0];
|
|
133
|
-
switch (pkgManager) {
|
|
134
|
-
case 'yarn':
|
|
135
|
-
(0, child_process_1.execSync)('yarn', execOpts);
|
|
136
|
-
break;
|
|
137
|
-
case 'pnpm':
|
|
138
|
-
(0, child_process_1.execSync)('pnpm install', execOpts);
|
|
139
|
-
break;
|
|
140
|
-
case 'bun':
|
|
141
|
-
(0, child_process_1.execSync)('bun install', execOpts);
|
|
142
|
-
break;
|
|
143
|
-
default:
|
|
144
|
-
(0, child_process_1.execSync)('npm install --ignore-scripts', execOpts);
|
|
145
|
-
break;
|
|
146
|
-
}
|
|
147
|
-
console.log(`\n[3/${steps}] Creating your first contract...`);
|
|
148
|
-
let execCommand = 'npm exec';
|
|
149
|
-
switch (pkgManager) {
|
|
150
|
-
case 'yarn':
|
|
151
|
-
execCommand = 'yarn run';
|
|
152
|
-
break;
|
|
153
|
-
case 'pnpm':
|
|
154
|
-
execCommand = 'pnpm exec';
|
|
155
|
-
break;
|
|
156
|
-
case 'bun':
|
|
157
|
-
execCommand = 'bun x';
|
|
158
|
-
break;
|
|
159
|
-
}
|
|
160
|
-
(0, child_process_1.execSync)(`${execCommand} blueprint${pkgManager !== 'npm' ? '' : ' --'} create ${contractName} --type ${variant}`, execOpts);
|
|
161
|
-
try {
|
|
162
|
-
(0, child_process_1.execSync)('git init', execOpts);
|
|
163
|
-
}
|
|
164
|
-
catch (e) {
|
|
165
|
-
console.error('Failed to initialize git repository:', e.toString());
|
|
166
|
-
}
|
|
167
|
-
printResultingUsageDetails(desiredProjectName, noCi);
|
|
168
|
-
}
|
|
169
|
-
function printResultingUsageDetails(desiredProjectName, noCi) {
|
|
170
|
-
console.log(`Success!`);
|
|
171
|
-
console.log(chalk_1.default.blueBright(`
|
|
172
|
-
____ _ _ _ _____ ____ ____ ___ _ _ _____
|
|
173
|
-
| __ )| | | | | | ____| _ \\| _ \\|_ _| \\ | |_ _|
|
|
174
|
-
| _ \\| | | | | | _| | |_) | |_) || || \\| | | |
|
|
175
|
-
| |_) | |__| |_| | |___| __/| _ < | || |\\ | | |
|
|
176
|
-
|____/|_____\\___/|_____|_| |_| \\_\\___|_| \\_| |_| `));
|
|
177
|
-
console.log(chalk_1.default.blue(` TON development for professionals`));
|
|
178
|
-
console.log(``);
|
|
179
|
-
if (noCi) {
|
|
180
|
-
console.log(`Your new project is almost ready!`);
|
|
181
|
-
console.log(`Install dependencies before running available commands:`);
|
|
182
|
-
}
|
|
183
|
-
else {
|
|
184
|
-
console.log(`Your new project is ready, available commands:`);
|
|
185
|
-
}
|
|
186
|
-
console.log(``);
|
|
187
|
-
console.log(chalk_1.default.greenBright(` > `) + chalk_1.default.cyanBright(`cd ${desiredProjectName}`));
|
|
188
|
-
console.log(` change directory to your new project`);
|
|
189
|
-
console.log(``);
|
|
190
|
-
console.log(chalk_1.default.greenBright(` > `) + chalk_1.default.cyanBright(`npx blueprint build`));
|
|
191
|
-
console.log(` choose a smart contract and build it`);
|
|
192
|
-
console.log(``);
|
|
193
|
-
console.log(chalk_1.default.greenBright(` > `) + chalk_1.default.cyanBright(`npx blueprint test`));
|
|
194
|
-
console.log(` run the default project test suite`);
|
|
195
|
-
console.log(``);
|
|
196
|
-
console.log(chalk_1.default.greenBright(` > `) + chalk_1.default.cyanBright(`npx blueprint run`));
|
|
197
|
-
console.log(` choose a script and run it (e.g., a deploy script)`);
|
|
198
|
-
console.log(``);
|
|
199
|
-
console.log(chalk_1.default.greenBright(` > `) + chalk_1.default.cyanBright(`npx blueprint create AnotherContract`));
|
|
200
|
-
console.log(` create a new contract and all related necessary files`);
|
|
201
|
-
console.log(``);
|
|
202
|
-
console.log(`For help and docs visit https://github.com/ton-community/blueprint`);
|
|
203
|
-
console.log(``);
|
|
204
|
-
}
|
|
205
|
-
main().catch(console.error);
|
|
4
|
+
const main_1 = require("./main");
|
|
5
|
+
(0, main_1.main)().catch(console.error);
|
package/dist/main.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function main(): Promise<void>;
|
package/dist/main.js
ADDED
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.main = void 0;
|
|
7
|
+
const path_1 = __importDefault(require("path"));
|
|
8
|
+
const child_process_1 = require("child_process");
|
|
9
|
+
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
10
|
+
const inquirer_1 = __importDefault(require("inquirer"));
|
|
11
|
+
const arg_1 = __importDefault(require("arg"));
|
|
12
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
13
|
+
const FILES_WITH_NAME_TEMPLATE = ['package.json', 'README.md'];
|
|
14
|
+
const NAME_TEMPLATE = '{{name}}';
|
|
15
|
+
const VARIANT_CHOICES = [
|
|
16
|
+
{
|
|
17
|
+
name: 'An empty contract (FunC)',
|
|
18
|
+
value: 'func-empty',
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
name: 'An empty contract (Tolk)',
|
|
22
|
+
value: 'tolk-empty',
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
name: 'An empty contract (Tact)',
|
|
26
|
+
value: 'tact-empty',
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
name: 'A simple counter contract (FunC)',
|
|
30
|
+
value: 'func-counter',
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
name: 'A simple counter contract (Tolk)',
|
|
34
|
+
value: 'tolk-counter',
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
name: 'A simple counter contract (Tact)',
|
|
38
|
+
value: 'tact-counter',
|
|
39
|
+
},
|
|
40
|
+
];
|
|
41
|
+
async function main() {
|
|
42
|
+
console.log();
|
|
43
|
+
const localArgs = (0, arg_1.default)({
|
|
44
|
+
'--type': String,
|
|
45
|
+
'--contractName': String,
|
|
46
|
+
'--no-ci': Boolean, // whether to skip installation of dependendencies, git init
|
|
47
|
+
// and creation of the first contract via Blueprint
|
|
48
|
+
});
|
|
49
|
+
const desiredProjectName = localArgs._[0] ||
|
|
50
|
+
(await inquirer_1.default.prompt({
|
|
51
|
+
name: 'name',
|
|
52
|
+
message: 'Project name',
|
|
53
|
+
})).name.trim();
|
|
54
|
+
const projectPath = path_1.default.resolve(desiredProjectName);
|
|
55
|
+
const name = path_1.default.basename(projectPath);
|
|
56
|
+
if (name.length === 0)
|
|
57
|
+
throw new Error('Cannot initialize a project with an empty name');
|
|
58
|
+
const noCi = localArgs['--no-ci'] ?? false;
|
|
59
|
+
const contractName = (noCi ? 'NonExistent' : localArgs['--contractName']) ||
|
|
60
|
+
(await inquirer_1.default.prompt({
|
|
61
|
+
name: 'contractName',
|
|
62
|
+
message: 'First created contract name (PascalCase)',
|
|
63
|
+
})).contractName.trim();
|
|
64
|
+
if (!noCi) {
|
|
65
|
+
if (contractName.length === 0)
|
|
66
|
+
throw new Error(`Cannot create a contract with an empty name`);
|
|
67
|
+
if (contractName.toLowerCase() === 'contract' || !/^[A-Z][a-zA-Z0-9]*$/.test(contractName))
|
|
68
|
+
throw new Error(`Cannot create a contract with the name '${contractName}'`);
|
|
69
|
+
}
|
|
70
|
+
const argsVariant = VARIANT_CHOICES.map((e) => e.value).indexOf(localArgs['--type'] || '') !== -1 ? localArgs['--type'] : undefined;
|
|
71
|
+
const variant = (noCi ? 'none' : argsVariant) ||
|
|
72
|
+
(await inquirer_1.default.prompt([
|
|
73
|
+
{
|
|
74
|
+
name: 'variant',
|
|
75
|
+
message: 'Choose the project template',
|
|
76
|
+
type: 'list',
|
|
77
|
+
choices: VARIANT_CHOICES,
|
|
78
|
+
},
|
|
79
|
+
])).variant;
|
|
80
|
+
await fs_extra_1.default.mkdir(projectPath, {
|
|
81
|
+
recursive: true,
|
|
82
|
+
});
|
|
83
|
+
const steps = noCi ? 2 : 3;
|
|
84
|
+
console.log(`\n[1/${steps}] Copying files...`);
|
|
85
|
+
const basePath = path_1.default.join(__dirname, 'template');
|
|
86
|
+
for (const file of await fs_extra_1.default.readdir(basePath)) {
|
|
87
|
+
if (FILES_WITH_NAME_TEMPLATE.includes(file))
|
|
88
|
+
continue;
|
|
89
|
+
await fs_extra_1.default.copy(path_1.default.join(basePath, file), path_1.default.join(projectPath, file));
|
|
90
|
+
}
|
|
91
|
+
await fs_extra_1.default.writeFile(path_1.default.join(projectPath, '.gitignore'), `node_modules
|
|
92
|
+
temp
|
|
93
|
+
build
|
|
94
|
+
dist
|
|
95
|
+
.DS_Store
|
|
96
|
+
package.ts
|
|
97
|
+
|
|
98
|
+
# VS Code
|
|
99
|
+
.vscode/*
|
|
100
|
+
.history/
|
|
101
|
+
*.vsix
|
|
102
|
+
|
|
103
|
+
# IDEA files
|
|
104
|
+
.idea
|
|
105
|
+
|
|
106
|
+
# VIM
|
|
107
|
+
Session.vim
|
|
108
|
+
.vim/
|
|
109
|
+
|
|
110
|
+
# Other private editor folders
|
|
111
|
+
.nvim/
|
|
112
|
+
.emacs/
|
|
113
|
+
.helix/
|
|
114
|
+
`);
|
|
115
|
+
for (const file of FILES_WITH_NAME_TEMPLATE) {
|
|
116
|
+
await fs_extra_1.default.writeFile(path_1.default.join(projectPath, file), (await fs_extra_1.default.readFile(path_1.default.join(basePath, file))).toString().replace(NAME_TEMPLATE, name));
|
|
117
|
+
}
|
|
118
|
+
if (noCi) {
|
|
119
|
+
console.log(`[2/${steps}] Skipping dependencies, git init and contract creation...\n`);
|
|
120
|
+
printResultingUsageDetails(desiredProjectName, noCi);
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
console.log(`[2/${steps}] Installing dependencies...\n`);
|
|
125
|
+
}
|
|
126
|
+
const execOpts = {
|
|
127
|
+
stdio: 'inherit',
|
|
128
|
+
cwd: projectPath,
|
|
129
|
+
};
|
|
130
|
+
const pkgManager = (process.env.npm_config_user_agent ?? 'npm/').split(' ')[0].split('/')[0];
|
|
131
|
+
switch (pkgManager) {
|
|
132
|
+
case 'yarn':
|
|
133
|
+
(0, child_process_1.execSync)('yarn', execOpts);
|
|
134
|
+
break;
|
|
135
|
+
case 'pnpm':
|
|
136
|
+
(0, child_process_1.execSync)('pnpm install', execOpts);
|
|
137
|
+
break;
|
|
138
|
+
case 'bun':
|
|
139
|
+
(0, child_process_1.execSync)('bun install', execOpts);
|
|
140
|
+
break;
|
|
141
|
+
default:
|
|
142
|
+
(0, child_process_1.execSync)('npm install --ignore-scripts', execOpts);
|
|
143
|
+
break;
|
|
144
|
+
}
|
|
145
|
+
console.log(`\n[3/${steps}] Creating your first contract...`);
|
|
146
|
+
let execCommand = 'npm exec';
|
|
147
|
+
switch (pkgManager) {
|
|
148
|
+
case 'yarn':
|
|
149
|
+
execCommand = 'yarn run';
|
|
150
|
+
break;
|
|
151
|
+
case 'pnpm':
|
|
152
|
+
execCommand = 'pnpm exec';
|
|
153
|
+
break;
|
|
154
|
+
case 'bun':
|
|
155
|
+
execCommand = 'bun x';
|
|
156
|
+
break;
|
|
157
|
+
}
|
|
158
|
+
(0, child_process_1.execSync)(`${execCommand} blueprint${pkgManager !== 'npm' ? '' : ' --'} create ${contractName} --type ${variant}`, execOpts);
|
|
159
|
+
try {
|
|
160
|
+
(0, child_process_1.execSync)('git init', execOpts);
|
|
161
|
+
}
|
|
162
|
+
catch (e) {
|
|
163
|
+
if (e instanceof Error) {
|
|
164
|
+
console.error('Failed to initialize git repository:', e.message);
|
|
165
|
+
}
|
|
166
|
+
else {
|
|
167
|
+
console.error('Failed to initialize git repository:', String(e));
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
printResultingUsageDetails(desiredProjectName, noCi);
|
|
171
|
+
}
|
|
172
|
+
exports.main = main;
|
|
173
|
+
function printResultingUsageDetails(desiredProjectName, noCi) {
|
|
174
|
+
console.log(`Success!`);
|
|
175
|
+
console.log(chalk_1.default.blueBright(`
|
|
176
|
+
____ _ _ _ _____ ____ ____ ___ _ _ _____
|
|
177
|
+
| __ )| | | | | | ____| _ \\| _ \\|_ _| \\ | |_ _|
|
|
178
|
+
| _ \\| | | | | | _| | |_) | |_) || || \\| | | |
|
|
179
|
+
| |_) | |__| |_| | |___| __/| _ < | || |\\ | | |
|
|
180
|
+
|____/|_____\\___/|_____|_| |_| \\_\\___|_| \\_| |_| `));
|
|
181
|
+
console.log(chalk_1.default.blue(` TON development for professionals`));
|
|
182
|
+
console.log(``);
|
|
183
|
+
if (noCi) {
|
|
184
|
+
console.log(`Your new project is almost ready!`);
|
|
185
|
+
console.log(`Install dependencies before running available commands:`);
|
|
186
|
+
}
|
|
187
|
+
else {
|
|
188
|
+
console.log(`Your new project is ready, available commands:`);
|
|
189
|
+
}
|
|
190
|
+
console.log(``);
|
|
191
|
+
console.log(chalk_1.default.greenBright(` > `) + chalk_1.default.cyanBright(`cd ${desiredProjectName}`));
|
|
192
|
+
console.log(` change directory to your new project`);
|
|
193
|
+
console.log(``);
|
|
194
|
+
console.log(chalk_1.default.greenBright(` > `) + chalk_1.default.cyanBright(`npx blueprint build`));
|
|
195
|
+
console.log(` choose a smart contract and build it`);
|
|
196
|
+
console.log(``);
|
|
197
|
+
console.log(chalk_1.default.greenBright(` > `) + chalk_1.default.cyanBright(`npx blueprint test`));
|
|
198
|
+
console.log(` run the default project test suite`);
|
|
199
|
+
console.log(``);
|
|
200
|
+
console.log(chalk_1.default.greenBright(` > `) + chalk_1.default.cyanBright(`npx blueprint run`));
|
|
201
|
+
console.log(` choose a script and run it (e.g., a deploy script)`);
|
|
202
|
+
console.log(``);
|
|
203
|
+
console.log(chalk_1.default.greenBright(` > `) + chalk_1.default.cyanBright(`npx blueprint create AnotherContract`));
|
|
204
|
+
console.log(` create a new contract and all related necessary files`);
|
|
205
|
+
console.log(``);
|
|
206
|
+
console.log(`For help and docs visit https://github.com/ton-community/blueprint`);
|
|
207
|
+
console.log(``);
|
|
208
|
+
}
|
|
@@ -6,11 +6,7 @@ const config: Config = {
|
|
|
6
6
|
cache: false, // disabled caching to prevent old Tact files from being used after a rebuild
|
|
7
7
|
testEnvironment: '@ton/sandbox/jest-environment',
|
|
8
8
|
testPathIgnorePatterns: ['/node_modules/', '/dist/'],
|
|
9
|
-
reporters: [
|
|
10
|
-
'default',
|
|
11
|
-
['@ton/sandbox/jest-reporter', {
|
|
12
|
-
}],
|
|
13
|
-
]
|
|
9
|
+
reporters: ['default', ['@ton/sandbox/jest-reporter', {}]],
|
|
14
10
|
};
|
|
15
11
|
|
|
16
12
|
export default config;
|
|
@@ -12,20 +12,20 @@
|
|
|
12
12
|
"@ton/core": "~0"
|
|
13
13
|
},
|
|
14
14
|
"devDependencies": {
|
|
15
|
-
"@ton/blueprint": ">=0.
|
|
16
|
-
"@ton/sandbox": ">=0.
|
|
17
|
-
"@ton/test-utils": ">=0.
|
|
15
|
+
"@ton/blueprint": ">=0.36.0",
|
|
16
|
+
"@ton/sandbox": ">=0.33.0",
|
|
17
|
+
"@ton/test-utils": ">=0.8.0",
|
|
18
18
|
"@types/jest": "^29.5.14",
|
|
19
|
-
"@types/node": "^22.
|
|
19
|
+
"@types/node": "^22.15.32",
|
|
20
20
|
"jest": "^29.7.0",
|
|
21
21
|
"prettier": "^3.5.3",
|
|
22
22
|
"@ton/ton": ">=15.2.1 <16.0.0",
|
|
23
23
|
"@ton/crypto": "^3.3.0",
|
|
24
|
-
"ts-jest": "^29.
|
|
24
|
+
"ts-jest": "^29.4.0",
|
|
25
25
|
"ts-node": "^10.9.2",
|
|
26
26
|
"typescript": "^5.8.3",
|
|
27
|
-
"@ton/tolk-js": ">=0.
|
|
28
|
-
"@tact-lang/compiler": ">=1.6.
|
|
27
|
+
"@ton/tolk-js": ">=0.99.0",
|
|
28
|
+
"@tact-lang/compiler": ">=1.6.13 <2.0.0",
|
|
29
29
|
"@ton-community/func-js": ">=0.9.1"
|
|
30
30
|
}
|
|
31
31
|
}
|
package/package.json
CHANGED
|
@@ -1,32 +1,41 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
"
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
"
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
2
|
+
"name": "create-ton",
|
|
3
|
+
"version": "0.28.0",
|
|
4
|
+
"license": "MIT",
|
|
5
|
+
"description": "Tool to quickly create TON projects",
|
|
6
|
+
"author": "TonTech",
|
|
7
|
+
"repository": {
|
|
8
|
+
"type": "git",
|
|
9
|
+
"url": "git+https://github.com/ton-org/create-ton.git"
|
|
10
|
+
},
|
|
11
|
+
"files": [
|
|
12
|
+
"dist/**/*"
|
|
13
|
+
],
|
|
14
|
+
"bin": "./dist/cli.js",
|
|
15
|
+
"prettier": "@ton/toolchain/prettier",
|
|
16
|
+
"scripts": {
|
|
17
|
+
"lint": "eslint . --max-warnings 0",
|
|
18
|
+
"lint:fix": "eslint . --max-warnings 0 --fix",
|
|
19
|
+
"test": "jest src",
|
|
20
|
+
"build": "rm -rf dist && tsc && cp -r template dist/template"
|
|
21
|
+
},
|
|
22
|
+
"devDependencies": {
|
|
23
|
+
"@ton/toolchain": "the-ton-tech/toolchain#v1.4.0",
|
|
24
|
+
"@types/fs-extra": "^11.0.1",
|
|
25
|
+
"@types/inquirer": "^8.2.6",
|
|
26
|
+
"@types/jest": "^29.5.14",
|
|
27
|
+
"@types/node": "^20.2.5",
|
|
28
|
+
"eslint": "^9.28.0",
|
|
29
|
+
"jest": "^30.0.0",
|
|
30
|
+
"prettier": "^3.5.3",
|
|
31
|
+
"ts-jest": "^29.3.4",
|
|
32
|
+
"typescript": "^4.9.5"
|
|
33
|
+
},
|
|
34
|
+
"dependencies": {
|
|
35
|
+
"arg": "^5.0.2",
|
|
36
|
+
"chalk": "^4.1.0",
|
|
37
|
+
"fs-extra": "^11.1.1",
|
|
38
|
+
"inquirer": "^8.2.5"
|
|
39
|
+
},
|
|
40
|
+
"packageManager": "yarn@3.6.1"
|
|
41
|
+
}
|
package/CHANGELOG.md
DELETED
|
@@ -1,287 +0,0 @@
|
|
|
1
|
-
# Changelog
|
|
2
|
-
|
|
3
|
-
All notable changes to this project will be documented in this file.
|
|
4
|
-
|
|
5
|
-
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
|
-
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
-
|
|
8
|
-
## [0.26.0] - 2025-05-20
|
|
9
|
-
|
|
10
|
-
### Changed
|
|
11
|
-
|
|
12
|
-
- Template now uses `@ton/sandbox/jest-environment` and `@ton/sandbox/jest-reporter` in jest config for the new `blueprint snapshot` and `blueprint test --gas-report` features
|
|
13
|
-
- Update template to allow wrappers publishing
|
|
14
|
-
|
|
15
|
-
## [0.25.0] - 2025-05-16
|
|
16
|
-
|
|
17
|
-
### Changed
|
|
18
|
-
|
|
19
|
-
- Updated template dependencies
|
|
20
|
-
|
|
21
|
-
## [0.24.0] - 2025-05-02
|
|
22
|
-
|
|
23
|
-
### Added
|
|
24
|
-
|
|
25
|
-
- Tact contracts are now built before test run
|
|
26
|
-
|
|
27
|
-
### Changed
|
|
28
|
-
|
|
29
|
-
- Updated template dependencies
|
|
30
|
-
|
|
31
|
-
## [0.23.0] - 2025-04-24
|
|
32
|
-
|
|
33
|
-
### Changed
|
|
34
|
-
|
|
35
|
-
- Updated template dependencies
|
|
36
|
-
|
|
37
|
-
## [0.22.0] - 2025-04-09
|
|
38
|
-
|
|
39
|
-
### Added
|
|
40
|
-
|
|
41
|
-
- Added flag `--no-ci` to skip installation of dependencies, git init and creation of the first contract via Blueprint
|
|
42
|
-
|
|
43
|
-
### Changed
|
|
44
|
-
|
|
45
|
-
- Updated template dependencies
|
|
46
|
-
|
|
47
|
-
## [0.21.0] - 2025-03-02
|
|
48
|
-
|
|
49
|
-
### Changed
|
|
50
|
-
|
|
51
|
-
- Updated template dependencies
|
|
52
|
-
|
|
53
|
-
## [0.20.0] - 2025-01-17
|
|
54
|
-
|
|
55
|
-
### Changed
|
|
56
|
-
|
|
57
|
-
- Updated template dependencies
|
|
58
|
-
- Compiler dependencies are now explicitly installed, allowing end users to use their preferred versions of compilers
|
|
59
|
-
|
|
60
|
-
## [0.19.0] - 2024-12-18
|
|
61
|
-
|
|
62
|
-
### Changed
|
|
63
|
-
|
|
64
|
-
- Updated template dependencies
|
|
65
|
-
|
|
66
|
-
## [0.18.1] - 2024-11-03
|
|
67
|
-
|
|
68
|
-
### Fixed
|
|
69
|
-
|
|
70
|
-
- Rebuilt the package
|
|
71
|
-
|
|
72
|
-
## [0.18.0] - 2024-11-03
|
|
73
|
-
|
|
74
|
-
### Added
|
|
75
|
-
|
|
76
|
-
- Added support for Tolk, the new TON programming language
|
|
77
|
-
|
|
78
|
-
### Changed
|
|
79
|
-
|
|
80
|
-
- Updated template dependencies
|
|
81
|
-
|
|
82
|
-
## [0.17.0] - 2024-09-17
|
|
83
|
-
|
|
84
|
-
### Fixed
|
|
85
|
-
|
|
86
|
-
- Fixed creation of new projects with `npm` via `--ignore-scripts` option
|
|
87
|
-
|
|
88
|
-
### Changed
|
|
89
|
-
|
|
90
|
-
- Updated template dependencies
|
|
91
|
-
|
|
92
|
-
## [0.16.0] - 2024-09-16
|
|
93
|
-
|
|
94
|
-
### Changed
|
|
95
|
-
|
|
96
|
-
- Updated template dependencies
|
|
97
|
-
|
|
98
|
-
## [0.15.0] - 2024-07-12
|
|
99
|
-
|
|
100
|
-
### Added
|
|
101
|
-
|
|
102
|
-
- Added Bun support
|
|
103
|
-
|
|
104
|
-
### Changed
|
|
105
|
-
|
|
106
|
-
- Updated template .gitignore
|
|
107
|
-
- Updated template dependencies
|
|
108
|
-
|
|
109
|
-
## [0.14.0] - 2024-05-27
|
|
110
|
-
|
|
111
|
-
### Changed
|
|
112
|
-
|
|
113
|
-
- Updated template dependencies
|
|
114
|
-
|
|
115
|
-
## [0.13.0] - 2024-03-27
|
|
116
|
-
|
|
117
|
-
### Changed
|
|
118
|
-
|
|
119
|
-
- Updated template dependencies
|
|
120
|
-
|
|
121
|
-
## [0.12.0] - 2024-03-13
|
|
122
|
-
|
|
123
|
-
### Changed
|
|
124
|
-
|
|
125
|
-
- Updated template dependencies
|
|
126
|
-
|
|
127
|
-
## [0.11.1] - 2024-02-24
|
|
128
|
-
|
|
129
|
-
### Changed
|
|
130
|
-
|
|
131
|
-
- Set template's @ton/core version to `~0`
|
|
132
|
-
- Updated template dependencies
|
|
133
|
-
|
|
134
|
-
## [0.11.0] - 2024-01-26
|
|
135
|
-
|
|
136
|
-
### Changed
|
|
137
|
-
|
|
138
|
-
- Updated template dependencies: blueprint, sandbox, others to their latest versions
|
|
139
|
-
|
|
140
|
-
## [0.10.0] - 2023-12-01
|
|
141
|
-
|
|
142
|
-
### Changed
|
|
143
|
-
|
|
144
|
-
- Updated template dependencies: blueprint, sandbox, test-utils, ton, ton-core, ton-crypto to their latest @ton versions
|
|
145
|
-
|
|
146
|
-
## [0.9.0] - 2023-08-28
|
|
147
|
-
|
|
148
|
-
### Removed
|
|
149
|
-
|
|
150
|
-
- Removed flag `--path`
|
|
151
|
-
|
|
152
|
-
### Changed
|
|
153
|
-
|
|
154
|
-
- The project name (asked interactively or passed in CLI non-interactively) is now resolved as a path to get the full project path, and the basename (last segment) of that path is taken as the actual project name. For example, running `create-ton .` in a directory named `test-project` will create the project in that very directory (without creating any subdirectories) with the name `test-project`
|
|
155
|
-
|
|
156
|
-
## [0.8.0] - 2023-08-28
|
|
157
|
-
|
|
158
|
-
### Added
|
|
159
|
-
|
|
160
|
-
- Added flag `--path` to specify where the project should be initialized, defaults to the project name
|
|
161
|
-
|
|
162
|
-
## [0.7.0] - 2023-08-20
|
|
163
|
-
|
|
164
|
-
### Changed
|
|
165
|
-
|
|
166
|
-
- Changed template ton-core dependency to ^0.51.0, ton to ~13.6.0, which fixes dependency tree problems
|
|
167
|
-
|
|
168
|
-
## [0.6.0] - 2023-08-08
|
|
169
|
-
|
|
170
|
-
### Added
|
|
171
|
-
|
|
172
|
-
- Added flags `--contractName` and `--type` to allow fully non-interactive runs
|
|
173
|
-
- Added scripts `start` and `build` to the template
|
|
174
|
-
|
|
175
|
-
### Changed
|
|
176
|
-
|
|
177
|
-
- Updated blueprint to 0.12.0, test-utils to 0.3.0
|
|
178
|
-
|
|
179
|
-
### Removed
|
|
180
|
-
|
|
181
|
-
- Removed license from the template
|
|
182
|
-
|
|
183
|
-
## [0.5.0] - 2023-06-06
|
|
184
|
-
|
|
185
|
-
### Changed
|
|
186
|
-
|
|
187
|
-
- Updated template's jest config to ignore the `dist` directory
|
|
188
|
-
- Updated template dependencies: blueprint to 0.10.0, sandbox to 0.11.0
|
|
189
|
-
- Updated dependencies
|
|
190
|
-
|
|
191
|
-
## [0.4.0] - 2023-05-04
|
|
192
|
-
|
|
193
|
-
### Changed
|
|
194
|
-
|
|
195
|
-
- Updated template readme
|
|
196
|
-
- Updated template jest config to use TypeScript
|
|
197
|
-
- Updated dependencies: blueprint to 0.9.0, sandbox to 0.10.0
|
|
198
|
-
|
|
199
|
-
## [0.3.0] - 2023-04-07
|
|
200
|
-
|
|
201
|
-
### Changed
|
|
202
|
-
|
|
203
|
-
- Updated template dependencies: blueprint to 0.8.0, sandbox to 0.8.0, ton-core to 0.49.0
|
|
204
|
-
- Updated dependencies
|
|
205
|
-
|
|
206
|
-
### Fixed
|
|
207
|
-
|
|
208
|
-
- Fixed duplicate contract type question when using pnpm
|
|
209
|
-
|
|
210
|
-
## [0.2.0] - 2023-03-27
|
|
211
|
-
|
|
212
|
-
### Added
|
|
213
|
-
|
|
214
|
-
- Added the ability to pass project name as a command line argument
|
|
215
|
-
|
|
216
|
-
### Changed
|
|
217
|
-
|
|
218
|
-
- Dependencies of newly created projects are now installed using the package manager that is used to invoke create-ton
|
|
219
|
-
- Updated template dependencies' versions: blueprint to 0.6.1, sandbox to 0.7.0
|
|
220
|
-
|
|
221
|
-
## [0.1.0] - 2023-03-21
|
|
222
|
-
|
|
223
|
-
### Added
|
|
224
|
-
|
|
225
|
-
- Added support for [TACT](https://github.com/tact-lang/tact), including TACT smart contract templates
|
|
226
|
-
- Added `.prettierignore` to template to ignore generated TACT files
|
|
227
|
-
|
|
228
|
-
### Changed
|
|
229
|
-
|
|
230
|
-
- Updated template dependencies, including blueprint to 0.6.0, sandbox to 0.6.1, test-utils to 0.2.0
|
|
231
|
-
- Edited template's `README.md`
|
|
232
|
-
- Changed template's `.gitignore` to contain a newline at the end
|
|
233
|
-
- Updated dependencies
|
|
234
|
-
|
|
235
|
-
### Removed
|
|
236
|
-
|
|
237
|
-
- Removed dubious `LICENSE` file from template
|
|
238
|
-
|
|
239
|
-
## [0.0.11] - 2023-03-02
|
|
240
|
-
|
|
241
|
-
### Changed
|
|
242
|
-
|
|
243
|
-
- Updated template dependencies' versions: blueprint to 0.4.1, sandbox to 0.5.1, ton to 13.4.1, ton-core to 0.48.0
|
|
244
|
-
|
|
245
|
-
## [0.0.10] - 2023-02-27
|
|
246
|
-
|
|
247
|
-
### Added
|
|
248
|
-
|
|
249
|
-
- Added a check for exceptions for git repository initialization
|
|
250
|
-
|
|
251
|
-
### Changed
|
|
252
|
-
|
|
253
|
-
- Bumped sandbox version to 0.5.0
|
|
254
|
-
- Bumped blueprint version to 0.3.0
|
|
255
|
-
- Bumped ton-core version to 0.47.1
|
|
256
|
-
|
|
257
|
-
## [0.0.9] - 2023-02-09
|
|
258
|
-
|
|
259
|
-
### Added
|
|
260
|
-
|
|
261
|
-
- Added a hint to indicate that contract names must be PascalCase, and a restriction that contract names must start with a capital letter
|
|
262
|
-
|
|
263
|
-
### Fixed
|
|
264
|
-
|
|
265
|
-
- Added back stdlib.fc to the template so that newly created projects can be built, tested and deployed immediately
|
|
266
|
-
|
|
267
|
-
### Changed
|
|
268
|
-
|
|
269
|
-
- Made some minor changes to the CLI instructions after creating a new project
|
|
270
|
-
- Bumped sandbox version to 0.4.0
|
|
271
|
-
- Bumped blueprint version to 0.2.0
|
|
272
|
-
|
|
273
|
-
## [0.0.8] - 2023-02-05
|
|
274
|
-
|
|
275
|
-
### Changed
|
|
276
|
-
|
|
277
|
-
- Bumped sandbox version to 0.3.0
|
|
278
|
-
|
|
279
|
-
## [0.0.7] - 2023-02-03
|
|
280
|
-
|
|
281
|
-
### Added
|
|
282
|
-
|
|
283
|
-
- CLI now asks for contract name to be created first
|
|
284
|
-
|
|
285
|
-
### Changed
|
|
286
|
-
|
|
287
|
-
- Contract template files are no longer stored in this package, templates from [blueprint](https://github.com/ton-community/blueprint) are now used instead
|