mikuru 1.0.3 → 1.0.4
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/CHANGELOG.md +35 -30
- package/dist/cli.js +81 -7
- package/dist/cli.js.map +1 -1
- package/package.json +1 -1
- package/templates/starter/index.html +1 -0
- package/templates/starter/package.json +1 -1
- package/templates/starter/public/favicon.svg +4 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,30 +1,35 @@
|
|
|
1
|
-
# Changelog
|
|
2
|
-
|
|
3
|
-
## 1.0.
|
|
4
|
-
|
|
5
|
-
- Added
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
-
|
|
16
|
-
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
-
|
|
22
|
-
- Added
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
-
|
|
27
|
-
- Added
|
|
28
|
-
- Added
|
|
29
|
-
- Added
|
|
30
|
-
-
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## 1.0.4
|
|
4
|
+
|
|
5
|
+
- Added a starter favicon to projects created with `mikuru create`.
|
|
6
|
+
- Added CLI `--version`, create help, `--template starter`, and clearer create errors.
|
|
7
|
+
|
|
8
|
+
## 1.0.3
|
|
9
|
+
|
|
10
|
+
- Added `mikuru/env` for package-provided `.mikuru` TypeScript declarations.
|
|
11
|
+
|
|
12
|
+
## 1.0.2
|
|
13
|
+
|
|
14
|
+
- Reworked the README for npm package consumers with CLI-first setup, Vite integration, package exports, TypeScript declarations, and v1 limits.
|
|
15
|
+
- Updated npm usage docs and release documentation to match the published package contents.
|
|
16
|
+
- Updated the starter template to depend on `mikuru@^1.0.2`.
|
|
17
|
+
|
|
18
|
+
## 1.0.1
|
|
19
|
+
|
|
20
|
+
- Added the `mikuru` CLI with `mikuru create [project-name]`.
|
|
21
|
+
- Added a Vite starter template that shows a Mikuru welcome screen and counter after setup.
|
|
22
|
+
- Added create CLI smoke coverage and included it in CI.
|
|
23
|
+
|
|
24
|
+
## 1.0.0
|
|
25
|
+
|
|
26
|
+
- Stabilized the v1 SFC compiler surface for `.mikuru` files.
|
|
27
|
+
- Added Vite integration, generated DOM cleanup, component props/events/slots, `defineProps`, and `defineEmits`.
|
|
28
|
+
- Added `v-if` / `v-else-if` / `v-else`, `v-show`, `v-for`, `v-model`, DOM event modifiers, style injection, and basic scoped CSS support.
|
|
29
|
+
- Added CI, library build checks, basic example build checks, and browser E2E coverage.
|
|
30
|
+
- Added a realworld example, public package smoke test, parser-limit coverage, debug sourceURL support, and performance smoke coverage.
|
|
31
|
+
- Added v3 source maps, keyed `v-for` reuse, npm pack smoke coverage, and a v1 API contract.
|
|
32
|
+
- Added a dogfood notes app written in Mikuru to exercise daily authoring flows.
|
|
33
|
+
- Added generated DOM coverage for keyed insert/remove/reorder behavior, component cleanup, and slot cleanup.
|
|
34
|
+
- Added explicit unsupported-syntax errors with source frames, Vite error forwarding coverage, and debug `sourceURL` path normalization coverage.
|
|
35
|
+
- Documented runtime helpers including `nextTick`, `watch`, lifecycle callbacks, `provide`, and `inject`.
|
package/dist/cli.js
CHANGED
|
@@ -2,24 +2,34 @@
|
|
|
2
2
|
import { copyFileSync, existsSync, mkdirSync, readdirSync, readFileSync, statSync, writeFileSync } from "node:fs";
|
|
3
3
|
import { basename, dirname, join, resolve } from "node:path";
|
|
4
4
|
import { fileURLToPath } from "node:url";
|
|
5
|
-
const
|
|
6
|
-
const
|
|
5
|
+
const args = process.argv.slice(2);
|
|
6
|
+
const command = args[0];
|
|
7
7
|
if (command === "--help" || command === "-h" || !command) {
|
|
8
8
|
printHelp();
|
|
9
9
|
process.exit(0);
|
|
10
10
|
}
|
|
11
|
+
if (command === "--version" || command === "-v") {
|
|
12
|
+
console.log(readPackageVersion());
|
|
13
|
+
process.exit(0);
|
|
14
|
+
}
|
|
11
15
|
if (command !== "create") {
|
|
12
16
|
console.error(`Unknown command: ${command}`);
|
|
13
17
|
printHelp();
|
|
14
18
|
process.exit(1);
|
|
15
19
|
}
|
|
20
|
+
const createOptions = parseCreateArgs(args.slice(1));
|
|
21
|
+
if (!createOptions) {
|
|
22
|
+
process.exit(1);
|
|
23
|
+
}
|
|
24
|
+
const { targetArg, templateName } = createOptions;
|
|
16
25
|
const targetDir = resolve(process.cwd(), targetArg ?? "mikuru-app");
|
|
17
26
|
const appName = toPackageName(basename(targetDir));
|
|
18
27
|
if (existsSync(targetDir) && readdirSync(targetDir).length > 0) {
|
|
19
|
-
console.error(`
|
|
28
|
+
console.error(`Cannot create a Mikuru app in a non-empty directory: ${targetDir}`);
|
|
29
|
+
console.error("Choose a new directory name or empty the target directory first.");
|
|
20
30
|
process.exit(1);
|
|
21
31
|
}
|
|
22
|
-
const templateDir = resolve(dirname(fileURLToPath(import.meta.url)),
|
|
32
|
+
const templateDir = resolve(dirname(fileURLToPath(import.meta.url)), `../templates/${templateName}`);
|
|
23
33
|
copyTemplate(templateDir, targetDir, { appName });
|
|
24
34
|
console.log(`Created ${appName} in ${targetDir}`);
|
|
25
35
|
console.log("");
|
|
@@ -28,8 +38,67 @@ console.log(` cd ${basename(targetDir)}`);
|
|
|
28
38
|
console.log(" npm install");
|
|
29
39
|
console.log(" npm run dev");
|
|
30
40
|
function printHelp() {
|
|
31
|
-
console.log(
|
|
32
|
-
|
|
41
|
+
console.log(`Usage:
|
|
42
|
+
mikuru create [project-name] [--template starter]
|
|
43
|
+
mikuru --version
|
|
44
|
+
mikuru --help
|
|
45
|
+
|
|
46
|
+
Commands:
|
|
47
|
+
create Create a new Mikuru app.
|
|
48
|
+
|
|
49
|
+
Options:
|
|
50
|
+
-h, --help Show help.
|
|
51
|
+
-v, --version Show the installed Mikuru version.`);
|
|
52
|
+
}
|
|
53
|
+
function printCreateHelp() {
|
|
54
|
+
console.log(`Usage:
|
|
55
|
+
mikuru create [project-name] [--template starter]
|
|
56
|
+
|
|
57
|
+
Options:
|
|
58
|
+
--template <name> Template to use. Available: starter.
|
|
59
|
+
-h, --help Show create help.`);
|
|
60
|
+
}
|
|
61
|
+
function parseCreateArgs(createArgs) {
|
|
62
|
+
let targetArg;
|
|
63
|
+
let templateName = "starter";
|
|
64
|
+
for (let i = 0; i < createArgs.length; i++) {
|
|
65
|
+
const arg = createArgs[i];
|
|
66
|
+
if (arg === "--help" || arg === "-h") {
|
|
67
|
+
printCreateHelp();
|
|
68
|
+
process.exit(0);
|
|
69
|
+
}
|
|
70
|
+
if (arg === "--template") {
|
|
71
|
+
const nextValue = createArgs[++i];
|
|
72
|
+
if (!nextValue) {
|
|
73
|
+
console.error("Missing value for --template.");
|
|
74
|
+
printCreateHelp();
|
|
75
|
+
return undefined;
|
|
76
|
+
}
|
|
77
|
+
templateName = nextValue;
|
|
78
|
+
continue;
|
|
79
|
+
}
|
|
80
|
+
if (arg.startsWith("--template=")) {
|
|
81
|
+
templateName = arg.slice("--template=".length);
|
|
82
|
+
continue;
|
|
83
|
+
}
|
|
84
|
+
if (arg.startsWith("-")) {
|
|
85
|
+
console.error(`Unknown create option: ${arg}`);
|
|
86
|
+
printCreateHelp();
|
|
87
|
+
return undefined;
|
|
88
|
+
}
|
|
89
|
+
if (targetArg) {
|
|
90
|
+
console.error(`Unexpected extra argument: ${arg}`);
|
|
91
|
+
printCreateHelp();
|
|
92
|
+
return undefined;
|
|
93
|
+
}
|
|
94
|
+
targetArg = arg;
|
|
95
|
+
}
|
|
96
|
+
if (templateName !== "starter") {
|
|
97
|
+
console.error(`Unknown template: ${templateName}`);
|
|
98
|
+
console.error("Available templates: starter");
|
|
99
|
+
return undefined;
|
|
100
|
+
}
|
|
101
|
+
return { targetArg, templateName };
|
|
33
102
|
}
|
|
34
103
|
function copyTemplate(sourceDir, targetDir, variables) {
|
|
35
104
|
mkdirSync(targetDir, { recursive: true });
|
|
@@ -51,7 +120,7 @@ function copyTemplate(sourceDir, targetDir, variables) {
|
|
|
51
120
|
}
|
|
52
121
|
}
|
|
53
122
|
function isTextTemplate(path) {
|
|
54
|
-
return /\.(css|html|json|mikuru|ts)$/.test(path) || path.endsWith("_gitignore");
|
|
123
|
+
return /\.(css|html|json|mikuru|svg|ts)$/.test(path) || path.endsWith("_gitignore");
|
|
55
124
|
}
|
|
56
125
|
function toPackageName(value) {
|
|
57
126
|
return value
|
|
@@ -60,4 +129,9 @@ function toPackageName(value) {
|
|
|
60
129
|
.replace(/[^a-z0-9._-]+/g, "-")
|
|
61
130
|
.replace(/^-+|-+$/g, "") || "mikuru-app";
|
|
62
131
|
}
|
|
132
|
+
function readPackageVersion() {
|
|
133
|
+
const packageJsonPath = resolve(dirname(fileURLToPath(import.meta.url)), "../package.json");
|
|
134
|
+
const packageJson = JSON.parse(readFileSync(packageJsonPath, "utf8"));
|
|
135
|
+
return packageJson.version ?? "0.0.0";
|
|
136
|
+
}
|
|
63
137
|
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAClH,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED