@nordicsemiconductor/pc-nrfconnect-shared 219.0.0 → 220.0.0

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.
Files changed (53) hide show
  1. package/Changelog.md +11 -0
  2. package/README.md +28 -0
  3. package/config/tsconfig.json +0 -2
  4. package/dist/bootstrap.css +1 -1
  5. package/package.json +11 -12
  6. package/release_notes.md +8 -0
  7. package/scripts/check-app-properties.ts +4 -10
  8. package/scripts/check-for-typescript.ts +1 -1
  9. package/scripts/create-source.ts +1 -1
  10. package/scripts/esbuild.ts +1 -1
  11. package/scripts/get-release-numbers.ts +25 -0
  12. package/scripts/installHusky.ts +1 -1
  13. package/scripts/is-releasable.ts +68 -0
  14. package/scripts/latest-changelog-entry.test.ts +80 -0
  15. package/scripts/latest-changelog-entry.ts +25 -0
  16. package/scripts/nordic-publish.js +20 -19
  17. package/scripts/nordic-publish.ts +1 -1
  18. package/scripts/nrfconnect-license.ts +1 -1
  19. package/scripts/postinstall.ts +1 -1
  20. package/scripts/prepare-shared-release.ts +10 -8
  21. package/src/Group/Group.tsx +28 -2
  22. package/src/index.ts +2 -0
  23. package/src/utils/persistentStore.ts +17 -0
  24. package/typings/generated/scripts/check-app-properties.d.ts +1 -1
  25. package/typings/generated/scripts/check-app-properties.d.ts.map +1 -1
  26. package/typings/generated/scripts/check-for-typescript.d.ts +1 -1
  27. package/typings/generated/scripts/create-source.d.ts +1 -1
  28. package/typings/generated/scripts/esbuild.d.ts +1 -1
  29. package/typings/generated/scripts/get-release-numbers.d.ts +6 -0
  30. package/typings/generated/scripts/get-release-numbers.d.ts.map +1 -0
  31. package/typings/generated/scripts/installHusky.d.ts +1 -1
  32. package/typings/generated/scripts/is-releasable.d.ts +3 -0
  33. package/typings/generated/scripts/is-releasable.d.ts.map +1 -0
  34. package/typings/generated/scripts/latest-changelog-entry.d.ts +6 -0
  35. package/typings/generated/scripts/latest-changelog-entry.d.ts.map +1 -0
  36. package/typings/generated/scripts/latest-changelog-entry.test.d.ts +2 -0
  37. package/typings/generated/scripts/latest-changelog-entry.test.d.ts.map +1 -0
  38. package/typings/generated/scripts/nordic-publish.d.ts +1 -1
  39. package/typings/generated/scripts/nrfconnect-license.d.ts +1 -1
  40. package/typings/generated/scripts/postinstall.d.ts +1 -1
  41. package/typings/generated/scripts/prepare-shared-release.d.ts +1 -1
  42. package/typings/generated/src/Group/Group.d.ts +3 -1
  43. package/typings/generated/src/Group/Group.d.ts.map +1 -1
  44. package/typings/generated/src/index.d.ts +1 -1
  45. package/typings/generated/src/index.d.ts.map +1 -1
  46. package/typings/generated/src/utils/persistentStore.d.ts +3 -0
  47. package/typings/generated/src/utils/persistentStore.d.ts.map +1 -1
  48. package/scripts/release-shared.test.ts +0 -132
  49. package/scripts/release-shared.ts +0 -213
  50. package/typings/generated/scripts/release-shared.d.ts +0 -30
  51. package/typings/generated/scripts/release-shared.d.ts.map +0 -1
  52. package/typings/generated/scripts/release-shared.test.d.ts +0 -2
  53. package/typings/generated/scripts/release-shared.test.d.ts.map +0 -1
