@sentio/cli 2.18.3 → 2.18.4-rc.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.
Files changed (84) hide show
  1. package/lib/abi.d.ts +9 -0
  2. package/lib/abi.d.ts.map +1 -0
  3. package/lib/abi.js +136 -0
  4. package/lib/abi.js.map +1 -0
  5. package/lib/abi.test.d.ts +2 -0
  6. package/lib/abi.test.d.ts.map +1 -0
  7. package/lib/abi.test.js.map +1 -0
  8. package/lib/commands/build.d.ts +28 -0
  9. package/lib/commands/build.d.ts.map +1 -0
  10. package/lib/commands/build.js +213 -0
  11. package/lib/commands/build.js.map +1 -0
  12. package/lib/commands/login-server.d.ts +8 -0
  13. package/lib/commands/login-server.d.ts.map +1 -0
  14. package/lib/commands/login-server.js +110 -0
  15. package/lib/commands/login-server.js.map +1 -0
  16. package/lib/commands/run-add.d.ts +2 -0
  17. package/lib/commands/run-add.d.ts.map +1 -0
  18. package/lib/commands/run-add.js +100 -0
  19. package/lib/commands/run-add.js.map +1 -0
  20. package/lib/commands/run-compile.d.ts +2 -0
  21. package/lib/commands/run-compile.d.ts.map +1 -0
  22. package/lib/commands/run-compile.js +199 -0
  23. package/lib/commands/run-compile.js.map +1 -0
  24. package/lib/commands/run-create.d.ts +2 -0
  25. package/lib/commands/run-create.d.ts.map +1 -0
  26. package/lib/commands/run-create.js +142 -0
  27. package/lib/commands/run-create.js.map +1 -0
  28. package/lib/commands/run-graph.d.ts +3 -0
  29. package/lib/commands/run-graph.d.ts.map +1 -0
  30. package/lib/commands/run-graph.js +136 -0
  31. package/lib/commands/run-graph.js.map +1 -0
  32. package/lib/commands/run-login.d.ts +2 -0
  33. package/lib/commands/run-login.d.ts.map +1 -0
  34. package/lib/commands/run-login.js +107 -0
  35. package/lib/commands/run-login.js.map +1 -0
  36. package/lib/commands/run-test.d.ts +2 -0
  37. package/lib/commands/run-test.d.ts.map +1 -0
  38. package/lib/commands/run-test.js +11 -0
  39. package/lib/commands/run-test.js.map +1 -0
  40. package/lib/commands/run-upload.d.ts +14 -0
  41. package/lib/commands/run-upload.d.ts.map +1 -0
  42. package/lib/commands/run-upload.js +332 -0
  43. package/lib/commands/run-upload.js.map +1 -0
  44. package/lib/commands/run-version.d.ts +2 -0
  45. package/lib/commands/run-version.d.ts.map +1 -0
  46. package/lib/commands/run-version.js +38 -0
  47. package/lib/commands/run-version.js.map +1 -0
  48. package/lib/config.d.ts +23 -0
  49. package/lib/config.d.ts.map +1 -0
  50. package/lib/config.js +70 -0
  51. package/lib/config.js.map +1 -0
  52. package/lib/execution.d.ts +5 -0
  53. package/lib/execution.d.ts.map +1 -0
  54. package/lib/execution.js +31 -0
  55. package/lib/execution.js.map +1 -0
  56. package/lib/index.d.ts +3 -0
  57. package/lib/index.d.ts.map +1 -0
  58. package/lib/index.js +130 -1183
  59. package/lib/index.js.map +1 -7
  60. package/lib/key.d.ts +3 -0
  61. package/lib/key.d.ts.map +1 -0
  62. package/lib/key.js +36 -0
  63. package/lib/key.js.map +1 -0
  64. package/lib/utils.d.ts +4 -0
  65. package/lib/utils.d.ts.map +1 -0
  66. package/lib/utils.js +32 -0
  67. package/lib/utils.js.map +1 -0
  68. package/package.json +23 -5
  69. package/src/commands/run-test.ts +2 -4
  70. package/templates/aptos/src/processor.test.ts +4 -2
  71. package/templates/aptos/tsconfig.json +1 -1
  72. package/templates/eth/src/processor.test.ts +6 -4
  73. package/templates/eth/tsconfig.json +1 -1
  74. package/templates/fuel/src/processor.test.ts +4 -2
  75. package/templates/fuel/tsconfig.json +1 -1
  76. package/templates/raw/src/processor.test.ts +4 -2
  77. package/templates/raw/tsconfig.json +1 -1
  78. package/templates/solana/src/processor.test.ts +4 -2
  79. package/templates/solana/tsconfig.json +1 -1
  80. package/src/cjs-shim.ts +0 -8
  81. package/templates/aptos/jest.config.ts +0 -8
  82. package/templates/eth/jest.config.ts +0 -8
  83. package/templates/raw/jest.config.ts +0 -8
  84. package/templates/solana/jest.config.ts +0 -8
