ic-mops 0.34.4 → 0.36.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/cli.ts +11 -45
- package/commands/add.ts +7 -5
- package/commands/bench-replica.ts +99 -0
- package/commands/bench.ts +57 -90
- package/commands/install-all.ts +4 -4
- package/commands/remove.ts +4 -4
- package/commands/sync.ts +5 -5
- package/commands/update.ts +3 -3
- package/declarations/main/main.did +67 -78
- package/declarations/main/main.did.d.ts +72 -83
- package/declarations/main/main.did.js +12 -23
- package/dist/bin/mops.d.ts +2 -0
- package/dist/bin/mops.js +2 -0
- package/dist/cli.js +11 -44
- package/dist/commands/add.d.ts +2 -2
- package/dist/commands/add.js +6 -3
- package/dist/commands/bench-replica.d.ts +32 -0
- package/dist/commands/bench-replica.js +87 -0
- package/dist/commands/bench.d.ts +9 -8
- package/dist/commands/bench.js +44 -76
- package/dist/commands/install-all.d.ts +2 -2
- package/dist/commands/install-all.js +3 -3
- package/dist/commands/remove.d.ts +2 -2
- package/dist/commands/remove.js +3 -2
- package/dist/commands/sync.d.ts +2 -2
- package/dist/commands/sync.js +4 -4
- package/dist/commands/toolchain/moc.d.ts +4 -0
- package/dist/commands/toolchain/moc.js +36 -0
- package/dist/commands/toolchain/mocv.d.ts +1 -0
- package/dist/commands/toolchain/mocv.js +272 -0
- package/dist/commands/toolchain/toolchain-utils.d.ts +3 -0
- package/dist/commands/toolchain/toolchain-utils.js +56 -0
- package/dist/commands/toolchain/wasmtime.d.ts +4 -0
- package/dist/commands/toolchain/wasmtime.js +23 -0
- package/dist/commands/update.d.ts +2 -2
- package/dist/commands/update.js +2 -2
- package/dist/declarations/main/main.did +67 -78
- package/dist/declarations/main/main.did.d.ts +72 -83
- package/dist/declarations/main/main.did.js +12 -23
- package/dist/integrity.d.ts +2 -2
- package/dist/integrity.js +4 -4
- package/dist/moc-wrapper.d.ts +2 -0
- package/dist/moc-wrapper.js +8 -0
- package/dist/out/cli.d.ts +2 -0
- package/dist/out/cli.js +115242 -0
- package/dist/package.json +12 -4
- package/dist/templates/cli.d.ts +2 -0
- package/dist/templates/cli.js +3660 -0
- package/integrity.ts +5 -5
- package/package.json +12 -4
- package/dist/helpers/download-package-files.d.ts +0 -12
- package/dist/helpers/download-package-files.js +0 -62
- package/dist/helpers/resolve-version.d.ts +0 -1
- package/dist/helpers/resolve-version.js +0 -11
|
@@ -0,0 +1,272 @@
|
|
|
1
|
+
// @ts-nocheck
|
|
2
|
+
import fs from 'fs-extra';
|
|
3
|
+
import os from 'os';
|
|
4
|
+
import path from 'path';
|
|
5
|
+
import tar from 'tar';
|
|
6
|
+
import { program } from 'commander';
|
|
7
|
+
import prompts from 'prompts';
|
|
8
|
+
import { Octokit } from 'octokit';
|
|
9
|
+
import chalk from 'chalk';
|
|
10
|
+
import fetch from 'node-fetch';
|
|
11
|
+
if (process.platform == 'win32') {
|
|
12
|
+
console.log('Windows is not supported. Please use WSL');
|
|
13
|
+
process.exit(1);
|
|
14
|
+
}
|
|
15
|
+
let zshrc = path.join(os.homedir(), '.zshrc');
|
|
16
|
+
let bashrc = path.join(os.homedir(), '.bashrc');
|
|
17
|
+
let cacheDir = path.join(os.homedir(), '.cache/mocv');
|
|
18
|
+
let curVersionFile = path.join(cacheDir, 'versions/current/version.txt');
|
|
19
|
+
let tmpDir = path.join(cacheDir, '.tmp');
|
|
20
|
+
let file = path.join(tmpDir, 'moc.tar.gz');
|
|
21
|
+
let download = async (version, { silent = false } = {}) => {
|
|
22
|
+
if (!version) {
|
|
23
|
+
console.log('version is not defined');
|
|
24
|
+
process.exit(1);
|
|
25
|
+
}
|
|
26
|
+
if (isCached(version)) {
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
let url;
|
|
30
|
+
if (parseInt(version.replaceAll('.', '')) >= parseInt('0.9.5'.replaceAll('.', ''))) {
|
|
31
|
+
let platfrom = process.platform == 'darwin' ? 'Darwin' : 'Linux';
|
|
32
|
+
let arch = process.arch.startsWith('arm') ? 'arm64' : 'x86_64';
|
|
33
|
+
// currently only x64 binaries are available
|
|
34
|
+
arch = 'x86_64';
|
|
35
|
+
url = `https://github.com/dfinity/motoko/releases/download/${version}/motoko-${platfrom}-${arch}-${version}.tar.gz`;
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
let platfrom = process.platform == 'darwin' ? 'macos' : 'linux64';
|
|
39
|
+
url = `https://github.com/dfinity/motoko/releases/download/${version}/motoko-${platfrom}-${version}.tar.gz`;
|
|
40
|
+
}
|
|
41
|
+
silent || console.log(`Downloading ${url}`);
|
|
42
|
+
let res = await fetch(url);
|
|
43
|
+
if (res.status !== 200) {
|
|
44
|
+
console.log(`ERR ${res.status} ${url}`);
|
|
45
|
+
console.log(`moc version '${version}' not found`);
|
|
46
|
+
process.exit(1);
|
|
47
|
+
}
|
|
48
|
+
let arrayBuffer = await res.arrayBuffer();
|
|
49
|
+
let buffer = Buffer.from(arrayBuffer);
|
|
50
|
+
fs.mkdirSync(tmpDir, { recursive: true });
|
|
51
|
+
fs.writeFileSync(file, buffer);
|
|
52
|
+
let verDir = path.join(cacheDir, 'versions', version);
|
|
53
|
+
fs.mkdirSync(verDir, { recursive: true });
|
|
54
|
+
await tar.extract({
|
|
55
|
+
file,
|
|
56
|
+
cwd: verDir,
|
|
57
|
+
});
|
|
58
|
+
fs.rmSync(file);
|
|
59
|
+
};
|
|
60
|
+
let isCached = (version) => {
|
|
61
|
+
let dir = path.join(cacheDir, 'versions', version);
|
|
62
|
+
return fs.existsSync(path.join(dir, 'moc'))
|
|
63
|
+
&& fs.existsSync(path.join(dir, 'mo-doc'))
|
|
64
|
+
&& fs.existsSync(path.join(dir, 'mo-ide'));
|
|
65
|
+
};
|
|
66
|
+
let setCurrent = (version) => {
|
|
67
|
+
fs.copySync(path.join(cacheDir, 'versions', version), path.join(cacheDir, 'versions/current'), { recursive: true });
|
|
68
|
+
fs.writeFileSync(curVersionFile, version);
|
|
69
|
+
};
|
|
70
|
+
let getCurrent = () => {
|
|
71
|
+
if (fs.existsSync(curVersionFile)) {
|
|
72
|
+
return fs.readFileSync(curVersionFile).toString();
|
|
73
|
+
}
|
|
74
|
+
};
|
|
75
|
+
let getLatest = async () => {
|
|
76
|
+
let releases = await getReleases();
|
|
77
|
+
return releases[0].tag_name;
|
|
78
|
+
};
|
|
79
|
+
let getReleases = async () => {
|
|
80
|
+
let octokit = new Octokit;
|
|
81
|
+
let res = await octokit.request('GET /repos/dfinity/motoko/releases', {
|
|
82
|
+
per_page: 10,
|
|
83
|
+
headers: {
|
|
84
|
+
'X-GitHub-Api-Version': '2022-11-28'
|
|
85
|
+
}
|
|
86
|
+
});
|
|
87
|
+
if (res.status !== 200) {
|
|
88
|
+
console.log('Releases fetch error');
|
|
89
|
+
process.exit(1);
|
|
90
|
+
}
|
|
91
|
+
return res.data;
|
|
92
|
+
};
|
|
93
|
+
let use = async (version) => {
|
|
94
|
+
if (version === 'latest') {
|
|
95
|
+
version = await getLatest();
|
|
96
|
+
}
|
|
97
|
+
await download(version);
|
|
98
|
+
setCurrent(version);
|
|
99
|
+
console.log(`Selected moc ${version}`);
|
|
100
|
+
// update github env
|
|
101
|
+
if (process.env.GITHUB_ENV) {
|
|
102
|
+
fs.appendFileSync(process.env.GITHUB_ENV, `DFX_MOC_PATH=${path.join(cacheDir, 'versions', version)}/moc\n`);
|
|
103
|
+
}
|
|
104
|
+
};
|
|
105
|
+
program.name('mocv')
|
|
106
|
+
.action(async (_, config) => {
|
|
107
|
+
if (config.args.length) {
|
|
108
|
+
console.log(`unknown command '${config.args.join(' ')}'`);
|
|
109
|
+
process.exit(1);
|
|
110
|
+
}
|
|
111
|
+
let releases = await getReleases();
|
|
112
|
+
let versions = releases.map((item) => item.tag_name);
|
|
113
|
+
let current = getCurrent();
|
|
114
|
+
let currentIndex = versions.indexOf(current);
|
|
115
|
+
let res = await prompts({
|
|
116
|
+
type: 'select',
|
|
117
|
+
name: 'version',
|
|
118
|
+
message: 'Select moc version',
|
|
119
|
+
choices: releases.map((release, i) => {
|
|
120
|
+
let date = new Date(release.published_at).toLocaleDateString(undefined, { year: 'numeric', month: 'short', day: 'numeric' });
|
|
121
|
+
return {
|
|
122
|
+
title: release.tag_name + chalk.gray(` ${date}${currentIndex === i ? chalk.italic(' (current)') : ''}`),
|
|
123
|
+
value: release.tag_name,
|
|
124
|
+
};
|
|
125
|
+
}),
|
|
126
|
+
initial: currentIndex == -1 ? 0 : currentIndex,
|
|
127
|
+
});
|
|
128
|
+
if (!res.version) {
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
131
|
+
await use(res.version);
|
|
132
|
+
});
|
|
133
|
+
let updateShellConfig = async ({ reset = false, yes = false } = {}) => {
|
|
134
|
+
let setDfxMocPath = reset || yes;
|
|
135
|
+
let updatePath = reset || yes;
|
|
136
|
+
if (!setDfxMocPath) {
|
|
137
|
+
let res = await prompts({
|
|
138
|
+
type: 'select',
|
|
139
|
+
name: 'setDfxMocPath',
|
|
140
|
+
message: 'Do you want to set DFX_MOC_PATH, so `dfx` will use the current `moc` version?',
|
|
141
|
+
choices: [
|
|
142
|
+
{
|
|
143
|
+
title: 'Yes',
|
|
144
|
+
value: true,
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
title: 'No',
|
|
148
|
+
value: false,
|
|
149
|
+
},
|
|
150
|
+
],
|
|
151
|
+
});
|
|
152
|
+
setDfxMocPath = res.setDfxMocPath;
|
|
153
|
+
}
|
|
154
|
+
if (!updatePath) {
|
|
155
|
+
let res = await prompts({
|
|
156
|
+
type: 'select',
|
|
157
|
+
name: 'updatePath',
|
|
158
|
+
message: 'Do you want to update PATH, so you can call `moc`, `mo-doc` and `mo-ide` from the terminal?',
|
|
159
|
+
choices: [
|
|
160
|
+
{
|
|
161
|
+
title: 'Yes',
|
|
162
|
+
value: true,
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
title: 'No',
|
|
166
|
+
value: false,
|
|
167
|
+
},
|
|
168
|
+
],
|
|
169
|
+
});
|
|
170
|
+
updatePath = res.updatePath;
|
|
171
|
+
}
|
|
172
|
+
if (!setDfxMocPath && !updatePath) {
|
|
173
|
+
console.log('Nothing to do');
|
|
174
|
+
return;
|
|
175
|
+
}
|
|
176
|
+
let configFiles = [];
|
|
177
|
+
if (reset || yes) {
|
|
178
|
+
configFiles = [bashrc, zshrc];
|
|
179
|
+
}
|
|
180
|
+
else {
|
|
181
|
+
let { configFile } = await prompts({
|
|
182
|
+
type: 'select',
|
|
183
|
+
name: 'configFile',
|
|
184
|
+
message: 'Select your shell config file',
|
|
185
|
+
choices: [
|
|
186
|
+
{
|
|
187
|
+
title: bashrc,
|
|
188
|
+
value: bashrc,
|
|
189
|
+
},
|
|
190
|
+
{
|
|
191
|
+
title: zshrc,
|
|
192
|
+
value: zshrc,
|
|
193
|
+
},
|
|
194
|
+
],
|
|
195
|
+
});
|
|
196
|
+
configFiles = [configFile];
|
|
197
|
+
}
|
|
198
|
+
for (let configFile of configFiles) {
|
|
199
|
+
if (!fs.existsSync(configFile)) {
|
|
200
|
+
console.log(`${configFile} not found`);
|
|
201
|
+
process.exit(1);
|
|
202
|
+
}
|
|
203
|
+
let data = fs.readFileSync(configFile).toString();
|
|
204
|
+
let setDfxLine = '\nexport DFX_MOC_PATH="$HOME/.cache/mocv/versions/current/moc"';
|
|
205
|
+
let updatePathLine = '\nPATH="$HOME/.cache/mocv/versions/current:$PATH"';
|
|
206
|
+
let newLines = [];
|
|
207
|
+
setDfxMocPath && newLines.push(setDfxLine);
|
|
208
|
+
updatePath && newLines.push(updatePathLine);
|
|
209
|
+
let oldLines = [
|
|
210
|
+
`\nexport DFX_MOC_PATH=${path.join(cacheDir, 'versions/current')}/moc\n`,
|
|
211
|
+
setDfxLine,
|
|
212
|
+
updatePathLine,
|
|
213
|
+
];
|
|
214
|
+
for (let oldLine of oldLines) {
|
|
215
|
+
data = data.replace(oldLine, '');
|
|
216
|
+
}
|
|
217
|
+
if (data.endsWith('\n\n')) {
|
|
218
|
+
data = data.trimEnd() + '\n';
|
|
219
|
+
}
|
|
220
|
+
if (!reset) {
|
|
221
|
+
if (!data.endsWith('\n')) {
|
|
222
|
+
data += '\n';
|
|
223
|
+
}
|
|
224
|
+
for (let newLine of newLines) {
|
|
225
|
+
data += newLine;
|
|
226
|
+
}
|
|
227
|
+
data += '\n';
|
|
228
|
+
}
|
|
229
|
+
fs.writeFileSync(configFile, data);
|
|
230
|
+
}
|
|
231
|
+
;
|
|
232
|
+
console.log('Success!');
|
|
233
|
+
// console.log(`Run "source ${configFile}" to apply changes`);
|
|
234
|
+
console.log('Restart terminal to apply changes');
|
|
235
|
+
};
|
|
236
|
+
program.command('init')
|
|
237
|
+
.description('mocv one time initialization')
|
|
238
|
+
.option('-y, --yes', 'Skip prompts')
|
|
239
|
+
.action(async (options) => {
|
|
240
|
+
updateShellConfig(options);
|
|
241
|
+
});
|
|
242
|
+
program.command('reset')
|
|
243
|
+
.description('Reset changes made by `mocv init`')
|
|
244
|
+
.action(async () => {
|
|
245
|
+
updateShellConfig({ reset: true });
|
|
246
|
+
});
|
|
247
|
+
program.command('use <version>')
|
|
248
|
+
.description('Set current moc version.\nExample 1: "mocv use 0.8.4"\nExample 2: "mocv use latest"')
|
|
249
|
+
.action(async (version) => {
|
|
250
|
+
await use(version);
|
|
251
|
+
});
|
|
252
|
+
program.command('current')
|
|
253
|
+
.description('Print current moc version')
|
|
254
|
+
.action(async () => {
|
|
255
|
+
console.log(getCurrent());
|
|
256
|
+
});
|
|
257
|
+
program.command('bin [version]')
|
|
258
|
+
.description('Print bin directory')
|
|
259
|
+
.action(async (version = getCurrent()) => {
|
|
260
|
+
if (version === 'latest') {
|
|
261
|
+
version = await getLatest();
|
|
262
|
+
}
|
|
263
|
+
if (!version) {
|
|
264
|
+
console.log('No version selected. Please pass a version arg or run `mocv` or `mocv use <version>`');
|
|
265
|
+
process.exit(1);
|
|
266
|
+
}
|
|
267
|
+
if (!isCached(version)) {
|
|
268
|
+
await download(version, { silent: true });
|
|
269
|
+
}
|
|
270
|
+
console.log(path.join(cacheDir, 'versions', version));
|
|
271
|
+
});
|
|
272
|
+
program.parse();
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import path from 'node:path';
|
|
2
|
+
import fs from 'fs-extra';
|
|
3
|
+
import decompress from 'decompress';
|
|
4
|
+
import decompressTarxz from 'decomp-tarxz';
|
|
5
|
+
import { deleteSync } from 'del';
|
|
6
|
+
import { Octokit } from 'octokit';
|
|
7
|
+
import tar from 'tar';
|
|
8
|
+
import { getRootDir } from '../../mops.js';
|
|
9
|
+
export let downloadGithubRelease = async (url, dest) => {
|
|
10
|
+
let res = await fetch(url);
|
|
11
|
+
if (res.status !== 200) {
|
|
12
|
+
console.error(`ERROR ${res.status} ${url}`);
|
|
13
|
+
process.exit(1);
|
|
14
|
+
}
|
|
15
|
+
let arrayBuffer = await res.arrayBuffer();
|
|
16
|
+
let buffer = Buffer.from(arrayBuffer);
|
|
17
|
+
let tmpDir = path.join(getRootDir(), '.mops', '_tmp');
|
|
18
|
+
let archive = path.join(tmpDir, path.basename(url));
|
|
19
|
+
fs.mkdirSync(tmpDir, { recursive: true });
|
|
20
|
+
fs.writeFileSync(archive, buffer);
|
|
21
|
+
fs.mkdirSync(dest, { recursive: true });
|
|
22
|
+
if (archive.endsWith('.xz')) {
|
|
23
|
+
await decompress(archive, dest, {
|
|
24
|
+
strip: 1,
|
|
25
|
+
plugins: [decompressTarxz()],
|
|
26
|
+
}).catch(() => {
|
|
27
|
+
deleteSync([tmpDir]);
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
await tar.extract({
|
|
32
|
+
file: archive,
|
|
33
|
+
cwd: dest,
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
deleteSync([tmpDir], { force: true });
|
|
37
|
+
};
|
|
38
|
+
export let getLatestReleaseTag = async (repo) => {
|
|
39
|
+
let releases = await getReleases(repo);
|
|
40
|
+
let release = releases.find((release) => !release.prerelease && !release.draft);
|
|
41
|
+
return release?.tag_name;
|
|
42
|
+
};
|
|
43
|
+
export let getReleases = async (repo) => {
|
|
44
|
+
let octokit = new Octokit;
|
|
45
|
+
let res = await octokit.request(`GET /repos/${repo}/releases`, {
|
|
46
|
+
per_page: 10,
|
|
47
|
+
headers: {
|
|
48
|
+
'X-GitHub-Api-Version': '2022-11-28'
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
if (res.status !== 200) {
|
|
52
|
+
console.log('Releases fetch error');
|
|
53
|
+
process.exit(1);
|
|
54
|
+
}
|
|
55
|
+
return res.data;
|
|
56
|
+
};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import path from 'node:path';
|
|
2
|
+
import fs from 'fs-extra';
|
|
3
|
+
import { globalCacheDir } from '../../mops.js';
|
|
4
|
+
import { downloadGithubRelease } from './toolchain-utils.js';
|
|
5
|
+
let cacheDir = path.join(globalCacheDir, 'wasmtime');
|
|
6
|
+
export let isCached = (version) => {
|
|
7
|
+
let dir = path.join(cacheDir, version);
|
|
8
|
+
return fs.existsSync(dir) && fs.existsSync(path.join(dir, 'wasmtime'));
|
|
9
|
+
};
|
|
10
|
+
export let download = async (version, { silent = false } = {}) => {
|
|
11
|
+
if (!version) {
|
|
12
|
+
console.error('version is not defined');
|
|
13
|
+
process.exit(1);
|
|
14
|
+
}
|
|
15
|
+
if (isCached(version)) {
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
let platfrom = process.platform == 'darwin' ? 'macos' : 'linux';
|
|
19
|
+
let arch = process.arch.startsWith('arm') ? 'aarch64' : 'x86_64';
|
|
20
|
+
let url = `https://github.com/bytecodealliance/wasmtime/releases/download/v${version}/wasmtime-v${version}-${arch}-${platfrom}.tar.xz`;
|
|
21
|
+
silent || console.log(`Downloading ${url}`);
|
|
22
|
+
await downloadGithubRelease(url, path.join(cacheDir, version));
|
|
23
|
+
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
type UpdateOptions = {
|
|
2
2
|
verbose?: boolean;
|
|
3
3
|
dev?: boolean;
|
|
4
|
-
|
|
4
|
+
lock?: 'update' | 'ignore';
|
|
5
5
|
};
|
|
6
|
-
export declare function update(pkg?: string, {
|
|
6
|
+
export declare function update(pkg?: string, { lock }?: UpdateOptions): Promise<void>;
|
|
7
7
|
export {};
|
package/dist/commands/update.js
CHANGED
|
@@ -3,7 +3,7 @@ import { checkConfigFile, getGithubCommit, parseGithubURL, readConfig } from '..
|
|
|
3
3
|
import { add } from './add.js';
|
|
4
4
|
import { getAvailableUpdates } from './available-updates.js';
|
|
5
5
|
import { checkIntegrity } from '../integrity.js';
|
|
6
|
-
export async function update(pkg, {
|
|
6
|
+
export async function update(pkg, { lock } = {}) {
|
|
7
7
|
if (!checkConfigFile()) {
|
|
8
8
|
return;
|
|
9
9
|
}
|
|
@@ -43,5 +43,5 @@ export async function update(pkg, { lockfile } = {}) {
|
|
|
43
43
|
await add(`${dep[0]}@${dep[2]}`, { dev });
|
|
44
44
|
}
|
|
45
45
|
}
|
|
46
|
-
await checkIntegrity(
|
|
46
|
+
await checkIntegrity(lock);
|
|
47
47
|
}
|
|
@@ -111,7 +111,7 @@ type Result_3 =
|
|
|
111
111
|
};
|
|
112
112
|
type Result_2 =
|
|
113
113
|
variant {
|
|
114
|
-
err:
|
|
114
|
+
err: Err;
|
|
115
115
|
ok: PublishingId;
|
|
116
116
|
};
|
|
117
117
|
type Result_1 =
|
|
@@ -141,7 +141,6 @@ type Request =
|
|
|
141
141
|
url: text;
|
|
142
142
|
};
|
|
143
143
|
type PublishingId = text;
|
|
144
|
-
type PublishingErr = text;
|
|
145
144
|
type PageCount = nat;
|
|
146
145
|
type PackageVersion = text;
|
|
147
146
|
type PackageSummary__1 =
|
|
@@ -272,13 +271,6 @@ type PackageConfigV2 =
|
|
|
272
271
|
scripts: vec Script;
|
|
273
272
|
version: text;
|
|
274
273
|
};
|
|
275
|
-
type PackageChanges__1 =
|
|
276
|
-
record {
|
|
277
|
-
deps: vec DepChange;
|
|
278
|
-
devDeps: vec DepChange;
|
|
279
|
-
notes: text;
|
|
280
|
-
tests: TestsChanges;
|
|
281
|
-
};
|
|
282
274
|
type PackageChanges =
|
|
283
275
|
record {
|
|
284
276
|
deps: vec DepChange;
|
|
@@ -286,6 +278,71 @@ type PackageChanges =
|
|
|
286
278
|
notes: text;
|
|
287
279
|
tests: TestsChanges;
|
|
288
280
|
};
|
|
281
|
+
type Main =
|
|
282
|
+
service {
|
|
283
|
+
backup: () -> ();
|
|
284
|
+
computeHashesForExistingFiles: () -> ();
|
|
285
|
+
finishPublish: (PublishingId) -> (Result);
|
|
286
|
+
getApiVersion: () -> (Text) query;
|
|
287
|
+
getBackupCanisterId: () -> (principal) query;
|
|
288
|
+
getDefaultPackages: (text) ->
|
|
289
|
+
(vec record {
|
|
290
|
+
PackageName;
|
|
291
|
+
PackageVersion;
|
|
292
|
+
}) query;
|
|
293
|
+
getDownloadTrendByPackageId: (PackageId) ->
|
|
294
|
+
(vec DownloadsSnapshot__1) query;
|
|
295
|
+
getDownloadTrendByPackageName: (PackageName) ->
|
|
296
|
+
(vec DownloadsSnapshot__1) query;
|
|
297
|
+
getFileHashes: (PackageName, PackageVersion) -> (Result_8);
|
|
298
|
+
getFileHashesByPackageIds: (vec PackageId) ->
|
|
299
|
+
(vec record {
|
|
300
|
+
PackageId;
|
|
301
|
+
vec record {
|
|
302
|
+
FileId;
|
|
303
|
+
blob;
|
|
304
|
+
};
|
|
305
|
+
});
|
|
306
|
+
getFileIds: (PackageName, PackageVersion) -> (Result_7) query;
|
|
307
|
+
getHighestSemverBatch:
|
|
308
|
+
(vec record {
|
|
309
|
+
PackageName;
|
|
310
|
+
PackageVersion;
|
|
311
|
+
SemverPart;
|
|
312
|
+
}) -> (Result_6) query;
|
|
313
|
+
getHighestVersion: (PackageName) -> (Result_5) query;
|
|
314
|
+
getMostDownloadedPackages: () -> (vec PackageSummary) query;
|
|
315
|
+
getMostDownloadedPackagesIn7Days: () -> (vec PackageSummary) query;
|
|
316
|
+
getNewPackages: () -> (vec PackageSummary) query;
|
|
317
|
+
getPackageDetails: (PackageName, PackageVersion) -> (Result_4) query;
|
|
318
|
+
getPackagesByCategory: () -> (vec record {
|
|
319
|
+
text;
|
|
320
|
+
vec PackageSummary;
|
|
321
|
+
}) query;
|
|
322
|
+
getRecentlyUpdatedPackages: () -> (vec PackageSummaryWithChanges) query;
|
|
323
|
+
getStoragesStats: () -> (vec record {
|
|
324
|
+
StorageId;
|
|
325
|
+
StorageStats;
|
|
326
|
+
}) query;
|
|
327
|
+
getTotalDownloads: () -> (nat) query;
|
|
328
|
+
getTotalPackages: () -> (nat) query;
|
|
329
|
+
getUser: (principal) -> (opt User__1) query;
|
|
330
|
+
http_request: (Request) -> (Response) query;
|
|
331
|
+
notifyInstall: (PackageName, PackageVersion) -> () oneway;
|
|
332
|
+
notifyInstalls: (vec record {
|
|
333
|
+
PackageName;
|
|
334
|
+
PackageVersion;
|
|
335
|
+
}) -> () oneway;
|
|
336
|
+
restore: (nat, nat) -> ();
|
|
337
|
+
search: (Text, opt nat, opt nat) -> (vec PackageSummary, PageCount) query;
|
|
338
|
+
setUserProp: (text, text) -> (Result_1);
|
|
339
|
+
startFileUpload: (PublishingId, Text, nat, blob) -> (Result_3);
|
|
340
|
+
startPublish: (PackageConfigV2) -> (Result_2);
|
|
341
|
+
transferOwnership: (PackageName, principal) -> (Result_1);
|
|
342
|
+
uploadFileChunk: (PublishingId, FileId, nat, blob) -> (Result);
|
|
343
|
+
uploadNotes: (PublishingId, text) -> (Result);
|
|
344
|
+
uploadTestStats: (PublishingId, TestStats) -> (Result);
|
|
345
|
+
};
|
|
289
346
|
type Header =
|
|
290
347
|
record {
|
|
291
348
|
text;
|
|
@@ -323,72 +380,4 @@ type DepChange =
|
|
|
323
380
|
newVersion: text;
|
|
324
381
|
oldVersion: text;
|
|
325
382
|
};
|
|
326
|
-
service :
|
|
327
|
-
backup: () -> ();
|
|
328
|
-
claimAirdrop: (principal) -> (text);
|
|
329
|
-
computeHashesForExistingFiles: () -> ();
|
|
330
|
-
diff: (text, text) -> (PackageChanges__1) query;
|
|
331
|
-
finishPublish: (PublishingId) -> (Result);
|
|
332
|
-
getAirdropAmount: () -> (nat) query;
|
|
333
|
-
getAirdropAmountAll: () -> (nat) query;
|
|
334
|
-
getApiVersion: () -> (Text) query;
|
|
335
|
-
getBackupCanisterId: () -> (principal) query;
|
|
336
|
-
getDefaultPackages: (text) ->
|
|
337
|
-
(vec record {
|
|
338
|
-
PackageName;
|
|
339
|
-
PackageVersion;
|
|
340
|
-
}) query;
|
|
341
|
-
getDownloadTrendByPackageId: (PackageId) ->
|
|
342
|
-
(vec DownloadsSnapshot__1) query;
|
|
343
|
-
getDownloadTrendByPackageName: (PackageName) ->
|
|
344
|
-
(vec DownloadsSnapshot__1) query;
|
|
345
|
-
getFileHashes: (PackageName, PackageVersion) -> (Result_8);
|
|
346
|
-
getFileHashesByPackageIds: (vec PackageId) ->
|
|
347
|
-
(vec record {
|
|
348
|
-
PackageId;
|
|
349
|
-
vec record {
|
|
350
|
-
FileId;
|
|
351
|
-
blob;
|
|
352
|
-
};
|
|
353
|
-
});
|
|
354
|
-
getFileIds: (PackageName, PackageVersion) -> (Result_7) query;
|
|
355
|
-
getHighestSemverBatch:
|
|
356
|
-
(vec record {
|
|
357
|
-
PackageName;
|
|
358
|
-
PackageVersion;
|
|
359
|
-
SemverPart;
|
|
360
|
-
}) -> (Result_6) query;
|
|
361
|
-
getHighestVersion: (PackageName) -> (Result_5) query;
|
|
362
|
-
getMostDownloadedPackages: () -> (vec PackageSummary) query;
|
|
363
|
-
getMostDownloadedPackagesIn7Days: () -> (vec PackageSummary) query;
|
|
364
|
-
getNewPackages: () -> (vec PackageSummary) query;
|
|
365
|
-
getPackageDetails: (PackageName, PackageVersion) -> (Result_4) query;
|
|
366
|
-
getPackagesByCategory: () -> (vec record {
|
|
367
|
-
text;
|
|
368
|
-
vec PackageSummary;
|
|
369
|
-
}) query;
|
|
370
|
-
getRecentlyUpdatedPackages: () -> (vec PackageSummaryWithChanges) query;
|
|
371
|
-
getStoragesStats: () -> (vec record {
|
|
372
|
-
StorageId;
|
|
373
|
-
StorageStats;
|
|
374
|
-
}) query;
|
|
375
|
-
getTotalDownloads: () -> (nat) query;
|
|
376
|
-
getTotalPackages: () -> (nat) query;
|
|
377
|
-
getUser: (principal) -> (opt User__1) query;
|
|
378
|
-
http_request: (Request) -> (Response) query;
|
|
379
|
-
notifyInstall: (PackageName, PackageVersion) -> () oneway;
|
|
380
|
-
notifyInstalls: (vec record {
|
|
381
|
-
PackageName;
|
|
382
|
-
PackageVersion;
|
|
383
|
-
}) -> () oneway;
|
|
384
|
-
restore: (nat, nat) -> ();
|
|
385
|
-
search: (Text, opt nat, opt nat) -> (vec PackageSummary, PageCount) query;
|
|
386
|
-
setUserProp: (text, text) -> (Result_1);
|
|
387
|
-
startFileUpload: (PublishingId, Text, nat, blob) -> (Result_3);
|
|
388
|
-
startPublish: (PackageConfigV2) -> (Result_2);
|
|
389
|
-
takeAirdropSnapshot: () -> () oneway;
|
|
390
|
-
transferOwnership: (PackageName, principal) -> (Result_1);
|
|
391
|
-
uploadFileChunk: (PublishingId, FileId, nat, blob) -> (Result);
|
|
392
|
-
uploadNotes: (PublishingId, text) -> (Result);
|
|
393
|
-
uploadTestStats: (PublishingId, TestStats) -> (Result);
|
|
394
|
-
}
|
|
383
|
+
service : () -> Main
|