shinkansen-transmission 2.2.235 → 2.3.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 (38) hide show
  1. package/babel.config.cjs +1 -0
  2. package/eslint.config.mjs +28 -30
  3. package/index.d.mts +321 -16
  4. package/package.json +6 -6
  5. package/src/index.cjs +2 -0
  6. package/src/index.d.mts +10 -9
  7. package/src/transmission/common/index.d.mts +152 -87
  8. package/src/transmission/common/index.mjs +627 -193
  9. package/src/transmission/from-document-to-hash/array/index.mjs +20 -4
  10. package/src/transmission/from-document-to-hash/boolean/index.mjs +25 -9
  11. package/src/transmission/from-document-to-hash/index.d.mts +8 -19
  12. package/src/transmission/from-document-to-hash/index.mjs +102 -16
  13. package/src/transmission/from-document-to-hash/null/index.mjs +25 -9
  14. package/src/transmission/from-document-to-hash/number/index.mjs +25 -9
  15. package/src/transmission/from-document-to-hash/object/index.mjs +22 -6
  16. package/src/transmission/from-document-to-hash/string/index.mjs +25 -9
  17. package/src/transmission/from-hash-to-document/array/index.mjs +22 -5
  18. package/src/transmission/from-hash-to-document/boolean/index.mjs +21 -4
  19. package/src/transmission/from-hash-to-document/index.d.mts +24 -26
  20. package/src/transmission/from-hash-to-document/index.mjs +264 -142
  21. package/src/transmission/from-hash-to-document/null/index.mjs +21 -4
  22. package/src/transmission/from-hash-to-document/number/index.mjs +21 -4
  23. package/src/transmission/from-hash-to-document/object/index.mjs +22 -5
  24. package/src/transmission/from-hash-to-document/string/index.mjs +26 -4
  25. package/src/transmission/index.d.mts +4 -10
  26. package/src/transmission/to-zashiki/index.d.mts +5 -13
  27. package/src/transmission/to-zashiki/params/index.mjs +430 -0
  28. package/src/transmission/to-zashiki/render/array/index.mjs +737 -0
  29. package/src/transmission/to-zashiki/render/boolean/index.mjs +794 -0
  30. package/src/transmission/to-zashiki/render/index.mjs +157 -0
  31. package/src/transmission/to-zashiki/render/null/index.mjs +796 -0
  32. package/src/transmission/to-zashiki/render/number/index.mjs +940 -0
  33. package/src/transmission/to-zashiki/render/object/index.mjs +653 -0
  34. package/src/transmission/to-zashiki/render/string/index.mjs +910 -0
  35. package/src/transmission/to-zashiki/render-params/root-schema/index.mjs +212 -0
  36. package/src/transmission/to-zashiki/render-params/schema/index.mjs +731 -0
  37. package/src/transmission/to-zashiki/transform-root-schema.mjs +485 -421
  38. package/src/transmission/to-zashiki/transform-schema.mjs +1988 -4663
