@shopify/oxygen-cli 2.1.2-unstable.202310111449.0 → 2.1.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -117,7 +117,10 @@ class Deploy extends Command {
117
117
  // eslint-disable-next-line no-process-env
118
118
  process.env.UNSAFE_OXYGEN_DEPLOYMENT_URL || "https://oxygen.shopifyapps.com"
119
119
  );
120
- Bugsnag?.addMetadata("flags", { flags, deploymentUrl });
120
+ Bugsnag?.addMetadata("flags", {
121
+ flags: { ...flags, token: "***" },
122
+ deploymentUrl
123
+ });
121
124
  const config = {
122
125
  assetsDir: normalizePath(flags.assetsFolder),
123
126
  bugsnag: !flags.disableBugsnag,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/commands/oxygen/deploy.ts"],"names":[],"mappings":"AAAA,SAAQ,SAAS,aAAY;AAC7B,SAAQ,oBAAmB;AAC3B,SAAQ,qBAAoB;AAE5B,SAAQ,YAAY,yBAAwB;AAC5C,SAAQ,oBAAmB;AAC3B;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEP,SAAQ,yBAAwB;AAEzB,MAAM,eAAe,QAAQ;AAAA,EAClC,OAAO,cAAc;AAAA,EACrB,OAAO,SAAS;AAAA,EAChB,OAAO,QAAQ;AAAA,IACb,cAAc,MAAM,OAAO;AAAA,MACzB,MAAM;AAAA,MACN,aAAa;AAAA,MACb,SAAS,OAAO,eAAe,gBAAgB;AAAA,MAC/C,UAAU;AAAA,IACZ,CAAC;AAAA,IACD,cAAc,MAAM,OAAO;AAAA,MACzB,MAAM;AAAA,MACN,aAAa;AAAA,MACb,UAAU;AAAA,MACV,SAAS,OAAO,eAAe,mBAAoB;AAAA,MACnD,OAAO,CAAC,UAA2B;AACjC,aAAK,wBAAwB;AAC7B,eAAO,QAAQ,QAAQ,KAAK;AAAA,MAC9B;AAAA,IACF,CAAC;AAAA,IACD,gBAAgB,MAAM,QAAQ;AAAA,MAC5B,aAAa;AAAA,MACb,UAAU;AAAA,MACV,SAAS;AAAA,IACX,CAAC;AAAA,IACD,gBAAgB,MAAM,OAAO;AAAA,MAC3B,MAAM;AAAA,MACN,aAAa;AAAA,MACb,UAAU;AAAA,IACZ,CAAC;AAAA,IACD,yBAAyB,MAAM,QAAQ;AAAA,MACrC,MAAM;AAAA,MACN,aACE;AAAA,MACF,KAAK;AAAA,MACL,KAAK;AAAA,MACL,UAAU;AAAA,MACV,SAAS,eAAe;AAAA,IAC1B,CAAC;AAAA,IACD,MAAM,MAAM,OAAO;AAAA,MACjB,MAAM;AAAA,MACN,aAAa;AAAA,MACb,SAAS;AAAA,MACT,UAAU;AAAA,IACZ,CAAC;AAAA,IACD,kBAAkB,MAAM,QAAQ;AAAA,MAC9B,KAAK;AAAA,MACL,aAAa;AAAA,MACb,UAAU;AAAA,MACV,SAAS;AAAA,IACX,CAAC;AAAA,IACD,WAAW,MAAM,QAAQ;AAAA,MACvB,MAAM;AAAA,MACN,aAAa;AAAA,MACb,UAAU;AAAA,MACV,SAAS;AAAA,IACX,CAAC;AAAA,IACD,kBAAkB,MAAM,QAAQ;AAAA,MAC9B,MAAM;AAAA,MACN,aAAa;AAAA,MACb,UAAU;AAAA,MACV,SAAS;AAAA,IACX,CAAC;AAAA,IACD,OAAO,MAAM,OAAO;AAAA,MAClB,MAAM;AAAA,MACN,aAAa;AAAA,MACb,KAAK;AAAA,MACL,UAAU;AAAA,IACZ,CAAC;AAAA,IACD,cAAc,MAAM,OAAO;AAAA,MACzB,MAAM;AAAA,MACN,aAAa;AAAA,MACb,SAAS,OAAO,eAAe,gBAAgB;AAAA,MAC/C,UAAU;AAAA,IACZ,CAAC;AAAA,IACD,YAAY,MAAM,QAAQ;AAAA,MACxB,MAAM;AAAA,MACN,aAAa;AAAA,MACb,SAAS;AAAA,MACT,UAAU;AAAA,IACZ,CAAC;AAAA,IACD,qBAAqB,MAAM,OAAO;AAAA,MAChC,aACE;AAAA,MACF,UAAU;AAAA,MACV,KAAK;AAAA,IACP,CAAC;AAAA,IACD,aAAa,MAAM,OAAO;AAAA,MACxB,aACE;AAAA,MACF,UAAU;AAAA,MACV,KAAK;AAAA,IACP,CAAC;AAAA,IACD,cAAc,MAAM,OAAO;AAAA,MACzB,aACE;AAAA,MACF,UAAU;AAAA,MACV,KAAK;AAAA,IACP,CAAC;AAAA,IACD,iBAAiB,MAAM,OAAO;AAAA,MAC5B,aACE;AAAA,MACF,UAAU;AAAA,MACV,KAAK;AAAA,IACP,CAAC;AAAA,EACH;AAAA,EAEA,OAAO,wBAAwB;AAAA,EAE/B,MAAM,MAAM;AACV,QAAI;AACF,YAAM,EAAC,MAAK,IAAI,MAAM,KAAK,MAAM,MAAM;AAEvC,wBAAkB,MAAM,cAAc;AACtC,YAAM,UAAU,WAAW;AAE3B,YAAM;AAAA;AAAA,QAEJ,QAAQ,IAAI,gCACZ;AAAA;AACF,eAAS,YAAY,SAAS,EAAC,OAAO,cAAa,CAAC;AAEpD,YAAM,SAA2B;AAAA,QAC/B,WAAW,cAAc,MAAM,YAAY;AAAA,QAC3C,SAAS,CAAC,MAAM;AAAA,QAChB,cAAc,MAAM;AAAA,QACpB,iBAAiB,WAAW,MAAM,KAAM;AAAA,QACxC,gBAAgB,MAAM;AAAA,QACtB;AAAA,QACA,yBAAyB,MAAM;AAAA,QAC/B,UAAU;AAAA,UACR,aAAa,MAAM;AAAA,UACnB,KAAK,MAAM;AAAA,UACX,MAAM,MAAM;AAAA,UACZ,SAAS,MAAM;AAAA,QACjB;AAAA,QACA,kBAAkB,MAAM;AAAA,QACxB,UAAU,cAAc,MAAM,IAAI;AAAA,QAClC,WAAW,MAAM;AAAA,QACjB,kBAAkB,MAAM;AAAA,QACxB,WAAW,cAAc,MAAM,YAAY;AAAA,QAC3C,YAAY,MAAM;AAAA,MACpB;AAEA,YAAM,aAAa,EAAC,OAAM,CAAC;AAC3B,UAAI,CAAC,OAAO,yBAAyB,CAAC,OAAO,WAAW;AACtD,eAAO,eAAe,4BAA4B,MAAM;AAAA,MAC1D;AACA,YAAM,aAAa,EAAC,OAAM,CAAC;AAAA,IAC7B,SAAS,OAAO;AACd,YAAM,UAAU,WAAW;AAC3B,UAAI,YAAY,iBAAiB,SAAS,OAAO,UAAU,WAAW;AACpE,gBAAQ,OAAO,KAAK;AAAA,MACtB;AAEA,UAAI,EAAE,iBAAiB,QAAQ;AAC7B,qBAAa,KAAe;AAAA,MAC9B,WAAW,EAAE,iBAAiB,oBAAoB;AAChD,qBAAa,MAAM,OAAO;AAAA,MAC5B;AAEA,WAAK,KAAK,CAAC;AAAA,IACb;AAAA,EACF;AACF","sourcesContent":["import {Command, Flags} from '@oclif/core';\nimport {consoleError} from '@shopify/cli-kit/node/output';\nimport {normalizePath} from '@shopify/cli-kit/node/path';\n\nimport {getBugsnag, initializeBugsnag} from '../../utils/bugsnag.js';\nimport {createDeploy} from '../../deploy/index.js';\nimport {\n deployDefaults,\n getBuildCommandFromLockFile,\n parseToken,\n verifyConfig,\n} from '../../utils/utils.js';\nimport type {DeploymentConfig} from '../../deploy/types.js';\nimport {VerificationError} from '../../deploy/types.js';\n\nexport class Deploy extends Command {\n static description = 'Creates a deployment to Oxygen';\n static hidden = false;\n static flags = {\n assetsFolder: Flags.string({\n char: 'a',\n description: 'Assets folder',\n default: String(deployDefaults.assetsDirDefault),\n required: false,\n }),\n buildCommand: Flags.string({\n char: 'b',\n description: 'Build command',\n required: false,\n default: String(deployDefaults.buildCommandDefault!),\n parse: (input): Promise<string> => {\n this.hasCustomBuildCommand = true;\n return Promise.resolve(input);\n },\n }),\n disableBugsnag: Flags.boolean({\n description: 'Disable Bugsnag error reporting',\n required: false,\n default: false,\n }),\n environmentTag: Flags.string({\n char: 'e',\n description: 'Tag of the environment to deploy to',\n required: false,\n }),\n verificationMaxDuration: Flags.integer({\n char: 'd',\n description:\n 'the maximum duration (in seconds) that the deployment verification step is allowed to run before it is considered failed.',\n min: 10,\n max: 300,\n required: false,\n default: deployDefaults.verificationMaxDurationDefault as number,\n }),\n path: Flags.string({\n char: 'p',\n description: 'Root path',\n default: './',\n required: false,\n }),\n publicDeployment: Flags.boolean({\n env: 'OXYGEN_PUBLIC_DEPLOYMENT',\n description: 'Marks a preview deployment as publicly accessible.',\n required: false,\n default: false,\n }),\n skipBuild: Flags.boolean({\n char: 's',\n description: 'Skip running build command',\n required: false,\n default: false,\n }),\n skipVerification: Flags.boolean({\n char: 'v',\n description: 'Skip running deployment verification step',\n required: false,\n default: false,\n }),\n token: Flags.string({\n char: 't',\n description: 'Oxygen deployment token',\n env: 'OXYGEN_DEPLOYMENT_TOKEN',\n required: true,\n }),\n workerFolder: Flags.string({\n char: 'w',\n description: 'Worker folder',\n default: String(deployDefaults.workerDirDefault),\n required: false,\n }),\n workerOnly: Flags.boolean({\n char: 'o',\n description: 'Worker only deployment',\n default: false,\n required: false,\n }),\n metadataDescription: Flags.string({\n description:\n 'Description of the deployment. Will be saved and displayed in the Shopify admin',\n required: false,\n env: 'OXYGEN_METADATA_DESCRIPTION',\n }),\n metadataUrl: Flags.string({\n description:\n 'URL that links to the deployment. Will be saved and displayed in the Shopify admin',\n required: false,\n env: 'OXYGEN_METADATA_URL',\n }),\n metadataUser: Flags.string({\n description:\n 'User that initiated the deployment. Will be saved and displayed in the Shopify admin',\n required: false,\n env: 'OXYGEN_METADATA_USER',\n }),\n metadataVersion: Flags.string({\n description:\n 'A version identifier for the deployment. Will be saved and displayed in the Shopify admin',\n required: false,\n env: 'OXYGEN_METADATA_VERSION',\n }),\n };\n\n static hasCustomBuildCommand = false;\n\n async run() {\n try {\n const {flags} = await this.parse(Deploy);\n\n initializeBugsnag(flags.disableBugsnag);\n const Bugsnag = getBugsnag();\n\n const deploymentUrl =\n // eslint-disable-next-line no-process-env\n process.env.UNSAFE_OXYGEN_DEPLOYMENT_URL ||\n 'https://oxygen.shopifyapps.com';\n Bugsnag?.addMetadata('flags', {flags, deploymentUrl});\n\n const config: DeploymentConfig = {\n assetsDir: normalizePath(flags.assetsFolder),\n bugsnag: !flags.disableBugsnag,\n buildCommand: flags.buildCommand!,\n deploymentToken: parseToken(flags.token!),\n environmentTag: flags.environmentTag,\n deploymentUrl,\n verificationMaxDuration: flags.verificationMaxDuration,\n metadata: {\n description: flags.metadataDescription,\n url: flags.metadataUrl,\n user: flags.metadataUser,\n version: flags.metadataVersion,\n },\n publicDeployment: flags.publicDeployment,\n rootPath: normalizePath(flags.path),\n skipBuild: flags.skipBuild,\n skipVerification: flags.skipVerification,\n workerDir: normalizePath(flags.workerFolder),\n workerOnly: flags.workerOnly,\n };\n\n await verifyConfig({config});\n if (!Deploy.hasCustomBuildCommand && !config.skipBuild) {\n config.buildCommand = getBuildCommandFromLockFile(config);\n }\n await createDeploy({config});\n } catch (error) {\n const Bugsnag = getBugsnag();\n if (Bugsnag && (error instanceof Error || typeof error === 'string')) {\n Bugsnag.notify(error);\n }\n\n if (!(error instanceof Error)) {\n consoleError(error as string);\n } else if (!(error instanceof VerificationError)) {\n consoleError(error.message);\n }\n\n this.exit(1);\n }\n }\n}\n"]}
1
+ {"version":3,"sources":["../../../src/commands/oxygen/deploy.ts"],"names":[],"mappings":"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","sourcesContent":["import {Command, Flags} from '@oclif/core';\nimport {consoleError} from '@shopify/cli-kit/node/output';\nimport {normalizePath} from '@shopify/cli-kit/node/path';\n\nimport {getBugsnag, initializeBugsnag} from '../../utils/bugsnag.js';\nimport {createDeploy} from '../../deploy/index.js';\nimport {\n deployDefaults,\n getBuildCommandFromLockFile,\n parseToken,\n verifyConfig,\n} from '../../utils/utils.js';\nimport type {DeploymentConfig} from '../../deploy/types.js';\nimport {VerificationError} from '../../deploy/types.js';\n\nexport class Deploy extends Command {\n static description = 'Creates a deployment to Oxygen';\n static hidden = false;\n static flags = {\n assetsFolder: Flags.string({\n char: 'a',\n description: 'Assets folder',\n default: String(deployDefaults.assetsDirDefault),\n required: false,\n }),\n buildCommand: Flags.string({\n char: 'b',\n description: 'Build command',\n required: false,\n default: String(deployDefaults.buildCommandDefault!),\n parse: (input): Promise<string> => {\n this.hasCustomBuildCommand = true;\n return Promise.resolve(input);\n },\n }),\n disableBugsnag: Flags.boolean({\n description: 'Disable Bugsnag error reporting',\n required: false,\n default: false,\n }),\n environmentTag: Flags.string({\n char: 'e',\n description: 'Tag of the environment to deploy to',\n required: false,\n }),\n verificationMaxDuration: Flags.integer({\n char: 'd',\n description:\n 'the maximum duration (in seconds) that the deployment verification step is allowed to run before it is considered failed.',\n min: 10,\n max: 300,\n required: false,\n default: deployDefaults.verificationMaxDurationDefault as number,\n }),\n path: Flags.string({\n char: 'p',\n description: 'Root path',\n default: './',\n required: false,\n }),\n publicDeployment: Flags.boolean({\n env: 'OXYGEN_PUBLIC_DEPLOYMENT',\n description: 'Marks a preview deployment as publicly accessible.',\n required: false,\n default: false,\n }),\n skipBuild: Flags.boolean({\n char: 's',\n description: 'Skip running build command',\n required: false,\n default: false,\n }),\n skipVerification: Flags.boolean({\n char: 'v',\n description: 'Skip running deployment verification step',\n required: false,\n default: false,\n }),\n token: Flags.string({\n char: 't',\n description: 'Oxygen deployment token',\n env: 'OXYGEN_DEPLOYMENT_TOKEN',\n required: true,\n }),\n workerFolder: Flags.string({\n char: 'w',\n description: 'Worker folder',\n default: String(deployDefaults.workerDirDefault),\n required: false,\n }),\n workerOnly: Flags.boolean({\n char: 'o',\n description: 'Worker only deployment',\n default: false,\n required: false,\n }),\n metadataDescription: Flags.string({\n description:\n 'Description of the deployment. Will be saved and displayed in the Shopify admin',\n required: false,\n env: 'OXYGEN_METADATA_DESCRIPTION',\n }),\n metadataUrl: Flags.string({\n description:\n 'URL that links to the deployment. Will be saved and displayed in the Shopify admin',\n required: false,\n env: 'OXYGEN_METADATA_URL',\n }),\n metadataUser: Flags.string({\n description:\n 'User that initiated the deployment. Will be saved and displayed in the Shopify admin',\n required: false,\n env: 'OXYGEN_METADATA_USER',\n }),\n metadataVersion: Flags.string({\n description:\n 'A version identifier for the deployment. Will be saved and displayed in the Shopify admin',\n required: false,\n env: 'OXYGEN_METADATA_VERSION',\n }),\n };\n\n static hasCustomBuildCommand = false;\n\n async run() {\n try {\n const {flags} = await this.parse(Deploy);\n\n initializeBugsnag(flags.disableBugsnag);\n const Bugsnag = getBugsnag();\n\n const deploymentUrl =\n // eslint-disable-next-line no-process-env\n process.env.UNSAFE_OXYGEN_DEPLOYMENT_URL ||\n 'https://oxygen.shopifyapps.com';\n Bugsnag?.addMetadata('flags', {\n flags: {...flags, token: '***'},\n deploymentUrl,\n });\n\n const config: DeploymentConfig = {\n assetsDir: normalizePath(flags.assetsFolder),\n bugsnag: !flags.disableBugsnag,\n buildCommand: flags.buildCommand!,\n deploymentToken: parseToken(flags.token!),\n environmentTag: flags.environmentTag,\n deploymentUrl,\n verificationMaxDuration: flags.verificationMaxDuration,\n metadata: {\n description: flags.metadataDescription,\n url: flags.metadataUrl,\n user: flags.metadataUser,\n version: flags.metadataVersion,\n },\n publicDeployment: flags.publicDeployment,\n rootPath: normalizePath(flags.path),\n skipBuild: flags.skipBuild,\n skipVerification: flags.skipVerification,\n workerDir: normalizePath(flags.workerFolder),\n workerOnly: flags.workerOnly,\n };\n\n await verifyConfig({config});\n if (!Deploy.hasCustomBuildCommand && !config.skipBuild) {\n config.buildCommand = getBuildCommandFromLockFile(config);\n }\n await createDeploy({config});\n } catch (error) {\n const Bugsnag = getBugsnag();\n if (Bugsnag && (error instanceof Error || typeof error === 'string')) {\n Bugsnag.notify(error);\n }\n\n if (!(error instanceof Error)) {\n consoleError(error as string);\n } else if (!(error instanceof VerificationError)) {\n consoleError(error.message);\n }\n\n this.exit(1);\n }\n }\n}\n"]}
@@ -17,7 +17,10 @@ import { getMetadata, createLabels, getEnvironmentInput } from './metadata.js';
17
17
  async function createDeploy(options) {
18
18
  initializeBugsnag(!options.config.bugsnag);
19
19
  const Bugsnag = getBugsnag();
20
- Bugsnag?.addMetadata("config", options.config);
20
+ Bugsnag?.addMetadata("config", {
21
+ ...options.config,
22
+ deploymentToken: { ...options.config.deploymentToken, accessToken: "***" }
23
+ });
21
24
  const { config, hooks } = options;
22
25
  const logger = options.logger ?? stderrLogger;
23
26
  const build = {};
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/deploy/index.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Logger,\n outputInfo,\n outputSuccess,\n outputWarn,\n} from '@shopify/cli-kit/node/output';\n\nimport {stderrLogger, verifyConfig} from '../utils/utils.js';\nimport {getBugsnag, initializeBugsnag} from '../utils/bugsnag.js';\n\nimport {buildInitiate} from './build-initiate.js';\nimport {buildCancel} from './build-cancel.js';\nimport {getUploadFiles} from './get-upload-files.js';\nimport {deploymentInitiate} from './deployment-initiate.js';\nimport {deploymentComplete} from './deployment-complete.js';\nimport {verifyDeployment} from './verify-deployment.js';\nimport {deploymentCancel} from './deployment-cancel.js';\nimport {uploadFiles} from './upload-files.js';\nimport {\n Build,\n DeploymentConfig,\n DeploymentHooks,\n VerificationError,\n} from './types.js';\nimport {buildProject} from './build-project.js';\nimport {createLabels, getMetadata, getEnvironmentInput} from './metadata.js';\n\ninterface CreateDeployOptions {\n config: DeploymentConfig;\n hooks?: DeploymentHooks;\n logger?: Logger;\n}\n\nexport async function createDeploy(\n options: CreateDeployOptions,\n): Promise<string | undefined> {\n initializeBugsnag(!options.config.bugsnag);\n const Bugsnag = getBugsnag();\n Bugsnag?.addMetadata('config', options.config);\n\n const {config, hooks} = options;\n const logger = options.logger ?? stderrLogger;\n const build = {} as Build;\n let buildCompleted;\n let deployment;\n\n try {\n const metadata = await getMetadata(config, logger);\n const labels = createLabels(metadata);\n const environment = getEnvironmentInput(config, metadata);\n Bugsnag?.addMetadata('metadata', {\n environment,\n labels,\n metadata,\n });\n\n if (!config.workerOnly && !config.skipBuild) {\n const buildInitiateResponse = await buildInitiate({\n config,\n environment,\n labels,\n logger,\n });\n build.id = buildInitiateResponse.build.id;\n build.assetPath = buildInitiateResponse.build.assetPath;\n }\n\n if (!config.skipBuild) {\n await buildProject({\n config,\n assetPath: build.assetPath,\n hooks,\n });\n verifyConfig({config, performedBuild: true});\n }\n buildCompleted = true;\n\n const manifest = await getUploadFiles(config);\n Bugsnag?.addMetadata('manifest', manifest);\n const deploymentInitiateInput = build.id\n ? {buildId: build.id, manifest}\n : {environment, manifest, labels};\n\n deployment = await deploymentInitiate({\n config,\n input: deploymentInitiateInput,\n logger,\n });\n Bugsnag?.addMetadata('targets', deployment.deploymentTargets);\n await uploadFiles({\n config,\n targets: deployment.deploymentTargets,\n hooks,\n logger,\n });\n const deploymentCompleteOp = await deploymentComplete(\n config,\n deployment.deployment.id,\n );\n\n if (!config.skipVerification) {\n await verifyDeployment({\n config,\n url: deploymentCompleteOp.deployment.url,\n logger,\n hooks,\n });\n }\n\n const urlMessage = config.publicDeployment ? 'public' : 'private';\n outputSuccess(\n `\\nThe deployment can be reached at the ${deploymentCompleteOp.deployment.url} ${urlMessage} preview URL`,\n logger,\n );\n // in CI environments, we want to output the URL to stdout\n if (metadata.name !== 'none') {\n outputInfo(deploymentCompleteOp.deployment.url);\n }\n\n return deploymentCompleteOp.deployment.url;\n } catch (error) {\n if (\n config.bugsnag &&\n Bugsnag &&\n (error instanceof Error || typeof error === 'string')\n ) {\n Bugsnag.notify(error);\n }\n\n if (!(error instanceof Error)) {\n // eslint-disable-next-line no-console\n console.error('Unknown error', error);\n return Promise.reject(new Error('Unknown error'));\n }\n\n if (error instanceof VerificationError) {\n outputWarn(error.message, logger);\n } else if (build.id && !buildCompleted) {\n outputWarn(\n `Build failed with: ${error.message}, cancelling build.`,\n logger,\n );\n await buildCancel({\n config,\n buildId: build.id!,\n reason: error.message,\n logger,\n }).catch((err) => {\n if (err instanceof Error) {\n outputWarn(`Failed to cancel build: ${err.message}`, logger);\n }\n });\n } else if (deployment?.deployment.id) {\n outputWarn(\n `Deployment failed with: ${error.message}, cancelling deployment.`,\n logger,\n );\n await deploymentCancel({\n config,\n deploymentId: deployment.deployment.id,\n reason: error.message,\n logger,\n }).catch((err) => {\n if (err instanceof Error) {\n outputWarn(`Failed to cancel deployment: ${err.message}`, logger);\n }\n });\n }\n return Promise.reject(error);\n }\n}\n\nexport type {DeploymentConfig, DeploymentHooks};\nexport {parseToken} from '../utils/utils.js';\n"]}
1
+ {"version":3,"sources":["../../src/deploy/index.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Logger,\n outputInfo,\n outputSuccess,\n outputWarn,\n} from '@shopify/cli-kit/node/output';\n\nimport {stderrLogger, verifyConfig} from '../utils/utils.js';\nimport {getBugsnag, initializeBugsnag} from '../utils/bugsnag.js';\n\nimport {buildInitiate} from './build-initiate.js';\nimport {buildCancel} from './build-cancel.js';\nimport {getUploadFiles} from './get-upload-files.js';\nimport {deploymentInitiate} from './deployment-initiate.js';\nimport {deploymentComplete} from './deployment-complete.js';\nimport {verifyDeployment} from './verify-deployment.js';\nimport {deploymentCancel} from './deployment-cancel.js';\nimport {uploadFiles} from './upload-files.js';\nimport {\n Build,\n DeploymentConfig,\n DeploymentHooks,\n VerificationError,\n} from './types.js';\nimport {buildProject} from './build-project.js';\nimport {createLabels, getMetadata, getEnvironmentInput} from './metadata.js';\n\ninterface CreateDeployOptions {\n config: DeploymentConfig;\n hooks?: DeploymentHooks;\n logger?: Logger;\n}\n\nexport async function createDeploy(\n options: CreateDeployOptions,\n): Promise<string | undefined> {\n initializeBugsnag(!options.config.bugsnag);\n const Bugsnag = getBugsnag();\n Bugsnag?.addMetadata('config', {\n ...options.config,\n deploymentToken: {...options.config.deploymentToken, accessToken: '***'},\n });\n\n const {config, hooks} = options;\n const logger = options.logger ?? stderrLogger;\n const build = {} as Build;\n let buildCompleted;\n let deployment;\n\n try {\n const metadata = await getMetadata(config, logger);\n const labels = createLabels(metadata);\n const environment = getEnvironmentInput(config, metadata);\n Bugsnag?.addMetadata('metadata', {\n environment,\n labels,\n metadata,\n });\n\n if (!config.workerOnly && !config.skipBuild) {\n const buildInitiateResponse = await buildInitiate({\n config,\n environment,\n labels,\n logger,\n });\n build.id = buildInitiateResponse.build.id;\n build.assetPath = buildInitiateResponse.build.assetPath;\n }\n\n if (!config.skipBuild) {\n await buildProject({\n config,\n assetPath: build.assetPath,\n hooks,\n });\n verifyConfig({config, performedBuild: true});\n }\n buildCompleted = true;\n\n const manifest = await getUploadFiles(config);\n Bugsnag?.addMetadata('manifest', manifest);\n const deploymentInitiateInput = build.id\n ? {buildId: build.id, manifest}\n : {environment, manifest, labels};\n\n deployment = await deploymentInitiate({\n config,\n input: deploymentInitiateInput,\n logger,\n });\n Bugsnag?.addMetadata('targets', deployment.deploymentTargets);\n await uploadFiles({\n config,\n targets: deployment.deploymentTargets,\n hooks,\n logger,\n });\n const deploymentCompleteOp = await deploymentComplete(\n config,\n deployment.deployment.id,\n );\n\n if (!config.skipVerification) {\n await verifyDeployment({\n config,\n url: deploymentCompleteOp.deployment.url,\n logger,\n hooks,\n });\n }\n\n const urlMessage = config.publicDeployment ? 'public' : 'private';\n outputSuccess(\n `\\nThe deployment can be reached at the ${deploymentCompleteOp.deployment.url} ${urlMessage} preview URL`,\n logger,\n );\n // in CI environments, we want to output the URL to stdout\n if (metadata.name !== 'none') {\n outputInfo(deploymentCompleteOp.deployment.url);\n }\n\n return deploymentCompleteOp.deployment.url;\n } catch (error) {\n if (\n config.bugsnag &&\n Bugsnag &&\n (error instanceof Error || typeof error === 'string')\n ) {\n Bugsnag.notify(error);\n }\n\n if (!(error instanceof Error)) {\n // eslint-disable-next-line no-console\n console.error('Unknown error', error);\n return Promise.reject(new Error('Unknown error'));\n }\n\n if (error instanceof VerificationError) {\n outputWarn(error.message, logger);\n } else if (build.id && !buildCompleted) {\n outputWarn(\n `Build failed with: ${error.message}, cancelling build.`,\n logger,\n );\n await buildCancel({\n config,\n buildId: build.id!,\n reason: error.message,\n logger,\n }).catch((err) => {\n if (err instanceof Error) {\n outputWarn(`Failed to cancel build: ${err.message}`, logger);\n }\n });\n } else if (deployment?.deployment.id) {\n outputWarn(\n `Deployment failed with: ${error.message}, cancelling deployment.`,\n logger,\n );\n await deploymentCancel({\n config,\n deploymentId: deployment.deployment.id,\n reason: error.message,\n logger,\n }).catch((err) => {\n if (err instanceof Error) {\n outputWarn(`Failed to cancel deployment: ${err.message}`, logger);\n }\n });\n }\n return Promise.reject(error);\n }\n}\n\nexport type {DeploymentConfig, DeploymentHooks};\nexport {parseToken} from '../utils/utils.js';\n"]}
@@ -1,145 +1,172 @@
1
1
  {
2
- "version": "2.1.2-unstable.202310111449.0",
3
2
  "commands": {
4
3
  "oxygen:deploy": {
5
- "id": "oxygen:deploy",
6
- "description": "Creates a deployment to Oxygen",
7
- "strict": true,
8
- "pluginName": "@shopify/oxygen-cli",
9
- "pluginAlias": "@shopify/oxygen-cli",
10
- "pluginType": "core",
11
- "hidden": false,
12
4
  "aliases": [],
5
+ "args": {},
6
+ "description": "Creates a deployment to Oxygen",
13
7
  "flags": {
14
8
  "assetsFolder": {
15
- "name": "assetsFolder",
16
- "type": "option",
17
9
  "char": "a",
18
10
  "description": "Assets folder",
11
+ "name": "assetsFolder",
19
12
  "required": false,
13
+ "default": "dist/client/",
14
+ "hasDynamicHelp": false,
20
15
  "multiple": false,
21
- "default": "dist/client/"
16
+ "type": "option"
22
17
  },
23
18
  "buildCommand": {
24
- "name": "buildCommand",
25
- "type": "option",
26
19
  "char": "b",
27
20
  "description": "Build command",
21
+ "name": "buildCommand",
28
22
  "required": false,
23
+ "default": "yarn build",
24
+ "hasDynamicHelp": false,
29
25
  "multiple": false,
30
- "default": "yarn build"
26
+ "type": "option"
31
27
  },
32
28
  "disableBugsnag": {
33
- "name": "disableBugsnag",
34
- "type": "boolean",
35
29
  "description": "Disable Bugsnag error reporting",
30
+ "name": "disableBugsnag",
36
31
  "required": false,
37
- "allowNo": false
32
+ "allowNo": false,
33
+ "type": "boolean"
38
34
  },
39
35
  "environmentTag": {
40
- "name": "environmentTag",
41
- "type": "option",
42
36
  "char": "e",
43
37
  "description": "Tag of the environment to deploy to",
38
+ "name": "environmentTag",
44
39
  "required": false,
45
- "multiple": false
40
+ "hasDynamicHelp": false,
41
+ "multiple": false,
42
+ "type": "option"
46
43
  },
47
44
  "verificationMaxDuration": {
48
- "name": "verificationMaxDuration",
49
- "type": "option",
50
45
  "char": "d",
51
46
  "description": "the maximum duration (in seconds) that the deployment verification step is allowed to run before it is considered failed.",
47
+ "name": "verificationMaxDuration",
52
48
  "required": false,
53
- "multiple": false
49
+ "hasDynamicHelp": false,
50
+ "multiple": false,
51
+ "type": "option"
54
52
  },
55
53
  "path": {
56
- "name": "path",
57
- "type": "option",
58
54
  "char": "p",
59
55
  "description": "Root path",
56
+ "name": "path",
60
57
  "required": false,
58
+ "default": "./",
59
+ "hasDynamicHelp": false,
61
60
  "multiple": false,
62
- "default": "./"
61
+ "type": "option"
63
62
  },
64
63
  "publicDeployment": {
65
- "name": "publicDeployment",
66
- "type": "boolean",
67
64
  "description": "Marks a preview deployment as publicly accessible.",
65
+ "env": "OXYGEN_PUBLIC_DEPLOYMENT",
66
+ "name": "publicDeployment",
68
67
  "required": false,
69
- "allowNo": false
68
+ "allowNo": false,
69
+ "type": "boolean"
70
70
  },
71
71
  "skipBuild": {
72
- "name": "skipBuild",
73
- "type": "boolean",
74
72
  "char": "s",
75
73
  "description": "Skip running build command",
74
+ "name": "skipBuild",
76
75
  "required": false,
77
- "allowNo": false
76
+ "allowNo": false,
77
+ "type": "boolean"
78
78
  },
79
79
  "skipVerification": {
80
- "name": "skipVerification",
81
- "type": "boolean",
82
80
  "char": "v",
83
81
  "description": "Skip running deployment verification step",
82
+ "name": "skipVerification",
84
83
  "required": false,
85
- "allowNo": false
84
+ "allowNo": false,
85
+ "type": "boolean"
86
86
  },
87
87
  "token": {
88
- "name": "token",
89
- "type": "option",
90
88
  "char": "t",
91
89
  "description": "Oxygen deployment token",
90
+ "env": "OXYGEN_DEPLOYMENT_TOKEN",
91
+ "name": "token",
92
92
  "required": true,
93
- "multiple": false
93
+ "hasDynamicHelp": false,
94
+ "multiple": false,
95
+ "type": "option"
94
96
  },
95
97
  "workerFolder": {
96
- "name": "workerFolder",
97
- "type": "option",
98
98
  "char": "w",
99
99
  "description": "Worker folder",
100
+ "name": "workerFolder",
100
101
  "required": false,
102
+ "default": "dist/worker/",
103
+ "hasDynamicHelp": false,
101
104
  "multiple": false,
102
- "default": "dist/worker/"
105
+ "type": "option"
103
106
  },
104
107
  "workerOnly": {
105
- "name": "workerOnly",
106
- "type": "boolean",
107
108
  "char": "o",
108
109
  "description": "Worker only deployment",
110
+ "name": "workerOnly",
109
111
  "required": false,
110
- "allowNo": false
112
+ "allowNo": false,
113
+ "type": "boolean"
111
114
  },
112
115
  "metadataDescription": {
113
- "name": "metadataDescription",
114
- "type": "option",
115
116
  "description": "Description of the deployment. Will be saved and displayed in the Shopify admin",
117
+ "env": "OXYGEN_METADATA_DESCRIPTION",
118
+ "name": "metadataDescription",
116
119
  "required": false,
117
- "multiple": false
120
+ "hasDynamicHelp": false,
121
+ "multiple": false,
122
+ "type": "option"
118
123
  },
119
124
  "metadataUrl": {
120
- "name": "metadataUrl",
121
- "type": "option",
122
125
  "description": "URL that links to the deployment. Will be saved and displayed in the Shopify admin",
126
+ "env": "OXYGEN_METADATA_URL",
127
+ "name": "metadataUrl",
123
128
  "required": false,
124
- "multiple": false
129
+ "hasDynamicHelp": false,
130
+ "multiple": false,
131
+ "type": "option"
125
132
  },
126
133
  "metadataUser": {
127
- "name": "metadataUser",
128
- "type": "option",
129
134
  "description": "User that initiated the deployment. Will be saved and displayed in the Shopify admin",
135
+ "env": "OXYGEN_METADATA_USER",
136
+ "name": "metadataUser",
130
137
  "required": false,
131
- "multiple": false
138
+ "hasDynamicHelp": false,
139
+ "multiple": false,
140
+ "type": "option"
132
141
  },
133
142
  "metadataVersion": {
134
- "name": "metadataVersion",
135
- "type": "option",
136
143
  "description": "A version identifier for the deployment. Will be saved and displayed in the Shopify admin",
144
+ "env": "OXYGEN_METADATA_VERSION",
145
+ "name": "metadataVersion",
137
146
  "required": false,
138
- "multiple": false
147
+ "hasDynamicHelp": false,
148
+ "multiple": false,
149
+ "type": "option"
139
150
  }
140
151
  },
141
- "args": {},
142
- "hasCustomBuildCommand": false
152
+ "hasDynamicHelp": false,
153
+ "hidden": false,
154
+ "hiddenAliases": [],
155
+ "id": "oxygen:deploy",
156
+ "pluginAlias": "@shopify/oxygen-cli",
157
+ "pluginName": "@shopify/oxygen-cli",
158
+ "pluginType": "core",
159
+ "strict": true,
160
+ "enableJsonFlag": false,
161
+ "hasCustomBuildCommand": false,
162
+ "isESM": true,
163
+ "relativePath": [
164
+ "dist",
165
+ "commands",
166
+ "oxygen",
167
+ "deploy.js"
168
+ ]
143
169
  }
144
- }
170
+ },
171
+ "version": "2.1.2"
145
172
  }
package/package.json CHANGED
@@ -5,7 +5,7 @@
5
5
  "@shopify:registry": "https://registry.npmjs.org"
6
6
  },
7
7
  "license": "MIT",
8
- "version": "2.1.2-unstable.202310111449.0",
8
+ "version": "2.1.2",
9
9
  "type": "module",
10
10
  "scripts": {
11
11
  "build": "tsup --sourcemap --clean --config ./tsup.config.ts && oclif manifest",
@@ -38,7 +38,7 @@
38
38
  "@bugsnag/core": "^7.19.0",
39
39
  "@bugsnag/js": "^7.21.0",
40
40
  "@bugsnag/node": "^7.19.0",
41
- "@oclif/core": "2.15.0",
41
+ "@oclif/core": "3.0.3",
42
42
  "@shopify/cli-kit": "^3.49.6",
43
43
  "async": "^3.2.4"
44
44
  },
@@ -48,14 +48,14 @@
48
48
  "@shopify/eslint-plugin": "^43.0.0",
49
49
  "@shopify/prettier-config": "^1.1.2",
50
50
  "@types/async": "^3.2.21",
51
- "@types/node": "^20.6.3",
52
- "eslint": "^8.50.0",
51
+ "@types/node": "^20.6.5",
52
+ "eslint": "^8.51.0",
53
53
  "eslint-plugin-prettier": "^5.0.1",
54
54
  "node-fetch": "^3.3.2",
55
- "oclif": "^3",
55
+ "oclif": "^4",
56
56
  "tsup": "^7.2.0",
57
57
  "typescript": "^5.2.2",
58
- "vite": "^4.4.9",
58
+ "vite": "^4.4.10",
59
59
  "vitest": "^0.34.6"
60
60
  },
61
61
  "prettier": "@shopify/prettier-config",