@wistantkode/dotfiles 1.1.0 → 1.2.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/.github/workflows/publish.yml +35 -0
- package/CHANGELOG.md +40 -0
- package/LICENSE +201 -0
- package/README.md +92 -0
- package/assets/dotfiles.png +0 -0
- package/assets/npm.svg +6 -0
- package/assets/pnpm.svg +8 -0
- package/assets/wistant-logo.png +0 -0
- package/bin/cli.mjs +3 -5
- package/github.sh +87 -13
- package/package.json +33 -24
- package/protocols/ASSIST.md +24 -38
- package/protocols/COMMIT.md +6 -2
- package/protocols/DOTFILES.md +16 -38
- package/protocols/RELEASE.md +10 -5
- package/protocols/RODIN.md +20 -82
- package/protocols/_INDEX.md +23 -28
- package/aliases.sh +0 -14
- package/aliases.zsh +0 -20
- package/myKDEshorcuts.kksrc +0 -421
- package/pnpm.sh +0 -74
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
name: Release Activation
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
release:
|
|
5
|
+
types: [published]
|
|
6
|
+
|
|
7
|
+
jobs:
|
|
8
|
+
distribution:
|
|
9
|
+
name: NPM Distribution
|
|
10
|
+
runs-on: ubuntu-latest
|
|
11
|
+
steps:
|
|
12
|
+
- name: Fetching Code
|
|
13
|
+
uses: actions/checkout@v4
|
|
14
|
+
|
|
15
|
+
- name: Installing pnpm
|
|
16
|
+
uses: pnpm/action-setup@v4
|
|
17
|
+
with:
|
|
18
|
+
version: 10
|
|
19
|
+
|
|
20
|
+
- name: Initializing Node.js
|
|
21
|
+
uses: actions/setup-node@v4
|
|
22
|
+
with:
|
|
23
|
+
node-version: 20
|
|
24
|
+
cache: 'pnpm'
|
|
25
|
+
registry-url: 'https://registry.npmjs.org'
|
|
26
|
+
|
|
27
|
+
- name: Security Audit (Zero-Trust)
|
|
28
|
+
run: |
|
|
29
|
+
pnpm install --frozen-lockfile
|
|
30
|
+
pnpm audit
|
|
31
|
+
|
|
32
|
+
- name: Distribution Scellement
|
|
33
|
+
run: pnpm publish --access public --no-git-checks
|
|
34
|
+
env:
|
|
35
|
+
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
|
|
5
|
+
## [1.2.1] - 2026-04-04 - [Documentation & Branding]
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
|
|
9
|
+
- **AI-Driven Infrastructure**: Re-engineered the repository documentation to focus on AI-pairing orchestration and guardrails.
|
|
10
|
+
- **Branding Assets**: Included professional logos and technical icons for the ecosystem.
|
|
11
|
+
- **Legal Compliance**: Integrated **Apache License 2.0** as the project's legal baseline.
|
|
12
|
+
|
|
13
|
+
### Changed
|
|
14
|
+
|
|
15
|
+
- **Premium Documentation**: Completely redesigned `README.md` with architectural diagrams and deep technical storytelling.
|
|
16
|
+
|
|
17
|
+
### Removed
|
|
18
|
+
|
|
19
|
+
- **Legacy Artifacts**: Purged the obsolete KDE shortcuts file and remaining legacy scripts.
|
|
20
|
+
|
|
21
|
+
## [1.2.0] - 2026-04-04 - [Streamlining & Smart Sync]
|
|
22
|
+
|
|
23
|
+
### Changed
|
|
24
|
+
|
|
25
|
+
- **Smart Sync**: Integrated the intelligent `github.sh` with interactive branch detection and Tag Delta auditing.
|
|
26
|
+
- **Protocol Synchronization**: Refined all core protocols for modern automation.
|
|
27
|
+
|
|
28
|
+
### Removed
|
|
29
|
+
|
|
30
|
+
- **Obsolete Aliases**: Deleted legacy `aliases.sh` and `aliases.zsh`.
|
|
31
|
+
- **Legacy Distribution**: Removed `pnpm.sh`.
|
|
32
|
+
|
|
33
|
+
## [1.1.0] - 2026-04-04 - [Security & Automation Hardening]
|
|
34
|
+
|
|
35
|
+
### Added
|
|
36
|
+
|
|
37
|
+
- **GitHub Actions Integration**: Automated distribution on GitHub Release.
|
|
38
|
+
- **Security Phase**: Integrated mandatory `pnpm audit` and secret scanning.
|
|
39
|
+
|
|
40
|
+
## [1.0.0] - 2026-04-04 - [Initial Baseline]
|
package/LICENSE
ADDED
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
Apache License
|
|
2
|
+
Version 2.0, January 2004
|
|
3
|
+
http://www.apache.org/licenses/
|
|
4
|
+
|
|
5
|
+
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
|
6
|
+
|
|
7
|
+
1. Definitions.
|
|
8
|
+
|
|
9
|
+
"License" shall mean the terms and conditions for use, reproduction,
|
|
10
|
+
and distribution as defined by Sections 1 through 9 of this document.
|
|
11
|
+
|
|
12
|
+
"Licensor" shall mean the copyright owner or entity authorized by
|
|
13
|
+
the copyright owner that is granting the License.
|
|
14
|
+
|
|
15
|
+
"Legal Entity" shall mean the union of the acting entity and all
|
|
16
|
+
other entities that control, are controlled by, or are under common
|
|
17
|
+
control with that entity. For the purposes of this definition,
|
|
18
|
+
"control" means (i) the power, direct or indirect, to cause the
|
|
19
|
+
direction or management of such entity, whether by contract or
|
|
20
|
+
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
|
21
|
+
outstanding shares, or (iii) beneficial ownership of such entity.
|
|
22
|
+
|
|
23
|
+
"You" (or "Your") shall mean an individual or Legal Entity
|
|
24
|
+
exercising permissions granted by this License.
|
|
25
|
+
|
|
26
|
+
"Source" form shall mean the preferred form for making modifications,
|
|
27
|
+
including but not limited to software source code, documentation
|
|
28
|
+
source, and configuration files.
|
|
29
|
+
|
|
30
|
+
"Object" form shall mean any form resulting from mechanical
|
|
31
|
+
transformation or translation of a Source form, including but
|
|
32
|
+
not limited to compiled object code, generated documentation,
|
|
33
|
+
and conversions to other media types.
|
|
34
|
+
|
|
35
|
+
"Work" shall mean the work of authorship, whether in Source or
|
|
36
|
+
Object form, made available under the License, as indicated by a
|
|
37
|
+
copyright notice that is included in or attached to the work
|
|
38
|
+
(an example is provided in the Appendix below).
|
|
39
|
+
|
|
40
|
+
"Derivative Works" shall mean any work, whether in Source or Object
|
|
41
|
+
form, that is based on (or derived from) the Work and for which the
|
|
42
|
+
editorial revisions, annotations, elaborations, or other modifications
|
|
43
|
+
represent, as a whole, an original work of authorship. For the purposes
|
|
44
|
+
of this License, Derivative Works shall not include works that remain
|
|
45
|
+
separable from, or merely link (or bind by name) to the interfaces of,
|
|
46
|
+
the Work and Derivative Works thereof.
|
|
47
|
+
|
|
48
|
+
"Contribution" shall mean any work of authorship, including
|
|
49
|
+
the original version of the Work and any modifications or additions
|
|
50
|
+
to that Work or Derivative Works thereof, that is intentionally
|
|
51
|
+
submitted to Licensor for inclusion in the Work by the copyright owner
|
|
52
|
+
or by an individual or Legal Entity authorized to submit on behalf of
|
|
53
|
+
the copyright owner. For the purposes of this definition, "submitted"
|
|
54
|
+
means any form of electronic, verbal, or written communication sent
|
|
55
|
+
to the Licensor or its representatives, including but not limited to
|
|
56
|
+
communication on electronic mailing lists, source code control systems,
|
|
57
|
+
and issue tracking systems that are managed by, or on behalf of, the
|
|
58
|
+
Licensor for the purpose of discussing and improving the Work, but
|
|
59
|
+
excluding communication that is conspicuously marked or otherwise
|
|
60
|
+
designated in writing by the copyright owner as "Not a Contribution."
|
|
61
|
+
|
|
62
|
+
"Contributor" shall mean Licensor and any individual or Legal Entity
|
|
63
|
+
on behalf of whom a Contribution has been received by Licensor and
|
|
64
|
+
subsequently incorporated within the Work.
|
|
65
|
+
|
|
66
|
+
2. Grant of Copyright License. Subject to the terms and conditions of
|
|
67
|
+
this License, each Contributor hereby grants to You a perpetual,
|
|
68
|
+
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
|
69
|
+
copyright license to reproduce, prepare Derivative Works of,
|
|
70
|
+
publicly display, publicly perform, sublicense, and distribute the
|
|
71
|
+
Work and such Derivative Works in Source or Object form.
|
|
72
|
+
|
|
73
|
+
3. Grant of Patent License. Subject to the terms and conditions of
|
|
74
|
+
this License, each Contributor hereby grants to You a perpetual,
|
|
75
|
+
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
|
76
|
+
(except as stated in this section) patent license to make, have made,
|
|
77
|
+
use, offer to sell, sell, import, and otherwise transfer the Work,
|
|
78
|
+
where such license applies only to those patent claims licensable
|
|
79
|
+
by such Contributor that are necessarily infringed by their
|
|
80
|
+
Contribution(s) alone or by combination of their Contribution(s)
|
|
81
|
+
with the Work to which such Contribution(s) was submitted. If You
|
|
82
|
+
institute patent litigation against any entity (including a
|
|
83
|
+
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
|
84
|
+
or a Contribution incorporated within the Work constitutes direct
|
|
85
|
+
or contributory patent infringement, then any patent licenses
|
|
86
|
+
granted to You under this License for that Work shall terminate
|
|
87
|
+
as of the date such litigation is filed.
|
|
88
|
+
|
|
89
|
+
4. Redistribution. You may reproduce and distribute copies of the
|
|
90
|
+
Work or Derivative Works thereof in any medium, with or without
|
|
91
|
+
modifications, and in Source or Object form, provided that You
|
|
92
|
+
meet the following conditions:
|
|
93
|
+
|
|
94
|
+
(a) You must give any other recipients of the Work or
|
|
95
|
+
Derivative Works a copy of this License; and
|
|
96
|
+
|
|
97
|
+
(b) You must cause any modified files to carry prominent notices
|
|
98
|
+
stating that You changed the files; and
|
|
99
|
+
|
|
100
|
+
(c) You must retain, in the Source form of any Derivative Works
|
|
101
|
+
that You distribute, all copyright, patent, trademark, and
|
|
102
|
+
attribution notices from the Source form of the Work,
|
|
103
|
+
excluding those notices that do not pertain to any part of
|
|
104
|
+
the Derivative Works; and
|
|
105
|
+
|
|
106
|
+
(d) If the Work includes a "NOTICE" text file as part of its
|
|
107
|
+
distribution, then any Derivative Works that You distribute must
|
|
108
|
+
include a readable copy of the attribution notices contained
|
|
109
|
+
within such NOTICE file, excluding those notices that do not
|
|
110
|
+
pertain to any part of the Derivative Works, in at least one
|
|
111
|
+
of the following places: within a NOTICE text file distributed
|
|
112
|
+
as part of the Derivative Works; within the Source form or
|
|
113
|
+
documentation, if provided along with the Derivative Works; or,
|
|
114
|
+
within a display generated by the Derivative Works, if and
|
|
115
|
+
wherever such third-party notices normally appear. The contents
|
|
116
|
+
of the NOTICE file are for informational purposes only and
|
|
117
|
+
do not modify the License. You may add Your own attribution
|
|
118
|
+
notices within Derivative Works that You distribute, alongside
|
|
119
|
+
or as an addendum to the NOTICE text from the Work, provided
|
|
120
|
+
that such additional attribution notices cannot be construed
|
|
121
|
+
as modifying the License.
|
|
122
|
+
|
|
123
|
+
You may add Your own copyright statement to Your modifications and
|
|
124
|
+
may provide additional or different license terms and conditions
|
|
125
|
+
for use, reproduction, or distribution of Your modifications, or
|
|
126
|
+
for any such Derivative Works as a whole, provided Your use,
|
|
127
|
+
reproduction, and distribution of the Work otherwise complies with
|
|
128
|
+
the conditions stated in this License.
|
|
129
|
+
|
|
130
|
+
5. Submission of Contributions. Unless You explicitly state otherwise,
|
|
131
|
+
any Contribution intentionally submitted for inclusion in the Work
|
|
132
|
+
by You to the Licensor shall be under the terms and conditions of
|
|
133
|
+
this License, without any additional terms or conditions.
|
|
134
|
+
Notwithstanding the above, nothing herein shall supersede or modify
|
|
135
|
+
the terms of any separate license agreement you may have executed
|
|
136
|
+
with Licensor regarding such Contributions.
|
|
137
|
+
|
|
138
|
+
6. Trademarks. This License does not grant permission to use the trade
|
|
139
|
+
names, trademarks, service marks, or product names of the Licensor,
|
|
140
|
+
except as required for reasonable and customary use in describing the
|
|
141
|
+
origin of the Work and reproducing the content of the NOTICE file.
|
|
142
|
+
|
|
143
|
+
7. Disclaimer of Warranty. Unless required by applicable law or
|
|
144
|
+
agreed to in writing, Licensor provides the Work (and each
|
|
145
|
+
Contributor provides its Contributions) on an "AS IS" BASIS,
|
|
146
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
|
147
|
+
implied, including, without limitation, any warranties or conditions
|
|
148
|
+
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
|
149
|
+
PARTICULAR PURPOSE. You are solely responsible for determining the
|
|
150
|
+
appropriateness of using or redistributing the Work and assume any
|
|
151
|
+
risks associated with Your exercise of permissions under this License.
|
|
152
|
+
|
|
153
|
+
8. Limitation of Liability. In no event and under no legal theory,
|
|
154
|
+
whether in tort (including negligence), contract, or otherwise,
|
|
155
|
+
unless required by applicable law (such as deliberate and grossly
|
|
156
|
+
negligent acts) or agreed to in writing, shall any Contributor be
|
|
157
|
+
liable to You for damages, including any direct, indirect, special,
|
|
158
|
+
incidental, or consequential damages of any character arising as a
|
|
159
|
+
result of this License or out of the use or inability to use the
|
|
160
|
+
Work (including but not limited to damages for loss of goodwill,
|
|
161
|
+
work stoppage, computer failure or malfunction, or any and all
|
|
162
|
+
other commercial damages or losses), even if such Contributor
|
|
163
|
+
has been advised of the possibility of such damages.
|
|
164
|
+
|
|
165
|
+
9. Accepting Warranty or Additional Liability. While redistributing
|
|
166
|
+
the Work or Derivative Works thereof, You may choose to offer,
|
|
167
|
+
and charge a fee for, acceptance of support, warranty, indemnity,
|
|
168
|
+
or other liability obligations and/or rights consistent with this
|
|
169
|
+
License. However, in accepting such obligations, You may act only
|
|
170
|
+
on Your own behalf and on Your sole responsibility, not on behalf
|
|
171
|
+
of any other Contributor, and only if You agree to indemnify,
|
|
172
|
+
defend, and hold each Contributor harmless for any liability
|
|
173
|
+
incurred by, or claims asserted against, such Contributor by reason
|
|
174
|
+
of your accepting any such warranty or additional liability.
|
|
175
|
+
|
|
176
|
+
END OF TERMS AND CONDITIONS
|
|
177
|
+
|
|
178
|
+
APPENDIX: How to apply the Apache License to your work.
|
|
179
|
+
|
|
180
|
+
To apply the Apache License to your work, attach the following
|
|
181
|
+
boilerplate notice, with the fields enclosed by brackets "[]"
|
|
182
|
+
replaced with your own identifying information. (Don't include
|
|
183
|
+
the brackets!) The text should be enclosed in the appropriate
|
|
184
|
+
comment syntax for the file format. We also recommend that a
|
|
185
|
+
file or class name and description of purpose be included on the
|
|
186
|
+
same "printed page" as the copyright notice for easier
|
|
187
|
+
identification within third-party archives.
|
|
188
|
+
|
|
189
|
+
Copyright 2026 Wistant
|
|
190
|
+
|
|
191
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
192
|
+
you may not use this file except in compliance with the License.
|
|
193
|
+
You may obtain a copy of the License at
|
|
194
|
+
|
|
195
|
+
http://www.apache.org/licenses/
|
|
196
|
+
|
|
197
|
+
Unless required by applicable law or agreed to in writing, software
|
|
198
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
199
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
200
|
+
See the License for the specific language governing permissions and
|
|
201
|
+
limitations under the License.
|
package/README.md
ADDED
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
<div align="center">
|
|
2
|
+
<br />
|
|
3
|
+
<img src="./assets/wistant-logo.png" alt="Wistant Logo" width="160" />
|
|
4
|
+
<h1>@wistantkode/dotfiles</h1>
|
|
5
|
+
<p><b>Orchestrating AI-Driven Development through Professional Infrastructure</b></p>
|
|
6
|
+
|
|
7
|
+
<p>
|
|
8
|
+
<a href="https://www.npmjs.com/package/@wistantkode/dotfiles">
|
|
9
|
+
<img src="https://img.shields.io/npm/v/@wistantkode/dotfiles?style=for-the-badge&color=CC0000&logo=npm" alt="npm version" />
|
|
10
|
+
</a>
|
|
11
|
+
<a href="https://pnpm.io">
|
|
12
|
+
<img src="https://img.shields.io/badge/pnpm-4AB6FA?style=for-the-badge&logo=pnpm&logoColor=white" alt="pnpm" />
|
|
13
|
+
</a>
|
|
14
|
+
<a href="./LICENSE">
|
|
15
|
+
<img src="https://img.shields.io/badge/License-Apache_2.0-F47023?style=for-the-badge" alt="License" />
|
|
16
|
+
</a>
|
|
17
|
+
</p>
|
|
18
|
+
</div>
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## The Concept: AI-Driven Architecture
|
|
23
|
+
|
|
24
|
+
Modern development is increasingly AI-pair-programmed. However, without strict guardrails, AI interactions often lead to repository entropy, messy commits, and inconsistent versioning.
|
|
25
|
+
|
|
26
|
+
This repository provides the **Architectural Framework** necessary to pilot an AI effectively. It transforms a standard "dotfiles" collection into a set of **Instructional Protocols** that enforce engineering integrity at every step.
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## Infrastructure Flow
|
|
31
|
+
|
|
32
|
+
The system ensures that every modification is audited locally before reaching the public registry.
|
|
33
|
+
|
|
34
|
+
```mermaid
|
|
35
|
+
graph TD
|
|
36
|
+
A[Local AI-Pairing] -- Socratic Audit --> B[Atomic Commit]
|
|
37
|
+
B -- github.sh Check --> C[GitHub Mirror]
|
|
38
|
+
C -- Version Tag --> D[GitHub Actions]
|
|
39
|
+
D -- Security Scan & Publish --> E[NPM Registry]
|
|
40
|
+
F[New Environment] -- npx installer --> E
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## Concrete Value & Assets
|
|
46
|
+
|
|
47
|
+
### 1. AI Piloting Protocols (`.protocols/`)
|
|
48
|
+
A hidden library of instructions that you inject into your AI-Pairing sessions to enforce professional standards:
|
|
49
|
+
- **COMMIT.md**: Forces the AI to decompose complex changes into atomic, verifiable intentions.
|
|
50
|
+
- **RELEASE.md**: A socratic dialogue to ensure semantic versioning (SemVer) reflects the technical reality.
|
|
51
|
+
- **RODIN.md**: The engineering philosophy that prevents AI compliancy and focus-drift.
|
|
52
|
+
|
|
53
|
+
### 2. Intelligent Synchronization (`github.sh`)
|
|
54
|
+
An interactive script that acts as a final gatekeeper. It identifies uncommitted files and "Tag Deltas" (local versions not yet on GitHub) to prevent broken releases.
|
|
55
|
+
|
|
56
|
+
### 3. Professional Templates
|
|
57
|
+
- **Standardized `.gitignore`**: A production-ready model to avoid history pollution.
|
|
58
|
+
- **`.gitmessage` Template**: A structured baseline for all commits, compatible with modern changelog generators.
|
|
59
|
+
- **NPM Integration**: Every configuration is a versioned package, deployable via `npx` or `pnpm dlx`.
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
## Deployment
|
|
64
|
+
|
|
65
|
+
Initialize your AI-driven environment on any Linux system:
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
pnpm dlx @wistantkode/dotfiles
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
## Standards Registry
|
|
74
|
+
|
|
75
|
+
| Component | Role | Link |
|
|
76
|
+
| :--- | :--- | :--- |
|
|
77
|
+
| **Integrity Standards** | Engineering philosophy and socratic audit rules. | [RODIN.md](./protocols/RODIN.md) |
|
|
78
|
+
| **Commit Rules** | Atomic formatting and Zero-Entropy guardrails. | [COMMIT.md](./protocols/COMMIT.md) |
|
|
79
|
+
| **Release Logic** | Step-by-step SemVer validation and sealing. | [RELEASE.md](./protocols/RELEASE.md) |
|
|
80
|
+
| **Security Audit** | Vulnerability scanning and secret management. | [SECURITY.md](./protocols/SECURITY.md) |
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## Licensing
|
|
85
|
+
|
|
86
|
+
Copyright © 2026 **Wistant**. Distributed under the **Apache License 2.0**.
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
<div align="center">
|
|
91
|
+
<p>Engineered for professional AI-Pairing by <b>@wistantkode</b></p>
|
|
92
|
+
</div>
|
|
Binary file
|
package/assets/npm.svg
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<svg width="512px" height="165px" viewBox="0 0 512 165" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" preserveAspectRatio="xMidYMid">
|
|
3
|
+
<g>
|
|
4
|
+
<path d="M157.538462,164.102564 L223.179487,164.102564 L223.179487,131.282051 L288.820513,131.282051 L288.820513,0 L157.538462,0 L157.538462,164.102564 Z M223.179487,32.8205128 L256,32.8205128 L256,98.4615385 L223.179487,98.4615385 L223.179487,32.8205128 Z M315.076923,0 L315.076923,131.282051 L380.717949,131.282051 L380.717949,32.8205128 L413.538462,32.8205128 L413.538462,131.282051 L446.358974,131.282051 L446.358974,32.8205128 L479.179487,32.8205128 L479.179487,131.282051 L512,131.282051 L512,0 L315.076923,0 Z M0,131.282051 L65.6410256,131.282051 L65.6410256,32.8205128 L98.4615385,32.8205128 L98.4615385,131.282051 L131.282051,131.282051 L131.282051,0 L0,0 L0,131.282051 Z" fill="#C12127"></path>
|
|
5
|
+
</g>
|
|
6
|
+
</svg>
|
package/assets/pnpm.svg
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<svg width="512px" height="368px" viewBox="0 0 512 368" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" preserveAspectRatio="xMidYMid">
|
|
3
|
+
<title>pnpm</title>
|
|
4
|
+
<g>
|
|
5
|
+
<path d="M511.999952,126.273838 L511.999952,241.068235 L397.205554,241.068235 L397.205554,126.273838 L511.999952,126.273838 Z M511.999952,0 L511.999952,114.794398 L397.205554,114.794398 L397.205554,0 L511.999952,0 Z M385.726115,0 L385.726115,114.794398 L270.931717,114.794398 L270.931717,0 L385.726115,0 Z M259.452277,0 L259.452277,114.794398 L144.657879,114.794398 L144.657879,0 L259.452277,0 Z" fill="#F9AD00"></path>
|
|
6
|
+
<path d="M385.726115,252.547675 L385.726115,367.342073 L270.931717,367.342073 L270.931717,252.547675 L385.726115,252.547675 Z M511.999952,252.547675 L511.999952,367.342073 L397.205554,367.342073 L397.205554,252.547675 L511.999952,252.547675 Z M259.452277,252.547675 L259.452277,367.342073 L144.657879,367.342073 L144.657879,252.547675 L259.452277,252.547675 Z M385.726115,126.273838 L385.726115,241.068235 L270.931717,241.068235 L270.931717,126.273838 L385.726115,126.273838 Z M21.5032866,159.770843 C25.3603784,159.770843 28.9442595,160.26905 32.2549299,161.265466 C35.5656003,162.261881 38.4102055,163.788647 40.7887454,165.845762 C43.1672853,167.902878 45.0315464,170.490344 46.3815285,173.60816 C47.7315106,176.725975 48.4065016,180.438426 48.4065016,184.745512 C48.4065016,188.859743 47.8279379,192.459696 46.6708104,195.545369 C45.5136828,198.631042 43.8744188,201.218508 41.7530184,203.307766 C39.6316179,205.397024 37.0762946,206.955932 34.0870485,207.98449 C31.0978024,209.013048 27.7710607,209.527327 24.1068235,209.527327 C21.3425744,209.527327 18.7711799,209.109475 16.39264,208.273772 L16.39264,208.273772 L16.39264,224.280703 L16.2374434,224.325493 C15.5892694,224.505795 14.6124438,224.69979 13.3069666,224.90748 C11.8926996,225.132477 10.4462902,225.244976 8.96773835,225.244976 C7.55347137,225.244976 6.28384533,225.148548 5.15886024,224.955694 C4.03387514,224.762839 3.08567341,224.37713 2.31425506,223.798566 C1.54283671,223.220002 0.964272941,222.432513 0.578563765,221.436097 C0.192854588,220.439682 1.42108547e-14,219.137914 1.42108547e-14,217.530792 L1.42108547e-14,217.530792 L1.42108547e-14,171.245691 L0.00492850614,170.902838 C0.0509278968,169.322859 0.418923022,168.022876 1.10891388,167.00289 C1.8481898,165.910047 2.86067639,164.913632 4.14637365,164.013644 C6.13920439,162.727946 8.61417161,161.699389 11.5712753,160.92797 C14.528379,160.156552 17.8390494,159.770843 21.5032866,159.770843 Z M134.130366,159.770843 C137.987458,159.770843 141.571339,160.26905 144.882009,161.265466 C148.19268,162.261881 151.037285,163.788647 153.415825,165.845762 C155.794365,167.902878 157.658626,170.490344 159.008608,173.60816 C160.35859,176.725975 161.033581,180.438426 161.033581,184.745512 C161.033581,188.859743 160.455017,192.459696 159.29789,195.545369 C158.140762,198.631042 156.501498,201.218508 154.380098,203.307766 C152.258697,205.397024 149.703374,206.955932 146.714128,207.98449 C143.724882,209.013048 140.39814,209.527327 136.733903,209.527327 C133.969654,209.527327 131.398259,209.109475 129.01972,208.273772 L129.01972,208.273772 L129.01972,224.280703 L128.864523,224.325493 C128.216349,224.505795 127.239523,224.69979 125.934046,224.90748 C124.519779,225.132477 123.07337,225.244976 121.594818,225.244976 C120.180551,225.244976 118.910925,225.148548 117.78594,224.955694 C116.660955,224.762839 115.712753,224.37713 114.941335,223.798566 C114.169916,223.220002 113.591352,222.432513 113.205643,221.436097 C112.819934,220.439682 112.62708,219.137914 112.62708,217.530792 L112.62708,217.530792 L112.62708,171.245691 L112.632008,170.902838 C112.678007,169.322859 113.046003,168.022876 113.735993,167.00289 C114.475269,165.910047 115.487756,164.913632 116.773453,164.013644 C118.766284,162.727946 121.241251,161.699389 124.198355,160.92797 C127.155459,160.156552 130.466129,159.770843 134.130366,159.770843 Z M79.8417995,159.770843 C87.105989,159.770843 92.6987721,161.361893 96.6201487,164.543994 C100.541525,167.726095 102.502214,172.145679 102.502214,177.802747 L102.502214,177.802747 L102.502214,207.98449 L102.333801,208.032704 C101.68805,208.209487 100.731701,208.38627 99.4647539,208.563054 C98.0826293,208.755908 96.6522911,208.852336 95.1737393,208.852336 C93.7594723,208.852336 92.4898463,208.755908 91.3648612,208.563054 C90.2398761,208.370199 89.2916744,207.98449 88.520256,207.405926 C87.7488376,206.827362 87.1542027,206.039873 86.7363511,205.043457 C86.3184995,204.047042 86.1095736,202.745274 86.1095736,201.138152 L86.1095736,201.138152 L86.1095736,178.381311 L86.1048992,178.07106 C86.0488058,176.236004 85.4878714,174.87694 84.422096,173.993869 C83.2971109,173.061738 81.7703454,172.595673 79.8417995,172.595673 C78.5561023,172.595673 77.2864762,172.756385 76.0329214,173.077809 C74.7793666,173.399234 73.7025951,173.88137 72.8026071,174.524219 L72.8026071,174.524219 L72.8026071,207.98449 L72.6341941,208.032704 C71.9884437,208.209487 71.0320948,208.38627 69.7651473,208.563054 C68.3830227,208.755908 66.9526845,208.852336 65.4741327,208.852336 C64.0598657,208.852336 62.7902397,208.755908 61.6652546,208.563054 C60.5402695,208.370199 59.5920678,207.98449 58.8206494,207.405926 C58.0492311,206.827362 57.4545961,206.039873 57.0367445,205.043457 C56.6188929,204.047042 56.4099671,202.745274 56.4099671,201.138152 L56.4099671,201.138152 L56.4099671,172.209964 L56.4148956,171.867111 C56.460895,170.287132 56.8288901,168.987149 57.5188809,167.967163 C58.2581569,166.87432 59.2706435,165.877905 60.5563407,164.977917 C62.742026,163.43508 65.4902039,162.181525 68.8008744,161.217252 C72.1115448,160.252979 75.7918532,159.770843 79.8417995,159.770843 Z M221.107785,159.770843 C223.55061,159.770843 225.945221,160.092267 228.291619,160.735116 C230.638016,161.377964 232.727274,162.390451 234.559393,163.772576 C236.391512,165.1547 237.853992,166.986819 238.946835,169.268931 C240.039677,171.551044 240.586099,174.331364 240.586099,177.609892 L240.586099,177.609892 L240.586099,207.98449 L240.417686,208.032704 C239.771936,208.209487 238.815587,208.38627 237.548639,208.563054 C236.166515,208.755908 234.736176,208.852336 233.257624,208.852336 C231.843357,208.852336 230.573731,208.755908 229.448746,208.563054 C228.323761,208.370199 227.37556,207.98449 226.604141,207.405926 C225.832723,206.827362 225.238088,206.039873 224.820236,205.043457 C224.402385,204.047042 224.193459,202.745274 224.193459,201.138152 L224.193459,201.138152 L224.193459,178.092029 L224.188399,177.775515 C224.131059,176.009765 223.586324,174.717073 222.554195,173.897441 C221.461352,173.029596 219.9828,172.595673 218.118539,172.595673 C217.218551,172.595673 216.254278,172.804599 215.22572,173.22245 C214.197163,173.640302 213.425744,174.074225 212.911465,174.524219 C212.97575,174.781358 213.007893,175.022426 213.007893,175.247424 L213.007893,175.247424 L213.007893,207.98449 L212.824078,208.032704 C212.124311,208.209487 211.140953,208.38627 209.874006,208.563054 C208.491881,208.755908 207.093685,208.852336 205.679418,208.852336 C204.265151,208.852336 202.995525,208.755908 201.87054,208.563054 C200.745555,208.370199 199.797353,207.98449 199.025935,207.405926 C198.254517,206.827362 197.659882,206.039873 197.24203,205.043457 C196.824179,204.047042 196.615253,202.745274 196.615253,201.138152 L196.615253,201.138152 L196.615253,178.092029 L196.610311,177.791929 C196.551012,176.017773 195.958025,174.719611 194.831348,173.897441 C193.642078,173.029596 192.21174,172.595673 190.540333,172.595673 C189.383206,172.595673 188.38679,172.772456 187.551087,173.126023 C186.715384,173.47959 186.00825,173.817085 185.429687,174.13851 L185.429687,174.13851 L185.429687,207.98449 L185.261274,208.032704 C184.615523,208.209487 183.659174,208.38627 182.392227,208.563054 C181.010102,208.755908 179.579764,208.852336 178.101212,208.852336 C176.686945,208.852336 175.417319,208.755908 174.292334,208.563054 C173.167349,208.370199 172.219147,207.98449 171.447729,207.405926 C170.676311,206.827362 170.081676,206.039873 169.663824,205.043457 C169.245972,204.047042 169.037047,202.745274 169.037047,201.138152 L169.037047,201.138152 L169.037047,172.017109 L169.041975,171.674685 C169.087974,170.098706 169.45597,168.830723 170.14596,167.870736 C170.885236,166.842178 171.897723,165.877905 173.18342,164.977917 C175.369106,163.43508 178.085141,162.181525 181.331527,161.217252 C184.577912,160.252979 187.968939,159.770843 191.504606,159.770843 C194.140285,159.770843 196.727751,160.140481 199.267003,160.879757 C201.806255,161.619033 204.008012,162.727946 205.872273,164.206498 C207.800819,162.920801 209.970433,161.860101 212.381115,161.024398 C214.791798,160.188694 217.700688,159.770843 221.107785,159.770843 Z M22.0818504,172.595673 C20.860438,172.595673 19.7675953,172.740314 18.8033224,173.029596 C17.8390494,173.318878 17.0033462,173.656373 16.2962127,174.042082 L16.2962127,174.042082 L16.2962127,195.256087 L16.687279,195.443585 C17.3479845,195.747152 18.0533323,196.006077 18.8033224,196.22036 C19.7033104,196.477499 20.6675834,196.606069 21.6961412,196.606069 C28.317482,196.606069 31.6281525,192.65255 31.6281525,184.745512 C31.6281525,180.631281 30.8085205,177.57775 29.1692565,175.584919 C27.5299925,173.592088 25.1675238,172.595673 22.0818504,172.595673 Z M134.70893,172.595673 C133.487517,172.595673 132.394675,172.740314 131.430402,173.029596 C130.466129,173.318878 129.630426,173.656373 128.923292,174.042082 L128.923292,174.042082 L128.923292,195.256087 L129.314358,195.443585 C129.975064,195.747152 130.680412,196.006077 131.430402,196.22036 C132.33039,196.477499 133.294663,196.606069 134.323221,196.606069 C140.944562,196.606069 144.255232,192.65255 144.255232,184.745512 C144.255232,180.631281 143.4356,177.57775 141.796336,175.584919 C140.157072,173.592088 137.794603,172.595673 134.70893,172.595673 Z" fill="#4E4E4E"></path>
|
|
7
|
+
</g>
|
|
8
|
+
</svg>
|
|
Binary file
|
package/bin/cli.mjs
CHANGED
|
@@ -9,8 +9,6 @@ const pkgRoot = join(__dirname, '..');
|
|
|
9
9
|
|
|
10
10
|
const FILES_TO_INSTALL = [
|
|
11
11
|
'gitignore',
|
|
12
|
-
'aliases.sh',
|
|
13
|
-
'aliases.zsh',
|
|
14
12
|
'gitmessage',
|
|
15
13
|
'myKDEshorcuts.kksrc'
|
|
16
14
|
];
|
|
@@ -33,7 +31,7 @@ async function copyRecursive(src, dest) {
|
|
|
33
31
|
}
|
|
34
32
|
|
|
35
33
|
async function run() {
|
|
36
|
-
console.log('\x1b[36m%s\x1b[0m', '---
|
|
34
|
+
console.log('\x1b[36m%s\x1b[0m', '--- Dotfiles Installer ---');
|
|
37
35
|
|
|
38
36
|
const targetDir = process.cwd();
|
|
39
37
|
console.log(`Installing dotfiles to: ${targetDir}`);
|
|
@@ -58,8 +56,8 @@ async function run() {
|
|
|
58
56
|
}
|
|
59
57
|
}
|
|
60
58
|
|
|
61
|
-
console.log('\x1b[32m%s\x1b[0m', '\nDone!
|
|
62
|
-
console.log('
|
|
59
|
+
console.log('\x1b[32m%s\x1b[0m', '\nDone! Dotfiles and protocols added.');
|
|
60
|
+
console.log('Installation complete.');
|
|
63
61
|
}
|
|
64
62
|
|
|
65
63
|
run().catch(err => {
|
package/github.sh
CHANGED
|
@@ -1,33 +1,107 @@
|
|
|
1
1
|
#!/bin/bash
|
|
2
2
|
|
|
3
|
-
# ---
|
|
3
|
+
# --- GITHUB SYNC (SYSTEM PROTOCOL) ---
|
|
4
4
|
|
|
5
|
+
# Couleurs & Style
|
|
5
6
|
GRAY='\033[90m'
|
|
6
7
|
BOLD='\033[1m'
|
|
7
8
|
RED='\033[31m'
|
|
9
|
+
GREEN='\033[32m'
|
|
10
|
+
YELLOW='\033[33m'
|
|
11
|
+
CYAN='\033[36m'
|
|
8
12
|
RESET='\033[0m'
|
|
9
13
|
|
|
14
|
+
# Utilitaires
|
|
15
|
+
print_banner() {
|
|
16
|
+
echo -e "${GRAY}--------------------------------------------------${RESET}"
|
|
17
|
+
echo -e "${BOLD} INTEGRITY AUDIT : GITHUB SYNC${RESET}"
|
|
18
|
+
echo -e "${GRAY}--------------------------------------------------${RESET}"
|
|
19
|
+
}
|
|
20
|
+
|
|
10
21
|
refuse() {
|
|
11
22
|
echo -e "\n${RED}${BOLD}REFUS : $1${RESET}"
|
|
12
|
-
echo -e "${GRAY}L'
|
|
23
|
+
echo -e "${GRAY}L'intégrité de l'infrastructure prime sur la vitesse.${RESET}"
|
|
13
24
|
echo -e "${GRAY}--------------------------------------------------${RESET}"
|
|
14
25
|
exit 1
|
|
15
26
|
}
|
|
16
27
|
|
|
17
|
-
|
|
18
|
-
echo -
|
|
19
|
-
|
|
28
|
+
ask_confirm() {
|
|
29
|
+
echo -ne "${YELLOW}${BOLD}Confirmation requise :${RESET} $1 [y/N] "
|
|
30
|
+
read -r response
|
|
31
|
+
if [[ ! "$response" =~ ^([yY][eE][sS]|[yY])$ ]]; then
|
|
32
|
+
return 1
|
|
33
|
+
fi
|
|
34
|
+
return 0
|
|
35
|
+
}
|
|
20
36
|
|
|
21
|
-
#
|
|
37
|
+
# --- DÉBUT DE L'AUDIT ---
|
|
38
|
+
print_banner
|
|
39
|
+
|
|
40
|
+
# 1. État Interne (Staging Audit)
|
|
22
41
|
if ! git diff-index --quiet HEAD --; then
|
|
23
|
-
|
|
42
|
+
echo -e "${YELLOW}Avertissement :${RESET} Tu as des modifications non commitées."
|
|
43
|
+
git status -s
|
|
44
|
+
refuse "Ton historique doit être pur (atomique) avant toute projection distante."
|
|
24
45
|
fi
|
|
25
46
|
|
|
26
|
-
# 2.
|
|
27
|
-
|
|
28
|
-
|
|
47
|
+
# 2. Détection de Branche & Contexte
|
|
48
|
+
CURRENT_BRANCH=$(git rev-parse --abbrev-ref HEAD)
|
|
49
|
+
echo -e "${BOLD}Localisation :${RESET} Branche ${CYAN}${BOLD}${CURRENT_BRANCH}${RESET}"
|
|
50
|
+
|
|
51
|
+
# 3. Audit des Tags (Delta Local vs Distant)
|
|
52
|
+
echo -e "${GRAY}Analyse du scellement (tags)...${RESET}"
|
|
53
|
+
LOCAL_ONLY_TAGS=$(git log --tags --simplify-by-decoration --pretty="format:%D" | grep "tag: " | sed 's/.*tag: \([^,)]*\).*/\1/' | while read tag; do
|
|
54
|
+
if ! git ls-remote --tags origin 2>/dev/null | grep -q "refs/tags/$tag"; then
|
|
55
|
+
echo $tag
|
|
56
|
+
fi
|
|
57
|
+
done | sort -u)
|
|
58
|
+
|
|
59
|
+
if [ -n "$LOCAL_ONLY_TAGS" ]; then
|
|
60
|
+
echo -e "${YELLOW}${BOLD}DELTA DÉTECTÉ :${RESET} Tags locaux non scellés sur GitHub :"
|
|
61
|
+
for tag in $LOCAL_ONLY_TAGS; do
|
|
62
|
+
echo -e " - ${BOLD}$tag${RESET}"
|
|
63
|
+
done
|
|
64
|
+
|
|
65
|
+
if ask_confirm "Faut-il propager ces tags avec cette projection ?"; then
|
|
66
|
+
PUSH_TAGS="--tags"
|
|
67
|
+
fi
|
|
68
|
+
else
|
|
69
|
+
echo -e "${GRAY}Aucun nouveau tag local détecté.${RESET}"
|
|
70
|
+
fi
|
|
71
|
+
|
|
72
|
+
# 4. Logique de Branche
|
|
73
|
+
case "$CURRENT_BRANCH" in
|
|
74
|
+
"main" | "master")
|
|
75
|
+
echo -e "${RED}${BOLD}ATTENTION :${RESET} Branche de production."
|
|
76
|
+
if ! ask_confirm "Voulez-vous sceller ces changements sur le dépôt public ?"; then
|
|
77
|
+
refuse "Projection annulée."
|
|
78
|
+
fi
|
|
79
|
+
;;
|
|
80
|
+
"dev" | "develop")
|
|
81
|
+
echo -e "${YELLOW}INFO :${RESET} Branche d'intégration."
|
|
82
|
+
if ! ask_confirm "Pousser vers l'amont de développement ?"; then
|
|
83
|
+
refuse "Projection dev annulée."
|
|
84
|
+
fi
|
|
85
|
+
;;
|
|
86
|
+
feat/* | fix/* | refactor/*)
|
|
87
|
+
echo -e "${GREEN}INFO :${RESET} Branche de travail."
|
|
88
|
+
if ! ask_confirm "Continuer la projection ?"; then
|
|
89
|
+
refuse "Projection feature annulée."
|
|
90
|
+
fi
|
|
91
|
+
;;
|
|
92
|
+
*)
|
|
93
|
+
if ! ask_confirm "Confirmer la projection vers l'amont ?"; then
|
|
94
|
+
refuse "Projection annulée."
|
|
95
|
+
fi
|
|
96
|
+
;;
|
|
97
|
+
esac
|
|
98
|
+
|
|
99
|
+
# 5. Projection
|
|
100
|
+
echo -e "\n${BOLD}Action :${RESET} Synchronisation distante..."
|
|
101
|
+
if git push $PUSH_TAGS; then
|
|
102
|
+
echo -e "\n${GREEN}${BOLD}SUCCÈS :${RESET} L'infrastructure est synchronisée."
|
|
103
|
+
else
|
|
104
|
+
refuse "Échec de la projection. Vérifie ta clé ou ta connexion."
|
|
105
|
+
fi
|
|
29
106
|
|
|
30
|
-
echo -e "\n${GRAY}--------------------------------------------------${RESET}"
|
|
31
|
-
echo -e "${BOLD} SYNCHRONISATION TERMINÉE${RESET}"
|
|
32
|
-
echo -e "${GRAY} Ton historique est désormais scellé à distance.${RESET}"
|
|
33
107
|
echo -e "${GRAY}--------------------------------------------------${RESET}"
|
package/package.json
CHANGED
|
@@ -1,35 +1,44 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wistantkode/dotfiles",
|
|
3
|
-
"version": "1.1
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "1.2.1",
|
|
4
|
+
"description": "High-End Linux Infrastructure & AI-Driven Orchestration Protocols",
|
|
5
|
+
"main": "index.js",
|
|
5
6
|
"type": "module",
|
|
6
7
|
"bin": {
|
|
7
|
-
"
|
|
8
|
+
"dotfiles": "bin/cli.mjs"
|
|
9
|
+
},
|
|
10
|
+
"repository": {
|
|
11
|
+
"type": "git",
|
|
12
|
+
"url": "git+https://github.com/wistant/dotfiles.git"
|
|
8
13
|
},
|
|
9
|
-
"main": "index.js",
|
|
10
|
-
"files": [
|
|
11
|
-
"gitignore",
|
|
12
|
-
"aliases.sh",
|
|
13
|
-
"aliases.zsh",
|
|
14
|
-
"gitmessage",
|
|
15
|
-
"myKDEshorcuts.kksrc",
|
|
16
|
-
"protocols",
|
|
17
|
-
"bin",
|
|
18
|
-
"pnpm.sh",
|
|
19
|
-
"github.sh"
|
|
20
|
-
],
|
|
21
14
|
"keywords": [
|
|
22
|
-
"wistantkode",
|
|
23
15
|
"dotfiles",
|
|
24
|
-
"
|
|
25
|
-
"
|
|
26
|
-
"
|
|
16
|
+
"infrastructure-as-code",
|
|
17
|
+
"ai-pairing",
|
|
18
|
+
"orchestration",
|
|
19
|
+
"socratic-protocols",
|
|
20
|
+
"linux-setup",
|
|
21
|
+
"automation",
|
|
22
|
+
"cli",
|
|
23
|
+
"professional-environment",
|
|
24
|
+
"pnpm",
|
|
25
|
+
"engineering-standards"
|
|
27
26
|
],
|
|
28
|
-
"author": "
|
|
29
|
-
"license": "
|
|
27
|
+
"author": "Wistant",
|
|
28
|
+
"license": "Apache-2.0",
|
|
29
|
+
"engines": {
|
|
30
|
+
"node": ">=18.0.0"
|
|
31
|
+
},
|
|
32
|
+
"publishConfig": {
|
|
33
|
+
"access": "public",
|
|
34
|
+
"registry": "https://registry.npmjs.org/"
|
|
35
|
+
},
|
|
36
|
+
"bugs": {
|
|
37
|
+
"url": "https://github.com/wistant/dotfiles/issues"
|
|
38
|
+
},
|
|
39
|
+
"homepage": "https://github.com/wistant/dotfiles#readme",
|
|
30
40
|
"scripts": {
|
|
31
|
-
"
|
|
32
|
-
"audit": "
|
|
33
|
-
"test": "echo \"Error: no test specified\" && exit 1"
|
|
41
|
+
"test": "echo \"Error: no test specified\" && exit 1",
|
|
42
|
+
"audit": "pnpm audit"
|
|
34
43
|
}
|
|
35
44
|
}
|