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