@sanity/plugin-kit 1.1.0-ecosystem-preset.8 → 1.1.0-ecosystem-preset.9
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/assets/inject/semver-workflow/npmrc +1 -0
- package/lib/package.json +1 -1
- package/lib/src/presets/semver-workflow.d.ts +4 -0
- package/lib/src/presets/semver-workflow.js +36 -11
- package/lib/src/presets/semver-workflow.js.map +1 -1
- package/lib/test/semver-workflow.test.js +35 -0
- package/lib/test/semver-workflow.test.js.map +1 -1
- package/package.json +1 -1
- package/src/presets/semver-workflow.ts +39 -9
|
@@ -0,0 +1 @@
|
|
|
1
|
+
legacy-peer-deps=true
|
package/lib/package.json
CHANGED
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
import { Preset } from './presets';
|
|
2
2
|
import { PackageJson } from '../actions/verify/types';
|
|
3
3
|
export declare const semverWorkflowPreset: Preset;
|
|
4
|
+
/**
|
|
5
|
+
* Returns sections that does not exists "close enough" in readme
|
|
6
|
+
*/
|
|
7
|
+
export declare function missingSections(readme: string, sections: string[]): string[];
|
|
4
8
|
export declare function readmeBaseurl(pkg: PackageJson): string;
|
|
@@ -12,7 +12,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
12
12
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
13
|
};
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.readmeBaseurl = exports.semverWorkflowPreset = void 0;
|
|
15
|
+
exports.readmeBaseurl = exports.missingSections = exports.semverWorkflowPreset = void 0;
|
|
16
16
|
const inject_1 = require("../actions/inject");
|
|
17
17
|
const resolveLatestVersions_1 = require("../npm/resolveLatestVersions");
|
|
18
18
|
const package_1 = require("../npm/package");
|
|
@@ -69,10 +69,16 @@ function updateReadme(options) {
|
|
|
69
69
|
const { basePath } = options;
|
|
70
70
|
const readmePath = path_1.default.join(basePath, 'README.md');
|
|
71
71
|
const readme = (_a = (yield (0, files_1.readFile)(readmePath, 'utf8').catch(errorToUndefined_1.errorToUndefined))) !== null && _a !== void 0 ? _a : '';
|
|
72
|
-
const { v3Banner,
|
|
73
|
-
const
|
|
74
|
-
|
|
75
|
-
|
|
72
|
+
const { v3Banner, install, usage, developFooter } = yield readmeSnippets(options);
|
|
73
|
+
const prependSections = missingSections(readme, [v3Banner, install, usage]);
|
|
74
|
+
const appendSections = missingSections(readme, [developFooter]);
|
|
75
|
+
if (prependSections.length || appendSections.length) {
|
|
76
|
+
const updatedReadme = [...prependSections, readme, ...appendSections]
|
|
77
|
+
.filter(Boolean)
|
|
78
|
+
.join('\n\n');
|
|
79
|
+
yield (0, files_1.writeFile)(readmePath, updatedReadme, { encoding: 'utf8' });
|
|
80
|
+
log_1.default.info('Updated README. Please review the changes.');
|
|
81
|
+
}
|
|
76
82
|
});
|
|
77
83
|
}
|
|
78
84
|
function readmeSnippets(options) {
|
|
@@ -86,7 +92,7 @@ function readmeSnippets(options) {
|
|
|
86
92
|
>
|
|
87
93
|
> For the v2 version, please refer to the [v2-branch](${bestEffortUrl}).
|
|
88
94
|
`;
|
|
89
|
-
const
|
|
95
|
+
const install = (0, outdent_1.default) `
|
|
90
96
|
## Installation
|
|
91
97
|
|
|
92
98
|
\`\`\`
|
|
@@ -98,10 +104,9 @@ function readmeSnippets(options) {
|
|
|
98
104
|
\`\`\`
|
|
99
105
|
yarn add ${pkg.name}@studio-v3
|
|
100
106
|
\`\`\`
|
|
101
|
-
|
|
107
|
+
`;
|
|
108
|
+
const usage = (0, outdent_1.default) `
|
|
102
109
|
## Usage
|
|
103
|
-
|
|
104
|
-
<TODO: Show usage here>
|
|
105
110
|
`;
|
|
106
111
|
const developFooter = (0, outdent_1.default) `
|
|
107
112
|
## License
|
|
@@ -125,18 +130,38 @@ function readmeSnippets(options) {
|
|
|
125
130
|
`;
|
|
126
131
|
return {
|
|
127
132
|
v3Banner,
|
|
128
|
-
|
|
133
|
+
install,
|
|
134
|
+
usage,
|
|
129
135
|
developFooter,
|
|
130
136
|
};
|
|
131
137
|
});
|
|
132
138
|
}
|
|
139
|
+
/**
|
|
140
|
+
* Returns sections that does not exists "close enough" in readme
|
|
141
|
+
*/
|
|
142
|
+
function missingSections(readme, sections) {
|
|
143
|
+
return sections.filter((section) => !closeEnough(section, readme));
|
|
144
|
+
}
|
|
145
|
+
exports.missingSections = missingSections;
|
|
146
|
+
/**
|
|
147
|
+
* a and b are considered "close enough" if > 50% of a lines exist in b lines
|
|
148
|
+
* @param a
|
|
149
|
+
* @param b
|
|
150
|
+
*/
|
|
151
|
+
function closeEnough(a, b) {
|
|
152
|
+
const aLines = a.split('\n');
|
|
153
|
+
const bLines = b.split('\n');
|
|
154
|
+
const matchingLines = aLines.filter((line) => bLines.find((bLine) => bLine === line)).length;
|
|
155
|
+
const isCloseEnough = matchingLines > aLines.length * 0.5;
|
|
156
|
+
return isCloseEnough;
|
|
157
|
+
}
|
|
133
158
|
function semverWorkflowFiles() {
|
|
134
159
|
return [
|
|
135
160
|
{ from: ['.github', 'workflows', 'main.yml'], to: ['.github', 'workflows', 'main.yml'] },
|
|
136
161
|
{ from: ['.husky', 'commit-msg'], to: ['.husky', 'commit-msg'] },
|
|
137
162
|
{ from: ['.husky', 'pre-commit'], to: ['.husky', 'pre-commit'] },
|
|
138
163
|
{ from: ['.releaserc.json'], to: '.releaserc.json' },
|
|
139
|
-
{ from: ['
|
|
164
|
+
{ from: ['npmrc'], to: '.npmrc' },
|
|
140
165
|
{ from: ['commitlint.template.js'], to: 'commitlint.config.js' },
|
|
141
166
|
{ from: ['lint-staged.template.js'], to: 'lint-staged.config.js' },
|
|
142
167
|
].map((fromTo) => (Object.assign(Object.assign({}, fromTo), { from: ['semver-workflow', ...fromTo.from] })));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"semver-workflow.js","sourceRoot":"","sources":["../../../src/presets/semver-workflow.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,8CAAoE;AACpE,wEAAkE;AAElE,4CAMuB;AACvB,sDAA6B;AAC7B,sDAA6B;AAC7B,kDAAyB;AACzB,gDAAuB;AACvB,yCAAiD;AACjD,+DAAyD;AAG5C,QAAA,oBAAoB,GAAW;IAC1C,IAAI,EAAE,iBAAiB;IACvB,WAAW,EACT,wFAAwF;IAC1F,KAAK,EAAE,WAAW;CACnB,CAAA;AAED,MAAM,IAAI,GAAG,CAAC,KAAc,EAAE,GAAW,EAAE,GAAG,IAAc,EAAE,EAAE,CAAC,KAAK,IAAI,aAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAA;AAEhG,SAAe,WAAW,CAAC,OAAsB;;QAC/C,MAAM,IAAA,oBAAW,EAAC,mBAAmB,EAAE,EAAE,OAAO,CAAC,CAAA;QACjD,MAAM,gBAAgB,CAAC,OAAO,CAAC,CAAA;QAC/B,MAAM,kBAAkB,CAAC,OAAO,CAAC,CAAA;QACjC,MAAM,YAAY,CAAC,OAAO,CAAC,CAAA;IAC7B,CAAC;CAAA;AAED,SAAe,gBAAgB,CAAC,OAAsB;;QACpD,MAAM,GAAG,GAAG,MAAM,IAAA,oBAAU,EAAC,OAAO,CAAC,CAAA;QACrC,MAAM,QAAQ,GAAG,MAAM,IAAA,+BAAqB,EAAC,GAAG,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE;YACrE,OAAO,CAAC,OAAO,GAAG,IAAA,mBAAS,EAAC,eAAe,EAAE,OAAO,CAAC,OAAO,CAAC,CAAA;YAC7D,OAAO,OAAO,CAAA;QAChB,CAAC,CAAC,CAAA;QACF,IAAI,CAAC,QAAQ,EAAE,sCAAsC,CAAC,CAAA;IACxD,CAAC;CAAA;AAED,SAAe,kBAAkB,CAAC,OAAsB;;QACtD,MAAM,GAAG,GAAG,MAAM,IAAA,oBAAU,EAAC,OAAO,CAAC,CAAA;QACrC,MAAM,OAAO,GAAG,IAAA,kBAAQ,kCACnB,GAAG,CAAC,eAAe,GACnB,CAAC,MAAM,0BAA0B,EAAE,CAAC,EACvC,CAAA;QACF,MAAM,MAAM,qBAAO,GAAG,CAAC,CAAA;QACvB,MAAM,CAAC,eAAe,GAAG,OAAO,CAAA;QAChC,MAAM,IAAA,gCAAsB,EAAC,MAAM,EAAE,OAAO,CAAC,CAAA;QAC7C,aAAG,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAA;QAEpC,aAAG,CAAC,IAAI,CACN,eAAK,CAAC,KAAK,CACT,IAAA,iBAAO,EAAA;;;;;;GAMV,CAAC,IAAI,EAAE,CACL,CACF,CAAA;IACH,CAAC;CAAA;AAED,SAAe,YAAY,CAAC,OAAsB;;;QAChD,MAAM,EAAC,QAAQ,EAAC,GAAG,OAAO,CAAA;QAE1B,MAAM,UAAU,GAAG,cAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAA;QACnD,MAAM,MAAM,GAAG,MAAA,CAAC,MAAM,IAAA,gBAAQ,EAAC,UAAU,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,mCAAgB,CAAC,CAAC,mCAAI,EAAE,CAAA;QAEjF,MAAM,EAAC,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"semver-workflow.js","sourceRoot":"","sources":["../../../src/presets/semver-workflow.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,6 +14,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
const tap_1 = __importDefault(require("tap"));
|
|
16
16
|
const semver_workflow_1 = require("../src/presets/semver-workflow");
|
|
17
|
+
const outdent_1 = __importDefault(require("outdent"));
|
|
17
18
|
tap_1.default.test('readmeBaseUrl', (t) => __awaiter(void 0, void 0, void 0, function* () {
|
|
18
19
|
const testCases = [
|
|
19
20
|
{
|
|
@@ -39,4 +40,38 @@ tap_1.default.test('readmeBaseUrl', (t) => __awaiter(void 0, void 0, void 0, fun
|
|
|
39
40
|
];
|
|
40
41
|
testCases.forEach(({ pkg, expectedUrl }) => t.equal((0, semver_workflow_1.readmeBaseurl)(pkg), expectedUrl));
|
|
41
42
|
}));
|
|
43
|
+
tap_1.default.test('missingSections', (t) => __awaiter(void 0, void 0, void 0, function* () {
|
|
44
|
+
const exactMatch = (0, outdent_1.default) `
|
|
45
|
+
This a
|
|
46
|
+
matches b
|
|
47
|
+
exactly c
|
|
48
|
+
`;
|
|
49
|
+
const over50PercentMatch = (0, outdent_1.default) `
|
|
50
|
+
This x
|
|
51
|
+
matches y
|
|
52
|
+
enough z
|
|
53
|
+
`;
|
|
54
|
+
const only50PercentMatch = (0, outdent_1.default) `
|
|
55
|
+
This
|
|
56
|
+
does
|
|
57
|
+
not
|
|
58
|
+
match
|
|
59
|
+
`;
|
|
60
|
+
const sections = [exactMatch, over50PercentMatch, only50PercentMatch];
|
|
61
|
+
const readme = (0, outdent_1.default) `
|
|
62
|
+
This a
|
|
63
|
+
matches b
|
|
64
|
+
exactly c
|
|
65
|
+
|
|
66
|
+
This x
|
|
67
|
+
matches y
|
|
68
|
+
enough zzzzzz
|
|
69
|
+
|
|
70
|
+
This
|
|
71
|
+
does
|
|
72
|
+
miss
|
|
73
|
+
`;
|
|
74
|
+
const missing = (0, semver_workflow_1.missingSections)(readme, sections);
|
|
75
|
+
t.same(missing, [only50PercentMatch]);
|
|
76
|
+
}));
|
|
42
77
|
//# sourceMappingURL=semver-workflow.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"semver-workflow.test.js","sourceRoot":"","sources":["../../test/semver-workflow.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,8CAAqB;AACrB,
|
|
1
|
+
{"version":3,"file":"semver-workflow.test.js","sourceRoot":"","sources":["../../test/semver-workflow.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,8CAAqB;AACrB,oEAA6E;AAE7E,sDAA6B;AAE7B,aAAG,CAAC,IAAI,CAAC,eAAe,EAAE,CAAO,CAAC,EAAE,EAAE;IACpC,MAAM,SAAS,GAA8C;QAC3D;YACE,GAAG,EAAE,EAAC,UAAU,EAAE,EAAC,GAAG,EAAE,6CAA6C,EAAC,EAAC;YACvE,WAAW,EAAE,qCAAqC;SACnD;QACD;YACE,GAAG,EAAE,EAAC,UAAU,EAAE,EAAC,GAAG,EAAE,mDAAmD,EAAC,EAAC;YAC7E,WAAW,EAAE,yCAAyC;SACvD;QACD;YACE,GAAG,EAAE,EAAC,UAAU,EAAE,EAAC,GAAG,EAAE,uDAAuD,EAAC,EAAC;YACjF,WAAW,EAAE,uDAAuD;SACrE;QACD;YACE,GAAG,EAAE,EAAC,UAAU,EAAE,EAAC,GAAG,EAAE,oDAAoD,EAAC,EAAC;YAC9E,WAAW,EAAE,4CAA4C;SAC1D;QACD;YACE,GAAG,EAAE,EAAC,QAAQ,EAAE,wDAAwD,EAAC;YACzE,WAAW,EAAE,iDAAiD;SAC/D;KACF,CAAA;IAED,SAAS,CAAC,OAAO,CAAC,CAAC,EAAC,GAAG,EAAE,WAAW,EAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAA,+BAAa,EAAC,GAAG,CAAC,EAAE,WAAW,CAAC,CAAC,CAAA;AACrF,CAAC,CAAA,CAAC,CAAA;AAEF,aAAG,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAO,CAAC,EAAE,EAAE;IACtC,MAAM,UAAU,GAAG,IAAA,iBAAO,EAAA;;;;CAI3B,CAAA;IACC,MAAM,kBAAkB,GAAG,IAAA,iBAAO,EAAA;;;;CAInC,CAAA;IACC,MAAM,kBAAkB,GAAG,IAAA,iBAAO,EAAA;;;;;CAKnC,CAAA;IACC,MAAM,QAAQ,GAAG,CAAC,UAAU,EAAE,kBAAkB,EAAE,kBAAkB,CAAC,CAAA;IAErE,MAAM,MAAM,GAAG,IAAA,iBAAO,EAAA;;;;;;;;;;;;GAYrB,CAAA;IAED,MAAM,OAAO,GAAG,IAAA,iCAAe,EAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IACjD,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAA;AACvC,CAAC,CAAA,CAAC,CAAA"}
|
package/package.json
CHANGED
|
@@ -71,10 +71,18 @@ async function updateReadme(options: InjectOptions) {
|
|
|
71
71
|
const readmePath = path.join(basePath, 'README.md')
|
|
72
72
|
const readme = (await readFile(readmePath, 'utf8').catch(errorToUndefined)) ?? ''
|
|
73
73
|
|
|
74
|
-
const {v3Banner,
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
74
|
+
const {v3Banner, install, usage, developFooter} = await readmeSnippets(options)
|
|
75
|
+
|
|
76
|
+
const prependSections = missingSections(readme, [v3Banner, install, usage])
|
|
77
|
+
const appendSections = missingSections(readme, [developFooter])
|
|
78
|
+
|
|
79
|
+
if (prependSections.length || appendSections.length) {
|
|
80
|
+
const updatedReadme = [...prependSections, readme, ...appendSections]
|
|
81
|
+
.filter(Boolean)
|
|
82
|
+
.join('\n\n')
|
|
83
|
+
await writeFile(readmePath, updatedReadme, {encoding: 'utf8'})
|
|
84
|
+
log.info('Updated README. Please review the changes.')
|
|
85
|
+
}
|
|
78
86
|
}
|
|
79
87
|
|
|
80
88
|
async function readmeSnippets(options: InjectOptions) {
|
|
@@ -90,7 +98,7 @@ async function readmeSnippets(options: InjectOptions) {
|
|
|
90
98
|
> For the v2 version, please refer to the [v2-branch](${bestEffortUrl}).
|
|
91
99
|
`
|
|
92
100
|
|
|
93
|
-
const
|
|
101
|
+
const install = outdent`
|
|
94
102
|
## Installation
|
|
95
103
|
|
|
96
104
|
\`\`\`
|
|
@@ -102,10 +110,10 @@ async function readmeSnippets(options: InjectOptions) {
|
|
|
102
110
|
\`\`\`
|
|
103
111
|
yarn add ${pkg.name}@studio-v3
|
|
104
112
|
\`\`\`
|
|
113
|
+
`
|
|
105
114
|
|
|
115
|
+
const usage = outdent`
|
|
106
116
|
## Usage
|
|
107
|
-
|
|
108
|
-
<TODO: Show usage here>
|
|
109
117
|
`
|
|
110
118
|
|
|
111
119
|
const developFooter = outdent`
|
|
@@ -131,18 +139,40 @@ async function readmeSnippets(options: InjectOptions) {
|
|
|
131
139
|
|
|
132
140
|
return {
|
|
133
141
|
v3Banner,
|
|
134
|
-
|
|
142
|
+
install,
|
|
143
|
+
usage,
|
|
135
144
|
developFooter,
|
|
136
145
|
}
|
|
137
146
|
}
|
|
138
147
|
|
|
148
|
+
/**
|
|
149
|
+
* Returns sections that does not exists "close enough" in readme
|
|
150
|
+
*/
|
|
151
|
+
export function missingSections(readme: string, sections: string[]) {
|
|
152
|
+
return sections.filter((section) => !closeEnough(section, readme))
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
/**
|
|
156
|
+
* a and b are considered "close enough" if > 50% of a lines exist in b lines
|
|
157
|
+
* @param a
|
|
158
|
+
* @param b
|
|
159
|
+
*/
|
|
160
|
+
function closeEnough(a: string, b: string) {
|
|
161
|
+
const aLines = a.split('\n')
|
|
162
|
+
const bLines = b.split('\n')
|
|
163
|
+
|
|
164
|
+
const matchingLines = aLines.filter((line) => bLines.find((bLine) => bLine === line)).length
|
|
165
|
+
const isCloseEnough = matchingLines > aLines.length * 0.5
|
|
166
|
+
return isCloseEnough
|
|
167
|
+
}
|
|
168
|
+
|
|
139
169
|
function semverWorkflowFiles(): FromTo[] {
|
|
140
170
|
return [
|
|
141
171
|
{from: ['.github', 'workflows', 'main.yml'], to: ['.github', 'workflows', 'main.yml']},
|
|
142
172
|
{from: ['.husky', 'commit-msg'], to: ['.husky', 'commit-msg']},
|
|
143
173
|
{from: ['.husky', 'pre-commit'], to: ['.husky', 'pre-commit']},
|
|
144
174
|
{from: ['.releaserc.json'], to: '.releaserc.json'},
|
|
145
|
-
{from: ['
|
|
175
|
+
{from: ['npmrc'], to: '.npmrc'},
|
|
146
176
|
{from: ['commitlint.template.js'], to: 'commitlint.config.js'},
|
|
147
177
|
{from: ['lint-staged.template.js'], to: 'lint-staged.config.js'},
|
|
148
178
|
].map((fromTo) => ({
|