mikuru 1.0.26 → 1.0.28
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 +7 -0
- package/README.md +36 -4
- package/components/MikuruAudioPlayer.mikuru +263 -0
- package/components/MikuruCarousel.mikuru +280 -0
- package/components/MikuruCodeBlock.mikuru +96 -0
- package/components/MikuruDropdown.mikuru +153 -0
- package/components/MikuruImageViewer.mikuru +269 -0
- package/components/MikuruModal.mikuru +159 -0
- package/components/MikuruProgress.mikuru +85 -0
- package/components/MikuruToast.mikuru +128 -0
- package/components/MikuruToolTip.mikuru +95 -0
- package/components/MikuruVideoPlayer.mikuru +635 -0
- package/dist/compiler/compile.js +9 -2
- package/dist/compiler/compile.js.map +1 -1
- package/dist/compiler/compileHydration.js +9 -2
- package/dist/compiler/compileHydration.js.map +1 -1
- package/dist/compiler/compileSsr.js +4 -1
- package/dist/compiler/compileSsr.js.map +1 -1
- package/dist/compiler/generate.d.ts +1 -0
- package/dist/compiler/generate.js +17 -2
- package/dist/compiler/generate.js.map +1 -1
- package/dist/compiler/generateHydration.js +1 -1
- package/dist/compiler/generateHydration.js.map +1 -1
- package/dist/compiler/index.d.ts +2 -0
- package/dist/compiler/index.js +1 -0
- package/dist/compiler/index.js.map +1 -1
- package/dist/compiler/parseSfc.js +20 -2
- package/dist/compiler/parseSfc.js.map +1 -1
- package/dist/compiler/sourceMap.js +72 -16
- package/dist/compiler/sourceMap.js.map +1 -1
- package/dist/compiler/templateTypeCheck.d.ts +19 -0
- package/dist/compiler/templateTypeCheck.js +270 -0
- package/dist/compiler/templateTypeCheck.js.map +1 -0
- package/dist/compiler/types.d.ts +7 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/runtime/devtools.d.ts +19 -5
- package/dist/runtime/devtools.js +26 -3
- package/dist/runtime/devtools.js.map +1 -1
- package/dist/runtime/index.d.ts +2 -2
- package/dist/runtime/index.js +1 -1
- package/dist/runtime/index.js.map +1 -1
- package/dist/vite.d.ts +1 -0
- package/dist/vite.js +65 -3
- package/dist/vite.js.map +1 -1
- package/package.json +84 -2
- package/types/components/MikuruAudioPlayer.d.ts +12 -0
- package/types/components/MikuruCarousel.d.ts +21 -0
- package/types/components/MikuruCodeBlock.d.ts +11 -0
- package/types/components/MikuruDropdown.d.ts +17 -0
- package/types/components/MikuruImageViewer.d.ts +14 -0
- package/types/components/MikuruModal.d.ts +14 -0
- package/types/components/MikuruProgress.d.ts +12 -0
- package/types/components/MikuruToast.d.ts +17 -0
- package/types/components/MikuruToolTip.d.ts +11 -0
- package/types/components/MikuruVideoPlayer.d.ts +13 -0
|
@@ -15,7 +15,7 @@ export function createSourceMap(code, descriptor, root) {
|
|
|
15
15
|
let previousSourceLine = 0;
|
|
16
16
|
let previousSourceColumn = 0;
|
|
17
17
|
for (const line of generatedLines) {
|
|
18
|
-
const
|
|
18
|
+
const segments = createLineSegments(line, {
|
|
19
19
|
templateLocation,
|
|
20
20
|
scriptLocation,
|
|
21
21
|
styleLocation,
|
|
@@ -23,21 +23,21 @@ export function createSourceMap(code, descriptor, root) {
|
|
|
23
23
|
styleLineCandidates,
|
|
24
24
|
templateCandidates
|
|
25
25
|
});
|
|
26
|
-
|
|
27
|
-
const
|
|
28
|
-
const
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
26
|
+
let previousGeneratedColumn = 0;
|
|
27
|
+
const encodedLine = [];
|
|
28
|
+
for (const segment of segments) {
|
|
29
|
+
encodedLine.push([
|
|
30
|
+
segment.generatedColumn - previousGeneratedColumn,
|
|
31
|
+
segment.sourceIndex - previousSourceIndex,
|
|
32
|
+
segment.originalLine - previousSourceLine,
|
|
33
|
+
segment.originalColumn - previousSourceColumn
|
|
34
|
+
]);
|
|
35
|
+
previousGeneratedColumn = segment.generatedColumn;
|
|
36
|
+
previousSourceIndex = segment.sourceIndex;
|
|
37
|
+
previousSourceLine = segment.originalLine;
|
|
38
|
+
previousSourceColumn = segment.originalColumn;
|
|
39
|
+
}
|
|
40
|
+
mappings.push(encodedLine);
|
|
41
41
|
}
|
|
42
42
|
return {
|
|
43
43
|
version: 3,
|
|
@@ -48,6 +48,62 @@ export function createSourceMap(code, descriptor, root) {
|
|
|
48
48
|
mappings: mappings.map((segments) => segments.map((segment) => segment.map(encodeVlq).join("")).join(",")).join(";")
|
|
49
49
|
};
|
|
50
50
|
}
|
|
51
|
+
function createLineSegments(generatedLine, context) {
|
|
52
|
+
const segments = [];
|
|
53
|
+
for (const candidate of [
|
|
54
|
+
...context.scriptLineCandidates,
|
|
55
|
+
...context.styleLineCandidates,
|
|
56
|
+
...context.templateCandidates
|
|
57
|
+
]) {
|
|
58
|
+
for (const column of findNeedleColumns(generatedLine, candidate.needle)) {
|
|
59
|
+
segments.push({
|
|
60
|
+
generatedColumn: column,
|
|
61
|
+
sourceIndex: 0,
|
|
62
|
+
originalLine: candidate.line - 1,
|
|
63
|
+
originalColumn: candidate.column - 1
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
if (segments.length > 0) {
|
|
68
|
+
return dedupeSegments(segments).sort((left, right) => left.generatedColumn - right.generatedColumn);
|
|
69
|
+
}
|
|
70
|
+
const generatedColumn = Math.max(0, generatedLine.length - generatedLine.trimStart().length);
|
|
71
|
+
const original = pickOriginalLocation(generatedLine, context);
|
|
72
|
+
return [
|
|
73
|
+
{
|
|
74
|
+
generatedColumn,
|
|
75
|
+
sourceIndex: 0,
|
|
76
|
+
originalLine: original.line - 1,
|
|
77
|
+
originalColumn: original.column - 1
|
|
78
|
+
}
|
|
79
|
+
];
|
|
80
|
+
}
|
|
81
|
+
function findNeedleColumns(line, needle) {
|
|
82
|
+
const columns = [];
|
|
83
|
+
let cursor = 0;
|
|
84
|
+
while (cursor < line.length) {
|
|
85
|
+
const index = line.indexOf(needle, cursor);
|
|
86
|
+
if (index === -1) {
|
|
87
|
+
break;
|
|
88
|
+
}
|
|
89
|
+
columns.push(index);
|
|
90
|
+
cursor = index + Math.max(1, needle.length);
|
|
91
|
+
}
|
|
92
|
+
return columns;
|
|
93
|
+
}
|
|
94
|
+
function dedupeSegments(segments) {
|
|
95
|
+
const seen = new Set();
|
|
96
|
+
const result = [];
|
|
97
|
+
for (const segment of segments) {
|
|
98
|
+
const key = `${segment.generatedColumn}:${segment.sourceIndex}:${segment.originalLine}:${segment.originalColumn}`;
|
|
99
|
+
if (seen.has(key)) {
|
|
100
|
+
continue;
|
|
101
|
+
}
|
|
102
|
+
seen.add(key);
|
|
103
|
+
result.push(segment);
|
|
104
|
+
}
|
|
105
|
+
return result;
|
|
106
|
+
}
|
|
51
107
|
function pickOriginalLocation(generatedLine, context) {
|
|
52
108
|
const trimmedLine = generatedLine.trim();
|
|
53
109
|
const scriptCandidate = context.scriptLineCandidates.find((candidate) => candidate.needle === trimmedLine);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sourceMap.js","sourceRoot":"","sources":["../../src/compiler/sourceMap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAIhD,MAAM,WAAW,GAAG,kEAAkE,CAAC;
|
|
1
|
+
{"version":3,"file":"sourceMap.js","sourceRoot":"","sources":["../../src/compiler/sourceMap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAIhD,MAAM,WAAW,GAAG,kEAAkE,CAAC;AAavF,MAAM,UAAU,eAAe,CAAC,IAAY,EAAE,UAAyB,EAAE,IAAkB;IACzF,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,IAAI,EAAE,CAAC;IACvC,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,IAAI,kBAAkB,CAAC;IAC3D,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,MAAM,EAAE,UAAU,CAAC,cAAc,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC;IAC7F,MAAM,cAAc,GAAG,UAAU,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,iBAAiB,CAAC,MAAM,EAAE,UAAU,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IAC/I,MAAM,aAAa,GAAG,UAAU,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,iBAAiB,CAAC,MAAM,EAAE,UAAU,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IAC5I,MAAM,oBAAoB,GAAG,yBAAyB,CAAC,MAAM,EAAE,UAAU,CAAC,MAAM,IAAI,EAAE,EAAE,UAAU,CAAC,YAAY,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC;IAChI,MAAM,mBAAmB,GAAG,yBAAyB,CAAC,MAAM,EAAE,UAAU,CAAC,KAAK,IAAI,EAAE,EAAE,UAAU,CAAC,WAAW,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC;IAC7H,MAAM,kBAAkB,GAAG,IAAI,CAAC,CAAC,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACtE,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAiB,EAAE,CAAC;IAClC,IAAI,mBAAmB,GAAG,CAAC,CAAC;IAC5B,IAAI,kBAAkB,GAAG,CAAC,CAAC;IAC3B,IAAI,oBAAoB,GAAG,CAAC,CAAC;IAE7B,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE,CAAC;QAClC,MAAM,QAAQ,GAAG,kBAAkB,CAAC,IAAI,EAAE;YACxC,gBAAgB;YAChB,cAAc;YACd,aAAa;YACb,oBAAoB;YACpB,mBAAmB;YACnB,kBAAkB;SACnB,CAAC,CAAC;QACH,IAAI,uBAAuB,GAAG,CAAC,CAAC;QAChC,MAAM,WAAW,GAAe,EAAE,CAAC;QAEnC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,WAAW,CAAC,IAAI,CAAC;gBACf,OAAO,CAAC,eAAe,GAAG,uBAAuB;gBACjD,OAAO,CAAC,WAAW,GAAG,mBAAmB;gBACzC,OAAO,CAAC,YAAY,GAAG,kBAAkB;gBACzC,OAAO,CAAC,cAAc,GAAG,oBAAoB;aAC9C,CAAC,CAAC;YACH,uBAAuB,GAAG,OAAO,CAAC,eAAe,CAAC;YAClD,mBAAmB,GAAG,OAAO,CAAC,WAAW,CAAC;YAC1C,kBAAkB,GAAG,OAAO,CAAC,YAAY,CAAC;YAC1C,oBAAoB,GAAG,OAAO,CAAC,cAAc,CAAC;QAChD,CAAC;QAED,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC7B,CAAC;IAED,OAAO;QACL,OAAO,EAAE,CAAC;QACV,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC,SAAS;QACnE,OAAO,EAAE,CAAC,QAAQ,CAAC;QACnB,cAAc,EAAE,CAAC,MAAM,CAAC;QACxB,KAAK,EAAE,EAAE;QACT,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;KACrH,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CACzB,aAAqB,EACrB,OAOC;IAED,MAAM,QAAQ,GAAuB,EAAE,CAAC;IAExC,KAAK,MAAM,SAAS,IAAI;QACtB,GAAG,OAAO,CAAC,oBAAoB;QAC/B,GAAG,OAAO,CAAC,mBAAmB;QAC9B,GAAG,OAAO,CAAC,kBAAkB;KAC9B,EAAE,CAAC;QACF,KAAK,MAAM,MAAM,IAAI,iBAAiB,CAAC,aAAa,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;YACxE,QAAQ,CAAC,IAAI,CAAC;gBACZ,eAAe,EAAE,MAAM;gBACvB,WAAW,EAAE,CAAC;gBACd,YAAY,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC;gBAChC,cAAc,EAAE,SAAS,CAAC,MAAM,GAAG,CAAC;aACrC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,OAAO,cAAc,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,eAAe,CAAC,CAAC;IACtG,CAAC;IAED,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,CAAC,MAAM,GAAG,aAAa,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,CAAC;IAC7F,MAAM,QAAQ,GAAG,oBAAoB,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IAC9D,OAAO;QACL;YACE,eAAe;YACf,WAAW,EAAE,CAAC;YACd,YAAY,EAAE,QAAQ,CAAC,IAAI,GAAG,CAAC;YAC/B,cAAc,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC;SACpC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAY,EAAE,MAAc;IACrD,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,IAAI,MAAM,GAAG,CAAC,CAAC;IAEf,OAAO,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC3C,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;YACjB,MAAM;QACR,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpB,MAAM,GAAG,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAC9C,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,cAAc,CAAC,QAA4B;IAClD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,MAAM,GAAuB,EAAE,CAAC;IAEtC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,GAAG,GAAG,GAAG,OAAO,CAAC,eAAe,IAAI,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,YAAY,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;QAClH,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAClB,SAAS;QACX,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACd,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACvB,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,oBAAoB,CAC3B,aAAqB,EACrB,OAOC;IAED,MAAM,WAAW,GAAG,aAAa,CAAC,IAAI,EAAE,CAAC;IACzC,MAAM,eAAe,GAAG,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC;IAE3G,IAAI,eAAe,EAAE,CAAC;QACpB,OAAO,eAAe,CAAC;IACzB,CAAC;IAED,MAAM,cAAc,GAAG,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;IAEjH,IAAI,cAAc,EAAE,CAAC;QACnB,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,MAAM,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;IAEnH,IAAI,iBAAiB,EAAE,CAAC;QACtB,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IAED,IAAI,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,aAAa,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;QACpF,OAAO,OAAO,CAAC,aAAa,CAAC;IAC/B,CAAC;IAED,IACE,aAAa,CAAC,QAAQ,CAAC,eAAe,CAAC;QACvC,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAChC,aAAa,CAAC,QAAQ,CAAC,WAAW,CAAC;QACnC,aAAa,CAAC,QAAQ,CAAC,SAAS,CAAC,EACjC,CAAC;QACD,OAAO,OAAO,CAAC,cAAc,CAAC;IAChC,CAAC;IAED,OAAO,OAAO,CAAC,gBAAgB,CAAC;AAClC,CAAC;AAED,SAAS,yBAAyB,CAAC,MAAc,EAAE,KAAa,EAAE,WAAmB,EAAE,QAAgB;IACrG,MAAM,UAAU,GAAyB,EAAE,CAAC;IAC5C,IAAI,WAAW,GAAG,CAAC,CAAC;IAEpB,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QACxC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAE5B,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC3C,MAAM,QAAQ,GAAG,iBAAiB,CAAC,MAAM,EAAE,WAAW,GAAG,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,YAAY,CAAC,EAAE,QAAQ,CAAC,CAAC;YAC5G,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,QAAQ,EAAE,CAAC,CAAC;QACpD,CAAC;QAED,WAAW,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IACjC,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,wBAAwB,CAAC,IAAiB;IACjD,MAAM,UAAU,GAAyB,EAAE,CAAC;IAC5C,yBAAyB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAC5C,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC3E,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,yBAAyB,CAAC,IAAkB,EAAE,UAAgC;IACrF,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QACzB,qBAAqB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QACxC,OAAO;IACT,CAAC;IAED,YAAY,CAAC,UAAU,EAAE,0BAA0B,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;IACjF,YAAY,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,GAAG,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;IAExD,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QAC9B,0BAA0B,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClC,yBAAyB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IAC/C,CAAC;AACH,CAAC;AAED,SAAS,qBAAqB,CAAC,IAAc,EAAE,UAAgC;IAC7E,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QAC9B,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YAC/B,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;YAC/C,SAAS;QACX,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAEhC,IAAI,KAAK,EAAE,CAAC;YACV,YAAY,CAAC,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,0BAA0B,CAAC,IAAuB,EAAE,UAAgC;IAC3F,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;QAC7C,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;IACzE,CAAC;IAED,MAAM,IAAI,GAAG,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAE/C,IAAI,IAAI,EAAE,CAAC;QACT,YAAY,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;IAClD,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,UAAgC,EAAE,MAAc,EAAE,QAAoC;IAC1G,IAAI,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrD,OAAO;IACT,CAAC;IAED,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,QAAQ,EAAE,CAAC,CAAC;AAC3C,CAAC;AAED,SAAS,sBAAsB,CAAC,IAAY;IAC1C,MAAM,iBAAiB,GAAG,CAAC,OAAe,EAAsB,EAAE;QAChE,MAAM,CAAC,WAAW,EAAE,GAAG,SAAS,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACvD,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,OAAO,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,MAAM,EAAE,MAAc,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;IACxI,CAAC,CAAC;IAEF,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9E,CAAC;IAED,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC7C,OAAO,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAC1E,CAAC;IAED,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;AAClG,CAAC;AAED,SAAS,KAAK,CAAC,KAAa;IAC1B,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAC/B,CAAC;AAED,SAAS,SAAS,CAAC,KAAa;IAC9B,IAAI,GAAG,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;IACvD,IAAI,OAAO,GAAG,EAAE,CAAC;IAEjB,GAAG,CAAC;QACF,IAAI,KAAK,GAAG,GAAG,GAAG,EAAE,CAAC;QACrB,GAAG,MAAM,CAAC,CAAC;QAEX,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;YACZ,KAAK,IAAI,EAAE,CAAC;QACd,CAAC;QAED,OAAO,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC,QAAQ,GAAG,GAAG,CAAC,EAAE;IAElB,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { ElementNode, SfcDescriptor } from "./types.js";
|
|
2
|
+
export type TemplateTypeCheckDiagnostic = {
|
|
3
|
+
message: string;
|
|
4
|
+
line: number;
|
|
5
|
+
column: number;
|
|
6
|
+
offset: number;
|
|
7
|
+
filename?: string;
|
|
8
|
+
code?: number;
|
|
9
|
+
};
|
|
10
|
+
export type TemplateTypeCheckResult = {
|
|
11
|
+
ok: boolean;
|
|
12
|
+
diagnostics: TemplateTypeCheckDiagnostic[];
|
|
13
|
+
code: string;
|
|
14
|
+
};
|
|
15
|
+
export declare function typeCheckTemplate(source: string, options?: {
|
|
16
|
+
filename?: string;
|
|
17
|
+
}): TemplateTypeCheckResult;
|
|
18
|
+
export declare function typeCheckTemplateDescriptor(descriptor: SfcDescriptor, ast: ElementNode): TemplateTypeCheckResult;
|
|
19
|
+
export declare function assertTemplateTypeCheck(descriptor: SfcDescriptor, ast: ElementNode): TemplateTypeCheckResult;
|
|
@@ -0,0 +1,270 @@
|
|
|
1
|
+
import * as ts from "typescript";
|
|
2
|
+
import { createCompileError, getSourceLocation } from "./errors.js";
|
|
3
|
+
import { compileTemplateExpression, parseForExpression, validateTemplateExpression } from "./parseExpression.js";
|
|
4
|
+
import { parseSfc } from "./parseSfc.js";
|
|
5
|
+
import { parseTemplate } from "./parseTemplate.js";
|
|
6
|
+
export function typeCheckTemplate(source, options = {}) {
|
|
7
|
+
const descriptor = parseSfc(source, options.filename);
|
|
8
|
+
const ast = parseTemplate(descriptor.template, {
|
|
9
|
+
filename: options.filename,
|
|
10
|
+
source,
|
|
11
|
+
offset: descriptor.templateOffset
|
|
12
|
+
});
|
|
13
|
+
return typeCheckTemplateDescriptor(descriptor, ast);
|
|
14
|
+
}
|
|
15
|
+
export function typeCheckTemplateDescriptor(descriptor, ast) {
|
|
16
|
+
const source = descriptor.source ?? "";
|
|
17
|
+
const filename = descriptor.filename ?? "anonymous.mikuru";
|
|
18
|
+
const expressions = collectTemplateCheckExpressions(ast, source, filename);
|
|
19
|
+
const emitted = generateTypeCheckLines(descriptor, expressions);
|
|
20
|
+
const code = emitted.map((line) => line.text).join("\n");
|
|
21
|
+
const diagnostics = runTypeScriptCheck(code, filename, emitted);
|
|
22
|
+
return {
|
|
23
|
+
ok: diagnostics.length === 0,
|
|
24
|
+
diagnostics,
|
|
25
|
+
code
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
export function assertTemplateTypeCheck(descriptor, ast) {
|
|
29
|
+
const result = typeCheckTemplateDescriptor(descriptor, ast);
|
|
30
|
+
if (!result.ok) {
|
|
31
|
+
const diagnostic = result.diagnostics[0];
|
|
32
|
+
throw createCompileError(`Template type check failed: ${diagnostic.message}`, descriptor.source ?? "", diagnostic.offset, descriptor.filename);
|
|
33
|
+
}
|
|
34
|
+
return result;
|
|
35
|
+
}
|
|
36
|
+
function collectTemplateCheckExpressions(root, source, filename) {
|
|
37
|
+
const expressions = [];
|
|
38
|
+
visitNode(root, [], expressions, { source, filename }, false);
|
|
39
|
+
return expressions;
|
|
40
|
+
}
|
|
41
|
+
function visitNode(node, scopes, expressions, context, inPre) {
|
|
42
|
+
if (node.type === "text") {
|
|
43
|
+
if (inPre) {
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
for (const part of node.parts) {
|
|
47
|
+
if (part.type === "expression") {
|
|
48
|
+
expressions.push({ expression: part.value, usage: "interpolation", location: part.loc, scopes });
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
const pre = inPre || hasAttr(node, "v-pre");
|
|
54
|
+
if (pre) {
|
|
55
|
+
for (const child of node.children) {
|
|
56
|
+
visitNode(child, scopes, expressions, context, true);
|
|
57
|
+
}
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
let childScopes = scopes;
|
|
61
|
+
for (const attr of node.attrs) {
|
|
62
|
+
if (attr.name === "v-for" && attr.value !== true) {
|
|
63
|
+
const parsed = parseForExpression(attr.value, toExpressionContext(attr.valueLoc, context));
|
|
64
|
+
const scope = {
|
|
65
|
+
item: parsed.item,
|
|
66
|
+
index: parsed.index,
|
|
67
|
+
source: parsed.source,
|
|
68
|
+
location: attr.valueLoc
|
|
69
|
+
};
|
|
70
|
+
expressions.push({ expression: parsed.source, usage: "v-for source", location: attr.valueLoc, scopes });
|
|
71
|
+
childScopes = [...scopes, scope];
|
|
72
|
+
continue;
|
|
73
|
+
}
|
|
74
|
+
collectAttributeExpression(attr, expressions, childScopes, context);
|
|
75
|
+
}
|
|
76
|
+
for (const child of node.children) {
|
|
77
|
+
visitNode(child, childScopes, expressions, context, false);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
function collectAttributeExpression(attr, expressions, scopes, context) {
|
|
81
|
+
const dynamicBinding = getDynamicBindingArgument(attr.name);
|
|
82
|
+
if (dynamicBinding) {
|
|
83
|
+
expressions.push({ expression: dynamicBinding.expression, usage: attr.name, location: attr.loc, scopes });
|
|
84
|
+
}
|
|
85
|
+
const dynamicEvent = getDynamicEventArgument(attr.name);
|
|
86
|
+
if (dynamicEvent) {
|
|
87
|
+
expressions.push({ expression: dynamicEvent.expression, usage: attr.name, location: attr.loc, scopes });
|
|
88
|
+
}
|
|
89
|
+
if (isExpressionAttribute(attr.name) && attr.value !== true) {
|
|
90
|
+
expressions.push({ expression: attr.value, usage: attr.name, location: attr.valueLoc, scopes });
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
if (isEventAttribute(attr.name) && attr.value !== true) {
|
|
94
|
+
const handler = attr.value.trim().replace(/;\s*$/, "");
|
|
95
|
+
expressions.push({ expression: handler, usage: attr.name, location: attr.valueLoc, scopes, statement: !canParseExpression(handler, attr.valueLoc, context) });
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
function generateTypeCheckLines(descriptor, expressions) {
|
|
99
|
+
const lines = [
|
|
100
|
+
{ text: `type __MikuruRefValue<T> = T extends { value: infer V } ? V : T;` },
|
|
101
|
+
{ text: `declare const __mikuru_template_target: Element;` },
|
|
102
|
+
{ text: `declare function unwrap<T>(value: T): __MikuruRefValue<T>;` },
|
|
103
|
+
{ text: `declare function __mikuru_unwrap<T>(value: T): __MikuruRefValue<T>;` },
|
|
104
|
+
{ text: `declare function __mikuru_for_entries<T>(source: T): Array<[number, __MikuruIterableItem<__MikuruRefValue<T>>]>;` },
|
|
105
|
+
{ text: `type __MikuruIterableItem<T> = T extends readonly (infer U)[] ? U : T extends Iterable<infer U> ? U : T extends Record<string, infer V> ? V : never;` },
|
|
106
|
+
{ text: `type __MikuruInferProp<T> = T extends StringConstructor ? string : T extends NumberConstructor ? number : T extends BooleanConstructor ? boolean : unknown;` },
|
|
107
|
+
{ text: `declare function defineProps<T extends Record<string, unknown> = Record<string, unknown>>(): T;` },
|
|
108
|
+
{ text: `declare function defineProps<const T extends Record<string, unknown>>(props: T): { [K in keyof T]: __MikuruInferProp<T[K]> };` },
|
|
109
|
+
{ text: `declare function defineEmits<T extends Record<string, unknown> = Record<string, unknown>>(...args: unknown[]): (name: keyof T | string, ...payload: unknown[]) => void;` },
|
|
110
|
+
{ text: `declare function defineOptions(options: Record<string, unknown>): void;` },
|
|
111
|
+
{ text: `declare function useAttrs(): Record<string, unknown>;` },
|
|
112
|
+
{ text: "" }
|
|
113
|
+
];
|
|
114
|
+
if (descriptor.script?.trim()) {
|
|
115
|
+
lines.push(...descriptor.script.split(/\r?\n/).map((text) => ({ text })));
|
|
116
|
+
lines.push({ text: "" });
|
|
117
|
+
}
|
|
118
|
+
lines.push({ text: "function __mikuru_template_type_check() {" });
|
|
119
|
+
lines.push({ text: " void __mikuru_template_target;" });
|
|
120
|
+
for (const expression of expressions) {
|
|
121
|
+
emitExpressionCheck(lines, expression, 1);
|
|
122
|
+
}
|
|
123
|
+
lines.push({ text: "}" });
|
|
124
|
+
return lines;
|
|
125
|
+
}
|
|
126
|
+
function emitExpressionCheck(lines, expression, indent) {
|
|
127
|
+
let depth = indent;
|
|
128
|
+
for (const scope of expression.scopes) {
|
|
129
|
+
const sourceExpression = compileTemplateExpression(scope.source, "v-for source", toExpressionContextFromLocation(scope.location));
|
|
130
|
+
lines.push({ text: `${" ".repeat(depth)}for (const [__mikuru_index, __mikuru_item] of __mikuru_for_entries(${sourceExpression})) {`, location: scope.location });
|
|
131
|
+
depth += 1;
|
|
132
|
+
lines.push({ text: `${" ".repeat(depth)}const ${scope.item} = __mikuru_item;`, location: scope.location });
|
|
133
|
+
if (scope.index) {
|
|
134
|
+
lines.push({ text: `${" ".repeat(depth)}const ${scope.index} = __mikuru_index;`, location: scope.location });
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
const indentText = " ".repeat(depth);
|
|
138
|
+
if (expression.statement) {
|
|
139
|
+
lines.push({ text: `${indentText}(() => { ${expression.expression}; });`, location: expression.location });
|
|
140
|
+
}
|
|
141
|
+
else {
|
|
142
|
+
const compiled = compileTemplateExpression(expression.expression, expression.usage, toExpressionContextFromLocation(expression.location));
|
|
143
|
+
lines.push({ text: `${indentText}void (${compiled});`, location: expression.location });
|
|
144
|
+
}
|
|
145
|
+
for (let index = expression.scopes.length - 1; index >= 0; index -= 1) {
|
|
146
|
+
depth -= 1;
|
|
147
|
+
lines.push({ text: `${" ".repeat(depth)}}`, location: expression.scopes[index]?.location });
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
function runTypeScriptCheck(code, filename, emitted) {
|
|
151
|
+
const fileName = `${filename}.template-check.ts`;
|
|
152
|
+
const compilerOptions = {
|
|
153
|
+
allowJs: false,
|
|
154
|
+
checkJs: false,
|
|
155
|
+
lib: ["lib.es2022.d.ts", "lib.dom.d.ts", "lib.dom.iterable.d.ts"],
|
|
156
|
+
module: ts.ModuleKind.NodeNext,
|
|
157
|
+
moduleResolution: ts.ModuleResolutionKind.NodeNext,
|
|
158
|
+
noEmit: true,
|
|
159
|
+
skipLibCheck: true,
|
|
160
|
+
strict: true,
|
|
161
|
+
target: ts.ScriptTarget.ES2022,
|
|
162
|
+
types: []
|
|
163
|
+
};
|
|
164
|
+
const defaultHost = ts.createCompilerHost(compilerOptions, true);
|
|
165
|
+
const host = {
|
|
166
|
+
...defaultHost,
|
|
167
|
+
getSourceFile(name, languageVersion, onError, shouldCreateNewSourceFile) {
|
|
168
|
+
if (normalizePath(name) === normalizePath(fileName)) {
|
|
169
|
+
return ts.createSourceFile(fileName, code, languageVersion, true, ts.ScriptKind.TS);
|
|
170
|
+
}
|
|
171
|
+
return defaultHost.getSourceFile(name, languageVersion, onError, shouldCreateNewSourceFile);
|
|
172
|
+
},
|
|
173
|
+
fileExists(name) {
|
|
174
|
+
return normalizePath(name) === normalizePath(fileName) || defaultHost.fileExists(name);
|
|
175
|
+
},
|
|
176
|
+
readFile(name) {
|
|
177
|
+
return normalizePath(name) === normalizePath(fileName) ? code : defaultHost.readFile(name);
|
|
178
|
+
},
|
|
179
|
+
writeFile() { }
|
|
180
|
+
};
|
|
181
|
+
const program = ts.createProgram([fileName], compilerOptions, host);
|
|
182
|
+
const sourceFile = program.getSourceFile(fileName);
|
|
183
|
+
const diagnostics = ts.getPreEmitDiagnostics(program, sourceFile);
|
|
184
|
+
return diagnostics
|
|
185
|
+
.filter((diagnostic) => diagnostic.file && diagnostic.start !== undefined)
|
|
186
|
+
.map((diagnostic) => {
|
|
187
|
+
const location = diagnostic.file.getLineAndCharacterOfPosition(diagnostic.start);
|
|
188
|
+
const original = emitted[location.line]?.location;
|
|
189
|
+
const message = ts.flattenDiagnosticMessageText(diagnostic.messageText, "\n");
|
|
190
|
+
const fallback = original ?? getSourceLocation(diagnostic.file.text, diagnostic.start, filename);
|
|
191
|
+
return {
|
|
192
|
+
message,
|
|
193
|
+
line: fallback.line,
|
|
194
|
+
column: fallback.column,
|
|
195
|
+
offset: fallback.offset,
|
|
196
|
+
filename: fallback.filename ?? filename,
|
|
197
|
+
code: typeof diagnostic.code === "number" ? diagnostic.code : undefined
|
|
198
|
+
};
|
|
199
|
+
});
|
|
200
|
+
}
|
|
201
|
+
function isExpressionAttribute(name) {
|
|
202
|
+
return name === "v-if" ||
|
|
203
|
+
name === "v-else-if" ||
|
|
204
|
+
name === "v-show" ||
|
|
205
|
+
name === "v-html" ||
|
|
206
|
+
name === "v-text" ||
|
|
207
|
+
name === "v-model" ||
|
|
208
|
+
getBindingName(name) !== undefined;
|
|
209
|
+
}
|
|
210
|
+
function isEventAttribute(name) {
|
|
211
|
+
return name.startsWith("@") || name.startsWith("v-on:");
|
|
212
|
+
}
|
|
213
|
+
function hasAttr(node, name) {
|
|
214
|
+
return node.attrs.some((attr) => attr.name === name);
|
|
215
|
+
}
|
|
216
|
+
function getBindingName(name) {
|
|
217
|
+
if (getDynamicBindingArgument(name)) {
|
|
218
|
+
return "dynamic";
|
|
219
|
+
}
|
|
220
|
+
const rawName = name.startsWith(":")
|
|
221
|
+
? name.slice(1)
|
|
222
|
+
: name.startsWith("v-bind:")
|
|
223
|
+
? name.slice("v-bind:".length)
|
|
224
|
+
: undefined;
|
|
225
|
+
return rawName ? rawName.split(".")[0] : undefined;
|
|
226
|
+
}
|
|
227
|
+
function getDynamicBindingArgument(name) {
|
|
228
|
+
const dynamic = parseDynamicArgument(name, [":", "v-bind:"]);
|
|
229
|
+
return dynamic ? { expression: dynamic.expression } : undefined;
|
|
230
|
+
}
|
|
231
|
+
function getDynamicEventArgument(name) {
|
|
232
|
+
const dynamic = parseDynamicArgument(name, ["@", "v-on:"]);
|
|
233
|
+
return dynamic ? { expression: dynamic.expression } : undefined;
|
|
234
|
+
}
|
|
235
|
+
function parseDynamicArgument(name, prefixes) {
|
|
236
|
+
for (const prefix of prefixes) {
|
|
237
|
+
if (!name.startsWith(`${prefix}[`)) {
|
|
238
|
+
continue;
|
|
239
|
+
}
|
|
240
|
+
const argumentStart = prefix.length + 1;
|
|
241
|
+
const argumentEnd = name.indexOf("]", argumentStart);
|
|
242
|
+
if (argumentEnd === -1) {
|
|
243
|
+
return undefined;
|
|
244
|
+
}
|
|
245
|
+
const expression = name.slice(argumentStart, argumentEnd).trim();
|
|
246
|
+
if (expression) {
|
|
247
|
+
return { expression };
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
return undefined;
|
|
251
|
+
}
|
|
252
|
+
function canParseExpression(expression, location, context) {
|
|
253
|
+
try {
|
|
254
|
+
validateTemplateExpression(expression, "event handler", location ? { source: context.source, offset: location.offset, filename: context.filename } : undefined);
|
|
255
|
+
return true;
|
|
256
|
+
}
|
|
257
|
+
catch {
|
|
258
|
+
return false;
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
function toExpressionContext(location, context) {
|
|
262
|
+
return location ? { source: context.source, offset: location.offset, filename: context.filename } : undefined;
|
|
263
|
+
}
|
|
264
|
+
function toExpressionContextFromLocation(location) {
|
|
265
|
+
return location ? { source: "", offset: 0, filename: location.filename } : undefined;
|
|
266
|
+
}
|
|
267
|
+
function normalizePath(value) {
|
|
268
|
+
return value.replace(/\\/g, "/");
|
|
269
|
+
}
|
|
270
|
+
//# sourceMappingURL=templateTypeCheck.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"templateTypeCheck.js","sourceRoot":"","sources":["../../src/compiler/templateTypeCheck.ts"],"names":[],"mappings":"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"}
|
package/dist/compiler/types.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { SourceLocation } from "./errors.js";
|
|
2
|
+
import type { TemplateTypeCheckResult } from "./templateTypeCheck.js";
|
|
2
3
|
export type SfcDescriptor = {
|
|
3
4
|
filename?: string;
|
|
4
5
|
source?: string;
|
|
@@ -9,6 +10,8 @@ export type SfcDescriptor = {
|
|
|
9
10
|
style?: string;
|
|
10
11
|
styleOffset?: number;
|
|
11
12
|
styleScoped?: boolean;
|
|
13
|
+
styleLang?: string;
|
|
14
|
+
styleModule?: boolean | string;
|
|
12
15
|
};
|
|
13
16
|
export type TemplateNode = ElementNode | TextNode;
|
|
14
17
|
export type ElementNode = {
|
|
@@ -74,6 +77,8 @@ export type CompileOptions = {
|
|
|
74
77
|
filename?: string;
|
|
75
78
|
debug?: boolean;
|
|
76
79
|
batchedUpdates?: boolean;
|
|
80
|
+
externalStyles?: boolean;
|
|
81
|
+
templateTypeCheck?: boolean;
|
|
77
82
|
};
|
|
78
83
|
export type CompileResult = {
|
|
79
84
|
code: string;
|
|
@@ -81,12 +86,14 @@ export type CompileResult = {
|
|
|
81
86
|
descriptor: SfcDescriptor;
|
|
82
87
|
ast: ElementNode;
|
|
83
88
|
bindings: Binding[];
|
|
89
|
+
templateTypeCheck?: TemplateTypeCheckResult;
|
|
84
90
|
};
|
|
85
91
|
export type SsrCompileResult = {
|
|
86
92
|
code: string;
|
|
87
93
|
descriptor: SfcDescriptor;
|
|
88
94
|
ast: ElementNode;
|
|
89
95
|
bindings: Binding[];
|
|
96
|
+
templateTypeCheck?: TemplateTypeCheckResult;
|
|
90
97
|
};
|
|
91
98
|
export type SourceMap = {
|
|
92
99
|
version: 3;
|
package/dist/index.d.ts
CHANGED
|
@@ -2,6 +2,6 @@ export { compile } from "./compiler/index.js";
|
|
|
2
2
|
export { compileHydration } from "./compiler/index.js";
|
|
3
3
|
export { compileSsr } from "./compiler/index.js";
|
|
4
4
|
export type { CompileOptions, CompileResult, SsrCompileResult } from "./compiler/index.js";
|
|
5
|
-
export { computed, createDebugDiagnostic, createDebugInspector, defineAsyncComponent, effect, emitDebugDiagnostic, flushJobs, inject, isProxy, isReactive, isReadonly, isRef, nextTick, onActivated, onBeforeUnmount, onDeactivated, onMounted, onUnmounted, provide, queueJob, reactive, readonly, ref, toRaw, toRef, toRefs, unref, unwrap, watch, watchEffect } from "./runtime/index.js";
|
|
6
|
-
export type { MikuruDebugDiagnostic, MikuruDebugDiagnosticLevel, MikuruDebugDiagnosticSource, MikuruDebugComponentMetadata, MikuruDebugEvent, MikuruDebugInspector, MikuruDebugListener, MikuruDevtoolsHook } from "./runtime/index.js";
|
|
5
|
+
export { computed, createDebugDiagnostic, createDebugInspector, createDevtoolsInspector, defineAsyncComponent, effect, emitDebugDiagnostic, flushJobs, inject, isProxy, isReactive, isReadonly, isRef, nextTick, onActivated, onBeforeUnmount, onDeactivated, onMounted, onUnmounted, provide, queueJob, reactive, readonly, ref, toRaw, toRef, toRefs, unref, unwrap, watch, watchEffect } from "./runtime/index.js";
|
|
6
|
+
export type { MikuruDebugDiagnostic, MikuruDebugDiagnosticLevel, MikuruDebugDiagnosticSource, MikuruDebugComponentMetadata, MikuruDebugEvent, MikuruDebugInspector, MikuruDebugListener, MikuruDevtoolsEvent, MikuruDevtoolsHook, MikuruDevtoolsInspector, MikuruDevtoolsListener, MikuruDevtoolsSnapshot } from "./runtime/index.js";
|
|
7
7
|
export type { AsyncComponentLoader, AsyncComponentOptions, ComputedRef, EffectFn, EffectOptions, EffectRunner, EffectScheduler, MikuruAsyncComponent, MikuruAsyncBoundaryFallbackProps, MikuruComponent, MikuruComponentInstance, MikuruErrorBoundaryFallbackProps, MikuruErrorInfo, MikuruErrorPhase, Reactive, ReadonlyReactive, Ref, SchedulerJob, ToRefs, WatchCallback, WatchCleanup, WatchCleanupRegistrar, WatchEffectCleanup, WatchEffectCleanupRegistrar, WatchEffectFn, WatchOptions, WatchSource, WritableComputedOptions, WritableComputedRef } from "./runtime/index.js";
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { compile } from "./compiler/index.js";
|
|
2
2
|
export { compileHydration } from "./compiler/index.js";
|
|
3
3
|
export { compileSsr } from "./compiler/index.js";
|
|
4
|
-
export { computed, createDebugDiagnostic, createDebugInspector, defineAsyncComponent, effect, emitDebugDiagnostic, flushJobs, inject, isProxy, isReactive, isReadonly, isRef, nextTick, onActivated, onBeforeUnmount, onDeactivated, onMounted, onUnmounted, provide, queueJob, reactive, readonly, ref, toRaw, toRef, toRefs, unref, unwrap, watch, watchEffect } from "./runtime/index.js";
|
|
4
|
+
export { computed, createDebugDiagnostic, createDebugInspector, createDevtoolsInspector, defineAsyncComponent, effect, emitDebugDiagnostic, flushJobs, inject, isProxy, isReactive, isReadonly, isRef, nextTick, onActivated, onBeforeUnmount, onDeactivated, onMounted, onUnmounted, provide, queueJob, reactive, readonly, ref, toRaw, toRef, toRefs, unref, unwrap, watch, watchEffect } from "./runtime/index.js";
|
|
5
5
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,OAAO,EACL,QAAQ,EACR,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,EACpB,MAAM,EACN,mBAAmB,EACnB,SAAS,EACT,MAAM,EACN,OAAO,EACP,UAAU,EACV,UAAU,EACV,KAAK,EACL,QAAQ,EACR,WAAW,EACX,eAAe,EACf,aAAa,EACb,SAAS,EACT,WAAW,EACX,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,GAAG,EACH,KAAK,EACL,KAAK,EACL,MAAM,EACN,KAAK,EACL,MAAM,EACN,KAAK,EACL,WAAW,EACZ,MAAM,oBAAoB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,OAAO,EACL,QAAQ,EACR,qBAAqB,EACrB,oBAAoB,EACpB,uBAAuB,EACvB,oBAAoB,EACpB,MAAM,EACN,mBAAmB,EACnB,SAAS,EACT,MAAM,EACN,OAAO,EACP,UAAU,EACV,UAAU,EACV,KAAK,EACL,QAAQ,EACR,WAAW,EACX,eAAe,EACf,aAAa,EACb,SAAS,EACT,WAAW,EACX,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,GAAG,EACH,KAAK,EACL,KAAK,EACL,MAAM,EACN,KAAK,EACL,MAAM,EACN,KAAK,EACL,WAAW,EACZ,MAAM,oBAAoB,CAAC"}
|
|
@@ -3,6 +3,9 @@ export type MikuruDebugEvent = {
|
|
|
3
3
|
timestamp: number;
|
|
4
4
|
payload?: Record<string, unknown>;
|
|
5
5
|
};
|
|
6
|
+
export type MikuruDevtoolsEvent = MikuruDebugEvent & {
|
|
7
|
+
version: 1;
|
|
8
|
+
};
|
|
6
9
|
export type MikuruDebugDiagnosticLevel = "info" | "warning" | "error";
|
|
7
10
|
export type MikuruDebugDiagnosticSource = "compiler" | "runtime" | "router" | "ssr" | "hydration" | string;
|
|
8
11
|
export type MikuruDebugDiagnostic = {
|
|
@@ -18,6 +21,7 @@ export type MikuruDebugDiagnostic = {
|
|
|
18
21
|
[key: string]: unknown;
|
|
19
22
|
};
|
|
20
23
|
export type MikuruDebugListener = (event: MikuruDebugEvent) => void;
|
|
24
|
+
export type MikuruDevtoolsListener = (event: MikuruDevtoolsEvent) => void;
|
|
21
25
|
export type MikuruDebugComponentMetadata = {
|
|
22
26
|
id: number;
|
|
23
27
|
name?: string;
|
|
@@ -41,23 +45,32 @@ export type MikuruDebugComponentRegistration = {
|
|
|
41
45
|
export type MikuruDevtoolsHook = {
|
|
42
46
|
components?: Map<number, MikuruDebugComponentMetadata>;
|
|
43
47
|
events?: MikuruDebugEvent[];
|
|
44
|
-
listeners?: Set<
|
|
48
|
+
listeners?: Set<MikuruDevtoolsListener>;
|
|
45
49
|
nextId?: number;
|
|
46
50
|
registerComponent?(metadata: MikuruDebugComponentMetadata): void | (() => void);
|
|
47
|
-
emit?(event:
|
|
51
|
+
emit?(event: MikuruDevtoolsEvent): void;
|
|
48
52
|
};
|
|
49
53
|
export type MikuruDebugInspector = {
|
|
50
54
|
hook: MikuruDevtoolsHook;
|
|
51
55
|
getComponents(): MikuruDebugComponentMetadata[];
|
|
52
56
|
getComponentTree(): MikuruDebugComponentTreeNode[];
|
|
53
|
-
getEvents():
|
|
54
|
-
getEventsByType(type: string):
|
|
57
|
+
getEvents(): MikuruDevtoolsEvent[];
|
|
58
|
+
getEventsByType(type: string): MikuruDevtoolsEvent[];
|
|
59
|
+
getSnapshot(): MikuruDevtoolsSnapshot;
|
|
55
60
|
clearEvents(): void;
|
|
56
|
-
subscribe(listener:
|
|
61
|
+
subscribe(listener: MikuruDevtoolsListener): () => void;
|
|
57
62
|
};
|
|
58
63
|
export type MikuruDebugComponentTreeNode = MikuruDebugComponentMetadata & {
|
|
59
64
|
childrenTree: MikuruDebugComponentTreeNode[];
|
|
60
65
|
};
|
|
66
|
+
export type MikuruDevtoolsInspector = MikuruDebugInspector;
|
|
67
|
+
export type MikuruDevtoolsSnapshot = {
|
|
68
|
+
version: 1;
|
|
69
|
+
capturedAt: number;
|
|
70
|
+
components: MikuruDebugComponentMetadata[];
|
|
71
|
+
componentTree: MikuruDebugComponentTreeNode[];
|
|
72
|
+
events: MikuruDevtoolsEvent[];
|
|
73
|
+
};
|
|
61
74
|
declare global {
|
|
62
75
|
var __MIKURU_DEVTOOLS__: MikuruDevtoolsHook | undefined;
|
|
63
76
|
}
|
|
@@ -70,3 +83,4 @@ export declare function emitDebugEvent(type: string, payload?: Record<string, un
|
|
|
70
83
|
export declare function createDebugDiagnostic(source: MikuruDebugDiagnosticSource, level: MikuruDebugDiagnosticLevel, message: string, details?: Omit<MikuruDebugDiagnostic, "source" | "level" | "message">): MikuruDebugDiagnostic;
|
|
71
84
|
export declare function emitDebugDiagnostic(source: MikuruDebugDiagnosticSource, level: MikuruDebugDiagnosticLevel, message: string, details?: Omit<MikuruDebugDiagnostic, "source" | "level" | "message">): MikuruDebugDiagnostic;
|
|
72
85
|
export declare function createDebugInspector(hook?: MikuruDevtoolsHook): MikuruDebugInspector;
|
|
86
|
+
export declare function createDevtoolsInspector(hook?: MikuruDevtoolsHook): MikuruDevtoolsInspector;
|