create-near-app 5.3.1 → 6.0.0-beta.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/make.js +19 -15
- package/dist/messages.js +2 -2
- package/dist/package-json.js +17 -1
- package/dist/types.js +1 -1
- package/dist/user-input.js +16 -15
- package/package.json +4 -1
- package/templates/contracts/js/deploy.sh +6 -1
- package/templates/contracts/js/package-lock.json +5966 -0
- package/templates/contracts/js/src/contract.ts +5 -5
- package/templates/contracts/rust/Cargo.toml +1 -1
- package/templates/contracts/rust/README.md +2 -2
- package/templates/contracts/rust/deploy.sh +5 -0
- package/templates/contracts/rust/src/lib.rs +11 -11
- package/templates/frontend/gateway/.nvmrc +1 -0
- package/templates/frontend/gateway/.prettierrc +6 -0
- package/templates/frontend/gateway/next.config.js +15 -0
- package/templates/frontend/gateway/package.json +74 -0
- package/templates/frontend/gateway/public/apple-touch-icon.png +0 -0
- package/templates/frontend/gateway/public/bos-meta.png +0 -0
- package/templates/frontend/gateway/public/favicon.ico +0 -0
- package/templates/frontend/gateway/public/favicon.png +0 -0
- package/templates/frontend/gateway/public/fonts/FKGrotesk.woff2 +0 -0
- package/templates/frontend/gateway/public/fonts/Mona-Sans.woff2 +0 -0
- package/templates/frontend/gateway/public/logo192.png +0 -0
- package/templates/frontend/gateway/public/next.svg +1 -0
- package/templates/frontend/gateway/public/robots.txt +3 -0
- package/templates/frontend/gateway/public/site.webmanifest +8 -0
- package/templates/frontend/gateway/public/vercel.svg +1 -0
- package/templates/frontend/gateway/src/assets/images/near-icon.svg +3 -0
- package/templates/frontend/gateway/src/components/MetaTags.tsx +22 -0
- package/templates/frontend/gateway/src/components/component/ComponentWrapperPage.tsx +27 -0
- package/templates/frontend/gateway/src/components/layouts/DefaultLayout.tsx +16 -0
- package/templates/frontend/gateway/src/components/layouts/SimpleLayout.tsx +9 -0
- package/templates/frontend/gateway/src/components/lib/Button/Button.tsx +379 -0
- package/templates/frontend/gateway/src/components/lib/Button/index.tsx +1 -0
- package/templates/frontend/gateway/src/components/lib/Spinner/Spinner.tsx +33 -0
- package/templates/frontend/gateway/src/components/lib/Spinner/index.ts +1 -0
- package/templates/frontend/gateway/src/components/lib/Text/Text.tsx +14 -0
- package/templates/frontend/gateway/src/components/lib/Text/index.tsx +1 -0
- package/templates/frontend/gateway/src/components/lib/Toast/README.md +83 -0
- package/templates/frontend/gateway/src/components/lib/Toast/Toast.tsx +25 -0
- package/templates/frontend/gateway/src/components/lib/Toast/Toaster.tsx +48 -0
- package/templates/frontend/gateway/src/components/lib/Toast/api.ts +6 -0
- package/templates/frontend/gateway/src/components/lib/Toast/index.ts +3 -0
- package/templates/frontend/gateway/src/components/lib/Toast/store.ts +83 -0
- package/templates/frontend/gateway/src/components/lib/Toast/styles.ts +126 -0
- package/templates/frontend/gateway/src/components/navigation/Navigation.tsx +23 -0
- package/templates/frontend/gateway/src/components/navigation/UserDropdownMenu.tsx +209 -0
- package/templates/frontend/gateway/src/components/navigation/desktop/DesktopNavigation.tsx +109 -0
- package/templates/frontend/gateway/src/components/navigation/desktop/MainNavigationMenu.tsx +170 -0
- package/templates/frontend/gateway/src/components/navigation/icons/close.svg +22 -0
- package/templates/frontend/gateway/src/components/navigation/icons/near-icon.svg +3 -0
- package/templates/frontend/gateway/src/components/navigation/icons/near-logo.svg +14 -0
- package/templates/frontend/gateway/src/components/navigation/icons/return.svg +29 -0
- package/templates/frontend/gateway/src/components/navigation/icons/search.svg +3 -0
- package/templates/frontend/gateway/src/components/navigation/mobile/AccordionMenu.tsx +141 -0
- package/templates/frontend/gateway/src/components/navigation/mobile/Menu.tsx +86 -0
- package/templates/frontend/gateway/src/components/navigation/mobile/MobileNavigation.tsx +131 -0
- package/templates/frontend/gateway/src/components/navigation/navigation-categories.ts +75 -0
- package/templates/frontend/gateway/src/components/vm/VmCommitButton.tsx +20 -0
- package/templates/frontend/gateway/src/components/vm/VmComponent.tsx +29 -0
- package/templates/frontend/gateway/src/components/vm/VmInitializer.tsx +124 -0
- package/templates/frontend/gateway/src/data/components.ts +50 -0
- package/templates/frontend/gateway/src/data/web3.ts +292 -0
- package/templates/frontend/gateway/src/hooks/useBosComponents.ts +14 -0
- package/templates/frontend/gateway/src/hooks/useBosLoaderInitializer.ts +60 -0
- package/templates/frontend/gateway/src/hooks/useFlags.ts +40 -0
- package/templates/frontend/gateway/src/hooks/useLayout.tsx +12 -0
- package/templates/frontend/gateway/src/index.d.ts +9 -0
- package/templates/frontend/gateway/src/pages/_app.tsx +47 -0
- package/templates/frontend/gateway/src/pages/_document.tsx +27 -0
- package/templates/frontend/gateway/src/pages/dig.tsx +25 -0
- package/templates/frontend/gateway/src/pages/flags.tsx +83 -0
- package/templates/frontend/gateway/src/pages/hello-api.tsx +105 -0
- package/templates/frontend/gateway/src/pages/hello-component.tsx +23 -0
- package/templates/frontend/gateway/src/pages/hello-ethereum.tsx +23 -0
- package/templates/frontend/gateway/src/pages/hello-social.tsx +31 -0
- package/templates/frontend/gateway/src/pages/index.tsx +51 -0
- package/templates/frontend/gateway/src/pages/nui.tsx +25 -0
- package/templates/frontend/gateway/src/stores/auth.ts +29 -0
- package/templates/frontend/gateway/src/stores/bos-loader.ts +20 -0
- package/templates/frontend/gateway/src/stores/current-component.ts +11 -0
- package/templates/frontend/gateway/src/stores/vm.ts +24 -0
- package/templates/frontend/gateway/src/styles/globals.css +68 -0
- package/templates/frontend/gateway/src/styles/theme.css +129 -0
- package/templates/frontend/gateway/src/utils/config.ts +49 -0
- package/templates/frontend/gateway/src/utils/form-validation.ts +18 -0
- package/templates/frontend/gateway/src/utils/keypom-options.ts +59 -0
- package/templates/frontend/gateway/src/utils/route/privateRoute.tsx +20 -0
- package/templates/frontend/gateway/src/utils/route/signedOutRoute.tsx +21 -0
- package/templates/frontend/gateway/src/utils/types.ts +33 -0
- package/templates/frontend/gateway/tsconfig.json +24 -0
- package/templates/frontend/vanilla/.env +1 -0
- package/templates/frontend/vanilla/index.html +15 -6
- package/templates/frontend/vanilla/index.js +1 -1
- package/templates/frontend/{shared → vanilla}/near-wallet.js +2 -2
- package/templates/frontend/vanilla/package.json +9 -8
- package/templates/integration-tests/js-tests/package-lock.json +5014 -0
- package/templates/integration-tests/js-tests/package.json +3 -0
- package/templates/integration-tests/js-tests/src/main.ava.ts +6 -6
- package/templates/integration-tests/rust-tests/src/tests.rs +7 -7
- package/templates/frontend/react/App.js +0 -75
- package/templates/frontend/react/assets/favicon.ico +0 -0
- package/templates/frontend/react/assets/global.css +0 -231
- package/templates/frontend/react/assets/logo-black.svg +0 -1
- package/templates/frontend/react/assets/logo-white.svg +0 -1
- package/templates/frontend/react/index.html +0 -15
- package/templates/frontend/react/index.js +0 -23
- package/templates/frontend/react/package.json +0 -52
- package/templates/frontend/react/ui-components.js +0 -59
- package/templates/frontend/shared/start.sh +0 -26
- /package/templates/{shared → contracts/rust}/rust-toolchain.toml +0 -0
package/dist/make.js
CHANGED
|
@@ -58,22 +58,26 @@ async function createFiles({ contract, frontend, tests, projectPath, verbose, ro
|
|
|
58
58
|
const sourceSharedDir = path_1.default.resolve(rootDir, 'shared');
|
|
59
59
|
await copyDir(sourceSharedDir, projectPath, { verbose, skip: skip.map(f => path_1.default.join(sourceSharedDir, f)) });
|
|
60
60
|
// copy contract files
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
61
|
+
if (contract !== 'none') {
|
|
62
|
+
const sourceContractDir = path_1.default.resolve(rootDir, 'contracts', contract);
|
|
63
|
+
const targetContractDir = path_1.default.resolve(projectPath, 'contract');
|
|
64
|
+
fs_1.default.mkdirSync(targetContractDir, { recursive: true });
|
|
65
|
+
await copyDir(sourceContractDir, targetContractDir, {
|
|
66
|
+
verbose,
|
|
67
|
+
skip: skip.map(f => path_1.default.join(sourceContractDir, f))
|
|
68
|
+
});
|
|
69
|
+
}
|
|
68
70
|
// tests dir
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
71
|
+
if (contract !== 'none') {
|
|
72
|
+
const targetTestDir = path_1.default.resolve(projectPath, 'integration-tests');
|
|
73
|
+
fs_1.default.mkdirSync(targetTestDir, { recursive: true });
|
|
74
|
+
// copy tests - shared files
|
|
75
|
+
const sourceTestSharedDir = path_1.default.resolve(`${rootDir}/integration-tests/${tests}-tests`);
|
|
76
|
+
await copyDir(sourceTestSharedDir, targetTestDir, {
|
|
77
|
+
verbose,
|
|
78
|
+
skip: skip.map(f => path_1.default.join(sourceTestSharedDir, f))
|
|
79
|
+
});
|
|
80
|
+
}
|
|
77
81
|
// add .gitignore
|
|
78
82
|
await (0, exports.renameFile)(`${projectPath}/template.gitignore`, `${projectPath}/.gitignore`);
|
|
79
83
|
}
|
package/dist/messages.js
CHANGED
|
@@ -24,9 +24,9 @@ Please refer to https://github.com/near/create-near-app README to troubleshoot.
|
|
|
24
24
|
Notice: some platforms aren't supported (yet).
|
|
25
25
|
{bold {red ==========================================}}`);
|
|
26
26
|
exports.setupFailed = setupFailed;
|
|
27
|
-
const successContractToText = (contract) => (0, chalk_1.default) `with a smart contract in {bold ${contract === 'rust' ? 'Rust' : 'JavaScript'}}`;
|
|
27
|
+
const successContractToText = (contract) => contract === 'none' ? '' : (0, chalk_1.default) `with a smart contract in {bold ${contract === 'rust' ? 'Rust' : 'JavaScript'}}`;
|
|
28
28
|
exports.successContractToText = successContractToText;
|
|
29
|
-
const successFrontendToText = (frontend) => frontend === 'none' ? '' : (0, chalk_1.default) ` and a frontend template${frontend === '
|
|
29
|
+
const successFrontendToText = (frontend) => frontend === 'none' ? '' : (0, chalk_1.default) ` and a frontend template${frontend === 'gateway' ? (0, chalk_1.default) `{bold in React.js}` : ''}`;
|
|
30
30
|
exports.successFrontendToText = successFrontendToText;
|
|
31
31
|
const setupSuccess = (projectName, contract, frontend, install) => (0, exports.show)((0, chalk_1.default) `
|
|
32
32
|
{green ======================================================}
|
package/dist/package-json.js
CHANGED
|
@@ -31,7 +31,7 @@ function basePackage({ contract, frontend, tests, projectName }) {
|
|
|
31
31
|
};
|
|
32
32
|
}
|
|
33
33
|
const startScript = (hasFrontend) => hasFrontend ? {
|
|
34
|
-
'start': 'cd frontend && npm run
|
|
34
|
+
'start': 'cd frontend && npm run dev'
|
|
35
35
|
} : {};
|
|
36
36
|
const buildScript = (hasFrontend) => hasFrontend ? {
|
|
37
37
|
'build': 'npm run build:contract && npm run build:web',
|
|
@@ -50,6 +50,10 @@ const buildContractScript = (contract) => {
|
|
|
50
50
|
return {
|
|
51
51
|
[buildContractScriptName]: 'cd contract && ./build.sh',
|
|
52
52
|
};
|
|
53
|
+
case 'none':
|
|
54
|
+
return {
|
|
55
|
+
[buildContractScriptName]: 'echo "No contract to build"',
|
|
56
|
+
};
|
|
53
57
|
}
|
|
54
58
|
};
|
|
55
59
|
const deployScript = (contract) => {
|
|
@@ -62,6 +66,10 @@ const deployScript = (contract) => {
|
|
|
62
66
|
return {
|
|
63
67
|
'deploy': 'cd contract && ./deploy.sh',
|
|
64
68
|
};
|
|
69
|
+
case 'none':
|
|
70
|
+
return {
|
|
71
|
+
'deploy': 'echo "No contract to deploy"',
|
|
72
|
+
};
|
|
65
73
|
}
|
|
66
74
|
};
|
|
67
75
|
const unitTestScripts = (contract) => {
|
|
@@ -70,9 +78,14 @@ const unitTestScripts = (contract) => {
|
|
|
70
78
|
return { 'test:unit': 'cd contract && npm test' };
|
|
71
79
|
case 'rust':
|
|
72
80
|
return { 'test:unit': 'cd contract && cargo test' };
|
|
81
|
+
case 'none':
|
|
82
|
+
return { 'test:unit': 'echo "No contract to test"' };
|
|
73
83
|
}
|
|
74
84
|
};
|
|
75
85
|
const integrationTestScripts = (contract, tests) => {
|
|
86
|
+
if (contract === 'none') {
|
|
87
|
+
return { 'test:integration': 'echo "No contract to test"' };
|
|
88
|
+
}
|
|
76
89
|
let wasm_path = '';
|
|
77
90
|
switch (contract) {
|
|
78
91
|
case 'js':
|
|
@@ -106,6 +119,9 @@ const npmInstallScript = (contract, hasFrontend, tests) => {
|
|
|
106
119
|
case 'rust':
|
|
107
120
|
contract_install = 'echo rs contract';
|
|
108
121
|
break;
|
|
122
|
+
case 'none':
|
|
123
|
+
contract_install = 'echo no contract';
|
|
124
|
+
break;
|
|
109
125
|
}
|
|
110
126
|
return {
|
|
111
127
|
'postinstall': `${frontend_install} && ${test_install} && ${contract_install}`
|
package/dist/types.js
CHANGED
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.TESTING_FRAMEWORKS = exports.FRONTENDS = exports.CONTRACTS = void 0;
|
|
4
4
|
exports.CONTRACTS = ['js', 'rust'];
|
|
5
|
-
exports.FRONTENDS = ['
|
|
5
|
+
exports.FRONTENDS = ['gateway', 'vanilla', 'none'];
|
|
6
6
|
exports.TESTING_FRAMEWORKS = ['rust', 'js'];
|
|
7
7
|
//# sourceMappingURL=types.js.map
|
package/dist/user-input.js
CHANGED
|
@@ -75,37 +75,38 @@ function validateUserArgs(args) {
|
|
|
75
75
|
}
|
|
76
76
|
exports.validateUserArgs = validateUserArgs;
|
|
77
77
|
const contractChoices = [
|
|
78
|
-
{ title: 'TypeScript', value: 'js' },
|
|
79
|
-
{ title: 'Rust', value: 'rust' },
|
|
78
|
+
{ title: 'Yes, in TypeScript', description: 'Build a Near contract using javascript/typescript', value: 'js' },
|
|
79
|
+
{ title: 'Yes, in Rust', description: 'Build a Near contract using Rust', value: 'rust' },
|
|
80
|
+
{ title: 'No', description: 'You are not building a Near smart contract', value: 'none' },
|
|
80
81
|
];
|
|
81
82
|
const testsChoices = [
|
|
82
|
-
{ title: '
|
|
83
|
-
{ title: '
|
|
83
|
+
{ title: 'Tests written in Rust', value: 'rust' },
|
|
84
|
+
{ title: 'Tests written in Javascript', value: 'js' },
|
|
84
85
|
];
|
|
85
86
|
const frontendChoices = [
|
|
86
|
-
{ title: '
|
|
87
|
-
{ title: 'Vanilla
|
|
88
|
-
{ title: 'No frontend', value: 'none' },
|
|
87
|
+
{ title: 'Composable web app (Gateway)', description: 'Leverage next.js and web3 components to create multi-chain apps', value: 'gateway' },
|
|
88
|
+
{ title: 'Vanilla web app', description: 'Interact with the Near blockchain using a simple web app', value: 'vanilla' },
|
|
89
|
+
{ title: 'No frontend', description: 'Build a smart contract with no frontend', value: 'none' },
|
|
89
90
|
];
|
|
90
91
|
const userPrompts = [
|
|
92
|
+
{
|
|
93
|
+
type: 'select',
|
|
94
|
+
name: 'frontend',
|
|
95
|
+
message: 'Frontend: What kind of App are you building?',
|
|
96
|
+
choices: frontendChoices,
|
|
97
|
+
},
|
|
91
98
|
{
|
|
92
99
|
type: 'select',
|
|
93
100
|
name: 'contract',
|
|
94
|
-
message: '
|
|
101
|
+
message: 'Contract: Are you building a NEAR contract?',
|
|
95
102
|
choices: contractChoices,
|
|
96
103
|
},
|
|
97
104
|
{
|
|
98
105
|
type: prev => prev === 'rust' ? 'select' : null,
|
|
99
106
|
name: 'tests',
|
|
100
|
-
message: '
|
|
107
|
+
message: 'Sandbox Testing: Which language do you prefer to test your contract?',
|
|
101
108
|
choices: testsChoices,
|
|
102
109
|
},
|
|
103
|
-
{
|
|
104
|
-
type: 'select',
|
|
105
|
-
name: 'frontend',
|
|
106
|
-
message: 'Select a template for your frontend',
|
|
107
|
-
choices: frontendChoices,
|
|
108
|
-
},
|
|
109
110
|
{
|
|
110
111
|
type: 'text',
|
|
111
112
|
name: 'projectName',
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "create-near-app",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "6.0.0-beta.0",
|
|
4
4
|
"description": "Quickly scaffold your dApp on NEAR Blockchain",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"engines": {
|
|
@@ -34,6 +34,9 @@
|
|
|
34
34
|
},
|
|
35
35
|
"devDependencies": {
|
|
36
36
|
"@babel/eslint-parser": "^7.22.5",
|
|
37
|
+
"@babel/core": "^7.23.2",
|
|
38
|
+
"@babel/plugin-transform-react-jsx": "^7.22.15",
|
|
39
|
+
"@babel/plugin-syntax-flow": "^7.22.5",
|
|
37
40
|
"@commitlint/cli": "^17.6.6",
|
|
38
41
|
"@commitlint/config-conventional": "^17.6.6",
|
|
39
42
|
"@release-it/conventional-changelog": "^5.1.1",
|
|
@@ -10,4 +10,9 @@ fi
|
|
|
10
10
|
echo ">> Deploying contract"
|
|
11
11
|
|
|
12
12
|
# https://docs.near.org/tools/near-cli#near-dev-deploy
|
|
13
|
-
near dev-deploy --wasmFile build/hello_near.wasm
|
|
13
|
+
near dev-deploy --wasmFile build/hello_near.wasm
|
|
14
|
+
|
|
15
|
+
# if ../frontend folder exists, copy the env file there
|
|
16
|
+
if [ -d "../frontend" ]; then
|
|
17
|
+
(echo ; cat ./neardev/dev-account.env) >> ../frontend/.env
|
|
18
|
+
fi
|