@kawaijs/vite-plugin 1.0.0 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -1,7 +1,8 @@
1
1
  export interface KawaijsPluginOptions {
2
2
  include?: string | RegExp | (string | RegExp)[];
3
+ fileResolver?: (target: string, from: string) => string | null;
3
4
  }
4
- export declare function kawaijsPlugin(_options?: KawaijsPluginOptions): {
5
+ export declare function kawaijsPlugin(options?: KawaijsPluginOptions): {
5
6
  name: string;
6
7
  transform(code: string, id: string): {
7
8
  code: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;CACjD;AAED,wBAAgB,aAAa,CAAC,QAAQ,GAAE,oBAAyB;;oBAG7C,MAAM,MAAM,MAAM;;;;;;EA8BrC;AAED,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IAChD,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;CAChE;AAeD,wBAAgB,aAAa,CAAC,OAAO,GAAE,oBAAyB;;oBAmB5C,MAAM,MAAM,MAAM;;;;;;EAmCrC;AAED,eAAe,aAAa,CAAC"}
package/dist/index.js CHANGED
@@ -1,13 +1,45 @@
1
+ import * as fs from 'node:fs';
2
+ import * as path from 'node:path';
1
3
  import { compileScript } from '@kawaijs/parser';
2
- export function kawaijsPlugin(_options = {}) {
4
+ function matchesFilter(id, filter) {
5
+ if (Array.isArray(filter)) {
6
+ return filter.some((f) => matchesFilter(id, f));
7
+ }
8
+ if (typeof filter === 'string') {
9
+ return id.includes(filter);
10
+ }
11
+ if (filter instanceof RegExp) {
12
+ return filter.test(id);
13
+ }
14
+ return true;
15
+ }
16
+ export function kawaijsPlugin(options = {}) {
17
+ const defaultResolver = (target, from) => {
18
+ const rootDir = from && path.isAbsolute(from) ? path.dirname(from) : process.cwd();
19
+ const resolvedRoot = path.resolve(rootDir);
20
+ const isInsideRoot = (filePath) => {
21
+ const relative = path.relative(resolvedRoot, filePath);
22
+ return relative === '' || (!relative.startsWith('..') && !path.isAbsolute(relative));
23
+ };
24
+ const candidate = path.resolve(resolvedRoot, target);
25
+ if (isInsideRoot(candidate) && fs.existsSync(candidate)) {
26
+ return fs.readFileSync(candidate, 'utf-8');
27
+ }
28
+ return null;
29
+ };
30
+ const fileResolver = options.fileResolver ?? defaultResolver;
3
31
  return {
4
32
  name: 'vite-plugin-kawaijs',
5
33
  transform(code, id) {
6
- if (!id.endsWith('.kawa')) {
34
+ const cleanId = id.split('?')[0].split('#')[0];
35
+ if (!cleanId.endsWith('.kawa')) {
36
+ return null;
37
+ }
38
+ if (options.include && !matchesFilter(cleanId, options.include) && !matchesFilter(id, options.include)) {
7
39
  return null;
8
40
  }
9
41
  try {
10
- const storyPackage = compileScript(code, id);
42
+ const storyPackage = compileScript(code, cleanId, { fileResolver });
11
43
  const jsonStr = JSON.stringify(storyPackage);
12
44
  return {
13
45
  code: `
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAMhD,MAAM,UAAU,aAAa,CAAC,WAAiC,EAAE;IAC/D,OAAO;QACL,IAAI,EAAE,qBAAqB;QAC3B,SAAS,CAAC,IAAY,EAAE,EAAU;YAChC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC1B,OAAO,IAAI,CAAC;YACd,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,YAAY,GAAG,aAAa,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;gBAE7C,OAAO;oBACL,IAAI,EAAE;uBACO,OAAO;;;;;;;;;;CAU7B;oBACS,GAAG,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;iBACtB,CAAC;YACJ,CAAC;YAAC,OAAO,GAAY,EAAE,CAAC;gBACtB,MAAM,KAAK,GAAG,GAAY,CAAC;gBAC3B,MAAM,IAAI,KAAK,CAAC,2CAA2C,EAAE,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YACrF,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC;AAED,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAOhD,SAAS,aAAa,CAAC,EAAU,EAAE,MAA6C;IAC9E,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IAClD,CAAC;IACD,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,OAAO,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC;IACD,IAAI,MAAM,YAAY,MAAM,EAAE,CAAC;QAC7B,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACzB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,UAAgC,EAAE;IAC9D,MAAM,eAAe,GAAG,CAAC,MAAc,EAAE,IAAY,EAAiB,EAAE;QACtE,MAAM,OAAO,GAAG,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;QACnF,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC3C,MAAM,YAAY,GAAG,CAAC,QAAgB,EAAW,EAAE;YACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;YACvD,OAAO,QAAQ,KAAK,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;QACvF,CAAC,CAAC;QACF,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QACrD,IAAI,YAAY,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YACxD,OAAO,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAC7C,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IAEF,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,eAAe,CAAC;IAE7D,OAAO;QACL,IAAI,EAAE,qBAAqB;QAC3B,SAAS,CAAC,IAAY,EAAE,EAAU;YAChC,MAAM,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC;YACjD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC/B,OAAO,IAAI,CAAC;YACd,CAAC;YAED,IAAI,OAAO,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;gBACvG,OAAO,IAAI,CAAC;YACd,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,YAAY,GAAG,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC;gBACpE,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;gBAE7C,OAAO;oBACL,IAAI,EAAE;uBACO,OAAO;;;;;;;;;;CAU7B;oBACS,GAAG,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;iBACtB,CAAC;YACJ,CAAC;YAAC,OAAO,GAAY,EAAE,CAAC;gBACtB,MAAM,KAAK,GAAG,GAAY,CAAC;gBAC3B,MAAM,IAAI,KAAK,CAAC,2CAA2C,EAAE,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YACrF,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC;AAED,eAAe,aAAa,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kawaijs/vite-plugin",
3
- "version": "1.0.0",
3
+ "version": "1.0.1",
4
4
  "description": "Official Vite/Rollup plugin to import and hot-reload .kawa visual novel scripts directly",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -26,8 +26,8 @@
26
26
  "typecheck": "tsc --noEmit"
27
27
  },
28
28
  "dependencies": {
29
- "@kawaijs/ast": "^1.0.0",
30
- "@kawaijs/parser": "^1.0.0"
29
+ "@kawaijs/ast": "^1.0.1",
30
+ "@kawaijs/parser": "^1.0.1"
31
31
  },
32
32
  "peerDependencies": {
33
33
  "vite": ">=4.0.0"