@@ -0,0 +1,910 @@
1
+ /**
2
+ * @typedef {TransmissionTypes.ObjectLiteralType} ObjectLiteralType
3
+ * @typedef {TransmissionTypes.ObjectType} ObjectType
4
+ *
5
+ * @typedef {TransmissionTypes.EnumType} EnumType
6
+ * @typedef {TransmissionTypes.AnyOfType} AnyOfType
7
+ * @typedef {TransmissionTypes.OneOfType} OneOfType
8
+ * @typedef {TransmissionTypes.FieldType} FieldType
9
+ *
10
+ * @typedef {TransmissionTypes.SchemaType} SchemaType
11
+ * @typedef {TransmissionTypes.ValuesType} ValuesType
12
+ * @typedef {TransmissionTypes.ParamsType} ParamsType
13
+ *
14
+ * @typedef {TransmissionTypes.Zashiki.ZashikiType} ZashikiType
15
+ *
16
+ * @typedef {TransmissionTypes.Zashiki.StringMetaType} ZashikiStringMetaType
17
+ * @typedef {TransmissionTypes.Zashiki.NumberMetaType} ZashikiNumberMetaType
18
+ * @typedef {TransmissionTypes.Zashiki.ArrayMetaType} ZashikiArrayMetaType
19
+ * @typedef {TransmissionTypes.Zashiki.ObjectMetaType} ZashikiObjectMetaType
20
+ * @typedef {TransmissionTypes.Zashiki.BooleanMetaType} ZashikiBooleanMetaType
21
+ * @typedef {TransmissionTypes.Zashiki.NullMetaType} ZashikiNullMetaType
22
+ *
23
+ * @typedef {TransmissionTypes.Zashiki.StringElementsType} ZashikiStringElementsType
24
+ * @typedef {TransmissionTypes.Zashiki.NumberElementsType} ZashikiNumberElementsType
25
+ * @typedef {TransmissionTypes.Zashiki.ArrayElementsType} ZashikiArrayElementsType
26
+ * @typedef {TransmissionTypes.Zashiki.ObjectElementsType} ZashikiObjectElementsType
27
+ * @typedef {TransmissionTypes.Zashiki.BooleanElementsType} ZashikiBooleanElementsType
28
+ * @typedef {TransmissionTypes.Zashiki.NullElementsType} ZashikiNullElementsType
29
+ */
30
+
31
+ import debug from 'debug'
32
+
33
+ import {
34
+ isArray,
35
+ getTitle,
36
+ getDescription,
37
+ isParentUri,
38
+ getMinLength,
39
+ getMaxLength,
40
+ getPattern,
41
+ getMetaProps,
42
+ getMetaDefaultValue,
43
+ getMetaValue,
44
+ getElementsFieldPropsForEnum,
45
+ getElementsFieldPropsForAnyOf,
46
+ getElementsFieldPropsForOneOf,
47
+ getElementsFieldProps,
48
+ getElementsFieldValue
49
+ } from '#transmission/transmission/common'
50
+
51
+ const log = debug('shinkansen-transmission/to-zashiki/render/string')
52
+
53
+ log('`shinkansen` is awake')
54
+
55
+ /**
56
+ * @param {ParamsType} params
57
+ * @param {string} uri
58
+ * @param {{ minLength?: number }} minLength
59
+ * @param {{ maxLength?: number }} maxLength
60
+ * @param {{ pattern?: RegExp }} pattern
61
+ * @returns {ZashikiStringMetaType}
62
+ */
63
+ export function renderStringMetaForEnum (params, uri, minLength, maxLength, pattern) {
64
+ /**
65
+ * log('renderStringMetaForEnum')
66
+ */
67
+
68
+ /**
69
+ * @type {{ parentUri?: string }}
70
+ */
71
+ const {
72
+ parentUri = '#',
73
+ ...metaProps
74
+ } = getMetaProps(params, uri)
75
+
76
+ return (
77
+ Object.assign(
78
+ {
79
+ uri,
80
+ type: 'string'
81
+ },
82
+ isParentUri(parentUri, uri) ? { parentUri } : {},
83
+ minLength,
84
+ maxLength,
85
+ pattern,
86
+ metaProps
87
+ )
88
+ )
89
+ }
90
+
91
+ /**
92
+ * @param {ParamsType} params
93
+ * @param {string} uri
94
+ * @param {{ minLength?: number }} minLength
95
+ * @param {{ maxLength?: number }} maxLength
96
+ * @param {{ pattern?: RegExp }} pattern
97
+ * @returns {ZashikiStringMetaType}
98
+ */
99
+ export function renderStringMetaForAnyOf (params, uri, minLength, maxLength, pattern) {
100
+ /**
101
+ * log('renderStringMetaForAnyOf')
102
+ */
103
+
104
+ /**
105
+ * @type {{ parentUri?: string }}
106
+ */
107
+ const {
108
+ parentUri = '#',
109
+ ...metaProps
110
+ } = getMetaProps(params, uri)
111
+
112
+ return (
113
+ Object.assign(
114
+ {
115
+ uri,
116
+ type: 'string'
117
+ },
118
+ isParentUri(parentUri, uri) ? { parentUri } : {},
119
+ minLength,
120
+ maxLength,
121
+ pattern,
122
+ metaProps
123
+ )
124
+ )
125
+ }
126
+
127
+ /**
128
+ * @param {ParamsType} params
129
+ * @param {string} uri
130
+ * @param {{ minLength?: number }} minLength
131
+ * @param {{ maxLength?: number }} maxLength
132
+ * @param {{ pattern?: RegExp }} pattern
133
+ * @returns {ZashikiStringMetaType}
134
+ */
135
+ export function renderStringMetaForOneOf (params, uri, minLength, maxLength, pattern) {
136
+ /**
137
+ * log('renderStringMetaForOneOf')
138
+ */
139
+
140
+ /**
141
+ * @type {{ parentUri?: string }}
142
+ */
143
+ const {
144
+ parentUri = '#',
145
+ ...metaProps
146
+ } = getMetaProps(params, uri)
147
+
148
+ return (
149
+ Object.assign(
150
+ {
151
+ uri,
152
+ type: 'string'
153
+ },
154
+ isParentUri(parentUri, uri) ? { parentUri } : {},
155
+ minLength,
156
+ maxLength,
157
+ pattern,
158
+ metaProps
159
+ )
160
+ )
161
+ }
162
+
163
+ /**
164
+ * @param {SchemaType} schema
165
+ * @param {ValuesType} values
166
+ * @param {ParamsType} params
167
+ * @param {string} uri
168
+ * @param {{ minLength?: number }} minLength
169
+ * @param {{ maxLength?: number }} maxLength
170
+ * @param {{ pattern?: RegExp }} pattern
171
+ * @returns {ZashikiStringMetaType}
172
+ */
173
+ export function getStringMetaForAllOf (schema, values, params, uri, minLength, maxLength, pattern) {
174
+ /**
175
+ * log('getStringMetaForAllOf)
176
+ */
177
+
178
+ const metaDefaultValue = getMetaDefaultValue(schema) // , uri)
179
+ const metaValue = getMetaValue(values, uri, schema)
180
+
181
+ /**
182
+ * @type {{ parentUri?: string }}
183
+ */
184
+ const {
185
+ parentUri = '#',
186
+ ...metaProps
187
+ } = getMetaProps(params, uri)
188
+
189
+ return (
190
+ Object.assign(
191
+ {
192
+ uri,
193
+ type: 'string'
194
+ },
195
+ isParentUri(parentUri, uri) ? { parentUri } : {},
196
+ minLength,
197
+ maxLength,
198
+ pattern,
199
+ metaDefaultValue,
200
+ metaValue,
201
+ metaProps
202
+ )
203
+ )
204
+ }
205
+
206
+ /**
207
+ * @param {SchemaType} schema
208
+ * @param {ValuesType} values
209
+ * @param {ParamsType} params
210
+ * @param {string} uri
211
+ * @param {{ minLength?: number }} minLength
212
+ * @param {{ maxLength?: number }} maxLength
213
+ * @param {{ pattern?: RegExp }} pattern
214
+ * @returns {ZashikiStringMetaType}
215
+ */
216
+ export function renderStringMetaForAllOf (schema, values, params, uri, minLength, maxLength, pattern) {
217
+ /**
218
+ * log('renderStringMetaForAllOf')
219
+ */
220
+
221
+ /**
222
+ * @type {{ parentUri?: string }}
223
+ */
224
+ const {
225
+ parentUri = '#'
226
+ } = getMetaProps(params, uri)
227
+
228
+ if (isParentUri(parentUri, uri)) {
229
+ const {
230
+ selectedItems
231
+ } = getMetaProps(params, parentUri)
232
+
233
+ return (
234
+ Object.assign(
235
+ getStringMetaForAllOf(schema, values, params, uri, minLength, maxLength, pattern),
236
+ isArray(selectedItems) ? { selectedItems } : {}
237
+ )
238
+ )
239
+ }
240
+
241
+ return (
242
+ getStringMetaForAllOf(schema, values, params, uri, minLength, maxLength, pattern)
243
+ )
244
+ }
245
+
246
+ /**
247
+ * @param {SchemaType} schema
248
+ * @param {ValuesType} values
249
+ * @param {ParamsType} params
250
+ * @param {string} uri
251
+ * @param {{ minLength?: number }} minLength
252
+ * @param {{ maxLength?: number }} maxLength
253
+ * @param {{ pattern?: RegExp }} pattern
254
+ * @returns {ZashikiStringMetaType}
255
+ */
256
+ export function getStringMeta (schema, values, params, uri, minLength, maxLength, pattern) {
257
+ /**
258
+ * log('getStringMeta')
259
+ */
260
+
261
+ const metaDefaultValue = getMetaDefaultValue(schema) // , uri)
262
+ const metaValue = getMetaValue(values, uri, schema)
263
+
264
+ /**
265
+ * @type {{ parentUri?: string }}
266
+ */
267
+ const {
268
+ parentUri = '#',
269
+ ...metaProps
270
+ } = getMetaProps(params, uri)
271
+
272
+ return (
273
+ Object.assign(
274
+ {
275
+ uri,
276
+ type: 'string'
277
+ },
278
+ isParentUri(parentUri, uri) ? { parentUri } : {},
279
+ minLength,
280
+ maxLength,
281
+ pattern,
282
+ metaDefaultValue,
283
+ metaValue,
284
+ metaProps
285
+ )
286
+ )
287
+ }
288
+
289
+ /**
290
+ * @param {SchemaType} schema
291
+ * @param {ValuesType} values
292
+ * @param {ParamsType} params
293
+ * @param {string} uri
294
+ * @param {{ minLength?: number }} minLength
295
+ * @param {{ maxLength?: number }} maxLength
296
+ * @param {{ pattern?: RegExp }} pattern
297
+ * @returns {ZashikiStringMetaType}
298
+ */
299
+ export function renderStringMeta (schema, values, params, uri, minLength, maxLength, pattern) {
300
+ /**
301
+ * log('renderStringMeta')
302
+ */
303
+
304
+ /**
305
+ * @type {{ parentUri?: string }}
306
+ */
307
+ const {
308
+ parentUri = '#'
309
+ } = getMetaProps(params, uri)
310
+
311
+ if (isParentUri(parentUri, uri)) {
312
+ const {
313
+ selectedItems
314
+ } = getMetaProps(params, parentUri)
315
+
316
+ return (
317
+ Object.assign(
318
+ getStringMeta(schema, values, params, uri, minLength, maxLength, pattern),
319
+ isArray(selectedItems) ? { selectedItems } : {}
320
+ )
321
+ )
322
+ }
323
+
324
+ return (
325
+ getStringMeta(schema, values, params, uri, minLength, maxLength, pattern)
326
+ )
327
+ }
328
+
329
+ /**
330
+ * @param {ObjectLiteralType | ObjectType} field
331
+ * @param {ParamsType} params
332
+ * @param {string} uri
333
+ * @param {{ minLength?: number }} minLength
334
+ * @param {{ maxLength?: number }} maxLength
335
+ * @param {{ pattern?: RegExp }} pattern
336
+ * @returns {EnumType}
337
+ */
338
+ export function renderStringElementsFieldForEnum (field, params, uri, minLength, maxLength, pattern) {
339
+ /**
340
+ * log('renderStringElementsFieldForEnum')
341
+ */
342
+
343
+ const fieldProps = getElementsFieldPropsForEnum(params, uri)
344
+
345
+ return (
346
+ Object.assign(
347
+ field,
348
+ minLength,
349
+ maxLength,
350
+ pattern,
351
+ fieldProps,
352
+ {
353
+ id: uri
354
+ }
355
+ )
356
+ )
357
+ }
358
+
359
+ /**
360
+ * @param {ObjectLiteralType | ObjectType} field
361
+ * @param {ParamsType} params
362
+ * @param {string} uri
363
+ * @param {{ minLength?: number }} minLength
364
+ * @param {{ maxLength?: number }} maxLength
365
+ * @param {{ pattern?: RegExp }} pattern
366
+ * @returns {AnyOfType}
367
+ */
368
+ export function renderStringElementsFieldForAnyOf (field, params, uri, minLength, maxLength, pattern) {
369
+ /**
370
+ * log('renderStringElementsFieldForAnyOf')
371
+ */
372
+
373
+ const fieldProps = getElementsFieldPropsForAnyOf(params, uri)
374
+
375
+ return (
376
+ Object.assign(
377
+ field,
378
+ minLength,
379
+ maxLength,
380
+ pattern,
381
+ fieldProps,
382
+ {
383
+ id: uri
384
+ }
385
+ )
386
+ )
387
+ }
388
+
389
+ /**
390
+ * @param {ObjectLiteralType | ObjectType} field
391
+ * @param {ParamsType} params
392
+ * @param {string} uri
393
+ * @param {{ minLength?: number }} minLength
394
+ * @param {{ maxLength?: number }} maxLength
395
+ * @param {{ pattern?: RegExp }} pattern
396
+ * @returns {OneOfType}
397
+ */
398
+ export function renderStringElementsFieldForOneOf (field, params, uri, minLength, maxLength, pattern) {
399
+ /**
400
+ * log('renderStringElementsFieldForOneOf')
401
+ */
402
+
403
+ const fieldProps = getElementsFieldPropsForOneOf(params, uri)
404
+
405
+ return (
406
+ Object.assign(
407
+ field,
408
+ minLength,
409
+ maxLength,
410
+ pattern,
411
+ fieldProps,
412
+ {
413
+ id: uri
414
+ }
415
+ )
416
+ )
417
+ }
418
+
419
+ /**
420
+ * @param {ObjectLiteralType | ObjectType} field
421
+ * @param {SchemaType} schema
422
+ * @param {ValuesType} values
423
+ * @param {ParamsType} params
424
+ * @param {string} uri
425
+ * @param {{ minLength?: number }} minLength
426
+ * @param {{ maxLength?: number }} maxLength
427
+ * @param {{ pattern?: RegExp }} pattern
428
+ * @returns {ObjectLiteralType | ObjectType}
429
+ */
430
+ export function getStringElementsFieldForAllOf (field, schema, values, params, uri, minLength, maxLength, pattern) {
431
+ /**
432
+ * log('getStringElementsFieldForAllOf')
433
+ */
434
+
435
+ const fieldValue = getElementsFieldValue(values, uri, schema)
436
+ const fieldProps = getElementsFieldProps(params, uri)
437
+
438
+ return (
439
+ Object.assign(
440
+ field,
441
+ minLength,
442
+ maxLength,
443
+ pattern,
444
+ fieldValue,
445
+ fieldProps
446
+ )
447
+ )
448
+ }
449
+
450
+ /**
451
+ * @param {ObjectLiteralType | ObjectType} field
452
+ * @param {SchemaType} schema
453
+ * @param {ValuesType} values
454
+ * @param {ParamsType} params
455
+ * @param {string} uri
456
+ * @param {{ minLength?: number }} minLength
457
+ * @param {{ maxLength?: number }} maxLength
458
+ * @param {{ pattern?: RegExp }} pattern
459
+ * @returns {FieldType}
460
+ */
461
+ export function renderStringElementsFieldForAllOf (field, schema, values, params, uri, minLength, maxLength, pattern) {
462
+ /**
463
+ * log('renderStringElementsFieldForAllOf')
464
+ */
465
+
466
+ const {
467
+ parentUri = '#'
468
+ } = params
469
+
470
+ if (isParentUri(parentUri, uri)) {
471
+ const {
472
+ selectedItems
473
+ } = getMetaProps(params, parentUri)
474
+
475
+ return (
476
+ Object.assign(
477
+ getStringElementsFieldForAllOf(field, schema, values, params, uri, minLength, maxLength, pattern),
478
+ isArray(selectedItems) ? { selectedItems } : {},
479
+ {
480
+ id: uri
481
+ }
482
+ )
483
+ )
484
+ }
485
+
486
+ return (
487
+ Object.assign(
488
+ getStringElementsFieldForAllOf(field, schema, values, params, uri, minLength, maxLength, pattern),
489
+ {
490
+ id: uri
491
+ }
492
+ )
493
+ )
494
+ }
495
+
496
+ /**
497
+ * @param {ObjectLiteralType | ObjectType} field
498
+ * @param {SchemaType} schema
499
+ * @param {ValuesType} values
500
+ * @param {ParamsType} params
501
+ * @param {string} uri
502
+ * @param {{ minLength?: number }} minLength
503
+ * @param {{ maxLength?: number }} maxLength
504
+ * @param {{ pattern?: RegExp }} pattern
505
+ * @returns {ObjectLiteralType | ObjectType}
506
+ */
507
+ export function getStringElementsField (field, schema, values, params, uri, minLength, maxLength, pattern) {
508
+ /**
509
+ * log('getStringElementsField')
510
+ */
511
+
512
+ const fieldValue = getElementsFieldValue(values, uri, schema)
513
+ const fieldProps = getElementsFieldProps(params, uri)
514
+
515
+ return (
516
+ Object.assign(
517
+ field,
518
+ minLength,
519
+ maxLength,
520
+ pattern,
521
+ fieldValue,
522
+ fieldProps
523
+ )
524
+ )
525
+ }
526
+
527
+ /**
528
+ * @param {ObjectLiteralType | ObjectType} field
529
+ * @param {SchemaType} schema
530
+ * @param {ValuesType} values
531
+ * @param {ParamsType} params
532
+ * @param {string} uri
533
+ * @param {{ minLength?: number }} minLength
534
+ * @param {{ maxLength?: number }} maxLength
535
+ * @param {{ pattern?: RegExp }} pattern
536
+ * @returns {FieldType}
537
+ */
538
+ export function renderStringElementsField (field, schema, values, params, uri, minLength, maxLength, pattern) {
539
+ /**
540
+ * log('renderStringElementsField')
541
+ */
542
+
543
+ const {
544
+ parentUri = '#'
545
+ } = params
546
+
547
+ if (isParentUri(parentUri, uri)) {
548
+ const {
549
+ selectedItems
550
+ } = getMetaProps(params, parentUri)
551
+
552
+ return (
553
+ Object.assign(
554
+ getStringElementsField(field, schema, values, params, uri, minLength, maxLength, pattern),
555
+ isArray(selectedItems) ? { selectedItems } : {},
556
+ {
557
+ id: uri
558
+ }
559
+ )
560
+ )
561
+ }
562
+
563
+ return (
564
+ Object.assign(
565
+ getStringElementsField(field, schema, values, params, uri, minLength, maxLength, pattern),
566
+ {
567
+ id: uri
568
+ }
569
+ )
570
+ )
571
+ }
572
+
573
+ /**
574
+ * @param {ObjectLiteralType | ObjectType} elements
575
+ * @param {SchemaType} schema
576
+ * @returns {ObjectLiteralType | ObjectType}
577
+ */
578
+ export function getStringElements (elements, schema) {
579
+ /**
580
+ * log('getStringElements')
581
+ */
582
+
583
+ return (
584
+ Object.assign(
585
+ elements,
586
+ getTitle(schema),
587
+ getDescription(schema)
588
+ )
589
+ )
590
+ }
591
+
592
+ /**
593
+ * @param {SchemaType} schema
594
+ * @param {ParamsType} params
595
+ * @param {string} uri
596
+ * @param {{ minLength?: number }} minLength
597
+ * @param {{ maxLength?: number }} maxLength
598
+ * @param {{ pattern?: RegExp }} pattern
599
+ * @returns {ZashikiStringElementsType}
600
+ */
601
+ export function renderStringElementsForEnum (schema, params, uri, minLength, maxLength, pattern) {
602
+ /**
603
+ * log('renderStringElementsForEnum')
604
+ */
605
+
606
+ /**
607
+ * @type {ObjectLiteralType}
608
+ */
609
+ const elements = {}
610
+
611
+ /**
612
+ * @type {ObjectLiteralType}
613
+ */
614
+ const field = {}
615
+
616
+ return (
617
+ Object.assign(
618
+ getStringElements(elements, schema),
619
+ {
620
+ enum: renderStringElementsFieldForEnum(field, params, uri, minLength, maxLength, pattern)
621
+ }
622
+ )
623
+ )
624
+ }
625
+
626
+ /**
627
+ * @param {SchemaType} schema
628
+ * @param {ParamsType} params
629
+ * @param {string} uri
630
+ * @param {{ minLength?: number }} minLength
631
+ * @param {{ maxLength?: number }} maxLength
632
+ * @param {{ pattern?: RegExp }} pattern
633
+ * @returns {ZashikiStringElementsType}
634
+ */
635
+ export function renderStringElementsForAnyOf (schema, params, uri, minLength, maxLength, pattern) {
636
+ /**
637
+ * log('renderStringElementsForAnyOf')
638
+ */
639
+
640
+ /**
641
+ * @type {ObjectLiteralType}
642
+ */
643
+ const elements = {}
644
+
645
+ /**
646
+ * @type {ObjectLiteralType}
647
+ */
648
+ const field = {}
649
+
650
+ return (
651
+ Object.assign(
652
+ getStringElements(elements, schema),
653
+ {
654
+ anyOf: renderStringElementsFieldForAnyOf(field, params, uri, minLength, maxLength, pattern)
655
+ }
656
+ )
657
+ )
658
+ }
659
+
660
+ /**
661
+ * @param {SchemaType} schema
662
+ * @param {ParamsType} params
663
+ * @param {string} uri
664
+ * @param {{ minLength?: number }} minLength
665
+ * @param {{ maxLength?: number }} maxLength
666
+ * @param {{ pattern?: RegExp }} pattern
667
+ * @returns {ZashikiStringElementsType}
668
+ */
669
+ export function renderStringElementsForOneOf (schema, params, uri, minLength, maxLength, pattern) {
670
+ /**
671
+ * log('renderStringElementsForOneOf')
672
+ */
673
+
674
+ /**
675
+ * @type {ObjectLiteralType}
676
+ */
677
+ const elements = {}
678
+
679
+ /**
680
+ * @type {ObjectLiteralType}
681
+ */
682
+ const field = {}
683
+
684
+ return (
685
+ Object.assign(
686
+ getStringElements(elements, schema),
687
+ {
688
+ oneOf: renderStringElementsFieldForOneOf(field, params, uri, minLength, maxLength, pattern)
689
+ }
690
+ )
691
+ )
692
+ }
693
+
694
+ /**
695
+ * @param {SchemaType} schema
696
+ * @param {ValuesType} values
697
+ * @param {ParamsType} params
698
+ * @param {string} uri
699
+ * @param {{ minLength?: number }} minLength
700
+ * @param {{ maxLength?: number }} maxLength
701
+ * @param {{ pattern?: RegExp }} pattern
702
+ * @returns {ZashikiStringElementsType}
703
+ */
704
+ export function renderStringElementsForAllOf (schema, values, params, uri, minLength, maxLength, pattern) {
705
+ /**
706
+ * log('renderStringElementsForAllOf')
707
+ */
708
+
709
+ /**
710
+ * @type {ObjectLiteralType}
711
+ */
712
+ const elements = {}
713
+
714
+ /**
715
+ * @type {ObjectLiteralType}
716
+ */
717
+ const field = {}
718
+
719
+ return (
720
+ Object.assign(
721
+ getStringElements(elements, schema),
722
+ {
723
+ field: renderStringElementsFieldForAllOf(field, schema, values, params, uri, minLength, maxLength, pattern)
724
+ }
725
+ )
726
+ )
727
+ }
728
+
729
+ /**
730
+ * @param {SchemaType} schema
731
+ * @param {ValuesType} values
732
+ * @param {ParamsType} params
733
+ * @param {string} uri
734
+ * @param {{ minLength?: number }} minLength
735
+ * @param {{ maxLength?: number }} maxLength
736
+ * @param {{ pattern?: RegExp }} pattern
737
+ * @returns {ZashikiStringElementsType}
738
+ */
739
+ export function renderStringElements (schema, values, params, uri, minLength, maxLength, pattern) {
740
+ /**
741
+ * log('renderStringElements')
742
+ */
743
+
744
+ /**
745
+ * @type {ObjectLiteralType}
746
+ */
747
+ const elements = {}
748
+
749
+ /**
750
+ * @type {ObjectLiteralType}
751
+ */
752
+ const field = {}
753
+
754
+ return (
755
+ Object.assign(
756
+ getStringElements(elements, schema),
757
+ {
758
+ field: renderStringElementsField(field, schema, values, params, uri, minLength, maxLength, pattern)
759
+ }
760
+ )
761
+ )
762
+ }
763
+
764
+ /**
765
+ * "enum"
766
+ *
767
+ * @param {SchemaType} schema
768
+ * @param {ValuesType} values
769
+ * @param {ParamsType} params
770
+ * @returns {ZashikiType}
771
+ */
772
+ export function renderStringForEnum (schema, values, params) {
773
+ /**
774
+ * log('renderStringForEnum')
775
+ */
776
+
777
+ const {
778
+ uri = '#/'
779
+ } = params
780
+
781
+ const minLength = getMinLength(schema)
782
+ const maxLength = getMaxLength(schema)
783
+ const pattern = getPattern(schema)
784
+
785
+ const meta = renderStringMetaForEnum(params, uri, minLength, maxLength, pattern)
786
+ const elements = renderStringElementsForEnum(schema, params, uri, minLength, maxLength, pattern)
787
+
788
+ return {
789
+ meta,
790
+ elements
791
+ }
792
+ }
793
+
794
+ /**
795
+ * "anyOf"
796
+ *
797
+ * @param {SchemaType} schema
798
+ * @param {ValuesType} values
799
+ * @param {ParamsType} params
800
+ * @returns {ZashikiType}
801
+ */
802
+ export function renderStringForAnyOf (schema, values, params) {
803
+ /**
804
+ * log('renderStringForAnyOf')
805
+ */
806
+
807
+ const {
808
+ uri = '#/'
809
+ } = params
810
+
811
+ const minLength = getMinLength(schema)
812
+ const maxLength = getMaxLength(schema)
813
+ const pattern = getPattern(schema)
814
+
815
+ const meta = renderStringMetaForAnyOf(params, uri, minLength, maxLength, pattern)
816
+ const elements = renderStringElementsForAnyOf(schema, params, uri, minLength, maxLength, pattern)
817
+
818
+ return {
819
+ meta,
820
+ elements
821
+ }
822
+ }
823
+
824
+ /**
825
+ * "oneOf"
826
+ *
827
+ * @param {SchemaType} schema
828
+ * @param {ValuesType} values
829
+ * @param {ParamsType} params
830
+ * @returns {ZashikiType}
831
+ */
832
+ export function renderStringForOneOf (schema, values, params) {
833
+ /**
834
+ * log('renderStringForOneOf')
835
+ */
836
+
837
+ const {
838
+ uri = '#/'
839
+ } = params
840
+
841
+ const minLength = getMinLength(schema)
842
+ const maxLength = getMaxLength(schema)
843
+ const pattern = getPattern(schema)
844
+
845
+ const meta = renderStringMetaForOneOf(params, uri, minLength, maxLength, pattern)
846
+ const elements = renderStringElementsForOneOf(schema, params, uri, minLength, maxLength, pattern)
847
+
848
+ return {
849
+ meta,
850
+ elements
851
+ }
852
+ }
853
+
854
+ /**
855
+ * "allOf"
856
+ *
857
+ * @param {SchemaType} schema
858
+ * @param {ValuesType} values
859
+ * @param {ParamsType} params
860
+ * @returns {ZashikiType}
861
+ */
862
+ export function renderStringForAllOf (schema, values, params) {
863
+ /**
864
+ * log('renderStringForAllOf')
865
+ */
866
+
867
+ const {
868
+ uri = '#/'
869
+ } = params
870
+
871
+ const minLength = getMinLength(schema)
872
+ const maxLength = getMaxLength(schema)
873
+ const pattern = getPattern(schema)
874
+
875
+ const meta = renderStringMetaForAllOf(schema, values, params, uri, minLength, maxLength, pattern)
876
+ const elements = renderStringElementsForAllOf(schema, values, params, uri, minLength, maxLength, pattern)
877
+
878
+ return {
879
+ meta,
880
+ elements
881
+ }
882
+ }
883
+
884
+ /**
885
+ * @param {SchemaType} schema
886
+ * @param {ValuesType} values
887
+ * @param {ParamsType} params
888
+ * @returns {ZashikiType}
889
+ */
890
+ export function renderString (schema, values, params) {
891
+ /**
892
+ * log('renderString')
893
+ */
894
+
895
+ const {
896
+ uri = '#/'
897
+ } = params
898
+
899
+ const minLength = getMinLength(schema)
900
+ const maxLength = getMaxLength(schema)
901
+ const pattern = getPattern(schema)
902
+
903
+ const meta = renderStringMeta(schema, values, params, uri, minLength, maxLength, pattern)
904
+ const elements = renderStringElements(schema, values, params, uri, minLength, maxLength, pattern)
905
+
906
+ return {
907
+ meta,
908
+ elements
909
+ }
910
+ }