syncpack 10.7.3 → 11.2.1
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/dist/bin-fix-mismatches/effects.js +9 -9
- package/dist/bin-fix-mismatches/fix-mismatches.js +2 -2
- package/dist/bin-format/format-cli.js +2 -2
- package/dist/bin-format/format.js +4 -3
- package/dist/bin-lint/lint.js +2 -2
- package/dist/bin-lint-semver-ranges/effects.js +10 -10
- package/dist/bin-lint-semver-ranges/lint-semver-ranges.js +2 -2
- package/dist/bin-list/effects.js +16 -14
- package/dist/bin-list/list.js +2 -2
- package/dist/bin-list-mismatches/effects.js +22 -22
- package/dist/bin-list-mismatches/list-mismatches.js +2 -2
- package/dist/bin-prompt/effects.js +15 -15
- package/dist/bin-prompt/prompt.js +2 -2
- package/dist/bin-set-semver-ranges/effects.js +10 -10
- package/dist/bin-set-semver-ranges/set-semver-ranges.js +2 -2
- package/dist/bin-update/effects.js +36 -30
- package/dist/bin-update/update.js +2 -2
- package/dist/config/get-enabled-types.d.ts +6 -1
- package/dist/config/get-enabled-types.js +62 -34
- package/dist/config/tag.d.ts +3 -0
- package/dist/config/tag.js +28 -0
- package/dist/config/types.d.ts +0 -2
- package/dist/config/types.js +0 -26
- package/dist/constants.d.ts +3 -4
- package/dist/constants.js +12 -13
- package/dist/create-program/effects.d.ts +4 -4
- package/dist/create-program/semver-ranges.d.ts +2 -2
- package/dist/create-program/semver-ranges.js +6 -6
- package/dist/create-program/versions.d.ts +2 -2
- package/dist/create-program/versions.js +6 -6
- package/dist/env/create-env.js +28 -7
- package/dist/env/default-env.js +14 -9
- package/dist/env/exit-if-invalid.js +1 -1
- package/dist/env/write-if-changed.js +1 -1
- package/dist/error-handlers/create-error-handlers.d.ts +2 -1
- package/dist/error-handlers/create-error-handlers.js +3 -0
- package/dist/error-handlers/default-error-handlers.js +5 -0
- package/dist/get-context/index.js +2 -2
- package/dist/get-package-json-files/get-patterns/get-lerna-patterns.js +1 -1
- package/dist/get-package-json-files/get-patterns/get-pnpm-patterns.js +1 -1
- package/dist/get-package-json-files/get-patterns/get-yarn-patterns.js +9 -6
- package/dist/get-package-json-files/get-patterns/index.js +1 -1
- package/dist/get-package-json-files/get-patterns/read-json-safe.js +5 -2
- package/dist/get-package-json-files/package-json-file.d.ts +4 -2
- package/dist/get-package-json-files/package-json-file.js +5 -4
- package/dist/get-semver-groups/filtered-out.d.ts +3 -3
- package/dist/get-semver-groups/filtered-out.js +1 -1
- package/dist/get-semver-groups/ignored.d.ts +3 -3
- package/dist/get-semver-groups/index.d.ts +18 -18
- package/dist/get-semver-groups/index.js +5 -5
- package/dist/get-semver-groups/with-range.d.ts +4 -4
- package/dist/get-semver-groups/with-range.js +9 -9
- package/dist/get-version-groups/banned.d.ts +3 -3
- package/dist/get-version-groups/filtered-out.d.ts +3 -3
- package/dist/get-version-groups/filtered-out.js +1 -1
- package/dist/get-version-groups/ignored.d.ts +3 -3
- package/dist/get-version-groups/index.d.ts +72 -24
- package/dist/get-version-groups/index.js +54 -6
- package/dist/get-version-groups/lib/{sort.js → compare-semver.js} +0 -5
- package/dist/get-version-groups/lib/get-highest-version.js +2 -2
- package/dist/get-version-groups/lib/get-lowest-version.js +2 -2
- package/dist/get-version-groups/lib/get-unique-specifiers.d.ts +2 -0
- package/dist/get-version-groups/lib/get-unique-specifiers.js +11 -0
- package/dist/get-version-groups/pinned.d.ts +3 -3
- package/dist/get-version-groups/pinned.js +1 -1
- package/dist/get-version-groups/same-range.d.ts +3 -3
- package/dist/get-version-groups/same-range.js +1 -1
- package/dist/get-version-groups/snapped-to.d.ts +3 -3
- package/dist/get-version-groups/snapped-to.js +4 -3
- package/dist/get-version-groups/standard.d.ts +4 -4
- package/dist/get-version-groups/standard.js +19 -18
- package/dist/guards/can-add-to-group.d.ts +2 -2
- package/dist/guards/can-add-to-group.js +35 -5
- package/dist/guards/is-loose-semver.d.ts +1 -0
- package/dist/guards/is-loose-semver.js +1 -0
- package/dist/guards/is-semver.d.ts +1 -0
- package/dist/guards/is-semver.js +1 -0
- package/dist/guards/is-valid-semver-range.d.ts +1 -0
- package/dist/guards/is-valid-semver-range.js +1 -0
- package/dist/instance/create.d.ts +4 -0
- package/dist/instance/create.js +142 -0
- package/dist/instance/index.d.ts +122 -0
- package/dist/instance/index.js +154 -0
- package/dist/schema.json +361 -0
- package/package.json +24 -20
- package/dist/get-package-json-files/instance.d.ts +0 -21
- package/dist/get-package-json-files/instance.js +0 -23
- package/dist/get-version-groups/lib/get-unique-versions.d.ts +0 -2
- package/dist/get-version-groups/lib/get-unique-versions.js +0 -8
- package/dist/guards/is-supported.d.ts +0 -1
- package/dist/guards/is-supported.js +0 -17
- /package/dist/get-version-groups/lib/{sort.d.ts → compare-semver.d.ts} +0 -0
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.isLooseSemver = void 0;
|
|
4
4
|
const is_string_1 = require("tightrope/guard/is-string");
|
|
5
5
|
const is_semver_1 = require("./is-semver");
|
|
6
|
+
/** @deprecated */
|
|
6
7
|
function isLooseSemver(version) {
|
|
7
8
|
return (0, is_string_1.isString)(version) && (0, is_semver_1.isSemver)(version) && version.search(/\.x(\.|$)/) !== -1;
|
|
8
9
|
}
|
package/dist/guards/is-semver.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.isValidSemverRange = void 0;
|
|
4
4
|
const constants_1 = require("../constants");
|
|
5
|
+
/** @deprecated */
|
|
5
6
|
function isValidSemverRange(value) {
|
|
6
7
|
return (value === constants_1.RANGE.ANY ||
|
|
7
8
|
value === constants_1.RANGE.EXACT ||
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { Instance } from '.';
|
|
2
|
+
import type { Strategy } from '../config/get-custom-types';
|
|
3
|
+
import type { PackageJsonFile } from '../get-package-json-files/package-json-file';
|
|
4
|
+
export declare function createInstance(strategy: Strategy.Any, name: string, packageJsonFile: PackageJsonFile, specifier: string): Instance.Any;
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.createInstance = void 0;
|
|
7
|
+
const npm_package_arg_1 = __importDefault(require("npm-package-arg"));
|
|
8
|
+
const _1 = require(".");
|
|
9
|
+
function createInstance(strategy, name, packageJsonFile, specifier) {
|
|
10
|
+
const pkgName = packageJsonFile.contents.name || 'PACKAGE_JSON_HAS_NO_NAME';
|
|
11
|
+
try {
|
|
12
|
+
const parsedSpecifier = parseSpecifier(name, specifier, packageJsonFile);
|
|
13
|
+
switch (parsedSpecifier.type) {
|
|
14
|
+
case 'file':
|
|
15
|
+
case 'directory': {
|
|
16
|
+
return new _1.Instance.FileInstance({
|
|
17
|
+
name,
|
|
18
|
+
packageJsonFile,
|
|
19
|
+
parsedSpecifier,
|
|
20
|
+
pkgName,
|
|
21
|
+
specifier,
|
|
22
|
+
strategy,
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
case 'remote': {
|
|
26
|
+
return new _1.Instance.UrlInstance({
|
|
27
|
+
name,
|
|
28
|
+
packageJsonFile,
|
|
29
|
+
parsedSpecifier,
|
|
30
|
+
pkgName,
|
|
31
|
+
specifier,
|
|
32
|
+
strategy,
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
case 'git': {
|
|
36
|
+
return 'hosted' in parsedSpecifier
|
|
37
|
+
? new _1.Instance.HostedGitInstance({
|
|
38
|
+
name,
|
|
39
|
+
packageJsonFile,
|
|
40
|
+
parsedSpecifier: parsedSpecifier,
|
|
41
|
+
pkgName,
|
|
42
|
+
specifier,
|
|
43
|
+
strategy,
|
|
44
|
+
})
|
|
45
|
+
: new _1.Instance.UrlInstance({
|
|
46
|
+
name,
|
|
47
|
+
packageJsonFile,
|
|
48
|
+
parsedSpecifier,
|
|
49
|
+
pkgName,
|
|
50
|
+
specifier,
|
|
51
|
+
strategy,
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
case 'alias': {
|
|
55
|
+
return new _1.Instance.AliasInstance({
|
|
56
|
+
name,
|
|
57
|
+
packageJsonFile,
|
|
58
|
+
parsedSpecifier,
|
|
59
|
+
pkgName,
|
|
60
|
+
specifier,
|
|
61
|
+
strategy,
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
case 'version': {
|
|
65
|
+
return new _1.Instance.VersionInstance({
|
|
66
|
+
name,
|
|
67
|
+
packageJsonFile,
|
|
68
|
+
parsedSpecifier: parsedSpecifier,
|
|
69
|
+
pkgName,
|
|
70
|
+
specifier,
|
|
71
|
+
strategy,
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
case 'range': {
|
|
75
|
+
return new _1.Instance.RangeInstance({
|
|
76
|
+
name,
|
|
77
|
+
packageJsonFile,
|
|
78
|
+
parsedSpecifier: parsedSpecifier,
|
|
79
|
+
pkgName,
|
|
80
|
+
specifier,
|
|
81
|
+
strategy,
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
case 'tag': {
|
|
85
|
+
return new _1.Instance.TagInstance({
|
|
86
|
+
name,
|
|
87
|
+
packageJsonFile,
|
|
88
|
+
parsedSpecifier: parsedSpecifier,
|
|
89
|
+
pkgName,
|
|
90
|
+
specifier,
|
|
91
|
+
strategy,
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
case 'workspaceProtocol': {
|
|
95
|
+
return new _1.Instance.WorkspaceProtocolInstance({
|
|
96
|
+
name,
|
|
97
|
+
packageJsonFile,
|
|
98
|
+
parsedSpecifier: parsedSpecifier,
|
|
99
|
+
pkgName,
|
|
100
|
+
specifier,
|
|
101
|
+
strategy,
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
default: {
|
|
105
|
+
return new _1.Instance.UnsupportedInstance({
|
|
106
|
+
name,
|
|
107
|
+
packageJsonFile,
|
|
108
|
+
parsedSpecifier,
|
|
109
|
+
pkgName,
|
|
110
|
+
specifier,
|
|
111
|
+
strategy,
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
catch (err) {
|
|
117
|
+
return new _1.Instance.UnsupportedInstance({
|
|
118
|
+
name,
|
|
119
|
+
packageJsonFile,
|
|
120
|
+
parsedSpecifier: err,
|
|
121
|
+
pkgName,
|
|
122
|
+
specifier,
|
|
123
|
+
strategy,
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
exports.createInstance = createInstance;
|
|
128
|
+
function parseSpecifier(name, specifier, packageJsonFile) {
|
|
129
|
+
if (specifier.startsWith('workspace:')) {
|
|
130
|
+
const parsed = npm_package_arg_1.default.resolve(name, specifier.replace('workspace:', 'file:'), packageJsonFile.dirPath);
|
|
131
|
+
return {
|
|
132
|
+
type: 'workspaceProtocol',
|
|
133
|
+
raw: parsed.raw.replace('file:', 'workspace:'),
|
|
134
|
+
name: parsed.name,
|
|
135
|
+
escapedName: parsed.escapedName,
|
|
136
|
+
scope: parsed.scope,
|
|
137
|
+
rawSpec: parsed.rawSpec.replace('file:', 'workspace:'),
|
|
138
|
+
saveSpec: parsed.saveSpec.replace('file:', 'workspace:'),
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
return npm_package_arg_1.default.resolve(name, specifier, packageJsonFile.dirPath);
|
|
142
|
+
}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import * as Data from '@effect/data/Data';
|
|
2
|
+
import * as Option from '@effect/data/Option';
|
|
3
|
+
import type npa from 'npm-package-arg';
|
|
4
|
+
import type { AliasResult, FileResult, HostedGitResult, RegistryResult, URLResult } from 'npm-package-arg';
|
|
5
|
+
import type { Strategy } from '../config/get-custom-types';
|
|
6
|
+
import type { PackageJsonFile } from '../get-package-json-files/package-json-file';
|
|
7
|
+
import { type Delete } from '../get-version-groups/lib/delete';
|
|
8
|
+
/** Extends npm/npm-package-arg to support "workspace:*" */
|
|
9
|
+
export interface WorkspaceProtocolResult {
|
|
10
|
+
type: 'workspaceProtocol';
|
|
11
|
+
raw: string;
|
|
12
|
+
name: string | null;
|
|
13
|
+
escapedName: string | null;
|
|
14
|
+
scope: string | null;
|
|
15
|
+
rawSpec: string;
|
|
16
|
+
saveSpec: string;
|
|
17
|
+
}
|
|
18
|
+
export type NpmPackageArgResult = ReturnType<typeof npa.resolve> | WorkspaceProtocolResult;
|
|
19
|
+
interface BaseInstance<T extends NpmPackageArgResult | unknown> {
|
|
20
|
+
/** the name of this dependency */
|
|
21
|
+
name: string;
|
|
22
|
+
/** The package this dependency is installed in this specific time */
|
|
23
|
+
packageJsonFile: PackageJsonFile;
|
|
24
|
+
/** @see https://github.com/npm/npm-package-arg */
|
|
25
|
+
parsedSpecifier: T;
|
|
26
|
+
/** The .name property of the package.json file of this instance */
|
|
27
|
+
pkgName: string;
|
|
28
|
+
/** The raw: semver, git, workspace: etc version value */
|
|
29
|
+
specifier: string;
|
|
30
|
+
/** locates where in the file this dependency is installed */
|
|
31
|
+
strategy: Strategy.Any;
|
|
32
|
+
}
|
|
33
|
+
export declare namespace Instance {
|
|
34
|
+
/**
|
|
35
|
+
* A helper to create specific classes for each of the possible
|
|
36
|
+
* `RegistryResult` types from npm/npm-package-arg. Instead of grouping them
|
|
37
|
+
* together we are being more specific
|
|
38
|
+
*/
|
|
39
|
+
type SpecificRegistryResult<T extends RegistryResult['type'] | 'local'> = Omit<RegistryResult, 'type'> & {
|
|
40
|
+
type: T;
|
|
41
|
+
};
|
|
42
|
+
const FileInstance_base: new <A extends Record<string, any>>(args: Data.IsEqualTo<Omit<A, keyof import("@effect/data/Equal").Equal>, {}> extends true ? void : Omit<A, keyof import("@effect/data/Equal").Equal>) => Data.Data<A & {
|
|
43
|
+
_tag: "FileInstance";
|
|
44
|
+
}>;
|
|
45
|
+
/** An `Instance` whose specifier is a path to a local file or directory */
|
|
46
|
+
export class FileInstance extends FileInstance_base<BaseInstance<FileResult>> {
|
|
47
|
+
setSpecifier: typeof setSpecifier;
|
|
48
|
+
getSemverSpecifier(): Option.Option<string>;
|
|
49
|
+
}
|
|
50
|
+
const HostedGitInstance_base: new <A extends Record<string, any>>(args: Data.IsEqualTo<Omit<A, keyof import("@effect/data/Equal").Equal>, {}> extends true ? void : Omit<A, keyof import("@effect/data/Equal").Equal>) => Data.Data<A & {
|
|
51
|
+
_tag: "HostedGitInstance";
|
|
52
|
+
}>;
|
|
53
|
+
/** An `Instance` whose specifier is a Git URL */
|
|
54
|
+
export class HostedGitInstance extends HostedGitInstance_base<BaseInstance<HostedGitResult>> {
|
|
55
|
+
setSpecifier: typeof setSpecifier;
|
|
56
|
+
getSemverSpecifier(): Option.Option<string>;
|
|
57
|
+
}
|
|
58
|
+
const UrlInstance_base: new <A extends Record<string, any>>(args: Data.IsEqualTo<Omit<A, keyof import("@effect/data/Equal").Equal>, {}> extends true ? void : Omit<A, keyof import("@effect/data/Equal").Equal>) => Data.Data<A & {
|
|
59
|
+
_tag: "URLInstance";
|
|
60
|
+
}>;
|
|
61
|
+
/** An `Instance` whose specifier is a URL to a tarball */
|
|
62
|
+
export class UrlInstance extends UrlInstance_base<BaseInstance<URLResult>> {
|
|
63
|
+
setSpecifier: typeof setSpecifier;
|
|
64
|
+
getSemverSpecifier(): Option.Option<string>;
|
|
65
|
+
}
|
|
66
|
+
const AliasInstance_base: new <A extends Record<string, any>>(args: Data.IsEqualTo<Omit<A, keyof import("@effect/data/Equal").Equal>, {}> extends true ? void : Omit<A, keyof import("@effect/data/Equal").Equal>) => Data.Data<A & {
|
|
67
|
+
_tag: "AliasInstance";
|
|
68
|
+
}>;
|
|
69
|
+
/** An `Instance` whose specifier is eg "npm:imageoptim-cli@3.1.7" */
|
|
70
|
+
export class AliasInstance extends AliasInstance_base<BaseInstance<AliasResult>> {
|
|
71
|
+
setSpecifier(version: string | Delete): void;
|
|
72
|
+
getSemverSpecifier(): Option.Option<string>;
|
|
73
|
+
}
|
|
74
|
+
const VersionInstance_base: new <A extends Record<string, any>>(args: Data.IsEqualTo<Omit<A, keyof import("@effect/data/Equal").Equal>, {}> extends true ? void : Omit<A, keyof import("@effect/data/Equal").Equal>) => Data.Data<A & {
|
|
75
|
+
_tag: "VersionInstance";
|
|
76
|
+
}>;
|
|
77
|
+
/** An `Instance` whose specifier is exact semver */
|
|
78
|
+
export class VersionInstance extends VersionInstance_base<BaseInstance<SpecificRegistryResult<'version'>>> {
|
|
79
|
+
setSpecifier: typeof setSpecifier;
|
|
80
|
+
getSemverSpecifier(): Option.Option<string>;
|
|
81
|
+
}
|
|
82
|
+
const RangeInstance_base: new <A extends Record<string, any>>(args: Data.IsEqualTo<Omit<A, keyof import("@effect/data/Equal").Equal>, {}> extends true ? void : Omit<A, keyof import("@effect/data/Equal").Equal>) => Data.Data<A & {
|
|
83
|
+
_tag: "RangeInstance";
|
|
84
|
+
}>;
|
|
85
|
+
/** An `Instance` whose specifier is eg. "*" or "^1.2.3" */
|
|
86
|
+
export class RangeInstance extends RangeInstance_base<BaseInstance<SpecificRegistryResult<'range'>>> {
|
|
87
|
+
setSpecifier: typeof setSpecifier;
|
|
88
|
+
getSemverSpecifier(): Option.Option<string>;
|
|
89
|
+
}
|
|
90
|
+
const TagInstance_base: new <A extends Record<string, any>>(args: Data.IsEqualTo<Omit<A, keyof import("@effect/data/Equal").Equal>, {}> extends true ? void : Omit<A, keyof import("@effect/data/Equal").Equal>) => Data.Data<A & {
|
|
91
|
+
_tag: "TagInstance";
|
|
92
|
+
}>;
|
|
93
|
+
/** An `Instance` whose specifier is eg. "latest" or "made-up-by-some-dev" */
|
|
94
|
+
export class TagInstance extends TagInstance_base<BaseInstance<SpecificRegistryResult<'tag'>>> {
|
|
95
|
+
setSpecifier: typeof setSpecifier;
|
|
96
|
+
getSemverSpecifier(): Option.Option<string>;
|
|
97
|
+
}
|
|
98
|
+
const WorkspaceProtocolInstance_base: new <A extends Record<string, any>>(args: Data.IsEqualTo<Omit<A, keyof import("@effect/data/Equal").Equal>, {}> extends true ? void : Omit<A, keyof import("@effect/data/Equal").Equal>) => Data.Data<A & {
|
|
99
|
+
_tag: "WorkspaceProtocolInstance";
|
|
100
|
+
}>;
|
|
101
|
+
/** An `Instance` whose specifier is "workspace:*" */
|
|
102
|
+
export class WorkspaceProtocolInstance extends WorkspaceProtocolInstance_base<BaseInstance<WorkspaceProtocolResult>> {
|
|
103
|
+
setSpecifier: typeof setSpecifier;
|
|
104
|
+
getSemverSpecifier(): Option.Option<string>;
|
|
105
|
+
}
|
|
106
|
+
const UnsupportedInstance_base: new <A extends Record<string, any>>(args: Data.IsEqualTo<Omit<A, keyof import("@effect/data/Equal").Equal>, {}> extends true ? void : Omit<A, keyof import("@effect/data/Equal").Equal>) => Data.Data<A & {
|
|
107
|
+
_tag: "UnsupportedInstance";
|
|
108
|
+
}>;
|
|
109
|
+
/** An `Instance` whose specifier is not supported by npm */
|
|
110
|
+
export class UnsupportedInstance extends UnsupportedInstance_base<BaseInstance<unknown>> {
|
|
111
|
+
setSpecifier: typeof setSpecifier;
|
|
112
|
+
getSemverSpecifier(): Option.Option<string>;
|
|
113
|
+
}
|
|
114
|
+
export type Any = FileInstance | HostedGitInstance | UrlInstance | AliasInstance | VersionInstance | RangeInstance | TagInstance | WorkspaceProtocolInstance | UnsupportedInstance;
|
|
115
|
+
export {};
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* In the case of banned dependencies, their version is set to `undefined`,
|
|
119
|
+
* which causes them to be removed by `JSON.stringify`.
|
|
120
|
+
*/
|
|
121
|
+
declare function setSpecifier(this: Instance.Any, version: string | Delete): void;
|
|
122
|
+
export {};
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.Instance = void 0;
|
|
27
|
+
const Data = __importStar(require("@effect/data/Data"));
|
|
28
|
+
const Function_1 = require("@effect/data/Function");
|
|
29
|
+
const Option = __importStar(require("@effect/data/Option"));
|
|
30
|
+
const delete_1 = require("../get-version-groups/lib/delete");
|
|
31
|
+
const _R_1 = require("../lib/$R");
|
|
32
|
+
var Instance;
|
|
33
|
+
(function (Instance) {
|
|
34
|
+
/** An `Instance` whose specifier is a path to a local file or directory */
|
|
35
|
+
class FileInstance extends Data.TaggedClass('FileInstance') {
|
|
36
|
+
constructor() {
|
|
37
|
+
super(...arguments);
|
|
38
|
+
this.setSpecifier = setSpecifier;
|
|
39
|
+
}
|
|
40
|
+
getSemverSpecifier() {
|
|
41
|
+
return Option.none();
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
Instance.FileInstance = FileInstance;
|
|
45
|
+
/** An `Instance` whose specifier is a Git URL */
|
|
46
|
+
class HostedGitInstance extends Data.TaggedClass('HostedGitInstance') {
|
|
47
|
+
constructor() {
|
|
48
|
+
super(...arguments);
|
|
49
|
+
this.setSpecifier = setSpecifier;
|
|
50
|
+
}
|
|
51
|
+
getSemverSpecifier() {
|
|
52
|
+
// @TODO: If git tag is semver, return that
|
|
53
|
+
return Option.none();
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
Instance.HostedGitInstance = HostedGitInstance;
|
|
57
|
+
/** An `Instance` whose specifier is a URL to a tarball */
|
|
58
|
+
class UrlInstance extends Data.TaggedClass('URLInstance') {
|
|
59
|
+
constructor() {
|
|
60
|
+
super(...arguments);
|
|
61
|
+
this.setSpecifier = setSpecifier;
|
|
62
|
+
}
|
|
63
|
+
getSemverSpecifier() {
|
|
64
|
+
// @TODO: If file name is semver, return that
|
|
65
|
+
return Option.none();
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
Instance.UrlInstance = UrlInstance;
|
|
69
|
+
/** An `Instance` whose specifier is eg "npm:imageoptim-cli@3.1.7" */
|
|
70
|
+
class AliasInstance extends Data.TaggedClass('AliasInstance') {
|
|
71
|
+
setSpecifier(version) {
|
|
72
|
+
if (version === delete_1.DELETE) {
|
|
73
|
+
setSpecifier.call(this, version);
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
const subSpec = this.parsedSpecifier.subSpec;
|
|
77
|
+
const name = subSpec.name || '';
|
|
78
|
+
const specifier = `npm:${name}@${version}`;
|
|
79
|
+
setSpecifier.call(this, specifier);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
getSemverSpecifier() {
|
|
83
|
+
const subSpec = this.parsedSpecifier.subSpec;
|
|
84
|
+
if (['range', 'version'].includes(subSpec.type) && subSpec.fetchSpec !== null) {
|
|
85
|
+
return Option.some(subSpec.fetchSpec);
|
|
86
|
+
}
|
|
87
|
+
return Option.none();
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
Instance.AliasInstance = AliasInstance;
|
|
91
|
+
/** An `Instance` whose specifier is exact semver */
|
|
92
|
+
class VersionInstance extends Data.TaggedClass('VersionInstance') {
|
|
93
|
+
constructor() {
|
|
94
|
+
super(...arguments);
|
|
95
|
+
this.setSpecifier = setSpecifier;
|
|
96
|
+
}
|
|
97
|
+
getSemverSpecifier() {
|
|
98
|
+
return Option.some(this.parsedSpecifier.fetchSpec);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
Instance.VersionInstance = VersionInstance;
|
|
102
|
+
/** An `Instance` whose specifier is eg. "*" or "^1.2.3" */
|
|
103
|
+
class RangeInstance extends Data.TaggedClass('RangeInstance') {
|
|
104
|
+
constructor() {
|
|
105
|
+
super(...arguments);
|
|
106
|
+
this.setSpecifier = setSpecifier;
|
|
107
|
+
}
|
|
108
|
+
getSemverSpecifier() {
|
|
109
|
+
return Option.some(this.parsedSpecifier.fetchSpec);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
Instance.RangeInstance = RangeInstance;
|
|
113
|
+
/** An `Instance` whose specifier is eg. "latest" or "made-up-by-some-dev" */
|
|
114
|
+
class TagInstance extends Data.TaggedClass('TagInstance') {
|
|
115
|
+
constructor() {
|
|
116
|
+
super(...arguments);
|
|
117
|
+
this.setSpecifier = setSpecifier;
|
|
118
|
+
}
|
|
119
|
+
getSemverSpecifier() {
|
|
120
|
+
return Option.none();
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
Instance.TagInstance = TagInstance;
|
|
124
|
+
/** An `Instance` whose specifier is "workspace:*" */
|
|
125
|
+
class WorkspaceProtocolInstance extends Data.TaggedClass('WorkspaceProtocolInstance') {
|
|
126
|
+
constructor() {
|
|
127
|
+
super(...arguments);
|
|
128
|
+
this.setSpecifier = setSpecifier;
|
|
129
|
+
}
|
|
130
|
+
getSemverSpecifier() {
|
|
131
|
+
return Option.none();
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
Instance.WorkspaceProtocolInstance = WorkspaceProtocolInstance;
|
|
135
|
+
/** An `Instance` whose specifier is not supported by npm */
|
|
136
|
+
class UnsupportedInstance extends Data.TaggedClass('UnsupportedInstance') {
|
|
137
|
+
constructor() {
|
|
138
|
+
super(...arguments);
|
|
139
|
+
this.setSpecifier = setSpecifier;
|
|
140
|
+
}
|
|
141
|
+
getSemverSpecifier() {
|
|
142
|
+
return Option.none();
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
Instance.UnsupportedInstance = UnsupportedInstance;
|
|
146
|
+
})(Instance || (exports.Instance = Instance = {}));
|
|
147
|
+
/**
|
|
148
|
+
* In the case of banned dependencies, their version is set to `undefined`,
|
|
149
|
+
* which causes them to be removed by `JSON.stringify`.
|
|
150
|
+
*/
|
|
151
|
+
function setSpecifier(version) {
|
|
152
|
+
const file = this.packageJsonFile;
|
|
153
|
+
(0, Function_1.pipe)(this.strategy.write(file, [this.name, version]), _R_1.$R.tapErrVerbose);
|
|
154
|
+
}
|