@lingo.dev/_spec 0.49.0 → 0.49.2

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.
@@ -3,8 +3,8 @@
3
3
  "type": "object",
4
4
  "properties": {
5
5
  "version": {
6
- "description": "The version number of the schema.",
7
6
  "default": 0,
7
+ "description": "The version number of the schema.",
8
8
  "anyOf": [
9
9
  {
10
10
  "type": "number"
@@ -18,15 +18,15 @@
18
18
  "type": "object",
19
19
  "properties": {
20
20
  "source": {
21
- "description": "Primary source locale code of your content (e.g. 'en', 'en-US', 'pt_BR', or 'pt-rBR'). Must be one of the supported locale codes – either a short ISO-639 language code or a full locale identifier using '-', '_' or Android '-r' notation.",
22
- "type": "string"
21
+ "type": "string",
22
+ "description": "Primary source locale code of your content (e.g. 'en', 'en-US', 'pt_BR', or 'pt-rBR'). Must be one of the supported locale codes – either a short ISO-639 language code or a full locale identifier using '-', '_' or Android '-r' notation."
23
23
  },
24
24
  "targets": {
25
- "description": "List of target locale codes to translate to.",
26
25
  "type": "array",
27
26
  "items": {
28
27
  "type": "string"
29
- }
28
+ },
29
+ "description": "List of target locale codes to translate to."
30
30
  },
31
31
  "extraSource": {
32
32
  "description": "Optional extra source locale code used as fallback during translation.",
@@ -85,8 +85,8 @@
85
85
  "type": "object",
86
86
  "properties": {
87
87
  "include": {
88
- "description": "Glob patterns or bucket items to include for this bucket.",
89
88
  "default": [],
89
+ "description": "Glob patterns or bucket items (supports ** for recursive matching) to include for this bucket.",
90
90
  "type": "array",
91
91
  "items": {
92
92
  "anyOf": [
@@ -94,12 +94,11 @@
94
94
  "type": "string"
95
95
  },
96
96
  {
97
- "description": "Bucket path item. Either a string path or an object specifying path and delimiter.",
98
97
  "type": "object",
99
98
  "properties": {
100
99
  "path": {
101
- "description": "Path pattern containing a [locale] placeholder.",
102
- "type": "string"
100
+ "type": "string",
101
+ "description": "Path pattern containing a [locale] placeholder."
103
102
  },
104
103
  "delimiter": {
105
104
  "description": "Delimiter that replaces the [locale] placeholder in the path (default: no delimiter).",
@@ -122,13 +121,14 @@
122
121
  "required": [
123
122
  "path"
124
123
  ],
125
- "additionalProperties": false
124
+ "additionalProperties": false,
125
+ "description": "Bucket path item. Either a string path or an object specifying path and delimiter."
126
126
  }
127
127
  ]
128
128
  }
129
129
  },
130
130
  "exclude": {
131
- "description": "Glob patterns or bucket items to exclude from this bucket.",
131
+ "description": "Glob patterns or bucket items (supports ** for recursive matching) to exclude from this bucket.",
132
132
  "type": "array",
133
133
  "items": {
134
134
  "anyOf": [
@@ -136,12 +136,11 @@
136
136
  "type": "string"
137
137
  },
138
138
  {
139
- "description": "Bucket path item. Either a string path or an object specifying path and delimiter.",
140
139
  "type": "object",
141
140
  "properties": {
142
141
  "path": {
143
- "description": "Path pattern containing a [locale] placeholder.",
144
- "type": "string"
142
+ "type": "string",
143
+ "description": "Path pattern containing a [locale] placeholder."
145
144
  },
146
145
  "delimiter": {
147
146
  "description": "Delimiter that replaces the [locale] placeholder in the path (default: no delimiter).",
@@ -164,7 +163,8 @@
164
163
  "required": [
165
164
  "path"
166
165
  ],
167
- "additionalProperties": false
166
+ "additionalProperties": false,
167
+ "description": "Bucket path item. Either a string path or an object specifying path and delimiter."
168
168
  }
169
169
  ]
170
170
  }
@@ -176,6 +176,10 @@
176
176
  "type": "string"
177
177
  }
178
178
  },
179
+ "keyColumn": {
180
+ "description": "CSV buckets only: name of the column to use as the unique row identifier. Defaults to the first column in the CSV header.",
181
+ "type": "string"
182
+ },
179
183
  "lockedKeys": {
180
184
  "description": "Keys that must remain unchanged and should never be overwritten by translations.",
181
185
  "type": "array",
@@ -223,11 +227,9 @@
223
227
  "type": "string"
224
228
  },
225
229
  "provider": {
226
- "description": "Configuration for the machine-translation provider.",
227
230
  "type": "object",
228
231
  "properties": {
229
232
  "id": {
230
- "description": "Identifier of the translation provider service.",
231
233
  "type": "string",
232
234
  "enum": [
233
235
  "openai",
@@ -236,15 +238,16 @@
236
238
  "ollama",
237
239
  "openrouter",
238
240
  "mistral"
239
- ]
241
+ ],
242
+ "description": "Identifier of the translation provider service."
240
243
  },
241
244
  "model": {
242
- "description": "Model name to use for translations.",
243
- "type": "string"
245
+ "type": "string",
246
+ "description": "Model name to use for translations."
244
247
  },
245
248
  "prompt": {
246
- "description": "Prompt template used when requesting translations.",
247
- "type": "string"
249
+ "type": "string",
250
+ "description": "Prompt template used when requesting translations."
248
251
  },
249
252
  "baseUrl": {
250
253
  "description": "Custom base URL for the provider API (optional).",
@@ -269,7 +272,8 @@
269
272
  "model",
270
273
  "prompt"
271
274
  ],
272
- "additionalProperties": false
275
+ "additionalProperties": false,
276
+ "description": "Configuration for the machine-translation provider."
273
277
  },
274
278
  "formatter": {
275
279
  "description": "Code formatter to use for all buckets. Defaults to 'prettier' if not specified and a prettier config is found.",
@@ -283,7 +287,6 @@
283
287
  "type": "string"
284
288
  },
285
289
  "dev": {
286
- "description": "Development-specific settings.",
287
290
  "type": "object",
288
291
  "properties": {
289
292
  "usePseudotranslator": {
@@ -291,7 +294,8 @@
291
294
  "type": "boolean"
292
295
  }
293
296
  },
294
- "additionalProperties": false
297
+ "additionalProperties": false,
298
+ "description": "Development-specific settings."
295
299
  },
296
300
  "engineId": {
297
301
  "type": "string"
package/build/index.cjs CHANGED
@@ -472,10 +472,10 @@ var configV1_1Definition = extendConfigDefinition(configV1Definition, {
472
472
  bucketTypeSchema,
473
473
  _zod2.default.object({
474
474
  include: _zod2.default.array(_zod2.default.string()).default([]).describe(
475
- "File paths or glob patterns to include for this bucket."
475
+ "File paths or glob patterns (including ** for recursive matching) to include for this bucket."
476
476
  ),
477
477
  exclude: _zod2.default.array(_zod2.default.string()).optional().describe(
478
- "File paths or glob patterns to exclude from this bucket."
478
+ "File paths or glob patterns (including ** for recursive matching) to exclude from this bucket."
479
479
  )
480
480
  })
481
481
  ).default({})
@@ -535,10 +535,17 @@ var bucketItemSchema = _zod2.default.object({
535
535
  "Bucket path item. Either a string path or an object specifying path and delimiter."
536
536
  );
537
537
  var bucketValueSchemaV1_3 = _zod2.default.object({
538
- include: _zod2.default.array(_zod2.default.union([_zod2.default.string(), bucketItemSchema])).default([]).describe("Glob patterns or bucket items to include for this bucket."),
539
- exclude: _zod2.default.array(_zod2.default.union([_zod2.default.string(), bucketItemSchema])).optional().describe("Glob patterns or bucket items to exclude from this bucket."),
538
+ include: _zod2.default.array(_zod2.default.union([_zod2.default.string(), bucketItemSchema])).default([]).describe(
539
+ "Glob patterns or bucket items (supports ** for recursive matching) to include for this bucket."
540
+ ),
541
+ exclude: _zod2.default.array(_zod2.default.union([_zod2.default.string(), bucketItemSchema])).optional().describe(
542
+ "Glob patterns or bucket items (supports ** for recursive matching) to exclude from this bucket."
543
+ ),
540
544
  injectLocale: _zod2.default.array(_zod2.default.string()).optional().describe(
541
545
  "Keys within files where the current locale should be injected or removed."
546
+ ),
547
+ keyColumn: _zod2.default.string().optional().describe(
548
+ "CSV buckets only: name of the column to use as the unique row identifier. Defaults to the first column in the CSV header."
542
549
  )
543
550
  }).describe("Configuration options for a translation bucket.");
544
551
  var configV1_3Definition = extendConfigDefinition(
package/build/index.d.cts CHANGED
@@ -320,6 +320,7 @@ declare const bucketValueSchemaV1_3: Z.ZodObject<{
320
320
  delimiter: Z.ZodOptional<Z.ZodUnion<readonly [Z.ZodLiteral<"-">, Z.ZodLiteral<"_">, Z.ZodLiteral<null>]>>;
321
321
  }, Z.core.$strip>]>>>;
322
322
  injectLocale: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
323
+ keyColumn: Z.ZodOptional<Z.ZodString>;
323
324
  }, Z.core.$strip>;
324
325
  declare const configV1_3Definition: ConfigDefinition<{
325
326
  version: Z.ZodDefault<Z.ZodUnion<readonly [Z.ZodNumber, Z.ZodString]>>;
@@ -373,6 +374,7 @@ declare const configV1_3Definition: ConfigDefinition<{
373
374
  delimiter: Z.ZodOptional<Z.ZodUnion<readonly [Z.ZodLiteral<"-">, Z.ZodLiteral<"_">, Z.ZodLiteral<null>]>>;
374
375
  }, Z.core.$strip>]>>>;
375
376
  injectLocale: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
377
+ keyColumn: Z.ZodOptional<Z.ZodString>;
376
378
  }, Z.core.$strip>>>;
377
379
  }, any>;
378
380
  declare const configV1_4Definition: ConfigDefinition<{
@@ -427,6 +429,7 @@ declare const configV1_4Definition: ConfigDefinition<{
427
429
  delimiter: Z.ZodOptional<Z.ZodUnion<readonly [Z.ZodLiteral<"-">, Z.ZodLiteral<"_">, Z.ZodLiteral<null>]>>;
428
430
  }, Z.core.$strip>]>>>;
429
431
  injectLocale: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
432
+ keyColumn: Z.ZodOptional<Z.ZodString>;
430
433
  }, Z.core.$strip>>>;
431
434
  $schema: Z.ZodDefault<Z.ZodString>;
432
435
  }, any>;
@@ -482,6 +485,7 @@ declare const configV1_5Definition: ConfigDefinition<{
482
485
  delimiter: Z.ZodOptional<Z.ZodUnion<readonly [Z.ZodLiteral<"-">, Z.ZodLiteral<"_">, Z.ZodLiteral<null>]>>;
483
486
  }, Z.core.$strip>]>>>;
484
487
  injectLocale: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
488
+ keyColumn: Z.ZodOptional<Z.ZodString>;
485
489
  }, Z.core.$strip>>>;
486
490
  $schema: Z.ZodDefault<Z.ZodString>;
487
491
  provider: Z.ZodOptional<Z.ZodObject<{
@@ -508,6 +512,7 @@ declare const bucketValueSchemaV1_6: Z.ZodObject<{
508
512
  delimiter: Z.ZodOptional<Z.ZodUnion<readonly [Z.ZodLiteral<"-">, Z.ZodLiteral<"_">, Z.ZodLiteral<null>]>>;
509
513
  }, Z.core.$strip>]>>>;
510
514
  injectLocale: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
515
+ keyColumn: Z.ZodOptional<Z.ZodString>;
511
516
  lockedKeys: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
512
517
  }, Z.core.$strip>;
513
518
  declare const configV1_6Definition: ConfigDefinition<{
@@ -576,6 +581,7 @@ declare const configV1_6Definition: ConfigDefinition<{
576
581
  delimiter: Z.ZodOptional<Z.ZodUnion<readonly [Z.ZodLiteral<"-">, Z.ZodLiteral<"_">, Z.ZodLiteral<null>]>>;
577
582
  }, Z.core.$strip>]>>>;
578
583
  injectLocale: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
584
+ keyColumn: Z.ZodOptional<Z.ZodString>;
579
585
  lockedKeys: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
580
586
  }, Z.core.$strip>>>;
581
587
  }, any>;
