@projitect/blueprint-gitignore 0.0.0-stage → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Kapil Easwar
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,70 @@
1
+ {
2
+ "name": "@projitect/blueprint-gitignore",
3
+ "version": "1.0.0",
4
+ "description": "Composable .gitignore sections (macOS, Windows, Linux, Node, Next.js, VS Code, JetBrains, tsbuildinfo, Vite, Astro, Nuxt, SvelteKit, Angular, Vue, Storybook, Yarn, pnpm, Vim, Sublime Text, Eclipse) for projitect.",
5
+ "repository": {
6
+ "type": "git",
7
+ "url": "git+https://github.com/projitect/projitect.git",
8
+ "directory": "packages/blueprint-gitignore"
9
+ },
10
+ "license": "MIT",
11
+ "type": "module",
12
+ "exports": {
13
+ ".": {
14
+ "types": "./dist/src/index.d.ts",
15
+ "import": "./dist/src/index.js"
16
+ }
17
+ },
18
+ "files": [
19
+ "dist",
20
+ "src",
21
+ "!**/*.tsbuildinfo"
22
+ ],
23
+ "scripts": {
24
+ "build": "tsc --build",
25
+ "build:clean": "tsc --build --clean",
26
+ "tc": "tsc --build"
27
+ },
28
+ "devDependencies": {
29
+ "@projitect/blueprint": "workspace:*",
30
+ "@projitect/core": "workspace:*",
31
+ "@projitect/test-kit": "workspace:*",
32
+ "effect": "4.0.0-rc.111",
33
+ "typescript": "5.9.3"
34
+ },
35
+ "peerDependencies": {
36
+ "@projitect/blueprint": "workspace:*",
37
+ "@projitect/core": "workspace:*",
38
+ "effect": "4.0.0-rc.111"
39
+ },
40
+ "engines": {
41
+ "node": ">=22.12.0"
42
+ },
43
+ "projitect": {
44
+ "type": "blueprint-set",
45
+ "import": "import { gitignores } from \"@projitect/blueprint-gitignore\"",
46
+ "callTemplate": "gitignores.{section}()",
47
+ "sections": [
48
+ "macOs",
49
+ "windows",
50
+ "linux",
51
+ "node",
52
+ "next",
53
+ "vscode",
54
+ "jetbrains",
55
+ "tsbuildinfo",
56
+ "vite",
57
+ "astro",
58
+ "nuxt",
59
+ "svelteKit",
60
+ "angular",
61
+ "vue",
62
+ "storybook",
63
+ "yarn",
64
+ "pnpm",
65
+ "vim",
66
+ "sublimeText",
67
+ "eclipse"
68
+ ]
69
+ }
70
+ }
@@ -0,0 +1,36 @@
1
+ /**
2
+ * @projitect/blueprint-gitignore
3
+ *
4
+ * Twenty composable `.gitignore` sections. Each function returns a region-mode blueprint that
5
+ * owns its named section between `# pjt:gitignore:<name> start` and `# pjt:gitignore:<name> end`
6
+ * markers — so multiple sections coexist in the same `.gitignore` file without stepping on each
7
+ * other, and a CI run of `pjt inspect` catches any hand-edit drift.
8
+ *
9
+ * Templates are sourced from https://github.com/github/gitignore (MIT-licensed). Use only the
10
+ * ones you need; this package does not assume one-size-fits-all.
11
+ */
12
+ import type { Blueprint } from "@projitect/core";
13
+ export declare const gitignores: {
14
+ readonly macOs: () => Blueprint.Blueprint;
15
+ readonly windows: () => Blueprint.Blueprint;
16
+ readonly linux: () => Blueprint.Blueprint;
17
+ readonly node: () => Blueprint.Blueprint;
18
+ readonly next: () => Blueprint.Blueprint;
19
+ readonly vscode: () => Blueprint.Blueprint;
20
+ readonly jetbrains: () => Blueprint.Blueprint;
21
+ readonly tsbuildinfo: () => Blueprint.Blueprint;
22
+ readonly vite: () => Blueprint.Blueprint;
23
+ readonly astro: () => Blueprint.Blueprint;
24
+ readonly nuxt: () => Blueprint.Blueprint;
25
+ readonly svelteKit: () => Blueprint.Blueprint;
26
+ readonly angular: () => Blueprint.Blueprint;
27
+ readonly vue: () => Blueprint.Blueprint;
28
+ readonly storybook: () => Blueprint.Blueprint;
29
+ readonly yarn: () => Blueprint.Blueprint;
30
+ readonly pnpm: () => Blueprint.Blueprint;
31
+ readonly vim: () => Blueprint.Blueprint;
32
+ readonly sublimeText: () => Blueprint.Blueprint;
33
+ readonly eclipse: () => Blueprint.Blueprint;
34
+ };
35
+ export type GitignoreSection = keyof typeof gitignores;
36
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAoBhD,eAAO,MAAM,UAAU;0BACV,SAAS,CAAC,SAAS;4BACjB,SAAS,CAAC,SAAS;0BACrB,SAAS,CAAC,SAAS;yBACpB,SAAS,CAAC,SAAS;yBACnB,SAAS,CAAC,SAAS;2BACjB,SAAS,CAAC,SAAS;8BAChB,SAAS,CAAC,SAAS;gCACjB,SAAS,CAAC,SAAS;yBAC1B,SAAS,CAAC,SAAS;0BAClB,SAAS,CAAC,SAAS;yBACpB,SAAS,CAAC,SAAS;8BACd,SAAS,CAAC,SAAS;4BACrB,SAAS,CAAC,SAAS;wBACvB,SAAS,CAAC,SAAS;8BACb,SAAS,CAAC,SAAS;yBACxB,SAAS,CAAC,SAAS;yBACnB,SAAS,CAAC,SAAS;wBACpB,SAAS,CAAC,SAAS;gCACX,SAAS,CAAC,SAAS;4BACvB,SAAS,CAAC,SAAS;CACxB,CAAA;AAEV,MAAM,MAAM,gBAAgB,GAAG,MAAM,OAAO,UAAU,CAAA"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * @projitect/blueprint-gitignore
3
+ *
4
+ * Twenty composable `.gitignore` sections. Each function returns a region-mode blueprint that
5
+ * owns its named section between `# pjt:gitignore:<name> start` and `# pjt:gitignore:<name> end`
6
+ * markers — so multiple sections coexist in the same `.gitignore` file without stepping on each
7
+ * other, and a CI run of `pjt inspect` catches any hand-edit drift.
8
+ *
9
+ * Templates are sourced from https://github.com/github/gitignore (MIT-licensed). Use only the
10
+ * ones you need; this package does not assume one-size-fits-all.
11
+ */
12
+ import { ignoreSection } from "@projitect/blueprint";
13
+ import manifest from "../package.json" with { type: "json" };
14
+ import * as templates from "./templates.js";
15
+ // Read the version from the package manifest (emitted next to `dist/src`) so a release bump
16
+ // reaches `.pjt.lock` without a hand-edited constant. JSON import keeps this runtime-pure.
17
+ const PACKAGE_VERSION = manifest.version;
18
+ // Built on `ignoreSection` from the SDK rather than `regionFile` directly — the name documents
19
+ // intent, and any future enhancement to ignore-style fencing (e.g. dedup-aware merging) lands
20
+ // in one place. On-disk output is byte-identical to the old direct-`regionFile` shape.
21
+ const makeSection = (name, content) => ignoreSection({
22
+ id: `pjt:gitignore:${name}`,
23
+ version: PACKAGE_VERSION,
24
+ description: `gitignore section for ${name}`,
25
+ path: ".gitignore",
26
+ content,
27
+ });
28
+ export const gitignores = {
29
+ macOs: () => makeSection("macos", templates.macOs),
30
+ windows: () => makeSection("windows", templates.windows),
31
+ linux: () => makeSection("linux", templates.linux),
32
+ node: () => makeSection("node", templates.node),
33
+ next: () => makeSection("next", templates.next),
34
+ vscode: () => makeSection("vscode", templates.vscode),
35
+ jetbrains: () => makeSection("jetbrains", templates.jetbrains),
36
+ tsbuildinfo: () => makeSection("tsbuildinfo", templates.tsbuildinfo),
37
+ vite: () => makeSection("vite", templates.vite),
38
+ astro: () => makeSection("astro", templates.astro),
39
+ nuxt: () => makeSection("nuxt", templates.nuxt),
40
+ svelteKit: () => makeSection("sveltekit", templates.svelteKit),
41
+ angular: () => makeSection("angular", templates.angular),
42
+ vue: () => makeSection("vue", templates.vue),
43
+ storybook: () => makeSection("storybook", templates.storybook),
44
+ yarn: () => makeSection("yarn", templates.yarn),
45
+ pnpm: () => makeSection("pnpm", templates.pnpm),
46
+ vim: () => makeSection("vim", templates.vim),
47
+ sublimeText: () => makeSection("sublime-text", templates.sublimeText),
48
+ eclipse: () => makeSection("eclipse", templates.eclipse),
49
+ };
50
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAEpD,OAAO,QAAQ,MAAM,iBAAiB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAA;AAC5D,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAE3C,4FAA4F;AAC5F,2FAA2F;AAC3F,MAAM,eAAe,GAAG,QAAQ,CAAC,OAAO,CAAA;AAExC,+FAA+F;AAC/F,8FAA8F;AAC9F,uFAAuF;AACvF,MAAM,WAAW,GAAG,CAAC,IAAY,EAAE,OAAe,EAAuB,EAAE,CACzE,aAAa,CAAC;IACZ,EAAE,EAAE,iBAAiB,IAAI,EAAE;IAC3B,OAAO,EAAE,eAAe;IACxB,WAAW,EAAE,yBAAyB,IAAI,EAAE;IAC5C,IAAI,EAAE,YAAY;IAClB,OAAO;CACR,CAAC,CAAA;AAEJ,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,KAAK,EAAE,GAAwB,EAAE,CAAC,WAAW,CAAC,OAAO,EAAE,SAAS,CAAC,KAAK,CAAC;IACvE,OAAO,EAAE,GAAwB,EAAE,CAAC,WAAW,CAAC,SAAS,EAAE,SAAS,CAAC,OAAO,CAAC;IAC7E,KAAK,EAAE,GAAwB,EAAE,CAAC,WAAW,CAAC,OAAO,EAAE,SAAS,CAAC,KAAK,CAAC;IACvE,IAAI,EAAE,GAAwB,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC;IACpE,IAAI,EAAE,GAAwB,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC;IACpE,MAAM,EAAE,GAAwB,EAAE,CAAC,WAAW,CAAC,QAAQ,EAAE,SAAS,CAAC,MAAM,CAAC;IAC1E,SAAS,EAAE,GAAwB,EAAE,CAAC,WAAW,CAAC,WAAW,EAAE,SAAS,CAAC,SAAS,CAAC;IACnF,WAAW,EAAE,GAAwB,EAAE,CAAC,WAAW,CAAC,aAAa,EAAE,SAAS,CAAC,WAAW,CAAC;IACzF,IAAI,EAAE,GAAwB,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC;IACpE,KAAK,EAAE,GAAwB,EAAE,CAAC,WAAW,CAAC,OAAO,EAAE,SAAS,CAAC,KAAK,CAAC;IACvE,IAAI,EAAE,GAAwB,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC;IACpE,SAAS,EAAE,GAAwB,EAAE,CAAC,WAAW,CAAC,WAAW,EAAE,SAAS,CAAC,SAAS,CAAC;IACnF,OAAO,EAAE,GAAwB,EAAE,CAAC,WAAW,CAAC,SAAS,EAAE,SAAS,CAAC,OAAO,CAAC;IAC7E,GAAG,EAAE,GAAwB,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC;IACjE,SAAS,EAAE,GAAwB,EAAE,CAAC,WAAW,CAAC,WAAW,EAAE,SAAS,CAAC,SAAS,CAAC;IACnF,IAAI,EAAE,GAAwB,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC;IACpE,IAAI,EAAE,GAAwB,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC;IACpE,GAAG,EAAE,GAAwB,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC;IACjE,WAAW,EAAE,GAAwB,EAAE,CAAC,WAAW,CAAC,cAAc,EAAE,SAAS,CAAC,WAAW,CAAC;IAC1F,OAAO,EAAE,GAAwB,EAAE,CAAC,WAAW,CAAC,SAAS,EAAE,SAAS,CAAC,OAAO,CAAC;CACrE,CAAA"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Gitignore section templates. Sourced from https://github.com/github/gitignore (MIT-licensed)
3
+ * with minor adaptations. Kept inline rather than fetched at runtime so blueprint authors can
4
+ * use these offline and during CI.
5
+ *
6
+ * A future `scripts/sync-templates.ts` will refresh these against upstream on a schedule and
7
+ * raise a PR if anything drifts.
8
+ */
9
+ export declare const macOs = "# General\n.DS_Store\n.AppleDouble\n.LSOverride\n\n# Icon must end with two \\r\nIcon\n\n# Thumbnails\n._*\n\n# Files that might appear in the root of a volume\n.DocumentRevisions-V100\n.fseventsd\n.Spotlight-V100\n.TemporaryItems\n.Trashes\n.VolumeIcon.icns\n.com.apple.timemachine.donotpresent\n\n# Directories potentially created on remote AFP share\n.AppleDB\n.AppleDesktop\nNetwork Trash Folder\nTemporary Items\n.apple\n";
10
+ export declare const windows = "# Windows thumbnail cache files\nThumbs.db\nThumbs.db:encryptable\nehthumbs.db\nehthumbs_vista.db\n\n# Dump file\n*.stackdump\n\n# Folder config file\n[Dd]esktop.ini\n\n# Recycle Bin used on file shares\n$RECYCLE.BIN/\n\n# Windows Installer files\n*.cab\n*.msi\n*.msix\n*.msm\n*.msp\n\n# Windows shortcuts\n*.lnk\n";
11
+ export declare const linux = "*~\n\n# temporary files which can be created if a process still has a handle open of a deleted file\n.fuse_hidden*\n\n# KDE directory preferences\n.directory\n\n# Linux trash folder which might appear on any partition or disk\n.Trash-*\n\n# .nfs files are created when an open file is removed but is still being accessed\n.nfs*\n";
12
+ export declare const node = "# Logs\nlogs\n*.log\nnpm-debug.log*\nyarn-debug.log*\nyarn-error.log*\nlerna-debug.log*\n.pnpm-debug.log*\n\n# Diagnostic reports (https://nodejs.org/api/report.html)\nreport.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json\n\n# Runtime data\npids\n*.pid\n*.seed\n*.pid.lock\n\n# Coverage directory used by tools like istanbul\ncoverage\n*.lcov\n.nyc_output\n\n# Dependency directories\nnode_modules/\njspm_packages/\n\n# Optional npm cache directory\n.npm\n\n# Optional eslint cache\n.eslintcache\n\n# Optional stylelint cache\n.stylelintcache\n\n# Microbundle cache\n.rpt2_cache/\n.rts2_cache_cjs/\n.rts2_cache_es/\n.rts2_cache_umd/\n\n# Optional REPL history\n.node_repl_history\n\n# Output of 'npm pack'\n*.tgz\n\n# Yarn Integrity file\n.yarn-integrity\n\n# dotenv environment variable files\n.env\n.env.development.local\n.env.test.local\n.env.production.local\n.env.local\n";
13
+ export declare const next = "# Next.js\n.next/\nout/\nnext-env.d.ts\n\n# Next.js cache\n.next/cache/\n\n# Next.js debug\n.next/trace\n";
14
+ export declare const vscode = ".vscode/*\n!.vscode/settings.json\n!.vscode/tasks.json\n!.vscode/launch.json\n!.vscode/extensions.json\n!.vscode/*.code-snippets\n\n# Local History for Visual Studio Code\n.history/\n\n# Built Visual Studio Code Extensions\n*.vsix\n";
15
+ export declare const jetbrains = "# JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm, Rider\n# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839\n\n.idea/\n\n# Sensitive or high-churn files\n.idea/**/dataSources/\n.idea/**/dataSources.ids\n.idea/**/dataSources.local.xml\n\n# Gradle\n.idea/**/gradle.xml\n.idea/**/libraries\n\n# CMake\ncmake-build-*/\n";
16
+ export declare const tsbuildinfo = "# TypeScript incremental compile artifacts\n*.tsbuildinfo\n.tsbuildinfo\n";
17
+ export declare const vite = "# Vite\n*.timestamp-*.mjs\nvite.config.*.timestamp*\n.vite/\n";
18
+ export declare const astro = "# Astro\ndist/\n.astro/\n";
19
+ export declare const nuxt = "# Nuxt\n.nuxt\n.output\n.data\n.nitro\n.cache\ndist\n\n# Nuxt generate\n.nuxt-*\n";
20
+ export declare const svelteKit = "# SvelteKit\n.svelte-kit/\nbuild/\nvite.config.js.timestamp-*\nvite.config.ts.timestamp-*\n";
21
+ export declare const angular = "# Angular\n/dist\n/tmp\n/out-tsc\n/bazel-out\n/.angular/cache\n.sass-cache/\n/connect.lock\n/libpeerconnection.log\ntestem.log\n/typings\n__screenshots__/\n";
22
+ export declare const vue = "# Vue\ndist/\ndist-ssr/\n*.local\n.cache/\n";
23
+ export declare const storybook = "# Storybook\nstorybook-static/\nbuild-storybook.log\ndebug-storybook.log\n";
24
+ export declare const yarn = "# Yarn\n.yarn/cache\n.yarn/unplugged\n.yarn/build-state.yml\n.yarn/install-state.gz\n.pnp.*\n";
25
+ export declare const pnpm = "# pnpm\n.pnpm-store/\n.pnpm-debug.log*\n";
26
+ export declare const vim = "# Swap\n[._]*.s[a-v][a-z]\n!*.svg\n[._]*.sw[a-p]\n[._]s[a-rt-v][a-z]\n[._]ss[a-gi-z]\n[._]sw[a-p]\n\n# Session\nSession.vim\nSessionx.vim\n\n# Temporary\n.netrwhist\n*~\n\n# Auto-generated tag files\ntags\n\n# Persistent undo\n[._]*.un~\n";
27
+ export declare const sublimeText = "# Sublime Text\n*.tmlanguage.cache\n*.tmPreferences.cache\n*.stTheme.cache\n\n# Workspace files are user-specific\n*.sublime-workspace\n\n# Package control\nPackage Control.last-run\nPackage Control.ca-list\nPackage Control.ca-bundle\nPackage Control.system-ca-bundle\nPackage Control.cache/\nPackage Control.ca-certs/\nbh_unicode_properties.cache\nGitHub.sublime-settings\n";
28
+ export declare const eclipse = "# Eclipse\n.metadata\nbin/\ntmp/\n*.tmp\n*.bak\n*.swp\n*~.nib\nlocal.properties\n.settings/\n.loadpath\n.recommenders\n.externalToolBuilders/\n*.launch\n.factorypath\n.project\n.classpath\n";
29
+ //# sourceMappingURL=templates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../src/templates.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,eAAO,MAAM,KAAK,+aA0BjB,CAAA;AAED,eAAO,MAAM,OAAO,+TAwBnB,CAAA;AAED,eAAO,MAAM,KAAK,8UAajB,CAAA;AAED,eAAO,MAAM,IAAI,o2BAyDhB,CAAA;AAED,eAAO,MAAM,IAAI,8GAUhB,CAAA;AAED,eAAO,MAAM,MAAM,6OAYlB,CAAA;AAED,eAAO,MAAM,SAAS,8YAgBrB,CAAA;AAED,eAAO,MAAM,WAAW,8EAGvB,CAAA;AAOD,eAAO,MAAM,IAAI,kEAIhB,CAAA;AAGD,eAAO,MAAM,KAAK,8BAGjB,CAAA;AAGD,eAAO,MAAM,IAAI,sFAUhB,CAAA;AAGD,eAAO,MAAM,SAAS,gGAKrB,CAAA;AAID,eAAO,MAAM,OAAO,iKAYnB,CAAA;AAGD,eAAO,MAAM,GAAG,gDAKf,CAAA;AAED,eAAO,MAAM,SAAS,+EAIrB,CAAA;AAID,eAAO,MAAM,IAAI,kGAMhB,CAAA;AAGD,eAAO,MAAM,IAAI,6CAGhB,CAAA;AAED,eAAO,MAAM,GAAG,mPAqBf,CAAA;AAED,eAAO,MAAM,WAAW,2XAiBvB,CAAA;AAED,eAAO,MAAM,OAAO,kMAiBnB,CAAA"}
@@ -0,0 +1,310 @@
1
+ /**
2
+ * Gitignore section templates. Sourced from https://github.com/github/gitignore (MIT-licensed)
3
+ * with minor adaptations. Kept inline rather than fetched at runtime so blueprint authors can
4
+ * use these offline and during CI.
5
+ *
6
+ * A future `scripts/sync-templates.ts` will refresh these against upstream on a schedule and
7
+ * raise a PR if anything drifts.
8
+ */
9
+ export const macOs = `# General
10
+ .DS_Store
11
+ .AppleDouble
12
+ .LSOverride
13
+
14
+ # Icon must end with two \\r
15
+ Icon
16
+
17
+ # Thumbnails
18
+ ._*
19
+
20
+ # Files that might appear in the root of a volume
21
+ .DocumentRevisions-V100
22
+ .fseventsd
23
+ .Spotlight-V100
24
+ .TemporaryItems
25
+ .Trashes
26
+ .VolumeIcon.icns
27
+ .com.apple.timemachine.donotpresent
28
+
29
+ # Directories potentially created on remote AFP share
30
+ .AppleDB
31
+ .AppleDesktop
32
+ Network Trash Folder
33
+ Temporary Items
34
+ .apple
35
+ `;
36
+ export const windows = `# Windows thumbnail cache files
37
+ Thumbs.db
38
+ Thumbs.db:encryptable
39
+ ehthumbs.db
40
+ ehthumbs_vista.db
41
+
42
+ # Dump file
43
+ *.stackdump
44
+
45
+ # Folder config file
46
+ [Dd]esktop.ini
47
+
48
+ # Recycle Bin used on file shares
49
+ $RECYCLE.BIN/
50
+
51
+ # Windows Installer files
52
+ *.cab
53
+ *.msi
54
+ *.msix
55
+ *.msm
56
+ *.msp
57
+
58
+ # Windows shortcuts
59
+ *.lnk
60
+ `;
61
+ export const linux = `*~
62
+
63
+ # temporary files which can be created if a process still has a handle open of a deleted file
64
+ .fuse_hidden*
65
+
66
+ # KDE directory preferences
67
+ .directory
68
+
69
+ # Linux trash folder which might appear on any partition or disk
70
+ .Trash-*
71
+
72
+ # .nfs files are created when an open file is removed but is still being accessed
73
+ .nfs*
74
+ `;
75
+ export const node = `# Logs
76
+ logs
77
+ *.log
78
+ npm-debug.log*
79
+ yarn-debug.log*
80
+ yarn-error.log*
81
+ lerna-debug.log*
82
+ .pnpm-debug.log*
83
+
84
+ # Diagnostic reports (https://nodejs.org/api/report.html)
85
+ report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
86
+
87
+ # Runtime data
88
+ pids
89
+ *.pid
90
+ *.seed
91
+ *.pid.lock
92
+
93
+ # Coverage directory used by tools like istanbul
94
+ coverage
95
+ *.lcov
96
+ .nyc_output
97
+
98
+ # Dependency directories
99
+ node_modules/
100
+ jspm_packages/
101
+
102
+ # Optional npm cache directory
103
+ .npm
104
+
105
+ # Optional eslint cache
106
+ .eslintcache
107
+
108
+ # Optional stylelint cache
109
+ .stylelintcache
110
+
111
+ # Microbundle cache
112
+ .rpt2_cache/
113
+ .rts2_cache_cjs/
114
+ .rts2_cache_es/
115
+ .rts2_cache_umd/
116
+
117
+ # Optional REPL history
118
+ .node_repl_history
119
+
120
+ # Output of 'npm pack'
121
+ *.tgz
122
+
123
+ # Yarn Integrity file
124
+ .yarn-integrity
125
+
126
+ # dotenv environment variable files
127
+ .env
128
+ .env.development.local
129
+ .env.test.local
130
+ .env.production.local
131
+ .env.local
132
+ `;
133
+ export const next = `# Next.js
134
+ .next/
135
+ out/
136
+ next-env.d.ts
137
+
138
+ # Next.js cache
139
+ .next/cache/
140
+
141
+ # Next.js debug
142
+ .next/trace
143
+ `;
144
+ export const vscode = `.vscode/*
145
+ !.vscode/settings.json
146
+ !.vscode/tasks.json
147
+ !.vscode/launch.json
148
+ !.vscode/extensions.json
149
+ !.vscode/*.code-snippets
150
+
151
+ # Local History for Visual Studio Code
152
+ .history/
153
+
154
+ # Built Visual Studio Code Extensions
155
+ *.vsix
156
+ `;
157
+ export const jetbrains = `# JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm, Rider
158
+ # Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
159
+
160
+ .idea/
161
+
162
+ # Sensitive or high-churn files
163
+ .idea/**/dataSources/
164
+ .idea/**/dataSources.ids
165
+ .idea/**/dataSources.local.xml
166
+
167
+ # Gradle
168
+ .idea/**/gradle.xml
169
+ .idea/**/libraries
170
+
171
+ # CMake
172
+ cmake-build-*/
173
+ `;
174
+ export const tsbuildinfo = `# TypeScript incremental compile artifacts
175
+ *.tsbuildinfo
176
+ .tsbuildinfo
177
+ `;
178
+ // The templates below follow github/gitignore. Where one is trimmed, the comment above it says
179
+ // why: lockfiles, `tsconfig*.json`, `*.tsbuildinfo` (the `tsbuildinfo` section owns that) and
180
+ // `.vscode` are never ignored here, and rules the `node` section already carries are dropped.
181
+ // Trimmed: the Node template covers the rest of what Vite writes.
182
+ export const vite = `# Vite
183
+ *.timestamp-*.mjs
184
+ vite.config.*.timestamp*
185
+ .vite/
186
+ `;
187
+ // Trimmed: `.env*` rules live in the `node` section.
188
+ export const astro = `# Astro
189
+ dist/
190
+ .astro/
191
+ `;
192
+ // Trimmed: `.env` rules live in the `node` section; `tsconfig*.json` is never ignored.
193
+ export const nuxt = `# Nuxt
194
+ .nuxt
195
+ .output
196
+ .data
197
+ .nitro
198
+ .cache
199
+ dist
200
+
201
+ # Nuxt generate
202
+ .nuxt-*
203
+ `;
204
+ // Trimmed: only what SvelteKit generates; `.env*` rules live in the `node` section.
205
+ export const svelteKit = `# SvelteKit
206
+ .svelte-kit/
207
+ build/
208
+ vite.config.js.timestamp-*
209
+ vite.config.ts.timestamp-*
210
+ `;
211
+ // Trimmed: `tsconfig*.json`, `*.tsbuildinfo` and the rules the `node` and `vscode` sections
212
+ // already carry (`/node_modules`, `npm-debug.log`, `.vscode`, `.idea`) are dropped.
213
+ export const angular = `# Angular
214
+ /dist
215
+ /tmp
216
+ /out-tsc
217
+ /bazel-out
218
+ /.angular/cache
219
+ .sass-cache/
220
+ /connect.lock
221
+ /libpeerconnection.log
222
+ testem.log
223
+ /typings
224
+ __screenshots__/
225
+ `;
226
+ // Trimmed: only the build output; Vue projects ride on the `vite` and `node` sections.
227
+ export const vue = `# Vue
228
+ dist/
229
+ dist-ssr/
230
+ *.local
231
+ .cache/
232
+ `;
233
+ export const storybook = `# Storybook
234
+ storybook-static/
235
+ build-storybook.log
236
+ debug-storybook.log
237
+ `;
238
+ // Trimmed: `yarn.lock` and the tracked Yarn Berry directories (`.yarn/releases`,
239
+ // `.yarn/patches`, `.yarn/plugins`, `.yarn/sdks`) stay tracked.
240
+ export const yarn = `# Yarn
241
+ .yarn/cache
242
+ .yarn/unplugged
243
+ .yarn/build-state.yml
244
+ .yarn/install-state.gz
245
+ .pnp.*
246
+ `;
247
+ // Trimmed: `pnpm-lock.yaml` stays tracked; only the store and debug logs are ignored.
248
+ export const pnpm = `# pnpm
249
+ .pnpm-store/
250
+ .pnpm-debug.log*
251
+ `;
252
+ export const vim = `# Swap
253
+ [._]*.s[a-v][a-z]
254
+ !*.svg
255
+ [._]*.sw[a-p]
256
+ [._]s[a-rt-v][a-z]
257
+ [._]ss[a-gi-z]
258
+ [._]sw[a-p]
259
+
260
+ # Session
261
+ Session.vim
262
+ Sessionx.vim
263
+
264
+ # Temporary
265
+ .netrwhist
266
+ *~
267
+
268
+ # Auto-generated tag files
269
+ tags
270
+
271
+ # Persistent undo
272
+ [._]*.un~
273
+ `;
274
+ export const sublimeText = `# Sublime Text
275
+ *.tmlanguage.cache
276
+ *.tmPreferences.cache
277
+ *.stTheme.cache
278
+
279
+ # Workspace files are user-specific
280
+ *.sublime-workspace
281
+
282
+ # Package control
283
+ Package Control.last-run
284
+ Package Control.ca-list
285
+ Package Control.ca-bundle
286
+ Package Control.system-ca-bundle
287
+ Package Control.cache/
288
+ Package Control.ca-certs/
289
+ bh_unicode_properties.cache
290
+ GitHub.sublime-settings
291
+ `;
292
+ export const eclipse = `# Eclipse
293
+ .metadata
294
+ bin/
295
+ tmp/
296
+ *.tmp
297
+ *.bak
298
+ *.swp
299
+ *~.nib
300
+ local.properties
301
+ .settings/
302
+ .loadpath
303
+ .recommenders
304
+ .externalToolBuilders/
305
+ *.launch
306
+ .factorypath
307
+ .project
308
+ .classpath
309
+ `;
310
+ //# sourceMappingURL=templates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/templates.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,CAAC,MAAM,KAAK,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;CA0BpB,CAAA;AAED,MAAM,CAAC,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;CAwBtB,CAAA;AAED,MAAM,CAAC,MAAM,KAAK,GAAG;;;;;;;;;;;;;CAapB,CAAA;AAED,MAAM,CAAC,MAAM,IAAI,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyDnB,CAAA;AAED,MAAM,CAAC,MAAM,IAAI,GAAG;;;;;;;;;;CAUnB,CAAA;AAED,MAAM,CAAC,MAAM,MAAM,GAAG;;;;;;;;;;;;CAYrB,CAAA;AAED,MAAM,CAAC,MAAM,SAAS,GAAG;;;;;;;;;;;;;;;;CAgBxB,CAAA;AAED,MAAM,CAAC,MAAM,WAAW,GAAG;;;CAG1B,CAAA;AAED,+FAA+F;AAC/F,8FAA8F;AAC9F,8FAA8F;AAE9F,kEAAkE;AAClE,MAAM,CAAC,MAAM,IAAI,GAAG;;;;CAInB,CAAA;AAED,qDAAqD;AACrD,MAAM,CAAC,MAAM,KAAK,GAAG;;;CAGpB,CAAA;AAED,uFAAuF;AACvF,MAAM,CAAC,MAAM,IAAI,GAAG;;;;;;;;;;CAUnB,CAAA;AAED,oFAAoF;AACpF,MAAM,CAAC,MAAM,SAAS,GAAG;;;;;CAKxB,CAAA;AAED,4FAA4F;AAC5F,oFAAoF;AACpF,MAAM,CAAC,MAAM,OAAO,GAAG;;;;;;;;;;;;CAYtB,CAAA;AAED,uFAAuF;AACvF,MAAM,CAAC,MAAM,GAAG,GAAG;;;;;CAKlB,CAAA;AAED,MAAM,CAAC,MAAM,SAAS,GAAG;;;;CAIxB,CAAA;AAED,iFAAiF;AACjF,gEAAgE;AAChE,MAAM,CAAC,MAAM,IAAI,GAAG;;;;;;CAMnB,CAAA;AAED,sFAAsF;AACtF,MAAM,CAAC,MAAM,IAAI,GAAG;;;CAGnB,CAAA;AAED,MAAM,CAAC,MAAM,GAAG,GAAG;;;;;;;;;;;;;;;;;;;;;CAqBlB,CAAA;AAED,MAAM,CAAC,MAAM,WAAW,GAAG;;;;;;;;;;;;;;;;;CAiB1B,CAAA;AAED,MAAM,CAAC,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;CAiBtB,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,70 @@
1
1
  {
2
2
  "name": "@projitect/blueprint-gitignore",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
3
+ "version": "1.0.0",
4
+ "description": "Composable .gitignore sections (macOS, Windows, Linux, Node, Next.js, VS Code, JetBrains, tsbuildinfo, Vite, Astro, Nuxt, SvelteKit, Angular, Vue, Storybook, Yarn, pnpm, Vim, Sublime Text, Eclipse) for projitect.",
5
+ "repository": {
6
+ "type": "git",
7
+ "url": "git+https://github.com/projitect/projitect.git",
8
+ "directory": "packages/blueprint-gitignore"
9
+ },
10
+ "license": "MIT",
11
+ "type": "module",
12
+ "exports": {
13
+ ".": {
14
+ "types": "./dist/src/index.d.ts",
15
+ "import": "./dist/src/index.js"
16
+ }
17
+ },
18
+ "files": [
19
+ "dist",
20
+ "src",
21
+ "!**/*.tsbuildinfo"
22
+ ],
23
+ "devDependencies": {
24
+ "effect": "4.0.0-rc.111",
25
+ "typescript": "5.9.3",
26
+ "@projitect/blueprint": "1.0.0",
27
+ "@projitect/core": "1.0.0",
28
+ "@projitect/test-kit": "1.0.0"
29
+ },
30
+ "peerDependencies": {
31
+ "effect": "4.0.0-rc.111",
32
+ "@projitect/blueprint": "1.0.0",
33
+ "@projitect/core": "1.0.0"
34
+ },
35
+ "engines": {
36
+ "node": ">=22.12.0"
37
+ },
38
+ "projitect": {
39
+ "type": "blueprint-set",
40
+ "import": "import { gitignores } from \"@projitect/blueprint-gitignore\"",
41
+ "callTemplate": "gitignores.{section}()",
42
+ "sections": [
43
+ "macOs",
44
+ "windows",
45
+ "linux",
46
+ "node",
47
+ "next",
48
+ "vscode",
49
+ "jetbrains",
50
+ "tsbuildinfo",
51
+ "vite",
52
+ "astro",
53
+ "nuxt",
54
+ "svelteKit",
55
+ "angular",
56
+ "vue",
57
+ "storybook",
58
+ "yarn",
59
+ "pnpm",
60
+ "vim",
61
+ "sublimeText",
62
+ "eclipse"
63
+ ]
64
+ },
65
+ "scripts": {
66
+ "build": "tsc --build",
67
+ "build:clean": "tsc --build --clean",
68
+ "tc": "tsc --build"
69
+ }
6
70
  }
