shinkansen-transmission 2.2.234 → 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 +8 -8
  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
package/babel.config.cjs CHANGED
@@ -38,6 +38,7 @@ const presets = [
38
38
  ]
39
39
  ]
40
40
 
41
+ // @ts-ignore
41
42
  module.exports = (api) => {
42
43
  if (api) api.cache.using(env)
43
44
 
package/eslint.config.mjs CHANGED
@@ -1,5 +1,7 @@
1
1
  import globals from 'globals'
2
+ // @ts-ignore
2
3
  import standard from '@sequencemedia/eslint-config-standard/configs/recommended/merge'
4
+ // @ts-ignore
3
5
  import typescript from '@sequencemedia/eslint-config-typescript/configs/recommended/merge'
4
6
 
5
7
  export default [
@@ -15,24 +17,22 @@ export default [
15
17
  files: [
16
18
  '**/*.{mjs,cjs,mts,cts}'
17
19
  ],
18
- ignores: [
19
- 'src',
20
- 'test'
21
- ],
22
20
  languageOptions: {
23
21
  globals: {
24
22
  ...globals.node
25
23
  }
26
- }
27
- }),
28
- standard({
29
- files: [
30
- 'src/**/*.{mjs,cjs,mts,cts}'
31
- ],
32
- languageOptions: {
33
- globals: {
34
- ...globals.browser
35
- }
24
+ },
25
+ rules: {
26
+ '@stylistic/object-curly-newline': [
27
+ 'error',
28
+ {
29
+ ImportDeclaration: 'always',
30
+ ExportDeclaration: {
31
+ multiline: true,
32
+ minProperties: 2
33
+ }
34
+ }
35
+ ]
36
36
  }
37
37
  }),
38
38
  standard({
@@ -52,29 +52,27 @@ export default [
52
52
  files: [
53
53
  '**/*.{mts,cts}'
54
54
  ],
55
- ignores: [
56
- 'src',
57
- 'test'
58
- ],
59
55
  languageOptions: {
60
56
  globals: {
61
- ...globals.node
57
+ ...globals.node,
58
+ TransmissionTypes: 'readonly'
62
59
  }
60
+ },
61
+ rules: {
62
+ '@typescript-eslint/max-params': [
63
+ 'error',
64
+ {
65
+ max: 5
66
+ }
67
+ ]
63
68
  }
64
69
  }),
65
- typescript({
70
+ {
66
71
  files: [
67
- 'src/**/*.{mts,cts}',
68
- 'test/**/*.{mts,cts}'
72
+ 'src/**/*.d.{mts,cts}'
69
73
  ],
70
- languageOptions: {
71
- globals: {
72
- ...globals.browser,
73
- ZashikiTypes: 'readonly'
74
- }
75
- },
76
74
  rules: {
77
- '@typescript-eslint/max-params': ['error', { max: 5 }]
75
+ 'no-redeclare': 'off'
78
76
  }
79
- })
77
+ }
80
78
  ]
package/index.d.mts CHANGED
@@ -1,45 +1,350 @@
1
1
  declare global {
2
- namespace ZashikiTypes {
2
+ namespace TransmissionTypes {
3
3
  export type ObjectLiteralType = Record<PropertyKey, never>
4
4
  export type ObjectType = Record<PropertyKey, unknown>
5
5
  export type ArrayLiteralType = never[]
6
6
  export type ArrayType = unknown[]
7
7
 
8
+ export type ItemsType = string[] | number[] | object[] | boolean[] | null[]
9
+
10
+ export type SelectedItemsType = Array<string | number | boolean | null>
11
+
12
+ export interface EnumType {
13
+ id: string
14
+ name?: string
15
+ items?: ItemsType
16
+ selectedItems?: SelectedItemsType
17
+ }
18
+
19
+ export interface AnyOfType {
20
+ id: string
21
+ name?: string
22
+ items?: ItemsType
23
+ selectedItems?: SelectedItemsType
24
+ }
25
+
26
+ export interface OneOfType {
27
+ id: string
28
+ name?: string
29
+ items?: ItemsType
30
+ selectedItems?: SelectedItemsType
31
+ }
32
+
33
+ export interface FieldType {
34
+ id: string
35
+ name?: string
36
+ items?: ItemsType
37
+ selectedItems?: SelectedItemsType
38
+ value?: string | number | boolean | null | object | ItemsType
39
+ defaultValue?: string | number | boolean | null | object | ItemsType
40
+ }
41
+
8
42
  export interface SchemaType {
9
- type: string
43
+ $id?: string
44
+ $schema?: string
45
+ type?: string
10
46
  title?: string
11
47
  description?: string
48
+ required?: string[]
12
49
  readOnly?: boolean
13
50
  writeOnly?: boolean
14
- const?: unknown
15
- default?: unknown
16
- enum?: ObjectType | ObjectLiteralType | ArrayType | ArrayLiteralType
17
- anyOf?: ObjectType | ObjectLiteralType | ArrayType | ArrayLiteralType
18
- oneOf?: ObjectType | ObjectLiteralType | ArrayType | ArrayLiteralType
19
- allOf: ObjectType | ObjectLiteralType | ArrayType | ArrayLiteralType
51
+ const?: string | number | object | boolean | null
52
+ default?: string | number | object | boolean | null
53
+ enum?: ItemsType
54
+ anyOf?: ItemsType
55
+ oneOf?: ItemsType
56
+ allOf?: ItemsType
20
57
  minimum?: number
21
58
  maximum?: number
22
59
  minLength?: number
23
60
  maxLength?: number
24
61
  minItems?: number
25
62
  maxItems?: number
26
- hasUniqueItems?: boolean
63
+ uniqueItems?: boolean
27
64
  minContains?: number
28
65
  maxContains?: number
29
66
  minProperties?: number
30
67
  maxProperties?: number
31
- isExclusiveMin?: boolean
32
- isExclusiveMax?: boolean
68
+ exclusiveMinimum?: boolean
69
+ exclusiveMaximum?: boolean
33
70
  multipleOf?: number
71
+ items?: SchemaType | SchemaType[]
72
+ properties?: Record<string, SchemaType>
73
+ pattern?: RegExp
74
+ }
75
+
76
+ export interface StringSchemaType extends SchemaType {}
77
+
78
+ export interface NumberSchemaType extends SchemaType {}
79
+
80
+ export interface ArraySchemaType extends SchemaType {}
81
+
82
+ export interface ObjectSchemaType extends SchemaType {}
83
+
84
+ export interface BooleanSchemaType extends SchemaType {}
85
+
86
+ export interface NullSchemaType extends SchemaType {}
87
+
88
+ /**
89
+ * String keys with string or string array values
90
+ */
91
+ export type ValuesType = Record<string, string | string[]> | Record<string, never>
92
+
93
+ interface MetaType extends ObjectType {
94
+ parentUri?: string
95
+ uri?: string
96
+ selectedItems?: SelectedItemsType
97
+ items?: ItemsType
98
+ item?: number
99
+ }
100
+
101
+ interface ElementsType extends ObjectType {
102
+ title?: string
103
+ description?: string
104
+ }
105
+
106
+ export namespace Transmission {
107
+ export interface StringMetaType extends MetaType {
108
+ minLength?: number
109
+ maxLength?: number
110
+ pattern?: RegExp
111
+ defaultValue?: string
112
+ }
113
+
114
+ export interface NumberMetaType extends MetaType {
115
+ min?: number
116
+ max?: number
117
+ step?: number
118
+ isExclusiveMin?: boolean
119
+ isExclusiveMax?: boolean
120
+ }
121
+
122
+ export interface ArrayMetaType extends MetaType {}
123
+
124
+ export interface ObjectMetaType extends MetaType {}
125
+
126
+ export interface BooleanMetaType extends MetaType {}
127
+
128
+ export interface NullMetaType extends MetaType {}
129
+
130
+ export interface StringElementsType extends ElementsType {
131
+ field?: FieldType
132
+ enum?: EnumType
133
+ anyOf?: AnyOfType
134
+ oneOf?: OneOfType
135
+ }
136
+
137
+ export interface NumberElementsType extends ElementsType {
138
+ field?: FieldType
139
+ enum?: EnumType
140
+ anyOf?: AnyOfType
141
+ oneOf?: OneOfType
142
+ }
143
+
144
+ export interface ArrayElementsType extends ElementsType {
145
+ field?: FieldType
146
+ fields?: Array<{
147
+ meta?: MetaType
148
+ elements?: ElementsType
149
+ }>
150
+ enum?: EnumType
151
+ anyOf?: AnyOfType
152
+ oneOf?: OneOfType
153
+ }
154
+
155
+ export interface ObjectElementsType extends ElementsType {
156
+ field?: FieldType
157
+ enum?: EnumType
158
+ anyOf?: AnyOfType
159
+ oneOf?: OneOfType
160
+ }
161
+
162
+ export interface BooleanElementsType extends ElementsType {
163
+ field?: FieldType
164
+ enum?: EnumType
165
+ anyOf?: AnyOfType
166
+ oneOf?: OneOfType
167
+ }
168
+
169
+ export interface NullElementsType extends ElementsType {
170
+ field?: FieldType
171
+ enum?: EnumType
172
+ anyOf?: AnyOfType
173
+ oneOf?: OneOfType
174
+ }
175
+
176
+ interface TransmissionType {
177
+ meta?: StringMetaType
178
+ elements?: StringElementsType
179
+ }
180
+
181
+ export interface StringType {
182
+ meta?: StringMetaType
183
+ elements?: StringElementsType
184
+ }
185
+
186
+ export interface NumberType {
187
+ meta?: NumberMetaType
188
+ elements?: NumberElementsType
189
+ }
190
+
191
+ export interface ArrayType {
192
+ meta?: ArrayMetaType
193
+ elements?: ArrayElementsType
194
+ }
195
+
196
+ export interface ObjectType {
197
+ meta?: ObjectMetaType
198
+ elements?: ObjectElementsType
199
+ }
200
+
201
+ export interface BooleanType {
202
+ meta?: BooleanMetaType
203
+ elements?: BooleanElementsType
204
+ }
205
+
206
+ export interface NullType {
207
+ meta?: NullMetaType
208
+ elements?: NullElementsType
209
+ }
34
210
  }
35
211
 
36
- export type DocumentType = string | number | boolean | null | ObjectType | ObjectLiteralType | ArrayType | ArrayLiteralType | undefined
37
- export type HashType = Record<PropertyKey, string> | Record<PropertyKey, never>
212
+ export namespace Zashiki {
213
+ interface ZashikiMetaType extends MetaType {
214
+ type?: string
215
+ schema?: SchemaType
216
+ value?: string
217
+ component?: string
218
+ }
219
+
220
+ interface ZashikiElementsType extends ElementsType {
221
+ title?: string
222
+ description?: string
223
+ }
224
+
225
+ export interface StringMetaType extends ZashikiMetaType {
226
+ minLength?: number
227
+ maxLength?: number
228
+ pattern?: RegExp
229
+ defaultValue?: string
230
+ }
231
+
232
+ export interface NumberMetaType extends ZashikiMetaType {
233
+ min?: number
234
+ max?: number
235
+ step?: number
236
+ isExclusiveMin?: boolean
237
+ isExclusiveMax?: boolean
238
+ }
239
+
240
+ export interface ArrayMetaType extends ZashikiMetaType {}
241
+
242
+ export interface ObjectMetaType extends ZashikiMetaType {}
243
+
244
+ export interface BooleanMetaType extends ZashikiMetaType {}
245
+
246
+ export interface NullMetaType extends ZashikiMetaType {}
38
247
 
39
- export interface ZashikiType {
40
- meta: ObjectType | ObjectLiteralType
41
- elements: ObjectType | ObjectLiteralType
248
+ export interface StringElementsType extends ZashikiElementsType {
249
+ field?: FieldType
250
+ enum?: EnumType
251
+ anyOf?: AnyOfType
252
+ oneOf?: OneOfType
253
+ }
254
+
255
+ export interface NumberElementsType extends ZashikiElementsType {
256
+ field?: FieldType
257
+ enum?: EnumType
258
+ anyOf?: AnyOfType
259
+ oneOf?: OneOfType
260
+ }
261
+
262
+ export interface ArrayElementsType extends ZashikiElementsType {
263
+ field?: FieldType
264
+ fields?: Array<{
265
+ meta?: ZashikiMetaType
266
+ elements?: ZashikiElementsType
267
+ }>
268
+ enum?: EnumType
269
+ anyOf?: AnyOfType
270
+ oneOf?: OneOfType
271
+ }
272
+
273
+ export interface ObjectElementsType extends ZashikiElementsType {
274
+ field?: FieldType
275
+ enum?: EnumType
276
+ anyOf?: AnyOfType
277
+ oneOf?: OneOfType
278
+ }
279
+
280
+ export interface BooleanElementsType extends ZashikiElementsType {
281
+ field?: FieldType
282
+ enum?: EnumType
283
+ anyOf?: AnyOfType
284
+ oneOf?: OneOfType
285
+ }
286
+
287
+ export interface NullElementsType extends ZashikiElementsType {
288
+ field?: FieldType
289
+ enum?: EnumType
290
+ anyOf?: AnyOfType
291
+ oneOf?: OneOfType
292
+ }
293
+
294
+ interface ZashikiType {
295
+ meta?: ZashikiMetaType
296
+ elements?: ZashikiElementsType
297
+ }
298
+
299
+ export interface StringType {
300
+ meta?: StringMetaType
301
+ elements?: StringElementsType
302
+ }
303
+
304
+ export interface NumberType {
305
+ meta?: NumberMetaType
306
+ elements?: NumberElementsType
307
+ }
308
+
309
+ export interface ArrayType {
310
+ meta?: ArrayMetaType
311
+ elements?: ArrayElementsType
312
+ }
313
+
314
+ export interface ObjectType {
315
+ meta?: ObjectMetaType
316
+ elements?: ObjectElementsType
317
+ }
318
+
319
+ export interface BooleanType {
320
+ meta?: BooleanMetaType
321
+ elements?: BooleanElementsType
322
+ }
323
+
324
+ export interface NullType {
325
+ meta?: NullMetaType
326
+ elements?: NullElementsType
327
+ }
42
328
  }
329
+
330
+ export type ParamsType = Record<string, Transmission.StringType | Transmission.NumberType | Transmission.ArrayType | Transmission.ObjectType | Transmission.BooleanType | Transmission.NullType> & {
331
+ parentUri?: string
332
+ uri?: string
333
+ key?: string
334
+ index?: number
335
+ required?: string[]
336
+ fields?: Array<Transmission.StringType | Transmission.NumberType | Transmission.ArrayType | Transmission.ObjectType | Transmission.BooleanType | Transmission.NullType>
337
+ }
338
+
339
+ /**
340
+ * A JSON Schema document
341
+ */
342
+ export type DocumentType = string | number | object | boolean | null | string[] | number[] | object[] | boolean[] | null[]
343
+
344
+ /**
345
+ * String keys with string or string array values
346
+ */
347
+ export type HashType = Record<string, string | string[]> | Record<string, never>
43
348
  }
44
349
  }
45
350
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "shinkansen-transmission",
3
- "version": "2.2.234",
3
+ "version": "2.3.0",
4
4
  "description": "Shinkansen Transmission",
5
5
  "keywords": [
6
6
  "Shinkansen",
@@ -44,20 +44,20 @@
44
44
  "@babel/eslint-parser": "^7.26.8",
45
45
  "@babel/preset-env": "^7.26.9",
46
46
  "@babel/register": "^7.25.9",
47
- "@sequencemedia/eslint-config-standard": "^0.2.28",
48
- "@sequencemedia/eslint-config-typescript": "^0.1.39",
49
- "@typescript-eslint/eslint-plugin": "^8.24.1",
50
- "@typescript-eslint/parser": "^8.24.1",
47
+ "@sequencemedia/eslint-config-standard": "^0.2.29",
48
+ "@sequencemedia/eslint-config-typescript": "^0.1.43",
49
+ "@types/babel__register": "^7.17.3",
50
+ "@types/chai": "^5.0.1",
51
+ "@types/debug": "^4.1.12",
52
+ "@types/mocha": "^10.0.10",
51
53
  "c8": "^10.1.3",
52
54
  "chai": "^5.2.0",
53
55
  "core-js": "^3.40.0",
54
56
  "cross-env": "^7.0.3",
55
57
  "eslint": "^9.21.0",
56
- "eslint-import-resolver-babel-module": "^5.3.2",
57
58
  "globals": "^16.0.0",
58
59
  "husky": "^9.1.7",
59
- "mocha": "^11.1.0",
60
- "rimraf": "^6.0.1"
60
+ "mocha": "^11.1.0"
61
61
  },
62
62
  "imports": {
63
63
  "#transmission": "./src/index.mjs",
package/src/index.cjs CHANGED
@@ -1,3 +1,5 @@
1
+ // @ts-nocheck
2
+
1
3
  require('@babel/register')({
2
4
  ignore: [
3
5
  /node_modules\/(?!shinkansen|@modernpoacher)/
package/src/index.d.mts CHANGED
@@ -1,10 +1,11 @@
1
- declare module '#transmission' {
2
- export * as common from '#transmission/transmission/common'
3
- export { default as fromDocumentToHash } from '#transmission/transmission/from-document-to-hash'
4
- export { default as fromHashToDocument } from '#transmission/transmission/from-hash-to-document'
5
- export { default as toZashiki } from '#transmission/transmission/to-zashiki'
6
- }
1
+ export type SchemaType = TransmissionTypes.SchemaType
7
2
 
8
- declare module 'shinkansen-transmission' {
9
- export * from '#transmission'
10
- }
3
+ export type DocumentType = TransmissionTypes.DocumentType
4
+ export type HashType = TransmissionTypes.HashType
5
+
6
+ export type ZashikiType = TransmissionTypes.Zashiki.ZashikiType
7
+
8
+ export * as common from '#transmission/transmission/common'
9
+ export { default as fromDocumentToHash } from '#transmission/transmission/from-document-to-hash'
10
+ export { default as fromHashToDocument } from '#transmission/transmission/from-hash-to-document'
11
+ export { default as toZashiki } from '#transmission/transmission/to-zashiki'