diff --git a/.changeset/tough-seahorses-prove.md b/.changeset/tough-seahorses-prove.md new file mode 100644 index 0000000000..ee74b3226e --- /dev/null +++ b/.changeset/tough-seahorses-prove.md @@ -0,0 +1,6 @@ +--- +"app-builder-lib": patch +"builder-util-runtime": patch +--- + +fix: adding snapStore to AllPublishOptions so that it properly is generated via `pnpm schema` diff --git a/packages/app-builder-lib/scheme.json b/packages/app-builder-lib/scheme.json index aac9ec7386..685d59f019 100644 --- a/packages/app-builder-lib/scheme.json +++ b/packages/app-builder-lib/scheme.json @@ -1522,12 +1522,23 @@ "type": "string" }, "channel": { + "anyOf": [ + { + "enum": [ + "alpha", + "beta", + "dev", + "rc", + "stable" + ], + "type": "string" + }, + { + "type": "null" + } + ], "default": "stable", - "description": "The channel.", - "type": [ - "null", - "string" - ] + "description": "The channel." }, "platform": { "description": "The target Platform. Is set programmatically explicitly during publishing.", @@ -4702,19 +4713,6 @@ ], "type": "object" }, - "PublishProvider": { - "enum": [ - "bintray", - "custom", - "generic", - "github", - "keygen", - "s3", - "snapStore", - "spaces" - ], - "type": "string" - }, "ReleaseInfo": { "additionalProperties": false, "properties": { @@ -5254,8 +5252,11 @@ "description": "The list of channels the snap would be released." }, "provider": { - "$ref": "#/definitions/PublishProvider", - "description": "The provider." + "description": "The provider. Must be `snapStore`.", + "enum": [ + "snapStore" + ], + "type": "string" }, "publishAutoUpdate": { "default": true, @@ -5275,6 +5276,10 @@ } ] }, + "repo": { + "description": "snapcraft repo name", + "type": "string" + }, "requestHeaders": { "$ref": "#/definitions/OutgoingHttpHeaders", "description": "Any custom request headers" @@ -5287,7 +5292,8 @@ } }, "required": [ - "provider" + "provider", + "repo" ], "type": "object" }, @@ -6025,20 +6031,6 @@ ], "description": "The function (or path to file or module id) to be [run after all artifacts are build](#afterAllArtifactBuild)." }, - "beforePack": { - "anyOf": [ - { - "typeof": "function" - }, - { - "type": [ - "null", - "string" - ] - } - ], - "description": "The function (or path to file or module id) to be [run before pack](#beforepack)" - }, "afterPack": { "anyOf": [ { @@ -6201,6 +6193,19 @@ ], "description": "The function (or path to file or module id) to be run before dependencies are installed or rebuilt. Works when `npmRebuild` is set to `true`. Resolving to `false` will skip dependencies install or rebuild.\n\nIf provided and `node_modules` are missing, it will not invoke production dependencies check." }, + "beforePack": { + "anyOf": [ + { + "typeof": "function" + }, + { + "type": [ + "null", + "string" + ] + } + ] + }, "buildDependenciesFromSource": { "default": false, "description": "Whether to build the application native dependencies from source.", diff --git a/packages/app-builder-lib/src/configuration.ts b/packages/app-builder-lib/src/configuration.ts index e243b46aa5..94d1d58980 100644 --- a/packages/app-builder-lib/src/configuration.ts +++ b/packages/app-builder-lib/src/configuration.ts @@ -195,6 +195,9 @@ export interface Configuration extends PlatformSpecificBuildOptions { */ readonly framework?: string | null + /** + * The function (or path to file or module id) to be [run before pack](#beforepack) + */ readonly beforePack?: ((context: BeforePackContext) => Promise | any) | string | null /** diff --git a/packages/app-builder-lib/src/core.ts b/packages/app-builder-lib/src/core.ts index e672db4618..8cafe34318 100644 --- a/packages/app-builder-lib/src/core.ts +++ b/packages/app-builder-lib/src/core.ts @@ -1,9 +1,8 @@ import { Arch, archFromString, ArchType } from "builder-util" import { AllPublishOptions } from "builder-util-runtime" -import { SnapStoreOptions } from "./publish/SnapStorePublisher" // https://github.com/YousefED/typescript-json-schema/issues/80 -export type Publish = AllPublishOptions | SnapStoreOptions | Array | null +export type Publish = AllPublishOptions | Array | null export type TargetConfigType = Array | string | TargetConfiguration | null diff --git a/packages/app-builder-lib/src/index.ts b/packages/app-builder-lib/src/index.ts index 1a57485af1..bf4f189904 100644 --- a/packages/app-builder-lib/src/index.ts +++ b/packages/app-builder-lib/src/index.ts @@ -52,7 +52,6 @@ export { PublishManager } from "./publish/PublishManager" export { PlatformPackager } from "./platformPackager" export { Framework, PrepareApplicationStageDirectoryOptions } from "./Framework" export { buildForge, ForgeOptions } from "./forge-maker" -export { SnapStoreOptions } from "./publish/SnapStorePublisher" const expectedOptions = new Set(["publish", "targets", "mac", "win", "linux", "projectDir", "platformPackagerFactory", "config", "effectiveOptionComputed", "prepackaged"]) diff --git a/packages/app-builder-lib/src/publish/PublishManager.ts b/packages/app-builder-lib/src/publish/PublishManager.ts index fb421341b6..6c29922433 100644 --- a/packages/app-builder-lib/src/publish/PublishManager.ts +++ b/packages/app-builder-lib/src/publish/PublishManager.ts @@ -8,6 +8,7 @@ import { GithubOptions, githubUrl, KeygenOptions, + SnapStoreOptions, PublishConfiguration, PublishProvider, } from "builder-util-runtime" @@ -28,7 +29,7 @@ import { Packager } from "../packager" import { PlatformPackager } from "../platformPackager" import { expandMacro } from "../util/macroExpander" import { WinPackager } from "../winPackager" -import { SnapStoreOptions, SnapStorePublisher } from "./SnapStorePublisher" +import { SnapStorePublisher } from "./SnapStorePublisher" import { createUpdateInfoTasks, UpdateInfoFileTask, writeUpdateInfoFiles } from "./updateInfoBuilder" import { KeygenPublisher } from "./KeygenPublisher" diff --git a/packages/app-builder-lib/src/publish/SnapStorePublisher.ts b/packages/app-builder-lib/src/publish/SnapStorePublisher.ts index 442afbeeb8..dd934d28bf 100644 --- a/packages/app-builder-lib/src/publish/SnapStorePublisher.ts +++ b/packages/app-builder-lib/src/publish/SnapStorePublisher.ts @@ -1,7 +1,7 @@ import { Publisher, UploadTask, PublishContext } from "electron-publish" import { executeAppBuilder } from "builder-util" import * as path from "path" -import { PublishConfiguration } from "builder-util-runtime" +import { SnapStoreOptions } from "builder-util-runtime/out/publishOptions" export class SnapStorePublisher extends Publisher { readonly providerName = "snapStore" @@ -35,14 +35,3 @@ export class SnapStorePublisher extends Publisher { return "Snap Store" } } - -/** - * [Snap Store](https://snapcraft.io/) options. - */ -export interface SnapStoreOptions extends PublishConfiguration { - /** - * The list of channels the snap would be released. - * @default ["edge"] - */ - readonly channels?: string | Array | null -} diff --git a/packages/app-builder-lib/src/version.ts b/packages/app-builder-lib/src/version.ts index cb73cba551..b9cc3eb739 100644 --- a/packages/app-builder-lib/src/version.ts +++ b/packages/app-builder-lib/src/version.ts @@ -1,2 +1 @@ - export const PACKAGE_VERSION = "22.13.0" diff --git a/packages/builder-util-runtime/src/index.ts b/packages/builder-util-runtime/src/index.ts index 17b8007e55..4b14890650 100644 --- a/packages/builder-util-runtime/src/index.ts +++ b/packages/builder-util-runtime/src/index.ts @@ -19,6 +19,7 @@ export { GenericServerOptions, GithubOptions, KeygenOptions, + SnapStoreOptions, PublishConfiguration, S3Options, SpacesOptions, diff --git a/packages/builder-util-runtime/src/publishOptions.ts b/packages/builder-util-runtime/src/publishOptions.ts index a7e7412ddd..bdacaa9f82 100644 --- a/packages/builder-util-runtime/src/publishOptions.ts +++ b/packages/builder-util-runtime/src/publishOptions.ts @@ -3,7 +3,7 @@ import { OutgoingHttpHeaders } from "http" export type PublishProvider = "github" | "bintray" | "s3" | "spaces" | "generic" | "custom" | "snapStore" | "keygen" // typescript-json-schema generates only PublishConfiguration if it is specified in the list, so, it is not added here -export type AllPublishOptions = string | GithubOptions | S3Options | SpacesOptions | GenericServerOptions | BintrayOptions | CustomPublishOptions | KeygenOptions +export type AllPublishOptions = string | GithubOptions | S3Options | SpacesOptions | GenericServerOptions | BintrayOptions | CustomPublishOptions | KeygenOptions | SnapStoreOptions export interface PublishConfiguration { /** @@ -179,6 +179,27 @@ export interface KeygenOptions extends PublishConfiguration { readonly platform?: string | null } +/** + * [Snap Store](https://snapcraft.io/) options. + */ +export interface SnapStoreOptions extends PublishConfiguration { + /** + * The provider. Must be `snapStore`. + */ + readonly provider: "snapStore" + + /** + * snapcraft repo name + */ + readonly repo: string + + /** + * The list of channels the snap would be released. + * @default ["edge"] + */ + readonly channels?: string | Array | null +} + export interface BaseS3Options extends PublishConfiguration { /** * The update channel. diff --git a/scripts/update-package-version-export.js b/scripts/update-package-version-export.js index 46320bc303..97ebaa6b2b 100755 --- a/scripts/update-package-version-export.js +++ b/scripts/update-package-version-export.js @@ -4,6 +4,5 @@ const version = require(path.join(__dirname, "../packages/app-builder-lib/packag const destFile = path.join(__dirname, '../packages/app-builder-lib/src/version.ts') const { writeFileSync } = require("fs") -writeFileSync(destFile, ` -export const PACKAGE_VERSION = "${version}" +writeFileSync(destFile, `export const PACKAGE_VERSION = "${version}" `) \ No newline at end of file