create-typescript-app 1.77.1 → 1.79.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 +50 -49
- package/lib/create/createAndEnterGitDirectory.d.ts +1 -1
- package/lib/create/createAndEnterGitDirectory.js +4 -3
- package/lib/create/createAndEnterGitDirectory.js.map +1 -1
- package/lib/create/createWithOptions.d.ts +1 -1
- package/lib/create/createWithOptions.js +7 -8
- package/lib/create/createWithOptions.js.map +1 -1
- package/lib/create/index.js +8 -2
- package/lib/create/index.js.map +1 -1
- package/lib/next/base.d.ts +1 -2
- package/lib/next/base.js +37 -27
- package/lib/next/base.js.map +1 -1
- package/lib/next/blocks/blockAllContributors.d.ts +1 -2
- package/lib/next/blocks/blockAllContributors.js +11 -2
- package/lib/next/blocks/blockAllContributors.js.map +1 -1
- package/lib/next/blocks/blockAreTheTypesWrong.d.ts +1 -2
- package/lib/next/blocks/blockCSpell.d.ts +1 -2
- package/lib/next/blocks/blockCSpell.js +16 -0
- package/lib/next/blocks/blockCSpell.js.map +1 -1
- package/lib/next/blocks/blockContributingDocs.d.ts +1 -2
- package/lib/next/blocks/blockContributorCovenant.d.ts +1 -2
- package/lib/next/blocks/blockDevelopmentDocs.d.ts +1 -2
- package/lib/next/blocks/blockESLint.d.ts +1 -2
- package/lib/next/blocks/blockESLintComments.d.ts +1 -2
- package/lib/next/blocks/blockESLintJSDoc.d.ts +1 -2
- package/lib/next/blocks/blockESLintJSONC.d.ts +1 -2
- package/lib/next/blocks/blockESLintMarkdown.d.ts +1 -2
- package/lib/next/blocks/blockESLintMoreStyling.d.ts +1 -2
- package/lib/next/blocks/blockESLintNode.d.ts +1 -2
- package/lib/next/blocks/blockESLintPackageJson.d.ts +1 -2
- package/lib/next/blocks/blockESLintPerfectionist.d.ts +1 -2
- package/lib/next/blocks/blockESLintRegexp.d.ts +1 -2
- package/lib/next/blocks/blockESLintYML.d.ts +1 -2
- package/lib/next/blocks/blockExampleFiles.d.ts +1 -2
- package/lib/next/blocks/blockFunding.d.ts +1 -2
- package/lib/next/blocks/blockGitHubActionsCI.d.ts +1 -2
- package/lib/next/blocks/blockGitHubApps.d.ts +52 -0
- package/lib/next/blocks/blockGitHubApps.js +34 -0
- package/lib/next/blocks/blockGitHubApps.js.map +1 -0
- package/lib/next/blocks/blockGitHubIssueTemplates.d.ts +1 -2
- package/lib/next/blocks/blockGitHubPRTemplate.d.ts +1 -2
- package/lib/next/blocks/blockGitignore.d.ts +1 -2
- package/lib/next/blocks/blockKnip.d.ts +1 -2
- package/lib/next/blocks/blockKnip.js +2 -2
- package/lib/next/blocks/blockKnip.js.map +1 -1
- package/lib/next/blocks/blockMITLicense.d.ts +1 -2
- package/lib/next/blocks/blockMarkdownlint.d.ts +1 -2
- package/lib/next/blocks/blockNvmrc.d.ts +1 -2
- package/lib/next/blocks/blockPRCompliance.d.ts +1 -2
- package/lib/next/blocks/blockPackageJson.d.ts +1 -2
- package/lib/next/blocks/blockPackageJson.js +46 -41
- package/lib/next/blocks/blockPackageJson.js.map +1 -1
- package/lib/next/blocks/blockPnpmDedupe.d.ts +1 -2
- package/lib/next/blocks/blockPrettier.d.ts +1 -2
- package/lib/next/blocks/blockPrettierPluginCurly.d.ts +1 -2
- package/lib/next/blocks/blockPrettierPluginPackageJson.d.ts +1 -2
- package/lib/next/blocks/blockPrettierPluginSh.d.ts +1 -2
- package/lib/next/blocks/blockREADME.d.ts +1 -2
- package/lib/next/blocks/blockReleaseIt.d.ts +1 -2
- package/lib/next/blocks/blockReleaseIt.js +13 -0
- package/lib/next/blocks/blockReleaseIt.js.map +1 -1
- package/lib/next/blocks/blockRenovate.d.ts +1 -2
- package/lib/next/blocks/blockRenovate.js +9 -0
- package/lib/next/blocks/blockRenovate.js.map +1 -1
- package/lib/next/blocks/{blockRepositoryBranchProtection.d.ts → blockRepositoryBranchRuleset.d.ts} +3 -4
- package/lib/next/blocks/blockRepositoryBranchRuleset.js +71 -0
- package/lib/next/blocks/blockRepositoryBranchRuleset.js.map +1 -0
- package/lib/next/blocks/blockRepositoryLabels.d.ts +1 -2
- package/lib/next/blocks/blockRepositoryLabels.js +12 -2
- package/lib/next/blocks/blockRepositoryLabels.js.map +1 -1
- package/lib/next/blocks/blockRepositorySecrets.d.ts +52 -0
- package/lib/next/blocks/blockRepositorySecrets.js +34 -0
- package/lib/next/blocks/blockRepositorySecrets.js.map +1 -0
- package/lib/next/blocks/blockRepositorySettings.d.ts +1 -2
- package/lib/next/blocks/blockRepositorySettings.js +1 -1
- package/lib/next/blocks/blockRepositorySettings.js.map +1 -1
- package/lib/next/blocks/blockSecurityDocs.d.ts +1 -2
- package/lib/next/blocks/blockTSup.d.ts +1 -2
- package/lib/next/blocks/blockTemplatedBy.d.ts +1 -2
- package/lib/next/blocks/blockTypeScript.d.ts +1 -2
- package/lib/next/blocks/blockVSCode.d.ts +1 -2
- package/lib/next/blocks/blockVitest.d.ts +1 -2
- package/lib/next/blocks/blockVitest.js +26 -17
- package/lib/next/blocks/blockVitest.js.map +1 -1
- package/lib/next/blocks/options.fakes.d.ts +1 -0
- package/lib/next/blocks/options.fakes.js +1 -0
- package/lib/next/blocks/options.fakes.js.map +1 -1
- package/lib/next/blocks/packageData.d.ts +3 -2
- package/lib/next/blocks/packageData.js +20 -14
- package/lib/next/blocks/packageData.js.map +1 -1
- package/lib/next/presetCommon.d.ts +1 -2
- package/lib/next/presetEverything.d.ts +1 -2
- package/lib/next/presetMinimal.d.ts +1 -2
- package/lib/next/presetMinimal.js +6 -2
- package/lib/next/presetMinimal.js.map +1 -1
- package/lib/next/readDocumentation.d.ts +5 -0
- package/lib/next/readDocumentation.js +28 -0
- package/lib/next/readDocumentation.js.map +1 -0
- package/lib/next/template.d.ts +2 -3
- package/lib/next/template.js +2 -6
- package/lib/next/template.js.map +1 -1
- package/lib/next/utils/resolveBin.d.ts +3 -0
- package/lib/next/utils/resolveBin.js +7 -0
- package/lib/next/utils/resolveBin.js.map +1 -0
- package/lib/shared/getGitHubUserAsAllContributor.js +1 -1
- package/lib/shared/getGitHubUserAsAllContributor.js.map +1 -1
- package/lib/shared/options/optionsSchema.d.ts +4 -4
- package/lib/shared/options/readOptions.js +1 -1
- package/lib/shared/options/readOptions.js.map +1 -1
- package/lib/shared/packages.js +1 -3
- package/lib/shared/packages.js.map +1 -1
- package/lib/steps/addToolAllContributors.js +1 -1
- package/lib/steps/addToolAllContributors.js.map +1 -1
- package/lib/steps/initializeGitHubRepository/initializeBranchProtectionSettings.js +53 -31
- package/lib/steps/initializeGitHubRepository/initializeBranchProtectionSettings.js.map +1 -1
- package/lib/steps/uninstallPackages.js +4 -0
- package/lib/steps/uninstallPackages.js.map +1 -1
- package/lib/steps/updateAllContributorsTable.js +1 -1
- package/lib/steps/updateAllContributorsTable.js.map +1 -1
- package/lib/steps/writing/creation/createKnipConfig.d.ts +3 -0
- package/lib/steps/writing/creation/createKnipConfig.js +20 -0
- package/lib/steps/writing/creation/createKnipConfig.js.map +1 -0
- package/lib/steps/writing/creation/index.d.ts +2 -1
- package/lib/steps/writing/creation/index.js +21 -8
- package/lib/steps/writing/creation/index.js.map +1 -1
- package/lib/steps/writing/creation/rootFiles.js +2 -9
- package/lib/steps/writing/creation/rootFiles.js.map +1 -1
- package/package.json +16 -12
- package/lib/next/blocks/blockRepositoryBranchProtection.js +0 -49
- package/lib/next/blocks/blockRepositoryBranchProtection.js.map +0 -1
|
@@ -1,37 +1,59 @@
|
|
|
1
1
|
async function initializeBranchProtectionSettings(octokit, options) {
|
|
2
2
|
try {
|
|
3
|
-
await octokit.request(
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
3
|
+
await octokit.request("POST /repos/{owner}/{repo}/rulesets", {
|
|
4
|
+
bypass_actors: [
|
|
5
|
+
{
|
|
6
|
+
// This *seems* to be the Repository Admin role always?
|
|
7
|
+
// https://github.com/github/rest-api-description/issues/4406
|
|
8
|
+
actor_id: 5,
|
|
9
|
+
actor_type: "RepositoryRole",
|
|
10
|
+
bypass_mode: "always"
|
|
11
|
+
}
|
|
12
|
+
],
|
|
13
|
+
conditions: {
|
|
14
|
+
ref_name: {
|
|
15
|
+
exclude: [],
|
|
16
|
+
include: ["refs/heads/main"]
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
enforcement: "active",
|
|
20
|
+
name: "Branch protection for main",
|
|
21
|
+
owner: options.owner,
|
|
22
|
+
repo: options.repository,
|
|
23
|
+
rules: [
|
|
24
|
+
{ type: "deletion" },
|
|
25
|
+
{
|
|
26
|
+
parameters: {
|
|
27
|
+
// @ts-expect-error -- https://github.com/github/rest-api-description/issues/4405
|
|
28
|
+
allowed_merge_methods: ["squash"],
|
|
29
|
+
dismiss_stale_reviews_on_push: false,
|
|
30
|
+
require_code_owner_review: false,
|
|
31
|
+
require_last_push_approval: false,
|
|
32
|
+
required_approving_review_count: 0,
|
|
33
|
+
required_review_thread_resolution: false
|
|
34
|
+
},
|
|
35
|
+
type: "pull_request"
|
|
31
36
|
},
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
37
|
+
{
|
|
38
|
+
parameters: {
|
|
39
|
+
required_status_checks: [
|
|
40
|
+
{ context: "Build" },
|
|
41
|
+
...options.excludeCompliance ? [] : [{ context: "Compliance" }],
|
|
42
|
+
{ context: "Lint" },
|
|
43
|
+
...options.excludeLintKnip ? [] : [{ context: "Lint Knip" }],
|
|
44
|
+
...options.excludeLintMd ? [] : [{ context: "Lint Markdown" }],
|
|
45
|
+
...options.excludeLintPackages ? [] : [{ context: "Lint Packages" }],
|
|
46
|
+
...options.excludeLintSpelling ? [] : [{ context: "Lint Spelling" }],
|
|
47
|
+
{ context: "Prettier" },
|
|
48
|
+
...options.excludeTests ? [] : [{ context: "Test" }]
|
|
49
|
+
],
|
|
50
|
+
strict_required_status_checks_policy: false
|
|
51
|
+
},
|
|
52
|
+
type: "required_status_checks"
|
|
53
|
+
}
|
|
54
|
+
],
|
|
55
|
+
target: "branch"
|
|
56
|
+
});
|
|
35
57
|
} catch (error) {
|
|
36
58
|
if (error.status === 403) {
|
|
37
59
|
return false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/steps/initializeGitHubRepository/initializeBranchProtectionSettings.ts"],"sourcesContent":["import { RequestError } from \"@octokit/request-error\";\nimport { Octokit } from \"octokit\";\n\nimport { Options } from \"../../shared/types.js\";\n\nexport async function initializeBranchProtectionSettings(\n\toctokit: Octokit,\n\toptions: Options,\n) {\n\ttry {\n\t\tawait octokit.request(\n\t\t\t
|
|
1
|
+
{"version":3,"sources":["../../../src/steps/initializeGitHubRepository/initializeBranchProtectionSettings.ts"],"sourcesContent":["import { RequestError } from \"@octokit/request-error\";\nimport { Octokit } from \"octokit\";\n\nimport { Options } from \"../../shared/types.js\";\n\nexport async function initializeBranchProtectionSettings(\n\toctokit: Octokit,\n\toptions: Options,\n) {\n\ttry {\n\t\tawait octokit.request(\"POST /repos/{owner}/{repo}/rulesets\", {\n\t\t\tbypass_actors: [\n\t\t\t\t{\n\t\t\t\t\t// This *seems* to be the Repository Admin role always?\n\t\t\t\t\t// https://github.com/github/rest-api-description/issues/4406\n\t\t\t\t\tactor_id: 5,\n\t\t\t\t\tactor_type: \"RepositoryRole\",\n\t\t\t\t\tbypass_mode: \"always\",\n\t\t\t\t},\n\t\t\t],\n\t\t\tconditions: {\n\t\t\t\tref_name: {\n\t\t\t\t\texclude: [],\n\t\t\t\t\tinclude: [\"refs/heads/main\"],\n\t\t\t\t},\n\t\t\t},\n\t\t\tenforcement: \"active\",\n\t\t\tname: \"Branch protection for main\",\n\t\t\towner: options.owner,\n\t\t\trepo: options.repository,\n\t\t\trules: [\n\t\t\t\t{ type: \"deletion\" },\n\t\t\t\t{\n\t\t\t\t\tparameters: {\n\t\t\t\t\t\t// @ts-expect-error -- https://github.com/github/rest-api-description/issues/4405\n\t\t\t\t\t\tallowed_merge_methods: [\"squash\"],\n\t\t\t\t\t\tdismiss_stale_reviews_on_push: false,\n\t\t\t\t\t\trequire_code_owner_review: false,\n\t\t\t\t\t\trequire_last_push_approval: false,\n\t\t\t\t\t\trequired_approving_review_count: 0,\n\t\t\t\t\t\trequired_review_thread_resolution: false,\n\t\t\t\t\t},\n\t\t\t\t\ttype: \"pull_request\",\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tparameters: {\n\t\t\t\t\t\trequired_status_checks: [\n\t\t\t\t\t\t\t{ context: \"Build\" },\n\t\t\t\t\t\t\t...(options.excludeCompliance ? [] : [{ context: \"Compliance\" }]),\n\t\t\t\t\t\t\t{ context: \"Lint\" },\n\t\t\t\t\t\t\t...(options.excludeLintKnip ? [] : [{ context: \"Lint Knip\" }]),\n\t\t\t\t\t\t\t...(options.excludeLintMd ? [] : [{ context: \"Lint Markdown\" }]),\n\t\t\t\t\t\t\t...(options.excludeLintPackages\n\t\t\t\t\t\t\t\t? []\n\t\t\t\t\t\t\t\t: [{ context: \"Lint Packages\" }]),\n\t\t\t\t\t\t\t...(options.excludeLintSpelling\n\t\t\t\t\t\t\t\t? []\n\t\t\t\t\t\t\t\t: [{ context: \"Lint Spelling\" }]),\n\t\t\t\t\t\t\t{ context: \"Prettier\" },\n\t\t\t\t\t\t\t...(options.excludeTests ? [] : [{ context: \"Test\" }]),\n\t\t\t\t\t\t],\n\t\t\t\t\t\tstrict_required_status_checks_policy: false,\n\t\t\t\t\t},\n\t\t\t\t\ttype: \"required_status_checks\",\n\t\t\t\t},\n\t\t\t],\n\t\t\ttarget: \"branch\",\n\t\t});\n\t} catch (error) {\n\t\tif ((error as RequestError).status === 403) {\n\t\t\treturn false;\n\t\t}\n\n\t\tthrow error;\n\t}\n}\n"],"mappings":"AAKA,eAAsB,mCACrB,SACA,SACC;AACD,MAAI;AACH,UAAM,QAAQ,QAAQ,uCAAuC;AAAA,MAC5D,eAAe;AAAA,QACd;AAAA;AAAA;AAAA,UAGC,UAAU;AAAA,UACV,YAAY;AAAA,UACZ,aAAa;AAAA,QACd;AAAA,MACD;AAAA,MACA,YAAY;AAAA,QACX,UAAU;AAAA,UACT,SAAS,CAAC;AAAA,UACV,SAAS,CAAC,iBAAiB;AAAA,QAC5B;AAAA,MACD;AAAA,MACA,aAAa;AAAA,MACb,MAAM;AAAA,MACN,OAAO,QAAQ;AAAA,MACf,MAAM,QAAQ;AAAA,MACd,OAAO;AAAA,QACN,EAAE,MAAM,WAAW;AAAA,QACnB;AAAA,UACC,YAAY;AAAA;AAAA,YAEX,uBAAuB,CAAC,QAAQ;AAAA,YAChC,+BAA+B;AAAA,YAC/B,2BAA2B;AAAA,YAC3B,4BAA4B;AAAA,YAC5B,iCAAiC;AAAA,YACjC,mCAAmC;AAAA,UACpC;AAAA,UACA,MAAM;AAAA,QACP;AAAA,QACA;AAAA,UACC,YAAY;AAAA,YACX,wBAAwB;AAAA,cACvB,EAAE,SAAS,QAAQ;AAAA,cACnB,GAAI,QAAQ,oBAAoB,CAAC,IAAI,CAAC,EAAE,SAAS,aAAa,CAAC;AAAA,cAC/D,EAAE,SAAS,OAAO;AAAA,cAClB,GAAI,QAAQ,kBAAkB,CAAC,IAAI,CAAC,EAAE,SAAS,YAAY,CAAC;AAAA,cAC5D,GAAI,QAAQ,gBAAgB,CAAC,IAAI,CAAC,EAAE,SAAS,gBAAgB,CAAC;AAAA,cAC9D,GAAI,QAAQ,sBACT,CAAC,IACD,CAAC,EAAE,SAAS,gBAAgB,CAAC;AAAA,cAChC,GAAI,QAAQ,sBACT,CAAC,IACD,CAAC,EAAE,SAAS,gBAAgB,CAAC;AAAA,cAChC,EAAE,SAAS,WAAW;AAAA,cACtB,GAAI,QAAQ,eAAe,CAAC,IAAI,CAAC,EAAE,SAAS,OAAO,CAAC;AAAA,YACrD;AAAA,YACA,sCAAsC;AAAA,UACvC;AAAA,UACA,MAAM;AAAA,QACP;AAAA,MACD;AAAA,MACA,QAAQ;AAAA,IACT,CAAC;AAAA,EACF,SAAS,OAAO;AACf,QAAK,MAAuB,WAAW,KAAK;AAC3C,aAAO;AAAA,IACR;AAEA,UAAM;AAAA,EACP;AACD;","names":[]}
|
|
@@ -9,20 +9,24 @@ async function uninstallPackages(offline) {
|
|
|
9
9
|
"all-contributors-cli",
|
|
10
10
|
"chalk",
|
|
11
11
|
"create",
|
|
12
|
+
"cspell-populate-words",
|
|
12
13
|
"execa",
|
|
13
14
|
"git-remote-origin-url",
|
|
14
15
|
"git-url-parse",
|
|
15
16
|
"input-from-file",
|
|
16
17
|
"input-from-file-json",
|
|
18
|
+
"input-from-script",
|
|
17
19
|
"js-yaml",
|
|
18
20
|
"lazy-value",
|
|
19
21
|
"npm-user",
|
|
22
|
+
"object-strings-deep",
|
|
20
23
|
"octokit",
|
|
21
24
|
"octokit-from-auth",
|
|
22
25
|
"parse-author",
|
|
23
26
|
"parse-package-name",
|
|
24
27
|
"populate-all-contributors-for-repository",
|
|
25
28
|
"prettier",
|
|
29
|
+
"remove-undefined-objects",
|
|
26
30
|
"replace-in-file",
|
|
27
31
|
"rimraf",
|
|
28
32
|
"set-github-repository-labels",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/steps/uninstallPackages.ts"],"sourcesContent":["import { $ } from \"execa\";\n\nimport { readPackageData, removeDependencies } from \"../shared/packages.js\";\n\nexport async function uninstallPackages(offline: boolean | undefined) {\n\tconst packageData = await readPackageData();\n\n\tawait removeDependencies(\n\t\t[\n\t\t\t\"@clack/prompts\",\n\t\t\t\"@prettier/sync\",\n\t\t\t\"all-contributors-cli\",\n\t\t\t\"chalk\",\n\t\t\t\"create\",\n\t\t\t\"execa\",\n\t\t\t\"git-remote-origin-url\",\n\t\t\t\"git-url-parse\",\n\t\t\t\"input-from-file\",\n\t\t\t\"input-from-file-json\",\n\t\t\t\"js-yaml\",\n\t\t\t\"lazy-value\",\n\t\t\t\"npm-user\",\n\t\t\t\"octokit\",\n\t\t\t\"octokit-from-auth\",\n\t\t\t\"parse-author\",\n\t\t\t\"parse-package-name\",\n\t\t\t\"populate-all-contributors-for-repository\",\n\t\t\t\"prettier\",\n\t\t\t\"replace-in-file\",\n\t\t\t\"rimraf\",\n\t\t\t\"set-github-repository-labels\",\n\t\t\t\"sort-package-json\",\n\t\t\t\"title-case\",\n\t\t\t\"zod\",\n\t\t\t\"zod-validation-error\",\n\t\t],\n\t\tpackageData.dependencies,\n\t);\n\n\tawait removeDependencies(\n\t\t[\n\t\t\t\"@octokit/request-error\",\n\t\t\t\"@types/git-url-parse\",\n\t\t\t\"@types/js-yaml\",\n\t\t\t\"@types/parse-author\",\n\t\t\t\"all-contributors-cli\",\n\t\t\t\"c8\",\n\t\t\t\"create-testers\",\n\t\t\t\"eslint-config-prettier\",\n\t\t\t\"globby\",\n\t\t\t\"tsx\",\n\t\t],\n\t\tpackageData.devDependencies,\n\t\t\"-D\",\n\t);\n\n\tawait $`pnpm add prettier -D${offline ? \" --offline\" : \"\"}`;\n}\n"],"mappings":"AAAA,SAAS,SAAS;AAElB,SAAS,iBAAiB,0BAA0B;AAEpD,eAAsB,kBAAkB,SAA8B;AACrE,QAAM,cAAc,MAAM,gBAAgB;AAE1C,QAAM;AAAA,IACL;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACD;AAAA,IACA,YAAY;AAAA,EACb;AAEA,QAAM;AAAA,IACL;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACD;AAAA,IACA,YAAY;AAAA,IACZ;AAAA,EACD;AAEA,QAAM,wBAAwB,UAAU,eAAe,EAAE;AAC1D;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../src/steps/uninstallPackages.ts"],"sourcesContent":["import { $ } from \"execa\";\n\nimport { readPackageData, removeDependencies } from \"../shared/packages.js\";\n\nexport async function uninstallPackages(offline: boolean | undefined) {\n\tconst packageData = await readPackageData();\n\n\tawait removeDependencies(\n\t\t[\n\t\t\t\"@clack/prompts\",\n\t\t\t\"@prettier/sync\",\n\t\t\t\"all-contributors-cli\",\n\t\t\t\"chalk\",\n\t\t\t\"create\",\n\t\t\t\"cspell-populate-words\",\n\t\t\t\"execa\",\n\t\t\t\"git-remote-origin-url\",\n\t\t\t\"git-url-parse\",\n\t\t\t\"input-from-file\",\n\t\t\t\"input-from-file-json\",\n\t\t\t\"input-from-script\",\n\t\t\t\"js-yaml\",\n\t\t\t\"lazy-value\",\n\t\t\t\"npm-user\",\n\t\t\t\"object-strings-deep\",\n\t\t\t\"octokit\",\n\t\t\t\"octokit-from-auth\",\n\t\t\t\"parse-author\",\n\t\t\t\"parse-package-name\",\n\t\t\t\"populate-all-contributors-for-repository\",\n\t\t\t\"prettier\",\n\t\t\t\"remove-undefined-objects\",\n\t\t\t\"replace-in-file\",\n\t\t\t\"rimraf\",\n\t\t\t\"set-github-repository-labels\",\n\t\t\t\"sort-package-json\",\n\t\t\t\"title-case\",\n\t\t\t\"zod\",\n\t\t\t\"zod-validation-error\",\n\t\t],\n\t\tpackageData.dependencies,\n\t);\n\n\tawait removeDependencies(\n\t\t[\n\t\t\t\"@octokit/request-error\",\n\t\t\t\"@types/git-url-parse\",\n\t\t\t\"@types/js-yaml\",\n\t\t\t\"@types/parse-author\",\n\t\t\t\"all-contributors-cli\",\n\t\t\t\"c8\",\n\t\t\t\"create-testers\",\n\t\t\t\"eslint-config-prettier\",\n\t\t\t\"globby\",\n\t\t\t\"tsx\",\n\t\t],\n\t\tpackageData.devDependencies,\n\t\t\"-D\",\n\t);\n\n\tawait $`pnpm add prettier -D${offline ? \" --offline\" : \"\"}`;\n}\n"],"mappings":"AAAA,SAAS,SAAS;AAElB,SAAS,iBAAiB,0BAA0B;AAEpD,eAAsB,kBAAkB,SAA8B;AACrE,QAAM,cAAc,MAAM,gBAAgB;AAE1C,QAAM;AAAA,IACL;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACD;AAAA,IACA,YAAY;AAAA,EACb;AAEA,QAAM;AAAA,IACL;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACD;AAAA,IACA,YAAY;AAAA,IACZ;AAAA,EACD;AAEA,QAAM,wBAAwB,UAAU,eAAe,EAAE;AAC1D;","names":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/steps/updateAllContributorsTable.ts"],"sourcesContent":["import { $ } from \"execa\";\nimport * as fs from \"node:fs/promises\";\n\nimport { readFileSafeAsJson } from \"../shared/readFileSafeAsJson.js\";\nimport { AllContributorsData, Options } from \"../shared/types.js\";\nimport { formatJson } from \"./writing/creation/formatters/formatJson.js\";\n\nexport async function updateAllContributorsTable({\n\towner,\n\trepository,\n}: Pick<Options, \"owner\" | \"repository\">) {\n\tawait fs.writeFile(\n\t\t\".all-contributorsrc\",\n\t\tawait formatJson({\n\t\t\t...((await readFileSafeAsJson(\n\t\t\t\t\".all-contributorsrc\",\n\t\t\t)) as AllContributorsData),\n\t\t\tprojectName: repository,\n\t\t\tprojectOwner: owner,\n\t\t}),\n\t);\n\n\tawait $`
|
|
1
|
+
{"version":3,"sources":["../../src/steps/updateAllContributorsTable.ts"],"sourcesContent":["import { $ } from \"execa\";\nimport * as fs from \"node:fs/promises\";\n\nimport { readFileSafeAsJson } from \"../shared/readFileSafeAsJson.js\";\nimport { AllContributorsData, Options } from \"../shared/types.js\";\nimport { formatJson } from \"./writing/creation/formatters/formatJson.js\";\n\nexport async function updateAllContributorsTable({\n\towner,\n\trepository,\n}: Pick<Options, \"owner\" | \"repository\">) {\n\tawait fs.writeFile(\n\t\t\".all-contributorsrc\",\n\t\tawait formatJson({\n\t\t\t...((await readFileSafeAsJson(\n\t\t\t\t\".all-contributorsrc\",\n\t\t\t)) as AllContributorsData),\n\t\t\tprojectName: repository,\n\t\t\tprojectOwner: owner,\n\t\t}),\n\t);\n\n\tawait $`pnpx all-contributors-cli generate`;\n}\n"],"mappings":"AAAA,SAAS,SAAS;AAClB,YAAY,QAAQ;AAEpB,SAAS,0BAA0B;AAEnC,SAAS,kBAAkB;AAE3B,eAAsB,2BAA2B;AAAA,EAChD;AAAA,EACA;AACD,GAA0C;AACzC,QAAM,GAAG;AAAA,IACR;AAAA,IACA,MAAM,WAAW;AAAA,MAChB,GAAK,MAAM;AAAA,QACV;AAAA,MACD;AAAA,MACA,aAAa;AAAA,MACb,cAAc;AAAA,IACf,CAAC;AAAA,EACF;AAEA,QAAM;AACP;","names":[]}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { readFileSafeAsJson } from "../../../shared/readFileSafeAsJson.js";
|
|
2
|
+
import { formatJson } from "./formatters/formatJson.js";
|
|
3
|
+
async function createKnipConfig() {
|
|
4
|
+
const existingPackageJson = await readFileSafeAsJson(
|
|
5
|
+
"./package.json"
|
|
6
|
+
);
|
|
7
|
+
return await formatJson({
|
|
8
|
+
$schema: `https://unpkg.com/knip@${existingPackageJson?.devDependencies?.knip ?? "latest"}/schema.json`,
|
|
9
|
+
entry: ["src/index.ts!"],
|
|
10
|
+
ignoreExportsUsedInFile: {
|
|
11
|
+
interface: true,
|
|
12
|
+
type: true
|
|
13
|
+
},
|
|
14
|
+
project: ["src/**/*.ts!"]
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
export {
|
|
18
|
+
createKnipConfig
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=createKnipConfig.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/steps/writing/creation/createKnipConfig.ts"],"sourcesContent":["import { readFileSafeAsJson } from \"../../../shared/readFileSafeAsJson.js\";\nimport { PartialPackageData } from \"../../../shared/types.js\";\nimport { formatJson } from \"./formatters/formatJson.js\";\n\nexport async function createKnipConfig() {\n\tconst existingPackageJson = (await readFileSafeAsJson(\n\t\t\"./package.json\",\n\t)) as null | PartialPackageData;\n\n\treturn await formatJson({\n\t\t$schema: `https://unpkg.com/knip@${existingPackageJson?.devDependencies?.knip ?? \"latest\"}/schema.json`,\n\t\tentry: [\"src/index.ts!\"],\n\t\tignoreExportsUsedInFile: {\n\t\t\tinterface: true,\n\t\t\ttype: true,\n\t\t},\n\t\tproject: [\"src/**/*.ts!\"],\n\t});\n}\n"],"mappings":"AAAA,SAAS,0BAA0B;AAEnC,SAAS,kBAAkB;AAE3B,eAAsB,mBAAmB;AACxC,QAAM,sBAAuB,MAAM;AAAA,IAClC;AAAA,EACD;AAEA,SAAO,MAAM,WAAW;AAAA,IACvB,SAAS,0BAA0B,qBAAqB,iBAAiB,QAAQ,QAAQ;AAAA,IACzF,OAAO,CAAC,eAAe;AAAA,IACvB,yBAAyB;AAAA,MACxB,WAAW;AAAA,MACX,MAAM;AAAA,IACP;AAAA,IACA,SAAS,CAAC,cAAc;AAAA,EACzB,CAAC;AACF;","names":[]}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
+
import { SystemFetchers } from 'create';
|
|
1
2
|
import { Options } from '../../../shared/types.js';
|
|
2
3
|
import { Structure } from '../types.js';
|
|
3
4
|
import 'zod';
|
|
4
5
|
import '../../../shared/codes.js';
|
|
5
6
|
|
|
6
|
-
declare function createStructure(
|
|
7
|
+
declare function createStructure(providedOptions: Options, useNextEngine: boolean, fetchers?: SystemFetchers): Promise<Structure>;
|
|
7
8
|
|
|
8
9
|
export { createStructure };
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {
|
|
2
|
+
produceBase,
|
|
3
|
+
producePreset
|
|
4
|
+
} from "create";
|
|
2
5
|
import prettier from "prettier";
|
|
3
6
|
import { presetCommon } from "../../../next/presetCommon.js";
|
|
4
7
|
import { presetEverything } from "../../../next/presetEverything.js";
|
|
@@ -13,21 +16,31 @@ const presets = {
|
|
|
13
16
|
everything: presetEverything,
|
|
14
17
|
minimal: presetMinimal
|
|
15
18
|
};
|
|
16
|
-
async function createStructure(
|
|
17
|
-
const preset = useNextEngine &&
|
|
19
|
+
async function createStructure(providedOptions, useNextEngine, fetchers) {
|
|
20
|
+
const preset = useNextEngine && providedOptions.base && providedOptions.base !== "prompt" && presets[providedOptions.base];
|
|
18
21
|
if (preset) {
|
|
19
|
-
const
|
|
22
|
+
const options = {
|
|
23
|
+
...await produceBase(preset.base, {
|
|
24
|
+
fetchers,
|
|
25
|
+
options: providedOptions
|
|
26
|
+
}),
|
|
27
|
+
...providedOptions
|
|
28
|
+
};
|
|
29
|
+
const creation = await producePreset(preset, {
|
|
30
|
+
fetchers,
|
|
20
31
|
mode: "initialize",
|
|
21
32
|
options
|
|
22
33
|
});
|
|
23
34
|
return await recursivelyFormat(creation.files);
|
|
24
35
|
}
|
|
25
36
|
return {
|
|
26
|
-
".github": await createDotGitHub(
|
|
37
|
+
".github": await createDotGitHub(providedOptions),
|
|
27
38
|
".husky": createDotHusky(),
|
|
28
|
-
".vscode": await createDotVSCode(
|
|
29
|
-
...
|
|
30
|
-
|
|
39
|
+
".vscode": await createDotVSCode(providedOptions),
|
|
40
|
+
...providedOptions.mode !== "migrate" && {
|
|
41
|
+
src: await createSrc(providedOptions)
|
|
42
|
+
},
|
|
43
|
+
...await createRootFiles(providedOptions)
|
|
31
44
|
};
|
|
32
45
|
}
|
|
33
46
|
async function recursivelyFormat(files) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/steps/writing/creation/index.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"sources":["../../../../src/steps/writing/creation/index.ts"],"sourcesContent":["import {\n\tCreatedFiles,\n\tproduceBase,\n\tproducePreset,\n\tSystemFetchers,\n} from \"create\";\nimport prettier from \"prettier\";\n\nimport { presetCommon } from \"../../../next/presetCommon.js\";\nimport { presetEverything } from \"../../../next/presetEverything.js\";\nimport { presetMinimal } from \"../../../next/presetMinimal.js\";\nimport { Options } from \"../../../shared/types.js\";\nimport { Structure } from \"../types.js\";\nimport { createDotGitHub } from \"./dotGitHub/index.js\";\nimport { createDotHusky } from \"./dotHusky.js\";\nimport { createDotVSCode } from \"./dotVSCode.js\";\nimport { createRootFiles } from \"./rootFiles.js\";\nimport { createSrc } from \"./src.js\";\n\nconst presets = {\n\tcommon: presetCommon,\n\teverything: presetEverything,\n\tminimal: presetMinimal,\n};\n\nexport async function createStructure(\n\tprovidedOptions: Options,\n\tuseNextEngine: boolean,\n\tfetchers?: SystemFetchers,\n): Promise<Structure> {\n\tconst preset =\n\t\tuseNextEngine &&\n\t\tprovidedOptions.base &&\n\t\tprovidedOptions.base !== \"prompt\" &&\n\t\tpresets[providedOptions.base];\n\n\tif (preset) {\n\t\tconst options = {\n\t\t\t...(await produceBase(preset.base, {\n\t\t\t\tfetchers,\n\t\t\t\toptions: providedOptions,\n\t\t\t})),\n\t\t\t...providedOptions,\n\t\t};\n\t\tconst creation = await producePreset(preset, {\n\t\t\tfetchers,\n\t\t\tmode: \"initialize\",\n\t\t\toptions,\n\t\t});\n\n\t\treturn await recursivelyFormat(creation.files);\n\t}\n\n\treturn {\n\t\t\".github\": await createDotGitHub(providedOptions),\n\t\t\".husky\": createDotHusky(),\n\t\t\".vscode\": await createDotVSCode(providedOptions),\n\t\t...(providedOptions.mode !== \"migrate\" && {\n\t\t\tsrc: await createSrc(providedOptions),\n\t\t}),\n\t\t...(await createRootFiles(providedOptions)),\n\t};\n}\n\nasync function recursivelyFormat(files: CreatedFiles): Promise<Structure> {\n\tconst result: Structure = {};\n\n\tfor (const [key, value] of Object.entries(files)) {\n\t\tif (Array.isArray(value)) {\n\t\t\tresult[key] = await formatCreatedFile(key, value[0]);\n\t\t} else if (typeof value === \"string\") {\n\t\t\tresult[key] = await formatCreatedFile(key, value);\n\t\t} else if (typeof value === \"object\") {\n\t\t\tresult[key] = await recursivelyFormat(value);\n\t\t}\n\t}\n\n\treturn result;\n}\n\nconst asYaml = new Set([\n\t\".gitignore\",\n\t\".markdownlintignore\",\n\t\".nvmrc\",\n\t\".prettierignore\",\n\t\"pre-commit\",\n]);\n\nasync function formatCreatedFile(filepath: string, entry: string) {\n\t// For now, explicit yml files internally already have formatting applied\n\tif (filepath.endsWith(\".yml\")) {\n\t\treturn entry;\n\t}\n\n\treturn await prettier.format(entry, {\n\t\tuseTabs: true,\n\t\t...(asYaml.has(filepath) ? { parser: \"yaml\" } : { filepath }),\n\t});\n}\n"],"mappings":"AAAA;AAAA,EAEC;AAAA,EACA;AAAA,OAEM;AACP,OAAO,cAAc;AAErB,SAAS,oBAAoB;AAC7B,SAAS,wBAAwB;AACjC,SAAS,qBAAqB;AAG9B,SAAS,uBAAuB;AAChC,SAAS,sBAAsB;AAC/B,SAAS,uBAAuB;AAChC,SAAS,uBAAuB;AAChC,SAAS,iBAAiB;AAE1B,MAAM,UAAU;AAAA,EACf,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,SAAS;AACV;AAEA,eAAsB,gBACrB,iBACA,eACA,UACqB;AACrB,QAAM,SACL,iBACA,gBAAgB,QAChB,gBAAgB,SAAS,YACzB,QAAQ,gBAAgB,IAAI;AAE7B,MAAI,QAAQ;AACX,UAAM,UAAU;AAAA,MACf,GAAI,MAAM,YAAY,OAAO,MAAM;AAAA,QAClC;AAAA,QACA,SAAS;AAAA,MACV,CAAC;AAAA,MACD,GAAG;AAAA,IACJ;AACA,UAAM,WAAW,MAAM,cAAc,QAAQ;AAAA,MAC5C;AAAA,MACA,MAAM;AAAA,MACN;AAAA,IACD,CAAC;AAED,WAAO,MAAM,kBAAkB,SAAS,KAAK;AAAA,EAC9C;AAEA,SAAO;AAAA,IACN,WAAW,MAAM,gBAAgB,eAAe;AAAA,IAChD,UAAU,eAAe;AAAA,IACzB,WAAW,MAAM,gBAAgB,eAAe;AAAA,IAChD,GAAI,gBAAgB,SAAS,aAAa;AAAA,MACzC,KAAK,MAAM,UAAU,eAAe;AAAA,IACrC;AAAA,IACA,GAAI,MAAM,gBAAgB,eAAe;AAAA,EAC1C;AACD;AAEA,eAAe,kBAAkB,OAAyC;AACzE,QAAM,SAAoB,CAAC;AAE3B,aAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,KAAK,GAAG;AACjD,QAAI,MAAM,QAAQ,KAAK,GAAG;AACzB,aAAO,GAAG,IAAI,MAAM,kBAAkB,KAAK,MAAM,CAAC,CAAC;AAAA,IACpD,WAAW,OAAO,UAAU,UAAU;AACrC,aAAO,GAAG,IAAI,MAAM,kBAAkB,KAAK,KAAK;AAAA,IACjD,WAAW,OAAO,UAAU,UAAU;AACrC,aAAO,GAAG,IAAI,MAAM,kBAAkB,KAAK;AAAA,IAC5C;AAAA,EACD;AAEA,SAAO;AACR;AAEA,MAAM,SAAS,oBAAI,IAAI;AAAA,EACtB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,CAAC;AAED,eAAe,kBAAkB,UAAkB,OAAe;AAEjE,MAAI,SAAS,SAAS,MAAM,GAAG;AAC9B,WAAO;AAAA,EACR;AAEA,SAAO,MAAM,SAAS,OAAO,OAAO;AAAA,IACnC,SAAS;AAAA,IACT,GAAI,OAAO,IAAI,QAAQ,IAAI,EAAE,QAAQ,OAAO,IAAI,EAAE,SAAS;AAAA,EAC5D,CAAC;AACF;","names":[]}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { createCSpellConfig } from "./createCSpellConfig.js";
|
|
2
2
|
import { createDotGitignore } from "./createDotGitignore.js";
|
|
3
3
|
import { createESLintConfig } from "./createESLintConfig.js";
|
|
4
|
+
import { createKnipConfig } from "./createKnipConfig.js";
|
|
4
5
|
import { createTsupConfig } from "./createTsupConfig.js";
|
|
5
6
|
import { formatIgnoreFile } from "./formatters/formatIgnoreFile.js";
|
|
6
7
|
import { formatJson } from "./formatters/formatJson.js";
|
|
@@ -95,15 +96,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
|
95
96
|
"cspell.json": await createCSpellConfig(options)
|
|
96
97
|
},
|
|
97
98
|
...!options.excludeLintKnip && {
|
|
98
|
-
"knip.json": await
|
|
99
|
-
$schema: "https://unpkg.com/knip@latest/schema.json",
|
|
100
|
-
entry: ["src/index.ts!"],
|
|
101
|
-
ignoreExportsUsedInFile: {
|
|
102
|
-
interface: true,
|
|
103
|
-
type: true
|
|
104
|
-
},
|
|
105
|
-
project: ["src/**/*.ts!"]
|
|
106
|
-
})
|
|
99
|
+
"knip.json": await createKnipConfig()
|
|
107
100
|
},
|
|
108
101
|
"package.json": await writePackageJson(options),
|
|
109
102
|
"tsconfig.json": await formatJson({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/steps/writing/creation/rootFiles.ts"],"sourcesContent":["import { Options } from \"../../../shared/types.js\";\nimport { createCSpellConfig } from \"./createCSpellConfig.js\";\nimport { createDotGitignore } from \"./createDotGitignore.js\";\nimport { createESLintConfig } from \"./createESLintConfig.js\";\nimport { createTsupConfig } from \"./createTsupConfig.js\";\nimport { formatIgnoreFile } from \"./formatters/formatIgnoreFile.js\";\nimport { formatJson } from \"./formatters/formatJson.js\";\nimport { writeAllContributorsRC } from \"./writeAllContributorsRC.js\";\nimport { writePackageJson } from \"./writePackageJson.js\";\n\nexport async function createRootFiles(options: Options) {\n\treturn {\n\t\t\".all-contributorsrc\": await writeAllContributorsRC(options),\n\t\t\".gitignore\": createDotGitignore(options),\n\t\t\"eslint.config.js\": await createESLintConfig(options),\n\t\t...(!options.excludeLintMd && {\n\t\t\t\".markdownlint.json\": await formatJson({\n\t\t\t\textends: \"markdownlint/style/prettier\",\n\t\t\t\t\"first-line-h1\": false,\n\t\t\t\t\"no-inline-html\": false,\n\t\t\t}),\n\t\t\t\".markdownlintignore\": formatIgnoreFile([\n\t\t\t\t\".github/CODE_OF_CONDUCT.md\",\n\t\t\t\t\"CHANGELOG.md\",\n\t\t\t\t\"lib/\",\n\t\t\t\t\"node_modules/\",\n\t\t\t]),\n\t\t}),\n\t\t\".nvmrc\": `20.18.0\\n`,\n\t\t\".prettierignore\": formatIgnoreFile([\n\t\t\t...(options.excludeAllContributors ? [] : [\"/.all-contributorsrc\"]),\n\t\t\t\"/.husky\",\n\t\t\t...(options.excludeTests ? [] : [\"/coverage\"]),\n\t\t\t\"/lib\",\n\t\t\t\"/pnpm-lock.yaml\",\n\t\t]),\n\t\t\".prettierrc.json\": await formatJson({\n\t\t\t$schema: \"http://json.schemastore.org/prettierrc\",\n\t\t\toverrides: [\n\t\t\t\t{\n\t\t\t\t\tfiles: \".nvmrc\",\n\t\t\t\t\toptions: { parser: \"yaml\" },\n\t\t\t\t},\n\t\t\t],\n\t\t\tplugins: [\n\t\t\t\t\"prettier-plugin-curly\",\n\t\t\t\t\"prettier-plugin-packagejson\",\n\t\t\t\t\"prettier-plugin-sh\",\n\t\t\t],\n\t\t\tuseTabs: true,\n\t\t}),\n\t\t...(!options.excludeReleases && {\n\t\t\t\".release-it.json\": await formatJson({\n\t\t\t\tgit: {\n\t\t\t\t\tcommitMessage: \"chore: release v${version}\",\n\t\t\t\t\trequireCommits: true,\n\t\t\t\t},\n\t\t\t\tgithub: {\n\t\t\t\t\tautoGenerate: true,\n\t\t\t\t\trelease: true,\n\t\t\t\t\treleaseName: \"v${version}\",\n\t\t\t\t},\n\t\t\t\tnpm: {\n\t\t\t\t\tpublishArgs: [`--access ${options.access}`, \"--provenance\"],\n\t\t\t\t},\n\t\t\t\tplugins: {\n\t\t\t\t\t\"@release-it/conventional-changelog\": {\n\t\t\t\t\t\tinfile: \"CHANGELOG.md\",\n\t\t\t\t\t\tpreset: \"angular\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t}),\n\t\t}),\n\t\t\"LICENSE.md\": `# MIT License\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n'Software'), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n`,\n\t\t...(!options.excludeLintSpelling && {\n\t\t\t\"cspell.json\": await createCSpellConfig(options),\n\t\t}),\n\t\t...(!options.excludeLintKnip && {\n\t\t\t\"knip.json\": await
|
|
1
|
+
{"version":3,"sources":["../../../../src/steps/writing/creation/rootFiles.ts"],"sourcesContent":["import { Options } from \"../../../shared/types.js\";\nimport { createCSpellConfig } from \"./createCSpellConfig.js\";\nimport { createDotGitignore } from \"./createDotGitignore.js\";\nimport { createESLintConfig } from \"./createESLintConfig.js\";\nimport { createKnipConfig } from \"./createKnipConfig.js\";\nimport { createTsupConfig } from \"./createTsupConfig.js\";\nimport { formatIgnoreFile } from \"./formatters/formatIgnoreFile.js\";\nimport { formatJson } from \"./formatters/formatJson.js\";\nimport { writeAllContributorsRC } from \"./writeAllContributorsRC.js\";\nimport { writePackageJson } from \"./writePackageJson.js\";\n\nexport async function createRootFiles(options: Options) {\n\treturn {\n\t\t\".all-contributorsrc\": await writeAllContributorsRC(options),\n\t\t\".gitignore\": createDotGitignore(options),\n\t\t\"eslint.config.js\": await createESLintConfig(options),\n\t\t...(!options.excludeLintMd && {\n\t\t\t\".markdownlint.json\": await formatJson({\n\t\t\t\textends: \"markdownlint/style/prettier\",\n\t\t\t\t\"first-line-h1\": false,\n\t\t\t\t\"no-inline-html\": false,\n\t\t\t}),\n\t\t\t\".markdownlintignore\": formatIgnoreFile([\n\t\t\t\t\".github/CODE_OF_CONDUCT.md\",\n\t\t\t\t\"CHANGELOG.md\",\n\t\t\t\t\"lib/\",\n\t\t\t\t\"node_modules/\",\n\t\t\t]),\n\t\t}),\n\t\t\".nvmrc\": `20.18.0\\n`,\n\t\t\".prettierignore\": formatIgnoreFile([\n\t\t\t...(options.excludeAllContributors ? [] : [\"/.all-contributorsrc\"]),\n\t\t\t\"/.husky\",\n\t\t\t...(options.excludeTests ? [] : [\"/coverage\"]),\n\t\t\t\"/lib\",\n\t\t\t\"/pnpm-lock.yaml\",\n\t\t]),\n\t\t\".prettierrc.json\": await formatJson({\n\t\t\t$schema: \"http://json.schemastore.org/prettierrc\",\n\t\t\toverrides: [\n\t\t\t\t{\n\t\t\t\t\tfiles: \".nvmrc\",\n\t\t\t\t\toptions: { parser: \"yaml\" },\n\t\t\t\t},\n\t\t\t],\n\t\t\tplugins: [\n\t\t\t\t\"prettier-plugin-curly\",\n\t\t\t\t\"prettier-plugin-packagejson\",\n\t\t\t\t\"prettier-plugin-sh\",\n\t\t\t],\n\t\t\tuseTabs: true,\n\t\t}),\n\t\t...(!options.excludeReleases && {\n\t\t\t\".release-it.json\": await formatJson({\n\t\t\t\tgit: {\n\t\t\t\t\tcommitMessage: \"chore: release v${version}\",\n\t\t\t\t\trequireCommits: true,\n\t\t\t\t},\n\t\t\t\tgithub: {\n\t\t\t\t\tautoGenerate: true,\n\t\t\t\t\trelease: true,\n\t\t\t\t\treleaseName: \"v${version}\",\n\t\t\t\t},\n\t\t\t\tnpm: {\n\t\t\t\t\tpublishArgs: [`--access ${options.access}`, \"--provenance\"],\n\t\t\t\t},\n\t\t\t\tplugins: {\n\t\t\t\t\t\"@release-it/conventional-changelog\": {\n\t\t\t\t\t\tinfile: \"CHANGELOG.md\",\n\t\t\t\t\t\tpreset: \"angular\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t}),\n\t\t}),\n\t\t\"LICENSE.md\": `# MIT License\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n'Software'), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n`,\n\t\t...(!options.excludeLintSpelling && {\n\t\t\t\"cspell.json\": await createCSpellConfig(options),\n\t\t}),\n\t\t...(!options.excludeLintKnip && {\n\t\t\t\"knip.json\": await createKnipConfig(),\n\t\t}),\n\t\t\"package.json\": await writePackageJson(options),\n\t\t\"tsconfig.json\": await formatJson({\n\t\t\tcompilerOptions: {\n\t\t\t\tdeclaration: true,\n\t\t\t\tdeclarationMap: true,\n\t\t\t\tesModuleInterop: true,\n\t\t\t\tmodule: \"NodeNext\",\n\t\t\t\tmoduleResolution: \"NodeNext\",\n\t\t\t\tnoEmit: true,\n\t\t\t\tresolveJsonModule: true,\n\t\t\t\tskipLibCheck: true,\n\t\t\t\tsourceMap: true,\n\t\t\t\tstrict: true,\n\t\t\t\ttarget: \"ES2022\",\n\t\t\t},\n\t\t\tinclude: [\"src\"],\n\t\t}),\n\t\t\"tsup.config.ts\": await createTsupConfig(options),\n\t\t...(!options.excludeTests && {\n\t\t\t\"vitest.config.ts\": `import { defineConfig } from \"vitest/config\";\n\nexport default defineConfig({\n\ttest: {\n\t\tclearMocks: true,\n\t\tcoverage: {\n\t\t\tall: true,\n\t\t\texclude: [\"lib\"],\n\t\t\tinclude: [\"src\"],\n\t\t\treporter: [\"html\", \"lcov\"],\n\t\t},\n\t\texclude: [\"lib\", \"node_modules\"],\n\t\tsetupFiles: [\"console-fail-test/setup\"],\n\t},\n});\n`,\n\t\t}),\n\t};\n}\n"],"mappings":"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","names":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "create-typescript-app",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.79.0",
|
|
4
4
|
"description": "Quickstart-friendly TypeScript template with comprehensive, configurable, opinionated tooling. ❤️🔥",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -41,24 +41,28 @@
|
|
|
41
41
|
"*": "prettier --ignore-unknown --write"
|
|
42
42
|
},
|
|
43
43
|
"dependencies": {
|
|
44
|
-
"@clack/prompts": "^0.
|
|
44
|
+
"@clack/prompts": "^0.9.0",
|
|
45
45
|
"@prettier/sync": "^0.5.2",
|
|
46
|
-
"chalk": "^5.
|
|
47
|
-
"create": "0.1.0-alpha.
|
|
46
|
+
"chalk": "^5.4.1",
|
|
47
|
+
"create": "0.1.0-alpha.8",
|
|
48
|
+
"cspell-populate-words": "^0.3.0",
|
|
48
49
|
"execa": "^9.5.2",
|
|
49
50
|
"git-remote-origin-url": "^4.0.0",
|
|
50
51
|
"git-url-parse": "^16.0.0",
|
|
51
|
-
"input-from-file": "0.1.0-alpha.
|
|
52
|
-
"input-from-file-json": "0.1.0-alpha.
|
|
52
|
+
"input-from-file": "0.1.0-alpha.4",
|
|
53
|
+
"input-from-file-json": "0.1.0-alpha.4",
|
|
54
|
+
"input-from-script": "0.1.0-alpha.4",
|
|
53
55
|
"js-yaml": "^4.1.0",
|
|
54
56
|
"lazy-value": "^3.0.0",
|
|
55
57
|
"npm-user": "^6.1.1",
|
|
58
|
+
"object-strings-deep": "^0.1.1",
|
|
56
59
|
"octokit": "^4.0.2",
|
|
57
60
|
"octokit-from-auth": "^0.3.0",
|
|
58
61
|
"parse-author": "^2.0.0",
|
|
59
62
|
"parse-package-name": "^1.0.0",
|
|
60
63
|
"populate-all-contributors-for-repository": "^0.1.2",
|
|
61
64
|
"prettier": "^3.4.2",
|
|
65
|
+
"remove-undefined-objects": "^5.0.0",
|
|
62
66
|
"replace-in-file": "^8.3.0",
|
|
63
67
|
"rimraf": "^6.0.1",
|
|
64
68
|
"set-github-repository-labels": "^0.1.0",
|
|
@@ -78,26 +82,26 @@
|
|
|
78
82
|
"@types/node": "22.10.2",
|
|
79
83
|
"@types/parse-author": "2.0.3",
|
|
80
84
|
"@vitest/coverage-v8": "2.1.8",
|
|
81
|
-
"@vitest/eslint-plugin": "1.1.
|
|
85
|
+
"@vitest/eslint-plugin": "1.1.20",
|
|
82
86
|
"all-contributors-cli": "6.26.1",
|
|
83
87
|
"c8": "10.1.3",
|
|
84
88
|
"console-fail-test": "0.5.0",
|
|
85
|
-
"create-testers": "0.1.0-alpha.
|
|
89
|
+
"create-testers": "0.1.0-alpha.8",
|
|
86
90
|
"cspell": "8.17.1",
|
|
87
91
|
"eslint": "9.17.0",
|
|
88
92
|
"eslint-plugin-jsdoc": "50.6.1",
|
|
89
93
|
"eslint-plugin-jsonc": "2.18.2",
|
|
90
94
|
"eslint-plugin-markdown": "5.1.0",
|
|
91
|
-
"eslint-plugin-n": "17.15.
|
|
95
|
+
"eslint-plugin-n": "17.15.1",
|
|
92
96
|
"eslint-plugin-package-json": "0.18.0",
|
|
93
|
-
"eslint-plugin-perfectionist": "4.
|
|
97
|
+
"eslint-plugin-perfectionist": "4.4.0",
|
|
94
98
|
"eslint-plugin-regexp": "2.7.0",
|
|
95
99
|
"eslint-plugin-yml": "1.16.0",
|
|
96
100
|
"globby": "14.0.2",
|
|
97
101
|
"husky": "9.1.7",
|
|
98
|
-
"knip": "5.41.
|
|
102
|
+
"knip": "5.41.1",
|
|
99
103
|
"lint-staged": "15.2.11",
|
|
100
|
-
"markdownlint": "0.37.
|
|
104
|
+
"markdownlint": "0.37.2",
|
|
101
105
|
"markdownlint-cli": "0.43.0",
|
|
102
106
|
"prettier-plugin-curly": "0.3.1",
|
|
103
107
|
"prettier-plugin-packagejson": "2.5.6",
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import { z } from "zod";
|
|
2
|
-
import { base } from "../base.js";
|
|
3
|
-
const blockRepositoryBranchProtection = base.createBlock({
|
|
4
|
-
about: {
|
|
5
|
-
name: "Repository Branch Protection"
|
|
6
|
-
},
|
|
7
|
-
addons: {
|
|
8
|
-
requiredStatusChecks: z.array(z.string()).default([])
|
|
9
|
-
},
|
|
10
|
-
produce({ addons, options }) {
|
|
11
|
-
return {
|
|
12
|
-
requests: [
|
|
13
|
-
{
|
|
14
|
-
id: "branch-protection",
|
|
15
|
-
async send({ octokit }) {
|
|
16
|
-
await octokit.request(
|
|
17
|
-
`PUT /repos/{owner}/{repository}/branches/{main}/protection`,
|
|
18
|
-
{
|
|
19
|
-
allow_deletions: false,
|
|
20
|
-
allow_force_pushes: true,
|
|
21
|
-
allow_fork_pushes: false,
|
|
22
|
-
allow_fork_syncing: true,
|
|
23
|
-
block_creations: false,
|
|
24
|
-
branch: "main",
|
|
25
|
-
enforce_admins: false,
|
|
26
|
-
owner: options.owner,
|
|
27
|
-
repo: options.repository,
|
|
28
|
-
required_conversation_resolution: true,
|
|
29
|
-
required_linear_history: false,
|
|
30
|
-
required_pull_request_reviews: null,
|
|
31
|
-
required_status_checks: {
|
|
32
|
-
checks: addons.requiredStatusChecks.map((context) => ({
|
|
33
|
-
context
|
|
34
|
-
})),
|
|
35
|
-
strict: false
|
|
36
|
-
},
|
|
37
|
-
restrictions: null
|
|
38
|
-
}
|
|
39
|
-
);
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
]
|
|
43
|
-
};
|
|
44
|
-
}
|
|
45
|
-
});
|
|
46
|
-
export {
|
|
47
|
-
blockRepositoryBranchProtection
|
|
48
|
-
};
|
|
49
|
-
//# sourceMappingURL=blockRepositoryBranchProtection.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/next/blocks/blockRepositoryBranchProtection.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { base } from \"../base.js\";\n\nexport const blockRepositoryBranchProtection = base.createBlock({\n\tabout: {\n\t\tname: \"Repository Branch Protection\",\n\t},\n\taddons: {\n\t\trequiredStatusChecks: z.array(z.string()).default([]),\n\t},\n\tproduce({ addons, options }) {\n\t\treturn {\n\t\t\trequests: [\n\t\t\t\t{\n\t\t\t\t\tid: \"branch-protection\",\n\t\t\t\t\tasync send({ octokit }) {\n\t\t\t\t\t\tawait octokit.request(\n\t\t\t\t\t\t\t`PUT /repos/{owner}/{repository}/branches/{main}/protection`,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tallow_deletions: false,\n\t\t\t\t\t\t\t\tallow_force_pushes: true,\n\t\t\t\t\t\t\t\tallow_fork_pushes: false,\n\t\t\t\t\t\t\t\tallow_fork_syncing: true,\n\t\t\t\t\t\t\t\tblock_creations: false,\n\t\t\t\t\t\t\t\tbranch: \"main\",\n\t\t\t\t\t\t\t\tenforce_admins: false,\n\t\t\t\t\t\t\t\towner: options.owner,\n\t\t\t\t\t\t\t\trepo: options.repository,\n\t\t\t\t\t\t\t\trequired_conversation_resolution: true,\n\t\t\t\t\t\t\t\trequired_linear_history: false,\n\t\t\t\t\t\t\t\trequired_pull_request_reviews: null,\n\t\t\t\t\t\t\t\trequired_status_checks: {\n\t\t\t\t\t\t\t\t\tchecks: addons.requiredStatusChecks.map((context) => ({\n\t\t\t\t\t\t\t\t\t\tcontext,\n\t\t\t\t\t\t\t\t\t})),\n\t\t\t\t\t\t\t\t\tstrict: false,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\trestrictions: null,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t);\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t],\n\t\t};\n\t},\n});\n"],"mappings":"AAAA,SAAS,SAAS;AAElB,SAAS,YAAY;AAEd,MAAM,kCAAkC,KAAK,YAAY;AAAA,EAC/D,OAAO;AAAA,IACN,MAAM;AAAA,EACP;AAAA,EACA,QAAQ;AAAA,IACP,sBAAsB,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,CAAC;AAAA,EACrD;AAAA,EACA,QAAQ,EAAE,QAAQ,QAAQ,GAAG;AAC5B,WAAO;AAAA,MACN,UAAU;AAAA,QACT;AAAA,UACC,IAAI;AAAA,UACJ,MAAM,KAAK,EAAE,QAAQ,GAAG;AACvB,kBAAM,QAAQ;AAAA,cACb;AAAA,cACA;AAAA,gBACC,iBAAiB;AAAA,gBACjB,oBAAoB;AAAA,gBACpB,mBAAmB;AAAA,gBACnB,oBAAoB;AAAA,gBACpB,iBAAiB;AAAA,gBACjB,QAAQ;AAAA,gBACR,gBAAgB;AAAA,gBAChB,OAAO,QAAQ;AAAA,gBACf,MAAM,QAAQ;AAAA,gBACd,kCAAkC;AAAA,gBAClC,yBAAyB;AAAA,gBACzB,+BAA+B;AAAA,gBAC/B,wBAAwB;AAAA,kBACvB,QAAQ,OAAO,qBAAqB,IAAI,CAAC,aAAa;AAAA,oBACrD;AAAA,kBACD,EAAE;AAAA,kBACF,QAAQ;AAAA,gBACT;AAAA,gBACA,cAAc;AAAA,cACf;AAAA,YACD;AAAA,UACD;AAAA,QACD;AAAA,MACD;AAAA,IACD;AAAA,EACD;AACD,CAAC;","names":[]}
|