blacksmith-organization-system 1.1.0 → 1.2.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.
- package/README.md +11 -0
- package/dist/bridges/git.d.ts +1 -0
- package/dist/bridges/git.js +10 -0
- package/dist/bridges/git.js.map +1 -1
- package/dist/main.d.ts +5 -1
- package/dist/main.js +16 -2
- package/dist/main.js.map +1 -1
- package/dist/models/_index.d.ts +2 -0
- package/dist/models/_index.js +2 -0
- package/dist/models/_index.js.map +1 -1
- package/dist/models/authors/entry.d.ts +20 -0
- package/dist/models/authors/entry.js +73 -0
- package/dist/models/authors/entry.js.map +1 -0
- package/dist/models/authors/file.d.ts +9 -0
- package/dist/models/authors/file.js +19 -0
- package/dist/models/authors/file.js.map +1 -0
- package/dist/procedures/_index.d.ts +1 -0
- package/dist/procedures/_index.js +1 -0
- package/dist/procedures/_index.js.map +1 -1
- package/dist/procedures/crediting/_index.d.ts +4 -0
- package/dist/procedures/crediting/_index.js +9 -0
- package/dist/procedures/crediting/_index.js.map +1 -0
- package/dist/procedures/crediting/context.d.ts +17 -0
- package/dist/procedures/crediting/context.js +4 -0
- package/dist/procedures/crediting/context.js.map +1 -0
- package/dist/procedures/crediting/steps.d.ts +4 -0
- package/dist/procedures/crediting/steps.js +51 -0
- package/dist/procedures/crediting/steps.js.map +1 -0
- package/dist/tools/_index.js +9 -1
- package/dist/tools/_index.js.map +1 -1
- package/dist/tools/project.d.ts +1 -0
- package/dist/tools/project.js +18 -0
- package/dist/tools/project.js.map +1 -0
- package/dist/views/project.d.ts +2 -0
- package/dist/views/project.js +11 -0
- package/dist/views/project.js.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -9,6 +9,17 @@
|
|
|
9
9
|
▄█ ░█░ ▄█ ░█░ ██▄ █░▀░█
|
|
10
10
|
```
|
|
11
11
|
> ###### [Sett Sarverott](https://github.com/Sarverott) @ 2019-2026
|
|
12
|
+
|
|
13
|
+
[](https://github.com/Sarverott/blacksmith-organization-system/actions/workflows/loop-master-release-and-publish.yml?query=branch%3Amaster)
|
|
14
|
+
[](https://github.com/Sarverott/blacksmith-organization-system/actions/workflows/loop-revision-bump-checks-pull-request.yml?query=branch%3Arevision)
|
|
15
|
+
[](https://github.com/Sarverott/blacksmith-organization-system/actions/workflows/checks-on-push-changed-parts.yml?query=branch%3Adevelopment)
|
|
16
|
+
[](https://github.com/Sarverott/blacksmith-organization-system/releases)
|
|
17
|
+
[](https://www.npmjs.com/package/blacksmith-organization-system?activeTab=versions)
|
|
18
|
+
[](https://nodejs.org/)
|
|
19
|
+
[](https://blacksmith-organization-system.readthedocs.io/)
|
|
20
|
+
[](https://github.com/Sarverott/blacksmith-organization-system/wiki)
|
|
21
|
+
[](https://github.com/Sarverott/blacksmith-organization-system/blob/master/LICENSE)
|
|
22
|
+
|
|
12
23
|
---
|
|
13
24
|
|
|
14
25
|
# The core of the Blacksmith Organization System
|
package/dist/bridges/git.d.ts
CHANGED
package/dist/bridges/git.js
CHANGED
|
@@ -16,5 +16,15 @@ export class Git {
|
|
|
16
16
|
tagExists(tag) {
|
|
17
17
|
return this.git(["tag", "--list", tag]) === tag;
|
|
18
18
|
}
|
|
19
|
+
// everyone in the history of HEAD, oldest first: author, committer and each
|
|
20
|
+
// Co-authored-by trailer, as "Name <email>" lines (repeated; the caller dedupes)
|
|
21
|
+
identities() {
|
|
22
|
+
const format = "%an <%ae>%n%cn <%ce>%n%(trailers:key=Co-authored-by,valueonly,separator=%x0A)";
|
|
23
|
+
const { status, stdout } = this.host.run("git", ["log", "--reverse", `--format=${format}`], { cwd: this.cwd });
|
|
24
|
+
// a repository without commits has nobody yet
|
|
25
|
+
if (status !== 0)
|
|
26
|
+
return [];
|
|
27
|
+
return stdout.split("\n").filter((line) => line.trim());
|
|
28
|
+
}
|
|
19
29
|
}
|
|
20
30
|
//# sourceMappingURL=git.js.map
|
package/dist/bridges/git.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/bridges/git.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,GAAG;IACL,IAAI,CAAO;IACpB,kCAAkC;IACzB,GAAG,CAAS;IAErB,YAAY,IAAU,EAAE,GAAW;QACjC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAED,GAAG,CAAC,IAAc;QAChB,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QACjF,IAAI,MAAM,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,IAAI,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACrG,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC;IACvB,CAAC;IAED,8DAA8D;IAC9D,SAAS,CAAC,GAAW;QACnB,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC;IAClD,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/bridges/git.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,GAAG;IACL,IAAI,CAAO;IACpB,kCAAkC;IACzB,GAAG,CAAS;IAErB,YAAY,IAAU,EAAE,GAAW;QACjC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAED,GAAG,CAAC,IAAc;QAChB,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QACjF,IAAI,MAAM,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,IAAI,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACrG,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC;IACvB,CAAC;IAED,8DAA8D;IAC9D,SAAS,CAAC,GAAW;QACnB,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC;IAClD,CAAC;IAED,4EAA4E;IAC5E,iFAAiF;IACjF,UAAU;QACR,MAAM,MAAM,GAAG,+EAA+E,CAAC;QAC/F,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,YAAY,MAAM,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QAC/G,8CAA8C;QAC9C,IAAI,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAC5B,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAC1D,CAAC;CACF"}
|
package/dist/main.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Host } from "./core/host.ts";
|
|
2
2
|
import type { LoopEvent } from "./core/version.ts";
|
|
3
3
|
import { type Loop, type Project, type Settings, type VersioningData, Workshop } from "./models/_index.ts";
|
|
4
|
-
import { type BootstrapContext, type BumpOutcome, type FlowOutcome, type VersionContext, type WorkshopEvent, type WorkshopReport } from "./procedures/_index.ts";
|
|
4
|
+
import { type BootstrapContext, type BumpOutcome, type CreditOutcome, type FlowOutcome, type VersionContext, type WorkshopEvent, type WorkshopReport } from "./procedures/_index.ts";
|
|
5
5
|
export type BOSOptions = {
|
|
6
6
|
workshop?: string;
|
|
7
7
|
};
|
|
@@ -39,6 +39,10 @@ export declare class BOS {
|
|
|
39
39
|
dir?: string;
|
|
40
40
|
dryRun?: boolean;
|
|
41
41
|
}): Promise<BumpOutcome>;
|
|
42
|
+
authors({ dir, dryRun }?: {
|
|
43
|
+
dir?: string;
|
|
44
|
+
dryRun?: boolean;
|
|
45
|
+
}): Promise<CreditOutcome>;
|
|
42
46
|
propose(branch: string, { dir, dryRun }?: {
|
|
43
47
|
dir?: string;
|
|
44
48
|
dryRun?: boolean;
|
package/dist/main.js
CHANGED
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
import { Git } from "./bridges/git.js";
|
|
6
6
|
import { GitHub } from "./bridges/github.js";
|
|
7
7
|
import { createContext } from "./core/context.js";
|
|
8
|
-
import { loopOfSettings, projectAround, settingsOf, versioningOf, Workshop, } from "./models/_index.js";
|
|
9
|
-
import { automerging, bootstrapping, bumping, emptyReport, inspecting, proposing, unbumped, undecided, versioning, watching, } from "./procedures/_index.js";
|
|
8
|
+
import { authorsFile, loopOfSettings, projectAround, settingsOf, versioningOf, Workshop, } from "./models/_index.js";
|
|
9
|
+
import { automerging, bootstrapping, bumping, crediting, emptyReport, inspecting, proposing, unbumped, uncredited, undecided, versioning, watching, } from "./procedures/_index.js";
|
|
10
10
|
export class BOS {
|
|
11
11
|
host;
|
|
12
12
|
options;
|
|
@@ -64,6 +64,20 @@ export class BOS {
|
|
|
64
64
|
};
|
|
65
65
|
return (await bumping.run(context)).outcome;
|
|
66
66
|
}
|
|
67
|
+
// name everyone of the project's commits in its .github/AUTHORS
|
|
68
|
+
async authors({ dir, dryRun = false } = {}) {
|
|
69
|
+
const { project } = this.loop(dir);
|
|
70
|
+
const file = authorsFile(project.path);
|
|
71
|
+
const context = {
|
|
72
|
+
...createContext(this.host, { dryRun }),
|
|
73
|
+
file,
|
|
74
|
+
git: new Git(this.host, project.path),
|
|
75
|
+
lines: [],
|
|
76
|
+
identities: [],
|
|
77
|
+
outcome: uncredited(file),
|
|
78
|
+
};
|
|
79
|
+
return (await crediting.run(context)).outcome;
|
|
80
|
+
}
|
|
67
81
|
// open the pull request of a branch's forward step on GitHub
|
|
68
82
|
async propose(branch, { dir, dryRun = false } = {}) {
|
|
69
83
|
const { project, loop } = this.loop(dir);
|
package/dist/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,kFAAkF;AAClF,yBAAyB;AACzB,8EAA8E;AAC9E,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGlD,OAAO,
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,kFAAkF;AAClF,yBAAyB;AACzB,8EAA8E;AAC9E,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGlD,OAAO,EACL,WAAW,EAEX,cAAc,EAEd,aAAa,EAEb,UAAU,EAEV,YAAY,EACZ,QAAQ,GACT,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,WAAW,EAGX,aAAa,EACb,OAAO,EAEP,SAAS,EACT,WAAW,EAEX,UAAU,EACV,SAAS,EACT,QAAQ,EACR,UAAU,EACV,SAAS,EAET,UAAU,EAGV,QAAQ,GACT,MAAM,wBAAwB,CAAC;AAWhC,MAAM,OAAO,GAAG;IACL,IAAI,CAAO;IACX,OAAO,CAAa;IAC7B,SAAS,GAAoB,IAAI,CAAC;IAElC,YAAY,IAAU,EAAE,UAAsB,EAAE;QAC9C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,qGAAqG;IACrG,sDAAsD;IACtD,IAAI,QAAQ;QACV,IAAI,CAAC,SAAS,KAAK,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACrE,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,6EAA6E;IAC7E,KAAK,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,KAAK,EAAE,GAAG,EAAE;QACrC,OAAO,aAAa,CAAC,GAAG,CAAC,EAAE,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;IACjG,CAAC;IAED,4EAA4E;IAC5E,KAAK,CAAC,OAAO;QACX,MAAM,OAAO,GAAG,EAAE,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7G,OAAO,CAAC,MAAM,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;IAChD,CAAC;IAED,qEAAqE;IACrE,KAAK,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,KAAK,EAAE,OAAO,GAAG,GAAG,EAAgB;QAC1E,MAAM,QAAQ,CAAC,GAAG,CAAC,EAAE,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;IACjH,CAAC;IAED,kDAAkD;IAClD,KAAK,CAAC,SAAS,CAAC,IAAY,EAAE,KAAgB,EAAE,EAAE,MAAM,GAAG,KAAK,EAAE,GAAG,EAAE;QACrE,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC9C,OAAO,UAAU,CAAC,GAAG,CAAC,EAAE,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IAC5G,CAAC;IAED,4FAA4F;IAC5F,QAAQ,CAAC,GAAY;QACnB,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC9C,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QACrD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,cAAc,CAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC;IACnG,CAAC;IAED,2CAA2C;IAC3C,IAAI,CAAC,GAAY;QACf,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC7C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED,2FAA2F;IAC3F,KAAK,CAAC,IAAI,CAAC,OAAe,EAAE,EAAE,GAAG,EAAE,MAAM,GAAG,KAAK,KAAyC,EAAE;QAC1F,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACnD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QAC7C,MAAM,OAAO,GAAG;YACd,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC;YACvC,WAAW,EAAE,OAAO,CAAC,IAAI;YACzB,OAAO;YACP,UAAU;YACV,GAAG;YACH,OAAO,EAAE,QAAQ,EAAE;SACpB,CAAC;QACF,OAAO,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;IAC9C,CAAC;IAED,gEAAgE;IAChE,KAAK,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,KAAK,KAAyC,EAAE;QAC5E,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACnC,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACvC,MAAM,OAAO,GAAG;YACd,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC;YACvC,IAAI;YACJ,GAAG,EAAE,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC;YACrC,KAAK,EAAE,EAAE;YACT,UAAU,EAAE,EAAE;YACd,OAAO,EAAE,UAAU,CAAC,IAAI,CAAC;SAC1B,CAAC;QACF,OAAO,CAAC,MAAM,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;IAChD,CAAC;IAED,6DAA6D;IAC7D,KAAK,CAAC,OAAO,CACX,MAAc,EACd,EAAE,GAAG,EAAE,MAAM,GAAG,KAAK,KAAyC,EAAE;QAEhE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACzC,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QACnD,MAAM,OAAO,GAAG,EAAE,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,CAAC;QACxG,OAAO,CAAC,MAAM,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;IAChD,CAAC;IAED,oDAAoD;IACpD,KAAK,CAAC,SAAS,CACb,MAAc,EACd,EAAE,GAAG,EAAE,MAAM,GAAG,KAAK,KAAyC,EAAE;QAEhE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACzC,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QACnD,MAAM,OAAO,GAAG,EAAE,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,CAAC;QACxG,OAAO,CAAC,MAAM,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;IAClD,CAAC;IAED,QAAQ;QACN,OAAO,qCAAqC,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC;IACrE,CAAC;CACF"}
|
package/dist/models/_index.d.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
export { Archive } from "./archive/class.ts";
|
|
2
|
+
export { type AuthorEntry, type AuthorKind, completed, entryOf, formatEntry, type Identity, kindOf, names, parseEntry, parseIdentity, } from "./authors/entry.ts";
|
|
3
|
+
export { type AuthorsLine, authorsFile, authorsText, readAuthors } from "./authors/file.ts";
|
|
2
4
|
export { Craftbook, Scrapnotes } from "./craftbook/class.ts";
|
|
3
5
|
export { Devarmory } from "./devarmory/class.ts";
|
|
4
6
|
export { DEVLOG_FILES, Devlog, type Phase } from "./devlog/class.ts";
|
package/dist/models/_index.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
// Every model of the workshop, one directory each (glossary as classes).
|
|
2
2
|
export { Archive } from "./archive/class.js";
|
|
3
|
+
export { completed, entryOf, formatEntry, kindOf, names, parseEntry, parseIdentity, } from "./authors/entry.js";
|
|
4
|
+
export { authorsFile, authorsText, readAuthors } from "./authors/file.js";
|
|
3
5
|
export { Craftbook, Scrapnotes } from "./craftbook/class.js";
|
|
4
6
|
export { Devarmory } from "./devarmory/class.js";
|
|
5
7
|
export { DEVLOG_FILES, Devlog } from "./devlog/class.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_index.js","sourceRoot":"","sources":["../../src/models/_index.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,EAAc,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,IAAI,EAAiB,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAiB,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAsB,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,KAAK,EAAa,kBAAkB,EAA0C,MAAM,oBAAoB,CAAC;AAClH,OAAO,EAAiB,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC3F,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACjF,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EACL,oBAAoB,EAEpB,cAAc,EAEd,OAAO,EACP,gBAAgB,EAChB,YAAY,GACb,MAAM,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"_index.js","sourceRoot":"","sources":["../../src/models/_index.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAGL,SAAS,EACT,OAAO,EACP,WAAW,EAEX,MAAM,EACN,KAAK,EACL,UAAU,EACV,aAAa,GACd,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAoB,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC5F,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,EAAc,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,IAAI,EAAiB,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAiB,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAsB,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,KAAK,EAAa,kBAAkB,EAA0C,MAAM,oBAAoB,CAAC;AAClH,OAAO,EAAiB,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC3F,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACjF,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EACL,oBAAoB,EAEpB,cAAc,EAEd,OAAO,EACP,gBAAgB,EAChB,YAAY,GACb,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export type AuthorEntry = {
|
|
2
|
+
nickname: string | null;
|
|
3
|
+
identity: string | null;
|
|
4
|
+
email: string | null;
|
|
5
|
+
url: string | null;
|
|
6
|
+
signs: string[];
|
|
7
|
+
};
|
|
8
|
+
export type AuthorKind = "full" | "verified" | "mentioned";
|
|
9
|
+
export type Identity = {
|
|
10
|
+
name: string;
|
|
11
|
+
email: string;
|
|
12
|
+
};
|
|
13
|
+
export declare function parseEntry(line: string): AuthorEntry | null;
|
|
14
|
+
export declare function formatEntry(entry: AuthorEntry): string;
|
|
15
|
+
export declare function kindOf(entry: AuthorEntry): AuthorKind;
|
|
16
|
+
export declare function names(entry: AuthorEntry, { name, email }: Identity): boolean;
|
|
17
|
+
export declare function nicknameOf(name: string): string;
|
|
18
|
+
export declare function entryOf({ name, email }: Identity): AuthorEntry;
|
|
19
|
+
export declare function completed(entry: AuthorEntry, { name, email }: Identity): AuthorEntry | null;
|
|
20
|
+
export declare function parseIdentity(text: string): Identity | null;
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
const TOKEN = /"([^"]*)"|<([^>]*)>|\(([^)]*)\)|\[([^\]]*)\]|(\S+)/g;
|
|
2
|
+
// null for a blank line or a # comment
|
|
3
|
+
export function parseEntry(line) {
|
|
4
|
+
const text = line.trim();
|
|
5
|
+
if (!text || text.startsWith("#"))
|
|
6
|
+
return null;
|
|
7
|
+
const entry = { nickname: null, identity: null, email: null, url: null, signs: [] };
|
|
8
|
+
for (const [, identity, email, url, sign, bare] of text.matchAll(TOKEN)) {
|
|
9
|
+
if (identity !== undefined)
|
|
10
|
+
entry.identity ??= identity;
|
|
11
|
+
else if (email !== undefined)
|
|
12
|
+
entry.email ??= email;
|
|
13
|
+
else if (url !== undefined)
|
|
14
|
+
entry.url ??= url;
|
|
15
|
+
else if (sign !== undefined)
|
|
16
|
+
entry.signs.push(sign);
|
|
17
|
+
else if (bare !== undefined)
|
|
18
|
+
entry.nickname ??= bare;
|
|
19
|
+
}
|
|
20
|
+
return entry;
|
|
21
|
+
}
|
|
22
|
+
export function formatEntry(entry) {
|
|
23
|
+
return [
|
|
24
|
+
entry.nickname,
|
|
25
|
+
entry.identity === null ? null : `"${entry.identity}"`,
|
|
26
|
+
entry.email === null ? null : `<${entry.email}>`,
|
|
27
|
+
entry.url === null ? null : `(${entry.url})`,
|
|
28
|
+
...entry.signs.map((sign) => `[${sign}]`),
|
|
29
|
+
]
|
|
30
|
+
.filter((field) => field !== null)
|
|
31
|
+
.join("\t");
|
|
32
|
+
}
|
|
33
|
+
export function kindOf(entry) {
|
|
34
|
+
if (!entry.nickname || !entry.email)
|
|
35
|
+
return "mentioned";
|
|
36
|
+
return entry.identity && entry.url ? "full" : "verified";
|
|
37
|
+
}
|
|
38
|
+
const same = (a, b) => a !== null && a.toLowerCase() === b.toLowerCase();
|
|
39
|
+
// does the entry name this identity (glossary: the matching is assumed)
|
|
40
|
+
export function names(entry, { name, email }) {
|
|
41
|
+
if (email && same(entry.email, email))
|
|
42
|
+
return true;
|
|
43
|
+
if (!name)
|
|
44
|
+
return false;
|
|
45
|
+
if (same(entry.nickname, name) || same(entry.identity, name))
|
|
46
|
+
return true;
|
|
47
|
+
return Boolean(entry.identity?.toLowerCase().startsWith(`${name.toLowerCase()} `));
|
|
48
|
+
}
|
|
49
|
+
export function nicknameOf(name) {
|
|
50
|
+
return name.trim().replace(/\s+/g, "-");
|
|
51
|
+
}
|
|
52
|
+
// a new entry for an identity no entry names: verified, or mentioned when half is missing
|
|
53
|
+
export function entryOf({ name, email }) {
|
|
54
|
+
return { nickname: name ? nicknameOf(name) : null, identity: null, email: email || null, url: null, signs: [] };
|
|
55
|
+
}
|
|
56
|
+
// what an identity adds to a mentioned entry; null when nothing
|
|
57
|
+
export function completed(entry, { name, email }) {
|
|
58
|
+
if (kindOf(entry) !== "mentioned")
|
|
59
|
+
return null;
|
|
60
|
+
const nickname = entry.nickname ?? (name ? nicknameOf(name) : null);
|
|
61
|
+
const mail = entry.email ?? (email || null);
|
|
62
|
+
if (nickname === entry.nickname && mail === entry.email)
|
|
63
|
+
return null;
|
|
64
|
+
return { ...entry, nickname, email: mail };
|
|
65
|
+
}
|
|
66
|
+
// "Name <email>", as git trailers write it
|
|
67
|
+
export function parseIdentity(text) {
|
|
68
|
+
const match = text.trim().match(/^(.*?)\s*<([^>]*)>$/);
|
|
69
|
+
if (match)
|
|
70
|
+
return { name: (match[1] ?? "").trim(), email: (match[2] ?? "").trim() };
|
|
71
|
+
return text.trim() ? { name: text.trim(), email: "" } : null;
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entry.js","sourceRoot":"","sources":["../../../src/models/authors/entry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { Host } from "../../core/host.ts";
|
|
2
|
+
import { type AuthorEntry } from "./entry.ts";
|
|
3
|
+
export type AuthorsLine = {
|
|
4
|
+
text: string;
|
|
5
|
+
entry: AuthorEntry | null;
|
|
6
|
+
};
|
|
7
|
+
export declare function authorsFile(projectPath: string): string;
|
|
8
|
+
export declare function readAuthors(host: Host, file: string): AuthorsLine[];
|
|
9
|
+
export declare function authorsText(lines: AuthorsLine[]): string;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { join } from "../../core/paths.js";
|
|
2
|
+
import { parseEntry } from "./entry.js";
|
|
3
|
+
export function authorsFile(projectPath) {
|
|
4
|
+
return join(projectPath, ".github", "AUTHORS");
|
|
5
|
+
}
|
|
6
|
+
// a missing file has no lines
|
|
7
|
+
export function readAuthors(host, file) {
|
|
8
|
+
const text = host.readText(file);
|
|
9
|
+
if (text === null)
|
|
10
|
+
return [];
|
|
11
|
+
const lines = text.split("\n");
|
|
12
|
+
if (lines.at(-1) === "")
|
|
13
|
+
lines.pop();
|
|
14
|
+
return lines.map((line) => ({ text: line, entry: parseEntry(line) }));
|
|
15
|
+
}
|
|
16
|
+
export function authorsText(lines) {
|
|
17
|
+
return lines.length ? `${lines.map((line) => line.text).join("\n")}\n` : "";
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=file.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file.js","sourceRoot":"","sources":["../../../src/models/authors/file.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAC3C,OAAO,EAAoB,UAAU,EAAE,MAAM,YAAY,CAAC;AAI1D,MAAM,UAAU,WAAW,CAAC,WAAmB;IAC7C,OAAO,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;AACjD,CAAC;AAED,8BAA8B;AAC9B,MAAM,UAAU,WAAW,CAAC,IAAU,EAAE,IAAY;IAClD,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACjC,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,EAAE,CAAC;IAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/B,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE;QAAE,KAAK,CAAC,GAAG,EAAE,CAAC;IACrC,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;AACxE,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAoB;IAC9C,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;AAC9E,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export { type AutomergeContext, automerging } from "./automerging/_index.ts";
|
|
2
2
|
export { type BootstrapContext, bootstrapping } from "./bootstrapping/_index.ts";
|
|
3
3
|
export { type BumpContext, type BumpOutcome, bumping, unbumped } from "./bumping/_index.ts";
|
|
4
|
+
export { type CreditContext, type CreditOutcome, crediting, uncredited } from "./crediting/_index.ts";
|
|
4
5
|
export { emptyReport, type Finding, type InspectContext, inspecting, type ScopeReport, type WorkshopReport, } from "./inspecting/_index.ts";
|
|
5
6
|
export { type FlowOutcome, type ProposeContext, proposing, undecided } from "./proposing/_index.ts";
|
|
6
7
|
export { type VersionContext, versioning } from "./versioning/_index.ts";
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
export { automerging } from "./automerging/_index.js";
|
|
4
4
|
export { bootstrapping } from "./bootstrapping/_index.js";
|
|
5
5
|
export { bumping, unbumped } from "./bumping/_index.js";
|
|
6
|
+
export { crediting, uncredited } from "./crediting/_index.js";
|
|
6
7
|
export { emptyReport, inspecting, } from "./inspecting/_index.js";
|
|
7
8
|
export { proposing, undecided } from "./proposing/_index.js";
|
|
8
9
|
export { versioning } from "./versioning/_index.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_index.js","sourceRoot":"","sources":["../../src/procedures/_index.ts"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,wEAAwE;AAExE,OAAO,EAAyB,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC7E,OAAO,EAAyB,aAAa,EAAE,MAAM,2BAA2B,CAAC;AACjF,OAAO,EAAsC,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC5F,OAAO,EACL,WAAW,EAGX,UAAU,GAGX,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAyC,SAAS,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACpG,OAAO,EAAuB,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAyC,QAAQ,EAAE,MAAM,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"_index.js","sourceRoot":"","sources":["../../src/procedures/_index.ts"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,wEAAwE;AAExE,OAAO,EAAyB,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC7E,OAAO,EAAyB,aAAa,EAAE,MAAM,2BAA2B,CAAC;AACjF,OAAO,EAAsC,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC5F,OAAO,EAA0C,SAAS,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACtG,OAAO,EACL,WAAW,EAGX,UAAU,GAGX,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAyC,SAAS,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACpG,OAAO,EAAuB,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAyC,QAAQ,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Procedure } from "../../core/procedure.js";
|
|
2
|
+
import { match, read, write } from "./steps.js";
|
|
3
|
+
export { uncredited } from "./context.js";
|
|
4
|
+
export const crediting = new Procedure("crediting", [
|
|
5
|
+
{ name: "read", run: read },
|
|
6
|
+
{ name: "match", run: match },
|
|
7
|
+
{ name: "write", run: write },
|
|
8
|
+
]);
|
|
9
|
+
//# sourceMappingURL=_index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_index.js","sourceRoot":"","sources":["../../../src/procedures/crediting/_index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEpD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEhD,OAAO,EAA0C,UAAU,EAAE,MAAM,cAAc,CAAC;AAElF,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,SAAS,CAAgB,WAAW,EAAE;IACjE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE;IAC3B,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE;IAC7B,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE;CAC9B,CAAC,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { Git } from "../../bridges/git.ts";
|
|
2
|
+
import type { Context } from "../../core/context.ts";
|
|
3
|
+
import type { AuthorsLine, Identity } from "../../models/_index.ts";
|
|
4
|
+
export type CreditOutcome = {
|
|
5
|
+
action: "none" | "would-write" | "written";
|
|
6
|
+
file: string;
|
|
7
|
+
added: string[];
|
|
8
|
+
updated: string[];
|
|
9
|
+
};
|
|
10
|
+
export type CreditContext = Context & {
|
|
11
|
+
file: string;
|
|
12
|
+
git: Git;
|
|
13
|
+
lines: AuthorsLine[];
|
|
14
|
+
identities: Identity[];
|
|
15
|
+
outcome: CreditOutcome;
|
|
16
|
+
};
|
|
17
|
+
export declare function uncredited(file: string): CreditOutcome;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/procedures/crediting/context.ts"],"names":[],"mappings":"AAoBA,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;AAC1D,CAAC"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { dirname } from "../../core/paths.js";
|
|
2
|
+
import { authorsText, completed, entryOf, formatEntry, names, parseIdentity, readAuthors, } from "../../models/_index.js";
|
|
3
|
+
const keyOf = ({ name, email }) => `${name.toLowerCase()} <${email.toLowerCase()}>`;
|
|
4
|
+
export function read(context) {
|
|
5
|
+
context.lines = readAuthors(context.host, context.file);
|
|
6
|
+
const seen = new Set();
|
|
7
|
+
for (const line of context.git.identities()) {
|
|
8
|
+
const identity = parseIdentity(line);
|
|
9
|
+
if (!identity || seen.has(keyOf(identity)))
|
|
10
|
+
continue;
|
|
11
|
+
seen.add(keyOf(identity));
|
|
12
|
+
context.identities.push(identity);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
export function match(context) {
|
|
16
|
+
const { lines, outcome } = context;
|
|
17
|
+
for (const identity of context.identities) {
|
|
18
|
+
const at = lines.findIndex((line) => line.entry && names(line.entry, identity));
|
|
19
|
+
if (at === -1) {
|
|
20
|
+
const entry = entryOf(identity);
|
|
21
|
+
const text = formatEntry(entry);
|
|
22
|
+
lines.push({ text, entry });
|
|
23
|
+
outcome.added.push(text);
|
|
24
|
+
continue;
|
|
25
|
+
}
|
|
26
|
+
const entry = lines[at]?.entry;
|
|
27
|
+
const better = completed(entry, identity);
|
|
28
|
+
if (!better)
|
|
29
|
+
continue;
|
|
30
|
+
// a mentioned entry, completed: updated and moved to the bottom
|
|
31
|
+
const text = formatEntry(better);
|
|
32
|
+
lines.splice(at, 1);
|
|
33
|
+
lines.push({ text, entry: better });
|
|
34
|
+
outcome.updated.push(text);
|
|
35
|
+
}
|
|
36
|
+
context.changes.push(...outcome.updated.map((text) => `updated: ${text}`));
|
|
37
|
+
context.changes.push(...outcome.added.map((text) => `added: ${text}`));
|
|
38
|
+
}
|
|
39
|
+
export function write(context) {
|
|
40
|
+
const { outcome } = context;
|
|
41
|
+
if (!outcome.added.length && !outcome.updated.length)
|
|
42
|
+
return;
|
|
43
|
+
if (context.dryRun) {
|
|
44
|
+
outcome.action = "would-write";
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
context.host.mkdir(dirname(context.file));
|
|
48
|
+
context.host.writeText(context.file, authorsText(context.lines));
|
|
49
|
+
outcome.action = "written";
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=steps.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"steps.js","sourceRoot":"","sources":["../../../src/procedures/crediting/steps.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/_index.js
CHANGED
|
@@ -1,9 +1,17 @@
|
|
|
1
1
|
import { devlogTools } from "./devlog.js";
|
|
2
2
|
import { flowTools } from "./flow.js";
|
|
3
|
+
import { projectTools } from "./project.js";
|
|
3
4
|
import { scopeTools } from "./scope.js";
|
|
4
5
|
import { versionTools } from "./version.js";
|
|
5
6
|
import { workshopTools } from "./workshop.js";
|
|
6
|
-
export const TOOLS = [
|
|
7
|
+
export const TOOLS = [
|
|
8
|
+
...workshopTools,
|
|
9
|
+
...scopeTools,
|
|
10
|
+
...devlogTools,
|
|
11
|
+
...flowTools,
|
|
12
|
+
...projectTools,
|
|
13
|
+
...versionTools,
|
|
14
|
+
];
|
|
7
15
|
export function findTool(model, name) {
|
|
8
16
|
const entry = TOOLS.find((t) => t.model === model && t.name === name);
|
|
9
17
|
if (entry)
|
package/dist/tools/_index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_index.js","sourceRoot":"","sources":["../../src/tools/_index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,MAAM,CAAC,MAAM,KAAK,GAAW,
|
|
1
|
+
{"version":3,"file":"_index.js","sourceRoot":"","sources":["../../src/tools/_index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,MAAM,CAAC,MAAM,KAAK,GAAW;IAC3B,GAAG,aAAa;IAChB,GAAG,UAAU;IACb,GAAG,WAAW;IACd,GAAG,SAAS;IACZ,GAAG,YAAY;IACf,GAAG,YAAY;CAChB,CAAC;AAEF,MAAM,UAAU,QAAQ,CAAC,KAAyB,EAAE,IAAwB;IAC1E,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IACtE,IAAI,KAAK;QAAE,OAAO,KAAK,CAAC;IACxB,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACvD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,KAAK,cAAc,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChH,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACxE,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,iBAAiB,IAAI,aAAa,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACjF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const projectTools: import("../core/tool.ts").Tool[];
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
// bos project <tool>: the project around the current directory
|
|
2
|
+
import { tool } from "../core/tool.js";
|
|
3
|
+
import { authorsText } from "../views/project.js";
|
|
4
|
+
export const projectTools = [
|
|
5
|
+
tool({
|
|
6
|
+
model: "project",
|
|
7
|
+
name: "authors",
|
|
8
|
+
info: "name every entity of the commits (people, agents, bots) in .github/AUTHORS; new ones appended",
|
|
9
|
+
readOnly: false,
|
|
10
|
+
args: [
|
|
11
|
+
{ name: "dir", type: "string", info: "a path inside the project (default: current directory)" },
|
|
12
|
+
{ name: "dryRun", type: "boolean", info: "only say what would be written" },
|
|
13
|
+
],
|
|
14
|
+
run: (bos, input) => bos.authors({ dir: input.dir, dryRun: Boolean(input.dryRun) }),
|
|
15
|
+
render: authorsText,
|
|
16
|
+
}),
|
|
17
|
+
];
|
|
18
|
+
//# sourceMappingURL=project.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/tools/project.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,IAAI,CAAC;QACH,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,+FAA+F;QACrG,QAAQ,EAAE,KAAK;QACf,IAAI,EAAE;YACJ,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,wDAAwD,EAAE;YAC/F,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,gCAAgC,EAAE;SAC5E;QACD,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,GAAyB,EAAE,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;QACzG,MAAM,EAAE,WAAW;KACpB,CAAC;CACH,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export function authorsText(outcome) {
|
|
2
|
+
if (outcome.action === "none")
|
|
3
|
+
return `${outcome.file}: everyone is named`;
|
|
4
|
+
const verb = outcome.action === "written" ? "" : "would be ";
|
|
5
|
+
return [
|
|
6
|
+
`${outcome.file}: ${outcome.added.length} ${verb}added, ${outcome.updated.length} ${verb}updated`,
|
|
7
|
+
...outcome.updated.map((text) => ` ~ ${text}`),
|
|
8
|
+
...outcome.added.map((text) => ` + ${text}`),
|
|
9
|
+
].join("\n");
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=project.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/views/project.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,WAAW,CAAC,OAAsB;IAChD,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM;QAAE,OAAO,GAAG,OAAO,CAAC,IAAI,qBAAqB,CAAC;IAC3E,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC;IAC7D,OAAO;QACL,GAAG,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,UAAU,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,IAAI,SAAS;QACjG,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,EAAE,CAAC;QAC/C,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,EAAE,CAAC;KAC9C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "blacksmith-organization-system",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.2.0",
|
|
4
4
|
"description": "Blacksmith Organization System (BOS) core: the workshop as code - build its base, listen to its changes, inspect it as one coherent environment",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"bos",
|