mikuru 1.0.4 → 1.0.6
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 +13 -0
- package/README.md +200 -179
- package/dist/cli.js +28 -10
- package/dist/cli.js.map +1 -1
- package/dist/compiler/analyzeTemplate.js +2 -8
- package/dist/compiler/analyzeTemplate.js.map +1 -1
- package/dist/compiler/generate.js +178 -13
- package/dist/compiler/generate.js.map +1 -1
- package/dist/compiler/parseSfc.js +84 -7
- package/dist/compiler/parseSfc.js.map +1 -1
- package/package.json +1 -1
- package/templates/basic/_gitignore +3 -0
- package/templates/basic/index.html +13 -0
- package/templates/basic/package.json +18 -0
- package/templates/basic/public/favicon.svg +4 -0
- package/templates/basic/src/App.mikuru +37 -0
- package/templates/basic/src/MoodBadge.mikuru +26 -0
- package/templates/basic/src/main.ts +9 -0
- package/templates/basic/src/mikuru-env.d.ts +1 -0
- package/templates/basic/vite.config.ts +6 -0
- package/templates/starter/package.json +1 -1
- package/types/env.d.ts +6 -6
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 1.0.6
|
|
4
|
+
|
|
5
|
+
- Added named slots with `<slot name="...">`, `<template #name>`, and `<template v-slot:name>`.
|
|
6
|
+
- Added simple slot props with identifier and object destructuring scope bindings.
|
|
7
|
+
- Updated v1 docs and release notes to list named slots and slot props as supported.
|
|
8
|
+
|
|
9
|
+
## 1.0.5
|
|
10
|
+
|
|
11
|
+
- Added a `basic` project template for `mikuru create --template basic`.
|
|
12
|
+
- Added `mikuru create --force` and `--yes` support.
|
|
13
|
+
- Added generated starter and basic template build smoke coverage for packed packages.
|
|
14
|
+
- Added generic `MikuruComponent<Props>` and `MikuruMount<Props>` types.
|
|
15
|
+
|
|
3
16
|
## 1.0.4
|
|
4
17
|
|
|
5
18
|
- Added a starter favicon to projects created with `mikuru create`.
|
package/README.md
CHANGED
|
@@ -1,179 +1,200 @@
|
|
|
1
|
-
# Mikuru
|
|
2
|
-
|
|
3
|
-
Mikuru is a compile-first JavaScript framework for Vue-like single-file components that generate direct DOM update code instead of using a virtual DOM.
|
|
4
|
-
|
|
5
|
-
It is intentionally small. Mikuru v1 is a practical validation release for writing `.mikuru` components in Vite apps, not a Vue compatibility layer.
|
|
6
|
-
|
|
7
|
-
## Requirements
|
|
8
|
-
|
|
9
|
-
- Node.js 22 or newer
|
|
10
|
-
- Vite 8 or newer for app development
|
|
11
|
-
|
|
12
|
-
## Create a New App
|
|
13
|
-
|
|
14
|
-
The fastest way to try Mikuru is the package CLI:
|
|
15
|
-
|
|
16
|
-
```sh
|
|
17
|
-
npx mikuru create my-app
|
|
18
|
-
cd my-app
|
|
19
|
-
npm install
|
|
20
|
-
npm run dev
|
|
21
|
-
```
|
|
22
|
-
|
|
23
|
-
The generated starter includes Vite, TypeScript, the package-provided `.mikuru` module declaration, and a welcome component at `src/App.mikuru`.
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
mount
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
```
|
|
90
|
-
|
|
91
|
-
##
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
```
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
npm
|
|
171
|
-
npm run
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
1
|
+
# Mikuru
|
|
2
|
+
|
|
3
|
+
Mikuru is a compile-first JavaScript framework for Vue-like single-file components that generate direct DOM update code instead of using a virtual DOM.
|
|
4
|
+
|
|
5
|
+
It is intentionally small. Mikuru v1 is a practical validation release for writing `.mikuru` components in Vite apps, not a Vue compatibility layer.
|
|
6
|
+
|
|
7
|
+
## Requirements
|
|
8
|
+
|
|
9
|
+
- Node.js 22 or newer
|
|
10
|
+
- Vite 8 or newer for app development
|
|
11
|
+
|
|
12
|
+
## Create a New App
|
|
13
|
+
|
|
14
|
+
The fastest way to try Mikuru is the package CLI:
|
|
15
|
+
|
|
16
|
+
```sh
|
|
17
|
+
npx mikuru create my-app
|
|
18
|
+
cd my-app
|
|
19
|
+
npm install
|
|
20
|
+
npm run dev
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
The generated starter includes Vite, TypeScript, the package-provided `.mikuru` module declaration, and a welcome component at `src/App.mikuru`.
|
|
24
|
+
|
|
25
|
+
Use the `basic` template when you want a small component composition example:
|
|
26
|
+
|
|
27
|
+
```sh
|
|
28
|
+
npx mikuru create my-basic-app --template basic
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
`mikuru create` also accepts `--force` for non-empty directories and `--yes` / `-y` to use default answers for prompts.
|
|
32
|
+
|
|
33
|
+
## Add Mikuru to a Vite App
|
|
34
|
+
|
|
35
|
+
Install Mikuru and the Vite tooling:
|
|
36
|
+
|
|
37
|
+
```sh
|
|
38
|
+
npm install mikuru
|
|
39
|
+
npm install -D vite typescript
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
Configure Vite:
|
|
43
|
+
|
|
44
|
+
```ts
|
|
45
|
+
import { defineConfig } from "vite";
|
|
46
|
+
import { mikuru } from "mikuru/vite";
|
|
47
|
+
|
|
48
|
+
export default defineConfig({
|
|
49
|
+
plugins: [mikuru()]
|
|
50
|
+
});
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
Create a `.mikuru` component:
|
|
54
|
+
|
|
55
|
+
```mikuru
|
|
56
|
+
<template>
|
|
57
|
+
<button @click="increment">count: {{ count }}</button>
|
|
58
|
+
</template>
|
|
59
|
+
|
|
60
|
+
<script>
|
|
61
|
+
import { ref } from "mikuru";
|
|
62
|
+
|
|
63
|
+
const count = ref(0);
|
|
64
|
+
|
|
65
|
+
function increment() {
|
|
66
|
+
count.value += 1;
|
|
67
|
+
}
|
|
68
|
+
</script>
|
|
69
|
+
|
|
70
|
+
<style>
|
|
71
|
+
button {
|
|
72
|
+
font: inherit;
|
|
73
|
+
}
|
|
74
|
+
</style>
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
Mount it from your app entry:
|
|
78
|
+
|
|
79
|
+
```ts
|
|
80
|
+
import { mount } from "./App.mikuru";
|
|
81
|
+
|
|
82
|
+
const app = document.querySelector("#app");
|
|
83
|
+
|
|
84
|
+
if (!app) {
|
|
85
|
+
throw new Error("Missing #app");
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
mount(app);
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
## TypeScript Declarations
|
|
92
|
+
|
|
93
|
+
For TypeScript projects, add a local declaration file such as `src/mikuru-env.d.ts` that imports Mikuru's package-provided `.mikuru` module declaration:
|
|
94
|
+
|
|
95
|
+
```ts
|
|
96
|
+
import "mikuru/env";
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
You can use the exported component types for typed wrappers or hand-written integrations:
|
|
100
|
+
|
|
101
|
+
```ts
|
|
102
|
+
import type { MikuruComponent } from "mikuru/env";
|
|
103
|
+
|
|
104
|
+
type GreetingProps = {
|
|
105
|
+
name: string;
|
|
106
|
+
};
|
|
107
|
+
|
|
108
|
+
declare const Greeting: MikuruComponent<GreetingProps>;
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
## Supported v1 Surface
|
|
112
|
+
|
|
113
|
+
- `.mikuru` SFCs with `<template>`, `<script>`, and `<style>`
|
|
114
|
+
- Vite plugin support through `mikuru/vite`
|
|
115
|
+
- Template interpolation with `{{ value }}`
|
|
116
|
+
- DOM events with `@click`, `v-on:click`, `.prevent`, and `.stop`
|
|
117
|
+
- Attribute bindings with `:class` and `v-bind:class`
|
|
118
|
+
- `v-if`, `v-else-if`, `v-else`, `v-show`, and `v-for`
|
|
119
|
+
- `v-model` for common form controls and child components
|
|
120
|
+
- Component props, events, `defineProps`, `defineEmits`, default slots, named slots, and slot props
|
|
121
|
+
- Runtime helpers including `ref`, `computed`, `effect`, `watch`, `nextTick`, lifecycle callbacks, `provide`, and `inject`
|
|
122
|
+
- Style injection and basic `<style scoped>` selector rewriting
|
|
123
|
+
- Compile errors with filenames, line/column information, and code frames
|
|
124
|
+
|
|
125
|
+
## Package Exports
|
|
126
|
+
|
|
127
|
+
Application code usually imports from `mikuru`:
|
|
128
|
+
|
|
129
|
+
```ts
|
|
130
|
+
import { computed, ref } from "mikuru";
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
The Vite plugin is available from `mikuru/vite`:
|
|
134
|
+
|
|
135
|
+
```ts
|
|
136
|
+
import { mikuru } from "mikuru/vite";
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
The `.mikuru` TypeScript declaration is available from `mikuru/env`:
|
|
140
|
+
|
|
141
|
+
```ts
|
|
142
|
+
import "mikuru/env";
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
Compiler and runtime entries are public for lower-level integrations:
|
|
146
|
+
|
|
147
|
+
```ts
|
|
148
|
+
import { compile } from "mikuru/compiler";
|
|
149
|
+
import { effect, nextTick, ref, unwrap, watch } from "mikuru/runtime";
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
The package also provides the `mikuru` binary:
|
|
153
|
+
|
|
154
|
+
```sh
|
|
155
|
+
npx mikuru create my-app
|
|
156
|
+
npx mikuru create my-basic-app --template basic
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
## Not Included in v1
|
|
160
|
+
|
|
161
|
+
Mikuru does not claim Vue compatibility. The v1 package does not include SSR, hydration, transitions, devtools, dynamic components, `v-html`, object-form `v-bind` / `v-on`, or full template type checking.
|
|
162
|
+
|
|
163
|
+
Scoped CSS is a basic selector rewrite, not a full CSS compiler. Avoid relying on `:global()`, deep selectors, complex nesting, CSS Modules, or preprocessors in v1.
|
|
164
|
+
|
|
165
|
+
## Repository Development
|
|
166
|
+
|
|
167
|
+
For local framework development:
|
|
168
|
+
|
|
169
|
+
```sh
|
|
170
|
+
npm install
|
|
171
|
+
npm run ci
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
Useful targeted checks:
|
|
175
|
+
|
|
176
|
+
```sh
|
|
177
|
+
npm run typecheck
|
|
178
|
+
npm test
|
|
179
|
+
npm run build
|
|
180
|
+
npm run test:create
|
|
181
|
+
npm run test:package
|
|
182
|
+
npm run test:pack
|
|
183
|
+
npm run test:e2e
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
Examples can be run from the repository root:
|
|
187
|
+
|
|
188
|
+
```sh
|
|
189
|
+
npm run dev:basic
|
|
190
|
+
npm run dev:realworld
|
|
191
|
+
npm run dev:dogfood
|
|
192
|
+
npm run dev:mikuru-sample
|
|
193
|
+
npm run dev:mikuru-vue-like
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
## Documentation
|
|
197
|
+
|
|
198
|
+
- `CHANGELOG.md` lists published package changes.
|
|
199
|
+
- `docs/npm-usage.md` shows a manual Vite setup for package consumers.
|
|
200
|
+
- `docs/v1-api-contract.md` describes the v1 compatibility boundary used by this repository.
|
package/dist/cli.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
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 availableTemplates = ["starter", "basic"];
|
|
5
6
|
const args = process.argv.slice(2);
|
|
6
7
|
const command = args[0];
|
|
7
8
|
if (command === "--help" || command === "-h" || !command) {
|
|
@@ -21,17 +22,19 @@ const createOptions = parseCreateArgs(args.slice(1));
|
|
|
21
22
|
if (!createOptions) {
|
|
22
23
|
process.exit(1);
|
|
23
24
|
}
|
|
24
|
-
const { targetArg, templateName } = createOptions;
|
|
25
|
+
const { force, targetArg, templateName } = createOptions;
|
|
25
26
|
const targetDir = resolve(process.cwd(), targetArg ?? "mikuru-app");
|
|
26
27
|
const appName = toPackageName(basename(targetDir));
|
|
27
|
-
if (existsSync(targetDir) && readdirSync(targetDir).length > 0) {
|
|
28
|
+
if (!force && existsSync(targetDir) && readdirSync(targetDir).length > 0) {
|
|
28
29
|
console.error(`Cannot create a Mikuru app in a non-empty directory: ${targetDir}`);
|
|
29
|
-
console.error("Choose a new directory name
|
|
30
|
+
console.error("Choose a new directory name, empty the target directory, or pass --force to overwrite template files.");
|
|
30
31
|
process.exit(1);
|
|
31
32
|
}
|
|
32
33
|
const templateDir = resolve(dirname(fileURLToPath(import.meta.url)), `../templates/${templateName}`);
|
|
33
34
|
copyTemplate(templateDir, targetDir, { appName });
|
|
34
|
-
console.log(`Created ${appName}
|
|
35
|
+
console.log(`Created ${appName}`);
|
|
36
|
+
console.log(` Template: ${templateName}`);
|
|
37
|
+
console.log(` Location: ${targetDir}`);
|
|
35
38
|
console.log("");
|
|
36
39
|
console.log("Next steps:");
|
|
37
40
|
console.log(` cd ${basename(targetDir)}`);
|
|
@@ -39,7 +42,7 @@ console.log(" npm install");
|
|
|
39
42
|
console.log(" npm run dev");
|
|
40
43
|
function printHelp() {
|
|
41
44
|
console.log(`Usage:
|
|
42
|
-
mikuru create [project-name] [--template starter]
|
|
45
|
+
mikuru create [project-name] [--template starter|basic]
|
|
43
46
|
mikuru --version
|
|
44
47
|
mikuru --help
|
|
45
48
|
|
|
@@ -52,21 +55,33 @@ Options:
|
|
|
52
55
|
}
|
|
53
56
|
function printCreateHelp() {
|
|
54
57
|
console.log(`Usage:
|
|
55
|
-
mikuru create [project-name] [--template starter]
|
|
58
|
+
mikuru create [project-name] [--template starter|basic]
|
|
56
59
|
|
|
57
60
|
Options:
|
|
58
|
-
--template <name> Template to use. Available:
|
|
61
|
+
--template <name> Template to use. Available: ${availableTemplates.join(", ")}.
|
|
62
|
+
--force Create into a non-empty directory and overwrite template files.
|
|
63
|
+
-y, --yes Use default answers for prompts. Currently accepted for future compatibility.
|
|
59
64
|
-h, --help Show create help.`);
|
|
60
65
|
}
|
|
61
66
|
function parseCreateArgs(createArgs) {
|
|
67
|
+
let force = false;
|
|
62
68
|
let targetArg;
|
|
63
69
|
let templateName = "starter";
|
|
70
|
+
let yes = false;
|
|
64
71
|
for (let i = 0; i < createArgs.length; i++) {
|
|
65
72
|
const arg = createArgs[i];
|
|
66
73
|
if (arg === "--help" || arg === "-h") {
|
|
67
74
|
printCreateHelp();
|
|
68
75
|
process.exit(0);
|
|
69
76
|
}
|
|
77
|
+
if (arg === "--force") {
|
|
78
|
+
force = true;
|
|
79
|
+
continue;
|
|
80
|
+
}
|
|
81
|
+
if (arg === "--yes" || arg === "-y") {
|
|
82
|
+
yes = true;
|
|
83
|
+
continue;
|
|
84
|
+
}
|
|
70
85
|
if (arg === "--template") {
|
|
71
86
|
const nextValue = createArgs[++i];
|
|
72
87
|
if (!nextValue) {
|
|
@@ -93,12 +108,15 @@ function parseCreateArgs(createArgs) {
|
|
|
93
108
|
}
|
|
94
109
|
targetArg = arg;
|
|
95
110
|
}
|
|
96
|
-
if (templateName
|
|
111
|
+
if (!isTemplateName(templateName)) {
|
|
97
112
|
console.error(`Unknown template: ${templateName}`);
|
|
98
|
-
console.error(
|
|
113
|
+
console.error(`Available templates: ${availableTemplates.join(", ")}`);
|
|
99
114
|
return undefined;
|
|
100
115
|
}
|
|
101
|
-
return { targetArg, templateName };
|
|
116
|
+
return { force, targetArg, templateName, yes };
|
|
117
|
+
}
|
|
118
|
+
function isTemplateName(value) {
|
|
119
|
+
return availableTemplates.includes(value);
|
|
102
120
|
}
|
|
103
121
|
function copyTemplate(sourceDir, targetDir, variables) {
|
|
104
122
|
mkdirSync(targetDir, { recursive: true });
|
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":";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;AAEzC,MAAM,kBAAkB,GAAG,CAAC,SAAS,EAAE,OAAO,CAAU,CAAC;AAUzD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnC,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AAExB,IAAI,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;IACzD,SAAS,EAAE,CAAC;IACZ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,IAAI,OAAO,KAAK,WAAW,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;IAChD,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,CAAC,CAAC;IAClC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;IACzB,OAAO,CAAC,KAAK,CAAC,oBAAoB,OAAO,EAAE,CAAC,CAAC;IAC7C,SAAS,EAAE,CAAC;IACZ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,aAAa,GAAG,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACrD,IAAI,CAAC,aAAa,EAAE,CAAC;IACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,aAAa,CAAC;AACzD,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,IAAI,YAAY,CAAC,CAAC;AACpE,MAAM,OAAO,GAAG,aAAa,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;AAEnD,IAAI,CAAC,KAAK,IAAI,UAAU,CAAC,SAAS,CAAC,IAAI,WAAW,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;IACzE,OAAO,CAAC,KAAK,CAAC,wDAAwD,SAAS,EAAE,CAAC,CAAC;IACnF,OAAO,CAAC,KAAK,CAAC,uGAAuG,CAAC,CAAC;IACvH,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,gBAAgB,YAAY,EAAE,CAAC,CAAC;AAErG,YAAY,CAAC,WAAW,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;AAElD,OAAO,CAAC,GAAG,CAAC,WAAW,OAAO,EAAE,CAAC,CAAC;AAClC,OAAO,CAAC,GAAG,CAAC,eAAe,YAAY,EAAE,CAAC,CAAC;AAC3C,OAAO,CAAC,GAAG,CAAC,eAAe,SAAS,EAAE,CAAC,CAAC;AACxC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAChB,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;AAC3B,OAAO,CAAC,GAAG,CAAC,QAAQ,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;AAC3C,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;AAC7B,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;AAE7B,SAAS,SAAS;IAChB,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;sDAUwC,CAAC,CAAC;AACxD,CAAC;AAED,SAAS,eAAe;IACtB,OAAO,CAAC,GAAG,CAAC;;;;qDAIuC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC;;;yCAGzC,CAAC,CAAC;AAC3C,CAAC;AAED,SAAS,eAAe,CAAC,UAAoB;IAC3C,IAAI,KAAK,GAAG,KAAK,CAAC;IAClB,IAAI,SAA6B,CAAC;IAClC,IAAI,YAAY,GAAG,SAAS,CAAC;IAC7B,IAAI,GAAG,GAAG,KAAK,CAAC;IAEhB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3C,MAAM,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QAE1B,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACrC,eAAe,EAAE,CAAC;YAClB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,KAAK,GAAG,IAAI,CAAC;YACb,SAAS;QACX,CAAC;QAED,IAAI,GAAG,KAAK,OAAO,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACpC,GAAG,GAAG,IAAI,CAAC;YACX,SAAS;QACX,CAAC;QAED,IAAI,GAAG,KAAK,YAAY,EAAE,CAAC;YACzB,MAAM,SAAS,GAAG,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;YAClC,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;gBAC/C,eAAe,EAAE,CAAC;gBAClB,OAAO,SAAS,CAAC;YACnB,CAAC;YACD,YAAY,GAAG,SAAS,CAAC;YACzB,SAAS;QACX,CAAC;QAED,IAAI,GAAG,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;YAClC,YAAY,GAAG,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YAC/C,SAAS;QACX,CAAC;QAED,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACxB,OAAO,CAAC,KAAK,CAAC,0BAA0B,GAAG,EAAE,CAAC,CAAC;YAC/C,eAAe,EAAE,CAAC;YAClB,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,IAAI,SAAS,EAAE,CAAC;YACd,OAAO,CAAC,KAAK,CAAC,8BAA8B,GAAG,EAAE,CAAC,CAAC;YACnD,eAAe,EAAE,CAAC;YAClB,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,SAAS,GAAG,GAAG,CAAC;IAClB,CAAC;IAED,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,EAAE,CAAC;QAClC,OAAO,CAAC,KAAK,CAAC,qBAAqB,YAAY,EAAE,CAAC,CAAC;QACnD,OAAO,CAAC,KAAK,CAAC,wBAAwB,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACvE,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC;AACjD,CAAC;AAED,SAAS,cAAc,CAAC,KAAa;IACnC,OAAQ,kBAAwC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACnE,CAAC;AAED,SAAS,YAAY,CAAC,SAAiB,EAAE,SAAiB,EAAE,SAA8B;IACxF,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE1C,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC;QAC3C,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAC1C,MAAM,UAAU,GAAG,KAAK,KAAK,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC;QACjE,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QAC/C,MAAM,IAAI,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;QAElC,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YACvB,YAAY,CAAC,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;YAChD,SAAS;QACX,CAAC;QAED,IAAI,cAAc,CAAC,UAAU,CAAC,EAAE,CAAC;YAC/B,MAAM,OAAO,GAAG,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,UAAU,CAAC,qBAAqB,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;YACtG,aAAa,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YACnC,SAAS;QACX,CAAC;QAED,YAAY,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IACvC,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CAAC,IAAY;IAClC,OAAO,kCAAkC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;AACtF,CAAC;AAED,SAAS,aAAa,CAAC,KAAa;IAClC,OAAO,KAAK;SACT,IAAI,EAAE;SACN,WAAW,EAAE;SACb,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC;SAC9B,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,IAAI,YAAY,CAAC;AAC7C,CAAC;AAED,SAAS,kBAAkB;IACzB,MAAM,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC;IAC5F,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,eAAe,EAAE,MAAM,CAAC,CAAyB,CAAC;IAC9F,OAAO,WAAW,CAAC,OAAO,IAAI,OAAO,CAAC;AACxC,CAAC"}
|
|
@@ -83,9 +83,6 @@ function rejectUnsupportedNodeFeatures(node, options) {
|
|
|
83
83
|
if (node.tag === "component") {
|
|
84
84
|
throwTemplateError("Dynamic components are not supported in v1", node.loc, options);
|
|
85
85
|
}
|
|
86
|
-
if (node.tag === "slot" && node.attrs.length > 0) {
|
|
87
|
-
throwTemplateError("Named slots and slot props are not supported in v1", node.attrs[0]?.loc ?? node.loc, options);
|
|
88
|
-
}
|
|
89
86
|
}
|
|
90
87
|
function rejectUnsupportedAttribute(node, attr, options) {
|
|
91
88
|
if (attr.name === "v-html") {
|
|
@@ -94,11 +91,8 @@ function rejectUnsupportedAttribute(node, attr, options) {
|
|
|
94
91
|
if (attr.name === "v-bind" || attr.name === "v-on") {
|
|
95
92
|
throwTemplateError(`Object-form ${attr.name} is not supported in v1`, attr.loc, options);
|
|
96
93
|
}
|
|
97
|
-
if (attr.name === "v-slot" || attr.name.startsWith("v-slot:") || attr.name.startsWith("#")) {
|
|
98
|
-
throwTemplateError("
|
|
99
|
-
}
|
|
100
|
-
if (node.tag === "template" && attr.name === "slot") {
|
|
101
|
-
throwTemplateError("Named slots and slot props are not supported in v1", attr.loc, options);
|
|
94
|
+
if ((attr.name === "v-slot" || attr.name.startsWith("v-slot:") || attr.name.startsWith("#")) && node.tag !== "template") {
|
|
95
|
+
throwTemplateError("v-slot must be used on a <template> child in Mikuru", attr.loc, options);
|
|
102
96
|
}
|
|
103
97
|
}
|
|
104
98
|
function parseForBinding(expression, context) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyzeTemplate.js","sourceRoot":"","sources":["../../src/compiler/analyzeTemplate.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"analyzeTemplate.js","sourceRoot":"","sources":["../../src/compiler/analyzeTemplate.ts"],"names":[],"mappings":"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"}
|