@@ -1,213 +0,0 @@
1
- #!/usr/bin/env ts-node
2
-
3
- /*
4
- * Copyright (c) 2023 Nordic Semiconductor ASA
5
- *
6
- * SPDX-License-Identifier: LicenseRef-Nordic-4-Clause
7
- */
8
-
9
- /*
10
- A script to release a new version of shared.
11
-
12
- Requirement for this script: Have [the GitHub CLI tool `gh`](https://cli.github.com)
13
- installed and authenticate in it (run `gh auth login`).
14
-
15
- Run
16
- npm run release-shared -- --dry-run
17
- to check whether the script thinks you can release a new version of shared.
18
-
19
- Run
20
- npm run release-shared
21
- to actually do the release.
22
-
23
- This script checks the contents in the branch `origin/main`.
24
- So if locally looks everything fine, please check `origin/main`.
25
- */
26
- import { execSync, spawnSync } from 'node:child_process';
27
-
28
- import { PackageJsonApp } from '../ipc/schema/packageJson';
29
-
30
- const logError = (message: string) => {
31
- console.error(message);
32
- };
33
-
34
- const parseJson = <Result>(jsonString: string) =>
35
- JSON.parse(jsonString) as Result;
36
-
37
- const git = (...commands: string[]) =>
38
- spawnSync('git', commands, {
39
- stdio: ['inherit', 'pipe', 'inherit'],
40
- encoding: 'utf-8',
41
- }).stdout;
42
-
43
- const getLatestReleaseName = () =>
44
- parseJson<{ tagName: string }>(
45
- execSync(`gh release view --json tagName`, { encoding: 'utf-8' })
46
- ).tagName;
47
-
48
- export const getNextReleaseNumber = (
49
- latestReleaseName = getLatestReleaseName(),
50
- { log } = { log: console.log }
51
- ) => {
52
- const latestReleaseNumber = Number(
53
- /^v(?<versionNumber>\d+)$/.exec(latestReleaseName)?.groups
54
- ?.versionNumber
55
- );
56
-
57
- const nextReleaseNumber = latestReleaseNumber + 1;
58
-
59
- log(
60
- `The currently released version is ${latestReleaseNumber}, so the next one will be ${nextReleaseNumber}.\n`
61
- );
62
-
63
- return nextReleaseNumber;
64
- };
65
-
66
- const equality = <T>(
67
- expected: T,
68
- actual: T,
69
- errorMessage: string,
70
- fail: typeof logError
71
- ) => {
72
- if (expected !== actual) {
73
- fail(
74
- `${errorMessage}:\n Expected: ${expected}\n Actual: ${actual}\n`
75
- );
76
- }
77
-
78
- return expected === actual;
79
- };
80
-
81
- const getLatestPackageJson = () => git('show', 'origin/main:package.json');
82
-
83
- export const packageJsonIsCorrect = (
84
- expectedVersionNumber: number,
85
- { fail, packageJson } = {
86
- fail: logError,
87
- packageJson: getLatestPackageJson(),
88
- }
89
- ) => {
90
- const expectedVersionString = `${expectedVersionNumber}.0.0`;
91
- const actualVersionString = parseJson<PackageJsonApp>(packageJson).version;
92
-
93
- return equality(
94
- expectedVersionString,
95
- actualVersionString,
96
- 'Version number in `package.json` is not as expected',
97
- fail
98
- );
99
- };
100
-
101
- const getLatestChangelog = () => git('show', 'origin/main:Changelog.md');
102
-
103
- export const getLatestEntry = (changelog: string) => {
104
- const latestEntry = changelog.split('\n## ')[1];
105
-
106
- const header = latestEntry.split('\n')[0];
107
- const content = latestEntry.replace(/[^\n]*/, '').trim();
108
-
109
- return { header, content };
110
- };
111
-
112
- export const latestEntryIsNotEmpty = ({
113
- fail,
114
- changelog,
115
- }: {
116
- fail: (message: string) => void;
117
- changelog: string;
118
- }) => {
119
- const correct = getLatestEntry(changelog).content.length > 0;
120
-
121
- if (!correct) {
122
- fail('Latest entry in `Changelog.md` does not contain anything.');
123
- }
124
-
125
- return correct;
126
- };
127
-
128
- const withoutTime = (date: Date) => date.toISOString().split('T')[0];
129
-
130
- export const latestHeaderIsCorrect = (
131
- expectedVersionNumber: number,
132
- { fail, now, changelog } = {
133
- fail: logError,
134
- now: new Date(),
135
- changelog: getLatestChangelog(),
136
- }
137
- ) => {
138
- const expectedHeaderline = `${expectedVersionNumber}.0.0 - ${withoutTime(
139
- now
140
- )}`;
141
- const actualHeaderline = getLatestEntry(changelog).header;
142
-
143
- return equality(
144
- expectedHeaderline,
145
- actualHeaderline,
146
- 'Latest entry in `Changelog.md` is not as expected',
147
- fail
148
- );
149
- };
150
-
151
- export const changelogIsCorrect = (
152
- expectedVersionNumber: number,
153
- { fail, now, changelog } = {
154
- fail: logError,
155
- now: new Date(),
156
- changelog: getLatestChangelog(),
157
- }
158
- ) =>
159
- latestEntryIsNotEmpty({ fail, changelog }) &&
160
- latestHeaderIsCorrect(expectedVersionNumber, { fail, now, changelog });
161
-
162
- const doRelease = (nextReleaseNumber: number) => {
163
- const nextReleaseName = `v${nextReleaseNumber}`;
164
- const latestChangelogEntry = getLatestEntry(getLatestChangelog()).content;
165
-
166
- const dryRun = process.argv.includes('--dry-run');
167
- if (dryRun) {
168
- console.log(
169
- `Would create a release ${nextReleaseName} now, with this description:\n${latestChangelogEntry}`
170
- );
171
- } else {
172
- console.log(`Creating release ${nextReleaseName} now:`);
173
- const result = spawnSync(
174
- 'gh',
175
- [
176
- 'release',
177
- 'create',
178
- nextReleaseName,
179
- '--title',
180
- nextReleaseName,
181
- '--notes',
182
- latestChangelogEntry,
183
- '--latest',
184
- ],
185
- {
186
- stdio: 'inherit',
187
- encoding: 'utf-8',
188
- }
189
- );
190
- process.exitCode = result.status ?? 1;
191
- }
192
- };
193
-
194
- const main = () => {
195
- console.log(git('fetch'));
196
- const nextReleaseNumber = getNextReleaseNumber();
197
-
198
- const noErrors =
199
- packageJsonIsCorrect(nextReleaseNumber) &&
200
- changelogIsCorrect(nextReleaseNumber);
201
-
202
- if (noErrors) {
203
- doRelease(nextReleaseNumber);
204
- console.log(
205
- '\nAll done on GitHub. Now go to Azure and create a release there:\nhttps://dev.azure.com/NordicSemiconductor/Wayland/_release?definitionId=33'
206
- );
207
- }
208
- };
209
-
210
- const runAsScript = require.main === module;
211
- if (runAsScript) {
212
- main();
213
- }
@@ -1,30 +0,0 @@
1
- #!/usr/bin/env ts-node
2
- export declare const getNextReleaseNumber: (latestReleaseName?: string, { log }?: {
3
- log: {
4
- (...data: any[]): void;
5
- (message?: any, ...optionalParams: any[]): void;
6
- };
7
- }) => number;
8
- export declare const packageJsonIsCorrect: (expectedVersionNumber: number, { fail, packageJson }?: {
9
- fail: (message: string) => void;
10
- packageJson: string;
11
- }) => boolean;
12
- export declare const getLatestEntry: (changelog: string) => {
13
- header: string;
14
- content: string;
15
- };
16
- export declare const latestEntryIsNotEmpty: ({ fail, changelog, }: {
17
- fail: (message: string) => void;
18
- changelog: string;
19
- }) => boolean;
20
- export declare const latestHeaderIsCorrect: (expectedVersionNumber: number, { fail, now, changelog }?: {
21
- fail: (message: string) => void;
22
- now: Date;
23
- changelog: string;
24
- }) => boolean;
25
- export declare const changelogIsCorrect: (expectedVersionNumber: number, { fail, now, changelog }?: {
26
- fail: (message: string) => void;
27
- now: Date;
28
- changelog: string;
29
- }) => boolean;
30
- //# sourceMappingURL=release-shared.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"release-shared.d.ts","sourceRoot":"","sources":["../../../scripts/release-shared.ts"],"names":[],"mappings":";AA+CA,eAAO,MAAM,oBAAoB;;;;;YAgBhC,CAAC;AAmBF,eAAO,MAAM,oBAAoB,0BACN,MAAM;oBAtDN,MAAM;;aAqEhC,CAAC;AAIF,eAAO,MAAM,cAAc,cAAe,MAAM;;;CAO/C,CAAC;AAEF,eAAO,MAAM,qBAAqB;oBAId,MAAM,KAAK,IAAI;eACpB,MAAM;aASpB,CAAC;AAIF,eAAO,MAAM,qBAAqB,0BACP,MAAM;oBArGN,MAAM;;;aAuHhC,CAAC;AAEF,eAAO,MAAM,kBAAkB,0BACJ,MAAM;oBA1HN,MAAM;;;aAkIyC,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=release-shared.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"release-shared.test.d.ts","sourceRoot":"","sources":["../../../scripts/release-shared.test.ts"],"names":[],"mappings":""}