syncpack 10.5.1 → 10.7.2
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/README.md +8 -5
- package/dist/bin-fix-mismatches/effects.d.ts +2 -0
- package/dist/bin-fix-mismatches/effects.js +112 -0
- package/dist/bin-fix-mismatches/fix-mismatches.d.ts +4 -2
- package/dist/bin-fix-mismatches/fix-mismatches.js +38 -49
- package/dist/bin-fix-mismatches/index.js +28 -4
- package/dist/bin-format/format-cli.d.ts +4 -3
- package/dist/bin-format/format-cli.js +35 -4
- package/dist/bin-format/format.d.ts +3 -2
- package/dist/bin-format/format.js +25 -1
- package/dist/bin-format/index.js +27 -3
- package/dist/bin-lint/index.js +28 -4
- package/dist/bin-lint/lint.d.ts +4 -0
- package/dist/bin-lint/lint.js +44 -0
- package/dist/bin-lint-semver-ranges/effects.d.ts +2 -0
- package/dist/bin-lint-semver-ranges/effects.js +70 -0
- package/dist/bin-lint-semver-ranges/index.js +28 -4
- package/dist/bin-lint-semver-ranges/lint-semver-ranges.d.ts +4 -2
- package/dist/bin-lint-semver-ranges/lint-semver-ranges.js +14 -39
- package/dist/bin-list/effects.d.ts +2 -0
- package/dist/bin-list/effects.js +112 -0
- package/dist/bin-list/index.js +28 -4
- package/dist/bin-list/list.d.ts +4 -2
- package/dist/bin-list/list.js +14 -75
- package/dist/bin-list-mismatches/effects.d.ts +2 -0
- package/dist/bin-list-mismatches/effects.js +136 -0
- package/dist/bin-list-mismatches/index.js +28 -4
- package/dist/bin-list-mismatches/list-mismatches.d.ts +4 -2
- package/dist/bin-list-mismatches/list-mismatches.js +14 -87
- package/dist/bin-prompt/effects.d.ts +2 -0
- package/dist/bin-prompt/effects.js +110 -0
- package/dist/bin-prompt/index.js +28 -4
- package/dist/bin-prompt/prompt.d.ts +4 -0
- package/dist/bin-prompt/prompt.js +42 -0
- package/dist/bin-set-semver-ranges/effects.d.ts +2 -0
- package/dist/bin-set-semver-ranges/effects.js +61 -0
- package/dist/bin-set-semver-ranges/index.js +28 -4
- package/dist/bin-set-semver-ranges/set-semver-ranges.d.ts +4 -2
- package/dist/bin-set-semver-ranges/set-semver-ranges.js +39 -22
- package/dist/bin-update/effects.d.ts +11 -0
- package/dist/bin-update/effects.js +187 -0
- package/dist/bin-update/index.d.ts +2 -0
- package/dist/bin-update/index.js +80 -0
- package/dist/bin-update/update.d.ts +4 -0
- package/dist/bin-update/update.js +47 -0
- package/dist/bin.js +3 -0
- package/dist/config/get-custom-types.d.ts +2 -2
- package/dist/config/get-enabled-types.d.ts +12 -2
- package/dist/config/get-enabled-types.js +38 -4
- package/dist/config/get-filter.d.ts +2 -2
- package/dist/config/get-indent.d.ts +2 -2
- package/dist/config/get-semver-range.d.ts +2 -2
- package/dist/config/get-semver-range.js +4 -4
- package/dist/config/get-sort-az.d.ts +2 -2
- package/dist/config/get-sort-first.d.ts +2 -2
- package/dist/config/get-source.d.ts +2 -2
- package/dist/config/get-source.js +1 -2
- package/dist/config/types.d.ts +8 -6
- package/dist/config/types.js +26 -0
- package/dist/constants.d.ts +1 -1
- package/dist/constants.js +1 -1
- package/dist/create-program/effects.d.ts +40 -0
- package/dist/create-program/effects.js +2 -0
- package/dist/create-program/semver-ranges.d.ts +7 -0
- package/dist/create-program/semver-ranges.js +55 -0
- package/dist/create-program/versions.d.ts +7 -0
- package/dist/create-program/versions.js +70 -0
- package/dist/env/create-env.d.ts +21 -0
- package/dist/env/create-env.js +60 -0
- package/dist/env/default-env.d.ts +18 -0
- package/dist/env/default-env.js +95 -0
- package/dist/env/exit-if-invalid.d.ts +4 -0
- package/dist/env/exit-if-invalid.js +34 -0
- package/dist/env/tags.d.ts +58 -0
- package/dist/env/tags.js +50 -0
- package/dist/env/write-if-changed.d.ts +11 -0
- package/dist/env/write-if-changed.js +73 -0
- package/dist/error-handlers/create-error-handlers.d.ts +19 -0
- package/dist/error-handlers/create-error-handlers.js +57 -0
- package/dist/error-handlers/default-error-handlers.d.ts +2 -0
- package/dist/error-handlers/default-error-handlers.js +57 -0
- package/dist/get-context/index.d.ts +11 -8
- package/dist/get-context/index.js +31 -9
- package/dist/get-package-json-files/get-file-paths.d.ts +17 -8
- package/dist/get-package-json-files/get-file-paths.js +40 -20
- package/dist/get-package-json-files/get-patterns/get-lerna-patterns.d.ts +4 -3
- package/dist/get-package-json-files/get-patterns/get-lerna-patterns.js +31 -8
- package/dist/get-package-json-files/get-patterns/get-pnpm-patterns.d.ts +4 -3
- package/dist/get-package-json-files/get-patterns/get-pnpm-patterns.js +36 -14
- package/dist/get-package-json-files/get-patterns/get-yarn-patterns.d.ts +4 -3
- package/dist/get-package-json-files/get-patterns/get-yarn-patterns.js +37 -9
- package/dist/get-package-json-files/get-patterns/index.d.ts +4 -4
- package/dist/get-package-json-files/get-patterns/index.js +37 -18
- package/dist/get-package-json-files/get-patterns/read-json-safe.d.ts +15 -3
- package/dist/get-package-json-files/get-patterns/read-json-safe.js +36 -10
- package/dist/get-package-json-files/index.d.ts +7 -4
- package/dist/get-package-json-files/index.js +27 -9
- package/dist/get-package-json-files/instance.js +2 -2
- package/dist/get-package-json-files/package-json-file.d.ts +6 -10
- package/dist/get-package-json-files/package-json-file.js +5 -21
- package/dist/get-semver-groups/filtered-out.d.ts +12 -6
- package/dist/get-semver-groups/filtered-out.js +40 -14
- package/dist/get-semver-groups/ignored.d.ts +10 -4
- package/dist/get-semver-groups/ignored.js +34 -8
- package/dist/get-semver-groups/index.d.ts +80 -28
- package/dist/get-semver-groups/index.js +94 -42
- package/dist/get-semver-groups/with-range.d.ts +12 -5
- package/dist/get-semver-groups/with-range.js +49 -25
- package/dist/get-version-groups/banned.d.ts +10 -4
- package/dist/get-version-groups/banned.js +34 -8
- package/dist/get-version-groups/filtered-out.d.ts +12 -6
- package/dist/get-version-groups/filtered-out.js +40 -14
- package/dist/get-version-groups/ignored.d.ts +10 -4
- package/dist/get-version-groups/ignored.js +34 -8
- package/dist/get-version-groups/index.d.ts +131 -47
- package/dist/get-version-groups/index.js +123 -51
- 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-range-score.js +1 -3
- package/dist/get-version-groups/lib/sort.js +3 -3
- package/dist/get-version-groups/pinned.d.ts +10 -4
- package/dist/get-version-groups/pinned.js +39 -16
- package/dist/get-version-groups/same-range.d.ts +10 -4
- package/dist/get-version-groups/same-range.js +38 -15
- package/dist/get-version-groups/snapped-to.d.ts +10 -4
- package/dist/get-version-groups/snapped-to.js +41 -16
- package/dist/get-version-groups/standard.d.ts +12 -5
- package/dist/get-version-groups/standard.js +63 -39
- package/dist/guards/can-add-to-group.d.ts +4 -0
- package/dist/guards/can-add-to-group.js +15 -0
- package/dist/guards/is-loose-semver.d.ts +1 -0
- package/dist/guards/is-loose-semver.js +9 -0
- package/dist/guards/is-semver.d.ts +1 -0
- package/dist/guards/is-semver.js +16 -0
- package/dist/guards/is-supported.d.ts +1 -0
- package/dist/guards/is-supported.js +17 -0
- package/dist/guards/is-valid-semver-range.d.ts +2 -0
- package/dist/guards/is-valid-semver-range.js +17 -0
- package/dist/lib/$R.js +2 -2
- package/dist/lib/log-group-header.d.ts +6 -0
- package/dist/lib/log-group-header.js +34 -0
- package/dist/lib/log-verbose.d.ts +1 -0
- package/dist/lib/log-verbose.js +24 -0
- package/dist/lib/set-semver-range.d.ts +1 -0
- package/dist/lib/set-semver-range.js +14 -6
- package/dist/option.js +1 -4
- package/dist/strategy/lib/get-non-empty-string-prop.js +2 -2
- package/dist/strategy/name-and-version-props.js +5 -5
- package/dist/strategy/named-version-string.js +4 -4
- package/dist/strategy/unnamed-version-string.js +4 -4
- package/dist/strategy/versions-by-name.js +3 -3
- package/package.json +28 -18
- package/dist/bin-fix-mismatches/fix-mismatches-cli.d.ts +0 -3
- package/dist/bin-fix-mismatches/fix-mismatches-cli.js +0 -12
- package/dist/bin-lint/lint-cli.d.ts +0 -3
- package/dist/bin-lint/lint-cli.js +0 -12
- package/dist/bin-lint-semver-ranges/lint-semver-ranges-cli.d.ts +0 -3
- package/dist/bin-lint-semver-ranges/lint-semver-ranges-cli.js +0 -11
- package/dist/bin-list/list-cli.d.ts +0 -3
- package/dist/bin-list/list-cli.js +0 -11
- package/dist/bin-list-mismatches/list-mismatches-cli.d.ts +0 -3
- package/dist/bin-list-mismatches/list-mismatches-cli.js +0 -11
- package/dist/bin-prompt/prompt-cli.d.ts +0 -3
- package/dist/bin-prompt/prompt-cli.js +0 -50
- package/dist/bin-set-semver-ranges/set-semver-ranges-cli.d.ts +0 -3
- package/dist/bin-set-semver-ranges/set-semver-ranges-cli.js +0 -11
- package/dist/get-package-json-files/get-patterns/read-yaml-safe.d.ts +0 -3
- package/dist/get-package-json-files/get-patterns/read-yaml-safe.js +0 -12
- package/dist/get-semver-groups/catch-all.d.ts +0 -4
- package/dist/get-semver-groups/catch-all.js +0 -11
- package/dist/get-version-groups/catch-all.d.ts +0 -4
- package/dist/get-version-groups/catch-all.js +0 -11
- package/dist/lib/disk.d.ts +0 -21
- package/dist/lib/disk.js +0 -79
- package/dist/lib/exit-if-invalid.d.ts +0 -2
- package/dist/lib/exit-if-invalid.js +0 -10
- package/dist/lib/is-semver.d.ts +0 -6
- package/dist/lib/is-semver.js +0 -49
- package/dist/lib/log.d.ts +0 -5
- package/dist/lib/log.js +0 -51
- package/dist/lib/newlines.d.ts +0 -6
- package/dist/lib/newlines.js +0 -24
- package/dist/lib/print-strings.d.ts +0 -1
- package/dist/lib/print-strings.js +0 -7
- package/dist/lib/write-if-changed.d.ts +0 -2
- package/dist/lib/write-if-changed.js +0 -21
|
@@ -0,0 +1,187 @@
|
|
|
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
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
+
};
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
exports.updateEffects = void 0;
|
|
30
|
+
const Data = __importStar(require("@effect/data/Data"));
|
|
31
|
+
const Function_1 = require("@effect/data/Function");
|
|
32
|
+
const Effect = __importStar(require("@effect/io/Effect"));
|
|
33
|
+
const Schema = __importStar(require("@effect/schema/Schema"));
|
|
34
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
35
|
+
const https_1 = __importDefault(require("https"));
|
|
36
|
+
const ora_1 = __importDefault(require("ora"));
|
|
37
|
+
const prompts_1 = __importDefault(require("prompts"));
|
|
38
|
+
const unwrap_1 = require("tightrope/result/unwrap");
|
|
39
|
+
const constants_1 = require("../constants");
|
|
40
|
+
const get_highest_version_1 = require("../get-version-groups/lib/get-highest-version");
|
|
41
|
+
const get_unique_versions_1 = require("../get-version-groups/lib/get-unique-versions");
|
|
42
|
+
const log_verbose_1 = require("../lib/log-verbose");
|
|
43
|
+
const set_semver_range_1 = require("../lib/set-semver-range");
|
|
44
|
+
let spinner;
|
|
45
|
+
let fetchCount = 0;
|
|
46
|
+
exports.updateEffects = {
|
|
47
|
+
onFilteredOut() {
|
|
48
|
+
return Effect.unit();
|
|
49
|
+
},
|
|
50
|
+
onIgnored() {
|
|
51
|
+
return Effect.unit();
|
|
52
|
+
},
|
|
53
|
+
onValid(input) {
|
|
54
|
+
return fetchPackageVersions(input);
|
|
55
|
+
},
|
|
56
|
+
onBanned() {
|
|
57
|
+
return Effect.unit();
|
|
58
|
+
},
|
|
59
|
+
onHighestSemverMismatch(input) {
|
|
60
|
+
return fetchPackageVersions(input);
|
|
61
|
+
},
|
|
62
|
+
onLowestSemverMismatch() {
|
|
63
|
+
return Effect.unit();
|
|
64
|
+
},
|
|
65
|
+
onPinnedMismatch() {
|
|
66
|
+
return Effect.unit();
|
|
67
|
+
},
|
|
68
|
+
onSameRangeMismatch(input) {
|
|
69
|
+
return fetchPackageVersions(input);
|
|
70
|
+
},
|
|
71
|
+
onSnappedToMismatch() {
|
|
72
|
+
return Effect.unit();
|
|
73
|
+
},
|
|
74
|
+
onUnsupportedMismatch() {
|
|
75
|
+
return Effect.unit();
|
|
76
|
+
},
|
|
77
|
+
onWorkspaceMismatch() {
|
|
78
|
+
return Effect.unit();
|
|
79
|
+
},
|
|
80
|
+
onComplete(ctx, results) {
|
|
81
|
+
return promptForUpdates(results);
|
|
82
|
+
},
|
|
83
|
+
};
|
|
84
|
+
const safeGetVersion = Schema.parseEither(Schema.struct({
|
|
85
|
+
'dist-tags': Schema.struct({ latest: Schema.string }),
|
|
86
|
+
'time': Schema.record(Schema.string, Schema.string),
|
|
87
|
+
}));
|
|
88
|
+
class HttpError extends Data.TaggedClass('HttpError') {
|
|
89
|
+
}
|
|
90
|
+
class JsonParseError extends Data.TaggedClass('JsonParseError') {
|
|
91
|
+
}
|
|
92
|
+
function fetchPackageVersions(input) {
|
|
93
|
+
if (!spinner)
|
|
94
|
+
spinner = (0, ora_1.default)().start();
|
|
95
|
+
fetchCount++;
|
|
96
|
+
spinner.text = chalk_1.default.blue(`Checked updates for ${fetchCount} dependencies`);
|
|
97
|
+
return (0, Function_1.pipe)(fetchUrl(`https://registry.npmjs.org/${input.report.name}`), Effect.flatMap(safeGetVersion), Effect.map((struct) => ({
|
|
98
|
+
input,
|
|
99
|
+
versions: {
|
|
100
|
+
all: Object.keys(struct.time).filter((key) => key !== 'modified' && key !== 'created'),
|
|
101
|
+
latest: struct['dist-tags'].latest,
|
|
102
|
+
},
|
|
103
|
+
})), Effect.catchTags({
|
|
104
|
+
HttpError(err) {
|
|
105
|
+
return Effect.sync(() => {
|
|
106
|
+
(0, log_verbose_1.logVerbose)(`HttpError for "${input.report.name}" ${err}`);
|
|
107
|
+
});
|
|
108
|
+
},
|
|
109
|
+
JsonParseError(err) {
|
|
110
|
+
return Effect.sync(() => {
|
|
111
|
+
(0, log_verbose_1.logVerbose)(`JsonParseError for "${input.report.name}" ${err}`);
|
|
112
|
+
});
|
|
113
|
+
},
|
|
114
|
+
ParseError(err) {
|
|
115
|
+
return Effect.sync(() => {
|
|
116
|
+
(0, log_verbose_1.logVerbose)(`ParseError for "${input.report.name}" ${err}`);
|
|
117
|
+
});
|
|
118
|
+
},
|
|
119
|
+
}));
|
|
120
|
+
}
|
|
121
|
+
function promptForUpdates(results) {
|
|
122
|
+
spinner.stop();
|
|
123
|
+
return (0, Function_1.pipe)(Effect.Do(), Effect.bind('choices', () => Effect.sync(() => results.reduce((arr, result) => {
|
|
124
|
+
if (!result)
|
|
125
|
+
return arr;
|
|
126
|
+
if (!['SameRange', 'Standard'].includes(result.input.group._tag))
|
|
127
|
+
return arr;
|
|
128
|
+
const input = result.input;
|
|
129
|
+
const latestVersion = result.versions.latest;
|
|
130
|
+
const uniqueVersions = (0, get_unique_versions_1.getUniqueVersions)(input.report.instances);
|
|
131
|
+
const highestVersion = (0, unwrap_1.unwrap)((0, get_highest_version_1.getHighestVersion)(uniqueVersions));
|
|
132
|
+
const exactHighestVersion = (0, set_semver_range_1.setSemverRange)('', highestVersion);
|
|
133
|
+
if (exactHighestVersion === latestVersion)
|
|
134
|
+
return arr;
|
|
135
|
+
const semverRange = (0, set_semver_range_1.getSemverRange)(highestVersion);
|
|
136
|
+
const latestWithRange = (0, set_semver_range_1.setSemverRange)(semverRange, latestVersion);
|
|
137
|
+
arr.push({
|
|
138
|
+
result,
|
|
139
|
+
selected: true,
|
|
140
|
+
title: (0, chalk_1.default) `NAME {red OLD} ARROW {green NEW}`
|
|
141
|
+
.replace('NAME', input.report.name)
|
|
142
|
+
.replace('OLD', uniqueVersions.join(chalk_1.default.dim(', ')))
|
|
143
|
+
.replace('ARROW', constants_1.ICON.rightArrow)
|
|
144
|
+
.replace('NEW', latestWithRange),
|
|
145
|
+
});
|
|
146
|
+
return arr;
|
|
147
|
+
}, []))), Effect.bind('chosenUpdates', ({ choices }) => Effect.tryCatchPromise(() => (0, prompts_1.default)([
|
|
148
|
+
{
|
|
149
|
+
name: 'indexes',
|
|
150
|
+
type: 'multiselect',
|
|
151
|
+
message: 'Choose which packages to upgrade',
|
|
152
|
+
instructions: true,
|
|
153
|
+
// @ts-expect-error optionsPerPage *does* exist https://github.com/terkelg/prompts#options-7
|
|
154
|
+
optionsPerPage: 50,
|
|
155
|
+
choices: choices,
|
|
156
|
+
},
|
|
157
|
+
])
|
|
158
|
+
.then(({ indexes = [] }) => ({ choices, indexes }))
|
|
159
|
+
.then(({ choices, indexes }) => indexes.map((i) => choices[i].result)), () => new Error('Prompt failed'))), Effect.flatMap(({ chosenUpdates }) => Effect.sync(() => {
|
|
160
|
+
chosenUpdates.forEach(({ input, versions }) => {
|
|
161
|
+
input.report.instances.forEach((instance) => {
|
|
162
|
+
const semverRange = (0, set_semver_range_1.getSemverRange)(instance.version);
|
|
163
|
+
const latestWithRange = (0, set_semver_range_1.setSemverRange)(semverRange, versions.latest);
|
|
164
|
+
instance.setVersion(latestWithRange);
|
|
165
|
+
});
|
|
166
|
+
});
|
|
167
|
+
})), Effect.catchAll(() => Effect.unit()));
|
|
168
|
+
}
|
|
169
|
+
// @TODO: add a cache with a short TTL on disk in $TMPDIR
|
|
170
|
+
function fetchUrl(url) {
|
|
171
|
+
return (0, Function_1.pipe)(Effect.async((resume) => {
|
|
172
|
+
https_1.default
|
|
173
|
+
.get(url, (res) => {
|
|
174
|
+
let body = '';
|
|
175
|
+
res.setEncoding('utf8');
|
|
176
|
+
res.on('data', (chunk) => {
|
|
177
|
+
body = `${body}${chunk}`;
|
|
178
|
+
});
|
|
179
|
+
res.on('end', () => {
|
|
180
|
+
resume(Effect.succeed(body));
|
|
181
|
+
});
|
|
182
|
+
})
|
|
183
|
+
.on('error', (err) => {
|
|
184
|
+
resume(Effect.fail(new HttpError({ error: String(err) })));
|
|
185
|
+
});
|
|
186
|
+
}), Effect.flatMap((body) => Effect.tryCatch(() => JSON.parse(body), (err) => new JsonParseError({ error: String(err) }))));
|
|
187
|
+
}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
4
|
+
if (k2 === undefined) k2 = k;
|
|
5
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
6
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
7
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
8
|
+
}
|
|
9
|
+
Object.defineProperty(o, k2, desc);
|
|
10
|
+
}) : (function(o, m, k, k2) {
|
|
11
|
+
if (k2 === undefined) k2 = k;
|
|
12
|
+
o[k2] = m[k];
|
|
13
|
+
}));
|
|
14
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
15
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
16
|
+
}) : function(o, v) {
|
|
17
|
+
o["default"] = v;
|
|
18
|
+
});
|
|
19
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
20
|
+
if (mod && mod.__esModule) return mod;
|
|
21
|
+
var result = {};
|
|
22
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
23
|
+
__setModuleDefault(result, mod);
|
|
24
|
+
return result;
|
|
25
|
+
};
|
|
26
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
27
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
28
|
+
};
|
|
29
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
30
|
+
const Effect = __importStar(require("@effect/io/Effect"));
|
|
31
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
32
|
+
const commander_1 = require("commander");
|
|
33
|
+
const default_env_1 = require("../env/default-env");
|
|
34
|
+
const show_help_on_error_1 = require("../lib/show-help-on-error");
|
|
35
|
+
const option_1 = require("../option");
|
|
36
|
+
const update_1 = require("./update");
|
|
37
|
+
commander_1.program.description(' Update to the latest versions on the npm registry.');
|
|
38
|
+
commander_1.program.on('--help', () => {
|
|
39
|
+
console.log((0, chalk_1.default) `
|
|
40
|
+
Examples:
|
|
41
|
+
{dim # uses defaults for resolving packages}
|
|
42
|
+
syncpack update
|
|
43
|
+
{dim # uses packages defined by --source when provided}
|
|
44
|
+
syncpack update --source {yellow "apps/*/package.json"}
|
|
45
|
+
{dim # multiple globs can be provided like this}
|
|
46
|
+
syncpack update --source {yellow "apps/*/package.json"} --source {yellow "core/*/package.json"}
|
|
47
|
+
{dim # uses dependencies regular expression defined by --filter when provided}
|
|
48
|
+
syncpack update --filter {yellow "typescript|tslint"}
|
|
49
|
+
{dim # only inspect "devDependencies"}
|
|
50
|
+
syncpack update --types dev
|
|
51
|
+
{dim # only inspect "devDependencies" and "peerDependencies"}
|
|
52
|
+
syncpack update --types dev,peer
|
|
53
|
+
|
|
54
|
+
Resolving Packages:
|
|
55
|
+
1. If {yellow --source} globs are provided, use those.
|
|
56
|
+
2. If using Pnpm Workspaces, read {yellow packages} from {yellow pnpm-workspace.yaml} in the root of the project.
|
|
57
|
+
3. If using Yarn Workspaces, read {yellow workspaces} from {yellow package.json}.
|
|
58
|
+
4. If using Lerna, read {yellow packages} from {yellow lerna.json}.
|
|
59
|
+
5. Default to {yellow "package.json"} and {yellow "packages/*/package.json"}.
|
|
60
|
+
|
|
61
|
+
Reference:
|
|
62
|
+
globs {blue.underline https://github.com/isaacs/node-glob#glob-primer}
|
|
63
|
+
lerna.json {blue.underline https://github.com/lerna/lerna#lernajson}
|
|
64
|
+
Yarn Workspaces {blue.underline https://yarnpkg.com/lang/en/docs/workspaces}
|
|
65
|
+
Pnpm Workspaces {blue.underline https://pnpm.js.org/en/workspaces}
|
|
66
|
+
`);
|
|
67
|
+
});
|
|
68
|
+
(0, show_help_on_error_1.showHelpOnError)(commander_1.program);
|
|
69
|
+
commander_1.program
|
|
70
|
+
.option(...option_1.option.source)
|
|
71
|
+
.option(...option_1.option.filter)
|
|
72
|
+
.option(...option_1.option.config)
|
|
73
|
+
.option(...option_1.option.types)
|
|
74
|
+
.parse(process.argv);
|
|
75
|
+
Effect.runPromise((0, update_1.update)({
|
|
76
|
+
configPath: commander_1.program.opts().config,
|
|
77
|
+
filter: commander_1.program.opts().filter,
|
|
78
|
+
source: commander_1.program.opts().source,
|
|
79
|
+
types: commander_1.program.opts().types,
|
|
80
|
+
}, default_env_1.defaultEnv));
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import * as Effect from '@effect/io/Effect';
|
|
2
|
+
import { type CliConfig } from '../config/types';
|
|
3
|
+
import type { DefaultEnv } from '../env/default-env';
|
|
4
|
+
export declare function update(cli: Partial<CliConfig>, env: DefaultEnv): Effect.Effect<never, never, void | import("../get-context").Ctx>;
|
|
@@ -0,0 +1,47 @@
|
|
|
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.update = void 0;
|
|
27
|
+
const Context = __importStar(require("@effect/data/Context"));
|
|
28
|
+
const Function_1 = require("@effect/data/Function");
|
|
29
|
+
const Effect = __importStar(require("@effect/io/Effect"));
|
|
30
|
+
// import { setSemverRangesEffects } from '../bin-set-semver-ranges/effects';
|
|
31
|
+
const types_1 = require("../config/types");
|
|
32
|
+
// import { createSemverRangesProgram } from '../create-program/semver-ranges';
|
|
33
|
+
const versions_1 = require("../create-program/versions");
|
|
34
|
+
const create_env_1 = require("../env/create-env");
|
|
35
|
+
const exit_if_invalid_1 = require("../env/exit-if-invalid");
|
|
36
|
+
const tags_1 = require("../env/tags");
|
|
37
|
+
const write_if_changed_1 = require("../env/write-if-changed");
|
|
38
|
+
const create_error_handlers_1 = require("../error-handlers/create-error-handlers");
|
|
39
|
+
const default_error_handlers_1 = require("../error-handlers/default-error-handlers");
|
|
40
|
+
const get_context_1 = require("../get-context");
|
|
41
|
+
const effects_1 = require("./effects");
|
|
42
|
+
function update(cli, env) {
|
|
43
|
+
return (0, Function_1.pipe)((0, get_context_1.getContext)(), Effect.flatMap((ctx) => (0, versions_1.createVersionsProgram)(ctx, effects_1.updateEffects)),
|
|
44
|
+
// Effect.flatMap((ctx) => createSemverRangesProgram(ctx, setSemverRangesEffects)),
|
|
45
|
+
Effect.flatMap(write_if_changed_1.writeIfChanged), Effect.flatMap(exit_if_invalid_1.exitIfInvalid), Effect.catchTags((0, create_error_handlers_1.createErrorHandlers)(default_error_handlers_1.defaultErrorHandlers)), Effect.withParallelism(10), Effect.provideContext((0, Function_1.pipe)(Context.empty(), Context.add(types_1.CliConfigTag, cli), Context.add(tags_1.EnvTag, (0, create_env_1.createEnv)(env)))));
|
|
46
|
+
}
|
|
47
|
+
exports.update = update;
|
package/dist/bin.js
CHANGED
|
@@ -28,5 +28,8 @@ commander_1.program
|
|
|
28
28
|
})
|
|
29
29
|
.command('set-semver-ranges', 'set semver ranges to the given format', {
|
|
30
30
|
executableFile: './bin-set-semver-ranges/index.js',
|
|
31
|
+
})
|
|
32
|
+
.command('update', 'update to the latest versions on the npm registry', {
|
|
33
|
+
executableFile: './bin-update/index.js',
|
|
31
34
|
})
|
|
32
35
|
.parse(process.argv);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { Ctx } from '../get-context';
|
|
2
2
|
import { NameAndVersionPropsStrategy } from '../strategy/name-and-version-props';
|
|
3
3
|
import { NamedVersionStringStrategy } from '../strategy/named-version-string';
|
|
4
4
|
import { UnnamedVersionStringStrategy } from '../strategy/unnamed-version-string';
|
|
@@ -6,4 +6,4 @@ import { VersionsByNameStrategy } from '../strategy/versions-by-name';
|
|
|
6
6
|
export declare namespace Strategy {
|
|
7
7
|
type Any = NameAndVersionPropsStrategy | NamedVersionStringStrategy | UnnamedVersionStringStrategy | VersionsByNameStrategy;
|
|
8
8
|
}
|
|
9
|
-
export declare function getCustomTypes({ rcFile }:
|
|
9
|
+
export declare function getCustomTypes({ rcFile }: Ctx['config']): Strategy.Any[];
|
|
@@ -1,3 +1,13 @@
|
|
|
1
|
-
import
|
|
1
|
+
import * as Data from '@effect/data/Data';
|
|
2
|
+
import * as Effect from '@effect/io/Effect';
|
|
3
|
+
import type { Ctx } from '../get-context';
|
|
2
4
|
import type { Strategy } from './get-custom-types';
|
|
3
|
-
|
|
5
|
+
declare const DeprecatedTypesError_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 & {
|
|
6
|
+
_tag: "DeprecatedTypesError";
|
|
7
|
+
}>;
|
|
8
|
+
export declare class DeprecatedTypesError extends DeprecatedTypesError_base<{
|
|
9
|
+
readonly types: string[];
|
|
10
|
+
}> {
|
|
11
|
+
}
|
|
12
|
+
export declare function getEnabledTypes({ cli, rcFile, }: Ctx['config']): Effect.Effect<never, DeprecatedTypesError, Strategy.Any[]>;
|
|
13
|
+
export {};
|
|
@@ -1,12 +1,44 @@
|
|
|
1
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
|
+
};
|
|
2
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getEnabledTypes = void 0;
|
|
26
|
+
exports.getEnabledTypes = exports.DeprecatedTypesError = void 0;
|
|
27
|
+
const Data = __importStar(require("@effect/data/Data"));
|
|
28
|
+
const Effect = __importStar(require("@effect/io/Effect"));
|
|
4
29
|
const is_array_of_strings_1 = require("tightrope/guard/is-array-of-strings");
|
|
30
|
+
const is_boolean_1 = require("tightrope/guard/is-boolean");
|
|
5
31
|
const is_empty_array_1 = require("tightrope/guard/is-empty-array");
|
|
6
32
|
const is_non_empty_string_1 = require("tightrope/guard/is-non-empty-string");
|
|
33
|
+
const constants_1 = require("../constants");
|
|
7
34
|
const name_and_version_props_1 = require("../strategy/name-and-version-props");
|
|
8
35
|
const versions_by_name_1 = require("../strategy/versions-by-name");
|
|
9
36
|
const get_custom_types_1 = require("./get-custom-types");
|
|
37
|
+
class DeprecatedTypesError extends Data.TaggedClass('DeprecatedTypesError') {
|
|
38
|
+
}
|
|
39
|
+
exports.DeprecatedTypesError = DeprecatedTypesError;
|
|
40
|
+
// @TODO accept `dependencyTypes: ['**']`
|
|
41
|
+
// @TODO support `dependencyTypes: ['!dev']`
|
|
10
42
|
function getEnabledTypes({ cli, rcFile, }) {
|
|
11
43
|
const enabledTypes = [];
|
|
12
44
|
const enabledTypeNames = ((0, is_non_empty_string_1.isNonEmptyString)(cli.types)
|
|
@@ -14,9 +46,11 @@ function getEnabledTypes({ cli, rcFile, }) {
|
|
|
14
46
|
: (0, is_array_of_strings_1.isArrayOfStrings)(rcFile.dependencyTypes)
|
|
15
47
|
? rcFile.dependencyTypes
|
|
16
48
|
: []).filter(is_non_empty_string_1.isNonEmptyString);
|
|
17
|
-
// @TODO accept `dependencyTypes: ['**']`
|
|
18
|
-
// @TODO support `dependencyTypes: ['!dev']`
|
|
19
49
|
const useDefaults = (0, is_empty_array_1.isEmptyArray)(enabledTypeNames);
|
|
50
|
+
const deprecatedTypes = constants_1.DEFAULT_CONFIG.dependencyTypes.filter((key) => (0, is_boolean_1.isBoolean)(rcFile[key]));
|
|
51
|
+
if (deprecatedTypes.length > 0) {
|
|
52
|
+
return Effect.fail(new DeprecatedTypesError({ types: deprecatedTypes }));
|
|
53
|
+
}
|
|
20
54
|
if (useDefaults || enabledTypeNames.includes('dev')) {
|
|
21
55
|
enabledTypes.push(new versions_by_name_1.VersionsByNameStrategy('dev', 'devDependencies'));
|
|
22
56
|
}
|
|
@@ -43,6 +77,6 @@ function getEnabledTypes({ cli, rcFile, }) {
|
|
|
43
77
|
enabledTypes.push(customType);
|
|
44
78
|
}
|
|
45
79
|
});
|
|
46
|
-
return enabledTypes;
|
|
80
|
+
return Effect.succeed(enabledTypes);
|
|
47
81
|
}
|
|
48
82
|
exports.getEnabledTypes = getEnabledTypes;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
export declare function getFilter({ cli, rcFile }:
|
|
1
|
+
import type { Ctx } from '../get-context';
|
|
2
|
+
export declare function getFilter({ cli, rcFile }: Ctx['config']): string;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
export declare function getIndent({ cli, rcFile }:
|
|
1
|
+
import type { Ctx } from '../get-context';
|
|
2
|
+
export declare function getIndent({ cli, rcFile }: Ctx['config']): string;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { Ctx } from '../get-context';
|
|
2
2
|
import type { SemverRange } from './types';
|
|
3
|
-
export declare function getSemverRange({ cli, rcFile
|
|
3
|
+
export declare function getSemverRange({ cli, rcFile }: Ctx['config']): SemverRange;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getSemverRange = void 0;
|
|
4
|
-
const
|
|
5
|
-
function getSemverRange({ cli, rcFile
|
|
6
|
-
return (0,
|
|
4
|
+
const is_valid_semver_range_1 = require("../guards/is-valid-semver-range");
|
|
5
|
+
function getSemverRange({ cli, rcFile }) {
|
|
6
|
+
return (0, is_valid_semver_range_1.isValidSemverRange)(cli.semverRange)
|
|
7
7
|
? cli.semverRange
|
|
8
|
-
: (0,
|
|
8
|
+
: (0, is_valid_semver_range_1.isValidSemverRange)(rcFile.semverRange)
|
|
9
9
|
? rcFile.semverRange
|
|
10
10
|
: '';
|
|
11
11
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
export declare function getSortAz({ rcFile }:
|
|
1
|
+
import type { Ctx } from '../get-context';
|
|
2
|
+
export declare function getSortAz({ rcFile }: Ctx['config']): string[];
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
export declare function getSortFirst({ rcFile }:
|
|
1
|
+
import type { Ctx } from '../get-context';
|
|
2
|
+
export declare function getSortFirst({ rcFile }: Ctx['config']): string[];
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
export declare function getSource({ cli, rcFile }:
|
|
1
|
+
import type { Ctx } from '../get-context';
|
|
2
|
+
export declare function getSource({ cli, rcFile }: Ctx['config']): string[];
|
|
@@ -2,12 +2,11 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getSource = void 0;
|
|
4
4
|
const is_array_of_strings_1 = require("tightrope/guard/is-array-of-strings");
|
|
5
|
-
const constants_1 = require("../constants");
|
|
6
5
|
function getSource({ cli, rcFile }) {
|
|
7
6
|
return (0, is_array_of_strings_1.isArrayOfStrings)(cli.source)
|
|
8
7
|
? cli.source
|
|
9
8
|
: (0, is_array_of_strings_1.isArrayOfStrings)(rcFile.source)
|
|
10
9
|
? rcFile.source
|
|
11
|
-
: [
|
|
10
|
+
: [];
|
|
12
11
|
}
|
|
13
12
|
exports.getSource = getSource;
|
package/dist/config/types.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import * as Context from '@effect/data/Context';
|
|
1
2
|
import type { Union } from 'ts-toolbelt';
|
|
2
3
|
/**
|
|
3
4
|
* Aliases for semver range formats supported by syncpack
|
|
@@ -80,13 +81,14 @@ declare namespace CustomTypeConfig {
|
|
|
80
81
|
type Any = Union.Strict<NameAndVersionProps | NamedVersionString | UnnamedVersionString | VersionsByName>;
|
|
81
82
|
}
|
|
82
83
|
export interface CliConfig {
|
|
83
|
-
configPath?: string;
|
|
84
|
-
filter: string;
|
|
85
|
-
indent: string;
|
|
86
|
-
semverRange: SemverRange;
|
|
87
|
-
source: string[];
|
|
88
|
-
types: string;
|
|
84
|
+
readonly configPath?: string;
|
|
85
|
+
readonly filter: string;
|
|
86
|
+
readonly indent: string;
|
|
87
|
+
readonly semverRange: SemverRange;
|
|
88
|
+
readonly source: string[];
|
|
89
|
+
readonly types: string;
|
|
89
90
|
}
|
|
91
|
+
export declare const CliConfigTag: Context.Tag<Partial<CliConfig>, Partial<CliConfig>>;
|
|
90
92
|
export interface RcConfig {
|
|
91
93
|
/** @see https://jamiemason.github.io/syncpack/config/custom-types */
|
|
92
94
|
customTypes: Record<string, CustomTypeConfig.Any>;
|
package/dist/config/types.js
CHANGED
|
@@ -1,2 +1,28 @@
|
|
|
1
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
|
+
};
|
|
2
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.CliConfigTag = void 0;
|
|
27
|
+
const Context = __importStar(require("@effect/data/Context"));
|
|
28
|
+
exports.CliConfigTag = Context.Tag();
|
package/dist/constants.d.ts
CHANGED
|
@@ -31,6 +31,6 @@ export declare const DEFAULT_CONFIG: {
|
|
|
31
31
|
readonly semverRange: "";
|
|
32
32
|
readonly sortAz: readonly ["contributors", "dependencies", "devDependencies", "keywords", "peerDependencies", "resolutions", "scripts"];
|
|
33
33
|
readonly sortFirst: readonly ["name", "description", "version", "author"];
|
|
34
|
-
readonly source:
|
|
34
|
+
readonly source: string[];
|
|
35
35
|
readonly versionGroups: readonly [];
|
|
36
36
|
};
|
package/dist/constants.js
CHANGED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type * as Effect from '@effect/io/Effect';
|
|
2
|
+
import type { Env } from '../env/create-env';
|
|
3
|
+
import type { Ctx } from '../get-context';
|
|
4
|
+
import type { AnySemverGroup, SemverGroupReport as SR } from '../get-semver-groups';
|
|
5
|
+
import type { AnyVersionGroup, VersionGroupReport as VR } from '../get-version-groups';
|
|
6
|
+
export interface SemverRangeEffectInput<T> {
|
|
7
|
+
ctx: Ctx;
|
|
8
|
+
group: AnySemverGroup;
|
|
9
|
+
index: number;
|
|
10
|
+
report: T;
|
|
11
|
+
}
|
|
12
|
+
export interface VersionEffectInput<T> {
|
|
13
|
+
ctx: Ctx;
|
|
14
|
+
group: AnyVersionGroup;
|
|
15
|
+
index: number;
|
|
16
|
+
report: T;
|
|
17
|
+
}
|
|
18
|
+
export interface SemverRangeEffects<A> {
|
|
19
|
+
onFilteredOut: (input: SemverRangeEffectInput<SR.FilteredOut>) => Effect.Effect<Env | never, never, A>;
|
|
20
|
+
onIgnored: (input: SemverRangeEffectInput<SR.Ignored>) => Effect.Effect<Env | never, never, A>;
|
|
21
|
+
onSemverRangeMismatch: (input: SemverRangeEffectInput<SR.SemverRangeMismatch>) => Effect.Effect<Env | never, never, A>;
|
|
22
|
+
onUnsupportedVersion: (input: SemverRangeEffectInput<SR.UnsupportedVersion>) => Effect.Effect<Env | never, never, A>;
|
|
23
|
+
onValid: (input: SemverRangeEffectInput<SR.Valid>) => Effect.Effect<Env | never, never, A>;
|
|
24
|
+
onWorkspaceSemverRangeMismatch: (input: SemverRangeEffectInput<SR.WorkspaceSemverRangeMismatch>) => Effect.Effect<Env | never, never, A>;
|
|
25
|
+
onComplete: (ctx: Ctx, results: A[]) => Effect.Effect<Env | never, never, A>;
|
|
26
|
+
}
|
|
27
|
+
export interface VersionEffects<A> {
|
|
28
|
+
onBanned: (input: VersionEffectInput<VR.Banned>) => Effect.Effect<Env | never, never, A>;
|
|
29
|
+
onFilteredOut: (input: VersionEffectInput<VR.FilteredOut>) => Effect.Effect<Env | never, never, A>;
|
|
30
|
+
onHighestSemverMismatch: (input: VersionEffectInput<VR.HighestSemverMismatch>) => Effect.Effect<Env | never, never, A>;
|
|
31
|
+
onIgnored: (input: VersionEffectInput<VR.Ignored>) => Effect.Effect<Env | never, never, A>;
|
|
32
|
+
onLowestSemverMismatch: (input: VersionEffectInput<VR.LowestSemverMismatch>) => Effect.Effect<Env | never, never, A>;
|
|
33
|
+
onPinnedMismatch: (input: VersionEffectInput<VR.PinnedMismatch>) => Effect.Effect<Env | never, never, A>;
|
|
34
|
+
onSameRangeMismatch: (input: VersionEffectInput<VR.SameRangeMismatch>) => Effect.Effect<Env | never, never, A>;
|
|
35
|
+
onSnappedToMismatch: (input: VersionEffectInput<VR.SnappedToMismatch>) => Effect.Effect<Env | never, never, A>;
|
|
36
|
+
onUnsupportedMismatch: (input: VersionEffectInput<VR.UnsupportedMismatch>) => Effect.Effect<Env | never, never, A>;
|
|
37
|
+
onValid: (input: VersionEffectInput<VR.Valid>) => Effect.Effect<Env | never, never, A>;
|
|
38
|
+
onWorkspaceMismatch: (input: VersionEffectInput<VR.WorkspaceMismatch>) => Effect.Effect<Env | never, never, A>;
|
|
39
|
+
onComplete: (ctx: Ctx, results: A[]) => Effect.Effect<Env | never, never, A>;
|
|
40
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import * as Effect from '@effect/io/Effect';
|
|
2
|
+
import type { DeprecatedTypesError } from '../config/get-enabled-types';
|
|
3
|
+
import type { Env } from '../env/create-env';
|
|
4
|
+
import type { Ctx } from '../get-context';
|
|
5
|
+
import type { SemverGroupConfigError } from '../get-semver-groups';
|
|
6
|
+
import type { SemverRangeEffects } from './effects';
|
|
7
|
+
export declare function createSemverRangesProgram<T extends SemverRangeEffects<any>>(ctx: Ctx, effects: T): Effect.Effect<Env, SemverGroupConfigError | DeprecatedTypesError, Ctx>;
|