@@ -589,6 +595,7 @@ declare const bucketValueSchemaV1_7: Z.ZodObject<{
589
595
  delimiter: Z.ZodOptional<Z.ZodUnion<readonly [Z.ZodLiteral<"-">, Z.ZodLiteral<"_">, Z.ZodLiteral<null>]>>;
590
596
  }, Z.core.$strip>]>>>;
591
597
  injectLocale: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
598
+ keyColumn: Z.ZodOptional<Z.ZodString>;
592
599
  lockedKeys: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
593
600
  lockedPatterns: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
594
601
  }, Z.core.$strip>;
@@ -658,6 +665,7 @@ declare const configV1_7Definition: ConfigDefinition<{
658
665
  delimiter: Z.ZodOptional<Z.ZodUnion<readonly [Z.ZodLiteral<"-">, Z.ZodLiteral<"_">, Z.ZodLiteral<null>]>>;
659
666
  }, Z.core.$strip>]>>>;
660
667
  injectLocale: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
668
+ keyColumn: Z.ZodOptional<Z.ZodString>;
661
669
  lockedKeys: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
662
670
  lockedPatterns: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
663
671
  }, Z.core.$strip>>>;
@@ -672,6 +680,7 @@ declare const bucketValueSchemaV1_8: Z.ZodObject<{
672
680
  delimiter: Z.ZodOptional<Z.ZodUnion<readonly [Z.ZodLiteral<"-">, Z.ZodLiteral<"_">, Z.ZodLiteral<null>]>>;
673
681
  }, Z.core.$strip>]>>>;
