packtory 0.0.5 → 0.0.6
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/artifacts-builder.d.ts +7 -7
- package/artifacts/artifacts-builder.d.ts.map +1 -1
- package/artifacts/artifacts-builder.js +22 -25
- package/artifacts/artifacts-builder.js.map +1 -1
- package/bundle-emitter/emitter.d.ts +30 -0
- package/bundle-emitter/emitter.d.ts.map +1 -0
- package/bundle-emitter/emitter.js +35 -0
- package/bundle-emitter/emitter.js.map +1 -0
- package/{publisher → bundle-emitter}/extract-package-tarball.js +2 -2
- package/bundle-emitter/extract-package-tarball.js.map +1 -0
- package/{publisher → bundle-emitter}/registry-client.d.ts +5 -5
- package/bundle-emitter/registry-client.d.ts.map +1 -0
- package/{publisher → bundle-emitter}/registry-client.js +13 -10
- package/bundle-emitter/registry-client.js.map +1 -0
- package/checks/check-runner.js +13 -0
- package/checks/check-runner.js.map +1 -0
- package/checks/rules/no-duplicated-files.js +29 -0
- package/checks/rules/no-duplicated-files.js.map +1 -0
- package/config/additional-files.d.ts +6 -12
- package/config/additional-files.d.ts.map +1 -1
- package/config/additional-files.js +4 -5
- package/config/additional-files.js.map +1 -1
- package/config/base-validations.js +2 -2
- package/config/base-validations.js.map +1 -1
- package/config/config.d.ts +671 -468
- package/config/config.d.ts.map +1 -1
- package/config/config.js +55 -52
- package/config/config.js.map +1 -1
- package/config/entry-point.d.ts +6 -12
- package/config/entry-point.d.ts.map +1 -1
- package/config/entry-point.js +5 -6
- package/config/entry-point.js.map +1 -1
- package/config/package-json.d.ts +10 -38
- package/config/package-json.d.ts.map +1 -1
- package/config/package-json.js +9 -20
- package/config/package-json.js.map +1 -1
- package/config/registry-settings.d.ts +6 -12
- package/config/registry-settings.d.ts.map +1 -1
- package/config/registry-settings.js +5 -6
- package/config/registry-settings.js.map +1 -1
- package/config/validation.d.ts +15 -5
- package/config/validation.d.ts.map +1 -1
- package/config/validation.js +32 -9
- package/config/validation.js.map +1 -1
- package/config/versioning-settings.d.ts +9 -22
- package/config/versioning-settings.d.ts.map +1 -1
- package/config/versioning-settings.js +10 -13
- package/config/versioning-settings.js.map +1 -1
- package/dependency-scanner/dependency-graph.d.ts +15 -13
- package/dependency-scanner/dependency-graph.d.ts.map +1 -1
- package/dependency-scanner/dependency-graph.js +31 -12
- package/dependency-scanner/dependency-graph.js.map +1 -1
- package/dependency-scanner/external-dependencies.d.ts +7 -0
- package/dependency-scanner/external-dependencies.d.ts.map +1 -0
- package/dependency-scanner/external-dependencies.js +18 -0
- package/dependency-scanner/external-dependencies.js.map +1 -0
- package/dependency-scanner/scanner.d.ts +4 -19
- package/dependency-scanner/scanner.d.ts.map +1 -1
- package/dependency-scanner/scanner.js +8 -67
- package/dependency-scanner/scanner.js.map +1 -1
- package/dependency-scanner/source-file-references.js +2 -1
- package/dependency-scanner/source-file-references.js.map +1 -1
- package/dependency-scanner/source-map-file-locator.d.ts +2 -2
- package/dependency-scanner/source-map-file-locator.d.ts.map +1 -1
- package/dependency-scanner/typescript-file-host.d.ts.map +1 -1
- package/dependency-scanner/typescript-file-host.js +1 -2
- package/dependency-scanner/typescript-file-host.js.map +1 -1
- package/dependency-scanner/typescript-project-analyzer.d.ts +6 -5
- package/dependency-scanner/typescript-project-analyzer.d.ts.map +1 -1
- package/dependency-scanner/typescript-project-analyzer.js +3 -0
- package/dependency-scanner/typescript-project-analyzer.js.map +1 -1
- package/directed-graph/graph.d.ts +12 -10
- package/directed-graph/graph.d.ts.map +1 -1
- package/directed-graph/graph.js +23 -11
- package/directed-graph/graph.js.map +1 -1
- package/{file-description → file-manager}/compare.js +2 -2
- package/file-manager/compare.js.map +1 -0
- package/file-manager/equal.js.map +1 -0
- package/file-manager/file-description.d.ts +13 -0
- package/file-manager/file-description.d.ts.map +1 -0
- package/file-manager/file-manager.d.ts +19 -0
- package/file-manager/file-manager.d.ts.map +1 -0
- package/{artifacts → file-manager}/file-manager.js +15 -4
- package/file-manager/file-manager.js.map +1 -0
- package/{file-description → file-manager}/permissions.js +1 -0
- package/file-manager/permissions.js.map +1 -0
- package/{file-description → file-manager}/sort.js +1 -1
- package/file-manager/sort.js.map +1 -0
- package/linker/linked-bundle.d.ts +14 -0
- package/linker/linked-bundle.d.ts.map +1 -0
- package/linker/linker.d.ts +12 -0
- package/linker/linker.d.ts.map +1 -0
- package/linker/linker.js +25 -0
- package/linker/linker.js.map +1 -0
- package/linker/resource-graph.js +30 -0
- package/linker/resource-graph.js.map +1 -0
- package/linker/source-modifier/import-paths.js +36 -0
- package/linker/source-modifier/import-paths.js.map +1 -0
- package/linker/substitute-bundles.js +75 -0
- package/linker/substitute-bundles.js.map +1 -0
- package/linker/substituted-resource-graph.js +57 -0
- package/linker/substituted-resource-graph.js.map +1 -0
- package/list/unique-list.js +5 -0
- package/list/unique-list.js.map +1 -0
- package/package.json +15 -13
- package/packages/packtory/packtory.entry-point.d.ts +3 -3
- package/packages/packtory/packtory.entry-point.d.ts.map +1 -1
- package/packages/packtory/packtory.entry-point.js +41 -18
- package/packages/packtory/packtory.entry-point.js.map +1 -1
- package/packtory/map-config.d.ts +25 -0
- package/packtory/map-config.d.ts.map +1 -0
- package/packtory/map-config.js +29 -13
- package/packtory/map-config.js.map +1 -1
- package/packtory/package-processor.d.ts +32 -0
- package/packtory/package-processor.d.ts.map +1 -0
- package/packtory/package-processor.js +86 -0
- package/packtory/package-processor.js.map +1 -0
- package/packtory/packtory.d.ts +25 -7
- package/packtory/packtory.d.ts.map +1 -1
- package/packtory/packtory.js +119 -17
- package/packtory/packtory.js.map +1 -1
- package/packtory/scheduler.d.ts +36 -7
- package/packtory/scheduler.d.ts.map +1 -1
- package/packtory/scheduler.js +39 -25
- package/packtory/scheduler.js.map +1 -1
- package/progress/progress-broadcaster.d.ts +8 -0
- package/progress/progress-broadcaster.d.ts.map +1 -1
- package/progress/progress-broadcaster.js +1 -0
- package/progress/progress-broadcaster.js.map +1 -1
- package/resource-resolver/content.js +35 -0
- package/resource-resolver/content.js.map +1 -0
- package/resource-resolver/resolved-bundle.d.ts +21 -0
- package/resource-resolver/resolved-bundle.d.ts.map +1 -0
- package/resource-resolver/resource-resolve-options.d.ts +13 -0
- package/resource-resolver/resource-resolve-options.d.ts.map +1 -0
- package/resource-resolver/resource-resolver.d.ts +13 -0
- package/resource-resolver/resource-resolver.d.ts.map +1 -0
- package/resource-resolver/resource-resolver.js +66 -0
- package/resource-resolver/resource-resolver.js.map +1 -0
- package/tar/tarball-builder.d.ts +2 -2
- package/tar/tarball-builder.d.ts.map +1 -1
- package/tar/tarball-builder.js +1 -0
- package/tar/tarball-builder.js.map +1 -1
- package/version-manager/manager.d.ts +7 -0
- package/version-manager/manager.d.ts.map +1 -0
- package/version-manager/manager.js +44 -0
- package/version-manager/manager.js.map +1 -0
- package/version-manager/manifest/builder.d.ts +5 -0
- package/version-manager/manifest/builder.d.ts.map +1 -0
- package/version-manager/manifest/builder.js +13 -0
- package/version-manager/manifest/builder.js.map +1 -0
- package/{package-json.js → version-manager/manifest/serialize.js} +3 -2
- package/version-manager/manifest/serialize.js.map +1 -0
- package/version-manager/versioned-bundle.d.ts +28 -0
- package/version-manager/versioned-bundle.d.ts.map +1 -0
- package/version-manager/versioned-bundle.js +79 -0
- package/version-manager/versioned-bundle.js.map +1 -0
- package/LICENSE +0 -21
- package/artifacts/file-manager.d.ts +0 -17
- package/artifacts/file-manager.d.ts.map +0 -1
- package/artifacts/file-manager.js.map +0 -1
- package/bundler/bundle-build-options.d.ts +0 -19
- package/bundler/bundle-build-options.d.ts.map +0 -1
- package/bundler/bundle-build-options.js +0 -25
- package/bundler/bundle-build-options.js.map +0 -1
- package/bundler/bundle-description.d.ts +0 -27
- package/bundler/bundle-description.d.ts.map +0 -1
- package/bundler/bundler.d.ts +0 -11
- package/bundler/bundler.d.ts.map +0 -1
- package/bundler/bundler.js +0 -101
- package/bundler/bundler.js.map +0 -1
- package/bundler/content.js +0 -53
- package/bundler/content.js.map +0 -1
- package/bundler/substitute-bundles.js +0 -73
- package/bundler/substitute-bundles.js.map +0 -1
- package/config/base-validations.d.ts +0 -5
- package/config/base-validations.d.ts.map +0 -1
- package/file-description/compare.js.map +0 -1
- package/file-description/equal.js.map +0 -1
- package/file-description/file-description.d.ts +0 -6
- package/file-description/file-description.d.ts.map +0 -1
- package/file-description/permissions.js.map +0 -1
- package/file-description/sort.js.map +0 -1
- package/package-json.js.map +0 -1
- package/packages/bundler/bundler.entry-point.js +0 -21
- package/packages/bundler/bundler.entry-point.js.map +0 -1
- package/publisher/extract-package-tarball.js.map +0 -1
- package/publisher/publisher.d.ts +0 -39
- package/publisher/publisher.d.ts.map +0 -1
- package/publisher/publisher.js +0 -73
- package/publisher/publisher.js.map +0 -1
- package/publisher/registry-client.d.ts.map +0 -1
- package/publisher/registry-client.js.map +0 -1
- package/publisher/version.js +0 -35
- package/publisher/version.js.map +0 -1
- package/readme.md +0 -38
- package/source-modifier/import-paths.js +0 -17
- package/source-modifier/import-paths.js.map +0 -1
- package/validation/capitalize.js +0 -7
- package/validation/capitalize.js.map +0 -1
- package/validation/formatting/ast.js +0 -113
- package/validation/formatting/ast.js.map +0 -1
- package/validation/formatting.js +0 -98
- package/validation/formatting.js.map +0 -1
- package/validation/validate.js +0 -17
- package/validation/validate.js.map +0 -1
- /package/{file-description → file-manager}/equal.js +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type {
|
|
3
|
-
import type {
|
|
4
|
-
import type {
|
|
1
|
+
import type { FileDescription } from '../file-manager/file-description.ts';
|
|
2
|
+
import type { FileManager } from '../file-manager/file-manager.ts';
|
|
3
|
+
import type { VersionedBundleWithManifest } from '../version-manager/versioned-bundle.ts';
|
|
4
|
+
import type { TarballBuilder } from '../tar/tarball-builder.ts';
|
|
5
5
|
export type ArtifactsBuilderDependencies = {
|
|
6
6
|
readonly fileManager: FileManager;
|
|
7
7
|
readonly tarballBuilder: TarballBuilder;
|
|
@@ -11,9 +11,9 @@ export type TarballArtifact = {
|
|
|
11
11
|
readonly shasum: string;
|
|
12
12
|
};
|
|
13
13
|
export type ArtifactsBuilder = {
|
|
14
|
-
collectContents(bundle:
|
|
15
|
-
buildTarball(bundle:
|
|
16
|
-
buildFolder(bundle:
|
|
14
|
+
collectContents: (bundle: VersionedBundleWithManifest, prefix?: string) => readonly FileDescription[];
|
|
15
|
+
buildTarball: (bundle: VersionedBundleWithManifest) => Promise<TarballArtifact>;
|
|
16
|
+
buildFolder: (bundle: VersionedBundleWithManifest, targetFolder: string) => Promise<void>;
|
|
17
17
|
};
|
|
18
18
|
export declare function createArtifactsBuilder(artifactsBuilderDependencies: ArtifactsBuilderDependencies): ArtifactsBuilder;
|
|
19
19
|
//# sourceMappingURL=artifacts-builder.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"artifacts-builder.d.ts","sourceRoot":"","sources":["../../../../source/artifacts/artifacts-builder.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"artifacts-builder.d.ts","sourceRoot":"","sources":["../../../../source/artifacts/artifacts-builder.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,wCAAwC,CAAC;AAC1F,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAEhE,MAAM,MAAM,4BAA4B,GAAG;IACvC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;CAC3C,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC3B,eAAe,EAAE,CAAC,MAAM,EAAE,2BAA2B,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,SAAS,eAAe,EAAE,CAAC;IACtG,YAAY,EAAE,CAAC,MAAM,EAAE,2BAA2B,KAAK,OAAO,CAAC,eAAe,CAAC,CAAC;IAChF,WAAW,EAAE,CAAC,MAAM,EAAE,2BAA2B,EAAE,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7F,CAAC;AAEF,wBAAgB,sBAAsB,CAAC,4BAA4B,EAAE,4BAA4B,GAAG,gBAAgB,CA0DnH"}
|
|
@@ -1,34 +1,32 @@
|
|
|
1
1
|
import path from 'node:path';
|
|
2
2
|
import ssri from 'ssri';
|
|
3
|
-
import { isExecutableFileMode } from '../file-description/permissions.js';
|
|
4
3
|
export function createArtifactsBuilder(artifactsBuilderDependencies) {
|
|
5
4
|
const { fileManager, tarballBuilder } = artifactsBuilderDependencies;
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
async function collectContents(bundle) {
|
|
14
|
-
const artifactContents = [];
|
|
15
|
-
for (const entry of bundle.contents) {
|
|
16
|
-
const targetFilePath = path.join('package', entry.targetFilePath);
|
|
17
|
-
const isExecutable = await isBundleContentExecutable(entry);
|
|
18
|
-
if (entry.kind === 'reference') {
|
|
19
|
-
const content = await fileManager.readFile(entry.sourceFilePath);
|
|
20
|
-
artifactContents.push({ filePath: targetFilePath, content, isExecutable });
|
|
21
|
-
}
|
|
22
|
-
else {
|
|
23
|
-
artifactContents.push({ filePath: targetFilePath, content: entry.source, isExecutable });
|
|
5
|
+
function collectContents(bundle, prefix) {
|
|
6
|
+
const artifactContents = [
|
|
7
|
+
{
|
|
8
|
+
...bundle.manifestFile,
|
|
9
|
+
filePath: prefix === undefined
|
|
10
|
+
? bundle.manifestFile.filePath
|
|
11
|
+
: path.join(prefix, bundle.manifestFile.filePath)
|
|
24
12
|
}
|
|
13
|
+
];
|
|
14
|
+
for (const entry of bundle.contents) {
|
|
15
|
+
const targetFilePath = prefix === undefined
|
|
16
|
+
? entry.fileDescription.targetFilePath
|
|
17
|
+
: path.join(prefix, entry.fileDescription.targetFilePath);
|
|
18
|
+
artifactContents.push({
|
|
19
|
+
filePath: targetFilePath,
|
|
20
|
+
content: entry.fileDescription.content,
|
|
21
|
+
isExecutable: entry.fileDescription.isExecutable
|
|
22
|
+
});
|
|
25
23
|
}
|
|
26
24
|
return artifactContents;
|
|
27
25
|
}
|
|
28
26
|
return {
|
|
29
27
|
collectContents,
|
|
30
28
|
async buildTarball(bundle) {
|
|
31
|
-
const contents =
|
|
29
|
+
const contents = collectContents(bundle, 'package');
|
|
32
30
|
const tarData = await tarballBuilder.build(contents);
|
|
33
31
|
return {
|
|
34
32
|
shasum: ssri.fromData(tarData, { algorithms: ['sha1'] }).hexDigest(),
|
|
@@ -40,11 +38,10 @@ export function createArtifactsBuilder(artifactsBuilderDependencies) {
|
|
|
40
38
|
if (readability.isReadable) {
|
|
41
39
|
throw new Error(`Folder ${targetFolder} already exists`);
|
|
42
40
|
}
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
: fileManager.writeFile(targetFilePath, entry.source));
|
|
41
|
+
const contents = collectContents(bundle);
|
|
42
|
+
for (const entry of contents) {
|
|
43
|
+
const targetFilePath = path.join(targetFolder, entry.filePath);
|
|
44
|
+
await fileManager.writeFile(targetFilePath, entry.content);
|
|
48
45
|
}
|
|
49
46
|
}
|
|
50
47
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"artifacts-builder.js","sourceRoot":"","sources":["../../../../source/artifacts/artifacts-builder.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,IAAI,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"artifacts-builder.js","sourceRoot":"","sources":["../../../../source/artifacts/artifacts-builder.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,IAAI,MAAM,MAAM,CAAC;AAsBxB,MAAM,UAAU,sBAAsB,CAAC,4BAA0D;IAC7F,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,GAAG,4BAA4B,CAAC;IAErE,SAAS,eAAe,CAAC,MAAmC,EAAE,MAAe;QACzE,MAAM,gBAAgB,GAAsB;YACxC;gBACI,GAAG,MAAM,CAAC,YAAY;gBACtB,QAAQ,EACJ,MAAM,KAAK,SAAS;oBAChB,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ;oBAC9B,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC;aAC5D;SACJ,CAAC;QAEF,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YAClC,MAAM,cAAc,GAChB,MAAM,KAAK,SAAS;gBAChB,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,cAAc;gBACtC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;YAClE,gBAAgB,CAAC,IAAI,CAAC;gBAClB,QAAQ,EAAE,cAAc;gBACxB,OAAO,EAAE,KAAK,CAAC,eAAe,CAAC,OAAO;gBACtC,YAAY,EAAE,KAAK,CAAC,eAAe,CAAC,YAAY;aACnD,CAAC,CAAC;QACP,CAAC;QAED,OAAO,gBAAgB,CAAC;IAC5B,CAAC;IAED,OAAO;QACH,eAAe;QAEf,KAAK,CAAC,YAAY,CAAC,MAAM;YACrB,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;YACpD,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAErD,OAAO;gBACH,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE;gBACpE,OAAO;aACV,CAAC;QACN,CAAC;QAED,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,YAAY;YAClC,MAAM,WAAW,GAAG,MAAM,WAAW,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;YAErE,IAAI,WAAW,CAAC,UAAU,EAAE,CAAC;gBACzB,MAAM,IAAI,KAAK,CAAC,UAAU,YAAY,iBAAiB,CAAC,CAAC;YAC7D,CAAC;YAED,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;YAEzC,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;gBAC3B,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;gBAE/D,MAAM,WAAW,CAAC,SAAS,CAAC,cAAc,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YAC/D,CAAC;QACL,CAAC;KACJ,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Maybe } from 'true-myth';
|
|
2
|
+
import type { ArtifactsBuilder } from '../artifacts/artifacts-builder.ts';
|
|
3
|
+
import type { RegistrySettings } from '../config/registry-settings.ts';
|
|
4
|
+
import type { VersioningSettings } from '../config/versioning-settings.ts';
|
|
5
|
+
import type { VersionedBundleWithManifest } from '../version-manager/versioned-bundle.ts';
|
|
6
|
+
import type { RegistryClient } from './registry-client.ts';
|
|
7
|
+
export type BundleEmitterDependencies = {
|
|
8
|
+
readonly artifactsBuilder: ArtifactsBuilder;
|
|
9
|
+
readonly registryClient: RegistryClient;
|
|
10
|
+
};
|
|
11
|
+
export type PublishOptions = {
|
|
12
|
+
readonly bundle: VersionedBundleWithManifest;
|
|
13
|
+
readonly registrySettings: RegistrySettings;
|
|
14
|
+
};
|
|
15
|
+
type CurrentVersionLookupOptions = {
|
|
16
|
+
readonly name: string;
|
|
17
|
+
readonly registrySettings: RegistrySettings;
|
|
18
|
+
readonly versioning: VersioningSettings;
|
|
19
|
+
};
|
|
20
|
+
type BundlePublishedCheckResult = {
|
|
21
|
+
readonly alreadyPublishedAsLatest: boolean;
|
|
22
|
+
};
|
|
23
|
+
export type BundleEmitter = {
|
|
24
|
+
publish: (options: PublishOptions) => Promise<void>;
|
|
25
|
+
determineCurrentVersion: (options: CurrentVersionLookupOptions) => Promise<Maybe<string>>;
|
|
26
|
+
checkBundleAlreadyPublished: (options: PublishOptions) => Promise<BundlePublishedCheckResult>;
|
|
27
|
+
};
|
|
28
|
+
export declare function createBundleEmitter(dependencies: BundleEmitterDependencies): BundleEmitter;
|
|
29
|
+
export {};
|
|
30
|
+
//# sourceMappingURL=emitter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"emitter.d.ts","sourceRoot":"","sources":["../../../../source/bundle-emitter/emitter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAE3E,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,wCAAwC,CAAC;AAE1F,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D,MAAM,MAAM,yBAAyB,GAAG;IACpC,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAC5C,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;CAC3C,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IACzB,QAAQ,CAAC,MAAM,EAAE,2BAA2B,CAAC;IAC7C,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;CAC/C,CAAC;AAEF,KAAK,2BAA2B,GAAG;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAC5C,QAAQ,CAAC,UAAU,EAAE,kBAAkB,CAAC;CAC3C,CAAC;AAEF,KAAK,0BAA0B,GAAG;IAC9B,QAAQ,CAAC,wBAAwB,EAAE,OAAO,CAAC;CAC9C,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IACxB,OAAO,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,uBAAuB,EAAE,CAAC,OAAO,EAAE,2BAA2B,KAAK,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IAC1F,2BAA2B,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,OAAO,CAAC,0BAA0B,CAAC,CAAC;CACjG,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,yBAAyB,GAAG,aAAa,CAwC1F"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { Maybe } from 'true-myth';
|
|
2
|
+
import { compareFileDescriptions } from "../file-manager/compare.js";
|
|
3
|
+
import { extractPackageTarball } from "./extract-package-tarball.js";
|
|
4
|
+
export function createBundleEmitter(dependencies) {
|
|
5
|
+
const { artifactsBuilder, registryClient } = dependencies;
|
|
6
|
+
return {
|
|
7
|
+
async determineCurrentVersion(options) {
|
|
8
|
+
const { versioning, registrySettings, name } = options;
|
|
9
|
+
if (versioning.automatic) {
|
|
10
|
+
const latestVersion = await registryClient.fetchLatestVersion(name, registrySettings);
|
|
11
|
+
return latestVersion.map((version) => {
|
|
12
|
+
return version.version;
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
return Maybe.just(versioning.version);
|
|
16
|
+
},
|
|
17
|
+
async checkBundleAlreadyPublished(options) {
|
|
18
|
+
const { bundle, registrySettings } = options;
|
|
19
|
+
const latestVersion = await registryClient.fetchLatestVersion(bundle.name, registrySettings);
|
|
20
|
+
if (latestVersion.isNothing) {
|
|
21
|
+
return { alreadyPublishedAsLatest: false };
|
|
22
|
+
}
|
|
23
|
+
const artifactContents = artifactsBuilder.collectContents(bundle, 'package');
|
|
24
|
+
const tarball = await registryClient.fetchTarball(latestVersion.value.tarballUrl, latestVersion.value.shasum);
|
|
25
|
+
const latestVersionArtifactContents = await extractPackageTarball(tarball);
|
|
26
|
+
const result = compareFileDescriptions(artifactContents, latestVersionArtifactContents);
|
|
27
|
+
return { alreadyPublishedAsLatest: result.status === 'equal' };
|
|
28
|
+
},
|
|
29
|
+
async publish(options) {
|
|
30
|
+
const tarball = await artifactsBuilder.buildTarball(options.bundle);
|
|
31
|
+
await registryClient.publishPackage(options.bundle.packageJson, tarball.tarData, options.registrySettings);
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=emitter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"emitter.js","sourceRoot":"","sources":["../../../../source/bundle-emitter/emitter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAIlC,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAErE,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AA6BrE,MAAM,UAAU,mBAAmB,CAAC,YAAuC;IACvE,MAAM,EAAE,gBAAgB,EAAE,cAAc,EAAE,GAAG,YAAY,CAAC;IAE1D,OAAO;QACH,KAAK,CAAC,uBAAuB,CAAC,OAAO;YACjC,MAAM,EAAE,UAAU,EAAE,gBAAgB,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;YAEvD,IAAI,UAAU,CAAC,SAAS,EAAE,CAAC;gBACvB,MAAM,aAAa,GAAG,MAAM,cAAc,CAAC,kBAAkB,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;gBACtF,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;oBACjC,OAAO,OAAO,CAAC,OAAO,CAAC;gBAC3B,CAAC,CAAC,CAAC;YACP,CAAC;YAED,OAAO,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAC1C,CAAC;QAED,KAAK,CAAC,2BAA2B,CAAC,OAAO;YACrC,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC;YAC7C,MAAM,aAAa,GAAG,MAAM,cAAc,CAAC,kBAAkB,CAAC,MAAM,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;YAC7F,IAAI,aAAa,CAAC,SAAS,EAAE,CAAC;gBAC1B,OAAO,EAAE,wBAAwB,EAAE,KAAK,EAAE,CAAC;YAC/C,CAAC;YAED,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,eAAe,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;YAC7E,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,YAAY,CAC7C,aAAa,CAAC,KAAK,CAAC,UAAU,EAC9B,aAAa,CAAC,KAAK,CAAC,MAAM,CAC7B,CAAC;YACF,MAAM,6BAA6B,GAAG,MAAM,qBAAqB,CAAC,OAAO,CAAC,CAAC;YAC3E,MAAM,MAAM,GAAG,uBAAuB,CAAC,gBAAgB,EAAE,6BAA6B,CAAC,CAAC;YACxF,OAAO,EAAE,wBAAwB,EAAE,MAAM,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;QACnE,CAAC;QAED,KAAK,CAAC,OAAO,CAAC,OAAO;YACjB,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAEpE,MAAM,cAAc,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;QAC/G,CAAC;KACJ,CAAC;AACN,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { isExecutableFileMode } from
|
|
2
|
-
import { extractTarEntries } from
|
|
1
|
+
import { isExecutableFileMode } from "../file-manager/permissions.js";
|
|
2
|
+
import { extractTarEntries } from "../tar/extract-tar.js";
|
|
3
3
|
function tarEntryToFileDescription(tarEntry) {
|
|
4
4
|
const isExecutable = tarEntry.header.mode === undefined ? false : isExecutableFileMode(tarEntry.header.mode);
|
|
5
5
|
return {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extract-package-tarball.js","sourceRoot":"","sources":["../../../../source/bundle-emitter/extract-package-tarball.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAiB,MAAM,uBAAuB,CAAC;AAEzE,SAAS,yBAAyB,CAAC,QAAkB;IACjD,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,oBAAoB,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAE7G,OAAO;QACH,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI;QAC9B,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,YAAY;KACf,CAAC;AACN,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,OAAe;IACvD,MAAM,UAAU,GAAG,MAAM,iBAAiB,CAAC,OAAO,CAAC,CAAC;IACpD,OAAO,UAAU,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;AACrD,CAAC"}
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import type _npmFetch from 'npm-registry-fetch';
|
|
2
2
|
import type { publish as _publish } from 'libnpmpublish';
|
|
3
3
|
import { Maybe } from 'true-myth';
|
|
4
|
-
import type {
|
|
5
|
-
import type {
|
|
4
|
+
import type { RegistrySettings } from '../config/registry-settings.ts';
|
|
5
|
+
import type { BundlePackageJson } from '../version-manager/manifest/builder.ts';
|
|
6
6
|
type PublishFunction = typeof _publish;
|
|
7
7
|
export type RegistryClientDependencies = {
|
|
8
8
|
readonly npmFetch: typeof _npmFetch;
|
|
9
9
|
readonly publish: PublishFunction;
|
|
10
10
|
};
|
|
11
11
|
export type RegistryClient = {
|
|
12
|
-
fetchLatestVersion(packageName: string, config: RegistrySettings)
|
|
13
|
-
publishPackage(manifest: Readonly<BundlePackageJson>, tarData: Buffer, config: RegistrySettings)
|
|
14
|
-
fetchTarball(tarballUrl: string, shasum: string)
|
|
12
|
+
fetchLatestVersion: (packageName: string, config: RegistrySettings) => Promise<Maybe<PackageVersionDetails>>;
|
|
13
|
+
publishPackage: (manifest: Readonly<BundlePackageJson>, tarData: Buffer, config: RegistrySettings) => Promise<void>;
|
|
14
|
+
fetchTarball: (tarballUrl: string, shasum: string) => Promise<Buffer>;
|
|
15
15
|
};
|
|
16
16
|
export type PackageVersionDetails = {
|
|
17
17
|
readonly version: string;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry-client.d.ts","sourceRoot":"","sources":["../../../../source/bundle-emitter/registry-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,SAAS,MAAM,oBAAoB,CAAC;AAChD,OAAO,KAAK,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAGlC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAEhF,KAAK,eAAe,GAAG,OAAO,QAAQ,CAAC;AAEvC,MAAM,MAAM,0BAA0B,GAAG;IACrC,QAAQ,CAAC,QAAQ,EAAE,OAAO,SAAS,CAAC;IACpC,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IACzB,kBAAkB,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,KAAK,OAAO,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC;IAC7G,cAAc,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpH,YAAY,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CACzE,CAAC;AAmCF,MAAM,MAAM,qBAAqB,GAAG;IAChC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC/B,CAAC;AAKF,wBAAgB,oBAAoB,CAAC,YAAY,EAAE,QAAQ,CAAC,0BAA0B,CAAC,GAAG,cAAc,CAsFvG"}
|
|
@@ -1,21 +1,22 @@
|
|
|
1
1
|
import { Maybe } from 'true-myth';
|
|
2
|
-
import {
|
|
2
|
+
import { z } from 'zod/mini';
|
|
3
|
+
import { safeParse } from '@schema-hub/zod-error-formatter';
|
|
3
4
|
function isFetchError(error) {
|
|
4
5
|
return typeof error === 'object' && error !== null && Object.hasOwn(error, 'statusCode');
|
|
5
6
|
}
|
|
6
7
|
function encodePackageName(name) {
|
|
7
8
|
return name.replace('/', '%2F');
|
|
8
9
|
}
|
|
9
|
-
const distTagsSchema =
|
|
10
|
-
latest: optional(string
|
|
10
|
+
const distTagsSchema = z.object({
|
|
11
|
+
latest: z.optional(z.string())
|
|
11
12
|
});
|
|
12
|
-
const versionDataSchema =
|
|
13
|
-
dist:
|
|
13
|
+
const versionDataSchema = z.object({
|
|
14
|
+
dist: z.object({ shasum: z.string(), tarball: z.string() })
|
|
14
15
|
});
|
|
15
|
-
const abbreviatedPackageResponseSchema =
|
|
16
|
-
name: string,
|
|
16
|
+
const abbreviatedPackageResponseSchema = z.object({
|
|
17
|
+
name: z.string(),
|
|
17
18
|
'dist-tags': distTagsSchema,
|
|
18
|
-
versions: record(string, versionDataSchema)
|
|
19
|
+
versions: z.record(z.string(), versionDataSchema)
|
|
19
20
|
});
|
|
20
21
|
const httpStatusCode = {
|
|
21
22
|
notFound: 404,
|
|
@@ -38,10 +39,11 @@ export function createRegistryClient(dependencies) {
|
|
|
38
39
|
const endpointUri = `/${encodePackageName(packageName)}`;
|
|
39
40
|
try {
|
|
40
41
|
const response = await fetchRegistryEndpoint(endpointUri, registrySettings);
|
|
41
|
-
|
|
42
|
+
const result = safeParse(abbreviatedPackageResponseSchema, response);
|
|
43
|
+
if (!result.success) {
|
|
42
44
|
throw new Error('Got an invalid response from registry API');
|
|
43
45
|
}
|
|
44
|
-
return Maybe.just(
|
|
46
|
+
return Maybe.just(result.data);
|
|
45
47
|
}
|
|
46
48
|
catch (error) {
|
|
47
49
|
if (isFetchError(error) &&
|
|
@@ -57,6 +59,7 @@ export function createRegistryClient(dependencies) {
|
|
|
57
59
|
return response.buffer();
|
|
58
60
|
},
|
|
59
61
|
async publishPackage(manifest, tarData, registrySettings) {
|
|
62
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- ok in this case
|
|
60
63
|
await publish(manifest, tarData, {
|
|
61
64
|
defaultTag: 'latest',
|
|
62
65
|
forceAuth: {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry-client.js","sourceRoot":"","sources":["../../../../source/bundle-emitter/registry-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { noDuplicatedFilesRule } from "./rules/no-duplicated-files.js";
|
|
2
|
+
const checkRules = [noDuplicatedFilesRule];
|
|
3
|
+
export function runChecks(params) {
|
|
4
|
+
const { settings, bundles: packages } = params;
|
|
5
|
+
return checkRules
|
|
6
|
+
.filter((rule) => {
|
|
7
|
+
return rule.isEnabled(settings);
|
|
8
|
+
})
|
|
9
|
+
.flatMap((rule) => {
|
|
10
|
+
return rule.run({ bundles: packages });
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=check-runner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check-runner.js","sourceRoot":"","sources":["../../../../source/checks/check-runner.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAMvE,MAAM,UAAU,GAAyB,CAAC,qBAAqB,CAAC,CAAC;AAEjE,MAAM,UAAU,SAAS,CAAC,MAAyB;IAC/C,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;IAE/C,OAAO,UAAU;SACZ,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;QACb,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IACpC,CAAC,CAAC;SACD,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QACd,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;AACX,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
function collectFileOwnership(bundles) {
|
|
2
|
+
const fileOwnership = new Map();
|
|
3
|
+
for (const bundle of bundles) {
|
|
4
|
+
for (const resource of bundle.contents) {
|
|
5
|
+
const filePath = resource.fileDescription.sourceFilePath;
|
|
6
|
+
const owners = fileOwnership.get(filePath) ?? new Set();
|
|
7
|
+
owners.add(bundle.name);
|
|
8
|
+
fileOwnership.set(filePath, owners);
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
return fileOwnership;
|
|
12
|
+
}
|
|
13
|
+
export const noDuplicatedFilesRule = {
|
|
14
|
+
isEnabled(settings) {
|
|
15
|
+
return settings?.noDuplicatedFiles === true;
|
|
16
|
+
},
|
|
17
|
+
run(context) {
|
|
18
|
+
const fileOwnership = collectFileOwnership(context.bundles);
|
|
19
|
+
const issues = [];
|
|
20
|
+
for (const [filePath, owners] of fileOwnership.entries()) {
|
|
21
|
+
if (owners.size > 1) {
|
|
22
|
+
const ownerList = Array.from(owners).toSorted().join(', ');
|
|
23
|
+
issues.push(`File "${filePath}" is included in multiple packages: ${ownerList}`);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
return issues;
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
//# sourceMappingURL=no-duplicated-files.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"no-duplicated-files.js","sourceRoot":"","sources":["../../../../../source/checks/rules/no-duplicated-files.ts"],"names":[],"mappings":"AAGA,SAAS,oBAAoB,CAAC,OAAgC;IAC1D,MAAM,aAAa,GAAG,IAAI,GAAG,EAAuB,CAAC;IAErD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC3B,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACrC,MAAM,QAAQ,GAAG,QAAQ,CAAC,eAAe,CAAC,cAAc,CAAC;YACzD,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,IAAI,GAAG,EAAU,CAAC;YAChE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACxB,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACxC,CAAC;IACL,CAAC;IAED,OAAO,aAAa,CAAC;AACzB,CAAC;AAED,MAAM,CAAC,MAAM,qBAAqB,GAAc;IAC5C,SAAS,CAAC,QAAQ;QACd,OAAO,QAAQ,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAChD,CAAC;IACD,GAAG,CAAC,OAAO;QACP,MAAM,aAAa,GAAG,oBAAoB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC5D,MAAM,MAAM,GAAa,EAAE,CAAC;QAE5B,KAAK,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,aAAa,CAAC,OAAO,EAAE,EAAE,CAAC;YACvD,IAAI,MAAM,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;gBAClB,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC3D,MAAM,CAAC,IAAI,CAAC,SAAS,QAAQ,uCAAuC,SAAS,EAAE,CAAC,CAAC;YACrF,CAAC;QACL,CAAC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;CACJ,CAAC"}
|
|
@@ -1,13 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
readonly targetFilePath: string;
|
|
8
|
-
readonly sourceFilePath: string;
|
|
9
|
-
}>;
|
|
10
|
-
export type AdditionalFileDescription = NoExpand<Schema.To<typeof $additionalFileDescriptionSchema>>;
|
|
11
|
-
export declare const additionalFileDescriptionSchema: Schema<AdditionalFileDescription>;
|
|
12
|
-
export {};
|
|
1
|
+
import { z } from 'zod/mini';
|
|
2
|
+
export declare const additionalFileDescriptionSchema: z.ZodMiniReadonly<z.ZodMiniObject<{
|
|
3
|
+
sourceFilePath: z.ZodMiniString<string>;
|
|
4
|
+
targetFilePath: z.ZodMiniString<string>;
|
|
5
|
+
}, z.core.$strict>>;
|
|
6
|
+
export type AdditionalFileDescription = z.infer<typeof additionalFileDescriptionSchema>;
|
|
13
7
|
//# sourceMappingURL=additional-files.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"additional-files.d.ts","sourceRoot":"","sources":["../../../../source/config/additional-files.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"additional-files.d.ts","sourceRoot":"","sources":["../../../../source/config/additional-files.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,UAAU,CAAC;AAG7B,eAAO,MAAM,+BAA+B;;;mBAK3C,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAC"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { nonEmptyStringSchema } from
|
|
3
|
-
const
|
|
1
|
+
import { z } from 'zod/mini';
|
|
2
|
+
import { nonEmptyStringSchema } from "./base-validations.js";
|
|
3
|
+
export const additionalFileDescriptionSchema = z.readonly(z.strictObject({
|
|
4
4
|
sourceFilePath: nonEmptyStringSchema,
|
|
5
5
|
targetFilePath: nonEmptyStringSchema
|
|
6
|
-
});
|
|
7
|
-
export const additionalFileDescriptionSchema = $additionalFileDescriptionSchema;
|
|
6
|
+
}));
|
|
8
7
|
//# sourceMappingURL=additional-files.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"additional-files.js","sourceRoot":"","sources":["../../../../source/config/additional-files.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"additional-files.js","sourceRoot":"","sources":["../../../../source/config/additional-files.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,UAAU,CAAC;AAC7B,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAE7D,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,CAAC,QAAQ,CACrD,CAAC,CAAC,YAAY,CAAC;IACX,cAAc,EAAE,oBAAoB;IACpC,cAAc,EAAE,oBAAoB;CACvC,CAAC,CACL,CAAC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export const nonEmptyStringSchema = string.
|
|
1
|
+
import { z } from 'zod/mini';
|
|
2
|
+
export const nonEmptyStringSchema = z.string().check(z.minLength(1));
|
|
3
3
|
//# sourceMappingURL=base-validations.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-validations.js","sourceRoot":"","sources":["../../../../source/config/base-validations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"base-validations.js","sourceRoot":"","sources":["../../../../source/config/base-validations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,UAAU,CAAC;AAE7B,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC"}
|