@solana-mobile/dapp-store-cli 0.2.0 → 0.3.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/lib/esm/commands/create/app.js +2 -2
- package/lib/esm/commands/create/app.js.map +1 -1
- package/lib/esm/commands/create/publisher.js +2 -2
- package/lib/esm/commands/create/publisher.js.map +1 -1
- package/lib/esm/commands/create/release.js +2 -2
- package/lib/esm/commands/create/release.js.map +1 -1
- package/lib/esm/commands/publish/remove.js +2 -2
- package/lib/esm/commands/publish/remove.js.map +1 -1
- package/lib/esm/commands/publish/submit.js +2 -2
- package/lib/esm/commands/publish/submit.js.map +1 -1
- package/lib/esm/commands/publish/support.js +2 -2
- package/lib/esm/commands/publish/support.js.map +1 -1
- package/lib/esm/commands/publish/update.js +2 -2
- package/lib/esm/commands/publish/update.js.map +1 -1
- package/lib/esm/commands/validate.js +2 -2
- package/lib/esm/commands/validate.js.map +1 -1
- package/lib/esm/generated/config_obj.json +1 -1
- package/lib/esm/generated/config_schema.json +1 -1
- package/lib/esm/index.js +19 -8
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/package.json +2 -2
- package/lib/esm/utils.js +24 -8
- package/lib/esm/utils.js.map +1 -1
- package/lib/types/utils.d.ts +2 -2
- package/lib/types/utils.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/commands/create/app.ts +2 -2
- package/src/commands/create/publisher.ts +2 -2
- package/src/commands/create/release.ts +2 -2
- package/src/commands/publish/remove.ts +2 -2
- package/src/commands/publish/submit.ts +2 -2
- package/src/commands/publish/support.ts +2 -2
- package/src/commands/publish/update.ts +2 -2
- package/src/commands/validate.ts +2 -2
- package/src/generated/config_obj.json +1 -1
- package/src/generated/config_schema.json +1 -1
- package/src/index.ts +25 -10
- package/src/prebuild_schema/publishing_source.yaml +2 -0
- package/src/prebuild_schema/schemagen.js +7 -0
- package/src/utils.ts +29 -10
- package/src/config/schema.json +0 -195
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createApp } from "@solana-mobile/dapp-store-publishing-tools";
|
|
2
2
|
import { Connection, Keypair, PublicKey, sendAndConfirmTransaction, } from "@solana/web3.js";
|
|
3
|
-
import {
|
|
3
|
+
import { getConfigWithChecks, getMetaplexInstance, saveToConfig, } from "../../utils.js";
|
|
4
4
|
const createAppNft = async ({ appDetails, connection, publisherMintAddress, publisher, }, { dryRun }) => {
|
|
5
5
|
const mintAddress = Keypair.generate();
|
|
6
6
|
const metaplex = getMetaplexInstance(connection, publisher);
|
|
@@ -23,7 +23,7 @@ const createAppNft = async ({ appDetails, connection, publisherMintAddress, publ
|
|
|
23
23
|
};
|
|
24
24
|
export const createAppCommand = async ({ signer, url, dryRun, publisherMintAddress, }) => {
|
|
25
25
|
const connection = new Connection(url);
|
|
26
|
-
const { app: appDetails, publisher: publisherDetails } = await
|
|
26
|
+
const { app: appDetails, publisher: publisherDetails } = await getConfigWithChecks();
|
|
27
27
|
const { appAddress } = await createAppNft({
|
|
28
28
|
connection,
|
|
29
29
|
publisher: signer,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../../../src/commands/create/app.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,4CAA4C,CAAC;AACvE,OAAO,EACL,UAAU,EACV,OAAO,EACP,SAAS,EACT,yBAAyB,GAC1B,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../../../src/commands/create/app.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,4CAA4C,CAAC;AACvE,OAAO,EACL,UAAU,EACV,OAAO,EACP,SAAS,EACT,yBAAyB,GAC1B,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,YAAY,GACb,MAAM,gBAAgB,CAAC;AAExB,MAAM,YAAY,GAAG,KAAK,EACxB,EACE,UAAU,EACV,UAAU,EACV,oBAAoB,EACpB,SAAS,GAMV,EACD,EAAE,MAAM,EAAwB,EAChC,EAAE;IACF,MAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IACvC,MAAM,QAAQ,GAAG,mBAAmB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;IAC5D,MAAM,SAAS,GAAG,MAAM,SAAS,CAC/B;QACE,oBAAoB,EAAE,IAAI,SAAS,CAAC,oBAAoB,CAAC;QACzD,WAAW;QACX,UAAU;KACX,EACD,EAAE,QAAQ,EAAE,SAAS,EAAE,CACxB,CAAC;IAEF,MAAM,SAAS,GAAG,MAAM,UAAU,CAAC,kBAAkB,EAAE,CAAC;IACxD,MAAM,EAAE,GAAG,SAAS,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;IAC9C,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IAEhC,IAAI,CAAC,MAAM,EAAE;QACX,MAAM,KAAK,GAAG,MAAM,yBAAyB,CAAC,UAAU,EAAE,EAAE,EAAE;YAC5D,SAAS;YACT,WAAW;SACZ,CAAC,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;KACxE;IAED,OAAO,EAAE,UAAU,EAAE,WAAW,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,CAAC;AAC1D,CAAC,CAAC;AASF,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EAAE,EACrC,MAAM,EACN,GAAG,EACH,MAAM,EACN,oBAAoB,GACE,EAAE,EAAE;IAC1B,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;IAEvC,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,SAAS,EAAE,gBAAgB,EAAE,GACpD,MAAM,mBAAmB,EAAE,CAAC;IAE9B,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,YAAY,CACvC;QACE,UAAU;QACV,SAAS,EAAE,MAAM;QACjB,oBAAoB,EAAE,gBAAgB,CAAC,OAAO,IAAI,oBAAoB;QACtE,UAAU;KACX,EACD,EAAE,MAAM,EAAE,CACX,CAAC;IAEF,IAAI,CAAC,MAAM,EAAE;QACX,YAAY,CAAC,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;KAChD;IAED,OAAO,EAAE,UAAU,EAAE,CAAC;AACxB,CAAC,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createPublisher } from "@solana-mobile/dapp-store-publishing-tools";
|
|
2
2
|
import { Connection, Keypair, sendAndConfirmTransaction, } from "@solana/web3.js";
|
|
3
|
-
import {
|
|
3
|
+
import { getConfigWithChecks, getMetaplexInstance, saveToConfig, } from "../../utils.js";
|
|
4
4
|
const createPublisherNft = async ({ connection, publisher, publisherDetails, }, { dryRun }) => {
|
|
5
5
|
const mintAddress = Keypair.generate();
|
|
6
6
|
const metaplex = getMetaplexInstance(connection, publisher);
|
|
@@ -20,7 +20,7 @@ const createPublisherNft = async ({ connection, publisher, publisherDetails, },
|
|
|
20
20
|
};
|
|
21
21
|
export const createPublisherCommand = async ({ signer, url, dryRun, }) => {
|
|
22
22
|
const connection = new Connection(url);
|
|
23
|
-
const { publisher: publisherDetails } = await
|
|
23
|
+
const { publisher: publisherDetails } = await getConfigWithChecks();
|
|
24
24
|
const { publisherAddress } = await createPublisherNft({
|
|
25
25
|
connection,
|
|
26
26
|
publisher: signer,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"publisher.js","sourceRoot":"","sources":["../../../../src/commands/create/publisher.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,4CAA4C,CAAC;AAC7E,OAAO,EACL,UAAU,EACV,OAAO,EACP,yBAAyB,GAC1B,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"publisher.js","sourceRoot":"","sources":["../../../../src/commands/create/publisher.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,4CAA4C,CAAC;AAC7E,OAAO,EACL,UAAU,EACV,OAAO,EACP,yBAAyB,GAC1B,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,YAAY,GACb,MAAM,gBAAgB,CAAC;AAExB,MAAM,kBAAkB,GAAG,KAAK,EAC9B,EACE,UAAU,EACV,SAAS,EACT,gBAAgB,GAKjB,EACD,EAAE,MAAM,EAAuB,EAC/B,EAAE;IACF,MAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IACvC,MAAM,QAAQ,GAAG,mBAAmB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;IAC5D,OAAO,CAAC,IAAI,CACV,kCAAkC,WAAW,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,CACrE,CAAC;IACF,MAAM,SAAS,GAAG,MAAM,eAAe,CACrC,EAAE,WAAW,EAAE,gBAAgB,EAAE,EACjC,EAAE,QAAQ,EAAE,SAAS,EAAE,CACxB,CAAC;IAEF,MAAM,SAAS,GAAG,MAAM,UAAU,CAAC,kBAAkB,EAAE,CAAC;IACxD,MAAM,EAAE,GAAG,SAAS,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;IAC9C,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IAEhC,IAAI,CAAC,MAAM,EAAE;QACX,MAAM,KAAK,GAAG,MAAM,yBAAyB,CAAC,UAAU,EAAE,EAAE,EAAE;YAC5D,SAAS;YACT,WAAW;SACZ,CAAC,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;KACxE;IAED,OAAO,EAAE,gBAAgB,EAAE,WAAW,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,CAAC;AAChE,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,KAAK,EAAE,EAC3C,MAAM,EACN,GAAG,EACH,MAAM,GAKP,EAAE,EAAE;IACH,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;IAEvC,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,GAAG,MAAM,mBAAmB,EAAE,CAAC;IAEpE,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,kBAAkB,CACnD;QACE,UAAU;QACV,SAAS,EAAE,MAAM;QACjB,gBAAgB;KACjB,EACD,EAAE,MAAM,EAAE,CACX,CAAC;IAEF,kDAAkD;IAClD,YAAY,CAAC,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,gBAAgB,EAAE,EAAE,CAAC,CAAC;IAE3D,OAAO,EAAE,gBAAgB,EAAE,CAAC;AAC9B,CAAC,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRelease } from "@solana-mobile/dapp-store-publishing-tools";
|
|
2
2
|
import { Connection, Keypair, PublicKey, sendAndConfirmTransaction, } from "@solana/web3.js";
|
|
3
|
-
import {
|
|
3
|
+
import { getConfigWithChecks, getMetaplexInstance, saveToConfig, } from "../../utils.js";
|
|
4
4
|
const createReleaseNft = async ({ appMintAddress, releaseDetails, appDetails, publisherDetails, connection, publisher, }) => {
|
|
5
5
|
const releaseMintAddress = Keypair.generate();
|
|
6
6
|
const metaplex = getMetaplexInstance(connection, publisher);
|
|
@@ -26,7 +26,7 @@ const createReleaseNft = async ({ appMintAddress, releaseDetails, appDetails, pu
|
|
|
26
26
|
};
|
|
27
27
|
export const createReleaseCommand = async ({ appMintAddress, buildToolsPath, signer, url, dryRun = false, }) => {
|
|
28
28
|
const connection = new Connection(url);
|
|
29
|
-
const { release, app, publisher } = await
|
|
29
|
+
const { release, app, publisher } = await getConfigWithChecks(buildToolsPath);
|
|
30
30
|
if (!dryRun) {
|
|
31
31
|
const { releaseAddress } = await createReleaseNft({
|
|
32
32
|
appMintAddress: app.address ?? appMintAddress,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"release.js","sourceRoot":"","sources":["../../../../src/commands/create/release.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,aAAa,EAAE,MAAM,4CAA4C,CAAC;AAC3E,OAAO,EACL,UAAU,EACV,OAAO,EACP,SAAS,EACT,yBAAyB,GAC1B,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"release.js","sourceRoot":"","sources":["../../../../src/commands/create/release.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,aAAa,EAAE,MAAM,4CAA4C,CAAC;AAC3E,OAAO,EACL,UAAU,EACV,OAAO,EACP,SAAS,EACT,yBAAyB,GAC1B,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,YAAY,GACb,MAAM,gBAAgB,CAAC;AAUxB,MAAM,gBAAgB,GAAG,KAAK,EAAE,EAC9B,cAAc,EACd,cAAc,EACd,UAAU,EACV,gBAAgB,EAChB,UAAU,EACV,SAAS,GAQV,EAAE,EAAE;IACH,MAAM,kBAAkB,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAE9C,MAAM,QAAQ,GAAG,mBAAmB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;IAE5D,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,aAAa,CACvC;QACE,cAAc,EAAE,IAAI,SAAS,CAAC,cAAc,CAAC;QAC7C,kBAAkB;QAClB,cAAc;QACd,UAAU;QACV,gBAAgB;KACjB,EACD,EAAE,QAAQ,EAAE,SAAS,EAAE,CACxB,CAAC;IAEF,MAAM,SAAS,GAAG,MAAM,UAAU,CAAC,kBAAkB,EAAE,CAAC;IACxD,MAAM,EAAE,GAAG,SAAS,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;IAC9C,EAAE,CAAC,IAAI,CAAC,kBAAkB,EAAE,SAAS,CAAC,CAAC;IAEvC,MAAM,KAAK,GAAG,MAAM,yBAAyB,CAAC,UAAU,EAAE,EAAE,EAAE;QAC5D,SAAS;QACT,kBAAkB;KACnB,CAAC,CAAC;IACH,OAAO,CAAC,IAAI,CAAC;QACX,KAAK;QACL,kBAAkB,EAAE,kBAAkB,CAAC,SAAS,CAAC,QAAQ,EAAE;KAC5D,CAAC,CAAC;IAEH,OAAO,EAAE,cAAc,EAAE,kBAAkB,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,CAAC;AACrE,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,EAAE,EACzC,cAAc,EACd,cAAc,EACd,MAAM,EACN,GAAG,EACH,MAAM,GAAG,KAAK,GACY,EAAE,EAAE;IAC9B,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;IAEvC,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,MAAM,mBAAmB,CAAC,cAAc,CAAC,CAAC;IAE9E,IAAI,CAAC,MAAM,EAAE;QACX,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,gBAAgB,CAAC;YAChD,cAAc,EAAE,GAAG,CAAC,OAAO,IAAI,cAAc;YAC7C,UAAU;YACV,SAAS,EAAE,MAAM;YACjB,cAAc,EAAE;gBACd,GAAG,OAAO;aACX;YACD,UAAU,EAAE,GAAG;YACf,gBAAgB,EAAE,SAAS;SAC5B,CAAC,CAAC;QAEH,YAAY,CAAC;YACX,OAAO,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE;SACrC,CAAC,CAAC;QAEH,OAAO,EAAE,cAAc,EAAE,CAAC;KAC3B;AACH,CAAC,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Connection } from "@solana/web3.js";
|
|
2
2
|
import { publishRemove } from "@solana-mobile/dapp-store-publishing-tools";
|
|
3
|
-
import { checkMintedStatus,
|
|
3
|
+
import { checkMintedStatus, getConfigWithChecks } from "../../utils.js";
|
|
4
4
|
import nacl from "tweetnacl";
|
|
5
5
|
export const publishRemoveCommand = async ({ appMintAddress, releaseMintAddress, signer, url, dryRun = false, requestorIsAuthorized = false, critical = false, }) => {
|
|
6
6
|
if (!requestorIsAuthorized) {
|
|
@@ -8,7 +8,7 @@ export const publishRemoveCommand = async ({ appMintAddress, releaseMintAddress,
|
|
|
8
8
|
return;
|
|
9
9
|
}
|
|
10
10
|
const connection = new Connection(url);
|
|
11
|
-
const { publisher: publisherDetails, app: appDetails, release: releaseDetails, } = await
|
|
11
|
+
const { publisher: publisherDetails, app: appDetails, release: releaseDetails, } = await getConfigWithChecks();
|
|
12
12
|
const sign = ((buf) => nacl.sign(buf, signer.secretKey));
|
|
13
13
|
const pubAddr = publisherDetails.address;
|
|
14
14
|
const appAddr = appMintAddress ?? appDetails.address;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remove.js","sourceRoot":"","sources":["../../../../src/commands/publish/remove.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAW,MAAM,iBAAiB,CAAC;AAEtD,OAAO,EAAE,aAAa,EAAE,MAAM,4CAA4C,CAAC;AAC3E,OAAO,EAAE,iBAAiB,EAAE,
|
|
1
|
+
{"version":3,"file":"remove.js","sourceRoot":"","sources":["../../../../src/commands/publish/remove.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAW,MAAM,iBAAiB,CAAC;AAEtD,OAAO,EAAE,aAAa,EAAE,MAAM,4CAA4C,CAAC;AAC3E,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACxE,OAAO,IAAI,MAAM,WAAW,CAAC;AAY7B,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,EAAE,EACzC,cAAc,EACd,kBAAkB,EAClB,MAAM,EACN,GAAG,EACH,MAAM,GAAG,KAAK,EACd,qBAAqB,GAAG,KAAK,EAC7B,QAAQ,GAAG,KAAK,GACU,EAAE,EAAE;IAC9B,IAAI,CAAC,qBAAqB,EAAE;QAC1B,OAAO,CAAC,KAAK,CACX,qGAAqG,CACtG,CAAC;QACF,OAAO;KACR;IAED,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;IACvC,MAAM,EACJ,SAAS,EAAE,gBAAgB,EAC3B,GAAG,EAAE,UAAU,EACf,OAAO,EAAE,cAAc,GACxB,GAAG,MAAM,mBAAmB,EAAE,CAAC;IAEhC,MAAM,IAAI,GAAG,CAAC,CAAC,GAAW,EAAE,EAAE,CAC5B,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,SAAS,CAAC,CAA6B,CAAC;IAEhE,MAAM,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC;IACzC,MAAM,OAAO,GAAG,cAAc,IAAI,UAAU,CAAC,OAAO,CAAC;IACrD,MAAM,WAAW,GAAG,kBAAkB,IAAI,cAAc,CAAC,OAAO,CAAC;IAEjE,MAAM,iBAAiB,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;IAEnE,MAAM,aAAa,CACjB,EAAE,UAAU,EAAE,IAAI,EAAE,EACpB;QACE,cAAc,EAAE,cAAc,IAAI,UAAU,CAAC,OAAO;QACpD,kBAAkB,EAAE,kBAAkB,IAAI,cAAc,CAAC,OAAO;QAChE,gBAAgB;QAChB,qBAAqB;QACrB,cAAc,EAAE,QAAQ;KACzB,EACD,MAAM,CACP,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Connection } from "@solana/web3.js";
|
|
2
2
|
import { publishSubmit } from "@solana-mobile/dapp-store-publishing-tools";
|
|
3
3
|
import nacl from "tweetnacl";
|
|
4
|
-
import { checkMintedStatus,
|
|
4
|
+
import { checkMintedStatus, getConfigWithChecks } from "../../utils.js";
|
|
5
5
|
export const publishSubmitCommand = async ({ appMintAddress, releaseMintAddress, signer, url, dryRun = false, compliesWithSolanaDappStorePolicies = false, requestorIsAuthorized = false, }) => {
|
|
6
6
|
if (!compliesWithSolanaDappStorePolicies) {
|
|
7
7
|
console.error("ERROR: Cannot submit a request for which the requestor does not attest that it complies with Solana dApp Store policies");
|
|
@@ -12,7 +12,7 @@ export const publishSubmitCommand = async ({ appMintAddress, releaseMintAddress,
|
|
|
12
12
|
return;
|
|
13
13
|
}
|
|
14
14
|
const connection = new Connection(url);
|
|
15
|
-
const { publisher: publisherDetails, app: appDetails, release: releaseDetails, solana_mobile_dapp_publisher_portal: solanaMobileDappPublisherPortalDetails, } = await
|
|
15
|
+
const { publisher: publisherDetails, app: appDetails, release: releaseDetails, solana_mobile_dapp_publisher_portal: solanaMobileDappPublisherPortalDetails, } = await getConfigWithChecks();
|
|
16
16
|
const sign = ((buf) => nacl.sign(buf, signer.secretKey));
|
|
17
17
|
const pubAddr = publisherDetails.address;
|
|
18
18
|
const appAddr = appMintAddress ?? appDetails.address;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"submit.js","sourceRoot":"","sources":["../../../../src/commands/publish/submit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,UAAU,EAAsB,MAAM,iBAAiB,CAAC;AAE9E,OAAO,EAAE,aAAa,EAAE,MAAM,4CAA4C,CAAC;AAC3E,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,iBAAiB,EAAE,
|
|
1
|
+
{"version":3,"file":"submit.js","sourceRoot":"","sources":["../../../../src/commands/publish/submit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,UAAU,EAAsB,MAAM,iBAAiB,CAAC;AAE9E,OAAO,EAAE,aAAa,EAAE,MAAM,4CAA4C,CAAC;AAC3E,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAaxE,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,EAAE,EACzC,cAAc,EACd,kBAAkB,EAClB,MAAM,EACN,GAAG,EACH,MAAM,GAAG,KAAK,EACd,mCAAmC,GAAG,KAAK,EAC3C,qBAAqB,GAAG,KAAK,GACH,EAAE,EAAE;IAC9B,IAAI,CAAC,mCAAmC,EAAE;QACxC,OAAO,CAAC,KAAK,CACX,yHAAyH,CAC1H,CAAC;QACF,OAAO;KACR;SAAM,IAAI,CAAC,qBAAqB,EAAE;QACjC,OAAO,CAAC,KAAK,CACX,qGAAqG,CACtG,CAAC;QACF,OAAO;KACR;IAED,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;IACvC,MAAM,EACJ,SAAS,EAAE,gBAAgB,EAC3B,GAAG,EAAE,UAAU,EACf,OAAO,EAAE,cAAc,EACvB,mCAAmC,EAAE,sCAAsC,GAC5E,GAAG,MAAM,mBAAmB,EAAE,CAAC;IAEhC,MAAM,IAAI,GAAG,CAAC,CAAC,GAAW,EAAE,EAAE,CAC5B,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,SAAS,CAAC,CAA6B,CAAC;IAEhE,MAAM,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC;IACzC,MAAM,OAAO,GAAG,cAAc,IAAI,UAAU,CAAC,OAAO,CAAC;IACrD,MAAM,WAAW,GAAG,kBAAkB,IAAI,cAAc,CAAC,OAAO,CAAC;IAEjE,MAAM,iBAAiB,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;IAEnE,MAAM,aAAa,CACjB,EAAE,UAAU,EAAE,IAAI,EAAE,EACpB;QACE,cAAc,EAAE,OAAO;QACvB,kBAAkB,EAAE,WAAW;QAC/B,gBAAgB;QAChB,sCAAsC;QACtC,mCAAmC;QACnC,qBAAqB;KACtB,EACD,MAAM,CACP,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Connection } from "@solana/web3.js";
|
|
2
2
|
import { publishSupport } from "@solana-mobile/dapp-store-publishing-tools";
|
|
3
|
-
import { checkMintedStatus,
|
|
3
|
+
import { checkMintedStatus, getConfigWithChecks } from "../../utils.js";
|
|
4
4
|
import nacl from "tweetnacl";
|
|
5
5
|
export const publishSupportCommand = async ({ appMintAddress, releaseMintAddress, signer, url, dryRun = false, requestorIsAuthorized = false, requestDetails, }) => {
|
|
6
6
|
if (!requestorIsAuthorized) {
|
|
@@ -8,7 +8,7 @@ export const publishSupportCommand = async ({ appMintAddress, releaseMintAddress
|
|
|
8
8
|
return;
|
|
9
9
|
}
|
|
10
10
|
const connection = new Connection(url);
|
|
11
|
-
const { publisher: publisherDetails, app: appDetails, release: releaseDetails, } = await
|
|
11
|
+
const { publisher: publisherDetails, app: appDetails, release: releaseDetails, } = await getConfigWithChecks();
|
|
12
12
|
const sign = ((buf) => nacl.sign(buf, signer.secretKey));
|
|
13
13
|
const pubAddr = publisherDetails.address;
|
|
14
14
|
const appAddr = appMintAddress ?? appDetails.address;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"support.js","sourceRoot":"","sources":["../../../../src/commands/publish/support.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAW,MAAM,iBAAiB,CAAC;AAEtD,OAAO,EAAE,cAAc,EAAE,MAAM,4CAA4C,CAAC;AAC5E,OAAO,EAAE,iBAAiB,EAAE,
|
|
1
|
+
{"version":3,"file":"support.js","sourceRoot":"","sources":["../../../../src/commands/publish/support.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAW,MAAM,iBAAiB,CAAC;AAEtD,OAAO,EAAE,cAAc,EAAE,MAAM,4CAA4C,CAAC;AAC5E,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACxE,OAAO,IAAI,MAAM,WAAW,CAAC;AAY7B,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,EAAE,EAC1C,cAAc,EACd,kBAAkB,EAClB,MAAM,EACN,GAAG,EACH,MAAM,GAAG,KAAK,EACd,qBAAqB,GAAG,KAAK,EAC7B,cAAc,GACa,EAAE,EAAE;IAC/B,IAAI,CAAC,qBAAqB,EAAE;QAC1B,OAAO,CAAC,KAAK,CACX,qGAAqG,CACtG,CAAC;QACF,OAAO;KACR;IAED,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;IACvC,MAAM,EACJ,SAAS,EAAE,gBAAgB,EAC3B,GAAG,EAAE,UAAU,EACf,OAAO,EAAE,cAAc,GACxB,GAAG,MAAM,mBAAmB,EAAE,CAAC;IAEhC,MAAM,IAAI,GAAG,CAAC,CAAC,GAAW,EAAE,EAAE,CAC5B,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,SAAS,CAAC,CAA6B,CAAC;IAEhE,MAAM,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC;IACzC,MAAM,OAAO,GAAG,cAAc,IAAI,UAAU,CAAC,OAAO,CAAC;IACrD,MAAM,WAAW,GAAG,kBAAkB,IAAI,cAAc,CAAC,OAAO,CAAC;IAEjE,MAAM,iBAAiB,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;IAEnE,MAAM,cAAc,CAClB,EAAE,UAAU,EAAE,IAAI,EAAE,EACpB;QACE,cAAc,EAAE,cAAc,IAAI,UAAU,CAAC,OAAO;QACpD,kBAAkB,EAAE,kBAAkB,IAAI,cAAc,CAAC,OAAO;QAChE,gBAAgB;QAChB,qBAAqB;QACrB,cAAc;KACf,EACD,MAAM,CACP,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Connection } from "@solana/web3.js";
|
|
2
2
|
import { publishUpdate } from "@solana-mobile/dapp-store-publishing-tools";
|
|
3
|
-
import { checkMintedStatus,
|
|
3
|
+
import { checkMintedStatus, getConfigWithChecks } from "../../utils.js";
|
|
4
4
|
import nacl from "tweetnacl";
|
|
5
5
|
export const publishUpdateCommand = async ({ appMintAddress, releaseMintAddress, signer, url, dryRun = false, compliesWithSolanaDappStorePolicies = false, requestorIsAuthorized = false, critical = false, }) => {
|
|
6
6
|
if (!compliesWithSolanaDappStorePolicies) {
|
|
@@ -12,7 +12,7 @@ export const publishUpdateCommand = async ({ appMintAddress, releaseMintAddress,
|
|
|
12
12
|
return;
|
|
13
13
|
}
|
|
14
14
|
const connection = new Connection(url);
|
|
15
|
-
const { publisher: publisherDetails, app: appDetails, release: releaseDetails, solana_mobile_dapp_publisher_portal: solanaMobileDappPublisherPortalDetails, } = await
|
|
15
|
+
const { publisher: publisherDetails, app: appDetails, release: releaseDetails, solana_mobile_dapp_publisher_portal: solanaMobileDappPublisherPortalDetails, } = await getConfigWithChecks();
|
|
16
16
|
const sign = ((buf) => nacl.sign(buf, signer.secretKey));
|
|
17
17
|
const pubAddr = publisherDetails.address;
|
|
18
18
|
const appAddr = appMintAddress ?? appDetails.address;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../../../src/commands/publish/update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAW,MAAM,iBAAiB,CAAC;AAEtD,OAAO,EAAE,aAAa,EAAE,MAAM,4CAA4C,CAAC;AAC3E,OAAO,EAAE,iBAAiB,EAAE,
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../../../src/commands/publish/update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAW,MAAM,iBAAiB,CAAC;AAEtD,OAAO,EAAE,aAAa,EAAE,MAAM,4CAA4C,CAAC;AAC3E,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACxE,OAAO,IAAI,MAAM,WAAW,CAAC;AAa7B,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,EAAE,EACzC,cAAc,EACd,kBAAkB,EAClB,MAAM,EACN,GAAG,EACH,MAAM,GAAG,KAAK,EACd,mCAAmC,GAAG,KAAK,EAC3C,qBAAqB,GAAG,KAAK,EAC7B,QAAQ,GAAG,KAAK,GACU,EAAE,EAAE;IAC9B,IAAI,CAAC,mCAAmC,EAAE;QACxC,OAAO,CAAC,KAAK,CACX,yHAAyH,CAC1H,CAAC;QACF,OAAO;KACR;SAAM,IAAI,CAAC,qBAAqB,EAAE;QACjC,OAAO,CAAC,KAAK,CACX,qGAAqG,CACtG,CAAC;QACF,OAAO;KACR;IAED,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;IACvC,MAAM,EACJ,SAAS,EAAE,gBAAgB,EAC3B,GAAG,EAAE,UAAU,EACf,OAAO,EAAE,cAAc,EACvB,mCAAmC,EAAE,sCAAsC,GAC5E,GAAG,MAAM,mBAAmB,EAAE,CAAC;IAEhC,MAAM,IAAI,GAAG,CAAC,CAAC,GAAW,EAAE,EAAE,CAC5B,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,SAAS,CAAC,CAA6B,CAAC;IAEhE,MAAM,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC;IACzC,MAAM,OAAO,GAAG,cAAc,IAAI,UAAU,CAAC,OAAO,CAAC;IACrD,MAAM,WAAW,GAAG,kBAAkB,IAAI,cAAc,CAAC,OAAO,CAAC;IAEjE,MAAM,iBAAiB,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;IAEnE,MAAM,aAAa,CACjB,EAAE,UAAU,EAAE,IAAI,EAAE,EACpB;QACE,cAAc,EAAE,cAAc,IAAI,UAAU,CAAC,OAAO;QACpD,kBAAkB,EAAE,kBAAkB,IAAI,cAAc,CAAC,OAAO;QAChE,gBAAgB;QAChB,sCAAsC;QACtC,mCAAmC;QACnC,qBAAqB;QACrB,cAAc,EAAE,QAAQ;KACzB,EACD,MAAM,CACP,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createAppJson, createPublisherJson, createReleaseJson, validateApp, validatePublisher, validateRelease, metaplexFileReplacer, } from "@solana-mobile/dapp-store-publishing-tools";
|
|
2
|
-
import { debug,
|
|
2
|
+
import { debug, getConfigWithChecks } from "../utils.js";
|
|
3
3
|
export const validateCommand = async ({ signer, buildToolsPath, }) => {
|
|
4
|
-
const { publisher: publisherDetails, app: appDetails, release: releaseDetails, } = await
|
|
4
|
+
const { publisher: publisherDetails, app: appDetails, release: releaseDetails, } = await getConfigWithChecks(buildToolsPath);
|
|
5
5
|
debug({ publisherDetails, appDetails, releaseDetails });
|
|
6
6
|
const publisherJson = createPublisherJson(publisherDetails);
|
|
7
7
|
if (typeof publisherJson.image !== "string") {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../src/commands/validate.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,iBAAiB,EACjB,WAAW,EACX,iBAAiB,EACjB,eAAe,EACf,oBAAoB,GACrB,MAAM,4CAA4C,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../src/commands/validate.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,iBAAiB,EACjB,WAAW,EACX,iBAAiB,EACjB,eAAe,EACf,oBAAoB,GACrB,MAAM,4CAA4C,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAMzD,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAAE,EACpC,MAAM,EACN,cAAc,GAIf,EAAE,EAAE;IACH,MAAM,EACJ,SAAS,EAAE,gBAAgB,EAC3B,GAAG,EAAE,UAAU,EACf,OAAO,EAAE,cAAc,GACxB,GAAG,MAAM,mBAAmB,CAAC,cAAc,CAAC,CAAC;IAE9C,KAAK,CAAC,EAAE,gBAAgB,EAAE,UAAU,EAAE,cAAc,EAAE,CAAC,CAAC;IAExD,MAAM,aAAa,GAAG,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;IAC5D,IAAI,OAAO,aAAa,CAAC,KAAK,KAAK,QAAQ,EAAE;QAC3C,aAAa,CAAC,KAAK,GAAI,aAAa,CAAC,KAAsB,EAAE,QAAQ,CAAC;KACvE;IACD,KAAK,CAAC,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,aAAa,EAAE,EAAE,oBAAoB,EAAE,CAAC,CAAC,CAAC,CAAC;IAEpF,IAAI;QACF,iBAAiB,CAAC,aAAa,CAAC,CAAC;QACjC,OAAO,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;KACvC;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;KAClB;IAED,MAAM,OAAO,GAAG,aAAa,CAAC,UAAU,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;IAC5D,IAAI,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,EAAE;QACrC,OAAO,CAAC,KAAK,GAAI,OAAO,CAAC,KAAsB,EAAE,QAAQ,CAAC;KAC3D;IACD,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,EAAE,oBAAoB,EAAE,CAAC,CAAC,CAAC,CAAC;IAExE,IAAI;QACF,WAAW,CAAC,OAAO,CAAC,CAAC;QACrB,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;KACjC;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;KAClB;IAED,MAAM,WAAW,GAAG,MAAM,iBAAiB,CACzC,EAAE,cAAc,EAAE,UAAU,EAAE,gBAAgB,EAAE,EAChD,MAAM,CAAC,SAAS,CACjB,CAAC;IAEF,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,oBAAoB,EAAE,CAAC,CAAC,CAAC;IAC5E,KAAK,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;IAEtC,IAAI;QACF,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC;QAC5C,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;KACrC;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;KAClB;AACH,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{ "publisher": { "name": "<<YOUR_PUBLISHER_NAME>>", "address": "", "website": "<<URL_OF_PUBLISHER_WEBSITE>>", "email": "<<EMAIL_ADDRESS_TO_CONTACT_PUBLISHER>>", "media": [{ "purpose": "icon", "uri": "<<RELATIVE_PATH_TO_PUBLISHER_ICON>>" }] }, "app": { "name": "<<APP_NAME>>", "address": "", "android_package": "<<ANDROID_PACKAGE_NAME>>", "urls": { "license_url": "<<URL_OF_APP_LICENSE_OR_TERMS_OF_SERVICE>>", "copyright_url": "<<URL_OF_COPYRIGHT_DETAILS_FOR_APP>>", "privacy_policy_url": "<<URL_OF_APP_PRIVACY_POLICY>>", "website": "<<URL_OF_APP_WEBSITE>>" }, "media": [{ "purpose": "icon", "uri": "<<RELATIVE_PATH_TO_APP_ICON>>" }] }, "release": { "address": "", "media": [{ "purpose": "icon", "uri": "<<RELATIVE_PATH_TO_RELEASE_ICON>>" }, { "purpose": "screenshot", "uri": "<<RELATIVE_PATH_TO_SCREENSHOT>>" }], "files": [{ "purpose": "install", "uri": "<<RELATIVE_PATH_TO_APK>>" }], "catalog": { "en-US": { "name": "<<APP_NAME>>\n", "long_description": "<<LONG_APP_DESCRIPTION>>\n", "new_in_version": "<<WHATS_NEW_IN_THIS_VERSION>>\n", "saga_features": "<<ANY_FEATURES_ONLY_AVAILBLE_WHEN_RUNNING_ON_SAGA>>\n" } } }, "solana_mobile_dapp_publisher_portal": { "google_store_package": "<<ANDROID_PACKAGE_NAME_OF_GOOGLE_PLAY_STORE_VERSION_IF_DIFFERENT>>", "testing_instructions": "<<TESTING_INSTRUCTIONS>>\n" } }
|
|
1
|
+
{ "publisher": { "name": "<<YOUR_PUBLISHER_NAME>>", "address": "", "website": "<<URL_OF_PUBLISHER_WEBSITE>>", "email": "<<EMAIL_ADDRESS_TO_CONTACT_PUBLISHER>>", "media": [{ "purpose": "icon", "uri": "<<RELATIVE_PATH_TO_PUBLISHER_ICON>>" }] }, "app": { "name": "<<APP_NAME>>", "address": "", "android_package": "<<ANDROID_PACKAGE_NAME>>", "urls": { "license_url": "<<URL_OF_APP_LICENSE_OR_TERMS_OF_SERVICE>>", "copyright_url": "<<URL_OF_COPYRIGHT_DETAILS_FOR_APP>>", "privacy_policy_url": "<<URL_OF_APP_PRIVACY_POLICY>>", "website": "<<URL_OF_APP_WEBSITE>>" }, "media": [{ "purpose": "icon", "uri": "<<RELATIVE_PATH_TO_APP_ICON>>" }] }, "release": { "address": "", "media": [{ "purpose": "icon", "uri": "<<RELATIVE_PATH_TO_RELEASE_ICON>>" }, { "purpose": "screenshot", "uri": "<<RELATIVE_PATH_TO_SCREENSHOT>>" }], "files": [{ "purpose": "install", "uri": "<<RELATIVE_PATH_TO_APK>>" }], "catalog": { "en-US": { "name": "<<APP_NAME>>\n", "short_description": "<<SHORT_APP_DESCRIPTION>>\n", "long_description": "<<LONG_APP_DESCRIPTION>>\n", "new_in_version": "<<WHATS_NEW_IN_THIS_VERSION>>\n", "saga_features": "<<ANY_FEATURES_ONLY_AVAILBLE_WHEN_RUNNING_ON_SAGA>>\n" } } }, "solana_mobile_dapp_publisher_portal": { "google_store_package": "<<ANDROID_PACKAGE_NAME_OF_GOOGLE_PLAY_STORE_VERSION_IF_DIFFERENT>>", "testing_instructions": "<<TESTING_INSTRUCTIONS>>\n" } }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{ "type": "object", "properties": { "publisher": { "type": "object", "properties": { "name": { "type": "string" }, "address": { "type": "string" }, "website": { "type": "string" }, "email": { "type": "string" }, "media": { "type": "array", "items": { "type": "object", "properties": { "purpose": { "type": "string" }, "uri": { "type": "string" } } } } } }, "app": { "type": "object", "properties": { "name": { "type": "string" }, "address": { "type": "string" }, "android_package": { "type": "string" }, "urls": { "type": "object", "properties": { "license_url": { "type": "string" }, "copyright_url": { "type": "string" }, "privacy_policy_url": { "type": "string" }, "website": { "type": "string" } } }, "media": { "type": "array", "items": { "type": "object", "properties": { "purpose": { "type": "string" }, "uri": { "type": "string" } } } } } }, "release": { "type": "object", "properties": { "address": { "type": "string" }, "media": { "type": "array", "items": { "type": "object", "properties": { "purpose": { "type": "string" }, "uri": { "type": "string" } }, "required": ["purpose", "uri"] } }, "files": { "type": "array", "items": { "type": "object", "properties": { "purpose": { "type": "string" }, "uri": { "type": "string" } } } }, "catalog": { "type": "object", "properties": { "en-US": { "type": "object", "properties": { "name": { "type": "string" }, "long_description": { "type": "string" }, "new_in_version": { "type": "string" }, "saga_features": { "type": "string" } } } } } } }, "solana_mobile_dapp_publisher_portal": { "type": "object", "properties": { "google_store_package": { "type": "string" }, "testing_instructions": { "type": "string" } } } } }
|
|
1
|
+
{ "type": "object", "properties": { "publisher": { "type": "object", "properties": { "name": { "type": "string" }, "address": { "type": "string" }, "website": { "type": "string" }, "email": { "type": "string" }, "media": { "type": "array", "items": { "type": "object", "properties": { "purpose": { "type": "string" }, "uri": { "type": "string" } } } } } }, "app": { "type": "object", "properties": { "name": { "type": "string" }, "address": { "type": "string" }, "android_package": { "type": "string" }, "urls": { "type": "object", "properties": { "license_url": { "type": "string" }, "copyright_url": { "type": "string" }, "privacy_policy_url": { "type": "string" }, "website": { "type": "string" } } }, "media": { "type": "array", "items": { "type": "object", "properties": { "purpose": { "type": "string" }, "uri": { "type": "string" } } } } } }, "release": { "type": "object", "properties": { "address": { "type": "string" }, "media": { "type": "array", "items": { "type": "object", "properties": { "purpose": { "type": "string" }, "uri": { "type": "string" } }, "required": ["purpose", "uri"] } }, "files": { "type": "array", "items": { "type": "object", "properties": { "purpose": { "type": "string" }, "uri": { "type": "string" } } } }, "catalog": { "type": "object", "properties": { "en-US": { "type": "object", "properties": { "name": { "type": "string" }, "short_description": { "type": "string" }, "long_description": { "type": "string" }, "new_in_version": { "type": "string" }, "saga_features": { "type": "string" } }, "required": ["short_description"] } } } } }, "solana_mobile_dapp_publisher_portal": { "type": "object", "properties": { "google_store_package": { "type": "string" }, "testing_instructions": { "type": "string" } } } } }
|
package/lib/esm/index.js
CHANGED
|
@@ -2,7 +2,7 @@ import { Command } from "commander";
|
|
|
2
2
|
import { validateCommand } from "./commands/index.js";
|
|
3
3
|
import { createAppCommand, createPublisherCommand, createReleaseCommand } from "./commands/create/index.js";
|
|
4
4
|
import { publishRemoveCommand, publishSubmitCommand, publishSupportCommand, publishUpdateCommand } from "./commands/publish/index.js";
|
|
5
|
-
import { checkForSelfUpdate, checkSubmissionNetwork, Constants, generateNetworkSuffix,
|
|
5
|
+
import { checkForSelfUpdate, checkSubmissionNetwork, Constants, generateNetworkSuffix, getConfigWithChecks, parseKeypair, showMessage } from "./utils.js";
|
|
6
6
|
import * as dotenv from "dotenv";
|
|
7
7
|
import { initScaffold } from "./commands/scaffolding/index.js";
|
|
8
8
|
dotenv.config();
|
|
@@ -22,13 +22,20 @@ function resolveBuildToolsPath(buildToolsPath) {
|
|
|
22
22
|
// No path was specified
|
|
23
23
|
return;
|
|
24
24
|
}
|
|
25
|
+
/**
|
|
26
|
+
* This method should be updated with each new release of the CLI, and just do nothing when there isn't anything to report
|
|
27
|
+
*/
|
|
28
|
+
function latestReleaseMessage() {
|
|
29
|
+
showMessage(`Publishing Tools Version ${Constants.CLI_VERSION}`, "- The new field \`short_description\` has been added to the set of strings required in the `catalog` section for each locale.\n" +
|
|
30
|
+
"- You can now specify a release-specific icon in the release \`media\` section in your configuration file.", "warning");
|
|
31
|
+
}
|
|
25
32
|
async function tryWithErrorMessage(block) {
|
|
26
33
|
try {
|
|
27
34
|
await block();
|
|
28
35
|
}
|
|
29
36
|
catch (e) {
|
|
30
37
|
const errorMsg = e?.message ?? "";
|
|
31
|
-
showMessage("Error", errorMsg,
|
|
38
|
+
showMessage("Error", errorMsg, "error");
|
|
32
39
|
}
|
|
33
40
|
}
|
|
34
41
|
async function main() {
|
|
@@ -56,6 +63,7 @@ async function main() {
|
|
|
56
63
|
.option("-d, --dry-run", "Flag for dry run. Doesn't mint an NFT")
|
|
57
64
|
.action(async ({ keypair, url, dryRun }) => {
|
|
58
65
|
tryWithErrorMessage(async () => {
|
|
66
|
+
latestReleaseMessage();
|
|
59
67
|
await checkForSelfUpdate();
|
|
60
68
|
const signer = parseKeypair(keypair);
|
|
61
69
|
if (signer) {
|
|
@@ -75,8 +83,9 @@ async function main() {
|
|
|
75
83
|
.option("-d, --dry-run", "Flag for dry run. Doesn't mint an NFT")
|
|
76
84
|
.action(async ({ publisherMintAddress, keypair, url, dryRun }) => {
|
|
77
85
|
tryWithErrorMessage(async () => {
|
|
86
|
+
latestReleaseMessage();
|
|
78
87
|
await checkForSelfUpdate();
|
|
79
|
-
const config = await
|
|
88
|
+
const config = await getConfigWithChecks();
|
|
80
89
|
if (!hasAddressInConfig(config.publisher) && !publisherMintAddress) {
|
|
81
90
|
throw new Error("Either specify a publisher mint address in the config file or specify as a CLI argument to this command.");
|
|
82
91
|
}
|
|
@@ -104,12 +113,13 @@ async function main() {
|
|
|
104
113
|
.option("-b, --build-tools-path <build-tools-path>", "Path to Android build tools which contains AAPT2")
|
|
105
114
|
.action(async ({ appMintAddress, keypair, url, dryRun, buildToolsPath }) => {
|
|
106
115
|
tryWithErrorMessage(async () => {
|
|
116
|
+
latestReleaseMessage();
|
|
107
117
|
await checkForSelfUpdate();
|
|
108
118
|
const resolvedBuildToolsPath = resolveBuildToolsPath(buildToolsPath);
|
|
109
119
|
if (resolvedBuildToolsPath === undefined) {
|
|
110
120
|
throw new Error("Please specify an Android build tools directory in the .env file or via the command line argument.");
|
|
111
121
|
}
|
|
112
|
-
const config = await
|
|
122
|
+
const config = await getConfigWithChecks();
|
|
113
123
|
if (!hasAddressInConfig(config.app) && !appMintAddress) {
|
|
114
124
|
throw new Error("Either specify an app mint address in the config file or specify as a CLI argument to this command");
|
|
115
125
|
}
|
|
@@ -135,6 +145,7 @@ async function main() {
|
|
|
135
145
|
.option("-b, --build-tools-path <build-tools-path>", "Path to Android build tools which contains AAPT2")
|
|
136
146
|
.action(async ({ keypair, buildToolsPath }) => {
|
|
137
147
|
tryWithErrorMessage(async () => {
|
|
148
|
+
latestReleaseMessage();
|
|
138
149
|
await checkForSelfUpdate();
|
|
139
150
|
const resolvedBuildToolsPath = resolveBuildToolsPath(buildToolsPath);
|
|
140
151
|
if (resolvedBuildToolsPath === undefined) {
|
|
@@ -167,7 +178,7 @@ async function main() {
|
|
|
167
178
|
tryWithErrorMessage(async () => {
|
|
168
179
|
await checkForSelfUpdate();
|
|
169
180
|
await checkSubmissionNetwork(url);
|
|
170
|
-
const config = await
|
|
181
|
+
const config = await getConfigWithChecks();
|
|
171
182
|
if (!hasAddressInConfig(config.release) && !releaseMintAddress) {
|
|
172
183
|
throw new Error("Either specify a release mint address in the config file or specify as a CLI argument to this command.");
|
|
173
184
|
}
|
|
@@ -202,7 +213,7 @@ async function main() {
|
|
|
202
213
|
tryWithErrorMessage(async () => {
|
|
203
214
|
await checkForSelfUpdate();
|
|
204
215
|
await checkSubmissionNetwork(url);
|
|
205
|
-
const config = await
|
|
216
|
+
const config = await getConfigWithChecks();
|
|
206
217
|
if (!hasAddressInConfig(config.release) && !releaseMintAddress) {
|
|
207
218
|
throw new Error("Either specify a release mint address in the config file or specify as a CLI argument to this command.");
|
|
208
219
|
}
|
|
@@ -237,7 +248,7 @@ async function main() {
|
|
|
237
248
|
tryWithErrorMessage(async () => {
|
|
238
249
|
await checkForSelfUpdate();
|
|
239
250
|
await checkSubmissionNetwork(url);
|
|
240
|
-
const config = await
|
|
251
|
+
const config = await getConfigWithChecks();
|
|
241
252
|
if (!hasAddressInConfig(config.release) && !releaseMintAddress) {
|
|
242
253
|
throw new Error("Either specify a release mint address in the config file or specify as a CLI argument to this command.");
|
|
243
254
|
}
|
|
@@ -270,7 +281,7 @@ async function main() {
|
|
|
270
281
|
tryWithErrorMessage(async () => {
|
|
271
282
|
await checkForSelfUpdate();
|
|
272
283
|
await checkSubmissionNetwork(url);
|
|
273
|
-
const config = await
|
|
284
|
+
const config = await getConfigWithChecks();
|
|
274
285
|
if (!hasAddressInConfig(config.release) && !releaseMintAddress) {
|
|
275
286
|
throw new Error("Either specify a release mint address in the config file or specify as a CLI argument to this command.");
|
|
276
287
|
}
|
package/lib/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAC5G,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,qBAAqB,EACrB,oBAAoB,EACrB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,SAAS,EACT,qBAAqB,EACrB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/lib/esm/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@solana-mobile/dapp-store-cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
"shx": "^0.3.4"
|
|
41
41
|
},
|
|
42
42
|
"dependencies": {
|
|
43
|
-
"@solana-mobile/dapp-store-publishing-tools": "workspace:0.
|
|
43
|
+
"@solana-mobile/dapp-store-publishing-tools": "workspace:0.3.0",
|
|
44
44
|
"@solana/web3.js": "1.68.0",
|
|
45
45
|
"@types/semver": "^7.3.13",
|
|
46
46
|
"ajv": "^8.11.0",
|
package/lib/esm/utils.js
CHANGED
|
@@ -17,7 +17,7 @@ const runImgSize = util.promisify(imageSize);
|
|
|
17
17
|
const runExec = util.promisify(exec);
|
|
18
18
|
export class Constants {
|
|
19
19
|
}
|
|
20
|
-
Constants.CLI_VERSION = "0.
|
|
20
|
+
Constants.CLI_VERSION = "0.3.0";
|
|
21
21
|
Constants.CONFIG_FILE_NAME = "config.yaml";
|
|
22
22
|
export const debug = debugModule("CLI");
|
|
23
23
|
export const checkForSelfUpdate = async () => {
|
|
@@ -59,7 +59,7 @@ const AaptPrefixes = {
|
|
|
59
59
|
permissionPrefix: "uses-permission: name=",
|
|
60
60
|
localePrefix: "locales: ",
|
|
61
61
|
};
|
|
62
|
-
export const
|
|
62
|
+
export const getConfigWithChecks = async (buildToolsDir = null) => {
|
|
63
63
|
const configFilePath = `${process.cwd()}/${Constants.CONFIG_FILE_NAME}`;
|
|
64
64
|
const config = await getConfig(configFilePath);
|
|
65
65
|
if (buildToolsDir && fs.lstatSync(buildToolsDir).isDirectory()) {
|
|
@@ -99,6 +99,13 @@ export const getConfigFile = async (buildToolsDir = null) => {
|
|
|
99
99
|
throw new Error(`Invalid media path or file type: ${item.uri}. Please ensure the file is a jpeg, png, or webp file.`);
|
|
100
100
|
}
|
|
101
101
|
});
|
|
102
|
+
const baselineSize = Object.keys(config.release.catalog["en-US"]).length;
|
|
103
|
+
Object.keys(config.release.catalog).forEach((locale) => {
|
|
104
|
+
const size = Object.keys(config.release.catalog[locale]).length;
|
|
105
|
+
if (size != baselineSize) {
|
|
106
|
+
throw new Error("Please ensure you have included all localized strings for all locales in your configuration file.");
|
|
107
|
+
}
|
|
108
|
+
});
|
|
102
109
|
return config;
|
|
103
110
|
};
|
|
104
111
|
const checkIconCompatibility = async (path, typeString) => {
|
|
@@ -140,16 +147,25 @@ export const generateNetworkSuffix = (rpcUrl) => {
|
|
|
140
147
|
}
|
|
141
148
|
return suffix;
|
|
142
149
|
};
|
|
143
|
-
export const showMessage = (titleMessage = "", contentMessage = "",
|
|
144
|
-
|
|
150
|
+
export const showMessage = (titleMessage = "", contentMessage = "", type = "standard") => {
|
|
151
|
+
let color = "cyan";
|
|
152
|
+
if (type == "error") {
|
|
153
|
+
color = "redBright";
|
|
154
|
+
}
|
|
155
|
+
else if (type == "warning") {
|
|
156
|
+
color = "yellow";
|
|
157
|
+
}
|
|
158
|
+
const msg = boxen(contentMessage, {
|
|
145
159
|
title: titleMessage,
|
|
146
160
|
padding: 1,
|
|
147
161
|
margin: 1,
|
|
148
162
|
borderStyle: 'single',
|
|
149
|
-
borderColor:
|
|
163
|
+
borderColor: color,
|
|
150
164
|
textAlignment: "left",
|
|
151
|
-
titleAlignment: "center"
|
|
152
|
-
})
|
|
165
|
+
titleAlignment: "center",
|
|
166
|
+
});
|
|
167
|
+
console.log(msg);
|
|
168
|
+
return msg;
|
|
153
169
|
};
|
|
154
170
|
const checkIconDimensions = async (iconPath) => {
|
|
155
171
|
const size = await runImgSize(iconPath);
|
|
@@ -182,7 +198,7 @@ const getAndroidDetails = async (aaptDir, apkPath) => {
|
|
|
182
198
|
};
|
|
183
199
|
};
|
|
184
200
|
export const saveToConfig = async ({ publisher, app, release, }) => {
|
|
185
|
-
const currentConfig = await
|
|
201
|
+
const currentConfig = await getConfigWithChecks();
|
|
186
202
|
delete currentConfig.publisher.icon;
|
|
187
203
|
delete currentConfig.app.icon;
|
|
188
204
|
const newConfig = {
|
package/lib/esm/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
|
package/lib/types/utils.d.ts
CHANGED
|
@@ -12,12 +12,12 @@ export declare const debug: debugModule.Debugger;
|
|
|
12
12
|
export declare const checkForSelfUpdate: () => Promise<void>;
|
|
13
13
|
export declare const checkMintedStatus: (conn: Connection, pubAddr: string, appAddr: string, releaseAddr: string) => Promise<void>;
|
|
14
14
|
export declare const parseKeypair: (pathToKeypairFile: string) => Keypair | undefined;
|
|
15
|
-
export declare const
|
|
15
|
+
export declare const getConfigWithChecks: (buildToolsDir?: string | null) => Promise<CLIConfig>;
|
|
16
16
|
export declare const isDevnet: (rpcUrl: string) => boolean;
|
|
17
17
|
export declare const isTestnet: (rpcUrl: string) => boolean;
|
|
18
18
|
export declare const checkSubmissionNetwork: (rpcUrl: string) => void;
|
|
19
19
|
export declare const generateNetworkSuffix: (rpcUrl: string) => string;
|
|
20
|
-
export declare const showMessage: (titleMessage?: string, contentMessage?: string,
|
|
20
|
+
export declare const showMessage: (titleMessage?: string, contentMessage?: string, type?: "standard" | "error" | "warning") => string;
|
|
21
21
|
type SaveToConfigArgs = {
|
|
22
22
|
publisher?: Pick<Publisher, "address">;
|
|
23
23
|
app?: Pick<App, "address">;
|
package/lib/types/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAkB,GAAG,EAAE,SAAS,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAkB,GAAG,EAAE,SAAS,EAAE,OAAO,EAAuB,MAAM,4CAA4C,CAAC;AAC/H,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAa,MAAM,iBAAiB,CAAC;AACrD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD,OAAO,WAAW,MAAM,OAAO,CAAC;AAKhC,OAAO,EAAwC,QAAQ,EAAkB,MAAM,yBAAyB,CAAC;AAYzG,qBAAa,SAAS;IACpB,MAAM,CAAC,WAAW,SAAW;IAC7B,MAAM,CAAC,gBAAgB,SAAiB;CACzC;AAED,eAAO,MAAM,KAAK,sBAAqB,CAAC;AAExC,eAAO,MAAM,kBAAkB,qBAU9B,CAAC;AAEF,eAAO,MAAM,iBAAiB,SAAgB,UAAU,WAAW,MAAM,WAAW,MAAM,eAAe,MAAM,kBAW9G,CAAC;AAEF,eAAO,MAAM,YAAY,sBAAuB,MAAM,wBASrD,CAAC;AAaF,eAAO,MAAM,mBAAmB,mBACf,MAAM,GAAG,IAAI,KAC3B,QAAQ,SAAS,CA2EnB,CAAC;AAsBF,eAAO,MAAM,QAAQ,WAAY,MAAM,KAAG,OAEzC,CAAC;AAEF,eAAO,MAAM,SAAS,WAAY,MAAM,KAAG,OAE1C,CAAC;AAEF,eAAO,MAAM,sBAAsB,WAAY,MAAM,SAIpD,CAAC;AAEF,eAAO,MAAM,qBAAqB,WAAY,MAAM,KAAG,MAYtD,CAAC;AAEF,eAAO,MAAM,WAAW,0DAGhB,UAAU,GAAG,OAAO,GAAG,SAAS,KACrC,MAoBF,CAAC;AAsDF,KAAK,gBAAgB,GAAG;IACtB,SAAS,CAAC,EAAE,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACvC,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IAC3B,OAAO,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;CACpC,CAAC;AAEF,eAAO,MAAM,YAAY,iCAItB,gBAAgB,kBAyBlB,CAAC;AAEF,eAAO,MAAM,mBAAmB,eAClB,UAAU,WACb,OAAO,aAoBjB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@solana-mobile/dapp-store-cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
"shx": "^0.3.4"
|
|
37
37
|
},
|
|
38
38
|
"dependencies": {
|
|
39
|
-
"@solana-mobile/dapp-store-publishing-tools": "0.
|
|
39
|
+
"@solana-mobile/dapp-store-publishing-tools": "0.3.0",
|
|
40
40
|
"@solana/web3.js": "1.68.0",
|
|
41
41
|
"@types/semver": "^7.3.13",
|
|
42
42
|
"ajv": "^8.11.0",
|
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
} from "@solana/web3.js";
|
|
9
9
|
|
|
10
10
|
import {
|
|
11
|
-
|
|
11
|
+
getConfigWithChecks,
|
|
12
12
|
getMetaplexInstance,
|
|
13
13
|
saveToConfig,
|
|
14
14
|
} from "../../utils.js";
|
|
@@ -69,7 +69,7 @@ export const createAppCommand = async ({
|
|
|
69
69
|
const connection = new Connection(url);
|
|
70
70
|
|
|
71
71
|
const { app: appDetails, publisher: publisherDetails } =
|
|
72
|
-
await
|
|
72
|
+
await getConfigWithChecks();
|
|
73
73
|
|
|
74
74
|
const { appAddress } = await createAppNft(
|
|
75
75
|
{
|
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
} from "@solana/web3.js";
|
|
8
8
|
|
|
9
9
|
import {
|
|
10
|
-
|
|
10
|
+
getConfigWithChecks,
|
|
11
11
|
getMetaplexInstance,
|
|
12
12
|
saveToConfig,
|
|
13
13
|
} from "../../utils.js";
|
|
@@ -60,7 +60,7 @@ export const createPublisherCommand = async ({
|
|
|
60
60
|
}) => {
|
|
61
61
|
const connection = new Connection(url);
|
|
62
62
|
|
|
63
|
-
const { publisher: publisherDetails } = await
|
|
63
|
+
const { publisher: publisherDetails } = await getConfigWithChecks();
|
|
64
64
|
|
|
65
65
|
const { publisherAddress } = await createPublisherNft(
|
|
66
66
|
{
|
|
@@ -13,7 +13,7 @@ import {
|
|
|
13
13
|
import { CachedStorageDriver } from "../../upload/CachedStorageDriver.js";
|
|
14
14
|
|
|
15
15
|
import {
|
|
16
|
-
|
|
16
|
+
getConfigWithChecks,
|
|
17
17
|
getMetaplexInstance,
|
|
18
18
|
saveToConfig,
|
|
19
19
|
} from "../../utils.js";
|
|
@@ -81,7 +81,7 @@ export const createReleaseCommand = async ({
|
|
|
81
81
|
}: CreateReleaseCommandInput) => {
|
|
82
82
|
const connection = new Connection(url);
|
|
83
83
|
|
|
84
|
-
const { release, app, publisher } = await
|
|
84
|
+
const { release, app, publisher } = await getConfigWithChecks(buildToolsPath);
|
|
85
85
|
|
|
86
86
|
if (!dryRun) {
|
|
87
87
|
const { releaseAddress } = await createReleaseNft({
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Connection, Keypair } from "@solana/web3.js";
|
|
2
2
|
import type { SignWithPublisherKeypair } from "@solana-mobile/dapp-store-publishing-tools";
|
|
3
3
|
import { publishRemove } from "@solana-mobile/dapp-store-publishing-tools";
|
|
4
|
-
import { checkMintedStatus,
|
|
4
|
+
import { checkMintedStatus, getConfigWithChecks } from "../../utils.js";
|
|
5
5
|
import nacl from "tweetnacl";
|
|
6
6
|
|
|
7
7
|
type PublishRemoveCommandInput = {
|
|
@@ -35,7 +35,7 @@ export const publishRemoveCommand = async ({
|
|
|
35
35
|
publisher: publisherDetails,
|
|
36
36
|
app: appDetails,
|
|
37
37
|
release: releaseDetails,
|
|
38
|
-
} = await
|
|
38
|
+
} = await getConfigWithChecks();
|
|
39
39
|
|
|
40
40
|
const sign = ((buf: Buffer) =>
|
|
41
41
|
nacl.sign(buf, signer.secretKey)) as SignWithPublisherKeypair;
|
|
@@ -2,7 +2,7 @@ import { AccountInfo, Connection, Keypair, PublicKey } from "@solana/web3.js";
|
|
|
2
2
|
import type { SignWithPublisherKeypair } from "@solana-mobile/dapp-store-publishing-tools";
|
|
3
3
|
import { publishSubmit } from "@solana-mobile/dapp-store-publishing-tools";
|
|
4
4
|
import nacl from "tweetnacl";
|
|
5
|
-
import { checkMintedStatus,
|
|
5
|
+
import { checkMintedStatus, getConfigWithChecks } from "../../utils.js";
|
|
6
6
|
import { Buffer } from "buffer";
|
|
7
7
|
|
|
8
8
|
type PublishSubmitCommandInput = {
|
|
@@ -42,7 +42,7 @@ export const publishSubmitCommand = async ({
|
|
|
42
42
|
app: appDetails,
|
|
43
43
|
release: releaseDetails,
|
|
44
44
|
solana_mobile_dapp_publisher_portal: solanaMobileDappPublisherPortalDetails,
|
|
45
|
-
} = await
|
|
45
|
+
} = await getConfigWithChecks();
|
|
46
46
|
|
|
47
47
|
const sign = ((buf: Buffer) =>
|
|
48
48
|
nacl.sign(buf, signer.secretKey)) as SignWithPublisherKeypair;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Connection, Keypair } from "@solana/web3.js";
|
|
2
2
|
import type { SignWithPublisherKeypair } from "@solana-mobile/dapp-store-publishing-tools";
|
|
3
3
|
import { publishSupport } from "@solana-mobile/dapp-store-publishing-tools";
|
|
4
|
-
import { checkMintedStatus,
|
|
4
|
+
import { checkMintedStatus, getConfigWithChecks } from "../../utils.js";
|
|
5
5
|
import nacl from "tweetnacl";
|
|
6
6
|
|
|
7
7
|
type PublishSupportCommandInput = {
|
|
@@ -35,7 +35,7 @@ export const publishSupportCommand = async ({
|
|
|
35
35
|
publisher: publisherDetails,
|
|
36
36
|
app: appDetails,
|
|
37
37
|
release: releaseDetails,
|
|
38
|
-
} = await
|
|
38
|
+
} = await getConfigWithChecks();
|
|
39
39
|
|
|
40
40
|
const sign = ((buf: Buffer) =>
|
|
41
41
|
nacl.sign(buf, signer.secretKey)) as SignWithPublisherKeypair;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Connection, Keypair } from "@solana/web3.js";
|
|
2
2
|
import type { SignWithPublisherKeypair } from "@solana-mobile/dapp-store-publishing-tools";
|
|
3
3
|
import { publishUpdate } from "@solana-mobile/dapp-store-publishing-tools";
|
|
4
|
-
import { checkMintedStatus,
|
|
4
|
+
import { checkMintedStatus, getConfigWithChecks } from "../../utils.js";
|
|
5
5
|
import nacl from "tweetnacl";
|
|
6
6
|
|
|
7
7
|
type PublishUpdateCommandInput = {
|
|
@@ -43,7 +43,7 @@ export const publishUpdateCommand = async ({
|
|
|
43
43
|
app: appDetails,
|
|
44
44
|
release: releaseDetails,
|
|
45
45
|
solana_mobile_dapp_publisher_portal: solanaMobileDappPublisherPortalDetails,
|
|
46
|
-
} = await
|
|
46
|
+
} = await getConfigWithChecks();
|
|
47
47
|
|
|
48
48
|
const sign = ((buf: Buffer) =>
|
|
49
49
|
nacl.sign(buf, signer.secretKey)) as SignWithPublisherKeypair;
|
package/src/commands/validate.ts
CHANGED
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
validateRelease,
|
|
8
8
|
metaplexFileReplacer,
|
|
9
9
|
} from "@solana-mobile/dapp-store-publishing-tools";
|
|
10
|
-
import { debug,
|
|
10
|
+
import { debug, getConfigWithChecks } from "../utils.js";
|
|
11
11
|
|
|
12
12
|
import type { Keypair } from "@solana/web3.js";
|
|
13
13
|
import type { MetaplexFile } from "@metaplex-foundation/js";
|
|
@@ -24,7 +24,7 @@ export const validateCommand = async ({
|
|
|
24
24
|
publisher: publisherDetails,
|
|
25
25
|
app: appDetails,
|
|
26
26
|
release: releaseDetails,
|
|
27
|
-
} = await
|
|
27
|
+
} = await getConfigWithChecks(buildToolsPath);
|
|
28
28
|
|
|
29
29
|
debug({ publisherDetails, appDetails, releaseDetails });
|
|
30
30
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"publisher":{"name":"<<YOUR_PUBLISHER_NAME>>","address":"","website":"<<URL_OF_PUBLISHER_WEBSITE>>","email":"<<EMAIL_ADDRESS_TO_CONTACT_PUBLISHER>>","media":[{"purpose":"icon","uri":"<<RELATIVE_PATH_TO_PUBLISHER_ICON>>"}]},"app":{"name":"<<APP_NAME>>","address":"","android_package":"<<ANDROID_PACKAGE_NAME>>","urls":{"license_url":"<<URL_OF_APP_LICENSE_OR_TERMS_OF_SERVICE>>","copyright_url":"<<URL_OF_COPYRIGHT_DETAILS_FOR_APP>>","privacy_policy_url":"<<URL_OF_APP_PRIVACY_POLICY>>","website":"<<URL_OF_APP_WEBSITE>>"},"media":[{"purpose":"icon","uri":"<<RELATIVE_PATH_TO_APP_ICON>>"}]},"release":{"address":"","media":[{"purpose":"icon","uri":"<<RELATIVE_PATH_TO_RELEASE_ICON>>"},{"purpose":"screenshot","uri":"<<RELATIVE_PATH_TO_SCREENSHOT>>"}],"files":[{"purpose":"install","uri":"<<RELATIVE_PATH_TO_APK>>"}],"catalog":{"en-US":{"name":"<<APP_NAME>>\n","long_description":"<<LONG_APP_DESCRIPTION>>\n","new_in_version":"<<WHATS_NEW_IN_THIS_VERSION>>\n","saga_features":"<<ANY_FEATURES_ONLY_AVAILBLE_WHEN_RUNNING_ON_SAGA>>\n"}}},"solana_mobile_dapp_publisher_portal":{"google_store_package":"<<ANDROID_PACKAGE_NAME_OF_GOOGLE_PLAY_STORE_VERSION_IF_DIFFERENT>>","testing_instructions":"<<TESTING_INSTRUCTIONS>>\n"}}
|
|
1
|
+
{"publisher":{"name":"<<YOUR_PUBLISHER_NAME>>","address":"","website":"<<URL_OF_PUBLISHER_WEBSITE>>","email":"<<EMAIL_ADDRESS_TO_CONTACT_PUBLISHER>>","media":[{"purpose":"icon","uri":"<<RELATIVE_PATH_TO_PUBLISHER_ICON>>"}]},"app":{"name":"<<APP_NAME>>","address":"","android_package":"<<ANDROID_PACKAGE_NAME>>","urls":{"license_url":"<<URL_OF_APP_LICENSE_OR_TERMS_OF_SERVICE>>","copyright_url":"<<URL_OF_COPYRIGHT_DETAILS_FOR_APP>>","privacy_policy_url":"<<URL_OF_APP_PRIVACY_POLICY>>","website":"<<URL_OF_APP_WEBSITE>>"},"media":[{"purpose":"icon","uri":"<<RELATIVE_PATH_TO_APP_ICON>>"}]},"release":{"address":"","media":[{"purpose":"icon","uri":"<<RELATIVE_PATH_TO_RELEASE_ICON>>"},{"purpose":"screenshot","uri":"<<RELATIVE_PATH_TO_SCREENSHOT>>"}],"files":[{"purpose":"install","uri":"<<RELATIVE_PATH_TO_APK>>"}],"catalog":{"en-US":{"name":"<<APP_NAME>>\n","short_description":"<<SHORT_APP_DESCRIPTION>>\n","long_description":"<<LONG_APP_DESCRIPTION>>\n","new_in_version":"<<WHATS_NEW_IN_THIS_VERSION>>\n","saga_features":"<<ANY_FEATURES_ONLY_AVAILBLE_WHEN_RUNNING_ON_SAGA>>\n"}}},"solana_mobile_dapp_publisher_portal":{"google_store_package":"<<ANDROID_PACKAGE_NAME_OF_GOOGLE_PLAY_STORE_VERSION_IF_DIFFERENT>>","testing_instructions":"<<TESTING_INSTRUCTIONS>>\n"}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"type":"object","properties":{"publisher":{"type":"object","properties":{"name":{"type":"string"},"address":{"type":"string"},"website":{"type":"string"},"email":{"type":"string"},"media":{"type":"array","items":{"type":"object","properties":{"purpose":{"type":"string"},"uri":{"type":"string"}}}}}},"app":{"type":"object","properties":{"name":{"type":"string"},"address":{"type":"string"},"android_package":{"type":"string"},"urls":{"type":"object","properties":{"license_url":{"type":"string"},"copyright_url":{"type":"string"},"privacy_policy_url":{"type":"string"},"website":{"type":"string"}}},"media":{"type":"array","items":{"type":"object","properties":{"purpose":{"type":"string"},"uri":{"type":"string"}}}}}},"release":{"type":"object","properties":{"address":{"type":"string"},"media":{"type":"array","items":{"type":"object","properties":{"purpose":{"type":"string"},"uri":{"type":"string"}},"required":["purpose","uri"]}},"files":{"type":"array","items":{"type":"object","properties":{"purpose":{"type":"string"},"uri":{"type":"string"}}}},"catalog":{"type":"object","properties":{"en-US":{"type":"object","properties":{"name":{"type":"string"},"long_description":{"type":"string"},"new_in_version":{"type":"string"},"saga_features":{"type":"string"}}}}}}},"solana_mobile_dapp_publisher_portal":{"type":"object","properties":{"google_store_package":{"type":"string"},"testing_instructions":{"type":"string"}}}}}
|
|
1
|
+
{"type":"object","properties":{"publisher":{"type":"object","properties":{"name":{"type":"string"},"address":{"type":"string"},"website":{"type":"string"},"email":{"type":"string"},"media":{"type":"array","items":{"type":"object","properties":{"purpose":{"type":"string"},"uri":{"type":"string"}}}}}},"app":{"type":"object","properties":{"name":{"type":"string"},"address":{"type":"string"},"android_package":{"type":"string"},"urls":{"type":"object","properties":{"license_url":{"type":"string"},"copyright_url":{"type":"string"},"privacy_policy_url":{"type":"string"},"website":{"type":"string"}}},"media":{"type":"array","items":{"type":"object","properties":{"purpose":{"type":"string"},"uri":{"type":"string"}}}}}},"release":{"type":"object","properties":{"address":{"type":"string"},"media":{"type":"array","items":{"type":"object","properties":{"purpose":{"type":"string"},"uri":{"type":"string"}},"required":["purpose","uri"]}},"files":{"type":"array","items":{"type":"object","properties":{"purpose":{"type":"string"},"uri":{"type":"string"}}}},"catalog":{"type":"object","properties":{"en-US":{"type":"object","properties":{"name":{"type":"string"},"short_description":{"type":"string"},"long_description":{"type":"string"},"new_in_version":{"type":"string"},"saga_features":{"type":"string"}},"required":["short_description"]}}}}},"solana_mobile_dapp_publisher_portal":{"type":"object","properties":{"google_store_package":{"type":"string"},"testing_instructions":{"type":"string"}}}}}
|
package/src/index.ts
CHANGED
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
checkSubmissionNetwork,
|
|
13
13
|
Constants,
|
|
14
14
|
generateNetworkSuffix,
|
|
15
|
-
|
|
15
|
+
getConfigWithChecks,
|
|
16
16
|
parseKeypair,
|
|
17
17
|
showMessage
|
|
18
18
|
} from "./utils.js";
|
|
@@ -45,13 +45,24 @@ function resolveBuildToolsPath(buildToolsPath: string | undefined) {
|
|
|
45
45
|
return;
|
|
46
46
|
}
|
|
47
47
|
|
|
48
|
+
/**
|
|
49
|
+
* This method should be updated with each new release of the CLI, and just do nothing when there isn't anything to report
|
|
50
|
+
*/
|
|
51
|
+
function latestReleaseMessage() {
|
|
52
|
+
showMessage(
|
|
53
|
+
`Publishing Tools Version ${ Constants.CLI_VERSION }`,
|
|
54
|
+
"- The new field \`short_description\` has been added to the set of strings required in the `catalog` section for each locale.\n" +
|
|
55
|
+
"- You can now specify a release-specific icon in the release \`media\` section in your configuration file.", "warning"
|
|
56
|
+
)
|
|
57
|
+
}
|
|
58
|
+
|
|
48
59
|
async function tryWithErrorMessage(block: () => Promise<any>) {
|
|
49
60
|
try {
|
|
50
61
|
await block()
|
|
51
62
|
} catch (e) {
|
|
52
63
|
const errorMsg = (e as Error | null)?.message ?? "";
|
|
53
64
|
|
|
54
|
-
showMessage("Error", errorMsg,
|
|
65
|
+
showMessage("Error", errorMsg, "error");
|
|
55
66
|
}
|
|
56
67
|
}
|
|
57
68
|
|
|
@@ -59,7 +70,7 @@ async function main() {
|
|
|
59
70
|
program
|
|
60
71
|
.name("dapp-store")
|
|
61
72
|
.version(Constants.CLI_VERSION)
|
|
62
|
-
.description("CLI to assist with publishing to the Saga Dapp Store")
|
|
73
|
+
.description("CLI to assist with publishing to the Saga Dapp Store")
|
|
63
74
|
|
|
64
75
|
const initCommand = program
|
|
65
76
|
.command("init")
|
|
@@ -74,7 +85,7 @@ async function main() {
|
|
|
74
85
|
|
|
75
86
|
const createCommand = program
|
|
76
87
|
.command("create")
|
|
77
|
-
.description("Create a `publisher`, `app`, or `release`")
|
|
88
|
+
.description("Create a `publisher`, `app`, or `release`")
|
|
78
89
|
|
|
79
90
|
createCommand
|
|
80
91
|
.command("publisher")
|
|
@@ -87,6 +98,7 @@ async function main() {
|
|
|
87
98
|
.option("-d, --dry-run", "Flag for dry run. Doesn't mint an NFT")
|
|
88
99
|
.action(async ({ keypair, url, dryRun }) => {
|
|
89
100
|
tryWithErrorMessage(async () => {
|
|
101
|
+
latestReleaseMessage();
|
|
90
102
|
await checkForSelfUpdate();
|
|
91
103
|
|
|
92
104
|
const signer = parseKeypair(keypair);
|
|
@@ -116,9 +128,10 @@ async function main() {
|
|
|
116
128
|
.option("-d, --dry-run", "Flag for dry run. Doesn't mint an NFT")
|
|
117
129
|
.action(async ({ publisherMintAddress, keypair, url, dryRun }) => {
|
|
118
130
|
tryWithErrorMessage(async () => {
|
|
131
|
+
latestReleaseMessage();
|
|
119
132
|
await checkForSelfUpdate();
|
|
120
133
|
|
|
121
|
-
const config = await
|
|
134
|
+
const config = await getConfigWithChecks();
|
|
122
135
|
|
|
123
136
|
if (!hasAddressInConfig(config.publisher) && !publisherMintAddress) {
|
|
124
137
|
throw new Error("Either specify a publisher mint address in the config file or specify as a CLI argument to this command.")
|
|
@@ -160,6 +173,7 @@ async function main() {
|
|
|
160
173
|
)
|
|
161
174
|
.action(async ({ appMintAddress, keypair, url, dryRun, buildToolsPath }) => {
|
|
162
175
|
tryWithErrorMessage(async () => {
|
|
176
|
+
latestReleaseMessage();
|
|
163
177
|
await checkForSelfUpdate();
|
|
164
178
|
|
|
165
179
|
const resolvedBuildToolsPath = resolveBuildToolsPath(buildToolsPath);
|
|
@@ -167,7 +181,7 @@ async function main() {
|
|
|
167
181
|
throw new Error("Please specify an Android build tools directory in the .env file or via the command line argument.")
|
|
168
182
|
}
|
|
169
183
|
|
|
170
|
-
const config = await
|
|
184
|
+
const config = await getConfigWithChecks();
|
|
171
185
|
if (!hasAddressInConfig(config.app) && !appMintAddress) {
|
|
172
186
|
throw new Error("Either specify an app mint address in the config file or specify as a CLI argument to this command")
|
|
173
187
|
}
|
|
@@ -204,6 +218,7 @@ async function main() {
|
|
|
204
218
|
)
|
|
205
219
|
.action(async ({ keypair, buildToolsPath }) => {
|
|
206
220
|
tryWithErrorMessage(async () => {
|
|
221
|
+
latestReleaseMessage();
|
|
207
222
|
await checkForSelfUpdate();
|
|
208
223
|
|
|
209
224
|
const resolvedBuildToolsPath = resolveBuildToolsPath(buildToolsPath);
|
|
@@ -271,7 +286,7 @@ async function main() {
|
|
|
271
286
|
await checkForSelfUpdate();
|
|
272
287
|
await checkSubmissionNetwork(url);
|
|
273
288
|
|
|
274
|
-
const config = await
|
|
289
|
+
const config = await getConfigWithChecks();
|
|
275
290
|
|
|
276
291
|
if (!hasAddressInConfig(config.release) && !releaseMintAddress) {
|
|
277
292
|
throw new Error("Either specify a release mint address in the config file or specify as a CLI argument to this command.")
|
|
@@ -342,7 +357,7 @@ async function main() {
|
|
|
342
357
|
await checkForSelfUpdate();
|
|
343
358
|
await checkSubmissionNetwork(url);
|
|
344
359
|
|
|
345
|
-
const config = await
|
|
360
|
+
const config = await getConfigWithChecks();
|
|
346
361
|
|
|
347
362
|
if (!hasAddressInConfig(config.release) && !releaseMintAddress) {
|
|
348
363
|
throw new Error("Either specify a release mint address in the config file or specify as a CLI argument to this command.")
|
|
@@ -409,7 +424,7 @@ async function main() {
|
|
|
409
424
|
await checkForSelfUpdate();
|
|
410
425
|
await checkSubmissionNetwork(url);
|
|
411
426
|
|
|
412
|
-
const config = await
|
|
427
|
+
const config = await getConfigWithChecks();
|
|
413
428
|
|
|
414
429
|
if (!hasAddressInConfig(config.release) && !releaseMintAddress) {
|
|
415
430
|
throw new Error("Either specify a release mint address in the config file or specify as a CLI argument to this command.")
|
|
@@ -469,7 +484,7 @@ async function main() {
|
|
|
469
484
|
await checkForSelfUpdate();
|
|
470
485
|
await checkSubmissionNetwork(url);
|
|
471
486
|
|
|
472
|
-
const config = await
|
|
487
|
+
const config = await getConfigWithChecks();
|
|
473
488
|
|
|
474
489
|
if (!hasAddressInConfig(config.release) && !releaseMintAddress) {
|
|
475
490
|
throw new Error("Either specify a release mint address in the config file or specify as a CLI argument to this command.")
|
|
@@ -8,6 +8,13 @@ try {
|
|
|
8
8
|
fs.writeFileSync('./src/generated/config_obj.json', Buffer.from(JSON.stringify(convertedYaml)), 'utf-8');
|
|
9
9
|
|
|
10
10
|
const schema = generateSchema.json('result', convertedYaml);
|
|
11
|
+
// CLI 0.3.0: Adding requirement for `short_description` so validation will catch
|
|
12
|
+
schema["properties"]
|
|
13
|
+
["release"]
|
|
14
|
+
["properties"]
|
|
15
|
+
["catalog"]
|
|
16
|
+
["properties"]
|
|
17
|
+
["en-US"].required = ["short_description"];
|
|
11
18
|
|
|
12
19
|
// Generator adds some keys/values we don't need & mess up validation
|
|
13
20
|
delete schema.$schema;
|
package/src/utils.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import fs from "fs";
|
|
2
|
-
import type { AndroidDetails, App, Publisher, Release } from "@solana-mobile/dapp-store-publishing-tools";
|
|
2
|
+
import type { AndroidDetails, App, Publisher, Release, ReleaseJsonMetadata } from "@solana-mobile/dapp-store-publishing-tools";
|
|
3
3
|
import type { Connection } from "@solana/web3.js";
|
|
4
4
|
import { Keypair, PublicKey } from "@solana/web3.js";
|
|
5
5
|
import type { CLIConfig } from "./config/index.js";
|
|
@@ -22,7 +22,7 @@ const runImgSize = util.promisify(imageSize);
|
|
|
22
22
|
const runExec = util.promisify(exec);
|
|
23
23
|
|
|
24
24
|
export class Constants {
|
|
25
|
-
static CLI_VERSION = "0.
|
|
25
|
+
static CLI_VERSION = "0.3.0";
|
|
26
26
|
static CONFIG_FILE_NAME = "config.yaml";
|
|
27
27
|
}
|
|
28
28
|
|
|
@@ -75,7 +75,7 @@ const AaptPrefixes = {
|
|
|
75
75
|
localePrefix: "locales: ",
|
|
76
76
|
};
|
|
77
77
|
|
|
78
|
-
export const
|
|
78
|
+
export const getConfigWithChecks = async (
|
|
79
79
|
buildToolsDir: string | null = null
|
|
80
80
|
): Promise<CLIConfig> => {
|
|
81
81
|
const configFilePath = `${process.cwd()}/${Constants.CONFIG_FILE_NAME}`;
|
|
@@ -142,6 +142,15 @@ export const getConfigFile = async (
|
|
|
142
142
|
}
|
|
143
143
|
});
|
|
144
144
|
|
|
145
|
+
const baselineSize = Object.keys(config.release.catalog["en-US"]).length;
|
|
146
|
+
Object.keys(config.release.catalog).forEach((locale) => {
|
|
147
|
+
const size = Object.keys(config.release.catalog[locale]).length;
|
|
148
|
+
|
|
149
|
+
if (size != baselineSize) {
|
|
150
|
+
throw new Error("Please ensure you have included all localized strings for all locales in your configuration file.");
|
|
151
|
+
}
|
|
152
|
+
});
|
|
153
|
+
|
|
145
154
|
return config;
|
|
146
155
|
};
|
|
147
156
|
|
|
@@ -196,17 +205,27 @@ export const generateNetworkSuffix = (rpcUrl: string): string => {
|
|
|
196
205
|
export const showMessage = (
|
|
197
206
|
titleMessage = "",
|
|
198
207
|
contentMessage = "",
|
|
199
|
-
|
|
200
|
-
) => {
|
|
201
|
-
|
|
208
|
+
type: "standard" | "error" | "warning" = "standard",
|
|
209
|
+
): string => {
|
|
210
|
+
let color = "cyan";
|
|
211
|
+
if (type == "error") {
|
|
212
|
+
color = "redBright";
|
|
213
|
+
} else if (type == "warning") {
|
|
214
|
+
color = "yellow";
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
const msg = boxen(contentMessage, {
|
|
202
218
|
title: titleMessage,
|
|
203
219
|
padding: 1,
|
|
204
220
|
margin: 1,
|
|
205
221
|
borderStyle: 'single',
|
|
206
|
-
borderColor:
|
|
222
|
+
borderColor: color,
|
|
207
223
|
textAlignment: "left",
|
|
208
|
-
titleAlignment: "center"
|
|
209
|
-
})
|
|
224
|
+
titleAlignment: "center",
|
|
225
|
+
});
|
|
226
|
+
|
|
227
|
+
console.log(msg);
|
|
228
|
+
return msg;
|
|
210
229
|
};
|
|
211
230
|
|
|
212
231
|
const checkIconDimensions = async (iconPath: string): Promise<boolean> => {
|
|
@@ -272,7 +291,7 @@ export const saveToConfig = async ({
|
|
|
272
291
|
app,
|
|
273
292
|
release,
|
|
274
293
|
}: SaveToConfigArgs) => {
|
|
275
|
-
const currentConfig = await
|
|
294
|
+
const currentConfig = await getConfigWithChecks();
|
|
276
295
|
|
|
277
296
|
delete currentConfig.publisher.icon;
|
|
278
297
|
delete currentConfig.app.icon;
|
package/src/config/schema.json
DELETED
|
@@ -1,195 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"type": "object",
|
|
3
|
-
"properties": {
|
|
4
|
-
"publisher": {
|
|
5
|
-
"type": "object",
|
|
6
|
-
"properties": {
|
|
7
|
-
"name": {
|
|
8
|
-
"type": "string"
|
|
9
|
-
},
|
|
10
|
-
"address": {
|
|
11
|
-
"type": "string"
|
|
12
|
-
},
|
|
13
|
-
"website": {
|
|
14
|
-
"type": "string"
|
|
15
|
-
},
|
|
16
|
-
"email": {
|
|
17
|
-
"type": "string"
|
|
18
|
-
},
|
|
19
|
-
"media": {
|
|
20
|
-
"type": "array",
|
|
21
|
-
"items": [
|
|
22
|
-
{
|
|
23
|
-
"type": "object",
|
|
24
|
-
"properties": {
|
|
25
|
-
"purpose": {
|
|
26
|
-
"type": "string"
|
|
27
|
-
},
|
|
28
|
-
"uri": {
|
|
29
|
-
"type": "string"
|
|
30
|
-
}
|
|
31
|
-
},
|
|
32
|
-
"required": ["purpose", "uri"]
|
|
33
|
-
}
|
|
34
|
-
]
|
|
35
|
-
}
|
|
36
|
-
},
|
|
37
|
-
"required": ["name", "website", "email", "media"]
|
|
38
|
-
},
|
|
39
|
-
"app": {
|
|
40
|
-
"type": "object",
|
|
41
|
-
"properties": {
|
|
42
|
-
"name": {
|
|
43
|
-
"type": "string"
|
|
44
|
-
},
|
|
45
|
-
"address": {
|
|
46
|
-
"type": "string"
|
|
47
|
-
},
|
|
48
|
-
"android_package": {
|
|
49
|
-
"type": "string"
|
|
50
|
-
},
|
|
51
|
-
"urls": {
|
|
52
|
-
"type": "object",
|
|
53
|
-
"properties": {
|
|
54
|
-
"license_url": {
|
|
55
|
-
"type": "string"
|
|
56
|
-
},
|
|
57
|
-
"copyright_url": {
|
|
58
|
-
"type": "string"
|
|
59
|
-
},
|
|
60
|
-
"privacy_policy_url": {
|
|
61
|
-
"type": "string"
|
|
62
|
-
},
|
|
63
|
-
"website": {
|
|
64
|
-
"type": "string"
|
|
65
|
-
}
|
|
66
|
-
},
|
|
67
|
-
"required": [
|
|
68
|
-
"license_url",
|
|
69
|
-
"copyright_url",
|
|
70
|
-
"privacy_policy_url",
|
|
71
|
-
"website"
|
|
72
|
-
]
|
|
73
|
-
},
|
|
74
|
-
"media": {
|
|
75
|
-
"type": "array",
|
|
76
|
-
"items": [
|
|
77
|
-
{
|
|
78
|
-
"type": "object",
|
|
79
|
-
"properties": {
|
|
80
|
-
"purpose": {
|
|
81
|
-
"type": "string"
|
|
82
|
-
},
|
|
83
|
-
"uri": {
|
|
84
|
-
"type": "string"
|
|
85
|
-
}
|
|
86
|
-
},
|
|
87
|
-
"required": ["purpose", "uri"]
|
|
88
|
-
}
|
|
89
|
-
]
|
|
90
|
-
}
|
|
91
|
-
},
|
|
92
|
-
"required": ["name", "android_package", "urls", "media"]
|
|
93
|
-
},
|
|
94
|
-
"release": {
|
|
95
|
-
"type": "object",
|
|
96
|
-
"properties": {
|
|
97
|
-
"address": {
|
|
98
|
-
"type": "string"
|
|
99
|
-
},
|
|
100
|
-
"media": {
|
|
101
|
-
"type": "array",
|
|
102
|
-
"items": [
|
|
103
|
-
{
|
|
104
|
-
"type": "object",
|
|
105
|
-
"properties": {
|
|
106
|
-
"purpose": {
|
|
107
|
-
"type": "string"
|
|
108
|
-
},
|
|
109
|
-
"uri": {
|
|
110
|
-
"type": "string"
|
|
111
|
-
}
|
|
112
|
-
},
|
|
113
|
-
"required": ["purpose", "uri"]
|
|
114
|
-
}
|
|
115
|
-
]
|
|
116
|
-
},
|
|
117
|
-
"files": {
|
|
118
|
-
"type": "array",
|
|
119
|
-
"minItems": 1,
|
|
120
|
-
"contains": {
|
|
121
|
-
"type": "object",
|
|
122
|
-
"properties": {
|
|
123
|
-
"purpose": {
|
|
124
|
-
"type": "string",
|
|
125
|
-
"const": "install"
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
},
|
|
129
|
-
"items": [
|
|
130
|
-
{
|
|
131
|
-
"type": "object",
|
|
132
|
-
"properties": {
|
|
133
|
-
"purpose": {
|
|
134
|
-
"type": "string"
|
|
135
|
-
},
|
|
136
|
-
"uri": {
|
|
137
|
-
"type": "string"
|
|
138
|
-
}
|
|
139
|
-
},
|
|
140
|
-
"required": ["purpose", "uri"]
|
|
141
|
-
}
|
|
142
|
-
]
|
|
143
|
-
},
|
|
144
|
-
"catalog": {
|
|
145
|
-
"type": "object",
|
|
146
|
-
"patternProperties": {
|
|
147
|
-
"^[a-zA-Z]{2,8}(-[a-zA-Z0-9]{2,8})*$": {
|
|
148
|
-
"type": "object",
|
|
149
|
-
"properties": {
|
|
150
|
-
"name": {
|
|
151
|
-
"type": "string"
|
|
152
|
-
},
|
|
153
|
-
"long_description": {
|
|
154
|
-
"type": "string"
|
|
155
|
-
},
|
|
156
|
-
"new_in_version": {
|
|
157
|
-
"type": "string"
|
|
158
|
-
},
|
|
159
|
-
"saga_features": {
|
|
160
|
-
"type": "string"
|
|
161
|
-
}
|
|
162
|
-
},
|
|
163
|
-
"required": [
|
|
164
|
-
"name",
|
|
165
|
-
"long_description",
|
|
166
|
-
"new_in_version",
|
|
167
|
-
"saga_features"
|
|
168
|
-
]
|
|
169
|
-
}
|
|
170
|
-
},
|
|
171
|
-
"additionalProperties": false
|
|
172
|
-
}
|
|
173
|
-
},
|
|
174
|
-
"required": ["media", "files", "catalog"]
|
|
175
|
-
},
|
|
176
|
-
"solana_mobile_dapp_publisher_portal": {
|
|
177
|
-
"type": "object",
|
|
178
|
-
"properties": {
|
|
179
|
-
"google_store_package": {
|
|
180
|
-
"type": "string"
|
|
181
|
-
},
|
|
182
|
-
"testing_instructions": {
|
|
183
|
-
"type": "string"
|
|
184
|
-
}
|
|
185
|
-
},
|
|
186
|
-
"required": ["testing_instructions"]
|
|
187
|
-
}
|
|
188
|
-
},
|
|
189
|
-
"required": [
|
|
190
|
-
"publisher",
|
|
191
|
-
"app",
|
|
192
|
-
"release",
|
|
193
|
-
"solana_mobile_dapp_publisher_portal"
|
|
194
|
-
]
|
|
195
|
-
}
|