674
682
  injectLocale: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
683
+ keyColumn: Z.ZodOptional<Z.ZodString>;
675
684
  lockedKeys: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
676
685
  lockedPatterns: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
677
686
  ignoredKeys: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
@@ -742,6 +751,7 @@ declare const configV1_8Definition: ConfigDefinition<{
742
751
  delimiter: Z.ZodOptional<Z.ZodUnion<readonly [Z.ZodLiteral<"-">, Z.ZodLiteral<"_">, Z.ZodLiteral<null>]>>;
743
752
  }, Z.core.$strip>]>>>;
744
753
  injectLocale: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
754
+ keyColumn: Z.ZodOptional<Z.ZodString>;
745
755
  lockedKeys: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
746
756
  lockedPatterns: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
747
757
  ignoredKeys: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
@@ -813,6 +823,7 @@ declare const configV1_9Definition: ConfigDefinition<{
813
823
  delimiter: Z.ZodOptional<Z.ZodUnion<readonly [Z.ZodLiteral<"-">, Z.ZodLiteral<"_">, Z.ZodLiteral<null>]>>;
814
824
  }, Z.core.$strip>]>>>;
815
825
  injectLocale: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
826
+ keyColumn: Z.ZodOptional<Z.ZodString>;
816
827
  lockedKeys: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
