@cartesi/cli 1.5.0 → 2.0.0-alpha.1

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 (62) hide show
  1. package/dist/baseCommand.d.ts +2 -0
  2. package/dist/baseCommand.d.ts.map +1 -1
  3. package/dist/baseCommand.js +10 -5
  4. package/dist/builder/directory.d.ts +3 -0
  5. package/dist/builder/directory.d.ts.map +1 -0
  6. package/dist/builder/directory.js +37 -0
  7. package/dist/builder/docker.d.ts +10 -0
  8. package/dist/builder/docker.d.ts.map +1 -0
  9. package/dist/builder/docker.js +112 -0
  10. package/dist/builder/empty.d.ts +3 -0
  11. package/dist/builder/empty.d.ts.map +1 -0
  12. package/dist/builder/empty.js +21 -0
  13. package/dist/builder/index.d.ts +6 -0
  14. package/dist/builder/index.d.ts.map +1 -0
  15. package/dist/builder/index.js +5 -0
  16. package/dist/builder/none.d.ts +3 -0
  17. package/dist/builder/none.d.ts.map +1 -0
  18. package/dist/builder/none.js +11 -0
  19. package/dist/builder/tar.d.ts +3 -0
  20. package/dist/builder/tar.d.ts.map +1 -0
  21. package/dist/builder/tar.js +30 -0
  22. package/dist/commands/build.d.ts +3 -15
  23. package/dist/commands/build.d.ts.map +1 -1
  24. package/dist/commands/build.js +53 -194
  25. package/dist/commands/shell.d.ts +2 -1
  26. package/dist/commands/shell.d.ts.map +1 -1
  27. package/dist/commands/shell.js +41 -41
  28. package/dist/config.d.ts +103 -0
  29. package/dist/config.d.ts.map +1 -0
  30. package/dist/config.js +378 -0
  31. package/dist/contracts.d.ts +492 -1038
  32. package/dist/contracts.d.ts.map +1 -1
  33. package/dist/contracts.js +223 -498
  34. package/dist/exec/cartesi-machine.d.ts +9 -0
  35. package/dist/exec/cartesi-machine.d.ts.map +1 -0
  36. package/dist/exec/cartesi-machine.js +20 -0
  37. package/dist/exec/crane.d.ts +15 -0
  38. package/dist/exec/crane.d.ts.map +1 -0
  39. package/dist/exec/crane.js +17 -0
  40. package/dist/exec/genext2fs.d.ts +28 -0
  41. package/dist/exec/genext2fs.d.ts.map +1 -0
  42. package/dist/exec/genext2fs.js +44 -0
  43. package/dist/exec/index.d.ts +5 -0
  44. package/dist/exec/index.d.ts.map +1 -0
  45. package/dist/exec/index.js +4 -0
  46. package/dist/exec/mksquashfs.d.ts +21 -0
  47. package/dist/exec/mksquashfs.d.ts.map +1 -0
  48. package/dist/exec/mksquashfs.js +45 -0
  49. package/dist/exec/util.d.ts +36 -0
  50. package/dist/exec/util.d.ts.map +1 -0
  51. package/dist/exec/util.js +78 -0
  52. package/dist/machine.d.ts +6 -0
  53. package/dist/machine.d.ts.map +1 -0
  54. package/dist/machine.js +80 -0
  55. package/dist/node/docker-compose-anvil.yaml +4 -3
  56. package/dist/node/docker-compose-bundler.yaml +1 -1
  57. package/dist/node/docker-compose-paymaster.yaml +1 -1
  58. package/oclif.manifest.json +32 -95
  59. package/package.json +7 -7
  60. package/dist/commands/send/dapp-address.d.ts +0 -9
  61. package/dist/commands/send/dapp-address.d.ts.map +0 -1
  62. package/dist/commands/send/dapp-address.js +0 -20
@@ -1,5 +1,6 @@
1
1
  import { Command, Interfaces } from "@oclif/core";
2
2
  import { Address, Hash } from "viem";
