all-contributors-for-repository 0.3.0 → 0.3.1
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 +1 -1
- package/lib/Contributor.js.map +1 -1
- package/lib/ContributorsCollection.js.map +1 -1
- package/lib/collect/adding/addAcceptedIssues.js.map +1 -1
- package/lib/collect/processing/repoEventIsPullRequestReviewEvent.d.ts +2 -2
- package/lib/collect/processing/repoEventIsPullRequestReviewEvent.js.map +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.js.map +1 -1
- package/package.json +15 -15
package/README.md
CHANGED
|
@@ -45,7 +45,7 @@ import { getAllContributorsForRepository } from "all-contributors-for-repository
|
|
|
45
45
|
|
|
46
46
|
const contributors = await getAllContributorsForRepository({
|
|
47
47
|
owner: "JoshuaKGoldberg",
|
|
48
|
-
repo: "
|
|
48
|
+
repo: "create-typescript-app",
|
|
49
49
|
});
|
|
50
50
|
|
|
51
51
|
/*
|
package/lib/Contributor.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/Contributor.ts"],"sourcesContent":["export class Contributor {\n\treadonly contributions: Record<string, Set<number>> = {};\n\n\tadd(number: number, type: string) {\n\t\t
|
|
1
|
+
{"version":3,"sources":["../src/Contributor.ts"],"sourcesContent":["export class Contributor {\n\treadonly contributions: Record<string, Set<number>> = {};\n\n\tadd(number: number, type: string) {\n\t\t(this.contributions[type] ??= new Set()).add(number);\n\t}\n}\n"],"mappings":"AAAO,MAAM,YAAY;AAAA,EACf,gBAA6C,CAAC;AAAA,EAEvD,IAAI,QAAgB,MAAc;AACjC,KAAC,KAAK,cAAc,IAAI,MAAM,oBAAI,IAAI,GAAG,IAAI,MAAM;AAAA,EACpD;AACD;","names":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/ContributorsCollection.ts"],"sourcesContent":["import { Contributor } from \"./Contributor.js\";\n\n/**\n * For a set of logins, the contributions under those users.\n */\nexport type ContributorsContributions = Record<\n\tstring,\n\tContributorContributions\n>;\n\n/**\n * For each contribution under a login, the issue/PR numbers that count as that type.\n */\nexport type ContributorContributions = Record<string, number[]>;\n\nexport class ContributorsCollection {\n\t#contributors: Record<string, Contributor> = {};\n\t#ignoredLogins: Set<string>;\n\n\tconstructor(ignoredLogins: Set<string>) {\n\t\tthis.#ignoredLogins = ignoredLogins;\n\t}\n\n\tadd(login: string | undefined, number: number, type: string) {\n\t\tif (login && !this.#ignoredLogins.has(login)) {\n\t\t\t
|
|
1
|
+
{"version":3,"sources":["../src/ContributorsCollection.ts"],"sourcesContent":["import { Contributor } from \"./Contributor.js\";\n\n/**\n * For a set of logins, the contributions under those users.\n */\nexport type ContributorsContributions = Record<\n\tstring,\n\tContributorContributions\n>;\n\n/**\n * For each contribution under a login, the issue/PR numbers that count as that type.\n */\nexport type ContributorContributions = Record<string, number[]>;\n\nexport class ContributorsCollection {\n\t#contributors: Record<string, Contributor> = {};\n\t#ignoredLogins: Set<string>;\n\n\tconstructor(ignoredLogins: Set<string>) {\n\t\tthis.#ignoredLogins = ignoredLogins;\n\t}\n\n\tadd(login: string | undefined, number: number, type: string) {\n\t\tif (login && !this.#ignoredLogins.has(login)) {\n\t\t\t(this.#contributors[login.toLowerCase()] ??= new Contributor()).add(\n\t\t\t\tnumber,\n\t\t\t\ttype,\n\t\t\t);\n\t\t}\n\t}\n\n\tcollect(): ContributorsContributions {\n\t\treturn Object.fromEntries(\n\t\t\tObject.entries(this.#contributors)\n\t\t\t\t.map(\n\t\t\t\t\t([login, contributor]) =>\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\tlogin,\n\t\t\t\t\t\t\tObject.fromEntries(\n\t\t\t\t\t\t\t\tObject.entries(contributor.contributions).map(\n\t\t\t\t\t\t\t\t\t([type, numbers]) => [\n\t\t\t\t\t\t\t\t\t\ttype,\n\t\t\t\t\t\t\t\t\t\tArray.from(numbers).sort((a, b) => a - b),\n\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t] as const,\n\t\t\t\t)\n\t\t\t\t.sort(([a], [b]) => a.localeCompare(b)),\n\t\t);\n\t}\n}\n"],"mappings":"AAAA,SAAS,mBAAmB;AAerB,MAAM,uBAAuB;AAAA,EACnC,gBAA6C,CAAC;AAAA,EAC9C;AAAA,EAEA,YAAY,eAA4B;AACvC,SAAK,iBAAiB;AAAA,EACvB;AAAA,EAEA,IAAI,OAA2B,QAAgB,MAAc;AAC5D,QAAI,SAAS,CAAC,KAAK,eAAe,IAAI,KAAK,GAAG;AAC7C,OAAC,KAAK,cAAc,MAAM,YAAY,CAAC,MAAM,IAAI,YAAY,GAAG;AAAA,QAC/D;AAAA,QACA;AAAA,MACD;AAAA,IACD;AAAA,EACD;AAAA,EAEA,UAAqC;AACpC,WAAO,OAAO;AAAA,MACb,OAAO,QAAQ,KAAK,aAAa,EAC/B;AAAA,QACA,CAAC,CAAC,OAAO,WAAW,MACnB;AAAA,UACC;AAAA,UACA,OAAO;AAAA,YACN,OAAO,QAAQ,YAAY,aAAa,EAAE;AAAA,cACzC,CAAC,CAAC,MAAM,OAAO,MAAM;AAAA,gBACpB;AAAA,gBACA,MAAM,KAAK,OAAO,EAAE,KAAK,CAAC,GAAG,MAAM,IAAI,CAAC;AAAA,cACzC;AAAA,YACD;AAAA,UACD;AAAA,QACD;AAAA,MACF,EACC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;AAAA,IACxC;AAAA,EACD;AACD;","names":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/collect/adding/addAcceptedIssues.ts"],"sourcesContent":["import { descriptionToCoAuthors } from \"description-to-co-authors\";\nimport { ContributorsCollection } from \"../../ContributorsCollection.js\";\nimport { AllContributorsForRepositoryOptions } from \"../../options.js\";\nimport { AcceptedIssue } from \"../collecting/collectAcceptedIssues.js\";\n\nexport function addAcceptedIssues(\n\tacceptedIssues: AcceptedIssue[],\n\tcontributors: Pick<ContributorsCollection, \"add\">,\n\toptions: Pick<\n\t\tAllContributorsForRepositoryOptions,\n\t\t`labelType${string}` & keyof AllContributorsForRepositoryOptions\n\t>,\n) {\n\tfor (const acceptedIssue of acceptedIssues) {\n\t\tconst labels = acceptedIssue.labels.map((label) =>\n\t\t\ttypeof label === \"string\" ? label : label.name,\n\t\t);\n\n\t\tfor (const [labelType, contribution] of [\n\t\t\t// 🐛 `bug`: anybody who filed an issue labeled as accepting PRs and a bug\n\t\t\t[options.labelTypeBug, \"bug\"],\n\t\t\t// - 📖 `doc`: authors of merged PRs that address issues labeled as docs\n\t\t\t[options.labelTypeDocs, \"docs\"],\n\t\t\t// 💡 `ideas`: anybody who filed an issue labeled as accepting PRs and a feature\n\t\t\t[options.labelTypeIdeas, \"ideas\"],\n\t\t\t// - 🔧 `tool`: authors of merged PRs that address issues labeled as tooling\n\t\t\t[options.labelTypeTool, \"tool\"],\n\t\t] as const) {\n\t\t\tif (!labels.some((label) => label === labelType)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tconst logins = [];\n\n\t\t\tif (acceptedIssue.user) {\n\t\t\t\tlogins.push(acceptedIssue.user.login);\n\t\t\t}\n\n\t\t\tif (acceptedIssue.body) {\n\t\t\t\tfor (const coAuthor of descriptionToCoAuthors(acceptedIssue.body)) {\n\t\t\t\t\tlogins.push(coAuthor.username);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor (const login of logins) {\n\t\t\t\tcontributors.add(login, acceptedIssue.number, contribution);\n\t\t\t}\n\t\t}\n\t}\n}\n"],"mappings":"AAAA,SAAS,8BAA8B;
|
|
1
|
+
{"version":3,"sources":["../../../src/collect/adding/addAcceptedIssues.ts"],"sourcesContent":["import { descriptionToCoAuthors } from \"description-to-co-authors\";\n\nimport { ContributorsCollection } from \"../../ContributorsCollection.js\";\nimport { AllContributorsForRepositoryOptions } from \"../../options.js\";\nimport { AcceptedIssue } from \"../collecting/collectAcceptedIssues.js\";\n\nexport function addAcceptedIssues(\n\tacceptedIssues: AcceptedIssue[],\n\tcontributors: Pick<ContributorsCollection, \"add\">,\n\toptions: Pick<\n\t\tAllContributorsForRepositoryOptions,\n\t\t`labelType${string}` & keyof AllContributorsForRepositoryOptions\n\t>,\n) {\n\tfor (const acceptedIssue of acceptedIssues) {\n\t\tconst labels = acceptedIssue.labels.map((label) =>\n\t\t\ttypeof label === \"string\" ? label : label.name,\n\t\t);\n\n\t\tfor (const [labelType, contribution] of [\n\t\t\t// 🐛 `bug`: anybody who filed an issue labeled as accepting PRs and a bug\n\t\t\t[options.labelTypeBug, \"bug\"],\n\t\t\t// - 📖 `doc`: authors of merged PRs that address issues labeled as docs\n\t\t\t[options.labelTypeDocs, \"docs\"],\n\t\t\t// 💡 `ideas`: anybody who filed an issue labeled as accepting PRs and a feature\n\t\t\t[options.labelTypeIdeas, \"ideas\"],\n\t\t\t// - 🔧 `tool`: authors of merged PRs that address issues labeled as tooling\n\t\t\t[options.labelTypeTool, \"tool\"],\n\t\t] as const) {\n\t\t\tif (!labels.some((label) => label === labelType)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tconst logins = [];\n\n\t\t\tif (acceptedIssue.user) {\n\t\t\t\tlogins.push(acceptedIssue.user.login);\n\t\t\t}\n\n\t\t\tif (acceptedIssue.body) {\n\t\t\t\tfor (const coAuthor of descriptionToCoAuthors(acceptedIssue.body)) {\n\t\t\t\t\tlogins.push(coAuthor.username);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor (const login of logins) {\n\t\t\t\tcontributors.add(login, acceptedIssue.number, contribution);\n\t\t\t}\n\t\t}\n\t}\n}\n"],"mappings":"AAAA,SAAS,8BAA8B;AAMhC,SAAS,kBACf,gBACA,cACA,SAIC;AACD,aAAW,iBAAiB,gBAAgB;AAC3C,UAAM,SAAS,cAAc,OAAO;AAAA,MAAI,CAAC,UACxC,OAAO,UAAU,WAAW,QAAQ,MAAM;AAAA,IAC3C;AAEA,eAAW,CAAC,WAAW,YAAY,KAAK;AAAA;AAAA,MAEvC,CAAC,QAAQ,cAAc,KAAK;AAAA;AAAA,MAE5B,CAAC,QAAQ,eAAe,MAAM;AAAA;AAAA,MAE9B,CAAC,QAAQ,gBAAgB,OAAO;AAAA;AAAA,MAEhC,CAAC,QAAQ,eAAe,MAAM;AAAA,IAC/B,GAAY;AACX,UAAI,CAAC,OAAO,KAAK,CAAC,UAAU,UAAU,SAAS,GAAG;AACjD;AAAA,MACD;AAEA,YAAM,SAAS,CAAC;AAEhB,UAAI,cAAc,MAAM;AACvB,eAAO,KAAK,cAAc,KAAK,KAAK;AAAA,MACrC;AAEA,UAAI,cAAc,MAAM;AACvB,mBAAW,YAAY,uBAAuB,cAAc,IAAI,GAAG;AAClE,iBAAO,KAAK,SAAS,QAAQ;AAAA,QAC9B;AAAA,MACD;AAEA,iBAAW,SAAS,QAAQ;AAC3B,qBAAa,IAAI,OAAO,cAAc,QAAQ,YAAY;AAAA,MAC3D;AAAA,IACD;AAAA,EACD;AACD;","names":[]}
|
|
@@ -2,11 +2,11 @@ import { RepoEvent } from '../collecting/collectRepoEvents.js';
|
|
|
2
2
|
import 'octokit';
|
|
3
3
|
import '../api.js';
|
|
4
4
|
|
|
5
|
-
type PullRequestReviewEvent =
|
|
5
|
+
type PullRequestReviewEvent = {
|
|
6
6
|
issue: {
|
|
7
7
|
number: number;
|
|
8
8
|
};
|
|
9
|
-
};
|
|
9
|
+
} & RepoEvent;
|
|
10
10
|
declare function repoEventIsPullRequestReviewEvent(repoEvent: Pick<RepoEvent, "type">): repoEvent is PullRequestReviewEvent;
|
|
11
11
|
|
|
12
12
|
export { type PullRequestReviewEvent, repoEventIsPullRequestReviewEvent };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/collect/processing/repoEventIsPullRequestReviewEvent.ts"],"sourcesContent":["import { RepoEvent } from \"../collecting/collectRepoEvents.js\";\n\nexport type PullRequestReviewEvent =
|
|
1
|
+
{"version":3,"sources":["../../../src/collect/processing/repoEventIsPullRequestReviewEvent.ts"],"sourcesContent":["import { RepoEvent } from \"../collecting/collectRepoEvents.js\";\n\nexport type PullRequestReviewEvent = {\n\tissue: {\n\t\tnumber: number;\n\t};\n} & RepoEvent;\n\nexport function repoEventIsPullRequestReviewEvent(\n\trepoEvent: Pick<RepoEvent, \"type\">,\n): repoEvent is PullRequestReviewEvent {\n\treturn (\n\t\trepoEvent.type === \"PullRequestReviewEvent\" &&\n\t\t!!(repoEvent as Partial<PullRequestReviewEvent>).issue?.number\n\t);\n}\n"],"mappings":"AAQO,SAAS,kCACf,WACsC;AACtC,SACC,UAAU,SAAS,4BACnB,CAAC,CAAE,UAA8C,OAAO;AAE1D;","names":[]}
|
package/lib/index.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export { ContributorContributions, ContributorsContributions } from './ContributorsCollection.js';
|
|
2
2
|
export { getAllContributorsForRepository } from './getAllContributorsForRepository.js';
|
|
3
|
-
|
|
3
|
+
export { RawAllContributorsForRepositoryOptions } from './options.js';
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["export {\n\ttype ContributorContributions,\n\ttype ContributorsContributions,\n} from \"./ContributorsCollection.js\";\nexport { getAllContributorsForRepository } from \"./getAllContributorsForRepository.js\";\n"],"mappings":"AAIA,SAAS,uCAAuC;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["export {\n\ttype ContributorContributions,\n\ttype ContributorsContributions,\n} from \"./ContributorsCollection.js\";\nexport { getAllContributorsForRepository } from \"./getAllContributorsForRepository.js\";\nexport type { RawAllContributorsForRepositoryOptions } from \"./options.js\";\n"],"mappings":"AAIA,SAAS,uCAAuC;","names":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "all-contributors-for-repository",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.1",
|
|
4
4
|
"description": "Generates an allcontributors list for an existing repository. 🤝",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -43,18 +43,18 @@
|
|
|
43
43
|
"octokit": "^4.0.0"
|
|
44
44
|
},
|
|
45
45
|
"devDependencies": {
|
|
46
|
-
"@release-it/conventional-changelog": "^
|
|
46
|
+
"@release-it/conventional-changelog": "^9.0.0",
|
|
47
47
|
"@types/conventional-commits-parser": "^5.0.0",
|
|
48
48
|
"@types/eslint": "^9.0.0",
|
|
49
|
-
"@typescript-eslint/eslint-plugin": "^8.0.
|
|
50
|
-
"@typescript-eslint/parser": "^
|
|
49
|
+
"@typescript-eslint/eslint-plugin": "^8.0.1",
|
|
50
|
+
"@typescript-eslint/parser": "^8.0.1",
|
|
51
51
|
"@vitest/coverage-v8": "^1.1.3",
|
|
52
|
-
"console-fail-test": "^0.
|
|
52
|
+
"console-fail-test": "^0.5.0",
|
|
53
53
|
"cspell": "^8.3.2",
|
|
54
|
-
"eslint": "^
|
|
55
|
-
"eslint-plugin-deprecation": "^
|
|
54
|
+
"eslint": "^8.57.0",
|
|
55
|
+
"eslint-plugin-deprecation": "^3.0.0",
|
|
56
56
|
"eslint-plugin-eslint-comments": "^3.2.0",
|
|
57
|
-
"eslint-plugin-jsdoc": "^
|
|
57
|
+
"eslint-plugin-jsdoc": "^50.0.0",
|
|
58
58
|
"eslint-plugin-jsonc": "^2.11.2",
|
|
59
59
|
"eslint-plugin-markdown": "^5.0.0",
|
|
60
60
|
"eslint-plugin-n": "^17.0.0",
|
|
@@ -65,14 +65,14 @@
|
|
|
65
65
|
"eslint-plugin-yml": "^1.11.0",
|
|
66
66
|
"husky": "^9.0.0",
|
|
67
67
|
"jsonc-eslint-parser": "^2.4.0",
|
|
68
|
-
"knip": "5.
|
|
68
|
+
"knip": "5.39.2",
|
|
69
69
|
"lint-staged": "^15.2.0",
|
|
70
|
-
"markdownlint": "^0.
|
|
71
|
-
"markdownlint-cli": "^0.
|
|
72
|
-
"npm-package-json-lint": "^
|
|
73
|
-
"npm-package-json-lint-config-default": "^
|
|
70
|
+
"markdownlint": "^0.37.0",
|
|
71
|
+
"markdownlint-cli": "^0.43.0",
|
|
72
|
+
"npm-package-json-lint": "^8.0.0",
|
|
73
|
+
"npm-package-json-lint-config-default": "^7.0.0",
|
|
74
74
|
"prettier": "^3.1.1",
|
|
75
|
-
"prettier-plugin-curly": "^0.
|
|
75
|
+
"prettier-plugin-curly": "^0.3.0",
|
|
76
76
|
"prettier-plugin-packagejson": "^2.4.9",
|
|
77
77
|
"release-it": "^17.0.1",
|
|
78
78
|
"sentences-per-line": "^0.2.1",
|
|
@@ -82,7 +82,7 @@
|
|
|
82
82
|
"vitest": "^1.1.3",
|
|
83
83
|
"yaml-eslint-parser": "^1.2.2"
|
|
84
84
|
},
|
|
85
|
-
"packageManager": "pnpm@9.
|
|
85
|
+
"packageManager": "pnpm@9.15.0",
|
|
86
86
|
"engines": {
|
|
87
87
|
"node": ">=18"
|
|
88
88
|
},
|