817
828
  lockedPatterns: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
818
829
  ignoredKeys: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
@@ -875,6 +886,7 @@ declare const configV1_10Definition: ConfigDefinition<{
875
886
  delimiter: Z.ZodOptional<Z.ZodUnion<readonly [Z.ZodLiteral<"-">, Z.ZodLiteral<"_">, Z.ZodLiteral<null>]>>;
876
887
  }, Z.core.$strip>]>>>;
877
888
  injectLocale: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
889
+ keyColumn: Z.ZodOptional<Z.ZodString>;
878
890
  lockedKeys: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
879
891
  lockedPatterns: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
880
892
  ignoredKeys: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
@@ -953,6 +965,7 @@ declare const configV1_11Definition: ConfigDefinition<{
953
965
  delimiter: Z.ZodOptional<Z.ZodUnion<readonly [Z.ZodLiteral<"-">, Z.ZodLiteral<"_">, Z.ZodLiteral<null>]>>;
954
966
  }, Z.core.$strip>]>>>;
955
967
  injectLocale: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
968
+ keyColumn: Z.ZodOptional<Z.ZodString>;
956
969
  lockedKeys: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
957
970
  lockedPatterns: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
958
971
  ignoredKeys: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
@@ -989,6 +1002,7 @@ declare const bucketValueSchemaV1_12: Z.ZodObject<{
989
1002
  delimiter: Z.ZodOptional<Z.ZodUnion<readonly [Z.ZodLiteral<"-">, Z.ZodLiteral<"_">, Z.ZodLiteral<null>]>>;
990
1003
  }, Z.core.$strip>]>>>;
991
1004
  injectLocale: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
1005
+ keyColumn: Z.ZodOptional<Z.ZodString>;
992
1006
  lockedKeys: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
993
1007
  lockedPatterns: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
994
1008
  ignoredKeys: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
@@ -1068,6 +1082,7 @@ declare const configV1_12Definition: ConfigDefinition<{
1068
1082
  delimiter: Z.ZodOptional<Z.ZodUnion<readonly [Z.ZodLiteral<"-">, Z.ZodLiteral<"_">, Z.ZodLiteral<null>]>>;
1069
1083
  }, Z.core.$strip>]>>>;
1070
1084
  injectLocale: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
1085
+ keyColumn: Z.ZodOptional<Z.ZodString>;
1071
1086
  lockedKeys: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
1072
1087
  lockedPatterns: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
1073
1088
  ignoredKeys: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
@@ -1084,6 +1099,7 @@ declare const bucketValueSchemaV1_13: Z.ZodObject<{
1084
1099
  delimiter: Z.ZodOptional<Z.ZodUnion<readonly [Z.ZodLiteral<"-">, Z.ZodLiteral<"_">, Z.ZodLiteral<null>]>>;
1085
1100
  }, Z.core.$strip>]>>>;
1086
1101
  injectLocale: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
1102
+ keyColumn: Z.ZodOptional<Z.ZodString>;
1087
1103
  lockedKeys: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
1088
1104
  lockedPatterns: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
1089
1105
  ignoredKeys: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
@@ -1164,6 +1180,7 @@ declare const configV1_13Definition: ConfigDefinition<{
1164
1180
  delimiter: Z.ZodOptional<Z.ZodUnion<readonly [Z.ZodLiteral<"-">, Z.ZodLiteral<"_">, Z.ZodLiteral<null>]>>;
1165
1181
  }, Z.core.$strip>]>>>;
1166
1182
  injectLocale: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
1183
+ keyColumn: Z.ZodOptional<Z.ZodString>;
1167
1184
  lockedKeys: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
1168
1185
  lockedPatterns: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
