@trebired/bundler 3.5.0 → 3.6.0
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 +14 -0
- package/README.md +82 -0
- package/dist/constants.d.ts +2 -2
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +3 -2
- package/dist/constants.js.map +1 -1
- package/dist/core/build.d.ts.map +1 -1
- package/dist/core/build.js +3 -1
- package/dist/core/build.js.map +1 -1
- package/dist/core/discovery/normalize.d.ts +3 -1
- package/dist/core/discovery/normalize.d.ts.map +1 -1
- package/dist/core/discovery/normalize.js +8 -4
- package/dist/core/discovery/normalize.js.map +1 -1
- package/dist/core/discovery/resolve.d.ts +2 -0
- package/dist/core/discovery/resolve.d.ts.map +1 -1
- package/dist/core/discovery/resolve.js +4 -2
- package/dist/core/discovery/resolve.js.map +1 -1
- package/dist/core/esbuild-options.d.ts +2 -1
- package/dist/core/esbuild-options.d.ts.map +1 -1
- package/dist/core/esbuild-options.js +11 -0
- package/dist/core/esbuild-options.js.map +1 -1
- package/dist/core/i18n-options.d.ts +8 -0
- package/dist/core/i18n-options.d.ts.map +1 -0
- package/dist/core/i18n-options.js +46 -0
- package/dist/core/i18n-options.js.map +1 -0
- package/dist/core/shared.js +1 -1
- package/dist/core/shared.js.map +1 -1
- package/dist/core/watch.d.ts.map +1 -1
- package/dist/core/watch.js +5 -1
- package/dist/core/watch.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/package-metadata.d.ts +6 -0
- package/dist/package-metadata.d.ts.map +1 -0
- package/dist/package-metadata.js +30 -0
- package/dist/package-metadata.js.map +1 -0
- package/dist/plugins/i18n/parse.d.ts +8 -0
- package/dist/plugins/i18n/parse.d.ts.map +1 -0
- package/dist/plugins/i18n/parse.js +162 -0
- package/dist/plugins/i18n/parse.js.map +1 -0
- package/dist/plugins/i18n/plugin.d.ts +11 -0
- package/dist/plugins/i18n/plugin.d.ts.map +1 -0
- package/dist/plugins/i18n/plugin.js +41 -0
- package/dist/plugins/i18n/plugin.js.map +1 -0
- package/dist/plugins/i18n/shared.d.ts +13 -0
- package/dist/plugins/i18n/shared.d.ts.map +1 -0
- package/dist/plugins/i18n/shared.js +45 -0
- package/dist/plugins/i18n/shared.js.map +1 -0
- package/dist/plugins/i18n/transform.d.ts +16 -0
- package/dist/plugins/i18n/transform.d.ts.map +1 -0
- package/dist/plugins/i18n/transform.js +82 -0
- package/dist/plugins/i18n/transform.js.map +1 -0
- package/dist/plugins/i18n/validate.d.ts +19 -0
- package/dist/plugins/i18n/validate.d.ts.map +1 -0
- package/dist/plugins/i18n/validate.js +114 -0
- package/dist/plugins/i18n/validate.js.map +1 -0
- package/dist/plugins/i18n.d.ts +2 -0
- package/dist/plugins/i18n.d.ts.map +1 -0
- package/dist/plugins/i18n.js +2 -0
- package/dist/plugins/i18n.js.map +1 -0
- package/dist/src/constants.d.ts +2 -2
- package/dist/src/constants.d.ts.map +1 -1
- package/dist/src/constants.js +3 -2
- package/dist/src/constants.js.map +1 -1
- package/dist/src/core/build.d.ts.map +1 -1
- package/dist/src/core/build.js +3 -1
- package/dist/src/core/build.js.map +1 -1
- package/dist/src/core/discovery/normalize.d.ts +3 -1
- package/dist/src/core/discovery/normalize.d.ts.map +1 -1
- package/dist/src/core/discovery/normalize.js +8 -4
- package/dist/src/core/discovery/normalize.js.map +1 -1
- package/dist/src/core/discovery/resolve.d.ts +2 -0
- package/dist/src/core/discovery/resolve.d.ts.map +1 -1
- package/dist/src/core/discovery/resolve.js +4 -2
- package/dist/src/core/discovery/resolve.js.map +1 -1
- package/dist/src/core/esbuild-options.d.ts +2 -1
- package/dist/src/core/esbuild-options.d.ts.map +1 -1
- package/dist/src/core/esbuild-options.js +11 -0
- package/dist/src/core/esbuild-options.js.map +1 -1
- package/dist/src/core/i18n-options.d.ts +8 -0
- package/dist/src/core/i18n-options.d.ts.map +1 -0
- package/dist/src/core/i18n-options.js +46 -0
- package/dist/src/core/i18n-options.js.map +1 -0
- package/dist/src/core/shared.js +1 -1
- package/dist/src/core/shared.js.map +1 -1
- package/dist/src/core/watch.d.ts.map +1 -1
- package/dist/src/core/watch.js +5 -1
- package/dist/src/core/watch.js.map +1 -1
- package/dist/src/index.d.ts +2 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +1 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/package-metadata.d.ts +6 -0
- package/dist/src/package-metadata.d.ts.map +1 -0
- package/dist/src/package-metadata.js +30 -0
- package/dist/src/package-metadata.js.map +1 -0
- package/dist/src/plugins/i18n/parse.d.ts +8 -0
- package/dist/src/plugins/i18n/parse.d.ts.map +1 -0
- package/dist/src/plugins/i18n/parse.js +162 -0
- package/dist/src/plugins/i18n/parse.js.map +1 -0
- package/dist/src/plugins/i18n/plugin.d.ts +11 -0
- package/dist/src/plugins/i18n/plugin.d.ts.map +1 -0
- package/dist/src/plugins/i18n/plugin.js +41 -0
- package/dist/src/plugins/i18n/plugin.js.map +1 -0
- package/dist/src/plugins/i18n/shared.d.ts +13 -0
- package/dist/src/plugins/i18n/shared.d.ts.map +1 -0
- package/dist/src/plugins/i18n/shared.js +45 -0
- package/dist/src/plugins/i18n/shared.js.map +1 -0
- package/dist/src/plugins/i18n/transform.d.ts +16 -0
- package/dist/src/plugins/i18n/transform.d.ts.map +1 -0
- package/dist/src/plugins/i18n/transform.js +82 -0
- package/dist/src/plugins/i18n/transform.js.map +1 -0
- package/dist/src/plugins/i18n/validate.d.ts +19 -0
- package/dist/src/plugins/i18n/validate.d.ts.map +1 -0
- package/dist/src/plugins/i18n/validate.js +114 -0
- package/dist/src/plugins/i18n/validate.js.map +1 -0
- package/dist/src/plugins/i18n.d.ts +2 -0
- package/dist/src/plugins/i18n.d.ts.map +1 -0
- package/dist/src/plugins/i18n.js +2 -0
- package/dist/src/plugins/i18n.js.map +1 -0
- package/dist/src/types/i18n.d.ts +16 -0
- package/dist/src/types/i18n.d.ts.map +1 -0
- package/dist/src/types/i18n.js +2 -0
- package/dist/src/types/i18n.js.map +1 -0
- package/dist/src/types/runtime.d.ts +2 -0
- package/dist/src/types/runtime.d.ts.map +1 -1
- package/dist/src/types.d.ts +1 -0
- package/dist/src/types.d.ts.map +1 -1
- package/dist/types/i18n.d.ts +16 -0
- package/dist/types/i18n.d.ts.map +1 -0
- package/dist/types/i18n.js +2 -0
- package/dist/types/i18n.js.map +1 -0
- package/dist/types/runtime.d.ts +2 -0
- package/dist/types/runtime.d.ts.map +1 -1
- package/dist/types.d.ts +1 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +12 -7
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACzE,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AACjF,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACpH,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,YAAY,EACV,6BAA6B,EAC7B,oBAAoB,EACpB,yBAAyB,EACzB,gCAAgC,EAChC,4BAA4B,EAC5B,oBAAoB,EACpB,yBAAyB,EACzB,0BAA0B,EAC1B,wBAAwB,EACxB,0BAA0B,EAC1B,gCAAgC,EAChC,kBAAkB,EAClB,0BAA0B,EAC1B,8BAA8B,EAC9B,+BAA+B,EAC/B,sBAAsB,EACtB,mBAAmB,EACnB,2BAA2B,EAC3B,sBAAsB,EACtB,2BAA2B,EAC3B,2BAA2B,EAC3B,4BAA4B,EAC5B,gCAAgC,EAChC,4BAA4B,EAC5B,yBAAyB,EACzB,wBAAwB,EACxB,yBAAyB,EACzB,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,uBAAuB,EACvB,kBAAkB,EAClB,sBAAsB,EACtB,wBAAwB,EACxB,4BAA4B,EAC5B,yBAAyB,EACzB,iCAAiC,EACjC,eAAe,EACf,aAAa,EACb,oBAAoB,EACpB,gBAAgB,EAChB,sBAAsB,EACtB,cAAc,EACd,wBAAwB,EACxB,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,uBAAuB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACzE,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AACjF,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACpH,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,YAAY,EACV,6BAA6B,EAC7B,oBAAoB,EACpB,yBAAyB,EACzB,gCAAgC,EAChC,4BAA4B,EAC5B,oBAAoB,EACpB,yBAAyB,EACzB,0BAA0B,EAC1B,wBAAwB,EACxB,0BAA0B,EAC1B,gCAAgC,EAChC,kBAAkB,EAClB,0BAA0B,EAC1B,8BAA8B,EAC9B,+BAA+B,EAC/B,sBAAsB,EACtB,mBAAmB,EACnB,2BAA2B,EAC3B,sBAAsB,EACtB,2BAA2B,EAC3B,2BAA2B,EAC3B,4BAA4B,EAC5B,gCAAgC,EAChC,4BAA4B,EAC5B,yBAAyB,EACzB,wBAAwB,EACxB,yBAAyB,EACzB,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,uBAAuB,EACvB,kBAAkB,EAClB,sBAAsB,EACtB,wBAAwB,EACxB,4BAA4B,EAC5B,yBAAyB,EACzB,iCAAiC,EACjC,kBAAkB,EAClB,eAAe,EACf,aAAa,EACb,oBAAoB,EACpB,gBAAgB,EAChB,sBAAsB,EACtB,cAAc,EACd,wBAAwB,EACxB,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,uBAAuB,EACvB,4BAA4B,GAC7B,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,MAAM,IAAI,OAAO,EAAE,MAAM,iBAAiB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -8,6 +8,7 @@ export { defineBundlerConfig } from "./config/index.js";
|
|
|
8
8
|
export { resolveLogger } from "./logging.js";
|
|
9
9
|
export { buildSourceAnnotation, injectSourceAnnotation, resolveSourceLabel } from "./plugins/source-annotations.js";
|
|
10
10
|
export { createScssPlugin } from "./plugins/scss.js";
|
|
11
|
+
export { createI18nPlugin } from "./plugins/i18n.js";
|
|
11
12
|
export { runCli } from "./cli/run-cli.js";
|
|
12
13
|
export { bundle as default } from "./core/build.js";
|
|
13
14
|
//# 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,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACzE,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AACjF,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACpH,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACzE,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AACjF,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACpH,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAyD1C,OAAO,EAAE,MAAM,IAAI,OAAO,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
declare const PACKAGE_NAME: string;
|
|
2
|
+
declare const PACKAGE_ORGANIZATION_NAME: string;
|
|
3
|
+
declare const PACKAGE_SLUG: string;
|
|
4
|
+
declare function buildPackageLogGroup(...parts: string[]): string;
|
|
5
|
+
export { buildPackageLogGroup, PACKAGE_NAME, PACKAGE_ORGANIZATION_NAME, PACKAGE_SLUG, };
|
|
6
|
+
//# sourceMappingURL=package-metadata.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"package-metadata.d.ts","sourceRoot":"","sources":["../../src/package-metadata.ts"],"names":[],"mappings":"AAoCA,QAAA,MAAM,YAAY,QAAuD,CAAC;AAC1E,QAAA,MAAM,yBAAyB,QAAkG,CAAC;AAClI,QAAA,MAAM,YAAY,QAAyC,CAAC;AAE5D,iBAAS,oBAAoB,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAExD;AAED,OAAO,EACL,oBAAoB,EACpB,YAAY,EACZ,yBAAyB,EACzB,YAAY,GACb,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import fs from "node:fs";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { fileURLToPath } from "node:url";
|
|
4
|
+
function readPackageJson() {
|
|
5
|
+
const packageJsonPath = path.resolve(path.dirname(fileURLToPath(import.meta.url)), "..", "package.json");
|
|
6
|
+
try {
|
|
7
|
+
return JSON.parse(fs.readFileSync(packageJsonPath, "utf8"));
|
|
8
|
+
}
|
|
9
|
+
catch {
|
|
10
|
+
return {};
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
function cleanSegment(value) {
|
|
14
|
+
return typeof value === "string" ? value.trim() : "";
|
|
15
|
+
}
|
|
16
|
+
function packageScope(name) {
|
|
17
|
+
return new RegExp("^@([^/]+)/").exec(name)?.[1] ?? "";
|
|
18
|
+
}
|
|
19
|
+
function packageSlug(name) {
|
|
20
|
+
return name.replace(new RegExp("^@[^/]+/"), "").trim();
|
|
21
|
+
}
|
|
22
|
+
const packageJson = readPackageJson();
|
|
23
|
+
const PACKAGE_NAME = cleanSegment(packageJson.name) || "@package/bundler";
|
|
24
|
+
const PACKAGE_ORGANIZATION_NAME = cleanSegment(packageJson.config?.organization?.name) || packageScope(PACKAGE_NAME) || "package";
|
|
25
|
+
const PACKAGE_SLUG = packageSlug(PACKAGE_NAME) || "bundler";
|
|
26
|
+
function buildPackageLogGroup(...parts) {
|
|
27
|
+
return [PACKAGE_ORGANIZATION_NAME, PACKAGE_SLUG, ...parts.map((part) => part.trim()).filter(Boolean)].join(".");
|
|
28
|
+
}
|
|
29
|
+
export { buildPackageLogGroup, PACKAGE_NAME, PACKAGE_ORGANIZATION_NAME, PACKAGE_SLUG, };
|
|
30
|
+
//# sourceMappingURL=package-metadata.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"package-metadata.js","sourceRoot":"","sources":["../../src/package-metadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAWzC,SAAS,eAAe;IACtB,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;IAEzG,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,eAAe,EAAE,MAAM,CAAC,CAAgB,CAAC;IAC7E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,KAAc;IAClC,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AACvD,CAAC;AAED,SAAS,YAAY,CAAC,IAAY;IAChC,OAAO,IAAI,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AACxD,CAAC;AAED,SAAS,WAAW,CAAC,IAAY;IAC/B,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;AACzD,CAAC;AAED,MAAM,WAAW,GAAG,eAAe,EAAE,CAAC;AACtC,MAAM,YAAY,GAAG,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,kBAAkB,CAAC;AAC1E,MAAM,yBAAyB,GAAG,YAAY,CAAC,WAAW,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,CAAC,IAAI,YAAY,CAAC,YAAY,CAAC,IAAI,SAAS,CAAC;AAClI,MAAM,YAAY,GAAG,WAAW,CAAC,YAAY,CAAC,IAAI,SAAS,CAAC;AAE5D,SAAS,oBAAoB,CAAC,GAAG,KAAe;IAC9C,OAAO,CAAC,yBAAyB,EAAE,YAAY,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClH,CAAC;AAED,OAAO,EACL,oBAAoB,EACpB,YAAY,EACZ,yBAAyB,EACzB,YAAY,GACb,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
type MessageDictionary = {
|
|
2
|
+
[key: string]: string | MessageDictionary;
|
|
3
|
+
};
|
|
4
|
+
declare function parseMessagesSource(source: string, filePath: string): MessageDictionary;
|
|
5
|
+
declare function flattenMessageKeys(messages: MessageDictionary): string[];
|
|
6
|
+
export { flattenMessageKeys, parseMessagesSource, };
|
|
7
|
+
export type { MessageDictionary, };
|
|
8
|
+
//# sourceMappingURL=parse.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../../../src/plugins/i18n/parse.ts"],"names":[],"mappings":"AAAA,KAAK,iBAAiB,GAAG;IACvB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,iBAAiB,CAAC;CAC3C,CAAC;AAiJF,iBAAS,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,iBAAiB,CAEhF;AAED,iBAAS,kBAAkB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,MAAM,EAAE,CAIjE;AAaD,OAAO,EACL,kBAAkB,EAClB,mBAAmB,GACpB,CAAC;AACF,YAAY,EACV,iBAAiB,GAClB,CAAC"}
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
class MessageFileParser {
|
|
2
|
+
constructor(source, filePath) {
|
|
3
|
+
this.source = source;
|
|
4
|
+
this.filePath = filePath;
|
|
5
|
+
this.index = 0;
|
|
6
|
+
}
|
|
7
|
+
parse() {
|
|
8
|
+
this.index = this.findMessagesObjectStart();
|
|
9
|
+
return this.readObject();
|
|
10
|
+
}
|
|
11
|
+
findMessagesObjectStart() {
|
|
12
|
+
const match = /\bexport\s+default\s+defineMessages\s*\(/u.exec(this.source);
|
|
13
|
+
if (!match)
|
|
14
|
+
this.fail("expected default export defineMessages({...})");
|
|
15
|
+
const objectStart = this.source.indexOf("{", match.index + match[0].length);
|
|
16
|
+
if (objectStart === -1)
|
|
17
|
+
this.fail("expected messages object literal");
|
|
18
|
+
return objectStart;
|
|
19
|
+
}
|
|
20
|
+
readObject() {
|
|
21
|
+
const messages = {};
|
|
22
|
+
this.expect("{");
|
|
23
|
+
this.skipTrivia();
|
|
24
|
+
while (!this.consume("}")) {
|
|
25
|
+
const key = this.readKey();
|
|
26
|
+
this.skipTrivia();
|
|
27
|
+
this.expect(":");
|
|
28
|
+
messages[key] = this.readValue();
|
|
29
|
+
this.skipTrivia();
|
|
30
|
+
if (this.consume(",")) {
|
|
31
|
+
this.skipTrivia();
|
|
32
|
+
continue;
|
|
33
|
+
}
|
|
34
|
+
if (this.peek() !== "}")
|
|
35
|
+
this.fail("expected comma or closing brace");
|
|
36
|
+
}
|
|
37
|
+
return messages;
|
|
38
|
+
}
|
|
39
|
+
readValue() {
|
|
40
|
+
this.skipTrivia();
|
|
41
|
+
const char = this.peek();
|
|
42
|
+
if (char === "\"" || char === "'")
|
|
43
|
+
return this.readQuotedString();
|
|
44
|
+
if (char === "`")
|
|
45
|
+
return this.readTemplateString();
|
|
46
|
+
if (char === "{")
|
|
47
|
+
return this.readObject();
|
|
48
|
+
this.fail("expected string or nested messages object");
|
|
49
|
+
}
|
|
50
|
+
readKey() {
|
|
51
|
+
this.skipTrivia();
|
|
52
|
+
const char = this.peek();
|
|
53
|
+
if (char === "\"" || char === "'")
|
|
54
|
+
return this.readQuotedString();
|
|
55
|
+
const match = /^[$A-Za-z_][$A-Za-z0-9_]*/u.exec(this.source.slice(this.index));
|
|
56
|
+
if (match) {
|
|
57
|
+
this.index += match[0].length;
|
|
58
|
+
return match[0];
|
|
59
|
+
}
|
|
60
|
+
const numeric = /^[0-9]+/u.exec(this.source.slice(this.index));
|
|
61
|
+
if (numeric) {
|
|
62
|
+
this.index += numeric[0].length;
|
|
63
|
+
return numeric[0];
|
|
64
|
+
}
|
|
65
|
+
this.fail("expected property key");
|
|
66
|
+
}
|
|
67
|
+
readQuotedString() {
|
|
68
|
+
const quote = this.source[this.index];
|
|
69
|
+
this.index += 1;
|
|
70
|
+
let value = "";
|
|
71
|
+
while (this.index < this.source.length) {
|
|
72
|
+
const char = this.source[this.index++];
|
|
73
|
+
if (char === quote)
|
|
74
|
+
return value;
|
|
75
|
+
if (char === "\\") {
|
|
76
|
+
value += char;
|
|
77
|
+
if (this.index < this.source.length)
|
|
78
|
+
value += this.source[this.index++];
|
|
79
|
+
continue;
|
|
80
|
+
}
|
|
81
|
+
value += char;
|
|
82
|
+
}
|
|
83
|
+
this.fail("unterminated string literal");
|
|
84
|
+
}
|
|
85
|
+
readTemplateString() {
|
|
86
|
+
this.index += 1;
|
|
87
|
+
let value = "";
|
|
88
|
+
while (this.index < this.source.length) {
|
|
89
|
+
const char = this.source[this.index++];
|
|
90
|
+
if (char === "`")
|
|
91
|
+
return value;
|
|
92
|
+
if (char === "$" && this.peek() === "{")
|
|
93
|
+
this.fail("template expressions are not supported");
|
|
94
|
+
if (char === "\\") {
|
|
95
|
+
value += char;
|
|
96
|
+
if (this.index < this.source.length)
|
|
97
|
+
value += this.source[this.index++];
|
|
98
|
+
continue;
|
|
99
|
+
}
|
|
100
|
+
value += char;
|
|
101
|
+
}
|
|
102
|
+
this.fail("unterminated template literal");
|
|
103
|
+
}
|
|
104
|
+
skipTrivia() {
|
|
105
|
+
while (this.index < this.source.length) {
|
|
106
|
+
if (/\s/u.test(this.peek())) {
|
|
107
|
+
this.index += 1;
|
|
108
|
+
continue;
|
|
109
|
+
}
|
|
110
|
+
if (this.consume("//")) {
|
|
111
|
+
while (this.index < this.source.length && this.peek() !== "\n")
|
|
112
|
+
this.index += 1;
|
|
113
|
+
continue;
|
|
114
|
+
}
|
|
115
|
+
if (this.consume("/*")) {
|
|
116
|
+
const end = this.source.indexOf("*/", this.index);
|
|
117
|
+
if (end === -1)
|
|
118
|
+
this.fail("unterminated block comment");
|
|
119
|
+
this.index = end + 2;
|
|
120
|
+
continue;
|
|
121
|
+
}
|
|
122
|
+
return;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
expect(value) {
|
|
126
|
+
this.skipTrivia();
|
|
127
|
+
if (!this.consume(value))
|
|
128
|
+
this.fail(`expected ${value}`);
|
|
129
|
+
}
|
|
130
|
+
consume(value) {
|
|
131
|
+
if (!this.source.startsWith(value, this.index))
|
|
132
|
+
return false;
|
|
133
|
+
this.index += value.length;
|
|
134
|
+
return true;
|
|
135
|
+
}
|
|
136
|
+
peek() {
|
|
137
|
+
return this.source[this.index] || "";
|
|
138
|
+
}
|
|
139
|
+
fail(message) {
|
|
140
|
+
throw new Error(`${message} :: ${this.filePath}`);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
function parseMessagesSource(source, filePath) {
|
|
144
|
+
return new MessageFileParser(source, filePath).parse();
|
|
145
|
+
}
|
|
146
|
+
function flattenMessageKeys(messages) {
|
|
147
|
+
const keys = new Set();
|
|
148
|
+
collectMessageKeys(messages, "", keys);
|
|
149
|
+
return Array.from(keys).sort();
|
|
150
|
+
}
|
|
151
|
+
function collectMessageKeys(messages, prefix, keys) {
|
|
152
|
+
for (const [key, value] of Object.entries(messages)) {
|
|
153
|
+
const nextKey = prefix ? `${prefix}.${key}` : key;
|
|
154
|
+
if (typeof value === "string") {
|
|
155
|
+
keys.add(nextKey);
|
|
156
|
+
continue;
|
|
157
|
+
}
|
|
158
|
+
collectMessageKeys(value, nextKey, keys);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
export { flattenMessageKeys, parseMessagesSource, };
|
|
162
|
+
//# sourceMappingURL=parse.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse.js","sourceRoot":"","sources":["../../../../src/plugins/i18n/parse.ts"],"names":[],"mappings":"AAIA,MAAM,iBAAiB;IAGrB,YACmB,MAAc,EACd,QAAgB;QADhB,WAAM,GAAN,MAAM,CAAQ;QACd,aAAQ,GAAR,QAAQ,CAAQ;QAJ3B,UAAK,GAAG,CAAC,CAAC;IAKf,CAAC;IAEJ,KAAK;QACH,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC5C,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;IAC3B,CAAC;IAEO,uBAAuB;QAC7B,MAAM,KAAK,GAAG,2CAA2C,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC5E,IAAI,CAAC,KAAK;YAAE,IAAI,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;QAEvE,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAC5E,IAAI,WAAW,KAAK,CAAC,CAAC;YAAE,IAAI,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;QACtE,OAAO,WAAW,CAAC;IACrB,CAAC;IAEO,UAAU;QAChB,MAAM,QAAQ,GAAsB,EAAE,CAAC;QACvC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjB,IAAI,CAAC,UAAU,EAAE,CAAC;QAElB,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;YAC3B,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACjB,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;YACjC,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;gBACtB,IAAI,CAAC,UAAU,EAAE,CAAC;gBAClB,SAAS;YACX,CAAC;YACD,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG;gBAAE,IAAI,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;QACxE,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEO,SAAS;QACf,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QACzB,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,GAAG;YAAE,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAClE,IAAI,IAAI,KAAK,GAAG;YAAE,OAAO,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACnD,IAAI,IAAI,KAAK,GAAG;YAAE,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;QAC3C,IAAI,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;IACzD,CAAC;IAEO,OAAO;QACb,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QACzB,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,GAAG;YAAE,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAClE,MAAM,KAAK,GAAG,4BAA4B,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAC/E,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YAC9B,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAC/D,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,KAAK,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YAChC,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;IACrC,CAAC;IAEO,gBAAgB;QACtB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC;QAChB,IAAI,KAAK,GAAG,EAAE,CAAC;QACf,OAAO,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACvC,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;YACvC,IAAI,IAAI,KAAK,KAAK;gBAAE,OAAO,KAAK,CAAC;YACjC,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;gBAClB,KAAK,IAAI,IAAI,CAAC;gBACd,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM;oBAAE,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;gBACxE,SAAS;YACX,CAAC;YACD,KAAK,IAAI,IAAI,CAAC;QAChB,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;IAC3C,CAAC;IAEO,kBAAkB;QACxB,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC;QAChB,IAAI,KAAK,GAAG,EAAE,CAAC;QACf,OAAO,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACvC,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;YACvC,IAAI,IAAI,KAAK,GAAG;gBAAE,OAAO,KAAK,CAAC;YAC/B,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG;gBAAE,IAAI,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;YAC7F,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;gBAClB,KAAK,IAAI,IAAI,CAAC;gBACd,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM;oBAAE,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;gBACxE,SAAS;YACX,CAAC;YACD,KAAK,IAAI,IAAI,CAAC;QAChB,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;IAC7C,CAAC;IAEO,UAAU;QAChB,OAAO,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACvC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;gBAC5B,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC;gBAChB,SAAS;YACX,CAAC;YACD,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;gBACvB,OAAO,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,IAAI;oBAAE,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC;gBAChF,SAAS;YACX,CAAC;YACD,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;gBACvB,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;gBAClD,IAAI,GAAG,KAAK,CAAC,CAAC;oBAAE,IAAI,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;gBACxD,IAAI,CAAC,KAAK,GAAG,GAAG,GAAG,CAAC,CAAC;gBACrB,SAAS;YACX,CAAC;YACD,OAAO;QACT,CAAC;IACH,CAAC;IAEO,MAAM,CAAC,KAAa;QAC1B,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;YAAE,IAAI,CAAC,IAAI,CAAC,YAAY,KAAK,EAAE,CAAC,CAAC;IAC3D,CAAC;IAEO,OAAO,CAAC,KAAa;QAC3B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QAC7D,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,IAAI;QACV,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;IACvC,CAAC;IAEO,IAAI,CAAC,OAAe;QAC1B,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;IACpD,CAAC;CACF;AAED,SAAS,mBAAmB,CAAC,MAAc,EAAE,QAAgB;IAC3D,OAAO,IAAI,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,KAAK,EAAE,CAAC;AACzD,CAAC;AAED,SAAS,kBAAkB,CAAC,QAA2B;IACrD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,kBAAkB,CAAC,QAAQ,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;IACvC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;AACjC,CAAC;AAED,SAAS,kBAAkB,CAAC,QAA2B,EAAE,MAAc,EAAE,IAAiB;IACxF,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QACpD,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;QAClD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAClB,SAAS;QACX,CAAC;QACD,kBAAkB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IAC3C,CAAC;AACH,CAAC;AAED,OAAO,EACL,kBAAkB,EAClB,mBAAmB,GACpB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Plugin } from "esbuild";
|
|
2
|
+
import type { NormalizedBundlerI18nOptions, NormalizedBundlerLogger } from "../../src/types.d.ts";
|
|
3
|
+
type I18nPluginOptions = {
|
|
4
|
+
annotateSources: boolean;
|
|
5
|
+
i18n: NormalizedBundlerI18nOptions;
|
|
6
|
+
logger: NormalizedBundlerLogger;
|
|
7
|
+
rootDir: string;
|
|
8
|
+
};
|
|
9
|
+
declare function createI18nPlugin(options: I18nPluginOptions): Plugin;
|
|
10
|
+
export { createI18nPlugin, };
|
|
11
|
+
//# sourceMappingURL=plugin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../../src/plugins/i18n/plugin.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAEtC,OAAO,KAAK,EAAE,4BAA4B,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAS3F,KAAK,iBAAiB,GAAG;IACvB,eAAe,EAAE,OAAO,CAAC;IACzB,IAAI,EAAE,4BAA4B,CAAC;IACnC,MAAM,EAAE,uBAAuB,CAAC;IAChC,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,iBAAS,gBAAgB,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM,CAmC5D;AAED,OAAO,EACL,gBAAgB,GACjB,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import fs from "node:fs/promises";
|
|
2
|
+
import { injectSourceAnnotation } from "../../src/plugins/source-annotations.js";
|
|
3
|
+
import { transformLocalTranslators } from "./transform.js";
|
|
4
|
+
import { isCodeFile, isInsideDirectory, resolveCodeLoader, } from "./shared.js";
|
|
5
|
+
function createI18nPlugin(options) {
|
|
6
|
+
return {
|
|
7
|
+
name: "package-i18n",
|
|
8
|
+
setup(build) {
|
|
9
|
+
build.onLoad({ filter: /\.(?:[cm]?[jt]sx?)$/, namespace: "file" }, async (args) => {
|
|
10
|
+
if (!isCodeFile(args.path) || !isInsideDirectory(options.rootDir, args.path))
|
|
11
|
+
return undefined;
|
|
12
|
+
const source = await fs.readFile(args.path, "utf8");
|
|
13
|
+
const transformed = await transformLocalTranslators({
|
|
14
|
+
callerPath: args.path,
|
|
15
|
+
i18n: options.i18n,
|
|
16
|
+
rootDir: options.rootDir,
|
|
17
|
+
source,
|
|
18
|
+
});
|
|
19
|
+
if (!transformed)
|
|
20
|
+
return undefined;
|
|
21
|
+
options.logger.info("i18n", `local-translator :: ${args.path}`);
|
|
22
|
+
const contents = options.annotateSources
|
|
23
|
+
? injectSourceAnnotation({
|
|
24
|
+
contents: transformed.contents,
|
|
25
|
+
filePath: args.path,
|
|
26
|
+
kind: "code",
|
|
27
|
+
rootDir: options.rootDir,
|
|
28
|
+
})
|
|
29
|
+
: transformed.contents;
|
|
30
|
+
return {
|
|
31
|
+
contents,
|
|
32
|
+
loader: resolveCodeLoader(args.path),
|
|
33
|
+
watchDirs: [transformed.folder.folderPath],
|
|
34
|
+
watchFiles: [args.path, ...transformed.folder.modules.map((item) => item.filePath)],
|
|
35
|
+
};
|
|
36
|
+
});
|
|
37
|
+
},
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
export { createI18nPlugin, };
|
|
41
|
+
//# sourceMappingURL=plugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../../../src/plugins/i18n/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAIlC,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EACL,UAAU,EACV,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,aAAa,CAAC;AASrB,SAAS,gBAAgB,CAAC,OAA0B;IAClD,OAAO;QACL,IAAI,EAAE,cAAc;QACpB,KAAK,CAAC,KAAK;YACT,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,qBAAqB,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;gBAChF,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC;oBAAE,OAAO,SAAS,CAAC;gBAE/F,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;gBACpD,MAAM,WAAW,GAAG,MAAM,yBAAyB,CAAC;oBAClD,UAAU,EAAE,IAAI,CAAC,IAAI;oBACrB,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,OAAO,EAAE,OAAO,CAAC,OAAO;oBACxB,MAAM;iBACP,CAAC,CAAC;gBACH,IAAI,CAAC,WAAW;oBAAE,OAAO,SAAS,CAAC;gBAEnC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,uBAAuB,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;gBAChE,MAAM,QAAQ,GAAG,OAAO,CAAC,eAAe;oBACtC,CAAC,CAAC,sBAAsB,CAAC;wBACvB,QAAQ,EAAE,WAAW,CAAC,QAAQ;wBAC9B,QAAQ,EAAE,IAAI,CAAC,IAAI;wBACnB,IAAI,EAAE,MAAM;wBACZ,OAAO,EAAE,OAAO,CAAC,OAAO;qBACzB,CAAC;oBACF,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC;gBAEzB,OAAO;oBACL,QAAQ;oBACR,MAAM,EAAE,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC;oBACpC,SAAS,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC;oBAC1C,UAAU,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;iBACpF,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC;AAED,OAAO,EACL,gBAAgB,GACjB,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { Loader } from "esbuild";
|
|
2
|
+
declare const I18N_PACKAGE_NAME: string;
|
|
3
|
+
declare function normalizeLanguage(value: unknown): string;
|
|
4
|
+
declare function toPosixPath(value: string): string;
|
|
5
|
+
declare function toRelativeImport(value: string): string;
|
|
6
|
+
declare function toRootRelative(rootDir: string, filePath: string): string;
|
|
7
|
+
declare function isInsideDirectory(rootDir: string, filePath: string): boolean;
|
|
8
|
+
declare function escapeRegExp(value: string): string;
|
|
9
|
+
declare function resolveCodeLoader(filePath: string): Loader;
|
|
10
|
+
declare function isCodeFile(filePath: string): boolean;
|
|
11
|
+
declare function sanitizeBindingSegment(value: string): string;
|
|
12
|
+
export { escapeRegExp, I18N_PACKAGE_NAME, isCodeFile, isInsideDirectory, normalizeLanguage, resolveCodeLoader, sanitizeBindingSegment, toPosixPath, toRelativeImport, toRootRelative, };
|
|
13
|
+
//# sourceMappingURL=shared.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../../src/plugins/i18n/shared.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAGtC,QAAA,MAAM,iBAAiB,QAAmC,CAAC;AAE3D,iBAAS,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAEjD;AAED,iBAAS,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE1C;AAED,iBAAS,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAG/C;AAED,iBAAS,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEjE;AAED,iBAAS,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAGrE;AAED,iBAAS,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE3C;AAED,iBAAS,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAMnD;AAED,iBAAS,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAE7C;AAED,iBAAS,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAGrD;AAMD,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,UAAU,EACV,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,sBAAsB,EACtB,WAAW,EACX,gBAAgB,EAChB,cAAc,GACf,CAAC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import path from "node:path";
|
|
2
|
+
const ORGANIZATION_CODES = [116, 114, 101, 98, 105, 114, 101, 100];
|
|
3
|
+
const I18N_PACKAGE_NAME = `@${packageOrganization()}/i18n`;
|
|
4
|
+
function normalizeLanguage(value) {
|
|
5
|
+
return typeof value === "string" ? value.trim().toLowerCase().replace(/_/gu, "-") : "";
|
|
6
|
+
}
|
|
7
|
+
function toPosixPath(value) {
|
|
8
|
+
return value.replace(/\\/g, "/");
|
|
9
|
+
}
|
|
10
|
+
function toRelativeImport(value) {
|
|
11
|
+
const normalized = toPosixPath(value);
|
|
12
|
+
return normalized.startsWith(".") ? normalized : `./${normalized}`;
|
|
13
|
+
}
|
|
14
|
+
function toRootRelative(rootDir, filePath) {
|
|
15
|
+
return toPosixPath(path.relative(rootDir, filePath));
|
|
16
|
+
}
|
|
17
|
+
function isInsideDirectory(rootDir, filePath) {
|
|
18
|
+
const relative = path.relative(rootDir, filePath);
|
|
19
|
+
return Boolean(relative) && !relative.startsWith("..") && !path.isAbsolute(relative);
|
|
20
|
+
}
|
|
21
|
+
function escapeRegExp(value) {
|
|
22
|
+
return value.replace(/[.*+?^${}()|[\]\\]/gu, "\\$&");
|
|
23
|
+
}
|
|
24
|
+
function resolveCodeLoader(filePath) {
|
|
25
|
+
const ext = path.extname(filePath).toLowerCase();
|
|
26
|
+
if (ext === ".tsx")
|
|
27
|
+
return "tsx";
|
|
28
|
+
if (ext === ".jsx")
|
|
29
|
+
return "jsx";
|
|
30
|
+
if (ext === ".ts" || ext === ".mts" || ext === ".cts")
|
|
31
|
+
return "ts";
|
|
32
|
+
return "js";
|
|
33
|
+
}
|
|
34
|
+
function isCodeFile(filePath) {
|
|
35
|
+
return /\.(?:[cm]?[jt]sx?)$/iu.test(filePath) && !/\.d\.[cm]?[jt]s$/iu.test(filePath);
|
|
36
|
+
}
|
|
37
|
+
function sanitizeBindingSegment(value) {
|
|
38
|
+
const normalized = value.replace(/[^A-Za-z0-9_$]/gu, "_");
|
|
39
|
+
return /^[A-Za-z_$]/u.test(normalized) ? normalized : `_${normalized}`;
|
|
40
|
+
}
|
|
41
|
+
function packageOrganization() {
|
|
42
|
+
return ORGANIZATION_CODES.map((code) => String.fromCharCode(code)).join("");
|
|
43
|
+
}
|
|
44
|
+
export { escapeRegExp, I18N_PACKAGE_NAME, isCodeFile, isInsideDirectory, normalizeLanguage, resolveCodeLoader, sanitizeBindingSegment, toPosixPath, toRelativeImport, toRootRelative, };
|
|
45
|
+
//# sourceMappingURL=shared.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../../src/plugins/i18n/shared.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { NormalizedBundlerI18nOptions } from "../../src/types.d.ts";
|
|
2
|
+
import type { ResolvedI18nFolder } from "./validate.js";
|
|
3
|
+
type I18nTransformResult = {
|
|
4
|
+
contents: string;
|
|
5
|
+
folder: ResolvedI18nFolder;
|
|
6
|
+
};
|
|
7
|
+
declare function transformLocalTranslators(args: {
|
|
8
|
+
callerPath: string;
|
|
9
|
+
i18n: NormalizedBundlerI18nOptions;
|
|
10
|
+
rootDir: string;
|
|
11
|
+
source: string;
|
|
12
|
+
}): Promise<I18nTransformResult | undefined>;
|
|
13
|
+
declare function findLocalTranslatorBindings(source: string): string[];
|
|
14
|
+
export { findLocalTranslatorBindings, transformLocalTranslators, };
|
|
15
|
+
export type { I18nTransformResult, };
|
|
16
|
+
//# sourceMappingURL=transform.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../../../../src/plugins/i18n/transform.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,eAAe,CAAC;AAElE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAQxD,KAAK,mBAAmB,GAAG;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,kBAAkB,CAAC;CAC5B,CAAC;AAEF,iBAAe,yBAAyB,CAAC,IAAI,EAAE;IAC7C,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,4BAA4B,CAAC;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB,GAAG,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC,CAa3C;AAiDD,iBAAS,2BAA2B,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAa7D;AA0BD,OAAO,EACL,2BAA2B,EAC3B,yBAAyB,GAC1B,CAAC;AACF,YAAY,EACV,mBAAmB,GACpB,CAAC"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import path from "node:path";
|
|
2
|
+
import { resolveI18nFolder } from "./validate.js";
|
|
3
|
+
import { escapeRegExp, I18N_PACKAGE_NAME, sanitizeBindingSegment, toRelativeImport, } from "./shared.js";
|
|
4
|
+
async function transformLocalTranslators(args) {
|
|
5
|
+
const localNames = findLocalTranslatorBindings(args.source);
|
|
6
|
+
if (localNames.length === 0 || !hasLocalTranslatorCall(args.source, localNames))
|
|
7
|
+
return undefined;
|
|
8
|
+
const folder = await resolveI18nFolder(args);
|
|
9
|
+
const transformed = buildTransformedSource({
|
|
10
|
+
callerPath: args.callerPath,
|
|
11
|
+
folder,
|
|
12
|
+
localNames,
|
|
13
|
+
source: args.source,
|
|
14
|
+
});
|
|
15
|
+
return { contents: transformed, folder };
|
|
16
|
+
}
|
|
17
|
+
function buildTransformedSource(args) {
|
|
18
|
+
const translatorBinding = uniqueBinding("__package_i18n_createTranslator", args.source);
|
|
19
|
+
const moduleBindings = args.folder.modules.map((item) => ({
|
|
20
|
+
...item,
|
|
21
|
+
binding: uniqueBinding(`__package_i18n_${sanitizeBindingSegment(item.language)}`, args.source),
|
|
22
|
+
}));
|
|
23
|
+
const imports = buildStaticImports(args.callerPath, translatorBinding, moduleBindings);
|
|
24
|
+
const bundleExpression = `{ ${moduleBindings.map((item) => `${JSON.stringify(item.language)}: ${item.binding}`).join(", ")} }`;
|
|
25
|
+
const contents = replaceLocalTranslatorCalls(args.source, args.localNames, translatorBinding, bundleExpression);
|
|
26
|
+
return `${imports}\n${contents}`;
|
|
27
|
+
}
|
|
28
|
+
function buildStaticImports(callerPath, translatorBinding, modules) {
|
|
29
|
+
const callerDir = path.dirname(callerPath);
|
|
30
|
+
const lines = [
|
|
31
|
+
`import { createTranslator as ${translatorBinding} } from ${JSON.stringify(I18N_PACKAGE_NAME)};`,
|
|
32
|
+
];
|
|
33
|
+
for (const item of modules) {
|
|
34
|
+
const specifier = toRelativeImport(path.relative(callerDir, item.filePath));
|
|
35
|
+
lines.push(`import ${item.binding} from ${JSON.stringify(specifier)};`);
|
|
36
|
+
}
|
|
37
|
+
return lines.join("\n");
|
|
38
|
+
}
|
|
39
|
+
function replaceLocalTranslatorCalls(source, localNames, translatorBinding, bundleExpression) {
|
|
40
|
+
let transformed = source;
|
|
41
|
+
for (const localName of localNames) {
|
|
42
|
+
const pattern = localTranslatorCallPattern(localName);
|
|
43
|
+
transformed = transformed.replace(pattern, (_match, prefix) => `${prefix}${translatorBinding}(${bundleExpression},`);
|
|
44
|
+
}
|
|
45
|
+
return transformed;
|
|
46
|
+
}
|
|
47
|
+
function findLocalTranslatorBindings(source) {
|
|
48
|
+
const names = new Set();
|
|
49
|
+
const pattern = new RegExp(`import\\s*\\{([^}]+)\\}\\s*from\\s*["']${escapeRegExp(I18N_PACKAGE_NAME)}["']`, "gu");
|
|
50
|
+
let match;
|
|
51
|
+
while ((match = pattern.exec(source))) {
|
|
52
|
+
for (const specifier of match[1].split(",")) {
|
|
53
|
+
const localName = parseLocalTranslatorSpecifier(specifier);
|
|
54
|
+
if (localName)
|
|
55
|
+
names.add(localName);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
return Array.from(names);
|
|
59
|
+
}
|
|
60
|
+
function parseLocalTranslatorSpecifier(specifier) {
|
|
61
|
+
const parts = specifier.trim().split(/\s+as\s+/u).map((part) => part.trim()).filter(Boolean);
|
|
62
|
+
if (parts[0] !== "createLocalTranslator")
|
|
63
|
+
return "";
|
|
64
|
+
return parts[1] || parts[0];
|
|
65
|
+
}
|
|
66
|
+
function hasLocalTranslatorCall(source, localNames) {
|
|
67
|
+
return localNames.some((localName) => localTranslatorCallPattern(localName).test(source));
|
|
68
|
+
}
|
|
69
|
+
function localTranslatorCallPattern(localName) {
|
|
70
|
+
return new RegExp(`(^|[^A-Za-z0-9_$.])${escapeRegExp(localName)}\\s*\\(\\s*import\\.meta\\.url\\s*,`, "gu");
|
|
71
|
+
}
|
|
72
|
+
function uniqueBinding(base, source) {
|
|
73
|
+
let candidate = base;
|
|
74
|
+
let index = 2;
|
|
75
|
+
while (new RegExp(`\\b${escapeRegExp(candidate)}\\b`, "u").test(source)) {
|
|
76
|
+
candidate = `${base}_${index}`;
|
|
77
|
+
index += 1;
|
|
78
|
+
}
|
|
79
|
+
return candidate;
|
|
80
|
+
}
|
|
81
|
+
export { findLocalTranslatorBindings, transformLocalTranslators, };
|
|
82
|
+
//# sourceMappingURL=transform.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transform.js","sourceRoot":"","sources":["../../../../src/plugins/i18n/transform.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { NormalizedBundlerI18nOptions } from "../../src/types.d.ts";
|
|
2
|
+
type ResolvedI18nLanguageModule = {
|
|
3
|
+
filePath: string;
|
|
4
|
+
keys: string[];
|
|
5
|
+
language: string;
|
|
6
|
+
rootRel: string;
|
|
7
|
+
};
|
|
8
|
+
type ResolvedI18nFolder = {
|
|
9
|
+
folderPath: string;
|
|
10
|
+
modules: ResolvedI18nLanguageModule[];
|
|
11
|
+
};
|
|
12
|
+
declare function resolveI18nFolder(args: {
|
|
13
|
+
callerPath: string;
|
|
14
|
+
i18n: NormalizedBundlerI18nOptions;
|
|
15
|
+
rootDir: string;
|
|
16
|
+
}): Promise<ResolvedI18nFolder>;
|
|
17
|
+
export { resolveI18nFolder, };
|
|
18
|
+
export type { ResolvedI18nFolder, ResolvedI18nLanguageModule, };
|
|
19
|
+
//# sourceMappingURL=validate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../../../src/plugins/i18n/validate.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,eAAe,CAAC;AAIlE,KAAK,0BAA0B,GAAG;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,KAAK,kBAAkB,GAAG;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,0BAA0B,EAAE,CAAC;CACvC,CAAC;AAEF,iBAAe,iBAAiB,CAAC,IAAI,EAAE;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,4BAA4B,CAAC;IACnC,OAAO,EAAE,MAAM,CAAC;CACjB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAa9B;AA6HD,OAAO,EACL,iBAAiB,GAClB,CAAC;AACF,YAAY,EACV,kBAAkB,EAClB,0BAA0B,GAC3B,CAAC"}
|