@lokalise/content-conversion-schemas 5.9.0 → 6.0.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.
Files changed (42) hide show
  1. package/dist/api/contentObjects.d.ts +240 -102
  2. package/dist/api/contentObjects.d.ts.map +1 -1
  3. package/dist/api/contentObjects.js +2 -2
  4. package/dist/api/contentObjects.js.map +1 -1
  5. package/dist/api/contentObjectsNew.d.ts +601 -256
  6. package/dist/api/contentObjectsNew.d.ts.map +1 -1
  7. package/dist/api/contentObjectsNew.js +2 -2
  8. package/dist/api/contentObjectsNew.js.map +1 -1
  9. package/dist/api/generationObjects.d.ts +720 -306
  10. package/dist/api/generationObjects.d.ts.map +1 -1
  11. package/dist/api/pluralForm.d.ts +10 -0
  12. package/dist/api/pluralForm.d.ts.map +1 -0
  13. package/dist/api/pluralForm.js +9 -0
  14. package/dist/api/pluralForm.js.map +1 -0
  15. package/dist/api/textSegment.d.ts +4 -0
  16. package/dist/api/textSegment.d.ts.map +1 -0
  17. package/dist/api/textSegment.js +5 -0
  18. package/dist/api/textSegment.js.map +1 -0
  19. package/dist/api/textUnit.d.ts +336 -56
  20. package/dist/api/textUnit.d.ts.map +1 -1
  21. package/dist/api/textUnit.js +35 -24
  22. package/dist/api/textUnit.js.map +1 -1
  23. package/dist/api/textUnitMetadata.js +1 -1
  24. package/dist/api/textUnitMetadata.js.map +1 -1
  25. package/dist/api/textUnitTarget.d.ts +69 -0
  26. package/dist/api/textUnitTarget.d.ts.map +1 -0
  27. package/dist/api/textUnitTarget.js +30 -0
  28. package/dist/api/textUnitTarget.js.map +1 -0
  29. package/dist/api/translationObjects.d.ts +5 -5
  30. package/dist/api/{xcstings.d.ts → xcstrings.d.ts} +4 -10
  31. package/dist/api/xcstrings.d.ts.map +1 -0
  32. package/dist/api/{xcstings.js → xcstrings.js} +5 -9
  33. package/dist/api/xcstrings.js.map +1 -0
  34. package/dist/events/conversion.d.ts +1852 -817
  35. package/dist/events/conversion.d.ts.map +1 -1
  36. package/dist/index.d.ts +3 -1
  37. package/dist/index.d.ts.map +1 -1
  38. package/dist/index.js +3 -1
  39. package/dist/index.js.map +1 -1
  40. package/package.json +3 -3
  41. package/dist/api/xcstings.d.ts.map +0 -1
  42. package/dist/api/xcstings.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"generationObjects.d.ts","sourceRoot":"","sources":["../../src/api/generationObjects.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAA;AAQ1B,eAAO,MAAM,mCAAmC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAG9C,CAAA;AAEF,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mCAAmC,CAAC,CAAA;AAE5F,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAK/B,CAAA;AACF,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAA;AAEtE,eAAO,MAAM,kCAAkC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAY7C,CAAA;AAEF,eAAO,MAAM,4CAA4C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAWvD,CAAA;AAEF,eAAO,MAAM,mCAAmC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAO9C,CAAA;AAEF,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kCAAkC,CAAC,CAAA;AAC1F,MAAM,MAAM,kCAAkC,GAAG,CAAC,CAAC,KAAK,CACtD,OAAO,4CAA4C,CACpD,CAAA;AACD,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mCAAmC,CAAC,CAAA"}