1169
1186
  ignoredKeys: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
@@ -1245,6 +1262,7 @@ declare const configV1_14Definition: ConfigDefinition<{
1245
1262
  delimiter: Z.ZodOptional<Z.ZodUnion<readonly [Z.ZodLiteral<"-">, Z.ZodLiteral<"_">, Z.ZodLiteral<null>]>>;
1246
1263
  }, Z.core.$strip>]>>>;
1247
1264
  injectLocale: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
1265
+ keyColumn: Z.ZodOptional<Z.ZodString>;
1248
1266
  lockedKeys: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
1249
1267
  lockedPatterns: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
1250
1268
  ignoredKeys: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
@@ -1329,6 +1347,7 @@ declare const configV1_15Definition: ConfigDefinition<{
1329
1347
  delimiter: Z.ZodOptional<Z.ZodUnion<readonly [Z.ZodLiteral<"-">, Z.ZodLiteral<"_">, Z.ZodLiteral<null>]>>;
1330
1348
  }, Z.core.$strip>]>>>;
1331
1349
  injectLocale: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
1350
+ keyColumn: Z.ZodOptional<Z.ZodString>;
1332
1351
  lockedKeys: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
1333
1352
  lockedPatterns: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
1334
1353
  ignoredKeys: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
@@ -1414,6 +1433,7 @@ declare const LATEST_CONFIG_DEFINITION: ConfigDefinition<{
1414
1433
  delimiter: Z.ZodOptional<Z.ZodUnion<readonly [Z.ZodLiteral<"-">, Z.ZodLiteral<"_">, Z.ZodLiteral<null>]>>;
1415
1434
  }, Z.core.$strip>]>>>;
1416
1435
  injectLocale: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
1436
+ keyColumn: Z.ZodOptional<Z.ZodString>;
1417
1437
  lockedKeys: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
1418
1438
  lockedPatterns: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
1419
1439
  ignoredKeys: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
@@ -1444,6 +1464,7 @@ declare function parseI18nConfig(rawConfig: unknown): {
1444
1464
  delimiter?: "-" | "_" | null | undefined;
1445
1465
  })[] | undefined;
1446
1466
  injectLocale?: string[] | undefined;
1467
+ keyColumn?: string | undefined;
1447
1468
  lockedKeys?: string[] | undefined;
1448
1469
  lockedPatterns?: string[] | undefined;
1449
1470
  ignoredKeys?: string[] | undefined;
@@ -1484,6 +1505,7 @@ declare const defaultConfig: {
1484
1505
  delimiter?: "-" | "_" | null | undefined;
1485
1506
  })[] | undefined;
1486
1507
  injectLocale?: string[] | undefined;
1508
+ keyColumn?: string | undefined;
1487
1509
  lockedKeys?: string[] | undefined;
1488
1510
  lockedPatterns?: string[] | undefined;
1489
1511
  ignoredKeys?: string[] | undefined;
package/build/index.d.ts CHANGED
@@ -320,6 +320,7 @@ declare const bucketValueSchemaV1_3: Z.ZodObject<{
320
320
  delimiter: Z.ZodOptional<Z.ZodUnion<readonly [Z.ZodLiteral<"-">, Z.ZodLiteral<"_">, Z.ZodLiteral<null>]>>;
321
321
  }, Z.core.$strip>]>>>;
322
322
  injectLocale: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
323
+ keyColumn: Z.ZodOptional<Z.ZodString>;
323
324
  }, Z.core.$strip>;
324
325
  declare const configV1_3Definition: ConfigDefinition<{
325
326
  version: Z.ZodDefault<Z.ZodUnion<readonly [Z.ZodNumber, Z.ZodString]>>;
@@ -373,6 +374,7 @@ declare const configV1_3Definition: ConfigDefinition<{
373
374
  delimiter: Z.ZodOptional<Z.ZodUnion<readonly [Z.ZodLiteral<"-">, Z.ZodLiteral<"_">, Z.ZodLiteral<null>]>>;
374
375
  }, Z.core.$strip>]>>>;
375
376
  injectLocale: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
377
+ keyColumn: Z.ZodOptional<Z.ZodString>;
376
378
  }, Z.core.$strip>>>;
377
379
  }, any>;
378
380
  declare const configV1_4Definition: ConfigDefinition<{
@@ -427,6 +429,7 @@ declare const configV1_4Definition: ConfigDefinition<{
427
429
  delimiter: Z.ZodOptional<Z.ZodUnion<readonly [Z.ZodLiteral<"-">, Z.ZodLiteral<"_">, Z.ZodLiteral<null>]>>;
428
430
  }, Z.core.$strip>]>>>;
429
431
  injectLocale: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
432
+ keyColumn: Z.ZodOptional<Z.ZodString>;
430
433
  }, Z.core.$strip>>>;
431
434
  $schema: Z.ZodDefault<Z.ZodString>;
432
435
  }, any>;
@@ -482,6 +485,7 @@ declare const configV1_5Definition: ConfigDefinition<{
482
485
  delimiter: Z.ZodOptional<Z.ZodUnion<readonly [Z.ZodLiteral<"-">, Z.ZodLiteral<"_">, Z.ZodLiteral<null>]>>;
483
486
  }, Z.core.$strip>]>>>;
484
487
  injectLocale: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
488
+ keyColumn: Z.ZodOptional<Z.ZodString>;
485
489
  }, Z.core.$strip>>>;
486
490
  $schema: Z.ZodDefault<Z.ZodString>;
487
491
  provider: Z.ZodOptional<Z.ZodObject<{
@@ -508,6 +512,7 @@ declare const bucketValueSchemaV1_6: Z.ZodObject<{
508
512
  delimiter: Z.ZodOptional<Z.ZodUnion<readonly [Z.ZodLiteral<"-">, Z.ZodLiteral<"_">, Z.ZodLiteral<null>]>>;
509
513
  }, Z.core.$strip>]>>>;
510
514
  injectLocale: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
515
+ keyColumn: Z.ZodOptional<Z.ZodString>;
511
516
  lockedKeys: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
512
517
  }, Z.core.$strip>;
513
518
  declare const configV1_6Definition: ConfigDefinition<{
@@ -576,6 +581,7 @@ declare const configV1_6Definition: ConfigDefinition<{
576
581
  delimiter: Z.ZodOptional<Z.ZodUnion<readonly [Z.ZodLiteral<"-">, Z.ZodLiteral<"_">, Z.ZodLiteral<null>]>>;
577
582
  }, Z.core.$strip>]>>>;
578
583
  injectLocale: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
584
+ keyColumn: Z.ZodOptional<Z.ZodString>;
579
585
  lockedKeys: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
580
586
  }, Z.core.$strip>>>;
581
587
  }, any>;
@@ -589,6 +595,7 @@ declare const bucketValueSchemaV1_7: Z.ZodObject<{
589
595
  delimiter: Z.ZodOptional<Z.ZodUnion<readonly [Z.ZodLiteral<"-">, Z.ZodLiteral<"_">, Z.ZodLiteral<null>]>>;
590
596
  }, Z.core.$strip>]>>>;
591
597
  injectLocale: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
598
+ keyColumn: Z.ZodOptional<Z.ZodString>;
592
599
  lockedKeys: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
593
600
  lockedPatterns: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
594
601
  }, Z.core.$strip>;
@@ -658,6 +665,7 @@ declare const configV1_7Definition: ConfigDefinition<{
658
665
  delimiter: Z.ZodOptional<Z.ZodUnion<readonly [Z.ZodLiteral<"-">, Z.ZodLiteral<"_">, Z.ZodLiteral<null>]>>;
659
666
  }, Z.core.$strip>]>>>;
660
667
  injectLocale: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
668
+ keyColumn: Z.ZodOptional<Z.ZodString>;
661
669
  lockedKeys: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
662
670
  lockedPatterns: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
663
671
  }, Z.core.$strip>>>;
@@ -672,6 +680,7 @@ declare const bucketValueSchemaV1_8: Z.ZodObject<{
672
680
  delimiter: Z.ZodOptional<Z.ZodUnion<readonly [Z.ZodLiteral<"-">, Z.ZodLiteral<"_">, Z.ZodLiteral<null>]>>;
673
681
  }, Z.core.$strip>]>>>;
674
682
  injectLocale: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
683
+ keyColumn: Z.ZodOptional<Z.ZodString>;
675
684
  lockedKeys: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
676
685
  lockedPatterns: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
677
686
  ignoredKeys: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
@@ -742,6 +751,7 @@ declare const configV1_8Definition: ConfigDefinition<{
742
751
  delimiter: Z.ZodOptional<Z.ZodUnion<readonly [Z.ZodLiteral<"-">, Z.ZodLiteral<"_">, Z.ZodLiteral<null>]>>;
743
752
  }, Z.core.$strip>]>>>;
744
753
  injectLocale: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
754
+ keyColumn: Z.ZodOptional<Z.ZodString>;
745
755
  lockedKeys: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
746
756
  lockedPatterns: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
747
757
  ignoredKeys: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
@@ -813,6 +823,7 @@ declare const configV1_9Definition: ConfigDefinition<{
813
823
  delimiter: Z.ZodOptional<Z.ZodUnion<readonly [Z.ZodLiteral<"-">, Z.ZodLiteral<"_">, Z.ZodLiteral<null>]>>;
814
824
  }, Z.core.$strip>]>>>;
815
825
  injectLocale: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
826
+ keyColumn: Z.ZodOptional<Z.ZodString>;
816
827
  lockedKeys: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
817
828
  lockedPatterns: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
