Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@changesets/config

Package Overview
Dependencies
Maintainers
3
Versions
35
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@changesets/config - npm Package Compare versions

Comparing version 1.3.0 to 1.4.0

11

CHANGELOG.md
# @changesets/config
## 1.4.0
### Minor Changes
- [`e33e4ca`](https://github.com/atlassian/changesets/commit/e33e4ca7e71ba7747e21af5011057f11ddfab939) [#458](https://github.com/atlassian/changesets/pull/458) Thanks [@emmenko](https://github.com/emmenko)! - Allow glob expressions to be provided for the `linked` and `ignore` options
### Patch Changes
- Updated dependencies [[`f4973a2`](https://github.com/atlassian/changesets/commit/f4973a25ec6a837f36d64c1fb4b108ace3bc1f9d)]:
- @changesets/types@3.2.0
## 1.3.0

@@ -4,0 +15,0 @@

69

dist/config.cjs.dev.js

@@ -9,2 +9,3 @@ 'use strict';

var path = _interopDefault(require('path'));
var micromatch = _interopDefault(require('micromatch'));
var errors = require('@changesets/errors');

@@ -16,3 +17,3 @@ var logger = require('@changesets/logger');

name: "@changesets/config",
version: "1.3.0",
version: "1.4.0",
description: "Utilities for reading and parsing Changeset's config",

@@ -31,7 +32,9 @@ main: "dist/config.cjs.js",

"@changesets/logger": "^0.0.5",
"@changesets/types": "^3.1.0",
"@changesets/types": "^3.2.0",
"@manypkg/get-packages": "^1.0.1",
"fs-extra": "^7.0.1"
"fs-extra": "^7.0.1",
micromatch: "^4.0.2"
},
devDependencies: {
"@types/micromatch": "^4.0.1",
fixturez: "^1.1.0",

@@ -65,2 +68,19 @@ "jest-in-case": "^1.0.2"

function normalizePackageNames(listOfPackageNamesOrGlob, pkgNames) {
const matchingPackages = micromatch(pkgNames, listOfPackageNamesOrGlob); // Go through the list of given package globs (again) in order to find out
// which packages didn't match so that we can show a validation message.
const nonExistingPackages = listOfPackageNamesOrGlob.filter(pkgNameOrGlob => !pkgNames.some(pkgName => micromatch.isMatch(pkgName, pkgNameOrGlob))); // Since the validation happens in subsequent steps, we need to return a tuple
// with the list of non-existing packages.
// TODO: refactor the validation logic to exit early when something is not valid.
return [matchingPackages, nonExistingPackages];
} // TODO: replace usage with Array.isArray when TS 4.1 gets released
// source: https://github.com/microsoft/TypeScript/pull/39258/files#diff-a6b488d9bd802977827b535a3011c1f3R1379
function isArray(arg) {
return Array.isArray(arg);
}
let read = async (cwd, packages) => {

@@ -72,4 +92,7 @@ let json = await fs.readJSON(path.join(cwd, ".changeset", "config.json"));

let messages = [];
let pkgNames = packages.packages.map(({
packageJson
}) => packageJson.name);
if (json.changelog !== undefined && json.changelog !== false && typeof json.changelog !== "string" && !(Array.isArray(json.changelog) && json.changelog.length === 2 && typeof json.changelog[0] === "string")) {
if (json.changelog !== undefined && json.changelog !== false && typeof json.changelog !== "string" && !(isArray(json.changelog) && json.changelog.length === 2 && typeof json.changelog[0] === "string")) {
messages.push(`The \`changelog\` option is set as ${JSON.stringify(json.changelog, null, 2)} when the only valid values are undefined, a module path(e.g. "@changesets/cli/changelog" or "./some-module") or a tuple with a module path and config for the changelog generator(e.g. ["@changesets/cli/changelog", { someOption: true }])`);

@@ -98,8 +121,5 @@ }

if (json.linked !== undefined) {
if (!(Array.isArray(json.linked) && json.linked.every(arr => Array.isArray(arr) && arr.every(pkgName => typeof pkgName === "string")))) {
if (!(isArray(json.linked) && json.linked.every(arr => Array.isArray(arr) && arr.every(pkgName => typeof pkgName === "string")))) {
messages.push(`The \`linked\` option is set as ${JSON.stringify(json.linked, null, 2)} when the only valid values are undefined or an array of arrays of package names`);
} else {
let pkgNames = new Set(packages.packages.map(({
packageJson
}) => packageJson.name));
let foundPkgNames = new Set();

@@ -109,7 +129,5 @@ let duplicatedPkgNames = new Set();

for (let linkedGroup of json.linked) {
for (let linkedPkgName of linkedGroup) {
if (!pkgNames.has(linkedPkgName)) {
messages.push(`The package "${linkedPkgName}" is specified in the \`linked\` option but it is not found in the project. You may have misspelled the package name.`);
}
let [normalizedLinkedGroup, nonExistingPackages] = normalizePackageNames(linkedGroup, pkgNames);
for (let linkedPkgName of normalizedLinkedGroup) {
if (foundPkgNames.has(linkedPkgName)) {

@@ -120,2 +138,9 @@ duplicatedPkgNames.add(linkedPkgName);

foundPkgNames.add(linkedPkgName);
} // Show validation message for each non-existing package
if (nonExistingPackages.length > 0) {
nonExistingPackages.forEach(nonExistingPkgName => {
messages.push(`The package or glob expression "${nonExistingPkgName}" specified in the \`linked\` option does not match any package in the project. You may have misspelled the package name or provided an invalid glob expression. Note that glob expressions must be defined according to https://www.npmjs.com/package/micromatch.`);
});
}

@@ -126,3 +151,3 @@ }

duplicatedPkgNames.forEach(pkgName => {
messages.push(`The package "${pkgName}" is in multiple sets of linked packages. Packages can only be in a single set of linked packages.`);
messages.push(`The package "${pkgName}" is defined in multiple sets of linked packages. Packages can only be defined in a single set of linked packages. If you are using glob expressions, make sure that they are valid according to https://www.npmjs.com/package/micromatch.`);
});

@@ -138,13 +163,11 @@ }

if (json.ignore) {
if (!(Array.isArray(json.ignore) && json.ignore.every(pkgName => typeof pkgName === "string"))) {
if (!(isArray(json.ignore) && json.ignore.every(pkgName => typeof pkgName === "string"))) {
messages.push(`The \`ignore\` option is set as ${JSON.stringify(json.ignore, null, 2)} when the only valid values are undefined or an array of package names`);
} else {
let pkgNames = new Set(packages.packages.map(({
packageJson
}) => packageJson.name));
let [, nonExistingPackages] = normalizePackageNames(json.ignore, pkgNames);
for (let pkgName of json.ignore) {
if (!pkgNames.has(pkgName)) {
messages.push(`The package "${pkgName}" is specified in the \`ignore\` option but it is not found in the project. You may have misspelled the package name.`);
}
if (nonExistingPackages.length > 0) {
nonExistingPackages.forEach(nonExistingPkgName => {
messages.push(`The package or glob expression "${nonExistingPkgName}" is specified in the \`ignore\` option but it is not found in the project. You may have misspelled the package name or provided an invalid glob expression. Note that glob expressions must be defined according to https://www.npmjs.com/package/micromatch.`);
});
} // Validate that all dependents of ignored packages are listed in the ignore list

@@ -190,6 +213,6 @@

commit: json.commit === undefined ? defaultWrittenConfig.commit : json.commit,
linked: json.linked === undefined ? defaultWrittenConfig.linked : json.linked,
linked: json.linked === undefined ? defaultWrittenConfig.linked : json.linked.map(linkedGroup => normalizePackageNames(linkedGroup, pkgNames)[0]),
baseBranch: json.baseBranch === undefined ? defaultWrittenConfig.baseBranch : json.baseBranch,
updateInternalDependencies: json.updateInternalDependencies === undefined ? defaultWrittenConfig.updateInternalDependencies : json.updateInternalDependencies,
ignore: json.ignore === undefined ? defaultWrittenConfig.ignore : json.ignore,
ignore: json.ignore === undefined ? defaultWrittenConfig.ignore : normalizePackageNames(json.ignore, pkgNames)[0],
___experimentalUnsafeOptions_WILL_CHANGE_IN_PATCH: {

@@ -196,0 +219,0 @@ onlyUpdatePeerDependentsWhenOutOfRange: json.___experimentalUnsafeOptions_WILL_CHANGE_IN_PATCH === undefined || json.___experimentalUnsafeOptions_WILL_CHANGE_IN_PATCH.onlyUpdatePeerDependentsWhenOutOfRange === undefined ? false : json.___experimentalUnsafeOptions_WILL_CHANGE_IN_PATCH.onlyUpdatePeerDependentsWhenOutOfRange,

@@ -11,5 +11,5 @@ "use strict";

var fs = require("fs-extra"), path = _interopDefault(require("path")), errors = require("@changesets/errors"), logger = require("@changesets/logger"), getDependentsGraph = require("@changesets/get-dependents-graph"), packageJson = {
var fs = require("fs-extra"), path = _interopDefault(require("path")), micromatch = _interopDefault(require("micromatch")), errors = require("@changesets/errors"), logger = require("@changesets/logger"), getDependentsGraph = require("@changesets/get-dependents-graph"), packageJson = {
name: "@changesets/config",
version: "1.3.0",
version: "1.4.0",
description: "Utilities for reading and parsing Changeset's config",

@@ -25,7 +25,9 @@ main: "dist/config.cjs.js",

"@changesets/logger": "^0.0.5",
"@changesets/types": "^3.1.0",
"@changesets/types": "^3.2.0",
"@manypkg/get-packages": "^1.0.1",
"fs-extra": "^7.0.1"
"fs-extra": "^7.0.1",
micromatch: "^4.0.2"
},
devDependencies: {
"@types/micromatch": "^4.0.1",
fixturez: "^1.1.0",

@@ -51,2 +53,10 @@ "jest-in-case": "^1.0.2"

function normalizePackageNames(listOfPackageNamesOrGlob, pkgNames) {
return [ micromatch(pkgNames, listOfPackageNamesOrGlob), listOfPackageNamesOrGlob.filter(pkgNameOrGlob => !pkgNames.some(pkgName => micromatch.isMatch(pkgName, pkgNameOrGlob))) ];
}
function isArray(arg) {
return Array.isArray(arg);
}
let read = async (cwd, packages) => {

@@ -56,4 +66,4 @@ let json = await fs.readJSON(path.join(cwd, ".changeset", "config.json"));

}, parse = (json, packages) => {
let messages = [];
void 0 === json.changelog || !1 === json.changelog || "string" == typeof json.changelog || Array.isArray(json.changelog) && 2 === json.changelog.length && "string" == typeof json.changelog[0] || messages.push(`The \`changelog\` option is set as ${JSON.stringify(json.changelog, null, 2)} when the only valid values are undefined, a module path(e.g. "@changesets/cli/changelog" or "./some-module") or a tuple with a module path and config for the changelog generator(e.g. ["@changesets/cli/changelog", { someOption: true }])`);
let messages = [], pkgNames = packages.packages.map(({packageJson: packageJson}) => packageJson.name);
void 0 === json.changelog || !1 === json.changelog || "string" == typeof json.changelog || isArray(json.changelog) && 2 === json.changelog.length && "string" == typeof json.changelog[0] || messages.push(`The \`changelog\` option is set as ${JSON.stringify(json.changelog, null, 2)} when the only valid values are undefined, a module path(e.g. "@changesets/cli/changelog" or "./some-module") or a tuple with a module path and config for the changelog generator(e.g. ["@changesets/cli/changelog", { someOption: true }])`);
let normalizedAccess = json.access;

@@ -64,14 +74,22 @@ if ("private" === json.access && (normalizedAccess = "restricted", logger.warn('The `access` option is set as "private", but this is actually not a valid value - the correct form is "restricted".')),

void 0 !== json.baseBranch && "string" != typeof json.baseBranch && messages.push(`The \`baseBranch\` option is set as ${JSON.stringify(json.baseBranch, null, 2)} but the \`baseBranch\` option can only be set as a string`),
void 0 !== json.linked) if (Array.isArray(json.linked) && json.linked.every(arr => Array.isArray(arr) && arr.every(pkgName => "string" == typeof pkgName))) {
let pkgNames = new Set(packages.packages.map(({packageJson: packageJson}) => packageJson.name)), foundPkgNames = new Set, duplicatedPkgNames = new Set;
for (let linkedGroup of json.linked) for (let linkedPkgName of linkedGroup) pkgNames.has(linkedPkgName) || messages.push(`The package "${linkedPkgName}" is specified in the \`linked\` option but it is not found in the project. You may have misspelled the package name.`),
foundPkgNames.has(linkedPkgName) && duplicatedPkgNames.add(linkedPkgName), foundPkgNames.add(linkedPkgName);
void 0 !== json.linked) if (isArray(json.linked) && json.linked.every(arr => Array.isArray(arr) && arr.every(pkgName => "string" == typeof pkgName))) {
let foundPkgNames = new Set, duplicatedPkgNames = new Set;
for (let linkedGroup of json.linked) {
let [normalizedLinkedGroup, nonExistingPackages] = normalizePackageNames(linkedGroup, pkgNames);
for (let linkedPkgName of normalizedLinkedGroup) foundPkgNames.has(linkedPkgName) && duplicatedPkgNames.add(linkedPkgName),
foundPkgNames.add(linkedPkgName);
nonExistingPackages.length > 0 && nonExistingPackages.forEach(nonExistingPkgName => {
messages.push(`The package or glob expression "${nonExistingPkgName}" specified in the \`linked\` option does not match any package in the project. You may have misspelled the package name or provided an invalid glob expression. Note that glob expressions must be defined according to https://www.npmjs.com/package/micromatch.`);
});
}
duplicatedPkgNames.size && duplicatedPkgNames.forEach(pkgName => {
messages.push(`The package "${pkgName}" is in multiple sets of linked packages. Packages can only be in a single set of linked packages.`);
messages.push(`The package "${pkgName}" is defined in multiple sets of linked packages. Packages can only be defined in a single set of linked packages. If you are using glob expressions, make sure that they are valid according to https://www.npmjs.com/package/micromatch.`);
});
} else messages.push(`The \`linked\` option is set as ${JSON.stringify(json.linked, null, 2)} when the only valid values are undefined or an array of arrays of package names`);
if (void 0 === json.updateInternalDependencies || [ "patch", "minor" ].includes(json.updateInternalDependencies) || messages.push(`The \`updateInternalDependencies\` option is set as ${JSON.stringify(json.updateInternalDependencies, null, 2)} but can only be 'patch' or 'minor'`),
json.ignore) if (Array.isArray(json.ignore) && json.ignore.every(pkgName => "string" == typeof pkgName)) {
let pkgNames = new Set(packages.packages.map(({packageJson: packageJson}) => packageJson.name));
for (let pkgName of json.ignore) pkgNames.has(pkgName) || messages.push(`The package "${pkgName}" is specified in the \`ignore\` option but it is not found in the project. You may have misspelled the package name.`);
json.ignore) if (isArray(json.ignore) && json.ignore.every(pkgName => "string" == typeof pkgName)) {
let [, nonExistingPackages] = normalizePackageNames(json.ignore, pkgNames);
nonExistingPackages.length > 0 && nonExistingPackages.forEach(nonExistingPkgName => {
messages.push(`The package or glob expression "${nonExistingPkgName}" is specified in the \`ignore\` option but it is not found in the project. You may have misspelled the package name or provided an invalid glob expression. Note that glob expressions must be defined according to https://www.npmjs.com/package/micromatch.`);
});
const dependentsGraph = getDependentsGraph.getDependentsGraph(packages);

@@ -93,6 +111,6 @@ for (const ignoredPackage of json.ignore) {

commit: void 0 === json.commit ? defaultWrittenConfig.commit : json.commit,
linked: void 0 === json.linked ? defaultWrittenConfig.linked : json.linked,
linked: void 0 === json.linked ? defaultWrittenConfig.linked : json.linked.map(linkedGroup => normalizePackageNames(linkedGroup, pkgNames)[0]),
baseBranch: void 0 === json.baseBranch ? defaultWrittenConfig.baseBranch : json.baseBranch,
updateInternalDependencies: void 0 === json.updateInternalDependencies ? defaultWrittenConfig.updateInternalDependencies : json.updateInternalDependencies,
ignore: void 0 === json.ignore ? defaultWrittenConfig.ignore : json.ignore,
ignore: void 0 === json.ignore ? defaultWrittenConfig.ignore : normalizePackageNames(json.ignore, pkgNames)[0],
___experimentalUnsafeOptions_WILL_CHANGE_IN_PATCH: {

@@ -99,0 +117,0 @@ onlyUpdatePeerDependentsWhenOutOfRange: void 0 !== json.___experimentalUnsafeOptions_WILL_CHANGE_IN_PATCH && void 0 !== json.___experimentalUnsafeOptions_WILL_CHANGE_IN_PATCH.onlyUpdatePeerDependentsWhenOutOfRange && json.___experimentalUnsafeOptions_WILL_CHANGE_IN_PATCH.onlyUpdatePeerDependentsWhenOutOfRange,

import { readJSON } from 'fs-extra';
import path from 'path';
import micromatch from 'micromatch';
import { ValidationError } from '@changesets/errors';

@@ -9,3 +10,3 @@ import { warn } from '@changesets/logger';

name: "@changesets/config",
version: "1.3.0",
version: "1.4.0",
description: "Utilities for reading and parsing Changeset's config",

@@ -24,7 +25,9 @@ main: "dist/config.cjs.js",

"@changesets/logger": "^0.0.5",
"@changesets/types": "^3.1.0",
"@changesets/types": "^3.2.0",
"@manypkg/get-packages": "^1.0.1",
"fs-extra": "^7.0.1"
"fs-extra": "^7.0.1",
micromatch: "^4.0.2"
},
devDependencies: {
"@types/micromatch": "^4.0.1",
fixturez: "^1.1.0",

@@ -58,2 +61,19 @@ "jest-in-case": "^1.0.2"

function normalizePackageNames(listOfPackageNamesOrGlob, pkgNames) {
const matchingPackages = micromatch(pkgNames, listOfPackageNamesOrGlob); // Go through the list of given package globs (again) in order to find out
// which packages didn't match so that we can show a validation message.
const nonExistingPackages = listOfPackageNamesOrGlob.filter(pkgNameOrGlob => !pkgNames.some(pkgName => micromatch.isMatch(pkgName, pkgNameOrGlob))); // Since the validation happens in subsequent steps, we need to return a tuple
// with the list of non-existing packages.
// TODO: refactor the validation logic to exit early when something is not valid.
return [matchingPackages, nonExistingPackages];
} // TODO: replace usage with Array.isArray when TS 4.1 gets released
// source: https://github.com/microsoft/TypeScript/pull/39258/files#diff-a6b488d9bd802977827b535a3011c1f3R1379
function isArray(arg) {
return Array.isArray(arg);
}
let read = async (cwd, packages) => {

@@ -65,4 +85,7 @@ let json = await readJSON(path.join(cwd, ".changeset", "config.json"));

let messages = [];
let pkgNames = packages.packages.map(({
packageJson
}) => packageJson.name);
if (json.changelog !== undefined && json.changelog !== false && typeof json.changelog !== "string" && !(Array.isArray(json.changelog) && json.changelog.length === 2 && typeof json.changelog[0] === "string")) {
if (json.changelog !== undefined && json.changelog !== false && typeof json.changelog !== "string" && !(isArray(json.changelog) && json.changelog.length === 2 && typeof json.changelog[0] === "string")) {
messages.push(`The \`changelog\` option is set as ${JSON.stringify(json.changelog, null, 2)} when the only valid values are undefined, a module path(e.g. "@changesets/cli/changelog" or "./some-module") or a tuple with a module path and config for the changelog generator(e.g. ["@changesets/cli/changelog", { someOption: true }])`);

@@ -91,8 +114,5 @@ }

if (json.linked !== undefined) {
if (!(Array.isArray(json.linked) && json.linked.every(arr => Array.isArray(arr) && arr.every(pkgName => typeof pkgName === "string")))) {
if (!(isArray(json.linked) && json.linked.every(arr => Array.isArray(arr) && arr.every(pkgName => typeof pkgName === "string")))) {
messages.push(`The \`linked\` option is set as ${JSON.stringify(json.linked, null, 2)} when the only valid values are undefined or an array of arrays of package names`);
} else {
let pkgNames = new Set(packages.packages.map(({
packageJson
}) => packageJson.name));
let foundPkgNames = new Set();

@@ -102,7 +122,5 @@ let duplicatedPkgNames = new Set();

for (let linkedGroup of json.linked) {
for (let linkedPkgName of linkedGroup) {
if (!pkgNames.has(linkedPkgName)) {
messages.push(`The package "${linkedPkgName}" is specified in the \`linked\` option but it is not found in the project. You may have misspelled the package name.`);
}
let [normalizedLinkedGroup, nonExistingPackages] = normalizePackageNames(linkedGroup, pkgNames);
for (let linkedPkgName of normalizedLinkedGroup) {
if (foundPkgNames.has(linkedPkgName)) {

@@ -113,2 +131,9 @@ duplicatedPkgNames.add(linkedPkgName);

foundPkgNames.add(linkedPkgName);
} // Show validation message for each non-existing package
if (nonExistingPackages.length > 0) {
nonExistingPackages.forEach(nonExistingPkgName => {
messages.push(`The package or glob expression "${nonExistingPkgName}" specified in the \`linked\` option does not match any package in the project. You may have misspelled the package name or provided an invalid glob expression. Note that glob expressions must be defined according to https://www.npmjs.com/package/micromatch.`);
});
}

@@ -119,3 +144,3 @@ }

duplicatedPkgNames.forEach(pkgName => {
messages.push(`The package "${pkgName}" is in multiple sets of linked packages. Packages can only be in a single set of linked packages.`);
messages.push(`The package "${pkgName}" is defined in multiple sets of linked packages. Packages can only be defined in a single set of linked packages. If you are using glob expressions, make sure that they are valid according to https://www.npmjs.com/package/micromatch.`);
});

@@ -131,13 +156,11 @@ }

if (json.ignore) {
if (!(Array.isArray(json.ignore) && json.ignore.every(pkgName => typeof pkgName === "string"))) {
if (!(isArray(json.ignore) && json.ignore.every(pkgName => typeof pkgName === "string"))) {
messages.push(`The \`ignore\` option is set as ${JSON.stringify(json.ignore, null, 2)} when the only valid values are undefined or an array of package names`);
} else {
let pkgNames = new Set(packages.packages.map(({
packageJson
}) => packageJson.name));
let [, nonExistingPackages] = normalizePackageNames(json.ignore, pkgNames);
for (let pkgName of json.ignore) {
if (!pkgNames.has(pkgName)) {
messages.push(`The package "${pkgName}" is specified in the \`ignore\` option but it is not found in the project. You may have misspelled the package name.`);
}
if (nonExistingPackages.length > 0) {
nonExistingPackages.forEach(nonExistingPkgName => {
messages.push(`The package or glob expression "${nonExistingPkgName}" is specified in the \`ignore\` option but it is not found in the project. You may have misspelled the package name or provided an invalid glob expression. Note that glob expressions must be defined according to https://www.npmjs.com/package/micromatch.`);
});
} // Validate that all dependents of ignored packages are listed in the ignore list

@@ -183,6 +206,6 @@

commit: json.commit === undefined ? defaultWrittenConfig.commit : json.commit,
linked: json.linked === undefined ? defaultWrittenConfig.linked : json.linked,
linked: json.linked === undefined ? defaultWrittenConfig.linked : json.linked.map(linkedGroup => normalizePackageNames(linkedGroup, pkgNames)[0]),
baseBranch: json.baseBranch === undefined ? defaultWrittenConfig.baseBranch : json.baseBranch,
updateInternalDependencies: json.updateInternalDependencies === undefined ? defaultWrittenConfig.updateInternalDependencies : json.updateInternalDependencies,
ignore: json.ignore === undefined ? defaultWrittenConfig.ignore : json.ignore,
ignore: json.ignore === undefined ? defaultWrittenConfig.ignore : normalizePackageNames(json.ignore, pkgNames)[0],
___experimentalUnsafeOptions_WILL_CHANGE_IN_PATCH: {

@@ -189,0 +212,0 @@ onlyUpdatePeerDependentsWhenOutOfRange: json.___experimentalUnsafeOptions_WILL_CHANGE_IN_PATCH === undefined || json.___experimentalUnsafeOptions_WILL_CHANGE_IN_PATCH.onlyUpdatePeerDependentsWhenOutOfRange === undefined ? false : json.___experimentalUnsafeOptions_WILL_CHANGE_IN_PATCH.onlyUpdatePeerDependentsWhenOutOfRange,

import { Packages } from "@manypkg/get-packages";
import { Config, WrittenConfig } from "@changesets/types";
import { Config, WrittenConfig, Linked } from "@changesets/types";
export declare let defaultWrittenConfig: {

@@ -7,3 +7,3 @@ readonly $schema: string;

readonly commit: false;
readonly linked: readonly (readonly string[])[];
readonly linked: Linked;
readonly access: "restricted";

@@ -10,0 +10,0 @@ readonly baseBranch: "master";

{
"name": "@changesets/config",
"version": "1.3.0",
"version": "1.4.0",
"description": "Utilities for reading and parsing Changeset's config",

@@ -17,7 +17,9 @@ "main": "dist/config.cjs.js",

"@changesets/logger": "^0.0.5",
"@changesets/types": "^3.1.0",
"@changesets/types": "^3.2.0",
"@manypkg/get-packages": "^1.0.1",
"fs-extra": "^7.0.1"
"fs-extra": "^7.0.1",
"micromatch": "^4.0.2"
},
"devDependencies": {
"@types/micromatch": "^4.0.1",
"fixturez": "^1.1.0",

@@ -24,0 +26,0 @@ "jest-in-case": "^1.0.2"

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc