@xyd-js/sources 0.0.0-build

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 (97) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/ISSUES.md +10 -0
  3. package/LICENSE +21 -0
  4. package/README.md +3 -0
  5. package/TODO.md +9 -0
  6. package/__fixtures__/-1.typescript/package.json +5 -0
  7. package/__fixtures__/-1.typescript/src/index.ts +0 -0
  8. package/__fixtures__/-1.typescript/src/settings.ts +592 -0
  9. package/__fixtures__/-1.typescript/tsconfig.json +8 -0
  10. package/__fixtures__/-2.react.basic/1.flat-interface.output.json +114 -0
  11. package/__fixtures__/-2.react.basic/2.file-connect-interface.output.json +60 -0
  12. package/__fixtures__/-2.react.basic/2a.file-connect-interface-advanced.output.json +92 -0
  13. package/__fixtures__/-2.react.basic/3.props-as-variants.output.json +166 -0
  14. package/__fixtures__/-2.react.basic/4.outside-interface.output.json +60 -0
  15. package/__fixtures__/-2.react.basic/5.inline-props.output.json +60 -0
  16. package/__fixtures__/-2.react.basic/5.outside-inline-props.output.json +60 -0
  17. package/__fixtures__/-2.react.basic/5a.inline-props+outside.output.json +60 -0
  18. package/__fixtures__/-2.react.basic/5b.inline-props+interfaces.output.json +92 -0
  19. package/__fixtures__/-2.react.basic/package.json +4 -0
  20. package/__fixtures__/-2.react.basic/src/1.flat-interface.tsx +41 -0
  21. package/__fixtures__/-2.react.basic/src/2.file-connect-interface.tsx +28 -0
  22. package/__fixtures__/-2.react.basic/src/2a.file-connect-interace+advanced.tsx +54 -0
  23. package/__fixtures__/-2.react.basic/src/3.props-as-variants.tsx +67 -0
  24. package/__fixtures__/-2.react.basic/src/4.outside-interface.tsx +13 -0
  25. package/__fixtures__/-2.react.basic/src/4.outside-interface2.ts +15 -0
  26. package/__fixtures__/-2.react.basic/src/5.inline-props.tsx +19 -0
  27. package/__fixtures__/-2.react.basic/src/5a.inline-props+outside.tsx +19 -0
  28. package/__fixtures__/-2.react.basic/src/5b.inline-props+interfaces.tsx +62 -0
  29. package/__fixtures__/-2.react.basic/src/index.ts +0 -0
  30. package/__fixtures__/-2.react.basic/tsconfig.json +8 -0
  31. package/__tests__/sourcesToUniform.test.ts +167 -0
  32. package/__tests__/testResolvePropertySymbol.ts +838 -0
  33. package/__tests__/types.ts +12 -0
  34. package/__tests__/utils.ts +108 -0
  35. package/dist/index.cjs +2 -0
  36. package/dist/index.cjs.map +1 -0
  37. package/dist/index.d.cts +2 -0
  38. package/dist/index.d.ts +2 -0
  39. package/dist/index.js +1 -0
  40. package/dist/index.js.map +1 -0
  41. package/dist/react.cjs +237 -0
  42. package/dist/react.cjs.map +1 -0
  43. package/dist/react.d.cts +6 -0
  44. package/dist/react.d.ts +6 -0
  45. package/dist/react.js +212 -0
  46. package/dist/react.js.map +1 -0
  47. package/dist/ts.cjs +1794 -0
  48. package/dist/ts.cjs.map +1 -0
  49. package/dist/ts.d.cts +14 -0
  50. package/dist/ts.d.ts +14 -0
  51. package/dist/ts.js +1760 -0
  52. package/dist/ts.js.map +1 -0
  53. package/package.json +41 -0
  54. package/packages/react/index.ts +1 -0
  55. package/packages/react/uniformToReactUniform.ts +275 -0
  56. package/packages/ts/SignatureText.ts +233 -0
  57. package/packages/ts/TypeDocTransformer.ts +1519 -0
  58. package/packages/ts/__fixtures__/packages/package-a/package.json +4 -0
  59. package/packages/ts/__fixtures__/packages/package-a/src/index.ts +56 -0
  60. package/packages/ts/__fixtures__/packages/package-a/tsconfig.json +23 -0
  61. package/packages/ts/__fixtures__/packages/package-b/package.json +7 -0
  62. package/packages/ts/__fixtures__/packages/package-b/src/billing.ts +193 -0
  63. package/packages/ts/__fixtures__/packages/package-b/src/index.ts +8 -0
  64. package/packages/ts/__fixtures__/packages/package-b/tsconfig.json +20 -0
  65. package/packages/ts/__fixtures__/packages2/package-a/package.json +4 -0
  66. package/packages/ts/__fixtures__/packages2/package-a/src/index.ts +496 -0
  67. package/packages/ts/__fixtures__/packages2/package-a/tsconfig.json +6 -0
  68. package/packages/ts/__fixtures__/packages3/package-a/package.json +4 -0
  69. package/packages/ts/__fixtures__/packages3/package-a/src/index.ts +488 -0
  70. package/packages/ts/__fixtures__/packages3/package-a/tsconfig.json +6 -0
  71. package/packages/ts/__fixtures__/packages3/project.json +171 -0
  72. package/packages/ts/__fixtures__/react/react-a/package.json +5 -0
  73. package/packages/ts/__fixtures__/react/react-a/src/TestAbc.tsx +90 -0
  74. package/packages/ts/__fixtures__/react/react-a/src/TestBasic.tsx +27 -0
  75. package/packages/ts/__fixtures__/react/react-a/src/TestNamedParameters.tsx +27 -0
  76. package/packages/ts/__fixtures__/react/react-a/src/TestNamedParameters2.tsx +26 -0
  77. package/packages/ts/__fixtures__/react/react-a/src/TestUnion.tsx +32 -0
  78. package/packages/ts/__fixtures__/react/react-a/src/index.ts +1 -0
  79. package/packages/ts/__fixtures__/react/react-a/tsconfig.json +8 -0
  80. package/packages/ts/__fixtures__/references-output-project.json +344 -0
  81. package/packages/ts/__fixtures__/references-output-react.json +68 -0
  82. package/packages/ts/__fixtures__/references-output.json +129 -0
  83. package/packages/ts/__tests__/sourcesToUniform.test.ts +106 -0
  84. package/packages/ts/context.ts +0 -0
  85. package/packages/ts/converterts/ts-class.ts +0 -0
  86. package/packages/ts/converterts/ts-enum.ts +0 -0
  87. package/packages/ts/converterts/ts-function.ts +0 -0
  88. package/packages/ts/converterts/ts-interface.ts +0 -0
  89. package/packages/ts/converterts/ts-type.ts +0 -0
  90. package/packages/ts/index.ts +129 -0
  91. package/packages/ts/ts-core.ts +0 -0
  92. package/packages/ts/uniformToMiniUniform.ts +486 -0
  93. package/src/index.ts +0 -0
  94. package/test-cmd/index.ts +62 -0
  95. package/tsconfig.json +38 -0
  96. package/tsup.config.ts +39 -0
  97. package/vitest.config.ts +34 -0
