@shopify/oxygen-cli 1.8.2 → 1.9.0
Sign up to get free protection for your applications and to get access to all the features.
@@ -21,7 +21,8 @@ async function getUploadFiles(config) {
|
|
21
21
|
...createManifestEntries({
|
22
22
|
files: assetFiles,
|
23
23
|
basePath: assetPath,
|
24
|
-
type: FileType.Asset
|
24
|
+
type: FileType.Asset,
|
25
|
+
filter: assetFileFilter
|
25
26
|
})
|
26
27
|
];
|
27
28
|
}
|
@@ -36,7 +37,7 @@ function createManifestEntries(params) {
|
|
36
37
|
const manifest = [];
|
37
38
|
files.forEach((file) => {
|
38
39
|
const filePath = relativePath(basePath, file);
|
39
|
-
if (filter && !filter(filePath
|
40
|
+
if (filter && !filter(filePath)) {
|
40
41
|
return;
|
41
42
|
}
|
42
43
|
manifest.push({
|
@@ -49,17 +50,20 @@ function createManifestEntries(params) {
|
|
49
50
|
});
|
50
51
|
return manifest;
|
51
52
|
}
|
52
|
-
function workerFileFilter(fileName
|
53
|
-
if (type === FileType.Asset) {
|
54
|
-
return true;
|
55
|
-
}
|
53
|
+
function workerFileFilter(fileName) {
|
56
54
|
const allowedExtensions = [".js.map", ".mjs.map", ".map", ".js", ".mjs"];
|
57
55
|
const allowedFilenames = ["index"];
|
58
56
|
const regexString = `^(${allowedFilenames.join(
|
59
57
|
"|"
|
60
58
|
)})(${allowedExtensions.join("|")})$`;
|
61
59
|
const regex = new RegExp(regexString);
|
62
|
-
return regex.test(fileName);
|
60
|
+
return regex.test(fileName.toLowerCase());
|
61
|
+
}
|
62
|
+
function assetFileFilter(fileName) {
|
63
|
+
const disallowedExtensions = [".map"];
|
64
|
+
const regexString = `(${disallowedExtensions.join("|")})$`;
|
65
|
+
const regex = new RegExp(regexString);
|
66
|
+
return !regex.test(fileName.toLowerCase());
|
63
67
|
}
|
64
68
|
|
65
69
|
export { getUploadFiles };
|
@@ -38,7 +38,7 @@ describe("GetUploadFiles", () => {
|
|
38
38
|
];
|
39
39
|
expect(manifest).toEqual(expectedManifest);
|
40
40
|
});
|
41
|
-
test("GetUploadFiles manifest does not
|
41
|
+
test("GetUploadFiles manifest does not include non-worker files", async () => {
|
42
42
|
await touchFile(`${rootFolder}/worker/image.jpg`);
|
43
43
|
await touchFile(`${rootFolder}/worker/worker.ts`);
|
44
44
|
await touchFile(`${rootFolder}/worker/index.js.map`);
|
@@ -53,4 +53,15 @@ describe("GetUploadFiles", () => {
|
|
53
53
|
expect(workerFileExist("index.js.map")).toBe(true);
|
54
54
|
expect(workerFileExist("index.js")).toBe(true);
|
55
55
|
});
|
56
|
+
test("GetUploadFiles manifest does not include source map files in assets", async () => {
|
57
|
+
const testFilename = "index.js.MaP";
|
58
|
+
await touchFile(`${rootFolder}/assets/${testFilename}`);
|
59
|
+
const manifest = await getUploadFiles(testConfig);
|
60
|
+
const assetSourcemapFileExist = (fileName) => {
|
61
|
+
return manifest.some(
|
62
|
+
(file) => file.filePath === fileName && file.fileType === FileType.Asset
|
63
|
+
);
|
64
|
+
};
|
65
|
+
expect(assetSourcemapFileExist(testFilename)).toBe(false);
|
66
|
+
});
|
56
67
|
});
|
package/dist/deploy/metadata.js
CHANGED
@@ -45,20 +45,31 @@ function createLabels(metadata) {
|
|
45
45
|
const label = `${labelKey}=${JSON.stringify(labelValue)}`;
|
46
46
|
labels.push(label);
|
47
47
|
};
|
48
|
-
if (metadata.name !== "unknown"
|
49
|
-
|
48
|
+
if (metadata.name !== "unknown") {
|
49
|
+
const keyMapping2 = {
|
50
|
+
attempt: "attempt",
|
51
|
+
run: "runId"
|
52
|
+
};
|
53
|
+
for (const [key, value] of Object.entries(keyMapping2)) {
|
54
|
+
const metadataKey = key;
|
55
|
+
if (metadata[metadataKey]) {
|
56
|
+
labels.push(
|
57
|
+
`${metadata.name}-${value}=${JSON.stringify(metadata[metadataKey])}`
|
58
|
+
);
|
59
|
+
}
|
60
|
+
}
|
50
61
|
}
|
51
|
-
const keys = ["url", "actor", "commitSha"];
|
52
62
|
const keyMapping = {
|
53
63
|
actor: "user",
|
54
|
-
commitSha: "version"
|
64
|
+
commitSha: "version",
|
65
|
+
url: "url"
|
55
66
|
};
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
checkLabel(
|
67
|
+
for (const [key, value] of Object.entries(keyMapping)) {
|
68
|
+
const metadataKey = key;
|
69
|
+
if (metadata[metadataKey]) {
|
70
|
+
checkLabel(value, metadata[metadataKey]);
|
60
71
|
}
|
61
|
-
}
|
72
|
+
}
|
62
73
|
return labels;
|
63
74
|
}
|
64
75
|
|
@@ -105,18 +105,19 @@ describe("createLabels", () => {
|
|
105
105
|
};
|
106
106
|
const labels = [
|
107
107
|
'circle-runId="circle_1234"',
|
108
|
-
'url="http://circleci.com/workflow/123"',
|
109
108
|
'user="circle_actor"',
|
110
|
-
'version="circle_sha"'
|
109
|
+
'version="circle_sha"',
|
110
|
+
'url="http://circleci.com/workflow/123"'
|
111
111
|
];
|
112
112
|
expect(createLabels(metadata)).toEqual(labels);
|
113
113
|
});
|
114
114
|
test("should return labels from metadata only for populated fields", () => {
|
115
115
|
const metadata = {
|
116
116
|
name: "circle",
|
117
|
-
run: "circle_run"
|
117
|
+
run: "circle_run",
|
118
|
+
attempt: "1"
|
118
119
|
};
|
119
|
-
const labels = ['circle-runId="circle_run"'];
|
120
|
+
const labels = ['circle-attempt="1"', 'circle-runId="circle_run"'];
|
120
121
|
expect(createLabels(metadata)).toEqual(labels);
|
121
122
|
});
|
122
123
|
test("should throw when user metadata exceeds maximum length", () => {
|
package/oclif.manifest.json
CHANGED
package/package.json
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
"@shopify:registry": "https://registry.npmjs.org"
|
6
6
|
},
|
7
7
|
"license": "MIT",
|
8
|
-
"version": "1.
|
8
|
+
"version": "1.9.0",
|
9
9
|
"type": "module",
|
10
10
|
"scripts": {
|
11
11
|
"build": "tsup --clean --config ./tsup.config.ts && oclif manifest",
|
@@ -34,24 +34,24 @@
|
|
34
34
|
"/oclif.manifest.json"
|
35
35
|
],
|
36
36
|
"dependencies": {
|
37
|
-
"@oclif/core": "2.11.
|
38
|
-
"@shopify/cli-kit": "
|
37
|
+
"@oclif/core": "2.11.8",
|
38
|
+
"@shopify/cli-kit": "nightly",
|
39
39
|
"async": "^3.2.4"
|
40
40
|
},
|
41
41
|
"devDependencies": {
|
42
42
|
"@changesets/cli": "^2.26.1",
|
43
|
-
"@shopify/eslint-plugin": "^
|
43
|
+
"@shopify/eslint-plugin": "^43.0.0",
|
44
44
|
"@shopify/prettier-config": "^1.1.2",
|
45
45
|
"@types/async": "^3.2.18",
|
46
|
-
"@types/node": "^20.
|
47
|
-
"
|
48
|
-
"eslint": "^
|
46
|
+
"@types/node": "^20.5.0",
|
47
|
+
"eslint": "^8.47.0",
|
48
|
+
"eslint-plugin-prettier": "^5.0.0",
|
49
49
|
"node-fetch": "^3.3.2",
|
50
50
|
"oclif": "^3",
|
51
|
-
"tsup": "^7.
|
51
|
+
"tsup": "^7.2.0",
|
52
52
|
"typescript": "^5.1.3",
|
53
|
-
"vite": "^4.4.
|
54
|
-
"vitest": "^0.
|
53
|
+
"vite": "^4.4.9",
|
54
|
+
"vitest": "^0.34.1"
|
55
55
|
},
|
56
56
|
"prettier": "@shopify/prettier-config",
|
57
57
|
"oclif": {
|