@@ -0,0 +1,100 @@
1
+ import commandLineArgs from 'command-line-args';
2
+ import commandLineUsage from 'command-line-usage';
3
+ import fs from 'fs-extra';
4
+ import chalk from 'chalk';
5
+ import { codegen } from './build.js';
6
+ import yaml from 'yaml';
7
+ import { getABIFilePath, getABI, writeABIFile, ETH_API_URL_MAP } from '../abi.js';
8
+ import { AptosChainId, getChainName, SuiChainId } from '@sentio/chain';
9
+ export async function runAdd(argv) {
10
+ const supportedChain = [
11
+ AptosChainId.APTOS_MAINNET,
12
+ AptosChainId.APTOS_TESTNET,
13
+ SuiChainId.SUI_TESTNET,
14
+ SuiChainId.SUI_MAINNET
15
+ ];
16
+ supportedChain.push(...Object.keys(ETH_API_URL_MAP));
17
+ const supportedChainMessage = [
18
+ '',
19
+ ...supportedChain.map((chainId, idx) => ` ${getChainName(chainId)}:\t${chainId}${idx === supportedChain.length - 1 ? '' : '\n'}`)
20
+ ];
21
+ const optionDefinitions = [
22
+ {
23
+ name: 'help',
24
+ alias: 'h',
25
+ type: Boolean,
26
+ description: 'Display this usage guide.'
27
+ },
28
+ {
29
+ name: 'chain',
30
+ alias: 'c',
31
+ type: String,
32
+ defaultValue: '1',
33
+ description: 'Chain id, current support (chain name: id)s are:\n' + supportedChainMessage
34
+ },
35
+ {
36
+ name: 'address',
37
+ defaultOption: true,
38
+ description: 'Address of the contract',
39
+ type: String
40
+ },
41
+ {
42
+ name: 'name',
43
+ alias: 'n',
44
+ description: 'File name for the downloaded contract, if empty, use address as file name',
45
+ type: String
46
+ }
47
+ ];
48
+ const options = commandLineArgs(optionDefinitions, { argv, partial: true });
49
+ const usage = commandLineUsage([
50
+ {
51
+ header: "Add contract's ABI to the project",
52
+ content: 'sentio add [--chain <chain> --name <name>] <address>'
53
+ },
54
+ {
55
+ header: 'Options',
56
+ optionList: optionDefinitions
57
+ }
58
+ ]);
59
+ if (options.help || !options.address) {
60
+ console.log(usage);
61
+ }
62
+ else {
63
+ const chain = options['chain'].toLowerCase();
64
+ const address = options.address;
65
+ if (!address.startsWith('0x')) {
66
+ console.error(chalk.red('Address must start with 0x'));
67
+ console.log(usage);
68
+ process.exit(1);
69
+ }
70
+ const abiRes = await getABI(chain, address, options.name);
71
+ const filename = abiRes.name || address;
72
+ writeABIFile(abiRes.abi, getABIFilePath(chain, filename));
73
+ // Write contract info to sentio.yaml
74
+ const yamlDocument = yaml.parseDocument(fs.readFileSync('sentio.yaml', 'utf8'));
75
+ let contracts = yamlDocument.get('contracts');
76
+ if (!contracts) {
77
+ contracts = new yaml.YAMLSeq();
78
+ yamlDocument.set('contracts', contracts);
79
+ }
80
+ let hasContract = false;
81
+ for (const item of contracts.items) {
82
+ if (item.get('chain') === chain && item.get('address') === address) {
83
+ hasContract = true;
84
+ }
85
+ }
86
+ if (!hasContract) {
87
+ const newContract = new yaml.YAMLMap();
88
+ newContract.set('chain', chain);
89
+ newContract.set('address', address);
90
+ if (address !== filename) {
91
+ newContract.set('name', filename);
92
+ }
93
+ contracts.add(newContract);
94
+ fs.writeFileSync('sentio.yaml', yamlDocument.toString(), 'utf8');
95
+ }
96
+ // Run gen
97
+ await codegen(false);
98
+ }
99
+ }
100
+ //# sourceMappingURL=run-add.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-add.js","sourceRoot":"","sources":["../../src/commands/run-add.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function runCompile(argv: string[]): Promise<false | undefined>;
2
+ //# sourceMappingURL=run-compile.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-compile.d.ts","sourceRoot":"","sources":["../../src/commands/run-compile.ts"],"names":[],"mappings":"AAyDA,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,8BAoF9C"}
@@ -0,0 +1,199 @@
1
+ import commandLineArgs from 'command-line-args';
2
+ import commandLineUsage from 'command-line-usage';
3
+ import path from 'path';
4
+ import fs from 'fs';
5
+ import { promisify } from 'util';
6
+ import solc from 'solc';
7
+ import { getFinalizedHost } from '../config.js';
8
+ import { ReadKey } from '../key.js';
9
+ import chalk from 'chalk';
10
+ import { URL } from 'url';
11
+ const SRC_ROOT = 'src';
12
+ const optionDefinitions = [
13
+ {
14
+ name: 'help',
15
+ alias: 'h',
16
+ type: Boolean,
17
+ description: 'Display this usage guide.'
18
+ },
19
+ {
20
+ name: 'upload',
21
+ type: Boolean,
22
+ description: '(Optional) Upload to sentio if compiled successfully'
23
+ },
24
+ {
25
+ name: 'project',
26
+ description: '(Optional) Project full name, required in uploading',
27
+ type: String
28
+ },
29
+ {
30
+ name: 'api-key',
31
+ type: String,
32
+ description: '(Optional) Manually provide API key rather than use saved credential, if both api-key and jwt-token is provided, use api-key.'
33
+ },
34
+ {
35
+ name: 'token',
36
+ type: String,
37
+ description: '(Optional) Manually provide token rather than use saved credential, if both api-key and token is provided, use api-key.'
38
+ },
39
+ {
40
+ name: 'host',
41
+ description: '(Optional) Sentio Host name',
42
+ type: String
43
+ }
44
+ ];
45
+ export async function runCompile(argv) {
46
+ const options = commandLineArgs(optionDefinitions, { argv, partial: true });
47
+ if (options.help) {
48
+ const usage = commandLineUsage([
49
+ {
50
+ header: 'Sentio compile',
51
+ content: 'sentio compile'
52
+ },
53
+ {
54
+ header: 'Options',
55
+ optionList: optionDefinitions
56
+ }
57
+ ]);
58
+ console.log(usage);
59
+ process.exit(0);
60
+ }
61
+ let projectOwner, projectSlug;
62
+ const auth = {};
63
+ if (options.upload) {
64
+ if (!options.project) {
65
+ console.error('Project full path is required for upload. Please specify by --project option.');
66
+ process.exit(1);
67
+ }
68
+ ;
69
+ [projectOwner, projectSlug] = options.project.includes('/')
70
+ ? options.project.split('/')
71
+ : [undefined, options.project];
72
+ options.host = getFinalizedHost(options.host);
73
+ let apiKey = ReadKey(options.host);
74
+ if (options['api-key']) {
75
+ apiKey = options['api-key'];
76
+ }
77
+ if (apiKey) {
78
+ auth['api-key'] = apiKey;
79
+ }
80
+ else if (options['token']) {
81
+ auth.authorization = 'Bearer ' + options['token'];
82
+ }
83
+ else {
84
+ const isProd = options.host === 'https://app.sentio.xyz';
85
+ const cmd = isProd ? 'sentio login' : 'sentio login --host=' + options.host;
86
+ console.error(chalk.red('No Credential found for', options.host, '. Please run `' + cmd + '`.'));
87
+ process.exit(1);
88
+ }
89
+ }
90
+ let metadata;
91
+ const mdPath = path.join(process.cwd(), 'metadata.json');
92
+ try {
93
+ metadata = JSON.parse(fs.readFileSync(mdPath, 'utf8'));
94
+ }
95
+ catch (e) {
96
+ console.error('Unable to read metadata, please check if you are in a valid project directory.');
97
+ process.exit(1);
98
+ }
99
+ const ver = metadata.solidityVersion;
100
+ let compiler;
101
+ try {
102
+ const loadRemote = promisify(solc.loadRemoteVersion);
103
+ compiler = await loadRemote(ver);
104
+ }
105
+ catch (e) {
106
+ console.error(`Failed to fetch solc ${ver}:`, e);
107
+ return false;
108
+ }
109
+ console.log('Successfully fetch solc, compiling...');
110
+ const input = prepareCompilerInput(metadata, SRC_ROOT);
111
+ const output = JSON.parse(compiler.compile(JSON.stringify(input)));
112
+ if (Object.keys(output.sources || {}).length == 0) {
113
+ console.error(JSON.stringify(output, null, 2));
114
+ console.error('\nCompilation failed');
115
+ return;
116
+ }
117
+ console.log('Compilation successful.');
118
+ if (options.upload) {
119
+ await upload({
120
+ host: options.host,
121
+ projectOwner,
122
+ projectSlug,
123
+ auth,
124
+ metadata
125
+ });
126
+ }
127
+ return;
128
+ }
129
+ async function upload(args) {
130
+ const { host, projectOwner, projectSlug, auth, metadata } = args;
131
+ const source = readSources(SRC_ROOT, SRC_ROOT);
132
+ console.log('Uploading...');
133
+ const req = {
134
+ projectOwner,
135
+ projectSlug,
136
+ compileSpec: {
137
+ multiFile: {
138
+ source,
139
+ compilerSettings: JSON.stringify(metadata.settings)
140
+ },
141
+ solidityVersion: metadata.solidityVersion,
142
+ contractName: metadata.contractName,
143
+ constructorArgs: metadata.constructorArgs
144
+ }
145
+ };
146
+ const uploadURL = new URL('/api/v1/solidity/user_compilation', host);
147
+ await fetch(uploadURL.href, {
148
+ method: 'POST',
149
+ headers: {
150
+ 'Content-Type': 'application/json',
151
+ ...auth
152
+ },
153
+ body: JSON.stringify(req)
154
+ })
155
+ .then((res) => res.json())
156
+ .then((resp) => {
157
+ const id = resp.userCompilationId;
158
+ if (id) {
159
+ console.log(`Successfully uploaded, check it out at ${host}/${projectOwner}/${projectSlug}/contracts/compilation/${id}`);
160
+ }
161
+ else {
162
+ console.error(resp);
163
+ console.error('Failed to upload.');
164
+ }
165
+ })
166
+ .catch((err) => {
167
+ console.error('Failed to upload:', err);
168
+ });
169
+ }
170
+ function prepareCompilerInput(metadata, root) {
171
+ const input = {
172
+ language: 'Solidity',
173
+ sources: {},
174
+ settings: {
175
+ ...metadata.settings,
176
+ outputSelection: { '*': { '*': [] } }
177
+ }
178
+ };
179
+ const files = readSources(root, root);
180
+ for (const key in files) {
181
+ input.sources[key] = { content: files[key] };
182
+ }
183
+ return input;
184
+ }
185
+ function readSources(dir, root) {
186
+ let ret = {};
187
+ const childs = fs.readdirSync(dir);
188
+ for (const child of childs) {
189
+ const p = path.resolve(dir, child);
190
+ if (fs.statSync(p).isDirectory()) {
191
+ ret = { ...ret, ...readSources(p, root) };
192
+ }
193
+ else if (child.endsWith('.sol')) {
194
+ ret[path.relative(root, p)] = fs.readFileSync(p, 'utf8');
195
+ }
196
+ }
197
+ return ret;
198
+ }
199
+ //# sourceMappingURL=run-compile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-compile.js","sourceRoot":"","sources":["../../src/commands/run-compile.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function runCreate(argv: string[]): Promise<void>;
2
+ //# sourceMappingURL=run-create.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-create.d.ts","sourceRoot":"","sources":["../../src/commands/run-create.ts"],"names":[],"mappings":"AAUA,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,iBAmJ7C"}
@@ -0,0 +1,142 @@
1
+ import commandLineArgs from 'command-line-args';
2
+ import commandLineUsage from 'command-line-usage';
3
+ import path from 'path';
4
+ import fs from 'fs-extra';
5
+ import chalk from 'chalk';
6
+ import latestVersion from 'latest-version';
7
+ import url from 'url';
8
+ import process from 'process';
9
+ import { execYarn } from '../execution.js';
10
+ export async function runCreate(argv) {
11
+ const optionDefinitions = [
12
+ {
13
+ name: 'help',
14
+ alias: 'h',
15
+ type: Boolean,
16
+ description: 'Display this usage guide.'
17
+ },
18
+ {
19
+ name: 'name',
20
+ alias: 'n',
21
+ defaultOption: true,
22
+ type: String,
23
+ description: 'Project name'
24
+ },
25
+ {
26
+ name: 'subproject',
27
+ alias: 'p',
28
+ type: Boolean,
29
+ description: 'If this is a subproject in mono-repo setup, in this case sdk version is controlled in parent package.json.'
30
+ },
31
+ {
32
+ name: 'sdk-version',
33
+ alias: 's',
34
+ type: String,
35
+ description: '(Optional) The version of @sentio/sdk to use, default latest'
36
+ },
37
+ {
38
+ name: 'directory',
39
+ alias: 'd',
40
+ description: '(Optional) The root direct new project will be created, default current working dir',
41
+ type: String
42
+ },
43
+ {
44
+ name: 'chain-type',
45
+ alias: 'c',
46
+ description: 'The type of project you want to create, can be eth, aptos, solana, raw (if you want to start from scratch and support multiple types of chains)',
47
+ type: String,
48
+ defaultValue: 'eth'
49
+ }
50
+ ];
51
+ const options = commandLineArgs(optionDefinitions, { argv, partial: true });
52
+ const usage = commandLineUsage([
53
+ {
54
+ header: 'Create a template project',
55
+ content: 'sentio create <name>'
56
+ },
57
+ {
58
+ header: 'Options',
59
+ optionList: optionDefinitions
60
+ }
61
+ ]);
62
+ if (options.help || !options.name) {
63
+ console.log(usage);
64
+ }
65
+ else {
66
+ const chainType = options['chain-type'].toLowerCase();
67
+ switch (chainType) {
68
+ case 'eth':
69
+ break;
70
+ case 'aptos':
71
+ break;
72
+ case 'raw':
73
+ break;
74
+ case 'solana':
75
+ break;
76
+ case 'fuel':
77
+ break;
78
+ default:
79
+ console.error(chalk.red('non supported chain-type for template creation, use --help for more information.'));
80
+ console.log(usage);
81
+ process.exit(1);
82
+ }
83
+ const templateFolder = url.fileURLToPath(new URL('../../templates/' + chainType, import.meta.url));
84
+ const projectFullName = options.name || 'default';
85
+ let projectSlug = projectFullName;
86
+ const projectParts = projectSlug.split('/');
87
+ if (projectParts.length > 1) {
88
+ projectSlug = projectParts[1];
89
+ }
90
+ const rootDir = options.directory || process.cwd();
91
+ const dstFolder = path.resolve(rootDir, projectSlug);
92
+ if (fs.existsSync(dstFolder)) {
93
+ console.error(chalk.red("can't create project '" + projectSlug + "', directory already existed"));
94
+ process.exit(1);
95
+ }
96
+ fs.copySync(templateFolder, dstFolder, {
97
+ filter: (src, _) => {
98
+ // TODO read from .gitignore to be more reliable
99
+ if (src.endsWith('types') ||
100
+ src.endsWith('dist') ||
101
+ src.endsWith('node_modules') ||
102
+ src.endsWith('.lock') ||
103
+ src.endsWith('dist')) {
104
+ return false;
105
+ }
106
+ return true;
107
+ },
108
+ overwrite: false
109
+ });
110
+ const gitignoreFile = path.join(dstFolder, 'gitignore');
111
+ if (fs.existsSync(gitignoreFile)) {
112
+ fs.renameSync(gitignoreFile, path.join(dstFolder, '.gitignore'));
113
+ }
114
+ if (options.name) {
115
+ const sentioYamlPath = path.resolve(dstFolder, 'sentio.yaml');
116
+ fs.writeFileSync(sentioYamlPath, 'project: ' + projectFullName + '\n', { flag: 'w+' });
117
+ const packageJsonPath = path.resolve(dstFolder, 'package.json');
118
+ const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8'));
119
+ let sdkVersion = options.sdkVersion;
120
+ if (!sdkVersion) {
121
+ sdkVersion = '^' + (await latestVersion('@sentio/sdk'));
122
+ }
123
+ packageJson.dependencies['@sentio/sdk'] = sdkVersion;
124
+ const cliVersion = '^' + (await latestVersion('@sentio/cli'));
125
+ packageJson.devDependencies['@sentio/cli'] = cliVersion;
126
+ packageJson.name = projectSlug;
127
+ if (options.subproject) {
128
+ delete packageJson.dependencies;
129
+ delete packageJson.devDependencies;
130
+ }
131
+ // Don't add directly to avoid deps issue
132
+ packageJson.scripts.postinstall = 'sentio gen';
133
+ fs.writeFileSync(packageJsonPath, JSON.stringify(packageJson, null, 2));
134
+ }
135
+ console.log(chalk.green("successfully create project '" + projectFullName + "'"));
136
+ if (!options.subproject) {
137
+ console.log(chalk.green('running yarn install for initialization'));
138
+ await execYarn(['install'], 'install', { cwd: dstFolder });
139
+ }
140
+ }
141
+ }
142
+ //# sourceMappingURL=run-create.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-create.js","sourceRoot":"","sources":["../../src/commands/run-create.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { YamlProjectConfig } from '../config.js';
2
+ export declare function runGraph(processorConfig: YamlProjectConfig, argv: string[]): Promise<void>;
3
+ //# sourceMappingURL=run-graph.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-graph.d.ts","sourceRoot":"","sources":["../../src/commands/run-graph.ts"],"names":[],"mappings":"AAGA,OAAO,EAAqC,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAwCnF,wBAAsB,QAAQ,CAAC,eAAe,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,EAAE,iBAgDhF"}
@@ -0,0 +1,136 @@
1
+ import commandLineArgs from 'command-line-args';
2
+ import commandLineUsage from 'command-line-usage';
3
+ import path from 'path';
4
+ import { finalizeHost, FinalizeProjectName } from '../config.js';
5
+ import { getSdkVersion } from '../utils.js';
6
+ import { execStep } from '../execution.js';
7
+ import { ReadKey } from '../key.js';
8
+ import fs from 'fs';
9
+ import JSZip from 'jszip';
10
+ import chalk from 'chalk';
11
+ import { initUpload, finishUpload, getGitAttributes } from './run-upload.js';
12
+ import fetch from 'node-fetch';
13
+ const optionDefinitions = [
14
+ {
15
+ name: 'help',
16
+ alias: 'h',
17
+ type: Boolean,
18
+ description: 'Display this usage guide.'
19
+ },
20
+ {
21
+ name: 'api-key',
22
+ type: String,
23
+ description: '(Optional) Manually provide API key rather than use saved credential, if both api-key and jwt-token is provided, use api-key.'
24
+ },
25
+ {
26
+ name: 'host',
27
+ description: '(Optional) Override Sentio Host name',
28
+ type: String
29
+ },
30
+ {
31
+ name: 'owner',
32
+ description: '(Optional) Override Project owner',
33
+ type: String
34
+ },
35
+ {
36
+ name: 'name',
37
+ description: '(Optional) Override Project name',
38
+ type: String
39
+ }
40
+ ];
41
+ export async function runGraph(processorConfig, argv) {
42
+ const options = commandLineArgs(optionDefinitions, { argv, partial: true });
43
+ if (options.help || argv[0] != 'deploy') {
44
+ const usage = commandLineUsage([
45
+ {
46
+ header: 'Sentio graph',
47
+ content: 'sentio graph'
48
+ },
49
+ {
50
+ header: 'Usage',
51
+ content: ['sentio graph deploy\t\t\t\tDeploy subgraph processor to sentio']
52
+ },
53
+ {
54
+ header: 'Options',
55
+ optionList: optionDefinitions
56
+ }
57
+ ]);
58
+ console.log(usage);
59
+ process.exit(0);
60
+ }
61
+ finalizeHost(processorConfig, options.host);
62
+ FinalizeProjectName(processorConfig, options.owner, options.name);
63
+ let apiKey = ReadKey(processorConfig.host);
64
+ if (options['api-key']) {
65
+ apiKey = options['api-key'];
66
+ }
67
+ await execStep([
68
+ 'npx',
69
+ 'graph',
70
+ 'deploy',
71
+ '--node',
72
+ new URL('/api/v1/graph-node', processorConfig.host).toString(),
73
+ '--ipfs',
74
+ new URL('/api/v1/ipfs', processorConfig.host).toString(),
75
+ '--version-label',
76
+ Date.now().toString(),
77
+ '--deploy-key',
78
+ apiKey,
79
+ processorConfig.project
80
+ ], 'Graph deploy');
81
+ await uploadFile(processorConfig, { 'api-key': apiKey });
82
+ }
83
+ const IGNORE_LIST = ['build', 'node_modules'];
84
+ async function uploadFile(options, auth, continueFrom) {
85
+ const zip = new JSZip();
86
+ fs.readdirSync('.').forEach((item) => {
87
+ if (item.startsWith('.') || item.includes('lock') || IGNORE_LIST.includes(item)) {
88
+ return;
89
+ }
90
+ if (fs.lstatSync(item).isDirectory()) {
91
+ fs.readdirSync(item, { recursive: true }).forEach((p) => {
92
+ const filepath = path.join(item, p);
93
+ if (fs.lstatSync(filepath).isDirectory()) {
94
+ return;
95
+ }
96
+ zip.file(`${item}/${p}`, fs.readFileSync(filepath));
97
+ });
98
+ }
99
+ else {
100
+ zip.file(item, fs.readFileSync(item));
101
+ }
102
+ });
103
+ const sdkVersion = getSdkVersion();
104
+ const sequence = 2;
105
+ const initUploadResRaw = await initUpload(options.host, auth, options.project, sdkVersion, sequence);
106
+ const initUploadRes = (await initUploadResRaw.json());
107
+ const uploadUrl = initUploadRes.url;
108
+ const uploadResRaw = await fetch(uploadUrl, {
109
+ method: 'PUT',
110
+ headers: {
111
+ 'Content-Type': 'application/octet-stream'
112
+ },
113
+ body: zip.generateNodeStream()
114
+ });
115
+ if (!uploadResRaw.ok) {
116
+ console.error(chalk.red('Failed to upload'));
117
+ throw uploadResRaw.text();
118
+ }
119
+ const sha256 = '';
120
+ const { commitSha, gitUrl } = getGitAttributes();
121
+ // finish uploading
122
+ const finishUploadResRaw = await finishUpload(options.host, auth, options.project, sdkVersion, sha256, commitSha, gitUrl, options.debug, continueFrom, sequence);
123
+ if (!finishUploadResRaw.ok) {
124
+ console.error(chalk.red('Failed to finish uploading'));
125
+ console.error(chalk.red(await finishUploadResRaw.text()));
126
+ return;
127
+ }
128
+ console.log(chalk.green('Upload success: '));
129
+ if (commitSha) {
130
+ console.log('\t', chalk.blue('Git commit SHA:'), commitSha);
131
+ }
132
+ const { projectFullSlug, processorId, version } = (await finishUploadResRaw.json());
133
+ console.log('\t', chalk.blue('Check status:'), `${options.host}/${projectFullSlug}/datasource/${processorId}`);
134
+ console.log('\t', chalk.blue('Version:'), version);
135
+ }
136
+ //# sourceMappingURL=run-graph.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-graph.js","sourceRoot":"","sources":["../../src/commands/run-graph.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function runLogin(argv: string[]): void;
2
+ //# sourceMappingURL=run-login.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-login.d.ts","sourceRoot":"","sources":["../../src/commands/run-login.ts"],"names":[],"mappings":"AAaA,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,QAgFtC"}