818
829
  ignoredKeys: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
@@ -875,6 +886,7 @@ declare const configV1_10Definition: ConfigDefinition<{
875
886
  delimiter: Z.ZodOptional<Z.ZodUnion<readonly [Z.ZodLiteral<"-">, Z.ZodLiteral<"_">, Z.ZodLiteral<null>]>>;
876
887
  }, Z.core.$strip>]>>>;
877
888
  injectLocale: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
889
+ keyColumn: Z.ZodOptional<Z.ZodString>;
878
890
  lockedKeys: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
879
891
  lockedPatterns: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
880
892
  ignoredKeys: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
@@ -953,6 +965,7 @@ declare const configV1_11Definition: ConfigDefinition<{
953
965
  delimiter: Z.ZodOptional<Z.ZodUnion<readonly [Z.ZodLiteral<"-">, Z.ZodLiteral<"_">, Z.ZodLiteral<null>]>>;
954
966
  }, Z.core.$strip>]>>>;
955
967
  injectLocale: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
968
+ keyColumn: Z.ZodOptional<Z.ZodString>;
956
969
  lockedKeys: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
957
970
  lockedPatterns: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
958
971
  ignoredKeys: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
@@ -989,6 +1002,7 @@ declare const bucketValueSchemaV1_12: Z.ZodObject<{
989
1002
  delimiter: Z.ZodOptional<Z.ZodUnion<readonly [Z.ZodLiteral<"-">, Z.ZodLiteral<"_">, Z.ZodLiteral<null>]>>;
990
1003
  }, Z.core.$strip>]>>>;
991
1004
  injectLocale: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
1005
+ keyColumn: Z.ZodOptional<Z.ZodString>;
992
1006
  lockedKeys: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
993
1007
  lockedPatterns: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
994
1008
  ignoredKeys: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
@@ -1068,6 +1082,7 @@ declare const configV1_12Definition: ConfigDefinition<{
1068
1082
  delimiter: Z.ZodOptional<Z.ZodUnion<readonly [Z.ZodLiteral<"-">, Z.ZodLiteral<"_">, Z.ZodLiteral<null>]>>;
1069
1083
  }, Z.core.$strip>]>>>;
1070
1084
  injectLocale: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
1085
+ keyColumn: Z.ZodOptional<Z.ZodString>;
1071
1086
  lockedKeys: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
1072
1087
  lockedPatterns: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
1073
1088
  ignoredKeys: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
@@ -1084,6 +1099,7 @@ declare const bucketValueSchemaV1_13: Z.ZodObject<{
1084
1099
  delimiter: Z.ZodOptional<Z.ZodUnion<readonly [Z.ZodLiteral<"-">, Z.ZodLiteral<"_">, Z.ZodLiteral<null>]>>;
1085
1100
  }, Z.core.$strip>]>>>;
1086
1101
  injectLocale: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
1102
+ keyColumn: Z.ZodOptional<Z.ZodString>;
1087
1103
  lockedKeys: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
1088
1104
  lockedPatterns: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
1089
1105
  ignoredKeys: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
@@ -1164,6 +1180,7 @@ declare const configV1_13Definition: ConfigDefinition<{
1164
1180
  delimiter: Z.ZodOptional<Z.ZodUnion<readonly [Z.ZodLiteral<"-">, Z.ZodLiteral<"_">, Z.ZodLiteral<null>]>>;
1165
1181
  }, Z.core.$strip>]>>>;
1166
1182
  injectLocale: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
1183
+ keyColumn: Z.ZodOptional<Z.ZodString>;
1167
1184
  lockedKeys: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
1168
1185
  lockedPatterns: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
1169
1186
  ignoredKeys: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
@@ -1245,6 +1262,7 @@ declare const configV1_14Definition: ConfigDefinition<{
1245
1262
  delimiter: Z.ZodOptional<Z.ZodUnion<readonly [Z.ZodLiteral<"-">, Z.ZodLiteral<"_">, Z.ZodLiteral<null>]>>;
1246
1263
  }, Z.core.$strip>]>>>;
1247
1264
  injectLocale: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
1265
+ keyColumn: Z.ZodOptional<Z.ZodString>;
1248
1266
  lockedKeys: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
1249
1267
  lockedPatterns: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
1250
1268
  ignoredKeys: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
@@ -1329,6 +1347,7 @@ declare const configV1_15Definition: ConfigDefinition<{
1329
1347
  delimiter: Z.ZodOptional<Z.ZodUnion<readonly [Z.ZodLiteral<"-">, Z.ZodLiteral<"_">, Z.ZodLiteral<null>]>>;
1330
1348
  }, Z.core.$strip>]>>>;
1331
1349
  injectLocale: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
1350
+ keyColumn: Z.ZodOptional<Z.ZodString>;
1332
1351
  lockedKeys: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
1333
1352
  lockedPatterns: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
