zile 0.0.11 → 0.0.13
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/dist/internal/cli/commands.d.ts +4 -2
- package/dist/internal/cli/commands.d.ts.map +1 -1
- package/dist/internal/cli/commands.js +32 -4
- package/dist/internal/cli/commands.js.map +1 -1
- package/dist/internal/package.json +1 -1
- package/package.json +1 -1
- package/src/internal/cli/commands.ts +35 -6
- package/template/.github/actions/install-dependencies/action.yml +14 -0
- package/template/.github/workflows/main.yml +42 -0
- package/template/.github/workflows/prerelease.yml +21 -0
- package/template/.github/workflows/pull-request.yml +14 -0
- package/template/.github/workflows/verify.yml +37 -0
|
@@ -28,10 +28,12 @@ export declare namespace postPublish {
|
|
|
28
28
|
export declare function createNew(command: Command): Promise<Command>;
|
|
29
29
|
export declare namespace createNew {
|
|
30
30
|
type CommandOptions = {
|
|
31
|
-
/** Use pnpm as package manager */
|
|
32
|
-
pnpm?: boolean | undefined;
|
|
33
31
|
/** Use bun as package manager */
|
|
34
32
|
bun?: boolean | undefined;
|
|
33
|
+
/** Use npm as package manager */
|
|
34
|
+
npm?: boolean | undefined;
|
|
35
|
+
/** Use pnpm as package manager */
|
|
36
|
+
pnpm?: boolean | undefined;
|
|
35
37
|
};
|
|
36
38
|
}
|
|
37
39
|
//# sourceMappingURL=commands.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../../src/internal/cli/commands.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,CAAA;AAGlC,wBAAsB,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,GAAE,KAAK,CAAC,OAAY,oBAiBxE;AAED,MAAM,CAAC,OAAO,WAAW,KAAK,CAAC;IAC7B,KAAK,OAAO,GAAG;QACb,mEAAmE;QACnE,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;KAC3B,CAAA;IAED,KAAK,cAAc,GAAG;QACpB,iCAAiC;QACjC,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QACxB,gGAAgG;QAChG,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAC5B,iCAAiC;QACjC,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;KAC3B,CAAA;CACF;AAED,wBAAsB,cAAc,CAAC,OAAO,EAAE,OAAO,oBAkCpD;AAED,MAAM,CAAC,OAAO,WAAW,cAAc,CAAC;IACtC,KAAK,cAAc,GAAG,KAAK,CAAC,cAAc,CAAA;CAC3C;AAED,wBAAsB,WAAW,CAAC,OAAO,EAAE,OAAO,oBAUjD;AAED,MAAM,CAAC,OAAO,WAAW,WAAW,CAAC;IACnC,KAAK,cAAc,GAAG;QACpB,wCAAwC;QACxC,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KACzB,CAAA;CACF;AAED,wBAAsB,SAAS,CAAC,OAAO,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../../src/internal/cli/commands.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,CAAA;AAGlC,wBAAsB,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,GAAE,KAAK,CAAC,OAAY,oBAiBxE;AAED,MAAM,CAAC,OAAO,WAAW,KAAK,CAAC;IAC7B,KAAK,OAAO,GAAG;QACb,mEAAmE;QACnE,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;KAC3B,CAAA;IAED,KAAK,cAAc,GAAG;QACpB,iCAAiC;QACjC,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QACxB,gGAAgG;QAChG,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAC5B,iCAAiC;QACjC,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;KAC3B,CAAA;CACF;AAED,wBAAsB,cAAc,CAAC,OAAO,EAAE,OAAO,oBAkCpD;AAED,MAAM,CAAC,OAAO,WAAW,cAAc,CAAC;IACtC,KAAK,cAAc,GAAG,KAAK,CAAC,cAAc,CAAA;CAC3C;AAED,wBAAsB,WAAW,CAAC,OAAO,EAAE,OAAO,oBAUjD;AAED,MAAM,CAAC,OAAO,WAAW,WAAW,CAAC;IACnC,KAAK,cAAc,GAAG;QACpB,wCAAwC;QACxC,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KACzB,CAAA;CACF;AAED,wBAAsB,SAAS,CAAC,OAAO,EAAE,OAAO,oBA+J/C;AAED,MAAM,CAAC,OAAO,WAAW,SAAS,CAAC;IACjC,KAAK,cAAc,GAAG;QACpB,iCAAiC;QACjC,GAAG,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;QACzB,iCAAiC;QACjC,GAAG,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;QACzB,kCAAkC;QAClC,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;KAC3B,CAAA;CACF"}
|
|
@@ -62,12 +62,25 @@ export async function createNew(command) {
|
|
|
62
62
|
.action(async (options) => {
|
|
63
63
|
clack.intro('Create a new zile project');
|
|
64
64
|
try {
|
|
65
|
-
// Determine package manager from flags
|
|
66
|
-
let packageManager = 'npm';
|
|
65
|
+
// Determine package manager from flags or detect from invocation
|
|
66
|
+
let packageManager = 'npm';
|
|
67
67
|
if (options.pnpm)
|
|
68
68
|
packageManager = 'pnpm';
|
|
69
69
|
else if (options.bun)
|
|
70
70
|
packageManager = 'bun';
|
|
71
|
+
else {
|
|
72
|
+
// Auto-detect from how the command was invoked
|
|
73
|
+
const userAgent = process.env.npm_config_user_agent || '';
|
|
74
|
+
const execPath = process.env.npm_execpath || '';
|
|
75
|
+
if (userAgent.includes('pnpm') || execPath.includes('pnpm'))
|
|
76
|
+
packageManager = 'pnpm';
|
|
77
|
+
else if (userAgent.includes('bun') || execPath.includes('bun'))
|
|
78
|
+
packageManager = 'bun';
|
|
79
|
+
else if (userAgent.includes('yarn') || execPath.includes('yarn'))
|
|
80
|
+
packageManager = 'yarn';
|
|
81
|
+
else if (userAgent.includes('npm') || execPath.includes('npm'))
|
|
82
|
+
packageManager = 'npm';
|
|
83
|
+
}
|
|
71
84
|
// Get package name and directory in single prompt
|
|
72
85
|
const packageName = await clack.text({
|
|
73
86
|
message: 'Package name',
|
|
@@ -111,9 +124,21 @@ export async function createNew(command) {
|
|
|
111
124
|
}
|
|
112
125
|
}
|
|
113
126
|
cp(templatePath, targetPath);
|
|
114
|
-
// Replace "replace-me" in all files
|
|
127
|
+
// Replace "replace-me" and package manager placeholders in all files
|
|
115
128
|
function replace(dir) {
|
|
116
129
|
const entries = fs.readdirSync(dir, { withFileTypes: true });
|
|
130
|
+
// Determine pmx (package executor) based on package manager
|
|
131
|
+
const pmx = packageManager === 'npm' ? 'npx'
|
|
132
|
+
: packageManager === 'pnpm' ? 'pnpx'
|
|
133
|
+
: packageManager === 'bun' ? 'bunx'
|
|
134
|
+
: packageManager === 'yarn' ? 'yarn dlx'
|
|
135
|
+
: 'npx';
|
|
136
|
+
// Determine setup step based on package manager
|
|
137
|
+
let setupStep = '';
|
|
138
|
+
if (packageManager === 'pnpm')
|
|
139
|
+
setupStep = `\n - name: Set up pnpm\n uses: pnpm/action-setup@v4\n`;
|
|
140
|
+
else if (packageManager === 'bun')
|
|
141
|
+
setupStep = `\n - name: Set up Bun\n uses: oven-sh/setup-bun@v2\n`;
|
|
117
142
|
for (const entry of entries) {
|
|
118
143
|
const fullPath = path.join(dir, entry.name);
|
|
119
144
|
if (entry.isDirectory())
|
|
@@ -121,7 +146,10 @@ export async function createNew(command) {
|
|
|
121
146
|
else
|
|
122
147
|
try {
|
|
123
148
|
const content = fs.readFileSync(fullPath, 'utf-8');
|
|
124
|
-
|
|
149
|
+
let updated = content.replace(/replace-me/g, packageName);
|
|
150
|
+
updated = updated.replace(/\{pm\}/g, packageManager);
|
|
151
|
+
updated = updated.replace(/\{pmx\}/g, pmx);
|
|
152
|
+
updated = updated.replace(/\{setupStep\}/g, setupStep);
|
|
125
153
|
if (content !== updated)
|
|
126
154
|
fs.writeFileSync(fullPath, updated, 'utf-8');
|
|
127
155
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../../../src/internal/cli/commands.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../../../src/internal/cli/commands.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -107,10 +107,20 @@ export async function createNew(command: Command) {
|
|
|
107
107
|
clack.intro('Create a new zile project')
|
|
108
108
|
|
|
109
109
|
try {
|
|
110
|
-
// Determine package manager from flags
|
|
111
|
-
let packageManager = 'npm'
|
|
110
|
+
// Determine package manager from flags or detect from invocation
|
|
111
|
+
let packageManager = 'npm'
|
|
112
112
|
if (options.pnpm) packageManager = 'pnpm'
|
|
113
113
|
else if (options.bun) packageManager = 'bun'
|
|
114
|
+
else {
|
|
115
|
+
// Auto-detect from how the command was invoked
|
|
116
|
+
const userAgent = process.env.npm_config_user_agent || ''
|
|
117
|
+
const execPath = process.env.npm_execpath || ''
|
|
118
|
+
|
|
119
|
+
if (userAgent.includes('pnpm') || execPath.includes('pnpm')) packageManager = 'pnpm'
|
|
120
|
+
else if (userAgent.includes('bun') || execPath.includes('bun')) packageManager = 'bun'
|
|
121
|
+
else if (userAgent.includes('yarn') || execPath.includes('yarn')) packageManager = 'yarn'
|
|
122
|
+
else if (userAgent.includes('npm') || execPath.includes('npm')) packageManager = 'npm'
|
|
123
|
+
}
|
|
114
124
|
|
|
115
125
|
// Get package name and directory in single prompt
|
|
116
126
|
const packageName = await clack.text({
|
|
@@ -162,10 +172,24 @@ export async function createNew(command: Command) {
|
|
|
162
172
|
}
|
|
163
173
|
cp(templatePath, targetPath)
|
|
164
174
|
|
|
165
|
-
// Replace "replace-me" in all files
|
|
175
|
+
// Replace "replace-me" and package manager placeholders in all files
|
|
166
176
|
function replace(dir: string) {
|
|
167
177
|
const entries = fs.readdirSync(dir, { withFileTypes: true })
|
|
168
178
|
|
|
179
|
+
// Determine pmx (package executor) based on package manager
|
|
180
|
+
const pmx = packageManager === 'npm' ? 'npx'
|
|
181
|
+
: packageManager === 'pnpm' ? 'pnpx'
|
|
182
|
+
: packageManager === 'bun' ? 'bunx'
|
|
183
|
+
: packageManager === 'yarn' ? 'yarn dlx'
|
|
184
|
+
: 'npx'
|
|
185
|
+
|
|
186
|
+
// Determine setup step based on package manager
|
|
187
|
+
let setupStep = ''
|
|
188
|
+
if (packageManager === 'pnpm')
|
|
189
|
+
setupStep = `\n - name: Set up pnpm\n uses: pnpm/action-setup@v4\n`
|
|
190
|
+
else if (packageManager === 'bun')
|
|
191
|
+
setupStep = `\n - name: Set up Bun\n uses: oven-sh/setup-bun@v2\n`
|
|
192
|
+
|
|
169
193
|
for (const entry of entries) {
|
|
170
194
|
const fullPath = path.join(dir, entry.name)
|
|
171
195
|
|
|
@@ -173,7 +197,10 @@ export async function createNew(command: Command) {
|
|
|
173
197
|
else
|
|
174
198
|
try {
|
|
175
199
|
const content = fs.readFileSync(fullPath, 'utf-8')
|
|
176
|
-
|
|
200
|
+
let updated = content.replace(/replace-me/g, packageName as string)
|
|
201
|
+
updated = updated.replace(/\{pm\}/g, packageManager)
|
|
202
|
+
updated = updated.replace(/\{pmx\}/g, pmx)
|
|
203
|
+
updated = updated.replace(/\{setupStep\}/g, setupStep)
|
|
177
204
|
if (content !== updated) fs.writeFileSync(fullPath, updated, 'utf-8')
|
|
178
205
|
} catch {}
|
|
179
206
|
}
|
|
@@ -235,9 +262,11 @@ Next steps:
|
|
|
235
262
|
|
|
236
263
|
export declare namespace createNew {
|
|
237
264
|
type CommandOptions = {
|
|
238
|
-
/** Use pnpm as package manager */
|
|
239
|
-
pnpm?: boolean | undefined
|
|
240
265
|
/** Use bun as package manager */
|
|
241
266
|
bun?: boolean | undefined
|
|
267
|
+
/** Use npm as package manager */
|
|
268
|
+
npm?: boolean | undefined
|
|
269
|
+
/** Use pnpm as package manager */
|
|
270
|
+
pnpm?: boolean | undefined
|
|
242
271
|
}
|
|
243
272
|
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
name: 'Install dependencies'
|
|
2
|
+
description: 'Prepare repository and all dependencies'
|
|
3
|
+
|
|
4
|
+
runs:
|
|
5
|
+
using: 'composite'
|
|
6
|
+
steps:{setupStep}
|
|
7
|
+
- name: Set up Node
|
|
8
|
+
uses: actions/setup-node@v4
|
|
9
|
+
with:
|
|
10
|
+
node-version: '24.5'
|
|
11
|
+
|
|
12
|
+
- name: Install dependencies
|
|
13
|
+
shell: bash
|
|
14
|
+
run: {pm} install
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
name: Main
|
|
2
|
+
on:
|
|
3
|
+
push:
|
|
4
|
+
branches: [main]
|
|
5
|
+
|
|
6
|
+
concurrency:
|
|
7
|
+
group: ${{ github.workflow }}-${{ github.ref }}
|
|
8
|
+
cancel-in-progress: true
|
|
9
|
+
|
|
10
|
+
jobs:
|
|
11
|
+
verify:
|
|
12
|
+
name: Verify
|
|
13
|
+
uses: ./.github/workflows/verify.yml
|
|
14
|
+
secrets: inherit
|
|
15
|
+
|
|
16
|
+
changesets:
|
|
17
|
+
name: Changesets
|
|
18
|
+
needs: verify
|
|
19
|
+
permissions:
|
|
20
|
+
contents: write
|
|
21
|
+
id-token: write
|
|
22
|
+
pull-requests: write
|
|
23
|
+
runs-on: ubuntu-latest
|
|
24
|
+
timeout-minutes: 5
|
|
25
|
+
|
|
26
|
+
steps:
|
|
27
|
+
- name: Clone repository
|
|
28
|
+
uses: actions/checkout@v4
|
|
29
|
+
|
|
30
|
+
- name: Install dependencies
|
|
31
|
+
uses: ./.github/actions/install-dependencies
|
|
32
|
+
|
|
33
|
+
- name: PR or publish
|
|
34
|
+
id: changesets
|
|
35
|
+
uses: changesets/action@v1
|
|
36
|
+
with:
|
|
37
|
+
title: 'chore: version packages'
|
|
38
|
+
commit: 'chore: version packages'
|
|
39
|
+
publish: {pm} run changeset:publish
|
|
40
|
+
version: {pm} run changeset:version
|
|
41
|
+
env:
|
|
42
|
+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
name: Prerelease
|
|
2
|
+
on: [push, pull_request]
|
|
3
|
+
|
|
4
|
+
jobs:
|
|
5
|
+
build:
|
|
6
|
+
runs-on: ubuntu-latest
|
|
7
|
+
|
|
8
|
+
steps:
|
|
9
|
+
- name: Clone repository
|
|
10
|
+
uses: actions/checkout@v4
|
|
11
|
+
|
|
12
|
+
- name: Install dependencies
|
|
13
|
+
uses: ./.github/actions/install-dependencies
|
|
14
|
+
|
|
15
|
+
- name: Install dependencies
|
|
16
|
+
run: {pm} install
|
|
17
|
+
|
|
18
|
+
- name: Prerelease
|
|
19
|
+
run: |
|
|
20
|
+
{pm} run build
|
|
21
|
+
{pmx} pkg-pr-new publish --{pm}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
name: Pull Request
|
|
2
|
+
on:
|
|
3
|
+
pull_request:
|
|
4
|
+
types: [opened, reopened, synchronize, ready_for_review]
|
|
5
|
+
|
|
6
|
+
concurrency:
|
|
7
|
+
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
|
|
8
|
+
cancel-in-progress: true
|
|
9
|
+
|
|
10
|
+
jobs:
|
|
11
|
+
verify:
|
|
12
|
+
name: Verify
|
|
13
|
+
uses: ./.github/workflows/verify.yml
|
|
14
|
+
secrets: inherit
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
name: Verify
|
|
2
|
+
on:
|
|
3
|
+
workflow_call:
|
|
4
|
+
workflow_dispatch:
|
|
5
|
+
|
|
6
|
+
jobs:
|
|
7
|
+
checks:
|
|
8
|
+
name: Checks
|
|
9
|
+
runs-on: ubuntu-latest
|
|
10
|
+
|
|
11
|
+
steps:
|
|
12
|
+
- name: Clone repository
|
|
13
|
+
uses: actions/checkout@v4
|
|
14
|
+
|
|
15
|
+
- name: Install dependencies
|
|
16
|
+
uses: ./.github/actions/install-dependencies
|
|
17
|
+
|
|
18
|
+
- name: Check code
|
|
19
|
+
run: {pm} check
|
|
20
|
+
|
|
21
|
+
- name: Check types
|
|
22
|
+
run: {pm} check:types
|
|
23
|
+
|
|
24
|
+
test:
|
|
25
|
+
name: Test Runtime
|
|
26
|
+
runs-on: ubuntu-latest
|
|
27
|
+
steps:
|
|
28
|
+
- name: Clone repository
|
|
29
|
+
uses: actions/checkout@v4
|
|
30
|
+
|
|
31
|
+
- name: Install dependencies
|
|
32
|
+
uses: ./.github/actions/install-dependencies
|
|
33
|
+
|
|
34
|
+
- name: Run tests
|
|
35
|
+
run: {pm} run test --bail=1
|
|
36
|
+
env:
|
|
37
|
+
CI: true
|