1
+ {"version":3,"file":"generationObjects.d.ts","sourceRoot":"","sources":["../../src/api/generationObjects.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAA;AAQ1B,eAAO,MAAM,mCAAmC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAG9C,CAAA;AAEF,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mCAAmC,CAAC,CAAA;AAE5F,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAK/B,CAAA;AACF,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAA;AAEtE,eAAO,MAAM,kCAAkC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAY7C,CAAA;AAEF,eAAO,MAAM,4CAA4C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAWvD,CAAA;AAEF,eAAO,MAAM,mCAAmC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAO9C,CAAA;AAEF,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kCAAkC,CAAC,CAAA;AAC1F,MAAM,MAAM,kCAAkC,GAAG,CAAC,CAAC,KAAK,CACtD,OAAO,4CAA4C,CACpD,CAAA;AACD,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mCAAmC,CAAC,CAAA"}
@@ -0,0 +1,10 @@
1
+ export declare const PluralFormEnum: {
2
+ readonly ZERO: "ZERO";
3
+ readonly ONE: "ONE";
4
+ readonly TWO: "TWO";
5
+ readonly FEW: "FEW";
6
+ readonly MANY: "MANY";
7
+ readonly OTHER: "OTHER";
8
+ };
9
+ export type PluralForm = (typeof PluralFormEnum)[keyof typeof PluralFormEnum];
10
+ //# sourceMappingURL=pluralForm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pluralForm.d.ts","sourceRoot":"","sources":["../../src/api/pluralForm.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc;;;;;;;CAOjB,CAAA;AACV,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,OAAO,cAAc,CAAC,CAAA"}
@@ -0,0 +1,9 @@
1
+ export const PluralFormEnum = {
2
+ ZERO: 'ZERO',
3
+ ONE: 'ONE',
4
+ TWO: 'TWO',
5
+ FEW: 'FEW',
6
+ MANY: 'MANY',
7
+ OTHER: 'OTHER',
8
+ };
9
+ //# sourceMappingURL=pluralForm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pluralForm.js","sourceRoot":"","sources":["../../src/api/pluralForm.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,IAAI,EAAE,MAAM;IACZ,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,KAAK;IACV,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,OAAO;CACN,CAAA"}
@@ -0,0 +1,4 @@
1
+ import { z } from 'zod/v4';
2
+ export declare const TEXT_SEGMENT: z.ZodString;
3
+ export type TextSegment = z.infer<typeof TEXT_SEGMENT>;
4
+ //# sourceMappingURL=textSegment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"textSegment.d.ts","sourceRoot":"","sources":["../../src/api/textSegment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAA;AAE1B,eAAO,MAAM,YAAY,aAIxB,CAAA;AAED,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAA"}
@@ -0,0 +1,5 @@
1
+ import { z } from 'zod/v4';
2
+ export const TEXT_SEGMENT = z.string().describe(`Represents a text segment, a smaller part of a larger text.
3
+ Segments are created through segmentation, where a text is broken down into smaller units, such as sentences,
4
+ to facilitate operations like translation and leveraging translation memory.`);
5
+ //# sourceMappingURL=textSegment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"textSegment.js","sourceRoot":"","sources":["../../src/api/textSegment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAA;AAE1B,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAC7C;;6EAE2E,CAC5E,CAAA"}
@@ -1,12 +1,11 @@
1
1
  import { z } from 'zod/v4';
2
- export declare const TEXT_SEGMENT_SCHEMA: z.ZodString;
3
2
  export declare const TextCodeTypeEnum: {
4
3
  readonly OPENING: "OPENING";
5
4
  readonly CLOSING: "CLOSING";
6
5
  readonly PLACEHOLDER: "PLACEHOLDER";
7
6
  };
8
7
  export type TextCodeType = (typeof TextCodeTypeEnum)[keyof typeof TextCodeTypeEnum];
9
- export declare const TEXT_CODE_SCHEMA: z.ZodObject<{
8
+ export declare const TEXT_CODE: z.ZodObject<{
10
9
  id: z.ZodString;
11
10
  type: z.ZodEnum<{
12
11
  readonly OPENING: "OPENING";
@@ -17,7 +16,7 @@ export declare const TEXT_CODE_SCHEMA: z.ZodObject<{
17
16
  attributes: z.ZodOptional<z.ZodNullable<z.ZodString>>;
18
17
  parser: z.ZodDefault<z.ZodLiteral<"okapi">>;
19
18
  }, z.core.$strip>;
20
- export declare const TEXT_UNIT_SOURCE_SCHEMA: z.ZodObject<{
19
+ export declare const TEXT_UNIT_SOURCE: z.ZodObject<{
21
20
  textCodes: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
22
21
  id: z.ZodString;
23
22
  type: z.ZodEnum<{
@@ -32,9 +31,37 @@ export declare const TEXT_UNIT_SOURCE_SCHEMA: z.ZodObject<{
32
31
  hasBeenSegmented: z.ZodBoolean;
33
32
  segments: z.ZodArray<z.ZodString>;
34
33
  }, z.core.$strip>;
35
- export declare const TEXT_UNIT_TARGET_SCHEMA: z.ZodObject<{
36
- hasBeenSegmented: z.ZodBoolean;
37
- segments: z.ZodArray<z.ZodString>;
34
+ export declare const TEXT_UNIT_BASE: z.ZodObject<{
35
+ id: z.ZodString;
36
+ isTranslatable: z.ZodBoolean;
37
+ name: z.ZodOptional<z.ZodString>;
38
+ description: z.ZodOptional<z.ZodString>;
39
+ type: z.ZodOptional<z.ZodString>;
40
+ skeleton: z.ZodOptional<z.ZodString>;
41
+ isPlural: z.ZodDefault<z.ZodBoolean>;
42
+ targets: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodDiscriminatedUnion<[z.ZodObject<{
43
+ isPlural: z.ZodLiteral<false>;
44
+ source: z.ZodObject<{
45
+ hasBeenSegmented: z.ZodBoolean;
46
+ segments: z.ZodArray<z.ZodString>;
47
+ metadata: z.ZodOptional<z.ZodObject<{
48
+ xcstrings: z.ZodOptional<z.ZodObject<{
49
+ state: z.ZodOptional<z.ZodNullable<z.ZodString>>;
50
+ }, z.core.$strip>>;
51
+ }, z.core.$strip>>;
52
+ }, z.core.$strip>;
53
+ }, z.core.$strip>, z.ZodObject<{
54
+ isPlural: z.ZodLiteral<true>;
55
+ pluralForms: z.ZodRecord<z.ZodString, z.ZodObject<{
56
+ hasBeenSegmented: z.ZodBoolean;
57
+ segments: z.ZodArray<z.ZodString>;
58
+ metadata: z.ZodOptional<z.ZodObject<{
59
+ xcstrings: z.ZodOptional<z.ZodObject<{
60
+ state: z.ZodOptional<z.ZodNullable<z.ZodString>>;
61
+ }, z.core.$strip>>;
62
+ }, z.core.$strip>>;
63
+ }, z.core.$strip>>;
64
+ }, z.core.$strip>]>>>;
38
65
  metadata: z.ZodOptional<z.ZodObject<{
39
66
  pptxAttributes: z.ZodOptional<z.ZodObject<{
40
67
  slideNumber: z.ZodNumber;
@@ -81,10 +108,174 @@ export declare const TEXT_UNIT_TARGET_SCHEMA: z.ZodObject<{
81
108
  }, z.core.$strip>>;
82
109
  }, z.core.$strip>>;
83
110
  }, z.core.$strip>;
84
- export declare const TEXT_UNIT_SCHEMA: z.ZodObject<{
111
+ export declare const PLURAL_TEXT_UNIT: z.ZodObject<{
85
112
  id: z.ZodString;
113
+ isTranslatable: z.ZodBoolean;
86
114
  name: z.ZodOptional<z.ZodString>;
115
+ description: z.ZodOptional<z.ZodString>;
116
+ type: z.ZodOptional<z.ZodString>;
117
+ skeleton: z.ZodOptional<z.ZodString>;
118
+ targets: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodDiscriminatedUnion<[z.ZodObject<{
119
+ isPlural: z.ZodLiteral<false>;
120
+ source: z.ZodObject<{
121
+ hasBeenSegmented: z.ZodBoolean;
122
+ segments: z.ZodArray<z.ZodString>;
123
+ metadata: z.ZodOptional<z.ZodObject<{
124
+ xcstrings: z.ZodOptional<z.ZodObject<{
125
+ state: z.ZodOptional<z.ZodNullable<z.ZodString>>;
126
+ }, z.core.$strip>>;
127
+ }, z.core.$strip>>;
128
+ }, z.core.$strip>;
129
+ }, z.core.$strip>, z.ZodObject<{
130
+ isPlural: z.ZodLiteral<true>;
131
+ pluralForms: z.ZodRecord<z.ZodString, z.ZodObject<{
132
+ hasBeenSegmented: z.ZodBoolean;
133
+ segments: z.ZodArray<z.ZodString>;
134
+ metadata: z.ZodOptional<z.ZodObject<{
135
+ xcstrings: z.ZodOptional<z.ZodObject<{
136
+ state: z.ZodOptional<z.ZodNullable<z.ZodString>>;
137
+ }, z.core.$strip>>;
138
+ }, z.core.$strip>>;
139
+ }, z.core.$strip>>;
140
+ }, z.core.$strip>]>>>;
141
+ metadata: z.ZodOptional<z.ZodObject<{
142
+ pptxAttributes: z.ZodOptional<z.ZodObject<{
143
+ slideNumber: z.ZodNumber;
144
+ slideType: z.ZodEnum<{
145
+ readonly LAYOUT: "LAYOUT";
146
+ readonly NOTES: "NOTES";
147
+ readonly MASTER_NOTES: "MASTER_NOTES";
148
+ readonly SLIDE: "SLIDE";
149
+ readonly MASTER_SLIDE: "MASTER_SLIDE";
150
+ readonly CHART: "CHART";
151
+ readonly UNKNOWN: "UNKNOWN";
152
+ }>;
153
+ }, z.core.$strip>>;
154
+ xcstrings: z.ZodOptional<z.ZodObject<{
155
+ state: z.ZodOptional<z.ZodString>;
156
+ shouldTranslate: z.ZodOptional<z.ZodBoolean>;
157
+ extractionState: z.ZodOptional<z.ZodString>;
158
+ localizationType: z.ZodEnum<{
159
+ readonly STRING_UNIT: "STRING_UNIT";
160
+ readonly SUBSTITUTIONS: "SUBSTITUTIONS";
161
+ readonly PLURAL_VARIATION: "PLURAL_VARIATION";
162
+ readonly DEVICE_VARIATION: "DEVICE_VARIATION";
163
+ readonly DEVICE_PLURAL_VARIATION: "DEVICE_PLURAL_VARIATION";
164
+ }>;
165
+ keyPath: z.ZodString;
166
+ device: z.ZodOptional<z.ZodEnum<{
167
+ readonly MAC: "MAC";
168
+ readonly IPHONE: "IPHONE";
169
+ readonly APPLE_WATCH: "APPLE_WATCH";
170
+ readonly IPAD: "IPAD";
171
+ readonly OTHER: "OTHER";
172
+ }>>;
173
+ pluralForm: z.ZodOptional<z.ZodEnum<{
174
+ readonly ZERO: "ZERO";
175
+ readonly ONE: "ONE";
176
+ readonly TWO: "TWO";
177
+ readonly FEW: "FEW";
178
+ readonly MANY: "MANY";
179
+ readonly OTHER: "OTHER";
180
+ }>>;
181
+ formatSpecifier: z.ZodOptional<z.ZodString>;
182
+ argNum: z.ZodOptional<z.ZodNumber>;
183
+ isPlural: z.ZodBoolean;
184
+ }, z.core.$strip>>;
185
+ }, z.core.$strip>>;
186
+ isPlural: z.ZodLiteral<true>;
187
+ pluralForms: z.ZodRecord<z.ZodString, z.ZodObject<{
188
+ textCodes: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
189
+ id: z.ZodString;
190
+ type: z.ZodEnum<{
191
+ readonly OPENING: "OPENING";
192
+ readonly CLOSING: "CLOSING";
193
+ readonly PLACEHOLDER: "PLACEHOLDER";
194
+ }>;
195
+ value: z.ZodString;
196
+ attributes: z.ZodOptional<z.ZodNullable<z.ZodString>>;
197
+ parser: z.ZodDefault<z.ZodLiteral<"okapi">>;
198
+ }, z.core.$strip>>>>;
199
+ hasBeenSegmented: z.ZodBoolean;
200
+ segments: z.ZodArray<z.ZodString>;
201
+ }, z.core.$strip>>;
202
+ }, z.core.$strip>;
203
+ export declare const SINGULAR_TEXT_UNIT: z.ZodObject<{
204
+ id: z.ZodString;
87
205
  isTranslatable: z.ZodBoolean;
206
+ name: z.ZodOptional<z.ZodString>;
207
+ description: z.ZodOptional<z.ZodString>;
208
+ type: z.ZodOptional<z.ZodString>;
209
+ skeleton: z.ZodOptional<z.ZodString>;
210
+ targets: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodDiscriminatedUnion<[z.ZodObject<{
211
+ isPlural: z.ZodLiteral<false>;
212
+ source: z.ZodObject<{
213
+ hasBeenSegmented: z.ZodBoolean;
214
+ segments: z.ZodArray<z.ZodString>;
215
+ metadata: z.ZodOptional<z.ZodObject<{
216
+ xcstrings: z.ZodOptional<z.ZodObject<{
217
+ state: z.ZodOptional<z.ZodNullable<z.ZodString>>;
218
+ }, z.core.$strip>>;
219
+ }, z.core.$strip>>;
220
+ }, z.core.$strip>;
221
+ }, z.core.$strip>, z.ZodObject<{
222
+ isPlural: z.ZodLiteral<true>;
223
+ pluralForms: z.ZodRecord<z.ZodString, z.ZodObject<{
224
+ hasBeenSegmented: z.ZodBoolean;
225
+ segments: z.ZodArray<z.ZodString>;
226
+ metadata: z.ZodOptional<z.ZodObject<{
227
+ xcstrings: z.ZodOptional<z.ZodObject<{
228
+ state: z.ZodOptional<z.ZodNullable<z.ZodString>>;
229
+ }, z.core.$strip>>;
230
+ }, z.core.$strip>>;
231
+ }, z.core.$strip>>;
232
+ }, z.core.$strip>]>>>;
233
+ metadata: z.ZodOptional<z.ZodObject<{
234
+ pptxAttributes: z.ZodOptional<z.ZodObject<{
235
+ slideNumber: z.ZodNumber;
236
+ slideType: z.ZodEnum<{
237
+ readonly LAYOUT: "LAYOUT";
238
+ readonly NOTES: "NOTES";
239
+ readonly MASTER_NOTES: "MASTER_NOTES";
240
+ readonly SLIDE: "SLIDE";
241
+ readonly MASTER_SLIDE: "MASTER_SLIDE";
242
+ readonly CHART: "CHART";
243
+ readonly UNKNOWN: "UNKNOWN";
244
+ }>;
245
+ }, z.core.$strip>>;
246
+ xcstrings: z.ZodOptional<z.ZodObject<{
247
+ state: z.ZodOptional<z.ZodString>;
248
+ shouldTranslate: z.ZodOptional<z.ZodBoolean>;
249
+ extractionState: z.ZodOptional<z.ZodString>;
250
+ localizationType: z.ZodEnum<{
251
+ readonly STRING_UNIT: "STRING_UNIT";
252
+ readonly SUBSTITUTIONS: "SUBSTITUTIONS";
253
+ readonly PLURAL_VARIATION: "PLURAL_VARIATION";
254
+ readonly DEVICE_VARIATION: "DEVICE_VARIATION";
255
+ readonly DEVICE_PLURAL_VARIATION: "DEVICE_PLURAL_VARIATION";
256
+ }>;
257
+ keyPath: z.ZodString;
258
+ device: z.ZodOptional<z.ZodEnum<{
259
+ readonly MAC: "MAC";
260
+ readonly IPHONE: "IPHONE";
261
+ readonly APPLE_WATCH: "APPLE_WATCH";
262
+ readonly IPAD: "IPAD";
263
+ readonly OTHER: "OTHER";
264
+ }>>;
265
+ pluralForm: z.ZodOptional<z.ZodEnum<{
266
+ readonly ZERO: "ZERO";
267
+ readonly ONE: "ONE";
268
+ readonly TWO: "TWO";
269
+ readonly FEW: "FEW";
270
+ readonly MANY: "MANY";
271
+ readonly OTHER: "OTHER";
272
+ }>>;
273
+ formatSpecifier: z.ZodOptional<z.ZodString>;
274
+ argNum: z.ZodOptional<z.ZodNumber>;
275
+ isPlural: z.ZodBoolean;
276
+ }, z.core.$strip>>;
277
+ }, z.core.$strip>>;
278
+ isPlural: z.ZodLiteral<false>;
88
279
  source: z.ZodObject<{
89
280
  textCodes: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
90
281
  id: z.ZodString;
@@ -100,55 +291,128 @@ export declare const TEXT_UNIT_SCHEMA: z.ZodObject<{
100
291
  hasBeenSegmented: z.ZodBoolean;
101
292
  segments: z.ZodArray<z.ZodString>;
102
293
  }, z.core.$strip>;
103
- targets: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
294
+ }, z.core.$strip>;
295
+ export declare const TEXT_UNIT: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodDiscriminatedUnion<[z.ZodObject<{
296
+ id: z.ZodString;
297
+ isTranslatable: z.ZodBoolean;
298
+ name: z.ZodOptional<z.ZodString>;
299
+ description: z.ZodOptional<z.ZodString>;
300
+ type: z.ZodOptional<z.ZodString>;
301
+ skeleton: z.ZodOptional<z.ZodString>;
302
+ targets: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodDiscriminatedUnion<[z.ZodObject<{
303
+ isPlural: z.ZodLiteral<false>;
304
+ source: z.ZodObject<{
305
+ hasBeenSegmented: z.ZodBoolean;
306
+ segments: z.ZodArray<z.ZodString>;
307
+ metadata: z.ZodOptional<z.ZodObject<{
308
+ xcstrings: z.ZodOptional<z.ZodObject<{
309
+ state: z.ZodOptional<z.ZodNullable<z.ZodString>>;
310
+ }, z.core.$strip>>;
311
+ }, z.core.$strip>>;
312
+ }, z.core.$strip>;
313
+ }, z.core.$strip>, z.ZodObject<{
314
+ isPlural: z.ZodLiteral<true>;
315
+ pluralForms: z.ZodRecord<z.ZodString, z.ZodObject<{
316
+ hasBeenSegmented: z.ZodBoolean;
317
+ segments: z.ZodArray<z.ZodString>;
318
+ metadata: z.ZodOptional<z.ZodObject<{
319
+ xcstrings: z.ZodOptional<z.ZodObject<{
320
+ state: z.ZodOptional<z.ZodNullable<z.ZodString>>;
321
+ }, z.core.$strip>>;
322
+ }, z.core.$strip>>;
323
+ }, z.core.$strip>>;
324
+ }, z.core.$strip>]>>>;
325
+ metadata: z.ZodOptional<z.ZodObject<{
326
+ pptxAttributes: z.ZodOptional<z.ZodObject<{
327
+ slideNumber: z.ZodNumber;
328
+ slideType: z.ZodEnum<{
329
+ readonly LAYOUT: "LAYOUT";
330
+ readonly NOTES: "NOTES";
331
+ readonly MASTER_NOTES: "MASTER_NOTES";
332
+ readonly SLIDE: "SLIDE";
333
+ readonly MASTER_SLIDE: "MASTER_SLIDE";
334
+ readonly CHART: "CHART";
335
+ readonly UNKNOWN: "UNKNOWN";
336
+ }>;
337
+ }, z.core.$strip>>;
338
+ xcstrings: z.ZodOptional<z.ZodObject<{
339
+ state: z.ZodOptional<z.ZodString>;
340
+ shouldTranslate: z.ZodOptional<z.ZodBoolean>;
341
+ extractionState: z.ZodOptional<z.ZodString>;
342
+ localizationType: z.ZodEnum<{
343
+ readonly STRING_UNIT: "STRING_UNIT";
344
+ readonly SUBSTITUTIONS: "SUBSTITUTIONS";
345
+ readonly PLURAL_VARIATION: "PLURAL_VARIATION";
346
+ readonly DEVICE_VARIATION: "DEVICE_VARIATION";
347
+ readonly DEVICE_PLURAL_VARIATION: "DEVICE_PLURAL_VARIATION";
348
+ }>;
349
+ keyPath: z.ZodString;
350
+ device: z.ZodOptional<z.ZodEnum<{
351
+ readonly MAC: "MAC";
352
+ readonly IPHONE: "IPHONE";
353
+ readonly APPLE_WATCH: "APPLE_WATCH";
354
+ readonly IPAD: "IPAD";
355
+ readonly OTHER: "OTHER";
356
+ }>>;
357
+ pluralForm: z.ZodOptional<z.ZodEnum<{
358
+ readonly ZERO: "ZERO";
359
+ readonly ONE: "ONE";
360
+ readonly TWO: "TWO";
361
+ readonly FEW: "FEW";
362
+ readonly MANY: "MANY";
363
+ readonly OTHER: "OTHER";
364
+ }>>;
365
+ formatSpecifier: z.ZodOptional<z.ZodString>;
366
+ argNum: z.ZodOptional<z.ZodNumber>;
367
+ isPlural: z.ZodBoolean;
368
+ }, z.core.$strip>>;
369
+ }, z.core.$strip>>;
370
+ isPlural: z.ZodLiteral<true>;
371
+ pluralForms: z.ZodRecord<z.ZodString, z.ZodObject<{
372
+ textCodes: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
373
+ id: z.ZodString;
374
+ type: z.ZodEnum<{
375
+ readonly OPENING: "OPENING";
376
+ readonly CLOSING: "CLOSING";
377
+ readonly PLACEHOLDER: "PLACEHOLDER";
378
+ }>;
379
+ value: z.ZodString;
380
+ attributes: z.ZodOptional<z.ZodNullable<z.ZodString>>;
381
+ parser: z.ZodDefault<z.ZodLiteral<"okapi">>;
382
+ }, z.core.$strip>>>>;
104
383
  hasBeenSegmented: z.ZodBoolean;
105
384
  segments: z.ZodArray<z.ZodString>;
106
- metadata: z.ZodOptional<z.ZodObject<{
107
- pptxAttributes: z.ZodOptional<z.ZodObject<{
108
- slideNumber: z.ZodNumber;
109
- slideType: z.ZodEnum<{
110
- readonly LAYOUT: "LAYOUT";
111
- readonly NOTES: "NOTES";
112
- readonly MASTER_NOTES: "MASTER_NOTES";
113
- readonly SLIDE: "SLIDE";
114
- readonly MASTER_SLIDE: "MASTER_SLIDE";
115
- readonly CHART: "CHART";
116
- readonly UNKNOWN: "UNKNOWN";
117
- }>;
385
+ }, z.core.$strip>>;
386
+ }, z.core.$strip>, z.ZodObject<{
387
+ id: z.ZodString;
388
+ isTranslatable: z.ZodBoolean;
389
+ name: z.ZodOptional<z.ZodString>;
390
+ description: z.ZodOptional<z.ZodString>;
391
+ type: z.ZodOptional<z.ZodString>;
392
+ skeleton: z.ZodOptional<z.ZodString>;
393
+ targets: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodDiscriminatedUnion<[z.ZodObject<{
394
+ isPlural: z.ZodLiteral<false>;
395
+ source: z.ZodObject<{
396
+ hasBeenSegmented: z.ZodBoolean;
397
+ segments: z.ZodArray<z.ZodString>;
398
+ metadata: z.ZodOptional<z.ZodObject<{
399
+ xcstrings: z.ZodOptional<z.ZodObject<{
400
+ state: z.ZodOptional<z.ZodNullable<z.ZodString>>;
401
+ }, z.core.$strip>>;
118
402
  }, z.core.$strip>>;
119
- xcstrings: z.ZodOptional<z.ZodObject<{
120
- state: z.ZodOptional<z.ZodString>;
121
- shouldTranslate: z.ZodOptional<z.ZodBoolean>;
122
- extractionState: z.ZodOptional<z.ZodString>;
123
- localizationType: z.ZodEnum<{
124
- readonly STRING_UNIT: "STRING_UNIT";
125
- readonly SUBSTITUTIONS: "SUBSTITUTIONS";
126
- readonly PLURAL_VARIATION: "PLURAL_VARIATION";
127
- readonly DEVICE_VARIATION: "DEVICE_VARIATION";
128
- readonly DEVICE_PLURAL_VARIATION: "DEVICE_PLURAL_VARIATION";
129
- }>;
130
- keyPath: z.ZodString;
131
- device: z.ZodOptional<z.ZodEnum<{
132
- readonly MAC: "MAC";
133
- readonly IPHONE: "IPHONE";
134
- readonly APPLE_WATCH: "APPLE_WATCH";
135
- readonly IPAD: "IPAD";
136
- readonly OTHER: "OTHER";
137
- }>>;
138
- pluralForm: z.ZodOptional<z.ZodEnum<{
139
- readonly ZERO: "ZERO";
140
- readonly ONE: "ONE";
141
- readonly TWO: "TWO";
142
- readonly FEW: "FEW";
143
- readonly MANY: "MANY";
144
- readonly OTHER: "OTHER";
145
- }>>;
146
- formatSpecifier: z.ZodOptional<z.ZodString>;
147
- argNum: z.ZodOptional<z.ZodNumber>;
148
- isPlural: z.ZodBoolean;
403
+ }, z.core.$strip>;
404
+ }, z.core.$strip>, z.ZodObject<{
405
+ isPlural: z.ZodLiteral<true>;
406
+ pluralForms: z.ZodRecord<z.ZodString, z.ZodObject<{
407
+ hasBeenSegmented: z.ZodBoolean;
408
+ segments: z.ZodArray<z.ZodString>;
409
+ metadata: z.ZodOptional<z.ZodObject<{
410
+ xcstrings: z.ZodOptional<z.ZodObject<{
411
+ state: z.ZodOptional<z.ZodNullable<z.ZodString>>;
412
+ }, z.core.$strip>>;
149
413
  }, z.core.$strip>>;
150
414
  }, z.core.$strip>>;
151
- }, z.core.$strip>>>;
415
+ }, z.core.$strip>]>>>;
152
416
  metadata: z.ZodOptional<z.ZodObject<{
153
417
  pptxAttributes: z.ZodOptional<z.ZodObject<{
154
418
  slideNumber: z.ZodNumber;
@@ -194,9 +458,25 @@ export declare const TEXT_UNIT_SCHEMA: z.ZodObject<{
194
458
  isPlural: z.ZodBoolean;
195
459
  }, z.core.$strip>>;
196
460
  }, z.core.$strip>>;
197
- }, z.core.$strip>;
198
- export type TextCode = z.infer<typeof TEXT_CODE_SCHEMA>;
199
- export type TextUnit = z.infer<typeof TEXT_UNIT_SCHEMA>;
200
- export type TextUnitTarget = z.infer<typeof TEXT_UNIT_TARGET_SCHEMA>;
201
- export type TextSegment = z.infer<typeof TEXT_SEGMENT_SCHEMA>;
461
+ isPlural: z.ZodLiteral<false>;
462
+ source: z.ZodObject<{
463
+ textCodes: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
464
+ id: z.ZodString;
465
+ type: z.ZodEnum<{
466
+ readonly OPENING: "OPENING";
467
+ readonly CLOSING: "CLOSING";
468
+ readonly PLACEHOLDER: "PLACEHOLDER";
469
+ }>;
470
+ value: z.ZodString;
471
+ attributes: z.ZodOptional<z.ZodNullable<z.ZodString>>;
472
+ parser: z.ZodDefault<z.ZodLiteral<"okapi">>;
473
+ }, z.core.$strip>>>>;
474
+ hasBeenSegmented: z.ZodBoolean;
475
+ segments: z.ZodArray<z.ZodString>;
476
+ }, z.core.$strip>;
477
+ }, z.core.$strip>]>>;
478
+ export type TextCode = z.infer<typeof TEXT_CODE>;
479
+ export type TextUnitSource = z.infer<typeof TEXT_UNIT_SOURCE>;
480
+ export type TextUnit = z.infer<typeof TEXT_UNIT>;
481
+ export type SingularTextUnit = z.infer<typeof SINGULAR_TEXT_UNIT>;
202
482
  //# sourceMappingURL=textUnit.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"textUnit.d.ts","sourceRoot":"","sources":["../../src/api/textUnit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAA;AAI1B,eAAO,MAAM,mBAAmB,aAI/B,CAAA;AAED,eAAO,MAAM,gBAAgB;;;;CAInB,CAAA;AACV,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,OAAO,gBAAgB,CAAC,CAAA;AAEnF,eAAO,MAAM,gBAAgB;;;;;;;;;;iBAa1B,CAAA;AAEH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;iBAQlC,CAAA;AAEF,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAUlC,CAAA;AAEF,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAuB1B,CAAA;AAEH,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAA;AACvD,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAA;AACvD,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAA;AACpE,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA"}
1
+ {"version":3,"file":"textUnit.d.ts","sourceRoot":"","sources":["../../src/api/textUnit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAA;AAO1B,eAAO,MAAM,gBAAgB;;;;CAInB,CAAA;AACV,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,OAAO,gBAAgB,CAAC,CAAA;AAEnF,eAAO,MAAM,SAAS;;;;;;;;;;iBAanB,CAAA;AAEH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;iBAQ3B,CAAA;AAEF,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAmBxB,CAAA;AAEH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAS3B,CAAA;AAEF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAG7B,CAAA;AAEF,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAUnB,CAAA;AAEH,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,CAAA;AAChD,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAA;AAC7D,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,CAAA;AAChD,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAA"}
@@ -1,15 +1,15 @@
1
1
  import { z } from 'zod/v4';
2
2
  import { LOCALE_BCP47_TAG } from "./common.js";
3
+ import { PluralFormEnum } from "./pluralForm.js";
4
+ import { TEXT_SEGMENT } from "./textSegment.js";
3
5
  import { TEXT_UNIT_METADATA_ATTRIBUTES_SCHEMA } from "./textUnitMetadata.js";
4
- export const TEXT_SEGMENT_SCHEMA = z.string().describe(`Represents a text segment, a smaller part of a larger text.
5
- Segments are created through segmentation, where a text is broken down into smaller units, such as sentences,
6
- to facilitate operations like translation and leveraging translation memory.`);
6
+ import { TEXT_UNIT_TARGET } from "./textUnitTarget.js";
7
7
  export const TextCodeTypeEnum = {
8
8
  OPENING: 'OPENING',
9
9
  CLOSING: 'CLOSING',
10
10
  PLACEHOLDER: 'PLACEHOLDER',
11
11
  };
12
- export const TEXT_CODE_SCHEMA = z
12
+ export const TEXT_CODE = z
13
13
  .object({
14
14
  id: z.string(),
15
15
  type: z.enum(TextCodeTypeEnum),
@@ -21,34 +21,45 @@ export const TEXT_CODE_SCHEMA = z
21
21
  .describe('Indicates the parser that generated this text code.'),
22
22
  })
23
23
  .describe('Represents a text code, which is a special marker in the segment text that can be used for various purposes, such as indicating placeholders.');
24
- export const TEXT_UNIT_SOURCE_SCHEMA = z.object({
25
- textCodes: TEXT_CODE_SCHEMA.array().nullish(),
24
+ export const TEXT_UNIT_SOURCE = z.object({
25
+ textCodes: TEXT_CODE.array().nullish(),
26
26
  hasBeenSegmented: z
27
27
  .boolean()
28
28
  .describe('Indicates whether the segmentation was applied to the text unit.'),
29
- segments: TEXT_SEGMENT_SCHEMA.array().describe('The text parts that make up the text unit. If the text unit has not been segmented, the array will contain a single segment.'),
29
+ segments: TEXT_SEGMENT.array().describe('The text parts that make up the text unit. If the text unit has not been segmented, the array will contain a single segment.'),
30
30
  });
31
- export const TEXT_UNIT_TARGET_SCHEMA = z.object({
32
- hasBeenSegmented: z
33
- .boolean()
34
- .describe('Indicates whether the segmentation was applied to the text unit.'),
35
- segments: TEXT_SEGMENT_SCHEMA.array().describe('The text parts that make up the text unit. If the text unit has not been segmented, the array will contain a single segment.'),
36
- metadata: TEXT_UNIT_METADATA_ATTRIBUTES_SCHEMA.optional().describe('Optional metadata associated with the target text unit.'),
37
- });
38
- export const TEXT_UNIT_SCHEMA = z
31
+ export const TEXT_UNIT_BASE = z
39
32
  .object({
40
- id: z.string().min(1).describe('Unique identifier of the text unit within a content unit.'),
41
- name: z
42
- .string()
43
- .optional()
44
- .describe('Name of the text unit, if available. For example json key /myNestedObject/myNestedKey'),
45
- isTranslatable: z.boolean().describe('Indicates whether the text unit is translatable or not'),
46
- source: TEXT_UNIT_SOURCE_SCHEMA,
33
+ id: z.string(),
34
+ isTranslatable: z.boolean(),
35
+ name: z.string().optional(),
36
+ description: z.string().optional(),
37
+ type: z.string().optional(),
38
+ skeleton: z.string().optional(),
39
+ isPlural: z.boolean().default(false),
47
40
  targets: z
48
- .record(LOCALE_BCP47_TAG, TEXT_UNIT_TARGET_SCHEMA)
41
+ .record(LOCALE_BCP47_TAG, TEXT_UNIT_TARGET)
49
42
  .optional()
50
- .describe('Map of locale to translation target. Will be present if content is multilingual and translations are available.'),
43
+ .describe('Map of locale to target text unit'),
51
44
  metadata: TEXT_UNIT_METADATA_ATTRIBUTES_SCHEMA.optional().describe('Optional metadata associated with the text unit.'),
52
45
  })
53
46
  .describe('Represents a text unit, the basic unit of extraction from a parser. May be split further into segments.');
47
+ export const PLURAL_TEXT_UNIT = TEXT_UNIT_BASE.extend({
48
+ isPlural: z.literal(true),
49
+ pluralForms: z
50
+ .record(z.string().min(1), TEXT_UNIT_SOURCE)
51
+ .refine((obj) => Object.keys(obj).every((k) => Object.values(PluralFormEnum).includes(k)), { message: 'All keys must be valid PluralFormEnum values' }),
52
+ });
53
+ export const SINGULAR_TEXT_UNIT = TEXT_UNIT_BASE.extend({
54
+ isPlural: z.literal(false),
55
+ source: TEXT_UNIT_SOURCE,
56
+ });
57
+ export const TEXT_UNIT =
58
+ // we set isFalse by default if not provided
59
+ z.preprocess((val) => {
60
+ if (typeof val === 'object' && val && !('isPlural' in val)) {
61
+ return { ...val, isPlural: false };
62
+ }
63
+ return val;
64
+ }, z.discriminatedUnion('isPlural', [PLURAL_TEXT_UNIT, SINGULAR_TEXT_UNIT]));
54
65
  //# sourceMappingURL=textUnit.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"textUnit.js","sourceRoot":"","sources":["../../src/api/textUnit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAA;AAC1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAC9C,OAAO,EAAE,oCAAoC,EAAE,MAAM,uBAAuB,CAAA;AAE5E,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CACpD;;6EAE2E,CAC5E,CAAA;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,WAAW,EAAE,aAAa;CAClB,CAAA;AAGV,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC;KAC9B,MAAM,CAAC;IACN,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC;IAC9B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE;IAChC,MAAM,EAAE,CAAC;SACN,OAAO,CAAC,OAAO,CAAC;SAChB,OAAO,CAAC,OAAO,CAAC;SAChB,QAAQ,CAAC,qDAAqD,CAAC;CACnE,CAAC;KACD,QAAQ,CACP,+IAA+I,CAChJ,CAAA;AAEH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,SAAS,EAAE,gBAAgB,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE;IAC7C,gBAAgB,EAAE,CAAC;SAChB,OAAO,EAAE;SACT,QAAQ,CAAC,kEAAkE,CAAC;IAC/E,QAAQ,EAAE,mBAAmB,CAAC,KAAK,EAAE,CAAC,QAAQ,CAC5C,8HAA8H,CAC/H;CACF,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,gBAAgB,EAAE,CAAC;SAChB,OAAO,EAAE;SACT,QAAQ,CAAC,kEAAkE,CAAC;IAC/E,QAAQ,EAAE,mBAAmB,CAAC,KAAK,EAAE,CAAC,QAAQ,CAC5C,8HAA8H,CAC/H;IACD,QAAQ,EAAE,oCAAoC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAChE,yDAAyD,CAC1D;CACF,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC;KAC9B,MAAM,CAAC;IACN,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,2DAA2D,CAAC;IAC3F,IAAI,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,uFAAuF,CACxF;IACH,cAAc,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,wDAAwD,CAAC;IAC9F,MAAM,EAAE,uBAAuB;IAC/B,OAAO,EAAE,CAAC;SACP,MAAM,CAAC,gBAAgB,EAAE,uBAAuB,CAAC;SACjD,QAAQ,EAAE;SACV,QAAQ,CACP,iHAAiH,CAClH;IACH,QAAQ,EAAE,oCAAoC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAChE,kDAAkD,CACnD;CACF,CAAC;KACD,QAAQ,CACP,yGAAyG,CAC1G,CAAA"}
1
+ {"version":3,"file":"textUnit.js","sourceRoot":"","sources":["../../src/api/textUnit.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { z } from 'zod/v4';
2
2
  import { PPTX_TEXT_UNIT_METADATA } from "./pptx.js";
3
- import { XCSTRINGS_TEXT_UNIT_METADATA } from "./xcstings.js";
3
+ import { XCSTRINGS_TEXT_UNIT_METADATA } from "./xcstrings.js";
4
4
  export const TEXT_UNIT_METADATA_ATTRIBUTES_SCHEMA = z.object({
5
5
  // todo remove attributes postfix from the name, we can do that during NextGen migration on new command events
6
6
  pptxAttributes: PPTX_TEXT_UNIT_METADATA.optional(),
@@ -1 +1 @@
1
- {"version":3,"file":"textUnitMetadata.js","sourceRoot":"","sources":["../../src/api/textUnitMetadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAA;AAC1B,OAAO,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAA;AACnD,OAAO,EAAE,4BAA4B,EAAE,MAAM,eAAe,CAAA;AAE5D,MAAM,CAAC,MAAM,oCAAoC,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3D,8GAA8G;IAC9G,cAAc,EAAE,uBAAuB,CAAC,QAAQ,EAAE;IAClD,SAAS,EAAE,4BAA4B,CAAC,QAAQ,EAAE;CACnD,CAAC,CAAA"}
1
+ {"version":3,"file":"textUnitMetadata.js","sourceRoot":"","sources":["../../src/api/textUnitMetadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAA;AAC1B,OAAO,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAA;AACnD,OAAO,EAAE,4BAA4B,EAAE,MAAM,gBAAgB,CAAA;AAE7D,MAAM,CAAC,MAAM,oCAAoC,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3D,8GAA8G;IAC9G,cAAc,EAAE,uBAAuB,CAAC,QAAQ,EAAE;IAClD,SAAS,EAAE,4BAA4B,CAAC,QAAQ,EAAE;CACnD,CAAC,CAAA"}