3
+ import { Config } from "./config.js";
3
4
  export type Flags<T extends typeof Command> = Interfaces.InferredFlags<(typeof BaseCommand)["baseFlags"] & T["flags"]>;
4
5
  export type Args<T extends typeof Command> = Interfaces.InferredArgs<T["args"]>;
5
6
  export type AddressBook = Record<string, Address>;
@@ -8,6 +9,7 @@ export declare abstract class BaseCommand<T extends typeof Command> extends Comm
8
9
  protected args: Args<T>;
9
10
  protected getServiceState(projectName: string, serviceName: string): Promise<string | undefined>;
10
11
  protected getContextPath(...paths: string[]): string;
12
+ protected getApplicationConfig(configPath: string): Config;
11
13
  protected getMachineHash(): Hash | undefined;
12
14
  protected logPrompt({ title, value }: {
13
15
  title: string;
@@ -1 +1 @@
1
- {"version":3,"file":"baseCommand.d.ts","sourceRoot":"","sources":["../src/baseCommand.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAKlD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAsB,MAAM,MAAM,CAAC;AAmBzD,MAAM,MAAM,KAAK,CAAC,CAAC,SAAS,OAAO,OAAO,IAAI,UAAU,CAAC,aAAa,CAClE,CAAC,OAAO,WAAW,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CACjD,CAAC;AACF,MAAM,MAAM,IAAI,CAAC,CAAC,SAAS,OAAO,OAAO,IAAI,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAChF,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAElD,8BAAsB,WAAW,CAAC,CAAC,SAAS,OAAO,OAAO,CAAE,SAAQ,OAAO;IACvE,SAAS,CAAC,KAAK,EAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAC3B,SAAS,CAAC,IAAI,EAAG,IAAI,CAAC,CAAC,CAAC,CAAC;cAET,eAAe,CAC3B,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,GACpB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAe9B,SAAS,CAAC,cAAc,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM;IAIpD,SAAS,CAAC,cAAc,IAAI,IAAI,GAAG,SAAS;IAY5C,SAAS,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE;cAItD,qBAAqB,IAAI,OAAO,CAAC,OAAO,CAAC;cAKzC,cAAc,IAAI,OAAO,CAAC,WAAW,CAAC;IAkCzC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAYrC"}
1
+ {"version":3,"file":"baseCommand.d.ts","sourceRoot":"","sources":["../src/baseCommand.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAKlD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAsB,MAAM,MAAM,CAAC;AAEzD,OAAO,EAAE,MAAM,EAAS,MAAM,aAAa,CAAC;AAiB5C,MAAM,MAAM,KAAK,CAAC,CAAC,SAAS,OAAO,OAAO,IAAI,UAAU,CAAC,aAAa,CAClE,CAAC,OAAO,WAAW,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CACjD,CAAC;AACF,MAAM,MAAM,IAAI,CAAC,CAAC,SAAS,OAAO,OAAO,IAAI,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAChF,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAElD,8BAAsB,WAAW,CAAC,CAAC,SAAS,OAAO,OAAO,CAAE,SAAQ,OAAO;IACvE,SAAS,CAAC,KAAK,EAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAC3B,SAAS,CAAC,IAAI,EAAG,IAAI,CAAC,CAAC,CAAC,CAAC;cAET,eAAe,CAC3B,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,GACpB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAe9B,SAAS,CAAC,cAAc,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM;IAIpD,SAAS,CAAC,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAM1D,SAAS,CAAC,cAAc,IAAI,IAAI,GAAG,SAAS;IAY5C,SAAS,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE;cAItD,qBAAqB,IAAI,OAAO,CAAC,OAAO,CAAC;cAKzC,cAAc,IAAI,OAAO,CAAC,WAAW,CAAC;IAiCzC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAYrC"}
@@ -4,7 +4,8 @@ import { execa } from "execa";
4
4
  import fs from "fs";
5
5
  import path from "path";
6
6
  import { getAddress, isHash } from "viem";
7
- import { authorityHistoryPairFactoryAddress, cartesiDAppFactoryAddress, dAppAddressRelayAddress, erc1155BatchPortalAddress, erc1155SinglePortalAddress, erc20PortalAddress, erc721PortalAddress, etherPortalAddress, inputBoxAddress, selfHostedApplicationFactoryAddress, testMultiTokenAddress, testNftAddress, testTokenAddress, } from "./contracts.js";
7
+ import { parse } from "./config.js";
8
+ import { applicationFactoryAddress, authorityFactoryAddress, erc1155BatchPortalAddress, erc1155SinglePortalAddress, erc20PortalAddress, erc721PortalAddress, etherPortalAddress, inputBoxAddress, selfHostedApplicationFactoryAddress, testMultiTokenAddress, testNftAddress, testTokenAddress, } from "./contracts.js";
8
9
  export class BaseCommand extends Command {
9
10
  async getServiceState(projectName, serviceName) {
10
11
  // get service information
@@ -23,6 +24,11 @@ export class BaseCommand extends Command {
23
24
  getContextPath(...paths) {
24
25
  return path.join(".cartesi", ...paths);
25
26
  }
27
+ getApplicationConfig(configPath) {
28
+ return fs.existsSync(configPath)
29
+ ? parse(fs.readFileSync(configPath).toString())
30
+ : parse("");
31
+ }
26
32
  getMachineHash() {
27
33
  // read hash of the cartesi machine snapshot, if one exists
28
34
  const hashPath = this.getContextPath("image", "hash");
@@ -45,10 +51,9 @@ export class BaseCommand extends Command {
45
51
  const applicationAddress = await this.getApplicationAddress();
46
52
  // build rollups contracts address book
47
53
  const contracts = {
48
- AuthorityHistoryPairFactory: authorityHistoryPairFactoryAddress,
49
- CartesiDApp: applicationAddress,
50
- CartesiDAppFactory: cartesiDAppFactoryAddress,
51
- DAppAddressRelay: dAppAddressRelayAddress,
54
+ Application: applicationAddress,
55
+ ApplicationFactory: applicationFactoryAddress,
56
+ AuthorityFactory: authorityFactoryAddress,
52
57
  EntryPointV06: "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789",
53
58
  EntryPointV07: "0x0000000071727De22E5E9d8BAf0edAc6f37da032",
54
59
  ERC1155BatchPortal: erc1155BatchPortalAddress,
@@ -0,0 +1,3 @@
1
+ import { DirectoryDriveConfig } from "../config.js";
2
+ export declare const build: (name: string, drive: DirectoryDriveConfig, sdkImage: string, destination: string) => Promise<void>;
3
+ //# sourceMappingURL=directory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"directory.d.ts","sourceRoot":"","sources":["../../src/builder/directory.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAGpD,eAAO,MAAM,KAAK,SACR,MAAM,SACL,oBAAoB,YACjB,MAAM,eACH,MAAM,KACpB,OAAO,CAAC,IAAI,CAkCd,CAAC"}
@@ -0,0 +1,37 @@
1
+ import fs from "fs-extra";
2
+ import path from "path";
3
+ import { genext2fs, mksquashfs } from "../exec/index.js";
4
+ export const build = async (name, drive, sdkImage, destination) => {
5
+ const filename = `${name}.${drive.format}`;
6
+ // copy directory to destination
7
+ const dest = path.join(destination, name);
8
+ await fs.mkdirp(dest);
9
+ await fs.copy(drive.directory, dest);
10
+ try {
11
+ switch (drive.format) {
12
+ case "ext2": {
13
+ await genext2fs.fromDirectory({
14
+ extraSize: drive.extraSize,
15
+ input: name,
16
+ output: filename,
17
+ cwd: destination,
18
+ image: sdkImage,
19
+ });
20
+ break;
21
+ }
22
+ case "sqfs": {
23
+ await mksquashfs.fromDirectory({
24
+ input: name,
25
+ output: filename,
26
+ cwd: destination,
27
+ image: sdkImage,
28
+ });
29
+ break;
30
+ }
31
+ }
32
+ }
33
+ finally {
34
+ // delete copied
35
+ await fs.remove(dest);
36
+ }
37
+ };
@@ -0,0 +1,10 @@
1
+ import { DockerDriveConfig } from "../config.js";
2
+ type ImageInfo = {
3
+ cmd: string[];
4
+ entrypoint: string[];
5
+ env: string[];
6
+ workdir: string;
7
+ };
8
+ export declare const build: (name: string, drive: DockerDriveConfig, sdkImage: string, destination: string) => Promise<ImageInfo | undefined>;
9
+ export {};
10
+ //# sourceMappingURL=docker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docker.d.ts","sourceRoot":"","sources":["../../src/builder/docker.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAQjD,KAAK,SAAS,GAAG;IACb,GAAG,EAAE,MAAM,EAAE,CAAC;IACd,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,GAAG,EAAE,MAAM,EAAE,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACnB,CAAC;AA+DF,eAAO,MAAM,KAAK,SACR,MAAM,SACL,iBAAiB,YACd,MAAM,eACH,MAAM,KACpB,OAAO,CAAC,SAAS,GAAG,SAAS,CA4D/B,CAAC"}
@@ -0,0 +1,112 @@
1
+ import { execa } from "execa";
2
+ import fs from "fs-extra";
3
+ import path from "path";
4
+ import tmp from "tmp";
5
+ import { crane, genext2fs, mksquashfs } from "../exec/index.js";
6
+ /**
7
+ * Build Docker image (linux/riscv64). Returns image id.
8
+ */
9
+ const buildImage = async (options) => {
10
+ const { context, dockerfile, tags, target } = options;
11
+ const buildResult = tmp.tmpNameSync();
12
+ const args = [
13
+ "buildx",
14
+ "build",
15
+ "--platform",
16
+ "linux/riscv64",
17
+ "--file",
18
+ dockerfile,
19
+ "--load",
20
+ "--iidfile",
21
+ buildResult,
22
+ context,
23
+ ];
24
+ // set tags for the image built
25
+ args.push(...tags.map((tag) => ["--tag", tag]).flat());
26
+ if (target) {
27
+ args.push("--target", target);
28
+ }
29
+ await execa("docker", args, { stdio: "inherit" });
30
+ return fs.readFileSync(buildResult, "utf8");
31
+ };
32
+ /**
33
+ * Query the image using docker image inspect
34
+ * @param image image id or name
35
+ * @returns Information about the image
36
+ */
37
+ const getImageInfo = async (image) => {
38
+ const { stdout: jsonStr } = await execa("docker", [
39
+ "image",
40
+ "inspect",
41
+ image,
42
+ ]);
43
+ // parse image info from docker inspect output
44
+ const [imageInfo] = JSON.parse(jsonStr);
45
+ // validate image architecture (must be riscv64)
46
+ if (imageInfo["Architecture"] !== "riscv64") {
47
+ throw new Error(`Invalid image Architecture: ${imageInfo["Architecture"]}. Expected riscv64`);
48
+ }
49
+ const info = {
50
+ cmd: imageInfo["Config"]["Cmd"] ?? [],
51
+ entrypoint: imageInfo["Config"]["Entrypoint"] ?? [],
52
+ env: imageInfo["Config"]["Env"] || [],
53
+ workdir: imageInfo["Config"]["WorkingDir"],
54
+ };
55
+ return info;
56
+ };
57
+ export const build = async (name, drive, sdkImage, destination) => {
58
+ const { format } = drive;
59
+ const ocitar = `${name}.oci.tar`;
60
+ const tar = `${name}.tar`;
61
+ const filename = `${name}.${format}`;
62
+ // use pre-existing image or build docker image
63
+ let image;
64
+ if (drive.image) {
65
+ image = drive.image;
66
+ await execa("docker", ["image", "pull", image]);
67
+ }
68
+ else {
69
+ image = await buildImage(drive);
70
+ }
71
+ // get image info
72
+ const imageInfo = await getImageInfo(image);
73
+ try {
74
+ // create OCI Docker tarball from Docker image
75
+ await execa("docker", ["image", "save", image, "-o", ocitar], {
76
+ cwd: destination,
77
+ });
78
+ // create rootfs tar from OCI tar
79
+ await crane.exportImage({
80
+ stdin: fs.openSync(path.join(destination, ocitar), "r"),
81
+ stdout: fs.openSync(path.join(destination, tar), "w"),
82
+ image: sdkImage,
83
+ });
84
+ switch (format) {
85
+ case "ext2": {
86
+ await genext2fs.fromTar({
87
+ extraSize: drive.extraSize,
88
+ input: tar,
89
+ output: filename,
90
+ cwd: destination,
91
+ image: sdkImage,
92
+ });
93
+ break;
94
+ }
95
+ case "sqfs": {
96
+ await mksquashfs.fromTar({
97
+ input: path.join(destination, tar),
98
+ output: filename,
99
+ cwd: destination,
100
+ image: sdkImage,
101
+ });
102
+ break;
103
+ }
104
+ }
105
+ }
106
+ finally {
107
+ // delete intermediate files
108
+ await fs.remove(path.join(destination, ocitar));
109
+ await fs.remove(path.join(destination, tar));
110
+ }
111
+ return imageInfo;
112
+ };
@@ -0,0 +1,3 @@
1
+ import { EmptyDriveConfig } from "../config.js";
2
+ export declare const build: (name: string, drive: EmptyDriveConfig, sdkImage: string, destination: string) => Promise<void>;
3
+ //# sourceMappingURL=empty.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"empty.d.ts","sourceRoot":"","sources":["../../src/builder/empty.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAGhD,eAAO,MAAM,KAAK,SACR,MAAM,SACL,gBAAgB,YACb,MAAM,eACH,MAAM,KACpB,OAAO,CAAC,IAAI,CAoBd,CAAC"}
@@ -0,0 +1,21 @@
1
+ import fs from "fs-extra";
2
+ import path from "path";
3
+ import { genext2fs } from "../exec/index.js";
4
+ export const build = async (name, drive, sdkImage, destination) => {
5
+ const filename = `${name}.${drive.format}`;
6
+ switch (drive.format) {
7
+ case "ext2": {
8
+ await genext2fs.empty({
9
+ output: filename,
10
+ size: drive.size,
11
+ cwd: destination,
12
+ image: sdkImage,
13
+ });
14
+ break;
15
+ }
16
+ case "raw": {
17
+ await fs.writeFile(path.join(destination, filename), Buffer.alloc(drive.size));
18
+ break;
19
+ }
20
+ }
21
+ };
@@ -0,0 +1,6 @@
1
+ export { build as buildDirectory } from "./directory.js";
2
+ export { build as buildDocker } from "./docker.js";
3
+ export { build as buildEmpty } from "./empty.js";
4
+ export { build as buildNone } from "./none.js";
5
+ export { build as buildTar } from "./tar.js";
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/builder/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,IAAI,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,KAAK,IAAI,WAAW,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,KAAK,IAAI,UAAU,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,KAAK,IAAI,QAAQ,EAAE,MAAM,UAAU,CAAC"}
@@ -0,0 +1,5 @@
1
+ export { build as buildDirectory } from "./directory.js";
2
+ export { build as buildDocker } from "./docker.js";
3
+ export { build as buildEmpty } from "./empty.js";
4
+ export { build as buildNone } from "./none.js";
5
+ export { build as buildTar } from "./tar.js";
@@ -0,0 +1,3 @@
1
+ import { ExistingDriveConfig } from "../config.js";
2
+ export declare const build: (name: string, drive: ExistingDriveConfig, destination: string) => Promise<void>;
3
+ //# sourceMappingURL=none.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"none.d.ts","sourceRoot":"","sources":["../../src/builder/none.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAkB,MAAM,cAAc,CAAC;AAEnE,eAAO,MAAM,KAAK,SACR,MAAM,SACL,mBAAmB,eACb,MAAM,KACpB,OAAO,CAAC,IAAI,CAQd,CAAC"}
@@ -0,0 +1,11 @@
1
+ import fs from "fs-extra";
2
+ import path from "path";
3
+ import { getDriveFormat } from "../config.js";
4
+ export const build = async (name, drive, destination) => {
5
+ // no need to build, drive already exists
6
+ const src = drive.filename;
7
+ const format = getDriveFormat(src);
8
+ const filename = path.join(destination, `${name}.${format}`);
9
+ // just copy it
10
+ await fs.copyFile(src, filename);
11
+ };
@@ -0,0 +1,3 @@
1
+ import { TarDriveConfig } from "../config.js";
2
+ export declare const build: (name: string, drive: TarDriveConfig, sdkImage: string, destination: string) => Promise<void>;
3
+ //# sourceMappingURL=tar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tar.d.ts","sourceRoot":"","sources":["../../src/builder/tar.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAG9C,eAAO,MAAM,KAAK,SACR,MAAM,SACL,cAAc,YACX,MAAM,eACH,MAAM,KACpB,OAAO,CAAC,IAAI,CA4Bd,CAAC"}
@@ -0,0 +1,30 @@
1
+ import fs from "fs-extra";
2
+ import path from "path";
3
+ import { genext2fs, mksquashfs } from "../exec/index.js";
4
+ export const build = async (name, drive, sdkImage, destination) => {
5
+ const tar = `${name}.tar`;
6
+ const filename = `${name}.${drive.format}`;
7
+ // copy input tar to destination directory (with drive name)
8
+ await fs.copy(drive.filename, path.join(destination, tar));
9
+ switch (drive.format) {
10
+ case "ext2": {
11
+ await genext2fs.fromTar({
12
+ extraSize: drive.extraSize,
13
+ input: tar,
14
+ output: filename,
15
+ cwd: destination,
16
+ image: sdkImage,
17
+ });
18
+ break;
19
+ }
20
+ case "sqfs": {
21
+ await mksquashfs.fromTar({
22
+ input: path.join(destination, tar),
23
+ output: filename,
24
+ cwd: destination,
25
+ image: sdkImage,
26
+ });
27
+ break;
28
+ }
29
+ }
30
+ };
@@ -1,24 +1,12 @@
1
1
  import { BaseCommand } from "../baseCommand.js";
2
- export default class BuildApplication extends BaseCommand<typeof BuildApplication> {
2
+ export default class Build extends BaseCommand<typeof Build> {
3
3
  static summary: string;
4
4
  static description: string;
5
5
  static examples: string[];
6
- static args: {};
7
6
  static flags: {
8
- "from-image": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
9
- target: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
7
+ config: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
8
+ "drives-only": import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
10
9
  };
11
- /**
12
- * Build DApp image (linux/riscv64). Returns image id.
13
- * @param directory path of context containing Dockerfile
14
- */
15
- private buildImage;
16
- private getImageInfo;
17
- private createTarball;
18
- private sdkRun;
19
- private static createRootfsTarCommand;
20
- private static createExt2Command;
21
- private static createMachineSnapshotCommand;
22
10
  run(): Promise<void>;
23
11
  }
24
12
  //# sourceMappingURL=build.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AA2BhD,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,WAAW,CACrD,OAAO,gBAAgB,CAC1B;IACG,MAAM,CAAC,OAAO,SAAwB;IAEtC,MAAM,CAAC,WAAW,SAC8V;IAEhX,MAAM,CAAC,QAAQ,WAGb;IAEF,MAAM,CAAC,IAAI,KAAM;IAEjB,MAAM,CAAC,KAAK;;;MAWV;IAEF;;;OAGG;YACW,UAAU;YAcV,YAAY;YAsEZ,aAAa;YAUb,MAAM;IA+BpB,OAAO,CAAC,MAAM,CAAC,sBAAsB;IAoBrC,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAkBhC,OAAO,CAAC,MAAM,CAAC,4BAA4B;IAwB9B,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA0DpC"}
1
+ {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAoChD,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,WAAW,CAAC,OAAO,KAAK,CAAC;IACxD,MAAM,CAAC,OAAO,SAAwB;IAEtC,MAAM,CAAC,WAAW,SAC+E;IAEjG,MAAM,CAAC,QAAQ,WAA2C;IAE1D,MAAM,CAAC,KAAK;;;MAUV;IAEW,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA2CpC"}