1334
1353
  ignoredKeys: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
@@ -1414,6 +1433,7 @@ declare const LATEST_CONFIG_DEFINITION: ConfigDefinition<{
1414
1433
  delimiter: Z.ZodOptional<Z.ZodUnion<readonly [Z.ZodLiteral<"-">, Z.ZodLiteral<"_">, Z.ZodLiteral<null>]>>;
1415
1434
  }, Z.core.$strip>]>>>;
1416
1435
  injectLocale: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
1436
+ keyColumn: Z.ZodOptional<Z.ZodString>;
1417
1437
  lockedKeys: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
1418
1438
  lockedPatterns: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
1419
1439
  ignoredKeys: Z.ZodOptional<Z.ZodArray<Z.ZodString>>;
@@ -1444,6 +1464,7 @@ declare function parseI18nConfig(rawConfig: unknown): {
1444
1464
  delimiter?: "-" | "_" | null | undefined;
1445
1465
  })[] | undefined;
1446
1466
  injectLocale?: string[] | undefined;
1467
+ keyColumn?: string | undefined;
1447
1468
  lockedKeys?: string[] | undefined;
1448
1469
  lockedPatterns?: string[] | undefined;
1449
1470
  ignoredKeys?: string[] | undefined;
@@ -1484,6 +1505,7 @@ declare const defaultConfig: {
1484
1505
  delimiter?: "-" | "_" | null | undefined;
1485
1506
  })[] | undefined;
1486
1507
  injectLocale?: string[] | undefined;
1508
+ keyColumn?: string | undefined;
1487
1509
  lockedKeys?: string[] | undefined;
1488
1510
  lockedPatterns?: string[] | undefined;
1489
1511
  ignoredKeys?: string[] | undefined;
package/build/index.mjs CHANGED
@@ -472,10 +472,10 @@ var configV1_1Definition = extendConfigDefinition(configV1Definition, {
472
472
  bucketTypeSchema,
473
473
  Z3.object({
474
474
  include: Z3.array(Z3.string()).default([]).describe(
475
- "File paths or glob patterns to include for this bucket."
475
+ "File paths or glob patterns (including ** for recursive matching) to include for this bucket."
476
476
  ),
477
477
  exclude: Z3.array(Z3.string()).optional().describe(
478
- "File paths or glob patterns to exclude from this bucket."
478
+ "File paths or glob patterns (including ** for recursive matching) to exclude from this bucket."
479
479
  )
480
480
  })
481
481
  ).default({})
@@ -535,10 +535,17 @@ var bucketItemSchema = Z3.object({
535
535
  "Bucket path item. Either a string path or an object specifying path and delimiter."
536
536
  );
537
537
  var bucketValueSchemaV1_3 = Z3.object({
538
- include: Z3.array(Z3.union([Z3.string(), bucketItemSchema])).default([]).describe("Glob patterns or bucket items to include for this bucket."),
539
- exclude: Z3.array(Z3.union([Z3.string(), bucketItemSchema])).optional().describe("Glob patterns or bucket items to exclude from this bucket."),
538
+ include: Z3.array(Z3.union([Z3.string(), bucketItemSchema])).default([]).describe(
539
+ "Glob patterns or bucket items (supports ** for recursive matching) to include for this bucket."
540
+ ),
541
+ exclude: Z3.array(Z3.union([Z3.string(), bucketItemSchema])).optional().describe(
542
+ "Glob patterns or bucket items (supports ** for recursive matching) to exclude from this bucket."
543
+ ),
540
544
  injectLocale: Z3.array(Z3.string()).optional().describe(
541
545
  "Keys within files where the current locale should be injected or removed."
546
+ ),
547
+ keyColumn: Z3.string().optional().describe(
548
+ "CSV buckets only: name of the column to use as the unique row identifier. Defaults to the first column in the CSV header."
542
549
  )
543
550
  }).describe("Configuration options for a translation bucket.");
544
551
  var configV1_3Definition = extendConfigDefinition(
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lingo.dev/_spec",
3
- "version": "0.49.0",
3
+ "version": "0.49.2",
4
4
  "description": "Lingo.dev open specification",
5
5
  "private": false,
6
6
  "repository": {
@@ -24,14 +24,14 @@
24
24
  "author": "",
25
25
  "license": "Apache-2.0",
26
26
  "dependencies": {
27
- "zod": "4.1.12",
27
+ "zod": "4.4.3",
28
28
  "@lingo.dev/_locales": "0.3.3"
29
29
  },
30
30
  "devDependencies": {
31
31
  "@types/node": "22.13.5",
32
32
  "tsup": "8.5.1",
33
33
  "typescript": "5.9.3",
34
- "vitest": "3.1.2"
34
+ "vitest": "3.2.6"
35
35
  },
36
36
  "scripts": {
37
37
  "dev": "tsup --watch",