package/CHANGELOG.md ADDED
@@ -0,0 +1,9 @@
1
+ # @xyd-js/sources
2
+
3
+ ## 0.0.0-build+6952c2c-20250813013245
4
+
5
+ ### Patch Changes
6
+
7
+ - update all packages
8
+ - Updated dependencies
9
+ - @xyd-js/uniform@0.0.0-build+6952c2c-20250813013245
package/ISSUES.md ADDED
@@ -0,0 +1,10 @@
1
+ 1. for outside interface imported interface filename must be different in react
2
+ eg:
3
+
4
+ X !!!!
5
+ ```ts MyComponent.tsx
6
+ import { MyComponent } from './MyComponent';
7
+ ```
8
+
9
+ ```ts MyComponent.ts
10
+ ```
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 xyd
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,3 @@
1
+ # @xyd-js/sources
2
+
3
+ Automatic documentation from code sources, for xyd.
package/TODO.md ADDED
@@ -0,0 +1,9 @@
1
+ 1. use doc extractors:
2
+ * go - godoc
3
+ * python - https://github.com/mkdocstrings/griffe
4
+
5
+ 2. add docs for generation requirements: <--- maybe find better solution in the future?
6
+ 1. tsconfig is needed
7
+ 2. package.json is needed
8
+ 3. "outDir": "./dist", in tsconfig compilerOptions is needed
9
+ 4. main is needed in package.json
@@ -0,0 +1,5 @@
1
+ {
2
+ "name": "@xyd-js/sources",
3
+ "main": "dist/index.js"
4
+ }
5
+
File without changes
@@ -0,0 +1,592 @@
1
+ import * as React from "react";
2
+
3
+ import type { Theme as SyntaxHighlight } from "@code-hike/lighter";
4
+
5
+ /**
6
+ * Main settings interface for the application
7
+ */
8
+ export interface Settings {
9
+ /** Theme configuration for the application */
10
+ theme?: Theme
11
+
12
+ /** Navigation configuration */
13
+ navigation?: Navigation
14
+
15
+ /** API configuration */
16
+ api?: API
17
+
18
+ /** Integrations configuration */
19
+ integrations?: Integrations
20
+
21
+ /** Plugins configuration */
22
+ plugins?: Plugins
23
+
24
+ /**
25
+ *
26
+ * Redirects configuration
27
+ */
28
+ redirects?: Redirects[]
29
+
30
+ /**
31
+ * SEO configuration
32
+ */
33
+ seo?: SEO
34
+
35
+ /** Engine configuration */
36
+ engine?: Engine
37
+ }
38
+
39
+ // ------ START settings for theme START ------
40
+ // #region Theme
41
+ /**
42
+ * Theme configuration that changes the look and feel of the project
43
+ */
44
+ export interface Theme {
45
+ /**
46
+ * A preset theme configuration that changes the look and feel of the project.
47
+ * A theme is a set of default styling configurations.
48
+ *
49
+ * Example built-in themes: `cosmo`, `gusto`, `poetry`, `picasso`
50
+ */
51
+ readonly name: ThemePresetName | (string & {})
52
+
53
+ /** Markdown configuration for the theme, including options like syntax highlighting */
54
+ markdown?: Markdown
55
+
56
+ /**
57
+ * Path to logo image or object with path to "light" and "dark" mode logo images, and where the logo links to.
58
+ * SVG format is recommended as it does not pixelate and the file size is generally smaller.
59
+ */
60
+ logo?: string | Logo | React.JSX.Element
61
+
62
+ /**
63
+ * Banner configuration for the theme.
64
+ */
65
+ banner?: Banner
66
+
67
+ /** Path to the favicon image. For example: /path/to/favicon.svg */
68
+ favicon?: string;
69
+
70
+ /** The defult level of the table of contents. */
71
+ maxTocDepth?: number
72
+
73
+ /** Head configuration */
74
+ head?: HeadConfig[]
75
+
76
+ /** The iconify library */
77
+ icons?: Icons
78
+ }
79
+ // #endregion Theme
80
+
81
+ /**
82
+ * Configuration type for head elements that can be added to the HTML head.
83
+ * Format: [tagName, attributes]
84
+ *
85
+ * @example: ['script', { src: 'https://example.com/script.js', defer: true }]
86
+ */
87
+ type HeadConfig =
88
+ | [string, Record<string, string | boolean>]
89
+
90
+ /**
91
+ * Markdown configuration interface
92
+ */
93
+ export interface Markdown {
94
+ /** Syntax highlighting configuration */
95
+ syntaxHighlight?: SyntaxHighlight
96
+ }
97
+
98
+ /**
99
+ * Logo configuration interface
100
+ */
101
+ export interface Logo {
102
+ /** Path to the logo in light mode. For example: `/path/to/logo.svg` */
103
+ light?: string;
104
+
105
+ /** Path to the logo in dark mode. For example: `/path/to/logo.svg` */
106
+ dark?: string;
107
+
108
+ /** Where clicking on the logo links you to */
109
+ href?: string;
110
+ }
111
+
112
+ /**
113
+ * Banner configuration interface
114
+ */
115
+ export interface Banner {
116
+ /**
117
+ * Banner content.
118
+ */
119
+ content: string | React.JSX.Element
120
+ }
121
+
122
+ export interface IconLibrary {
123
+ /** The iconify library name */
124
+ name: string
125
+
126
+ /** The iconify library version */
127
+ version?: string
128
+
129
+ /** The default iconify icon name */
130
+ default?: boolean
131
+
132
+ /** Merge icons from the library into the default iconify library */
133
+ noprefix?: boolean
134
+ }
135
+
136
+ export interface Icons {
137
+ /** The iconify library */
138
+ library?: string | string[] | IconLibrary | IconLibrary[]
139
+ }
140
+
141
+ /** Available theme preset names */
142
+ export type ThemePresetName = "poetry" | "cosmo" | "opener" | "picasso"
143
+
144
+ /** Search bar location options */
145
+ export type SearchType = "side" | "top"
146
+
147
+ // ------ END settings for theme END ------
148
+
149
+
150
+ // ------ START settings for navigation START ------
151
+ /**
152
+ * Navigation configuration interface
153
+ */
154
+ export interface Navigation {
155
+ /** Definition of sidebar - an array of groups with all the pages within that group */
156
+ sidebar: (SidebarRoute | Sidebar)[]
157
+
158
+ /** Array of headers */
159
+ header?: Header[]
160
+
161
+ /** Array of sub headers */
162
+ subheader?: SubHeader[]
163
+
164
+ /**
165
+ * Array of version names. Only use this if you want to show different versions of docs
166
+ * with a dropdown in the navigation bar.
167
+ */
168
+ // versions?: string[]
169
+
170
+ /** Anchors, includes the icon, name, and url */
171
+ anchors?: AnchorRoot
172
+ }
173
+
174
+ /**
175
+ * Sidebar multi-group configuration
176
+ */
177
+ export interface SidebarRoute {
178
+ /** Route for this sidebar group */
179
+ route: string
180
+
181
+ /** Sidebar items within this group */
182
+ items: Sidebar[]
183
+ }
184
+
185
+ /**
186
+ * Sidebar configuration
187
+ */
188
+ export interface Sidebar {
189
+ /** The name of the group */
190
+ group?: string
191
+
192
+ /**
193
+ * The relative paths to the markdown files that will serve as pages.
194
+ * Note: groups are recursive, so to add a sub-folder add another group object in the page array.
195
+ */
196
+ pages?: PageURL[]
197
+
198
+ /**
199
+ * The icon of the group.
200
+ */
201
+ icon?: string
202
+
203
+ /**
204
+ * The sort order of the group.
205
+ */
206
+ sort?: number
207
+ }
208
+
209
+ /**
210
+ * Page URL type
211
+ */
212
+ export type PageURL = string | VirtualPage | Sidebar
213
+
214
+ /**
215
+ * @internal
216
+ *
217
+ * Virtual page type
218
+ *
219
+ * Virtual pages are composition of pages, needed for templating e.g in uniform
220
+ *
221
+ * Example:
222
+ *
223
+ * {
224
+ * pages: [0
225
+ * ".xyd/.cache/.content/docs/rest/todo:docs/rest/todo",
226
+ * ]
227
+ * }
228
+ *
229
+ * above will be rendered as docs/rest/todo.md using composition from xyd's `.content`
230
+ */
231
+ export type VirtualPage = string | {
232
+ /** The virtual page to use for the page */
233
+ virtual: string
234
+
235
+ /** The page to use for the page */
236
+ page: string
237
+
238
+ /** The template to use for the page */
239
+ templates?: string | string[]
240
+ }
241
+
242
+
243
+ /**
244
+ * Sub-header configuration
245
+ */
246
+ export interface SubHeader {
247
+ /** Route for this sub-header */
248
+ route: string
249
+
250
+ /** Name of this sub-header */
251
+ name: string
252
+
253
+ /** Items within this sub-header */
254
+ items: Header[]
255
+ }
256
+
257
+ /**
258
+ * Header configuration
259
+ */
260
+ export type Header = {
261
+ /** The name of the button */
262
+ name?: string
263
+
264
+ /** The url once you click on the button */
265
+ url?: string
266
+
267
+ /** Float the header to the right */
268
+ float?: "right"
269
+ }
270
+
271
+ /**
272
+ * Anchor configuration
273
+ */
274
+ export interface Anchor {
275
+ /** The iconify icon name */
276
+ icon?: string
277
+
278
+ /** The name of the anchor label */
279
+ name?: string
280
+
281
+ /**
282
+ * The start of the URL that marks what pages go in the anchor.
283
+ * Generally, this is the name of the folder you put your pages in.
284
+ */
285
+ url?: string
286
+ }
287
+
288
+ /**
289
+ * Anchor root configuration
290
+ */
291
+ export interface AnchorRoot {
292
+ /** Bottom anchors */
293
+ bottom?: Anchor[]
294
+ }
295
+
296
+ // ------ END settings for structure END ------
297
+
298
+
299
+ // ------ START settings for API START ------
300
+ /**
301
+ * API configuration interface
302
+ */
303
+ export interface API {
304
+ /**
305
+ * OpenAPI configuration
306
+ */
307
+ openapi?: APIFile
308
+
309
+ /**
310
+ * GraphQL configuration
311
+ */
312
+ graphql?: APIFile
313
+
314
+ /**
315
+ * Sources configuration
316
+ */
317
+ sources?: APIFile
318
+ }
319
+
320
+ /**
321
+ * API file configuration. Can be a path, an array of paths, a map of paths, or an advanced configuration
322
+ */
323
+ export type APIFile = string | string[] | APIFileMap | APIFileAdvanced
324
+
325
+ /**
326
+ * API file map type
327
+ */
328
+ export type APIFileMap = {
329
+ [name: string]: string | APIFileAdvanced
330
+ }
331
+
332
+ /**
333
+ * API file advanced type
334
+ */
335
+ export type APIFileAdvanced = {
336
+ /** API information configuration */
337
+ info?: APIInfo
338
+
339
+ /** Route configuration */
340
+ route: string
341
+ }
342
+
343
+ /**
344
+ * API file type - can be a string, array of strings, or a map of strings
345
+ */
346
+
347
+ /**
348
+ * API information configuration
349
+ */
350
+ export interface APIInfo {
351
+ /**
352
+ * The base url for all API endpoints. If baseUrl is an array, it will enable
353
+ * for multiple base url options that the user can toggle.
354
+ */
355
+ baseUrl?: string
356
+
357
+ /** Authentication information */
358
+ auth?: APIAuth
359
+
360
+ /**
361
+ * The name of the authentication parameter used in the API playground.
362
+ * If method is basic, the format should be [usernameName]:[passwordName]
363
+ */
364
+ name?: string
365
+
366
+ /**
367
+ * The default value that's designed to be a prefisx for the authentication input field.
368
+ * E.g. If an inputPrefix of AuthKey would inherit the default input result of the authentication field as AuthKey.
369
+ */
370
+ inputPrefix?: string
371
+
372
+ /** Configurations for the API playground */
373
+ playground?: APIPlayground
374
+
375
+ /** Request configuration */
376
+ request?: APIInfoRequest
377
+ }
378
+
379
+ /**
380
+ * API authentication configuration
381
+ */
382
+ export interface APIAuth {
383
+ /** The authentication strategy used for all API endpoints */
384
+ method: "bearer" | "basic" | "key"
385
+ }
386
+
387
+ /**
388
+ * API playground configuration
389
+ */
390
+ export interface APIPlayground {
391
+ /** Playground display mode */
392
+ mode?: "show" | "simple" | "hide"
393
+ }
394
+
395
+ /**
396
+ * API request configuration
397
+ */
398
+ export interface APIInfoRequest {
399
+ /** Configurations for the auto-generated API request examples */
400
+ example?: {
401
+ /**
402
+ * An array of strings that determine the order of the languages of the auto-generated request examples.
403
+ * You can either define custom languages utilizing x-codeSamples or use our default languages which include
404
+ * bash, python, javascript, php, go, java
405
+ */
406
+ languages?: string[]
407
+ }
408
+ }
409
+
410
+ // ------ END settings for API END ------
411
+
412
+
413
+ // ------ START settings for integrations START ------
414
+ /**
415
+ * Integrations configuration
416
+ */
417
+ export interface Integrations {
418
+ /**
419
+ * Configurations to add third-party analytics integrations.
420
+ * See full list of supported analytics here.
421
+ */
422
+ analytics?: IntegrationAnalytics
423
+
424
+ /**
425
+ * Configurations to add third-party search integrations.
426
+ * See full list of supported search here.
427
+ */
428
+ search?: IntegrationSearch
429
+ }
430
+
431
+ // #region IntegrationAnalytics
432
+ /**
433
+ * Analytics configuration
434
+ */
435
+ export interface IntegrationAnalytics {
436
+ /** Livesession analytics configuration */
437
+ livesession?: {
438
+ /** Livesession's TrackID */
439
+ trackId: string
440
+ }
441
+ }
442
+ // #endregion IntegrationAnalytics
443
+
444
+ /**
445
+ * Search configuration
446
+ */
447
+ export interface IntegrationSearch {
448
+ /** Algolia search configuration */
449
+ algolia?: {
450
+ /** Algolia application ID */
451
+ appId: string
452
+
453
+ /** Algolia API key */
454
+ apiKey: string
455
+ }
456
+
457
+ orama?: {
458
+ /** Orama endpoint */
459
+ endpoint: string
460
+
461
+ /** Orama API key */
462
+ apiKey: string
463
+
464
+ /** Orama suggestions */
465
+ suggestions?: string[]
466
+ } | boolean
467
+ }
468
+
469
+ // ------ END settings for integrations END ------
470
+
471
+ // ------ START settings for plugins START ------
472
+
473
+ /**
474
+ * Plugin configuration
475
+ *
476
+ * @example
477
+ * 1)
478
+ * {
479
+ * plugins: [
480
+ * "livesession",
481
+ * ]
482
+ * }
483
+ *
484
+ * or 2)
485
+ * {
486
+ * plugins: [
487
+ * [
488
+ * "livesession",
489
+ * "accountID.websiteID",
490
+ * {
491
+ * keystrokes: true
492
+ * }
493
+ * ]
494
+ * ]
495
+ * }
496
+ *
497
+ * you can also use the type to define the plugin config in your code:
498
+ *
499
+ * const livesessionPlugin: PluginConfig<"livesession", [string, { keystrokes: boolean }]> = [
500
+ * "livesession",
501
+ * "accountID.websiteID",
502
+ * {
503
+ * keystrokes: true
504
+ * }
505
+ * ]
506
+ */
507
+ export type Plugins = (string | PluginConfig)[]
508
+
509
+ export type PluginConfig<
510
+ PluginName extends string = string,
511
+ PluginArgs extends unknown[] = unknown[]
512
+ > = [PluginName, ...PluginArgs]
513
+
514
+
515
+ // ------ END settings for plugins END ------
516
+
517
+ // ------ START settings for redirecs START ------
518
+ /**
519
+ * Redirects configuration
520
+ */
521
+ export interface Redirects {
522
+ /** Source path to redirect from */
523
+ source: string
524
+
525
+ /** Destination path to redirect to */
526
+ destination: string
527
+ }
528
+
529
+ /**
530
+ * SEO configuration
531
+ */
532
+ export interface SEO {
533
+ /**
534
+ * Domain name
535
+ */
536
+ domain?: string
537
+
538
+ /**
539
+ * Meta tags
540
+ */
541
+ metatags?: {[tag: string]: string} // TODO: in the future type-safe
542
+ }
543
+
544
+ // ------ END settings for redirects END ------
545
+
546
+ // ------ START settings for engine START ------
547
+ /**
548
+ * Config configuration
549
+ */
550
+ export interface Engine {
551
+ /**
552
+ * Path aliases for imports. Avoid long relative paths by creating shortcuts.
553
+ *
554
+ * @example
555
+ * ```json
556
+ * {
557
+ * "paths": {
558
+ * "@my-package/*": ["../my-package/src/*"],
559
+ * "@livesession-go/*": ["https://github.com/livesession/livesession-go/*"]
560
+ * }
561
+ * }
562
+ * ```
563
+ *
564
+ * Usage:
565
+ * ```typescript
566
+ * // Instead of
567
+ * @importCode("../../../my-package/src/components/Badge.tsx")
568
+ *
569
+ * // Use
570
+ * @importCode("@my-package/src/components/Badge.tsx")
571
+ * ```
572
+ */
573
+ paths?: EnginePaths
574
+
575
+ /**
576
+ *
577
+ * Uniform configuration
578
+ *
579
+ */
580
+ uniform?: EngineUniform
581
+ }
582
+
583
+ export type EnginePaths = { [key: string]: string[] }
584
+
585
+ export type EngineUniform = {
586
+ /**
587
+ * If `true` then virtual pages will not created and generated content will be stored on disk
588
+ */
589
+ store?: boolean
590
+ }
591
+
592
+ // ------ END settings for config END ------
@@ -0,0 +1,8 @@
1
+ {
2
+ "compilerOptions": {
3
+ "outDir": "./dist",
4
+ "jsx": "react-jsx",
5
+ "skipLibCheck": true
6
+ }
7
+ }
8
+