packtory 0.0.47 → 0.0.49
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/artifacts/folder-writer.js +2 -0
- package/artifacts/folder-writer.js.map +1 -1
- package/bundle-emitter/registry/package-metadata-fetcher.d.ts.map +1 -1
- package/bundle-emitter/registry/package-metadata-fetcher.js +13 -1
- package/bundle-emitter/registry/package-metadata-fetcher.js.map +1 -1
- package/bundle-emitter/registry/registry-response-schemas.js +1 -1
- package/bundle-emitter/registry/registry-response-schemas.js.map +1 -1
- package/common/schema-validation.js +90 -0
- package/common/schema-validation.js.map +1 -0
- package/config/optional-package-settings-schema.js +2 -0
- package/config/optional-package-settings-schema.js.map +1 -1
- package/config/package-config.d.ts +2 -0
- package/config/package-config.d.ts.map +1 -1
- package/config/package-config.js.map +1 -1
- package/config/validation.js +1 -1
- package/config/validation.js.map +1 -1
- package/dependency-scanner/scanner.js +38 -28
- package/dependency-scanner/scanner.js.map +1 -1
- package/dependency-scanner/source-map-file-locator.js +49 -12
- package/dependency-scanner/source-map-file-locator.js.map +1 -1
- package/package.json +5 -2
- package/packtory/changelog-source-attribution.d.ts +1 -0
- package/packtory/changelog-source-attribution.js +13 -2
- package/packtory/changelog-source-attribution.js.map +1 -1
- package/packtory/map-config.d.ts +4 -1
- package/packtory/map-config.d.ts.map +1 -1
- package/packtory/map-config.js +7 -3
- package/packtory/map-config.js.map +1 -1
- package/packtory/options/prepare-package-options.d.ts.map +1 -1
- package/packtory/options/prepare-package-options.js +3 -2
- package/packtory/options/prepare-package-options.js.map +1 -1
- package/packtory/options/setting-resolvers.js +6 -0
- package/packtory/options/setting-resolvers.js.map +1 -1
- package/packtory/options/version-provider-context.d.ts.map +1 -1
- package/packtory/options/version-provider-context.js +7 -4
- package/packtory/options/version-provider-context.js.map +1 -1
- package/packtory/package-processor-build.js +1 -0
- package/packtory/package-processor-build.js.map +1 -1
- package/packtory/packtory-pack.js +1 -1
- package/packtory/packtory-pack.js.map +1 -1
- package/packtory/packtory-release-plan.js +18 -10
- package/packtory/packtory-release-plan.js.map +1 -1
- package/packtory/packtory-results.d.ts +1 -0
- package/packtory/packtory-results.d.ts.map +1 -1
- package/packtory/packtory-results.js.map +1 -1
- package/packtory/release-plan.js +10 -7
- package/packtory/release-plan.js.map +1 -1
- package/readme.md +2 -2
- package/sbom.cdx.json +9 -9
- package/tar/extract-tar.js +42 -11
- package/tar/extract-tar.js.map +1 -1
- package/tar/tarball-builder.d.ts +1 -1
- package/tar/tarball-builder.d.ts.map +1 -1
- package/tar/tarball-builder.js +5 -0
- package/tar/tarball-builder.js.map +1 -1
- package/vendor-materializer/vendor-entry.d.ts +2 -0
- package/vendor-materializer/vendor-entry.d.ts.map +1 -1
- package/vendor-materializer/vendor-entry.js +13 -0
- package/vendor-materializer/vendor-entry.js.map +1 -1
- package/vendor-materializer/vendor-materializer.d.ts.map +1 -1
- package/vendor-materializer/vendor-materializer.js +2 -1
- package/vendor-materializer/vendor-materializer.js.map +1 -1
- package/zip/zip-builder.d.ts +1 -1
- package/zip/zip-builder.d.ts.map +1 -1
- package/zip/zip-builder.js +8 -5
- package/zip/zip-builder.js.map +1 -1
package/tar/tarball-builder.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import zlib from 'node:zlib';
|
|
2
2
|
import tar, {} from 'tar-stream';
|
|
3
|
+
import { validateVendorEntrySource } from "../vendor-materializer/vendor-entry.js";
|
|
3
4
|
const gzipHeaderOperationSystemTypeFieldIndex = 9;
|
|
4
5
|
const gzipHeaderOperationSystemTypeUnknown = 255;
|
|
5
6
|
function normalizeGzipHeader(data) {
|
|
@@ -16,6 +17,9 @@ const nonExecutableFileMode = 420;
|
|
|
16
17
|
export function createTarballBuilder(dependencies = {}) {
|
|
17
18
|
const createGzip = dependencies.createGzip ?? zlib.createGzip;
|
|
18
19
|
const fileManager = dependencies.fileManager ?? {
|
|
20
|
+
async getRealPath(filePath) {
|
|
21
|
+
return filePath;
|
|
22
|
+
},
|
|
19
23
|
async readFileBytes() {
|
|
20
24
|
throw new Error('readFileBytes is required to materialize vendor entries into the tarball');
|
|
21
25
|
}
|
|
@@ -34,6 +38,7 @@ export function createTarballBuilder(dependencies = {}) {
|
|
|
34
38
|
addEntry(pack, fileDescription.filePath, fileDescription.isExecutable, fileDescription.content);
|
|
35
39
|
}
|
|
36
40
|
for (const vendorEntry of vendorEntries) {
|
|
41
|
+
await validateVendorEntrySource(fileManager, vendorEntry);
|
|
37
42
|
const payload = await fileManager.readFileBytes(vendorEntry.sourceAbsolutePath);
|
|
38
43
|
addEntry(pack, vendorEntry.targetRelativePath, vendorEntry.isExecutable, payload);
|
|
39
44
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tarball-builder.js","sourceRoot":"","sources":["../../../../source/tar/tarball-builder.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,GAAG,EAAE,EAAa,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"tarball-builder.js","sourceRoot":"","sources":["../../../../source/tar/tarball-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vendor-entry.d.ts","sourceRoot":"","sources":["../../../../source/vendor-materializer/vendor-entry.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"vendor-entry.d.ts","sourceRoot":"","sources":["../../../../source/vendor-materializer/vendor-entry.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC"}
|
|
@@ -1,6 +1,19 @@
|
|
|
1
|
+
import path from 'node:path';
|
|
2
|
+
function isInFolder(folder, candidate) {
|
|
3
|
+
const relativePath = path.relative(folder, candidate);
|
|
4
|
+
return !relativePath.startsWith('..') && !path.isAbsolute(relativePath);
|
|
5
|
+
}
|
|
6
|
+
export async function validateVendorEntrySource(validator, entry) {
|
|
7
|
+
const rootPath = path.resolve(entry.sourcePackageRootPath);
|
|
8
|
+
const realSourcePath = await validator.getRealPath(entry.sourceAbsolutePath);
|
|
9
|
+
if (!isInFolder(rootPath, path.resolve(realSourcePath))) {
|
|
10
|
+
throw new Error(`Vendored file "${entry.sourceAbsolutePath}" resolved outside package root "${entry.sourcePackageRootPath}"`);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
1
13
|
export function applyPrefixToVendorEntry(prefix, entry) {
|
|
2
14
|
return {
|
|
3
15
|
sourceAbsolutePath: entry.sourceAbsolutePath,
|
|
16
|
+
sourcePackageRootPath: entry.sourcePackageRootPath,
|
|
4
17
|
targetRelativePath: `${prefix}/${entry.targetRelativePath}`,
|
|
5
18
|
isExecutable: entry.isExecutable
|
|
6
19
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vendor-entry.js","sourceRoot":"","sources":["../../../../source/vendor-materializer/vendor-entry.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"vendor-entry.js","sourceRoot":"","sources":["../../../../source/vendor-materializer/vendor-entry.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAY7B,SAAS,UAAU,CAAC,MAAc,EAAE,SAAiB;IACjD,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACtD,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AAC5E,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC3C,SAAqC,EACrC,KAAkB;IAElB,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;IAC3D,MAAM,cAAc,GAAG,MAAM,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;IAE7E,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC;QACtD,MAAM,IAAI,KAAK,CACX,kBAAkB,KAAK,CAAC,kBAAkB,oCAAoC,KAAK,CAAC,qBAAqB,GAAG,CAC/G,CAAC;IACN,CAAC;AACL,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,MAAc,EAAE,KAAkB;IACvE,OAAO;QACH,kBAAkB,EAAE,KAAK,CAAC,kBAAkB;QAC5C,qBAAqB,EAAE,KAAK,CAAC,qBAAqB;QAClD,kBAAkB,EAAE,GAAG,MAAM,IAAI,KAAK,CAAC,kBAAkB,EAAE;QAC3D,YAAY,EAAE,KAAK,CAAC,YAAY;KACnC,CAAC;AACN,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vendor-materializer.d.ts","sourceRoot":"","sources":["../../../../source/vendor-materializer/vendor-materializer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"vendor-materializer.d.ts","sourceRoot":"","sources":["../../../../source/vendor-materializer/vendor-materializer.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW;AAUlC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC;AAClE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import path from 'node:path';
|
|
2
|
-
import { safeParse } from '@schema-hub/zod-error-formatter';
|
|
3
2
|
import npa from 'npm-package-arg';
|
|
4
3
|
import { Result } from 'true-myth';
|
|
5
4
|
import { z } from 'zod/mini';
|
|
5
|
+
import { safeParse } from "../common/schema-validation.js";
|
|
6
6
|
import { ancestorInstalledDependencyPathCandidates, bundledInstalledDependencyPath, installedDependenciesFolderName, packageManifestPathIn } from "../common/package-layout.js";
|
|
7
7
|
import { createWorklist } from "../common/worklist.js";
|
|
8
8
|
export const vendorMaterializerFailureType = {
|
|
@@ -99,6 +99,7 @@ const walkPackageDirectory = async (walker, state, relativeDirectory) => {
|
|
|
99
99
|
}
|
|
100
100
|
state.collected.push({
|
|
101
101
|
sourceAbsolutePath: path.join(state.packageDirectory.rootDirectory, relativeEntryPath),
|
|
102
|
+
sourcePackageRootPath: state.packageDirectory.rootDirectory,
|
|
102
103
|
targetRelativePath: bundledInstalledDependencyPath(state.packageDirectory.packageName, relativeEntryPath),
|
|
103
104
|
isExecutable: false
|
|
104
105
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vendor-materializer.js","sourceRoot":"","sources":["../../../../source/vendor-materializer/vendor-materializer.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,
|
|
1
|
+
{"version":3,"file":"vendor-materializer.js","sourceRoot":"","sources":["../../../../source/vendor-materializer/vendor-materializer.ts"],"names":[],"mappings":"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"}
|
package/zip/zip-builder.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { FileDescription } from '../file-manager/file-description.ts';
|
|
2
2
|
import type { FileManager } from '../file-manager/file-manager.ts';
|
|
3
|
-
import type
|
|
3
|
+
import { type VendorEntry } from '../vendor-materializer/vendor-entry.ts';
|
|
4
4
|
export {};
|
|
5
5
|
//# sourceMappingURL=zip-builder.d.ts.map
|
package/zip/zip-builder.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zip-builder.d.ts","sourceRoot":"","sources":["../../../../source/zip/zip-builder.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qCAAqC;AAC1E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC;AAClE,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"zip-builder.d.ts","sourceRoot":"","sources":["../../../../source/zip/zip-builder.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qCAAqC;AAC1E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC;AAClE,OAAO,EAA6B,KAAK,WAAW,EAAE,MAAM,wCAAwC"}
|
package/zip/zip-builder.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { zip as fflateZip } from 'fflate';
|
|
2
|
+
import { validateVendorEntrySource } from "../vendor-materializer/vendor-entry.js";
|
|
2
3
|
const unixOperatingSystem = 3;
|
|
3
4
|
const executableUnixMode = 0o10_0755;
|
|
4
5
|
const nonExecutableUnixMode = 0o10_0644;
|
|
@@ -37,19 +38,23 @@ function buildFileEntry(payload, isExecutable) {
|
|
|
37
38
|
}
|
|
38
39
|
];
|
|
39
40
|
}
|
|
40
|
-
async function toFileMap(fileDescriptions, vendorEntries,
|
|
41
|
+
async function toFileMap(fileDescriptions, vendorEntries, fileManager) {
|
|
41
42
|
const fileMap = {};
|
|
42
43
|
for (const fileDescription of fileDescriptions) {
|
|
43
44
|
fileMap[fileDescription.filePath] = buildFileEntry(new TextEncoder().encode(fileDescription.content), fileDescription.isExecutable);
|
|
44
45
|
}
|
|
45
46
|
for (const vendorEntry of vendorEntries) {
|
|
46
|
-
|
|
47
|
+
await validateVendorEntrySource(fileManager, vendorEntry);
|
|
48
|
+
const payload = await fileManager.readFileBytes(vendorEntry.sourceAbsolutePath);
|
|
47
49
|
fileMap[vendorEntry.targetRelativePath] = buildFileEntry(payload, vendorEntry.isExecutable);
|
|
48
50
|
}
|
|
49
51
|
return fileMap;
|
|
50
52
|
}
|
|
51
53
|
export function createZipBuilder(dependencies = {}) {
|
|
52
54
|
const fileManager = dependencies.fileManager ?? {
|
|
55
|
+
async getRealPath(filePath) {
|
|
56
|
+
return filePath;
|
|
57
|
+
},
|
|
53
58
|
async readFileBytes() {
|
|
54
59
|
throw new Error('readFileBytes is required to materialize vendor entries into the zip');
|
|
55
60
|
}
|
|
@@ -57,9 +62,7 @@ export function createZipBuilder(dependencies = {}) {
|
|
|
57
62
|
const zip = createZipFunction(dependencies.zip);
|
|
58
63
|
return {
|
|
59
64
|
async build(fileDescriptions, vendorEntries = []) {
|
|
60
|
-
const fileMap = await toFileMap(fileDescriptions, vendorEntries,
|
|
61
|
-
return fileManager.readFileBytes(filePath);
|
|
62
|
-
});
|
|
65
|
+
const fileMap = await toFileMap(fileDescriptions, vendorEntries, fileManager);
|
|
63
66
|
const data = await new Promise((resolve, reject) => {
|
|
64
67
|
zip(fileMap, {}, (error, zippedData) => {
|
|
65
68
|
if (error === null || error === undefined) {
|
package/zip/zip-builder.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zip-builder.js","sourceRoot":"","sources":["../../../../source/zip/zip-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,IAAI,SAAS,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"zip-builder.js","sourceRoot":"","sources":["../../../../source/zip/zip-builder.ts"],"names":[],"mappings":"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"}
|