@form-engine-ts/translator-mock 1.0.0 → 1.1.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/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # @form-engine-ts/translator-mock
2
2
 
3
- Synchronous English/Japanese translation adapter for form-engine-ts demos and tests, with interpolation and locale fallback.
3
+ English/Japanese synchronous catalogs and deterministic asynchronous batch translation for form-engine-ts demos and tests.
4
4
 
5
5
  ## Install
6
6
 
@@ -20,3 +20,6 @@ const translator = createMockTranslationAdapter({
20
20
 
21
21
  translator.translate("greeting", "ja", { name: "Ada" });
22
22
  ```
23
+
24
+ `mockAsyncTranslator` and `createMockAsyncTranslationAdapter()` provide deterministic batch output for exercising the
25
+ FormBuilder pre-translation workflow without network access.
package/dist/index.cjs CHANGED
@@ -20,7 +20,9 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
20
20
  // src/index.ts
21
21
  var index_exports = {};
22
22
  __export(index_exports, {
23
+ createMockAsyncTranslationAdapter: () => createMockAsyncTranslationAdapter,
23
24
  createMockTranslationAdapter: () => createMockTranslationAdapter,
25
+ mockAsyncTranslator: () => mockAsyncTranslator,
24
26
  mockCatalogs: () => mockCatalogs,
25
27
  mockTranslator: () => mockTranslator
26
28
  });
@@ -29,6 +31,10 @@ var sharedEnglish = {
29
31
  "form.title": "Customer feedback",
30
32
  "form.description": "Tell us about your experience. Required fields are marked.",
31
33
  "form.submit": "Send response",
34
+ "form.back": "Back",
35
+ "form.next": "Next",
36
+ "form.step": "Step {{current}} of {{total}}",
37
+ "form.draftRestored": "Draft restored",
32
38
  "field.name.label": "Your name",
33
39
  "field.name.help": "Enter at least {{min}} characters.",
34
40
  "field.name.placeholder": "Ada Lovelace",
@@ -96,6 +102,14 @@ var sharedEnglish = {
96
102
  "preview.resetSuccess": "All responses for this form were deleted.",
97
103
  "preview.resetError": "Responses could not be deleted.",
98
104
  "preview.resetUnavailable": "The selected storage does not support response reset.",
105
+ "preview.crossTab": "Cross tabulation",
106
+ "preview.rowQuestion": "Row question",
107
+ "preview.colQuestion": "Column question",
108
+ "preview.webhook": "Webhook simulation",
109
+ "preview.webhookUrl": "Webhook URL",
110
+ "preview.simulateWebhook": "Send simulated event",
111
+ "preview.webhookSuccess": "The simulated webhook was accepted.",
112
+ "preview.webhookError": "The simulated webhook failed.",
99
113
  "builder.formBuilder": "Form builder",
100
114
  "builder.moveUp": "Move {{title}} up",
101
115
  "builder.moveDown": "Move {{title}} down",
@@ -121,6 +135,22 @@ var sharedEnglish = {
121
135
  "builder.conditionTrue": "true",
122
136
  "builder.conditionFalse": "false",
123
137
  "builder.addQuestion": "Add question",
138
+ "builder.pages": "Page manager",
139
+ "builder.enablePages": "Enable multi-step pages",
140
+ "builder.addPage": "Add page",
141
+ "builder.newPage": "New page",
142
+ "builder.pageTitle": "Page title",
143
+ "builder.pageDescription": "Page description",
144
+ "builder.pageQuestion": "Question to move to the new page",
145
+ "builder.questionPage": "Page",
146
+ "builder.pageCondition": "Page display condition",
147
+ "builder.localization": "Localization",
148
+ "builder.defaultLocale": "Default locale",
149
+ "builder.supportedLocales": "Supported locales",
150
+ "builder.addLocale": "Add locale",
151
+ "builder.editLocale": "Edit locale",
152
+ "builder.autoTranslate": "Translate all text",
153
+ "builder.translationUnavailable": "Provide an async translation adapter to enable automatic translation.",
124
154
  "builder.fieldType.text": "Text",
125
155
  "builder.fieldType.textarea": "Textarea",
126
156
  "builder.fieldType.number": "Number",
@@ -138,6 +168,10 @@ var sharedJapanese = {
138
168
  "form.title": "\u304A\u5BA2\u69D8\u30A2\u30F3\u30B1\u30FC\u30C8",
139
169
  "form.description": "\u3054\u5229\u7528\u4F53\u9A13\u306B\u3064\u3044\u3066\u304A\u805E\u304B\u305B\u304F\u3060\u3055\u3044\u3002\u5FC5\u9808\u9805\u76EE\u306B\u306F\u5370\u304C\u3042\u308A\u307E\u3059\u3002",
140
170
  "form.submit": "\u56DE\u7B54\u3092\u9001\u4FE1",
171
+ "form.back": "\u623B\u308B",
172
+ "form.next": "\u6B21\u3078",
173
+ "form.step": "\u30B9\u30C6\u30C3\u30D7 {{current}} / {{total}}",
174
+ "form.draftRestored": "\u4E0B\u66F8\u304D\u3092\u5FA9\u5143\u3057\u307E\u3057\u305F",
141
175
  "field.name.label": "\u304A\u540D\u524D",
142
176
  "field.name.help": "{{min}}\u6587\u5B57\u4EE5\u4E0A\u3067\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044\u3002",
143
177
  "field.name.placeholder": "\u5C71\u7530 \u592A\u90CE",
@@ -205,6 +239,14 @@ var sharedJapanese = {
205
239
  "preview.resetSuccess": "\u3053\u306E\u30D5\u30A9\u30FC\u30E0\u306E\u56DE\u7B54\u3092\u3059\u3079\u3066\u524A\u9664\u3057\u307E\u3057\u305F\u3002",
206
240
  "preview.resetError": "\u56DE\u7B54\u3092\u524A\u9664\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3002",
207
241
  "preview.resetUnavailable": "\u9078\u629E\u4E2D\u306E\u30B9\u30C8\u30EC\u30FC\u30B8\u306F\u56DE\u7B54\u30EA\u30BB\u30C3\u30C8\u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093\u3002",
242
+ "preview.crossTab": "\u30AF\u30ED\u30B9\u96C6\u8A08",
243
+ "preview.rowQuestion": "\u884C\u306E\u8CEA\u554F",
244
+ "preview.colQuestion": "\u5217\u306E\u8CEA\u554F",
245
+ "preview.webhook": "Webhook\u30B7\u30DF\u30E5\u30EC\u30FC\u30B7\u30E7\u30F3",
246
+ "preview.webhookUrl": "Webhook URL",
247
+ "preview.simulateWebhook": "\u30A4\u30D9\u30F3\u30C8\u3092\u6A21\u64EC\u9001\u4FE1",
248
+ "preview.webhookSuccess": "Webhook\u306E\u6A21\u64EC\u9001\u4FE1\u306B\u6210\u529F\u3057\u307E\u3057\u305F\u3002",
249
+ "preview.webhookError": "Webhook\u306E\u6A21\u64EC\u9001\u4FE1\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002",
208
250
  "builder.formBuilder": "\u30D5\u30A9\u30FC\u30E0\u30D3\u30EB\u30C0\u30FC",
209
251
  "builder.moveUp": "\u300C{{title}}\u300D\u3092\u4E0A\u3078\u79FB\u52D5",
210
252
  "builder.moveDown": "\u300C{{title}}\u300D\u3092\u4E0B\u3078\u79FB\u52D5",
@@ -230,6 +272,22 @@ var sharedJapanese = {
230
272
  "builder.conditionTrue": "\u306F\u3044",
231
273
  "builder.conditionFalse": "\u3044\u3044\u3048",
232
274
  "builder.addQuestion": "\u8CEA\u554F\u3092\u8FFD\u52A0",
275
+ "builder.pages": "\u30DA\u30FC\u30B8\u7BA1\u7406",
276
+ "builder.enablePages": "\u30DE\u30EB\u30C1\u30B9\u30C6\u30C3\u30D7\u3092\u6709\u52B9\u5316",
277
+ "builder.addPage": "\u30DA\u30FC\u30B8\u3092\u8FFD\u52A0",
278
+ "builder.newPage": "\u65B0\u3057\u3044\u30DA\u30FC\u30B8",
279
+ "builder.pageTitle": "\u30DA\u30FC\u30B8\u30BF\u30A4\u30C8\u30EB",
280
+ "builder.pageDescription": "\u8AAC\u660E",
281
+ "builder.pageQuestion": "\u65B0\u3057\u3044\u30DA\u30FC\u30B8\u3078\u79FB\u52D5\u3059\u308B\u8CEA\u554F",
282
+ "builder.questionPage": "\u6240\u5C5E\u30DA\u30FC\u30B8",
283
+ "builder.pageCondition": "\u30DA\u30FC\u30B8\u8868\u793A\u6761\u4EF6",
284
+ "builder.localization": "\u591A\u8A00\u8A9E\u7BA1\u7406",
285
+ "builder.defaultLocale": "\u30C7\u30D5\u30A9\u30EB\u30C8\u8A00\u8A9E",
286
+ "builder.supportedLocales": "\u5BFE\u5FDC\u8A00\u8A9E",
287
+ "builder.addLocale": "\u8A00\u8A9E\u3092\u8FFD\u52A0",
288
+ "builder.editLocale": "\u7DE8\u96C6\u3059\u308B\u8A00\u8A9E",
289
+ "builder.autoTranslate": "\u3059\u3079\u3066\u81EA\u52D5\u7FFB\u8A33",
290
+ "builder.translationUnavailable": "\u81EA\u52D5\u7FFB\u8A33\u3092\u6709\u52B9\u306B\u3059\u308B\u306B\u306F\u975E\u540C\u671F\u7FFB\u8A33\u30A2\u30C0\u30D7\u30BF\u30FC\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002",
233
291
  "builder.fieldType.text": "\u30C6\u30AD\u30B9\u30C8",
234
292
  "builder.fieldType.textarea": "\u30C6\u30AD\u30B9\u30C8\u30A8\u30EA\u30A2",
235
293
  "builder.fieldType.number": "\u6570\u5024",
@@ -256,9 +314,22 @@ function createMockTranslationAdapter(catalogs = mockCatalogs, fallbackLocale =
256
314
  };
257
315
  }
258
316
  var mockTranslator = createMockTranslationAdapter();
317
+ function createMockAsyncTranslationAdapter() {
318
+ return {
319
+ async translateText(text, targetLocale) {
320
+ return `[${targetLocale}] ${text}`;
321
+ },
322
+ async translateBatch(texts, targetLocale) {
323
+ return texts.map((text) => `[${targetLocale}] ${text}`);
324
+ }
325
+ };
326
+ }
327
+ var mockAsyncTranslator = createMockAsyncTranslationAdapter();
259
328
  // Annotate the CommonJS export names for ESM import in node:
260
329
  0 && (module.exports = {
330
+ createMockAsyncTranslationAdapter,
261
331
  createMockTranslationAdapter,
332
+ mockAsyncTranslator,
262
333
  mockCatalogs,
263
334
  mockTranslator
264
335
  });
package/dist/index.d.cts CHANGED
@@ -1,9 +1,11 @@
1
- import { TranslationAdapter } from '@form-engine-ts/core';
1
+ import { AsyncTranslationAdapter, TranslationAdapter } from '@form-engine-ts/core';
2
2
 
3
3
  type TranslationCatalog = Readonly<Record<string, string>>;
4
4
  type TranslationCatalogs = Readonly<Record<string, TranslationCatalog>>;
5
5
  declare const mockCatalogs: TranslationCatalogs;
6
6
  declare function createMockTranslationAdapter(catalogs?: TranslationCatalogs, fallbackLocale?: string): TranslationAdapter;
7
7
  declare const mockTranslator: TranslationAdapter;
8
+ declare function createMockAsyncTranslationAdapter(): AsyncTranslationAdapter;
9
+ declare const mockAsyncTranslator: AsyncTranslationAdapter;
8
10
 
9
- export { type TranslationCatalog, type TranslationCatalogs, createMockTranslationAdapter, mockCatalogs, mockTranslator };
11
+ export { type TranslationCatalog, type TranslationCatalogs, createMockAsyncTranslationAdapter, createMockTranslationAdapter, mockAsyncTranslator, mockCatalogs, mockTranslator };
package/dist/index.d.ts CHANGED
@@ -1,9 +1,11 @@
1
- import { TranslationAdapter } from '@form-engine-ts/core';
1
+ import { AsyncTranslationAdapter, TranslationAdapter } from '@form-engine-ts/core';
2
2
 
3
3
  type TranslationCatalog = Readonly<Record<string, string>>;
4
4
  type TranslationCatalogs = Readonly<Record<string, TranslationCatalog>>;
5
5
  declare const mockCatalogs: TranslationCatalogs;
6
6
  declare function createMockTranslationAdapter(catalogs?: TranslationCatalogs, fallbackLocale?: string): TranslationAdapter;
7
7
  declare const mockTranslator: TranslationAdapter;
8
+ declare function createMockAsyncTranslationAdapter(): AsyncTranslationAdapter;
9
+ declare const mockAsyncTranslator: AsyncTranslationAdapter;
8
10
 
9
- export { type TranslationCatalog, type TranslationCatalogs, createMockTranslationAdapter, mockCatalogs, mockTranslator };
11
+ export { type TranslationCatalog, type TranslationCatalogs, createMockAsyncTranslationAdapter, createMockTranslationAdapter, mockAsyncTranslator, mockCatalogs, mockTranslator };
package/dist/index.js CHANGED
@@ -3,6 +3,10 @@ var sharedEnglish = {
3
3
  "form.title": "Customer feedback",
4
4
  "form.description": "Tell us about your experience. Required fields are marked.",
5
5
  "form.submit": "Send response",
6
+ "form.back": "Back",
7
+ "form.next": "Next",
8
+ "form.step": "Step {{current}} of {{total}}",
9
+ "form.draftRestored": "Draft restored",
6
10
  "field.name.label": "Your name",
7
11
  "field.name.help": "Enter at least {{min}} characters.",
8
12
  "field.name.placeholder": "Ada Lovelace",
@@ -70,6 +74,14 @@ var sharedEnglish = {
70
74
  "preview.resetSuccess": "All responses for this form were deleted.",
71
75
  "preview.resetError": "Responses could not be deleted.",
72
76
  "preview.resetUnavailable": "The selected storage does not support response reset.",
77
+ "preview.crossTab": "Cross tabulation",
78
+ "preview.rowQuestion": "Row question",
79
+ "preview.colQuestion": "Column question",
80
+ "preview.webhook": "Webhook simulation",
81
+ "preview.webhookUrl": "Webhook URL",
82
+ "preview.simulateWebhook": "Send simulated event",
83
+ "preview.webhookSuccess": "The simulated webhook was accepted.",
84
+ "preview.webhookError": "The simulated webhook failed.",
73
85
  "builder.formBuilder": "Form builder",
74
86
  "builder.moveUp": "Move {{title}} up",
75
87
  "builder.moveDown": "Move {{title}} down",
@@ -95,6 +107,22 @@ var sharedEnglish = {
95
107
  "builder.conditionTrue": "true",
96
108
  "builder.conditionFalse": "false",
97
109
  "builder.addQuestion": "Add question",
110
+ "builder.pages": "Page manager",
111
+ "builder.enablePages": "Enable multi-step pages",
112
+ "builder.addPage": "Add page",
113
+ "builder.newPage": "New page",
114
+ "builder.pageTitle": "Page title",
115
+ "builder.pageDescription": "Page description",
116
+ "builder.pageQuestion": "Question to move to the new page",
117
+ "builder.questionPage": "Page",
118
+ "builder.pageCondition": "Page display condition",
119
+ "builder.localization": "Localization",
120
+ "builder.defaultLocale": "Default locale",
121
+ "builder.supportedLocales": "Supported locales",
122
+ "builder.addLocale": "Add locale",
123
+ "builder.editLocale": "Edit locale",
124
+ "builder.autoTranslate": "Translate all text",
125
+ "builder.translationUnavailable": "Provide an async translation adapter to enable automatic translation.",
98
126
  "builder.fieldType.text": "Text",
99
127
  "builder.fieldType.textarea": "Textarea",
100
128
  "builder.fieldType.number": "Number",
@@ -112,6 +140,10 @@ var sharedJapanese = {
112
140
  "form.title": "\u304A\u5BA2\u69D8\u30A2\u30F3\u30B1\u30FC\u30C8",
113
141
  "form.description": "\u3054\u5229\u7528\u4F53\u9A13\u306B\u3064\u3044\u3066\u304A\u805E\u304B\u305B\u304F\u3060\u3055\u3044\u3002\u5FC5\u9808\u9805\u76EE\u306B\u306F\u5370\u304C\u3042\u308A\u307E\u3059\u3002",
114
142
  "form.submit": "\u56DE\u7B54\u3092\u9001\u4FE1",
143
+ "form.back": "\u623B\u308B",
144
+ "form.next": "\u6B21\u3078",
145
+ "form.step": "\u30B9\u30C6\u30C3\u30D7 {{current}} / {{total}}",
146
+ "form.draftRestored": "\u4E0B\u66F8\u304D\u3092\u5FA9\u5143\u3057\u307E\u3057\u305F",
115
147
  "field.name.label": "\u304A\u540D\u524D",
116
148
  "field.name.help": "{{min}}\u6587\u5B57\u4EE5\u4E0A\u3067\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044\u3002",
117
149
  "field.name.placeholder": "\u5C71\u7530 \u592A\u90CE",
@@ -179,6 +211,14 @@ var sharedJapanese = {
179
211
  "preview.resetSuccess": "\u3053\u306E\u30D5\u30A9\u30FC\u30E0\u306E\u56DE\u7B54\u3092\u3059\u3079\u3066\u524A\u9664\u3057\u307E\u3057\u305F\u3002",
180
212
  "preview.resetError": "\u56DE\u7B54\u3092\u524A\u9664\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3002",
181
213
  "preview.resetUnavailable": "\u9078\u629E\u4E2D\u306E\u30B9\u30C8\u30EC\u30FC\u30B8\u306F\u56DE\u7B54\u30EA\u30BB\u30C3\u30C8\u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093\u3002",
214
+ "preview.crossTab": "\u30AF\u30ED\u30B9\u96C6\u8A08",
215
+ "preview.rowQuestion": "\u884C\u306E\u8CEA\u554F",
216
+ "preview.colQuestion": "\u5217\u306E\u8CEA\u554F",
217
+ "preview.webhook": "Webhook\u30B7\u30DF\u30E5\u30EC\u30FC\u30B7\u30E7\u30F3",
218
+ "preview.webhookUrl": "Webhook URL",
219
+ "preview.simulateWebhook": "\u30A4\u30D9\u30F3\u30C8\u3092\u6A21\u64EC\u9001\u4FE1",
220
+ "preview.webhookSuccess": "Webhook\u306E\u6A21\u64EC\u9001\u4FE1\u306B\u6210\u529F\u3057\u307E\u3057\u305F\u3002",
221
+ "preview.webhookError": "Webhook\u306E\u6A21\u64EC\u9001\u4FE1\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002",
182
222
  "builder.formBuilder": "\u30D5\u30A9\u30FC\u30E0\u30D3\u30EB\u30C0\u30FC",
183
223
  "builder.moveUp": "\u300C{{title}}\u300D\u3092\u4E0A\u3078\u79FB\u52D5",
184
224
  "builder.moveDown": "\u300C{{title}}\u300D\u3092\u4E0B\u3078\u79FB\u52D5",
@@ -204,6 +244,22 @@ var sharedJapanese = {
204
244
  "builder.conditionTrue": "\u306F\u3044",
205
245
  "builder.conditionFalse": "\u3044\u3044\u3048",
206
246
  "builder.addQuestion": "\u8CEA\u554F\u3092\u8FFD\u52A0",
247
+ "builder.pages": "\u30DA\u30FC\u30B8\u7BA1\u7406",
248
+ "builder.enablePages": "\u30DE\u30EB\u30C1\u30B9\u30C6\u30C3\u30D7\u3092\u6709\u52B9\u5316",
249
+ "builder.addPage": "\u30DA\u30FC\u30B8\u3092\u8FFD\u52A0",
250
+ "builder.newPage": "\u65B0\u3057\u3044\u30DA\u30FC\u30B8",
251
+ "builder.pageTitle": "\u30DA\u30FC\u30B8\u30BF\u30A4\u30C8\u30EB",
252
+ "builder.pageDescription": "\u8AAC\u660E",
253
+ "builder.pageQuestion": "\u65B0\u3057\u3044\u30DA\u30FC\u30B8\u3078\u79FB\u52D5\u3059\u308B\u8CEA\u554F",
254
+ "builder.questionPage": "\u6240\u5C5E\u30DA\u30FC\u30B8",
255
+ "builder.pageCondition": "\u30DA\u30FC\u30B8\u8868\u793A\u6761\u4EF6",
256
+ "builder.localization": "\u591A\u8A00\u8A9E\u7BA1\u7406",
257
+ "builder.defaultLocale": "\u30C7\u30D5\u30A9\u30EB\u30C8\u8A00\u8A9E",
258
+ "builder.supportedLocales": "\u5BFE\u5FDC\u8A00\u8A9E",
259
+ "builder.addLocale": "\u8A00\u8A9E\u3092\u8FFD\u52A0",
260
+ "builder.editLocale": "\u7DE8\u96C6\u3059\u308B\u8A00\u8A9E",
261
+ "builder.autoTranslate": "\u3059\u3079\u3066\u81EA\u52D5\u7FFB\u8A33",
262
+ "builder.translationUnavailable": "\u81EA\u52D5\u7FFB\u8A33\u3092\u6709\u52B9\u306B\u3059\u308B\u306B\u306F\u975E\u540C\u671F\u7FFB\u8A33\u30A2\u30C0\u30D7\u30BF\u30FC\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002",
207
263
  "builder.fieldType.text": "\u30C6\u30AD\u30B9\u30C8",
208
264
  "builder.fieldType.textarea": "\u30C6\u30AD\u30B9\u30C8\u30A8\u30EA\u30A2",
209
265
  "builder.fieldType.number": "\u6570\u5024",
@@ -230,8 +286,21 @@ function createMockTranslationAdapter(catalogs = mockCatalogs, fallbackLocale =
230
286
  };
231
287
  }
232
288
  var mockTranslator = createMockTranslationAdapter();
289
+ function createMockAsyncTranslationAdapter() {
290
+ return {
291
+ async translateText(text, targetLocale) {
292
+ return `[${targetLocale}] ${text}`;
293
+ },
294
+ async translateBatch(texts, targetLocale) {
295
+ return texts.map((text) => `[${targetLocale}] ${text}`);
296
+ }
297
+ };
298
+ }
299
+ var mockAsyncTranslator = createMockAsyncTranslationAdapter();
233
300
  export {
301
+ createMockAsyncTranslationAdapter,
234
302
  createMockTranslationAdapter,
303
+ mockAsyncTranslator,
235
304
  mockCatalogs,
236
305
  mockTranslator
237
306
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@form-engine-ts/translator-mock",
3
- "version": "1.0.0",
3
+ "version": "1.1.0",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -39,7 +39,7 @@
39
39
  "typescript"
40
40
  ],
41
41
  "dependencies": {
42
- "@form-engine-ts/core": "1.0.0"
42
+ "@form-engine-ts/core": "1.1.0"
43
43
  },
44
44
  "scripts": {
45
45
  "build": "tsup src/index.ts --format esm,cjs --dts --clean --external @form-engine-ts/core",