@shopify/oxygen-cli 4.5.11-unstable.202412031756.0 → 4.6.0
Sign up to get free protection for your applications and to get access to all the features.
- package/CHANGELOG.md +5 -1
- package/README.md +1 -0
- package/dist/commands/oxygen/deploy.d.ts +1 -0
- package/dist/commands/oxygen/deploy.js +6 -0
- package/dist/commands/oxygen/deploy.js.map +1 -1
- package/dist/deploy/metadata.d.ts +1 -0
- package/dist/deploy/metadata.js +2 -0
- package/dist/deploy/metadata.js.map +1 -1
- package/dist/deploy/types.d.ts +1 -0
- package/dist/deploy/types.js.map +1 -1
- package/oclif.manifest.json +10 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
package/README.md
CHANGED
@@ -53,6 +53,7 @@ oxygen:deploy [options]
|
|
53
53
|
- `--metadataUrl`: URL linking to the workflow/pipeline run in the CI platform from which the deployment is performed.
|
54
54
|
- `--metadataUser`: User that initiated the deployment.
|
55
55
|
- `--metadataVersion`: A version identifier for the deployment.
|
56
|
+
- `--metadataHydrogenVersion`: A Hydrogen version identifier for the deployment.
|
56
57
|
- `--disableBugsnag`: Disable Bugsnag error reporting.
|
57
58
|
- `--generateAuthBypassToken`: Generate an auth bypass token used to perform end-to-end testing against the deployment.
|
58
59
|
- `--authBypassTokenDuration`: Specify the duration (in hours) up to 12 hours for the authentication bypass token. Defaults to `2`.
|
@@ -18,6 +18,7 @@ declare class Deploy extends Command {
|
|
18
18
|
workerFolder: _oclif_core_lib_interfaces_parser_js.OptionFlag<string, _oclif_core_lib_interfaces_parser_js.CustomOptions>;
|
19
19
|
workerOnly: _oclif_core_lib_interfaces_parser_js.BooleanFlag<boolean>;
|
20
20
|
metadataDescription: _oclif_core_lib_interfaces_parser_js.OptionFlag<string | undefined, _oclif_core_lib_interfaces_parser_js.CustomOptions>;
|
21
|
+
metadataHydrogenVersion: _oclif_core_lib_interfaces_parser_js.OptionFlag<string | undefined, _oclif_core_lib_interfaces_parser_js.CustomOptions>;
|
21
22
|
metadataUrl: _oclif_core_lib_interfaces_parser_js.OptionFlag<string | undefined, _oclif_core_lib_interfaces_parser_js.CustomOptions>;
|
22
23
|
metadataUser: _oclif_core_lib_interfaces_parser_js.OptionFlag<string | undefined, _oclif_core_lib_interfaces_parser_js.CustomOptions>;
|
23
24
|
metadataVersion: _oclif_core_lib_interfaces_parser_js.OptionFlag<string | undefined, _oclif_core_lib_interfaces_parser_js.CustomOptions>;
|
@@ -92,6 +92,11 @@ class Deploy extends Command {
|
|
92
92
|
required: false,
|
93
93
|
env: "OXYGEN_METADATA_DESCRIPTION"
|
94
94
|
}),
|
95
|
+
metadataHydrogenVersion: Flags.string({
|
96
|
+
description: "The Hydrogen version of the deployment from package.json",
|
97
|
+
required: false,
|
98
|
+
env: "OXYGEN_METADATA_HYDROGEN_VERSION"
|
99
|
+
}),
|
95
100
|
metadataUrl: Flags.string({
|
96
101
|
description: "URL that links to the deployment. Will be saved and displayed in the Shopify admin",
|
97
102
|
required: false,
|
@@ -158,6 +163,7 @@ class Deploy extends Command {
|
|
158
163
|
verificationMaxDuration: flags.verificationMaxDuration,
|
159
164
|
metadata: {
|
160
165
|
description: flags.metadataDescription,
|
166
|
+
hydrogenVersion: flags.metadataHydrogenVersion,
|
161
167
|
url: flags.metadataUrl,
|
162
168
|
user: flags.metadataUser,
|
163
169
|
version: flags.metadataVersion
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../src/commands/oxygen/deploy.ts"],"names":[],"mappings":"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","file":"deploy.js","sourcesContent":["import {Command, Flags} from '@oclif/core';\nimport {consoleError} from '@shopify/cli-kit/node/output';\nimport {normalizePath} from '@shopify/cli-kit/node/path';\nimport {readAndParseDotEnv} from '@shopify/cli-kit/node/dot-env';\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 {\n DeploymentConfig,\n EnvironmentVariable,\n} 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 defaultEnvironment: Flags.boolean({\n env: 'OXYGEN_DEFAULT_ENVIRONMENT',\n description: 'Deploys to the default environment of the app',\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 generateAuthBypassToken: Flags.boolean({\n description:\n 'Generate an auth bypass token used to perform end-to-end testing against the deployment.',\n required: false,\n default: false,\n }),\n authBypassTokenDuration: Flags.string({\n description:\n 'Specify the duration (in hours) up to 12 hours for the authentication bypass token. Defaults to `2`.',\n required: false,\n dependsOn: ['generateAuthBypassToken'],\n }),\n environmentFile: Flags.string({\n description:\n 'Path to an environment file to override existing environment variables for the deployment.',\n required: false,\n }),\n };\n\n static hasCustomBuildCommand = false;\n\n async run() {\n try {\n const {flags} = await this.parse(Deploy);\n const rootPath = normalizePath(flags.path);\n\n let overriddenEnvironmentVariables: EnvironmentVariable[] | undefined;\n\n if (flags.environmentFile) {\n const file = await readAndParseDotEnv(flags.environmentFile);\n\n overriddenEnvironmentVariables = Object.entries(file.variables).map(\n ([key, value]) => ({\n isSecret: true,\n key,\n value,\n }),\n );\n }\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 defaultEnvironment: flags.defaultEnvironment,\n rootPath,\n skipBuild: flags.skipBuild,\n skipVerification: flags.skipVerification,\n workerDir: normalizePath(flags.workerFolder),\n workerOnly: flags.workerOnly,\n generateAuthBypassToken: flags.generateAuthBypassToken,\n authBypassTokenDuration: flags.authBypassTokenDuration,\n overriddenEnvironmentVariables,\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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","file":"deploy.js","sourcesContent":["import {Command, Flags} from '@oclif/core';\nimport {consoleError} from '@shopify/cli-kit/node/output';\nimport {normalizePath} from '@shopify/cli-kit/node/path';\nimport {readAndParseDotEnv} from '@shopify/cli-kit/node/dot-env';\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 {\n DeploymentConfig,\n EnvironmentVariable,\n} 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 defaultEnvironment: Flags.boolean({\n env: 'OXYGEN_DEFAULT_ENVIRONMENT',\n description: 'Deploys to the default environment of the app',\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 metadataHydrogenVersion: Flags.string({\n description: 'The Hydrogen version of the deployment from package.json',\n required: false,\n env: 'OXYGEN_METADATA_HYDROGEN_VERSION',\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 generateAuthBypassToken: Flags.boolean({\n description:\n 'Generate an auth bypass token used to perform end-to-end testing against the deployment.',\n required: false,\n default: false,\n }),\n authBypassTokenDuration: Flags.string({\n description:\n 'Specify the duration (in hours) up to 12 hours for the authentication bypass token. Defaults to `2`.',\n required: false,\n dependsOn: ['generateAuthBypassToken'],\n }),\n environmentFile: Flags.string({\n description:\n 'Path to an environment file to override existing environment variables for the deployment.',\n required: false,\n }),\n };\n\n static hasCustomBuildCommand = false;\n\n async run() {\n try {\n const {flags} = await this.parse(Deploy);\n const rootPath = normalizePath(flags.path);\n\n let overriddenEnvironmentVariables: EnvironmentVariable[] | undefined;\n\n if (flags.environmentFile) {\n const file = await readAndParseDotEnv(flags.environmentFile);\n\n overriddenEnvironmentVariables = Object.entries(file.variables).map(\n ([key, value]) => ({\n isSecret: true,\n key,\n value,\n }),\n );\n }\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 hydrogenVersion: flags.metadataHydrogenVersion,\n url: flags.metadataUrl,\n user: flags.metadataUser,\n version: flags.metadataVersion,\n },\n defaultEnvironment: flags.defaultEnvironment,\n rootPath,\n skipBuild: flags.skipBuild,\n skipVerification: flags.skipVerification,\n workerDir: normalizePath(flags.workerFolder),\n workerOnly: flags.workerOnly,\n generateAuthBypassToken: flags.generateAuthBypassToken,\n authBypassTokenDuration: flags.authBypassTokenDuration,\n overriddenEnvironmentVariables,\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"]}
|
package/dist/deploy/metadata.js
CHANGED
@@ -37,6 +37,7 @@ async function getMetadata(config, logger) {
|
|
37
37
|
config.metadata.description ?? metadata.commitMessage
|
38
38
|
),
|
39
39
|
commitSha: config.metadata.version ?? metadata.commitSha,
|
40
|
+
hydrogenVersion: config.metadata.hydrogenVersion,
|
40
41
|
url: config.metadata.url ?? metadata.url
|
41
42
|
};
|
42
43
|
}
|
@@ -117,6 +118,7 @@ function createLabels(metadata) {
|
|
117
118
|
commitDate: "commit-date",
|
118
119
|
commitMessage: "description",
|
119
120
|
commitSha: "version",
|
121
|
+
hydrogenVersion: "hydrogen-version",
|
120
122
|
url: "url"
|
121
123
|
};
|
122
124
|
for (const [key, value] of Object.entries(keyMapping)) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../src/deploy/metadata.ts"],"names":["keyMapping"],"mappings":";;;;;
|
1
|
+
{"version":3,"sources":["../../src/deploy/metadata.ts"],"names":["keyMapping"],"mappings":";;;;;AAcA,eAAsB,WAAA,CACpB,QACA,MACmB,EAAA;AACnB,EAAA,MAAM,SAAS,UAAW,EAAA,CAAA;AAC1B,EAAM,MAAA,QAAA,GAAqB,MAAO,CAAA,QAAA,IAAY,EAAC,CAAA;AAE/C,EAAI,IAAA;AACF,IAAA,MAAM,SAAY,GAAA,MAAM,YAAa,CAAA,MAAA,CAAO,QAAQ,CAAA,CAAA;AAIpD,IAAI,IAAA,CAAC,SAAS,KAAO,EAAA;AACnB,MAAA,QAAA,CAAS,QAAQ,SAAU,CAAA,WAAA,CAAA;AAAA,KAC7B;AACA,IAAI,IAAA,CAAC,SAAS,UAAY,EAAA;AACxB,MAAA,QAAA,CAAS,aAAa,SAAU,CAAA,IAAA,CAAA;AAAA,KAClC;AACA,IAAI,IAAA,CAAC,SAAS,aAAe,EAAA;AAC3B,MAAA,QAAA,CAAS,gBAAgB,SAAU,CAAA,OAAA,CAAA;AAAA,KACrC;AAIA,IAAA,IAAI,UAAU,MAAQ,EAAA;AACpB,MAAA,QAAA,CAAS,SAAS,SAAU,CAAA,MAAA,CAAA;AAAA,KAC9B;AACA,IAAA,IAAI,UAAU,IAAM,EAAA;AAClB,MAAA,QAAA,CAAS,YAAY,SAAU,CAAA,IAAA,CAAA;AAAA,KACjC;AAAA,WACO,KAAO,EAAA;AACd,IAAA,UAAA;AAAA,MACE,qEAAA;AAAA,MACA,MAAA;AAAA,KACF,CAAA;AAAA,GACF;AAEA,EAAO,OAAA;AAAA,IACL,IAAM,EAAA,MAAA,CAAO,IAAO,GAAA,MAAA,CAAO,IAAO,GAAA,MAAA;AAAA,IAClC,GAAG,QAAA;AAAA,IACH,KAAO,EAAA,MAAA,CAAO,QAAS,CAAA,IAAA,IAAQ,QAAS,CAAA,KAAA;AAAA,IACxC,aAAe,EAAA,iBAAA;AAAA,MACb,MAAA,CAAO,QAAS,CAAA,WAAA,IAAe,QAAS,CAAA,aAAA;AAAA,KAC1C;AAAA,IACA,SAAW,EAAA,MAAA,CAAO,QAAS,CAAA,OAAA,IAAW,QAAS,CAAA,SAAA;AAAA,IAC/C,eAAA,EAAiB,OAAO,QAAS,CAAA,eAAA;AAAA,IACjC,GAAK,EAAA,MAAA,CAAO,QAAS,CAAA,GAAA,IAAO,QAAS,CAAA,GAAA;AAAA,GACvC,CAAA;AACF,CAAA;AAEA,eAAe,aAAa,IAAe,EAAA;AACzC,EAAM,MAAA,SAAA,GAAY,MAAM,kBAAA,CAAmB,IAAI,CAAA,CAAA;AAC/C,EAAM,MAAA,MAAA,GAAA,CAAU,kBAAkB,IAAK,CAAA,SAAA,CAAU,IAAI,CAAK,IAAA,IAAI,CAAC,CAAA,CAAA;AAM/D,EAAM,MAAA,OAAA,GAAU,QAAQ,GAAI,CAAA,eAAA,CAAA;AAE5B,EAAA,IAAI,CAAC,OAAS,EAAA;AACZ,IAAO,OAAA;AAAA,MACL,GAAG,SAAA;AAAA,MACH,MAAA;AAAA,KACF,CAAA;AAAA,GACF;AAEA,EAAA,MAAM,KAAQ,GAAA,8BAAA,CAA+B,IAAK,CAAA,SAAA,CAAU,OAAO,CAAA,CAAA;AAEnE,EAAO,OAAA;AAAA,IACL,GAAG,SAAA;AAAA,IACH,MAAQ,EAAA,OAAA;AAAA,IACR,IAAM,EAAA,KAAA,GAAQ,KAAM,CAAA,CAAC,IAAI,SAAU,CAAA,IAAA;AAAA,GACrC,CAAA;AACF,CAAA;AAEA,SAAS,kBAAkB,aAA4C,EAAA;AACrE,EAAA,IAAI,CAAC,aAAe,EAAA;AAClB,IAAA,OAAA;AAAA,GACF;AAEA,EAAI,IAAA,KAAA,GAAQ,cAAc,KAAM,CAAA,OAAO,EAAE,CAAC,CAAA,EAAG,MAAU,IAAA,EAAA,CAAA;AACvD,EAAI,IAAA,SAAA,GAAY,IAAK,CAAA,SAAA,CAAU,KAAK,CAAA,CAAA;AACpC,EAAA,IAAI,WAAc,GAAA,KAAA,CAAA;AAElB,EAAO,OAAA,SAAA,CAAU,SAAS,cAAgB,EAAA;AACxC,IAAA,MAAM,cAAiB,GAAA,KAAA,CAAM,WAAY,CAAA,GAAA,EAAK,iBAAiB,CAAC,CAAA,CAAA;AAChE,IAAA,KAAA,GAAQ,GAAG,KAAM,CAAA,SAAA;AAAA,MACf,CAAA;AAAA,MACA,cAAA,GAAiB,CAAK,CAAA,GAAA,cAAA,GAAiB,cAAiB,GAAA,CAAA;AAAA,KACzD,GAAG,OAAQ,EAAA,CAAA;AACZ,IAAc,WAAA,GAAA,IAAA,CAAA;AACd,IAAY,SAAA,GAAA,IAAA,CAAK,UAAU,KAAK,CAAA,CAAA;AAAA,GAClC;AAEA,EAAO,OAAA,WAAA,GAAc,CAAG,EAAA,KAAK,CAAQ,GAAA,CAAA,GAAA,KAAA,CAAA;AACvC,CAAA;AAEO,SAAS,mBAAA,CACd,QACA,QAC8B,EAAA;AAC9B,EAAA,IAAI,OAAO,kBAAoB,EAAA;AAC7B,IAAO,OAAA,KAAA,CAAA,CAAA;AAAA,GACT;AAEA,EAAM,MAAA,GAAA,GAAM,MAAO,CAAA,cAAA,IAAkB,QAAS,CAAA,MAAA,CAAA;AAC9C,EAAO,OAAA,GAAA,GAAM,EAAC,GAAA,EAAO,GAAA,KAAA,CAAA,CAAA;AACvB,CAAA;AAEO,SAAS,aAAa,QAA8B,EAAA;AACzD,EAAA,MAAM,SAAmB,EAAC,CAAA;AAE1B,EAAM,MAAA,UAAA,GAAa,CAAC,QAAA,EAAkB,UAAuB,KAAA;AAC3D,IAAM,MAAA,UAAA,GAAa,IAAK,CAAA,SAAA,CAAU,UAAU,CAAA,CAAA;AAC5C,IAAI,IAAA,UAAA,CAAW,SAAS,cAAgB,EAAA;AACtC,MAAA,MAAM,IAAI,KAAA;AAAA,QACR,CAAA,SAAA,EAAY,QAAQ,CAAA,sCAAA,EAAyC,cAAc,CAAA,aAAA,CAAA;AAAA,OAC7E,CAAA;AAAA,KACF;AACA,IAAA,MAAM,KAAQ,GAAA,CAAA,EAAG,QAAQ,CAAA,CAAA,EAAI,UAAU,CAAA,CAAA,CAAA;AACvC,IAAA,MAAA,CAAO,KAAK,KAAK,CAAA,CAAA;AAAA,GACnB,CAAA;AAEA,EAAI,IAAA,QAAA,CAAS,SAAS,MAAQ,EAAA;AAC5B,IAAA,MAAA,CAAO,KAAK,CAAe,YAAA,EAAA,IAAA,CAAK,UAAU,QAAS,CAAA,IAAI,CAAC,CAAE,CAAA,CAAA,CAAA;AAAA,GAC5D;AAEA,EAAI,IAAA,QAAA,CAAS,SAAS,SAAW,EAAA;AAC/B,IAAA,MAAMA,WAAa,GAAA;AAAA,MACjB,OAAS,EAAA,SAAA;AAAA,MACT,GAAK,EAAA,OAAA;AAAA,KACP,CAAA;AAEA,IAAA,KAAA,MAAW,CAAC,GAAK,EAAA,KAAK,KAAK,MAAO,CAAA,OAAA,CAAQA,WAAU,CAAG,EAAA;AACrD,MAAA,MAAM,WAAc,GAAA,GAAA,CAAA;AACpB,MAAI,IAAA,QAAA,CAAS,WAAW,CAAG,EAAA;AACzB,QAAO,MAAA,CAAA,IAAA;AAAA,UACL,CAAA,EAAG,QAAS,CAAA,IAAI,CAAI,CAAA,EAAA,KAAK,CAAI,CAAA,EAAA,IAAA,CAAK,SAAU,CAAA,QAAA,CAAS,WAAW,CAAC,CAAC,CAAA,CAAA;AAAA,SACpE,CAAA;AAAA,OACF;AAAA,KACF;AAAA,GACF;AAEA,EAAA,MAAM,UAAa,GAAA;AAAA,IACjB,KAAO,EAAA,MAAA;AAAA,IACP,MAAQ,EAAA,QAAA;AAAA,IACR,UAAY,EAAA,aAAA;AAAA,IACZ,aAAe,EAAA,aAAA;AAAA,IACf,SAAW,EAAA,SAAA;AAAA,IACX,eAAiB,EAAA,kBAAA;AAAA,IACjB,GAAK,EAAA,KAAA;AAAA,GACP,CAAA;AAEA,EAAA,KAAA,MAAW,CAAC,GAAK,EAAA,KAAK,KAAK,MAAO,CAAA,OAAA,CAAQ,UAAU,CAAG,EAAA;AACrD,IAAA,MAAM,WAAc,GAAA,GAAA,CAAA;AACpB,IAAI,IAAA,QAAA,CAAS,WAAW,CAAG,EAAA;AACzB,MAAW,UAAA,CAAA,KAAA,EAAO,QAAS,CAAA,WAAW,CAAE,CAAA,CAAA;AAAA,KAC1C;AAAA,GACF;AAEA,EAAO,OAAA,MAAA,CAAA;AACT","file":"metadata.js","sourcesContent":["import {ciPlatform, CIMetadata} from '@shopify/cli-kit/node/context/local';\nimport {getLatestGitCommit} from '@shopify/cli-kit/node/git';\nimport {Logger, outputWarn} from '@shopify/cli-kit/node/output';\n\nimport {maxLabelLength} from '../utils/utils.js';\n\nimport {DeploymentConfig, EnvironmentInput} from './types.js';\n\nexport type Metadata = CIMetadata & {\n commitDate?: string;\n hydrogenVersion?: string;\n name?: string;\n};\n\nexport async function getMetadata(\n config: DeploymentConfig,\n logger: Logger,\n): Promise<Metadata> {\n const ciInfo = ciPlatform();\n const metadata: Metadata = ciInfo.metadata ?? {};\n\n try {\n const gitCommit = await latestCommit(config.rootPath);\n\n // Only update actor, commitDate, and commitMessage if we don't already have\n // the data from CI.\n if (!metadata.actor) {\n metadata.actor = gitCommit.author_name;\n }\n if (!metadata.commitDate) {\n metadata.commitDate = gitCommit.date;\n }\n if (!metadata.commitMessage) {\n metadata.commitMessage = gitCommit.message;\n }\n\n // Always update the following keys with the Git information if it's\n // available since we may modify what the values are.\n if (gitCommit.branch) {\n metadata.branch = gitCommit.branch;\n }\n if (gitCommit.hash) {\n metadata.commitSha = gitCommit.hash;\n }\n } catch (error) {\n outputWarn(\n 'Could not retrieve Git history, commit message will be unavailable.',\n logger,\n );\n }\n\n return {\n name: ciInfo.isCI ? ciInfo.name : 'none',\n ...metadata,\n actor: config.metadata.user ?? metadata.actor,\n commitMessage: createCommitTitle(\n config.metadata.description ?? metadata.commitMessage,\n ),\n commitSha: config.metadata.version ?? metadata.commitSha,\n hydrogenVersion: config.metadata.hydrogenVersion,\n url: config.metadata.url ?? metadata.url,\n };\n}\n\nasync function latestCommit(path?: string) {\n const gitCommit = await getLatestGitCommit(path);\n const branch = (/HEAD -> ([^,]*)/.exec(gitCommit.refs) || [])[1];\n\n // If this variable is set it means we are in a GitHub action using the\n // pull_request trigger which creates a merge commit and we'll need to\n // manually extract the commit details.\n // eslint-disable-next-line no-process-env\n const headRef = process.env.GITHUB_HEAD_REF;\n\n if (!headRef) {\n return {\n ...gitCommit,\n branch,\n };\n }\n\n const match = /Merge ([\\w\\d]+) into [\\w\\d]+/.exec(gitCommit.message);\n\n return {\n ...gitCommit,\n branch: headRef,\n hash: match ? match[1] : gitCommit.hash,\n };\n}\n\nfunction createCommitTitle(commitMessage?: string): string | undefined {\n if (!commitMessage) {\n return;\n }\n\n let title = commitMessage.split(/\\r?\\n/)[0]?.trim() || '';\n let jsonTitle = JSON.stringify(title);\n let isTruncated = false;\n\n while (jsonTitle.length > maxLabelLength) {\n const lastSpaceIndex = title.lastIndexOf(' ', maxLabelLength - 3);\n title = `${title.substring(\n 0,\n lastSpaceIndex > -1 ? lastSpaceIndex : maxLabelLength - 3,\n )}`.trimEnd();\n isTruncated = true;\n jsonTitle = JSON.stringify(title);\n }\n\n return isTruncated ? `${title}...` : title;\n}\n\nexport function getEnvironmentInput(\n config: DeploymentConfig,\n metadata: CIMetadata,\n): EnvironmentInput | undefined {\n if (config.defaultEnvironment) {\n return undefined;\n }\n\n const tag = config.environmentTag || metadata.branch;\n return tag ? {tag} : undefined;\n}\n\nexport function createLabels(metadata: Metadata): string[] {\n const labels: string[] = [];\n\n const checkLabel = (labelKey: string, labelValue: string) => {\n const jsonString = JSON.stringify(labelValue);\n if (jsonString.length > maxLabelLength) {\n throw new Error(\n `Provided ${labelKey} metadata exceeds maximum length (max ${maxLabelLength} characters).`,\n );\n }\n const label = `${labelKey}=${jsonString}`;\n labels.push(label);\n };\n\n if (metadata.name !== 'none') {\n labels.push(`ci-platform=${JSON.stringify(metadata.name)}`);\n }\n\n if (metadata.name !== 'unknown') {\n const keyMapping = {\n attempt: 'attempt',\n run: 'runId',\n };\n\n for (const [key, value] of Object.entries(keyMapping)) {\n const metadataKey = key as keyof Metadata;\n if (metadata[metadataKey]) {\n labels.push(\n `${metadata.name}-${value}=${JSON.stringify(metadata[metadataKey])}`,\n );\n }\n }\n }\n\n const keyMapping = {\n actor: 'user',\n branch: 'branch',\n commitDate: 'commit-date',\n commitMessage: 'description',\n commitSha: 'version',\n hydrogenVersion: 'hydrogen-version',\n url: 'url',\n };\n\n for (const [key, value] of Object.entries(keyMapping)) {\n const metadataKey = key as keyof Metadata;\n if (metadata[metadataKey]) {\n checkLabel(value, metadata[metadataKey]!);\n }\n }\n\n return labels;\n}\n"]}
|
package/dist/deploy/types.d.ts
CHANGED
package/dist/deploy/types.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../src/deploy/types.ts"],"names":["FileType"],"mappings":"
|
1
|
+
{"version":3,"sources":["../../src/deploy/types.ts"],"names":["FileType"],"mappings":"AAkFY,IAAA,QAAA,qBAAAA,SAAL,KAAA;AACL,EAAAA,UAAA,QAAS,CAAA,GAAA,QAAA,CAAA;AACT,EAAAA,UAAA,OAAQ,CAAA,GAAA,OAAA,CAAA;AAFE,EAAAA,OAAAA,SAAAA,CAAAA;AAAA,CAAA,EAAA,QAAA,IAAA,EAAA,EAAA;AASL,MAAM,0BAA0B,KAAM,CAAA;AAAC,CAAA;AAEvC,MAAM,6CAA6C,KAAM,CAAA;AAAC","file":"types.js","sourcesContent":["import {DeploymentVerificationDetailsResponse} from './graphql/deployment-verification-details.js';\n\nexport interface Build {\n id: string;\n assetPath: string;\n}\n\nexport interface ClientError extends Error {\n statusCode: number;\n}\n\nexport interface DeploymentHooks {\n buildFunction?: (urlPath?: string) => Promise<void>;\n onDeploymentCompletedVerificationStart?: () => void;\n onDeploymentCompletedVerificationError?: () => void;\n onDeploymentFailed?: (\n responseData: DeploymentVerificationDetailsResponse,\n ) => void;\n onDeploymentCompleted?: () => void;\n onVerificationStart?: () => void;\n onVerificationComplete?: () => void;\n onVerificationError?: (error: Error) => void;\n onUploadFilesStart?: () => void;\n onUploadFilesError?: (error: Error) => void;\n onUploadFilesComplete?: () => void;\n}\n\nexport interface DeploymentConfig {\n assetsDir?: string;\n bugsnag: boolean;\n buildCommand?: string;\n deploymentToken: DeploymentToken;\n deploymentUrl: string;\n environmentTag?: string;\n metadata: {\n description?: string;\n hydrogenVersion?: string;\n user?: string;\n version?: string;\n url?: string;\n };\n defaultEnvironment: boolean;\n rootPath?: string;\n skipBuild: boolean;\n skipVerification: boolean;\n verificationMaxDuration: number;\n workerDir?: string;\n workerOnly: boolean;\n generateAuthBypassToken: boolean;\n authBypassTokenDuration?: string;\n overriddenEnvironmentVariables?: EnvironmentVariable[];\n}\n\nexport interface EnvironmentVariable {\n isSecret: boolean;\n key: string;\n value: string;\n}\n\nexport interface DeploymentToken {\n accessToken: string;\n allowedResource: string;\n appId: string;\n client: string;\n expiresAt: string;\n namespace: string;\n namespaceId: string;\n}\n\nexport interface DeploymentManifestFile {\n filePath: string;\n fileSize: number;\n mimeType: string;\n fileHash: string;\n fileType: string;\n}\n\nexport interface EnvironmentInput {\n handle?: string;\n tag?: string;\n}\n\nexport enum FileType {\n Worker = 'WORKER',\n Asset = 'ASSET',\n}\n\nexport interface OxygenError {\n message: string;\n}\n\nexport class VerificationError extends Error {}\n\nexport class DeploymentCompletedVerificationError extends Error {}\n"]}
|
package/oclif.manifest.json
CHANGED
@@ -121,6 +121,15 @@
|
|
121
121
|
"multiple": false,
|
122
122
|
"type": "option"
|
123
123
|
},
|
124
|
+
"metadataHydrogenVersion": {
|
125
|
+
"description": "The Hydrogen version of the deployment from package.json",
|
126
|
+
"env": "OXYGEN_METADATA_HYDROGEN_VERSION",
|
127
|
+
"name": "metadataHydrogenVersion",
|
128
|
+
"required": false,
|
129
|
+
"hasDynamicHelp": false,
|
130
|
+
"multiple": false,
|
131
|
+
"type": "option"
|
132
|
+
},
|
124
133
|
"metadataUrl": {
|
125
134
|
"description": "URL that links to the deployment. Will be saved and displayed in the Shopify admin",
|
126
135
|
"env": "OXYGEN_METADATA_URL",
|
@@ -194,5 +203,5 @@
|
|
194
203
|
]
|
195
204
|
}
|
196
205
|
},
|
197
|
-
"version": "4.
|
206
|
+
"version": "4.6.0"
|
198
207
|
}
|
package/package.json
CHANGED