@let-value/translate-extract 1.0.12 → 1.0.14

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.
@@ -1,4 +1,4 @@
1
- const require_run = require('../run-XkKxn8kJ.cjs');
1
+ const require_run = require('../run-DpRfSHSy.cjs');
2
2
  let node_path = require("node:path");
3
3
  node_path = require_run.__toESM(node_path);
4
4
  let node_fs_promises = require("node:fs/promises");
@@ -19,43 +19,52 @@ let plural_forms = require("plural-forms");
19
19
  plural_forms = require_run.__toESM(plural_forms);
20
20
 
21
21
  //#region src/plugins/cleanup/cleanup.ts
22
+ const namespace$2 = "cleanup";
22
23
  function cleanup() {
23
24
  return {
24
25
  name: "cleanup",
25
26
  setup(build) {
26
27
  build.context.logger?.debug("cleanup plugin initialized");
27
- const processedDirs = /* @__PURE__ */ new Set();
28
+ const processed = /* @__PURE__ */ new Set();
28
29
  const generated = /* @__PURE__ */ new Set();
30
+ const dirs = /* @__PURE__ */ new Set();
31
+ let dispatched = false;
29
32
  build.onResolve({
30
- namespace: "cleanup",
33
+ namespace: namespace$2,
31
34
  filter: /.*/
32
- }, (args) => {
33
- generated.add(args.path);
34
- return args;
35
+ }, ({ path: path$1 }) => {
36
+ generated.add(path$1);
37
+ dirs.add((0, node_path.dirname)(path$1));
38
+ Promise.all([build.defer("source"), build.defer("translate")]).then(() => {
39
+ if (dispatched) return;
40
+ dispatched = true;
41
+ for (const path$2 of dirs.values()) build.process({
42
+ entrypoint: path$2,
43
+ path: path$2,
44
+ namespace: namespace$2,
45
+ data: void 0
46
+ });
47
+ });
35
48
  });
36
49
  build.onProcess({
37
- namespace: "cleanup",
50
+ namespace: namespace$2,
38
51
  filter: /.*/
39
52
  }, async ({ path: path$1 }) => {
40
- await build.defer("translate");
41
- const dir = (0, node_path.dirname)(path$1);
42
- if (processedDirs.has(dir)) return void 0;
43
- processedDirs.add(dir);
44
- const files = await node_fs_promises.default.readdir(dir).catch(() => []);
53
+ if (processed.has(path$1)) return;
54
+ processed.add(path$1);
55
+ const files = await node_fs_promises.default.readdir(path$1).catch(() => []);
45
56
  for (const f of files.filter((p) => p.endsWith(".po"))) {
46
- const full = (0, node_path.join)(dir, f);
57
+ const full = (0, node_path.join)(path$1, f);
47
58
  if (generated.has(full)) continue;
48
59
  const contents = await node_fs_promises.default.readFile(full).catch(() => void 0);
49
60
  if (!contents) continue;
50
61
  const parsed = gettext_parser.po.parse(contents);
51
- const hasTranslations = Object.entries(parsed.translations || {}).some(([ctx, msgs]) => Object.keys(msgs).some((id) => !(ctx === "" && id === "")));
52
- if (hasTranslations) build.context.logger?.warn({ path: full }, "stray translation file");
62
+ if (Object.entries(parsed.translations || {}).some(([ctx, msgs]) => Object.keys(msgs).some((id) => !(ctx === "" && id === "")))) build.context.logger?.warn({ path: full }, "stray translation file");
53
63
  else {
54
64
  await node_fs_promises.default.unlink(full);
55
65
  build.context.logger?.info({ path: full }, "removed empty translation file");
56
66
  }
57
67
  }
58
- return void 0;
59
68
  });
60
69
  }
61
70
  };
@@ -65,8 +74,7 @@ function cleanup() {
65
74
  //#region src/plugins/core/queries/comment.ts
66
75
  function getReference(node, { path: path$1 }) {
67
76
  const line = node.startPosition.row + 1;
68
- const rel = (0, node_path.relative)(process.cwd(), path$1).replace(/\\+/g, "/");
69
- return `${rel}:${line}`;
77
+ return `${(0, node_path.relative)(process.cwd(), path$1).replace(/\\+/g, "/")}:${line}`;
70
78
  }
71
79
  function getComment(node) {
72
80
  const text = node.text;
@@ -118,8 +126,7 @@ const importQuery = {
118
126
  ]
119
127
  `,
120
128
  extract(match) {
121
- const node = match.captures.find((c) => c.name === "import")?.node;
122
- return node?.text;
129
+ return (match.captures.find((c) => c.name === "import")?.node)?.text;
123
130
  }
124
131
  };
125
132
 
@@ -161,7 +168,7 @@ const notInPlural = (query) => ({
161
168
  "ngettext",
162
169
  "pgettext",
163
170
  "npgettext"
164
- ].includes(fn.childForFieldName("property")?.text ?? "")) return void 0;
171
+ ].includes(fn.childForFieldName("property")?.text ?? "")) return;
165
172
  }
166
173
  }
167
174
  return result;
@@ -189,7 +196,7 @@ const messageArg = `[
189
196
  const messageArgs = `[ (arguments ${messageArg}) (template_string) @tpl ]`;
190
197
  const extractMessage = (name) => (match) => {
191
198
  const node = match.captures.find((c) => c.name === "call")?.node;
192
- if (!node) return void 0;
199
+ if (!node) return;
193
200
  const msgid = match.captures.find((c) => c.name === "msgid")?.node.text;
194
201
  if (msgid) return {
195
202
  node,
@@ -220,13 +227,12 @@ const extractMessage = (name) => (match) => {
220
227
  const id = match.captures.find((c) => c.name === "id")?.node.text;
221
228
  const message = match.captures.find((c) => c.name === "message")?.node.text;
222
229
  const msgId = id ?? message;
223
- if (!msgId) return void 0;
224
- const msgstr = message ?? id ?? "";
230
+ if (!msgId) return;
225
231
  return {
226
232
  node,
227
233
  translation: {
228
234
  id: msgId,
229
- message: [msgstr]
235
+ message: [message ?? id ?? ""]
230
236
  }
231
237
  };
232
238
  };
@@ -244,8 +250,8 @@ const messageInvalidQuery = notInPlural({
244
250
  extract(match) {
245
251
  const call = match.captures.find((c) => c.name === "call")?.node;
246
252
  const node = match.captures.find((c) => c.name === "arg")?.node;
247
- if (!call || !node) return void 0;
248
- if (allowed$1.has(node.type)) return void 0;
253
+ if (!call || !node) return;
254
+ if (allowed$1.has(node.type)) return;
249
255
  return {
250
256
  node,
251
257
  error: "message() argument must be a string literal, object literal, or template literal"
@@ -258,7 +264,7 @@ const messageInvalidQuery = notInPlural({
258
264
  const extractPluralForms = (name) => (match) => {
259
265
  const call = match.captures.find((c) => c.name === "call")?.node;
260
266
  const n = match.captures.find((c) => c.name === "n")?.node;
261
- if (!call || !n || n.nextNamedSibling) return void 0;
267
+ if (!call || !n || n.nextNamedSibling) return;
262
268
  const msgctxt = match.captures.find((c) => c.name === "msgctxt")?.node?.text;
263
269
  const msgNodes = match.captures.filter((c) => c.name === "msg").map((c) => c.node);
264
270
  const ids = [];
@@ -288,7 +294,7 @@ const extractPluralForms = (name) => (match) => {
288
294
  strs.push(result.translation.message[0] ?? "");
289
295
  }
290
296
  }
291
- if (ids.length === 0) return void 0;
297
+ if (ids.length === 0) return;
292
298
  const translation = {
293
299
  id: ids[0],
294
300
  plural: ids[1],
@@ -349,12 +355,12 @@ const contextInvalidQuery = withComment({
349
355
  pattern: ctxCall,
350
356
  extract(match) {
351
357
  const call = match.captures.find((c) => c.name === "ctx")?.node;
352
- if (!call) return void 0;
358
+ if (!call) return;
353
359
  const parent = call.parent;
354
360
  if (parent && parent.type === "member_expression" && parent.childForFieldName("object")?.id === call.id) {
355
361
  const property = parent.childForFieldName("property")?.text;
356
362
  const grandparent = parent.parent;
357
- if (grandparent && grandparent.type === "call_expression" && grandparent.childForFieldName("function")?.id === parent.id && (property === "message" || property === "plural")) return void 0;
363
+ if (grandparent && grandparent.type === "call_expression" && grandparent.childForFieldName("function")?.id === parent.id && (property === "message" || property === "plural")) return;
358
364
  }
359
365
  return {
360
366
  node: call,
@@ -381,8 +387,8 @@ const gettextInvalidQuery = {
381
387
  extract(match) {
382
388
  const call = match.captures.find((c) => c.name === "call")?.node;
383
389
  const node = match.captures.find((c) => c.name === "arg")?.node;
384
- if (!call || !node) return void 0;
385
- if (allowed.has(node.type)) return void 0;
390
+ if (!call || !node) return;
391
+ if (allowed.has(node.type)) return;
386
392
  return {
387
393
  node,
388
394
  error: "gettext() argument must be a string literal, object literal, or template literal"
@@ -550,7 +556,7 @@ function findTsconfig(dir) {
550
556
  const config = node_path.default.join(current, "tsconfig.json");
551
557
  if (node_fs.default.existsSync(config)) return config;
552
558
  const parent = node_path.default.dirname(current);
553
- if (parent === current) return void 0;
559
+ if (parent === current) return;
554
560
  current = parent;
555
561
  }
556
562
  }
@@ -643,7 +649,6 @@ function core() {
643
649
  namespace: "translate",
644
650
  data: translations
645
651
  });
646
- return void 0;
647
652
  });
648
653
  }
649
654
  };
@@ -789,7 +794,7 @@ function po() {
789
794
  filter: /.*/,
790
795
  namespace
791
796
  }, async ({ entrypoint, path: path$1, data }) => {
792
- if (!data || !Array.isArray(data)) return void 0;
797
+ if (!data || !Array.isArray(data)) return;
793
798
  for (const locale of build.context.config.locales) {
794
799
  const destination = build.context.config.destination({
795
800
  entrypoint,
@@ -811,7 +816,6 @@ function po() {
811
816
  namespace
812
817
  });
813
818
  });
814
- return void 0;
815
819
  });
816
820
  build.onLoad({
817
821
  filter: /.*\.po$/,
@@ -832,7 +836,7 @@ function po() {
832
836
  const collected = collections.get(path$1);
833
837
  if (!collected) {
834
838
  build.context.logger?.warn({ path: path$1 }, "no translations collected for this path");
835
- return void 0;
839
+ return;
836
840
  }
837
841
  const { locale, translations } = collected;
838
842
  const record = collect(translations, locale);
@@ -889,8 +893,7 @@ function resolvePlugins(user) {
889
893
  function defineConfig(config) {
890
894
  const defaultLocale = config.defaultLocale ?? "en";
891
895
  const plugins = resolvePlugins(config.plugins);
892
- const raw = Array.isArray(config.entrypoints) ? config.entrypoints : [config.entrypoints];
893
- const entrypoints = raw.map(resolveEntrypoint);
896
+ const entrypoints = (Array.isArray(config.entrypoints) ? config.entrypoints : [config.entrypoints]).map(resolveEntrypoint);
894
897
  return {
895
898
  plugins,
896
899
  entrypoints,
@@ -945,8 +948,7 @@ function buildTemplate(node) {
945
948
  raw: false
946
949
  });
947
950
  else if (expr.type === "template_string") {
948
- const hasSubstitutions = expr.children.some((c) => c.type === "template_substitution");
949
- if (hasSubstitutions) return {
951
+ if (expr.children.some((c) => c.type === "template_substitution")) return {
950
952
  text: "",
951
953
  error: "JSX expressions with template substitutions are not supported"
952
954
  };
@@ -968,8 +970,7 @@ function buildTemplate(node) {
968
970
  raw: false
969
971
  });
970
972
  segmentStart = child.endIndex;
971
- } else if (child.type === "jsx_text" || child.type === "html_character_reference" || child.isError) continue;
972
- else return {
973
+ } else if (child.type === "jsx_text" || child.type === "html_character_reference" || child.isError) {} else return {
973
974
  text: "",
974
975
  error: "Unsupported JSX child"
975
976
  };
@@ -1017,13 +1018,11 @@ function buildAttrValue(node) {
1017
1018
  if (expr.type === "identifier") return { text: `\${${expr.text}}` };
1018
1019
  else if (expr.type === "string") return { text: expr.text.slice(1, -1) };
1019
1020
  else if (expr.type === "template_string") {
1020
- const hasSubstitutions = expr.children.some((c) => c.type === "template_substitution");
1021
- if (hasSubstitutions) return {
1021
+ if (expr.children.some((c) => c.type === "template_substitution")) return {
1022
1022
  text: "",
1023
1023
  error: "JSX expressions with template substitutions are not supported"
1024
1024
  };
1025
- const content = expr.text.slice(1, -1);
1026
- return { text: content };
1025
+ return { text: expr.text.slice(1, -1) };
1027
1026
  } else return {
1028
1027
  text: "",
1029
1028
  error: "JSX expressions must be simple identifiers, strings, or template literals"
@@ -1213,22 +1212,22 @@ function react() {
1213
1212
  build.onResolve({
1214
1213
  filter: /.*/,
1215
1214
  namespace: "source"
1216
- }, ({ entrypoint, path: path$1, namespace: namespace$2 }) => {
1215
+ }, ({ entrypoint, path: path$1, namespace: namespace$3 }) => {
1217
1216
  return {
1218
1217
  entrypoint,
1219
- namespace: namespace$2,
1218
+ namespace: namespace$3,
1220
1219
  path: (0, node_path.resolve)(path$1)
1221
1220
  };
1222
1221
  });
1223
1222
  build.onLoad({
1224
1223
  filter,
1225
1224
  namespace: "source"
1226
- }, async ({ entrypoint, path: path$1, namespace: namespace$2 }) => {
1225
+ }, async ({ entrypoint, path: path$1, namespace: namespace$3 }) => {
1227
1226
  const data = await (0, node_fs_promises.readFile)(path$1, "utf8");
1228
1227
  return {
1229
1228
  entrypoint,
1230
1229
  path: path$1,
1231
- namespace: namespace$2,
1230
+ namespace: namespace$3,
1232
1231
  data
1233
1232
  };
1234
1233
  });
@@ -1244,7 +1243,6 @@ function react() {
1244
1243
  namespace: "translate",
1245
1244
  data: translations
1246
1245
  });
1247
- return void 0;
1248
1246
  });
1249
1247
  }
1250
1248
  };
@@ -1,7 +1,10 @@
1
- import { Locale } from "@let-value/translate";
2
- import { LevelWithSilent, Logger } from "pino";
1
+ import { PluralFormsLocale } from "@let-value/translate";
2
+ import { LogLevelNames, Logger } from "loglevel";
3
3
  import { GetTextTranslationRecord } from "gettext-parser";
4
4
 
5
+ //#region src/logger.d.ts
6
+ type LogLevel = LogLevelNames;
7
+ //#endregion
5
8
  //#region src/plugin.d.ts
6
9
  type MaybePromise<T> = T | Promise<T>;
7
10
  interface Context {
@@ -133,15 +136,15 @@ interface UserConfig {
133
136
  /**
134
137
  * Default locale to use as the base for extraction
135
138
  * @default "en"
136
- * @see {@link Locale} for available locales
139
+ * @see {@link PluralFormsLocale} for available locales
137
140
  */
138
- defaultLocale?: Locale;
141
+ defaultLocale?: PluralFormsLocale;
139
142
  /**
140
143
  * Array of locales to extract translations for
141
144
  * @default [defaultLocale]
142
- * @see {@link Locale} for available locales
145
+ * @see {@link PluralFormsLocale} for available locales
143
146
  */
144
- locales?: Locale[];
147
+ locales?: PluralFormsLocale[];
145
148
  /**
146
149
  * Array of plugins to use or a function to override the default plugins
147
150
  * @default DefaultPlugins
@@ -186,7 +189,7 @@ interface UserConfig {
186
189
  * Log level for the extraction process
187
190
  * @default "info"
188
191
  */
189
- logLevel?: LevelWithSilent;
192
+ logLevel?: LogLevel;
190
193
  }
191
194
  interface ResolvedEntrypoint extends Omit<EntrypointConfig, "exclude"> {
192
195
  exclude?: Exclude[];
@@ -199,7 +202,7 @@ interface ResolvedConfig {
199
202
  destination: DestinationFn;
200
203
  obsolete: ObsoleteStrategy;
201
204
  walk: boolean;
202
- logLevel: LevelWithSilent;
205
+ logLevel: LogLevel;
203
206
  exclude: Exclude[];
204
207
  }
205
208
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.cts","names":[],"sources":["../../../../src/plugin.ts","../../../../src/plugins/cleanup/cleanup.ts","../../../../src/plugins/core/queries/types.ts","../../../../src/plugins/core/core.ts","../../../../src/plugins/po/po.ts","../../../../src/configuration.ts","../../../../src/plugins/react/react.ts","../../../../src/run.ts"],"sourcesContent":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.cts","names":[],"sources":["../../src/logger.ts","../../src/plugin.ts","../../src/plugins/cleanup/cleanup.ts","../../src/plugins/core/queries/types.ts","../../src/plugins/core/core.ts","../../src/plugins/po/po.ts","../../src/configuration.ts","../../src/plugins/react/react.ts","../../src/run.ts"],"sourcesContent":[],"mappings":"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"}
@@ -1,8 +1,11 @@
1
- import { LevelWithSilent, Logger } from "pino";
1
+ import log, { LogLevelNames, Logger } from "loglevel";
2
2
  import { GetTextTranslationRecord } from "gettext-parser";
3
3
  import Parser from "tree-sitter";
4
- import { Locale } from "@let-value/translate";
4
+ import { PluralFormsLocale } from "@let-value/translate";
5
5
 
6
+ //#region src/logger.d.ts
7
+ type LogLevel = LogLevelNames;
8
+ //#endregion
6
9
  //#region src/plugin.d.ts
7
10
  type MaybePromise<T> = T | Promise<T>;
8
11
  interface Context {
@@ -134,15 +137,15 @@ interface UserConfig {
134
137
  /**
135
138
  * Default locale to use as the base for extraction
136
139
  * @default "en"
137
- * @see {@link Locale} for available locales
140
+ * @see {@link PluralFormsLocale} for available locales
138
141
  */
139
- defaultLocale?: Locale;
142
+ defaultLocale?: PluralFormsLocale;
140
143
  /**
141
144
  * Array of locales to extract translations for
142
145
  * @default [defaultLocale]
143
- * @see {@link Locale} for available locales
146
+ * @see {@link PluralFormsLocale} for available locales
144
147
  */
145
- locales?: Locale[];
148
+ locales?: PluralFormsLocale[];
146
149
  /**
147
150
  * Array of plugins to use or a function to override the default plugins
148
151
  * @default DefaultPlugins
@@ -187,7 +190,7 @@ interface UserConfig {
187
190
  * Log level for the extraction process
188
191
  * @default "info"
189
192
  */
190
- logLevel?: LevelWithSilent;
193
+ logLevel?: LogLevel;
191
194
  }
192
195
  interface ResolvedEntrypoint extends Omit<EntrypointConfig, "exclude"> {
193
196
  exclude?: Exclude[];
@@ -200,7 +203,7 @@ interface ResolvedConfig {
200
203
  destination: DestinationFn;
201
204
  obsolete: ObsoleteStrategy;
202
205
  walk: boolean;
203
- logLevel: LevelWithSilent;
206
+ logLevel: LogLevel;
204
207
  exclude: Exclude[];
205
208
  }
206
209
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../../../../src/plugin.ts","../../../../src/plugins/cleanup/cleanup.ts","../../../../src/plugins/core/queries/types.ts","../../../../src/plugins/core/core.ts","../../../../src/plugins/po/po.ts","../../../../src/configuration.ts","../../../../src/plugins/react/react.ts","../../../../src/run.ts"],"sourcesContent":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../../src/logger.ts","../../src/plugin.ts","../../src/plugins/cleanup/cleanup.ts","../../src/plugins/core/queries/types.ts","../../src/plugins/core/core.ts","../../src/plugins/po/po.ts","../../src/configuration.ts","../../src/plugins/react/react.ts","../../src/run.ts"],"sourcesContent":[],"mappings":"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"}