package/src/index.ts ADDED
@@ -0,0 +1,57 @@
1
+ /**
2
+ * @projitect/blueprint-gitignore
3
+ *
4
+ * Twenty composable `.gitignore` sections. Each function returns a region-mode blueprint that
5
+ * owns its named section between `# pjt:gitignore:<name> start` and `# pjt:gitignore:<name> end`
6
+ * markers — so multiple sections coexist in the same `.gitignore` file without stepping on each
7
+ * other, and a CI run of `pjt inspect` catches any hand-edit drift.
8
+ *
9
+ * Templates are sourced from https://github.com/github/gitignore (MIT-licensed). Use only the
10
+ * ones you need; this package does not assume one-size-fits-all.
11
+ */
12
+
13
+ import { ignoreSection } from "@projitect/blueprint"
14
+ import type { Blueprint } from "@projitect/core"
15
+ import manifest from "../package.json" with { type: "json" }
16
+ import * as templates from "./templates.js"
17
+
18
+ // Read the version from the package manifest (emitted next to `dist/src`) so a release bump
19
+ // reaches `.pjt.lock` without a hand-edited constant. JSON import keeps this runtime-pure.
20
+ const PACKAGE_VERSION = manifest.version
21
+
22
+ // Built on `ignoreSection` from the SDK rather than `regionFile` directly — the name documents
23
+ // intent, and any future enhancement to ignore-style fencing (e.g. dedup-aware merging) lands
24
+ // in one place. On-disk output is byte-identical to the old direct-`regionFile` shape.
25
+ const makeSection = (name: string, content: string): Blueprint.Blueprint =>
26
+ ignoreSection({
27
+ id: `pjt:gitignore:${name}`,
28
+ version: PACKAGE_VERSION,
29
+ description: `gitignore section for ${name}`,
30
+ path: ".gitignore",
31
+ content,
32
+ })
33
+
34
+ export const gitignores = {
35
+ macOs: (): Blueprint.Blueprint => makeSection("macos", templates.macOs),
36
+ windows: (): Blueprint.Blueprint => makeSection("windows", templates.windows),
37
+ linux: (): Blueprint.Blueprint => makeSection("linux", templates.linux),
38
+ node: (): Blueprint.Blueprint => makeSection("node", templates.node),
39
+ next: (): Blueprint.Blueprint => makeSection("next", templates.next),
40
+ vscode: (): Blueprint.Blueprint => makeSection("vscode", templates.vscode),
41
+ jetbrains: (): Blueprint.Blueprint => makeSection("jetbrains", templates.jetbrains),
42
+ tsbuildinfo: (): Blueprint.Blueprint => makeSection("tsbuildinfo", templates.tsbuildinfo),
43
+ vite: (): Blueprint.Blueprint => makeSection("vite", templates.vite),
44
+ astro: (): Blueprint.Blueprint => makeSection("astro", templates.astro),
45
+ nuxt: (): Blueprint.Blueprint => makeSection("nuxt", templates.nuxt),
46
+ svelteKit: (): Blueprint.Blueprint => makeSection("sveltekit", templates.svelteKit),
47
+ angular: (): Blueprint.Blueprint => makeSection("angular", templates.angular),
48
+ vue: (): Blueprint.Blueprint => makeSection("vue", templates.vue),
49
+ storybook: (): Blueprint.Blueprint => makeSection("storybook", templates.storybook),
50
+ yarn: (): Blueprint.Blueprint => makeSection("yarn", templates.yarn),
51
+ pnpm: (): Blueprint.Blueprint => makeSection("pnpm", templates.pnpm),
52
+ vim: (): Blueprint.Blueprint => makeSection("vim", templates.vim),
53
+ sublimeText: (): Blueprint.Blueprint => makeSection("sublime-text", templates.sublimeText),
54
+ eclipse: (): Blueprint.Blueprint => makeSection("eclipse", templates.eclipse),
55
+ } as const
56
+
57
+ export type GitignoreSection = keyof typeof gitignores
@@ -0,0 +1,330 @@
1
+ /**
2
+ * Gitignore section templates. Sourced from https://github.com/github/gitignore (MIT-licensed)
3
+ * with minor adaptations. Kept inline rather than fetched at runtime so blueprint authors can
4
+ * use these offline and during CI.
5
+ *
6
+ * A future `scripts/sync-templates.ts` will refresh these against upstream on a schedule and
7
+ * raise a PR if anything drifts.
8
+ */
9
+
10
+ export const macOs = `# General
11
+ .DS_Store
12
+ .AppleDouble
13
+ .LSOverride
14
+
15
+ # Icon must end with two \\r
16
+ Icon
17
+
18
+ # Thumbnails
19
+ ._*
20
+
21
+ # Files that might appear in the root of a volume
22
+ .DocumentRevisions-V100
23
+ .fseventsd
24
+ .Spotlight-V100
25
+ .TemporaryItems
26
+ .Trashes
27
+ .VolumeIcon.icns
28
+ .com.apple.timemachine.donotpresent
29
+
30
+ # Directories potentially created on remote AFP share
31
+ .AppleDB
32
+ .AppleDesktop
33
+ Network Trash Folder
34
+ Temporary Items
35
+ .apple
36
+ `
37
+
38
+ export const windows = `# Windows thumbnail cache files
39
+ Thumbs.db
40
+ Thumbs.db:encryptable
41
+ ehthumbs.db
42
+ ehthumbs_vista.db
43
+
44
+ # Dump file
45
+ *.stackdump
46
+
47
+ # Folder config file
48
+ [Dd]esktop.ini
49
+
50
+ # Recycle Bin used on file shares
51
+ $RECYCLE.BIN/
52
+
53
+ # Windows Installer files
54
+ *.cab
55
+ *.msi
56
+ *.msix
57
+ *.msm
58
+ *.msp
59
+
60
+ # Windows shortcuts
61
+ *.lnk
62
+ `
63
+
64
+ export const linux = `*~
65
+
66
+ # temporary files which can be created if a process still has a handle open of a deleted file
67
+ .fuse_hidden*
68
+
69
+ # KDE directory preferences
70
+ .directory
71
+
72
+ # Linux trash folder which might appear on any partition or disk
73
+ .Trash-*
74
+
75
+ # .nfs files are created when an open file is removed but is still being accessed
76
+ .nfs*
77
+ `
78
+
79
+ export const node = `# Logs
80
+ logs
81
+ *.log
82
+ npm-debug.log*
83
+ yarn-debug.log*
84
+ yarn-error.log*
85
+ lerna-debug.log*
86
+ .pnpm-debug.log*
87
+
88
+ # Diagnostic reports (https://nodejs.org/api/report.html)
89
+ report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
90
+
91
+ # Runtime data
92
+ pids
93
+ *.pid
94
+ *.seed
95
+ *.pid.lock
96
+
97
+ # Coverage directory used by tools like istanbul
98
+ coverage
99
+ *.lcov
100
+ .nyc_output
101
+
102
+ # Dependency directories
103
+ node_modules/
104
+ jspm_packages/
105
+
106
+ # Optional npm cache directory
107
+ .npm
108
+
109
+ # Optional eslint cache
110
+ .eslintcache
111
+
112
+ # Optional stylelint cache
113
+ .stylelintcache
114
+
115
+ # Microbundle cache
116
+ .rpt2_cache/
117
+ .rts2_cache_cjs/
118
+ .rts2_cache_es/
119
+ .rts2_cache_umd/
120
+
121
+ # Optional REPL history
122
+ .node_repl_history
123
+
124
+ # Output of 'npm pack'
125
+ *.tgz
126
+
127
+ # Yarn Integrity file
128
+ .yarn-integrity
129
+
130
+ # dotenv environment variable files
131
+ .env
132
+ .env.development.local
133
+ .env.test.local
134
+ .env.production.local
135
+ .env.local
136
+ `
137
+
138
+ export const next = `# Next.js
139
+ .next/
140
+ out/
141
+ next-env.d.ts
142
+
143
+ # Next.js cache
144
+ .next/cache/
145
+
146
+ # Next.js debug
147
+ .next/trace
148
+ `
149
+
150
+ export const vscode = `.vscode/*
151
+ !.vscode/settings.json
152
+ !.vscode/tasks.json
153
+ !.vscode/launch.json
154
+ !.vscode/extensions.json
155
+ !.vscode/*.code-snippets
156
+
157
+ # Local History for Visual Studio Code
158
+ .history/
159
+
160
+ # Built Visual Studio Code Extensions
161
+ *.vsix
162
+ `
163
+
164
+ export const jetbrains = `# JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm, Rider
165
+ # Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
166
+
167
+ .idea/
168
+
169
+ # Sensitive or high-churn files
170
+ .idea/**/dataSources/
171
+ .idea/**/dataSources.ids
172
+ .idea/**/dataSources.local.xml
173
+
174
+ # Gradle
175
+ .idea/**/gradle.xml
176
+ .idea/**/libraries
177
+
178
+ # CMake
179
+ cmake-build-*/
180
+ `
181
+
182
+ export const tsbuildinfo = `# TypeScript incremental compile artifacts
183
+ *.tsbuildinfo
184
+ .tsbuildinfo
185
+ `
186
+
187
+ // The templates below follow github/gitignore. Where one is trimmed, the comment above it says
188
+ // why: lockfiles, `tsconfig*.json`, `*.tsbuildinfo` (the `tsbuildinfo` section owns that) and
189
+ // `.vscode` are never ignored here, and rules the `node` section already carries are dropped.
190
+
191
+ // Trimmed: the Node template covers the rest of what Vite writes.
192
+ export const vite = `# Vite
193
+ *.timestamp-*.mjs
194
+ vite.config.*.timestamp*
195
+ .vite/
196
+ `
197
+
198
+ // Trimmed: `.env*` rules live in the `node` section.
199
+ export const astro = `# Astro
200
+ dist/
201
+ .astro/
202
+ `
203
+
204
+ // Trimmed: `.env` rules live in the `node` section; `tsconfig*.json` is never ignored.
205
+ export const nuxt = `# Nuxt
206
+ .nuxt
207
+ .output
208
+ .data
209
+ .nitro
210
+ .cache
211
+ dist
212
+
213
+ # Nuxt generate
214
+ .nuxt-*
215
+ `
216
+
217
+ // Trimmed: only what SvelteKit generates; `.env*` rules live in the `node` section.
218
+ export const svelteKit = `# SvelteKit
219
+ .svelte-kit/
220
+ build/
221
+ vite.config.js.timestamp-*
222
+ vite.config.ts.timestamp-*
223
+ `
224
+
225
+ // Trimmed: `tsconfig*.json`, `*.tsbuildinfo` and the rules the `node` and `vscode` sections
226
+ // already carry (`/node_modules`, `npm-debug.log`, `.vscode`, `.idea`) are dropped.
227
+ export const angular = `# Angular
228
+ /dist
229
+ /tmp
230
+ /out-tsc
231
+ /bazel-out
232
+ /.angular/cache
233
+ .sass-cache/
234
+ /connect.lock
235
+ /libpeerconnection.log
236
+ testem.log
237
+ /typings
238
+ __screenshots__/
239
+ `
240
+
241
+ // Trimmed: only the build output; Vue projects ride on the `vite` and `node` sections.
242
+ export const vue = `# Vue
243
+ dist/
244
+ dist-ssr/
245
+ *.local
246
+ .cache/
247
+ `
248
+
249
+ export const storybook = `# Storybook
250
+ storybook-static/
251
+ build-storybook.log
252
+ debug-storybook.log
253
+ `
254
+
255
+ // Trimmed: `yarn.lock` and the tracked Yarn Berry directories (`.yarn/releases`,
256
+ // `.yarn/patches`, `.yarn/plugins`, `.yarn/sdks`) stay tracked.
257
+ export const yarn = `# Yarn
258
+ .yarn/cache
259
+ .yarn/unplugged
260
+ .yarn/build-state.yml
261
+ .yarn/install-state.gz
262
+ .pnp.*
263
+ `
264
+
265
+ // Trimmed: `pnpm-lock.yaml` stays tracked; only the store and debug logs are ignored.
266
+ export const pnpm = `# pnpm
267
+ .pnpm-store/
268
+ .pnpm-debug.log*
269
+ `
270
+
271
+ export const vim = `# Swap
272
+ [._]*.s[a-v][a-z]
273
+ !*.svg
274
+ [._]*.sw[a-p]
275
+ [._]s[a-rt-v][a-z]
276
+ [._]ss[a-gi-z]
277
+ [._]sw[a-p]
278
+
279
+ # Session
280
+ Session.vim
281
+ Sessionx.vim
282
+
283
+ # Temporary
284
+ .netrwhist
285
+ *~
286
+
287
+ # Auto-generated tag files
288
+ tags
289
+
290
+ # Persistent undo
291
+ [._]*.un~
292
+ `
293
+
294
+ export const sublimeText = `# Sublime Text
295
+ *.tmlanguage.cache
296
+ *.tmPreferences.cache
297
+ *.stTheme.cache
298
+
299
+ # Workspace files are user-specific
300
+ *.sublime-workspace
301
+
302
+ # Package control
303
+ Package Control.last-run
304
+ Package Control.ca-list
305
+ Package Control.ca-bundle
306
+ Package Control.system-ca-bundle
307
+ Package Control.cache/
308
+ Package Control.ca-certs/
309
+ bh_unicode_properties.cache
310
+ GitHub.sublime-settings
311
+ `
312
+
313
+ export const eclipse = `# Eclipse
314
+ .metadata
315
+ bin/
316
+ tmp/
317
+ *.tmp
318
+ *.bak
319
+ *.swp
320
+ *~.nib
321
+ local.properties
322
+ .settings/
323
+ .loadpath
324
+ .recommenders
325
+ .externalToolBuilders/
326
+ *.launch
327
+ .factorypath
328
+ .project
329
+ .classpath
330
+ `
package/README.md DELETED
@@ -1,3 +0,0 @@
1
- # Temporary Holding Version
2
-
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.