mikuru 1.0.5 → 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 CHANGED
@@ -1,5 +1,11 @@
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
+
3
9
  ## 1.0.5
4
10
 
5
11
  - Added a `basic` project template for `mikuru create --template basic`.
package/README.md CHANGED
@@ -1,200 +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
- 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`, and default slots
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, named slots, slot props, 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.
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.
@@ -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("Named slots and slot props are not supported in v1", attr.loc, options);
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":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEjD,OAAO,EAAE,kBAAkB,EAAE,4BAA4B,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAOpH,MAAM,UAAU,eAAe,CAAC,IAAiB,EAAE,UAAkC,EAAE;IACrF,MAAM,QAAQ,GAAc,EAAE,CAAC;IAC/B,SAAS,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IACnC,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,SAAS,CAAC,IAAkB,EAAE,QAAmB,EAAE,OAA+B;IACzF,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QACzB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC9B,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;gBAC/B,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;YAC1D,CAAC;QACH,CAAC;QAED,OAAO;IACT,CAAC;IAED,6BAA6B,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAE7C,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QAC9B,0BAA0B,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QAEhD,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC5B,QAAQ,CAAC,IAAI,CAAC;gBACZ,IAAI,EAAE,OAAO;gBACb,UAAU,EAAE,4BAA4B,CACtC,kBAAkB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,EACzC,IAAI,CAAC,IAAI,EACT,mBAAmB,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAC5C;aACF,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QAED,MAAM,KAAK,GAAG,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE7C,IAAI,KAAK,EAAE,CAAC;YACV,QAAQ,CAAC,IAAI,CAAC;gBACZ,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,KAAK,CAAC,IAAI;gBACjB,OAAO,EAAE,0BAA0B,CACjC,kBAAkB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,EACzC,IAAI,CAAC,IAAI,EACT,mBAAmB,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAC5C;gBACD,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;aAChE,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QAED,MAAM,WAAW,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE9C,IAAI,WAAW,EAAE,CAAC;YAChB,QAAQ,CAAC,IAAI,CAAC;gBACZ,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,WAAW;gBACjB,UAAU,EAAE,0BAA0B,CACpC,kBAAkB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,EACzC,IAAI,CAAC,IAAI,EACT,mBAAmB,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAC5C;aACF,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACzB,QAAQ,CAAC,IAAI,CAAC;gBACZ,IAAI,EAAE,IAAI;gBACV,UAAU,EAAE,0BAA0B,CACpC,kBAAkB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,EACzC,IAAI,CAAC,IAAI,EACT,mBAAmB,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAC5C;aACF,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YAC9B,QAAQ,CAAC,IAAI,CAAC;gBACZ,IAAI,EAAE,SAAS;gBACf,UAAU,EAAE,0BAA0B,CACpC,kBAAkB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,EACzC,IAAI,CAAC,IAAI,EACT,mBAAmB,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAC5C;aACF,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC3B,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;gBACxB,kBAAkB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YAC5C,CAAC;YAED,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;YAChC,SAAS;QACX,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC3B,QAAQ,CAAC,IAAI,CAAC;gBACZ,IAAI,EAAE,MAAM;gBACZ,UAAU,EAAE,0BAA0B,CACpC,kBAAkB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,EACzC,IAAI,CAAC,IAAI,EACT,mBAAmB,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAC5C;aACF,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC1B,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,mBAAmB,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;QACzH,CAAC;IACH,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClC,SAAS,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IACtC,CAAC;AACH,CAAC;AAED,SAAS,6BAA6B,CAAC,IAAiB,EAAE,OAA+B;IACvF,IAAI,IAAI,CAAC,GAAG,KAAK,WAAW,EAAE,CAAC;QAC7B,kBAAkB,CAAC,4CAA4C,EAAE,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACtF,CAAC;IAED,IAAI,IAAI,CAAC,GAAG,KAAK,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjD,kBAAkB,CAAC,oDAAoD,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACpH,CAAC;AACH,CAAC;AAED,SAAS,0BAA0B,CAAC,IAAiB,EAAE,IAAuB,EAAE,OAA+B;IAC7G,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC3B,kBAAkB,CAAC,+BAA+B,EAAE,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACzE,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QACnD,kBAAkB,CAAC,eAAe,IAAI,CAAC,IAAI,yBAAyB,EAAE,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAC3F,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC3F,kBAAkB,CAAC,oDAAoD,EAAE,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAC9F,CAAC;IAED,IAAI,IAAI,CAAC,GAAG,KAAK,UAAU,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QACpD,kBAAkB,CAAC,oDAAoD,EAAE,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAC9F,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CAAC,UAAkB,EAAE,OAAmC;IAC9E,MAAM,MAAM,GAAG,kBAAkB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAEvD,OAAO;QACL,IAAI,EAAE,KAAK;QACX,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,MAAM,EAAE,MAAM,CAAC,MAAM;KACtB,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAC1B,QAAoC,EACpC,OAA+B;IAE/B,IAAI,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACjC,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO;QACL,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,QAAQ,EAAE,OAAO,CAAC,QAAQ;KAC3B,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAY,EAAE,KAAoB;IAC5D,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,aAAa,IAAI,mBAAmB,CAAC,CAAC;IACxD,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,kBAAkB,CAAC,OAAe,EAAE,QAAoC,EAAE,OAA+B;IAChH,IAAI,OAAO,CAAC,MAAM,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,kBAAkB,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IACvF,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;AAC3B,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAY;IACvC,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IAEnC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,CAAC,SAAS,EAAE,GAAG,SAAS,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACrD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;AACxC,CAAC;AAED,SAAS,YAAY,CAAC,IAAY;IAChC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACvB,CAAC;IAED,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,cAAc,CAAC,IAAY;IAClC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACvB,CAAC;IAED,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC/B,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
1
+ {"version":3,"file":"analyzeTemplate.js","sourceRoot":"","sources":["../../src/compiler/analyzeTemplate.ts"],"names":[],"mappings":"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"}
@@ -102,15 +102,20 @@ function generateNode(context, node, parentVar, cleanupVar, indent, beforeVar) {
102
102
  return generateComponent(context, node, parentVar, cleanupVar, indent, beforeVar);
103
103
  }
104
104
  if (node.tag === "slot") {
105
- return generateSlot(context, parentVar, cleanupVar, indent, beforeVar);
105
+ return generateSlot(context, node, parentVar, cleanupVar, indent, beforeVar);
106
106
  }
107
107
  return generateElement(context, node, parentVar, cleanupVar, indent, beforeVar);
108
108
  }
109
- function generateSlot(context, parentVar, cleanupVar, indent, beforeVar) {
109
+ function generateSlot(context, node, parentVar, cleanupVar, indent, beforeVar) {
110
110
  const slotVar = nextVar(context, "slot");
111
111
  const slotCleanupVar = nextVar(context, "slotCleanup");
112
+ const slotFnVar = nextVar(context, "slot");
113
+ const slotPropsVar = nextVar(context, "slotProps");
114
+ const slotName = getSlotOutletName(node, context);
115
+ emit(context, indent, `const ${slotFnVar} = ${slotName === "default" ? "props.slots?.default ?? props.children" : `props.slots?.[${quote(slotName)}]`};`);
116
+ emitSlotOutletProps(context, node, slotPropsVar, indent);
112
117
  emit(context, indent, `const ${slotVar} = document.createDocumentFragment();`);
113
- emit(context, indent, `const ${slotCleanupVar} = props.children ? props.children(${slotVar}) : undefined;`);
118
+ emit(context, indent, `const ${slotCleanupVar} = ${slotFnVar} ? ${slotFnVar}(${slotVar}, ${slotPropsVar}) : undefined;`);
114
119
  emit(context, indent, `${cleanupVar}.push(() => {`);
115
120
  emit(context, indent + 1, `if (${slotCleanupVar}) {`);
116
121
  emit(context, indent + 2, `${slotCleanupVar}();`);
@@ -136,6 +141,10 @@ function generateComponent(context, node, parentVar, cleanupVar, indent, beforeV
136
141
  return `${componentVar}.element`;
137
142
  }
138
143
  function generateElement(context, node, parentVar, cleanupVar, indent, beforeVar) {
144
+ const slotDirectiveAttr = node.attrs.find((attr) => isSlotDirectiveAttr(attr));
145
+ if (slotDirectiveAttr) {
146
+ throwTemplateError("v-slot must be used on a <template> child in Mikuru", context, slotDirectiveAttr.loc);
147
+ }
139
148
  validateAttributes(node);
140
149
  const elementVar = nextVar(context, "el");
141
150
  emit(context, indent, `const ${elementVar} = document.createElement(${quote(node.tag)});`);
@@ -807,23 +816,176 @@ function emitComponentProps(context, node, propsVar, indent) {
807
816
  const props = node.attrs
808
817
  .filter((attr) => !isStructuralAttr(attr))
809
818
  .flatMap((attr) => componentPropEntries(context, attr));
810
- const hasChildren = hasMeaningfulChildren(node);
819
+ const slots = collectComponentSlots(context, node);
820
+ const defaultSlot = slots.find((slot) => slot.name === "default");
811
821
  emit(context, indent, `const ${propsVar} = {`);
812
822
  for (const prop of props) {
813
823
  emit(context, indent + 1, `${prop},`);
814
824
  }
815
- if (hasChildren) {
816
- const slotTargetVar = nextVar(context, "slotTarget");
817
- const slotCleanupVar = nextVar(context, "slotCleanup");
818
- emit(context, indent + 1, `children(${slotTargetVar}) {`);
819
- emit(context, indent + 2, `const ${slotCleanupVar} = [];`);
820
- generateChildren(context, node.children, slotTargetVar, slotCleanupVar, indent + 2);
821
- emit(context, indent + 2, `return () => __mikuru_runCleanup(${slotCleanupVar});`);
825
+ if (defaultSlot) {
826
+ emitSlotFunction(context, "children", defaultSlot, indent + 1);
827
+ }
828
+ if (slots.length > 0) {
829
+ emit(context, indent + 1, "slots: {");
830
+ for (const slot of slots) {
831
+ emitSlotFunction(context, quotePropertyName(slot.name), slot, indent + 2);
832
+ }
822
833
  emit(context, indent + 1, "},");
823
834
  }
824
835
  emit(context, indent, "};");
825
836
  }
837
+ function emitSlotFunction(context, propertyName, slot, indent) {
838
+ const slotTargetVar = nextVar(context, "slotTarget");
839
+ const slotPropsVar = nextVar(context, "slotProps");
840
+ const slotCleanupVar = nextVar(context, "slotCleanup");
841
+ emit(context, indent, `${propertyName}(${slotTargetVar}, ${slotPropsVar} = {}) {`);
842
+ emit(context, indent + 1, `const ${slotCleanupVar} = [];`);
843
+ emitSlotScopeBindings(context, slot, slotPropsVar, indent + 1);
844
+ generateChildren(context, slot.children, slotTargetVar, slotCleanupVar, indent + 1);
845
+ emit(context, indent + 1, `return () => __mikuru_runCleanup(${slotCleanupVar});`);
846
+ emit(context, indent, "},");
847
+ }
848
+ function emitSlotScopeBindings(context, slot, slotPropsVar, indent) {
849
+ for (const binding of parseSlotScopeBindings(slot.scope, context, slot.scopeLoc ?? slot.loc)) {
850
+ if (binding.kind === "props") {
851
+ emit(context, indent, `const ${binding.alias} = ${slotPropsVar};`);
852
+ continue;
853
+ }
854
+ emit(context, indent, `const ${binding.alias} = { get value() { return ${slotPropsVar}.${binding.source}; } };`);
855
+ }
856
+ }
857
+ function collectComponentSlots(context, node) {
858
+ const slots = [];
859
+ const usedNames = new Set();
860
+ const defaultChildren = [];
861
+ for (const child of node.children) {
862
+ if (child.type === "element") {
863
+ const slotDirective = getSlotTemplateDirective(child, context);
864
+ if (slotDirective) {
865
+ if (usedNames.has(slotDirective.name)) {
866
+ throwTemplateError(`Duplicate slot template: ${slotDirective.name}`, context, slotDirective.loc);
867
+ }
868
+ usedNames.add(slotDirective.name);
869
+ slots.push({
870
+ name: slotDirective.name,
871
+ children: child.children,
872
+ scope: slotDirective.scope,
873
+ loc: child.loc,
874
+ scopeLoc: slotDirective.scopeLoc
875
+ });
876
+ continue;
877
+ }
878
+ }
879
+ defaultChildren.push(child);
880
+ }
881
+ if (hasMeaningfulTemplateChildren(defaultChildren)) {
882
+ if (usedNames.has("default")) {
883
+ throwTemplateError("Duplicate slot template: default", context, node.loc);
884
+ }
885
+ slots.unshift({
886
+ name: "default",
887
+ children: defaultChildren,
888
+ scope: true,
889
+ loc: node.loc
890
+ });
891
+ }
892
+ return slots;
893
+ }
894
+ function getSlotTemplateDirective(node, context) {
895
+ if (node.tag !== "template") {
896
+ return undefined;
897
+ }
898
+ const slotAttrs = node.attrs.filter((attr) => isSlotDirectiveAttr(attr));
899
+ if (slotAttrs.length === 0) {
900
+ return undefined;
901
+ }
902
+ if (slotAttrs.length > 1) {
903
+ throwTemplateError("A slot template can only declare one slot target", context, slotAttrs[1]?.loc);
904
+ }
905
+ const attr = slotAttrs[0];
906
+ const name = getSlotTemplateName(attr);
907
+ return {
908
+ name,
909
+ scope: attr.value,
910
+ loc: attr.loc,
911
+ scopeLoc: attr.valueLoc
912
+ };
913
+ }
914
+ function getSlotTemplateName(attr) {
915
+ if (attr.name === "v-slot") {
916
+ return "default";
917
+ }
918
+ if (attr.name.startsWith("v-slot:")) {
919
+ return attr.name.slice("v-slot:".length) || "default";
920
+ }
921
+ if (attr.name.startsWith("#")) {
922
+ return attr.name.slice(1) || "default";
923
+ }
924
+ return "default";
925
+ }
926
+ function parseSlotScopeBindings(scope, context, location) {
927
+ if (scope === true || !scope.trim()) {
928
+ return [];
929
+ }
930
+ const source = scope.trim();
931
+ if (isIdentifier(source)) {
932
+ return [{ kind: "props", alias: source }];
933
+ }
934
+ if (!source.startsWith("{") || !source.endsWith("}")) {
935
+ throwTemplateError("Slot scope must be an identifier or object destructuring pattern", context, location);
936
+ }
937
+ const body = source.slice(1, -1).trim();
938
+ if (!body) {
939
+ return [];
940
+ }
941
+ return body.split(",").map((part) => {
942
+ const sourcePart = part.trim();
943
+ const match = /^([A-Za-z_$][\w$]*)(?:\s*:\s*([A-Za-z_$][\w$]*))?$/.exec(sourcePart);
944
+ if (!match) {
945
+ throwTemplateError("Slot scope destructuring only supports identifiers and simple aliases", context, location);
946
+ }
947
+ return {
948
+ kind: "property",
949
+ source: match[1],
950
+ alias: match[2] ?? match[1]
951
+ };
952
+ });
953
+ }
954
+ function emitSlotOutletProps(context, node, propsVar, indent) {
955
+ const entries = node.attrs
956
+ .filter((attr) => attr.name !== "name")
957
+ .map((attr) => slotOutletPropEntry(context, attr));
958
+ emit(context, indent, `const ${propsVar} = {`);
959
+ for (const entry of entries) {
960
+ emit(context, indent + 1, `${entry},`);
961
+ }
962
+ emit(context, indent, "};");
963
+ }
964
+ function slotOutletPropEntry(context, attr) {
965
+ const bindingName = getBindingName(attr.name);
966
+ if (bindingName) {
967
+ if (bindingName === "name") {
968
+ throwTemplateError("Dynamic slot names are not supported", context, attr.loc);
969
+ }
970
+ const expression = compileTemplateExpression(requireAttrValue(attr), attr.name, toExpressionContext(context, attr.valueLoc));
971
+ return `get ${quotePropertyName(bindingName)}() { return unwrap(${expression}); }`;
972
+ }
973
+ if (isSupportedDirectiveAttr(attr) || attr.name.startsWith("@") || attr.name.startsWith("v-")) {
974
+ throwTemplateError(`Unsupported slot directive ${attr.name}`, context, attr.loc);
975
+ }
976
+ return `${quotePropertyName(attr.name)}: ${quote(attr.value === true ? true : attr.value)}`;
977
+ }
978
+ function getSlotOutletName(node, context) {
979
+ if (hasAttr(node, ":name") || hasAttr(node, "v-bind:name")) {
980
+ const attr = node.attrs.find((candidate) => candidate.name === ":name" || candidate.name === "v-bind:name");
981
+ throwTemplateError("Dynamic slot names are not supported", context, attr?.loc);
982
+ }
983
+ return getStaticAttrValue(node, "name") ?? "default";
984
+ }
826
985
  function componentPropEntries(context, attr) {
986
+ if (isSlotDirectiveAttr(attr)) {
987
+ throwTemplateError("v-slot must be used on a <template> child in Mikuru", context, attr.loc);
988
+ }
827
989
  if (attr.name === "v-model") {
828
990
  const expression = validateAssignableExpression(requireAttrValue(attr), attr.name, toExpressionContext(context, attr.valueLoc));
829
991
  const valueExpression = compileTemplateExpression(expression, attr.name, toExpressionContext(context, attr.valueLoc));
@@ -850,8 +1012,8 @@ function componentPropEntries(context, attr) {
850
1012
  }
851
1013
  return [`${quotePropertyName(attr.name)}: ${quote(attr.value === true ? true : attr.value)}`];
852
1014
  }
853
- function hasMeaningfulChildren(node) {
854
- return node.children.some((child) => child.type === "element" || child.parts.some((part) => part.value.trim()));
1015
+ function hasMeaningfulTemplateChildren(children) {
1016
+ return children.some((child) => child.type === "element" || child.parts.some((part) => part.value.trim()));
855
1017
  }
856
1018
  function toComponentEventProp(eventName) {
857
1019
  return `on${eventName
@@ -873,6 +1035,9 @@ function isDirectiveAttr(attr) {
873
1035
  function isStructuralAttr(attr) {
874
1036
  return attr.name === "v-if" || attr.name === "v-else-if" || attr.name === "v-else" || attr.name === "v-for";
875
1037
  }
1038
+ function isSlotDirectiveAttr(attr) {
1039
+ return attr.name === "v-slot" || attr.name.startsWith("v-slot:") || attr.name.startsWith("#");
1040
+ }
876
1041
  function isSupportedDirectiveAttr(attr) {
877
1042
  return (attr.name === "v-if" ||
878
1043
  attr.name === "v-else-if" ||
@@ -1 +1 @@
1
- {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/compiler/generate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/compiler/generate.ts"],"names":[],"mappings":"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"}
@@ -3,19 +3,43 @@ const supportedBlocks = new Set(["template", "script", "style"]);
3
3
  export function parseSfc(source, filename) {
4
4
  const descriptor = { filename, source };
5
5
  const seen = new Set();
6
- const blockPattern = /<([a-zA-Z][\w-]*)\b([^>]*)>([\s\S]*?)<\/\1>/g;
7
- let match;
8
- while ((match = blockPattern.exec(source))) {
9
- const [, rawName, attrs, content] = match;
6
+ let cursor = 0;
7
+ while (cursor < source.length) {
8
+ const blockStart = source.indexOf("<", cursor);
9
+ if (blockStart === -1) {
10
+ break;
11
+ }
12
+ if (source.startsWith("<!--", blockStart)) {
13
+ const commentEnd = source.indexOf("-->", blockStart + 4);
14
+ cursor = commentEnd === -1 ? source.length : commentEnd + 3;
15
+ continue;
16
+ }
17
+ if (source.startsWith("</", blockStart)) {
18
+ cursor = blockStart + 2;
19
+ continue;
20
+ }
21
+ const tagEnd = findTagEnd(source, blockStart);
22
+ if (tagEnd === -1) {
23
+ throw createCompileError(`Unclosed SFC block near: ${source.slice(blockStart, blockStart + 20)}`, source, blockStart, filename);
24
+ }
25
+ const openTag = source.slice(blockStart, tagEnd + 1);
26
+ const tagMatch = /^<([a-zA-Z][\w-]*)\b([^>]*)>/.exec(openTag);
27
+ if (!tagMatch) {
28
+ cursor = tagEnd + 1;
29
+ continue;
30
+ }
31
+ const [, rawName, attrs] = tagMatch;
10
32
  const name = rawName.toLowerCase();
11
33
  if (!supportedBlocks.has(name)) {
12
- throw createCompileError(`Unsupported SFC block <${rawName}>`, source, match.index, filename);
34
+ throw createCompileError(`Unsupported SFC block <${rawName}>`, source, blockStart, filename);
13
35
  }
14
36
  if (seen.has(name)) {
15
- throw createCompileError(`Duplicate SFC block <${rawName}>`, source, match.index, filename);
37
+ throw createCompileError(`Duplicate SFC block <${rawName}>`, source, blockStart, filename);
16
38
  }
39
+ const contentStart = tagEnd + 1;
40
+ const blockEnd = findBlockEnd(source, name, contentStart, filename);
41
+ const content = source.slice(contentStart, blockEnd.openStart);
17
42
  seen.add(name);
18
- const contentStart = match.index + match[0].indexOf(">") + 1;
19
43
  const leadingWhitespaceLength = content.length - content.trimStart().length;
20
44
  const trimmedContent = content.trim();
21
45
  const trimmedContentStart = contentStart + leadingWhitespaceLength;
@@ -25,6 +49,7 @@ export function parseSfc(source, filename) {
25
49
  if (name === "style") {
26
50
  descriptor.styleScoped = hasBooleanAttr(attrs, "scoped");
27
51
  }
52
+ cursor = blockEnd.closeEnd;
28
53
  }
29
54
  if (!descriptor.template) {
30
55
  throw createCompileError("Missing required <template> block", source, 0, filename);
@@ -35,4 +60,56 @@ function hasBooleanAttr(source, name) {
35
60
  const pattern = new RegExp(`(?:^|\\s)${name}(?:\\s|=|$)`);
36
61
  return pattern.test(source);
37
62
  }
63
+ function findTagEnd(source, tagStart) {
64
+ let quote;
65
+ for (let index = tagStart + 1; index < source.length; index += 1) {
66
+ const char = source[index];
67
+ if (quote) {
68
+ if (char === quote) {
69
+ quote = undefined;
70
+ }
71
+ continue;
72
+ }
73
+ if (char === "\"" || char === "'") {
74
+ quote = char;
75
+ continue;
76
+ }
77
+ if (char === ">") {
78
+ return index;
79
+ }
80
+ }
81
+ return -1;
82
+ }
83
+ function findBlockEnd(source, name, contentStart, filename) {
84
+ if (name !== "template") {
85
+ const closeTag = `</${name}>`;
86
+ const closeStart = source.toLowerCase().indexOf(closeTag, contentStart);
87
+ if (closeStart === -1) {
88
+ throw createCompileError(`Unclosed SFC block <${name}>`, source, contentStart, filename);
89
+ }
90
+ return {
91
+ openStart: closeStart,
92
+ closeEnd: closeStart + closeTag.length
93
+ };
94
+ }
95
+ const tagPattern = new RegExp(`<\\/?${name}\\b[^>]*>`, "gi");
96
+ tagPattern.lastIndex = contentStart;
97
+ let depth = 1;
98
+ let match;
99
+ while ((match = tagPattern.exec(source))) {
100
+ if (match[0].startsWith("</")) {
101
+ depth -= 1;
102
+ if (depth === 0) {
103
+ return {
104
+ openStart: match.index,
105
+ closeEnd: tagPattern.lastIndex
106
+ };
107
+ }
108
+ }
109
+ else if (!/\/\s*>$/.test(match[0])) {
110
+ depth += 1;
111
+ }
112
+ }
113
+ throw createCompileError(`Unclosed SFC block <${name}>`, source, contentStart, filename);
114
+ }
38
115
  //# sourceMappingURL=parseSfc.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"parseSfc.js","sourceRoot":"","sources":["../../src/compiler/parseSfc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAGjD,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,CAAC,UAAU,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;AAEjE,MAAM,UAAU,QAAQ,CAAC,MAAc,EAAE,QAAiB;IACxD,MAAM,UAAU,GAA2B,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;IAChE,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,YAAY,GAAG,8CAA8C,CAAC;IACpE,IAAI,KAA6B,CAAC;IAElC,OAAO,CAAC,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;QAC3C,MAAM,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC;QAC1C,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;QAEnC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/B,MAAM,kBAAkB,CAAC,0BAA0B,OAAO,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAChG,CAAC;QAED,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACnB,MAAM,kBAAkB,CAAC,wBAAwB,OAAO,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC9F,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACf,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC7D,MAAM,uBAAuB,GAAG,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC;QAC5E,MAAM,cAAc,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QACtC,MAAM,mBAAmB,GAAG,YAAY,GAAG,uBAAuB,CAAC;QACnE,UAAU,CAAC,IAAkE,CAAC,GAAG,cAAc,CAAC;QAChG,UAAU,CAAC,GAAG,IAAI,QAAwF,CAAC;YACzG,mBAAmB,CAAC;QAEtB,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YACrB,UAAU,CAAC,WAAW,GAAG,cAAc,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;IAED,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;QACzB,MAAM,kBAAkB,CAAC,mCAAmC,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;IACrF,CAAC;IAED,OAAO,UAA2B,CAAC;AACrC,CAAC;AAED,SAAS,cAAc,CAAC,MAAc,EAAE,IAAY;IAClD,MAAM,OAAO,GAAG,IAAI,MAAM,CAAC,YAAY,IAAI,aAAa,CAAC,CAAC;IAC1D,OAAO,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC9B,CAAC"}
1
+ {"version":3,"file":"parseSfc.js","sourceRoot":"","sources":["../../src/compiler/parseSfc.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mikuru",
3
- "version": "1.0.5",
3
+ "version": "1.0.6",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "description": "A compile-first JavaScript framework with Vue-like authoring and Svelte-like generated DOM updates.",
@@ -9,7 +9,7 @@
9
9
  "preview": "vite preview"
10
10
  },
11
11
  "dependencies": {
12
- "mikuru": "^1.0.5"
12
+ "mikuru": "^1.0.6"
13
13
  },
14
14
  "devDependencies": {
15
15
  "typescript": "^6.0.3",
@@ -9,7 +9,7 @@
9
9
  "preview": "vite preview"
10
10
  },
11
11
  "dependencies": {
12
- "mikuru": "^1.0.5"
12
+ "mikuru": "^1.0.6"
13
13
  },
14
14
  "devDependencies": {
15
15
  "typescript": "^6.0.3",