@scalar/cli 2.0.1 → 2.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +68 -24
- package/chunks/action-37EV4UHW.js +125 -0
- package/chunks/action-4XI7XJR4.js +204 -0
- package/chunks/action-5IU77OII.js +60 -0
- package/chunks/action-B3KKREWQ.js +64 -0
- package/chunks/action-CH24QGTE.js +86 -0
- package/chunks/action-F3UX5E3M.js +522 -0
- package/chunks/action-FDB7NEOK.js +81 -0
- package/chunks/action-FIXBOJEW.js +244 -0
- package/chunks/action-G26LSVZ7.js +40 -0
- package/chunks/action-H3RTILLM.js +46 -0
- package/chunks/action-HGBBV353.js +86 -0
- package/chunks/action-IUE4IOWO.js +2142 -0
- package/chunks/action-JZLZ7ZAD.js +110 -0
- package/chunks/action-LA6KVAXQ.js +374 -0
- package/chunks/action-M7RQKBSB.js +169 -0
- package/chunks/action-MSLBC2SO.js +92 -0
- package/chunks/action-NVSZT2ZD.js +37 -0
- package/chunks/action-OGQSTRMX.js +37 -0
- package/chunks/action-PAGJ5PWC.js +60 -0
- package/chunks/action-QE2ZQQX7.js +250 -0
- package/chunks/action-QPUSPD5M.js +54 -0
- package/chunks/action-R7IMFHQ5.js +147 -0
- package/chunks/action-SH4UUXPL.js +60 -0
- package/chunks/action-SNLCIBQC.js +84 -0
- package/chunks/action-SQG3JAII.js +150 -0
- package/chunks/action-UZQJNYK4.js +18 -0
- package/chunks/action-VC4DCVST.js +68 -0
- package/chunks/action-VTVFY2MP.js +181 -0
- package/chunks/action-WFWYGY7O.js +67 -0
- package/chunks/action-XMNX5ZYT.js +197 -0
- package/chunks/agent-HCQRMHQ5.js +132 -0
- package/chunks/asyncapi-QM76O55R.js +105 -0
- package/chunks/build.action-P7FCIMYU.js +108 -0
- package/chunks/chunk-24WAOKGG.js +105 -0
- package/chunks/chunk-3L6DLIXJ.js +25530 -0
- package/chunks/chunk-3MZYUBJ6.js +49 -0
- package/chunks/chunk-3ZJYGGAA.js +30 -0
- package/chunks/chunk-4NHMAG6F.js +21 -0
- package/chunks/chunk-4ORL4MST.js +16 -0
- package/chunks/chunk-4ZDQXWBT.js +26 -0
- package/chunks/chunk-6ZMT63IV.js +19 -0
- package/chunks/chunk-7AGLC7WV.js +107 -0
- package/chunks/chunk-AEFPCC4U.js +16 -0
- package/chunks/chunk-AO3F5XWR.js +3147 -0
- package/chunks/chunk-B2MHTD3R.js +90 -0
- package/chunks/chunk-CISTON3A.js +153 -0
- package/chunks/chunk-COBPBRQF.js +25 -0
- package/chunks/chunk-F467BYYR.js +568 -0
- package/chunks/chunk-GSGZHE26.js +352 -0
- package/chunks/chunk-HCPN3KNF.js +637 -0
- package/chunks/chunk-HPL3ZZ2P.js +1726 -0
- package/chunks/chunk-IKT5F47M.js +17344 -0
- package/chunks/chunk-JFIXNSPP.js +26 -0
- package/chunks/chunk-K4DTP5TV.js +32 -0
- package/chunks/chunk-K74E42RV.js +7311 -0
- package/chunks/chunk-KHDYYVYF.js +16 -0
- package/chunks/chunk-LFU5ZUAP.js +350 -0
- package/chunks/chunk-M37TP6U2.js +445 -0
- package/chunks/chunk-OQKDBLOZ.js +741 -0
- package/chunks/chunk-P7H7GY5A.js +14 -0
- package/chunks/chunk-PBXZN65A.js +63911 -0
- package/chunks/chunk-PT5TI77I.js +34 -0
- package/chunks/chunk-Q7DOQHZN.js +404 -0
- package/chunks/chunk-T5HJUAWB.js +242 -0
- package/chunks/chunk-T7B6WNZC.js +18 -0
- package/chunks/chunk-UGGNHILG.js +38 -0
- package/chunks/chunk-VNYE4R7N.js +499 -0
- package/chunks/chunk-X5T526CE.js +23 -0
- package/chunks/chunk-XCSR4RIT.js +210 -0
- package/chunks/chunk-Z2KMGFE6.js +295 -0
- package/chunks/create.action-HDD2WUON.js +108 -0
- package/chunks/delete.action-7GOZY7ID.js +88 -0
- package/chunks/delete.action-VE66JFDS.js +96 -0
- package/chunks/get.action-2745EB4N.js +86 -0
- package/chunks/list.action-3VTXQJRA.js +116 -0
- package/chunks/list.action-4QDCZLSZ.js +95 -0
- package/chunks/publish.action-ULQLZKWU.js +190 -0
- package/chunks/update.action-6QEFP7NA.js +95 -0
- package/chunks/update.action-OROQSP2S.js +101 -0
- package/docs.html +352 -250
- package/index.js +664 -99064
- package/package.json +17 -11
|
@@ -0,0 +1,741 @@
|
|
|
1
|
+
import { createRequire as $$cR } from "node:module"; const require = $$cR(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
entitySchema,
|
|
4
|
+
external_exports,
|
|
5
|
+
namespaceSchema,
|
|
6
|
+
nanoid,
|
|
7
|
+
nanoidSchema,
|
|
8
|
+
scalarSet,
|
|
9
|
+
slugSchema,
|
|
10
|
+
timestampSchema
|
|
11
|
+
} from "./chunk-IKT5F47M.js";
|
|
12
|
+
|
|
13
|
+
// ../../packages/entities/dist/project/active-deployment.js
|
|
14
|
+
var activeDeploymentSchema = external_exports.object({
|
|
15
|
+
/** uid of the publish record for the last successful deployment */
|
|
16
|
+
uid: external_exports.string(),
|
|
17
|
+
/** subdomain or custom domain */
|
|
18
|
+
domain: external_exports.string(),
|
|
19
|
+
/** timestamp of the last successful deployment */
|
|
20
|
+
publishedAt: timestampSchema
|
|
21
|
+
}).meta({ id: "active-deployment" });
|
|
22
|
+
|
|
23
|
+
// ../../packages/entities/dist/project/icon.js
|
|
24
|
+
var projectIconDefinitionSchema = external_exports.object({
|
|
25
|
+
/** Key to local icon OR URL to hosted icon */
|
|
26
|
+
src: external_exports.string().default(""),
|
|
27
|
+
/** Image alt or svg title */
|
|
28
|
+
title: external_exports.string().optional(),
|
|
29
|
+
/** Mask a non-svg image */
|
|
30
|
+
mask: external_exports.boolean().optional(),
|
|
31
|
+
/** Search and group tags */
|
|
32
|
+
tags: external_exports.string().array().default([]),
|
|
33
|
+
/** Sorting group in list */
|
|
34
|
+
group: external_exports.string().default("")
|
|
35
|
+
}).meta({ id: "project-icon-definition" });
|
|
36
|
+
var customProjectIconSchema = projectIconDefinitionSchema.extend({
|
|
37
|
+
/** Timestamp for when the icon was uploaded */
|
|
38
|
+
createdAt: timestampSchema,
|
|
39
|
+
/** User ID who uploaded the icon */
|
|
40
|
+
uploadedBy: external_exports.string(),
|
|
41
|
+
/** Always a custom icon */
|
|
42
|
+
group: external_exports.literal("custom")
|
|
43
|
+
}).meta({ id: "custom-project-icon" });
|
|
44
|
+
var projectIconInfoSchema = external_exports.object({
|
|
45
|
+
src: external_exports.string().default(""),
|
|
46
|
+
title: external_exports.string().optional(),
|
|
47
|
+
mask: external_exports.boolean().optional()
|
|
48
|
+
}).meta({ id: "project-icon-info" });
|
|
49
|
+
var projectIconSchema = external_exports.preprocess((arg) => {
|
|
50
|
+
if (!arg)
|
|
51
|
+
return arg;
|
|
52
|
+
if (!arg.src)
|
|
53
|
+
arg.src = arg.local || arg.remote;
|
|
54
|
+
if (arg.local)
|
|
55
|
+
arg.group = "solid";
|
|
56
|
+
if (arg.remote)
|
|
57
|
+
arg.group = "custom";
|
|
58
|
+
return arg;
|
|
59
|
+
}, projectIconInfoSchema).meta({ id: "project-icon" });
|
|
60
|
+
|
|
61
|
+
// ../../packages/entities/dist/project/version/sidebar.js
|
|
62
|
+
var SidebarType;
|
|
63
|
+
(function(SidebarType2) {
|
|
64
|
+
SidebarType2["Page"] = "Page";
|
|
65
|
+
SidebarType2["Folder"] = "Folder";
|
|
66
|
+
SidebarType2["Link"] = "Link";
|
|
67
|
+
})(SidebarType || (SidebarType = {}));
|
|
68
|
+
var baseSidebarItemSchema = external_exports.object({
|
|
69
|
+
uid: nanoidSchema,
|
|
70
|
+
title: external_exports.string().trim().min(1),
|
|
71
|
+
type: external_exports.enum(SidebarType),
|
|
72
|
+
link: external_exports.string().optional(),
|
|
73
|
+
icon: projectIconSchema.optional(),
|
|
74
|
+
children: external_exports.string().array().optional(),
|
|
75
|
+
description: external_exports.string().optional(),
|
|
76
|
+
show: external_exports.boolean()
|
|
77
|
+
}).meta({ id: "base-sidebar-item" });
|
|
78
|
+
var linkSchema = baseSidebarItemSchema.extend({
|
|
79
|
+
title: external_exports.preprocess((arg) => arg?.trim() || "Link", external_exports.string().trim().min(1)),
|
|
80
|
+
link: external_exports.string(),
|
|
81
|
+
type: external_exports.literal(SidebarType.Link)
|
|
82
|
+
}).meta({ id: "sidebar-link" });
|
|
83
|
+
var pageSchema = baseSidebarItemSchema.extend({
|
|
84
|
+
title: external_exports.preprocess((arg) => arg?.trim() || "Page", external_exports.string().trim().min(1)),
|
|
85
|
+
sidebarTitle: external_exports.string().optional(),
|
|
86
|
+
description: external_exports.string(),
|
|
87
|
+
children: external_exports.string().array().default([]),
|
|
88
|
+
type: external_exports.literal(SidebarType.Page),
|
|
89
|
+
defaultOpen: external_exports.boolean().optional(),
|
|
90
|
+
yjsReference: external_exports.string(),
|
|
91
|
+
backgroundImage: external_exports.string().optional(),
|
|
92
|
+
icon: projectIconSchema.optional(),
|
|
93
|
+
/**
|
|
94
|
+
* Automatically set during sync builds when we map markdown and mdx files to pages
|
|
95
|
+
*
|
|
96
|
+
* Used by the Vue builds to determine how to render a given page item.
|
|
97
|
+
*/
|
|
98
|
+
isMdx: external_exports.boolean().default(false),
|
|
99
|
+
/**
|
|
100
|
+
* Automatically set during sync builds when we map HTML files to pages.
|
|
101
|
+
*/
|
|
102
|
+
isHtml: external_exports.boolean().default(false)
|
|
103
|
+
}).meta({ id: "sidebar-page" });
|
|
104
|
+
var defaultPage = () => ({
|
|
105
|
+
uid: nanoid(),
|
|
106
|
+
title: "Getting Started",
|
|
107
|
+
type: SidebarType.Page,
|
|
108
|
+
description: "Start writing your API Documentation with our platform",
|
|
109
|
+
children: [],
|
|
110
|
+
show: true,
|
|
111
|
+
yjsReference: nanoid(),
|
|
112
|
+
isMdx: false,
|
|
113
|
+
isHtml: false
|
|
114
|
+
});
|
|
115
|
+
var folderSchema = baseSidebarItemSchema.extend({
|
|
116
|
+
title: external_exports.preprocess((arg) => arg?.trim() || "Folder", external_exports.string().trim().min(1)),
|
|
117
|
+
children: external_exports.string().array().default([]),
|
|
118
|
+
type: external_exports.literal(SidebarType.Folder),
|
|
119
|
+
defaultOpen: external_exports.boolean().optional()
|
|
120
|
+
}).meta({ id: "sidebar-folder" });
|
|
121
|
+
var sidebarItemSchema = external_exports.union([linkSchema, pageSchema, folderSchema]).meta({ id: "sidebar-item" });
|
|
122
|
+
var sidebarSchema = external_exports.object({
|
|
123
|
+
/** Complete record of ALL sidebar items */
|
|
124
|
+
items: external_exports.record(external_exports.string(), sidebarItemSchema),
|
|
125
|
+
/** Ordered list of the direct children */
|
|
126
|
+
children: external_exports.string().array()
|
|
127
|
+
}).overwrite((val) => {
|
|
128
|
+
const hasPage = Object.values(val.items).some((item) => item.type === SidebarType.Page);
|
|
129
|
+
if (!hasPage) {
|
|
130
|
+
const firstPage = defaultPage();
|
|
131
|
+
val.items[firstPage.uid] = firstPage;
|
|
132
|
+
val.children.push(firstPage.uid);
|
|
133
|
+
}
|
|
134
|
+
return val;
|
|
135
|
+
}).meta({ id: "sidebar" });
|
|
136
|
+
|
|
137
|
+
// ../../packages/entities/dist/project/footer.js
|
|
138
|
+
var defaultFooter = `<footer>
|
|
139
|
+
<div class="footer-content">
|
|
140
|
+
<p>This documentation playground was created by Scalar. For help, questions or feedback don't hesitate to <a href="mailto:support@scalar.com">email our support.</a></p>
|
|
141
|
+
<br />
|
|
142
|
+
<p>You can fully customize or delete this footer by simply navigating to the footer section of the "customize" button within our header.</p>
|
|
143
|
+
<br />
|
|
144
|
+
<a target="_blank" href="https://scalar.com/#docs">Features</a>
|
|
145
|
+
<a target="_blank" href="https://scalar.com/#docs">About</a>
|
|
146
|
+
<a target="_blank" href="https://scalar.com/#pricing">Pricing</a>
|
|
147
|
+
<br />
|
|
148
|
+
<a target="_blank" href="https://scalar.com/privacy-policy">Privacy Policy</a>
|
|
149
|
+
<a target="_blank" href="https://scalar.com/terms-and-conditions">Terms of Service</a>
|
|
150
|
+
<a target="_blank" href="https://scalar.com/#pricing">Pricing</a>
|
|
151
|
+
<br />
|
|
152
|
+
<p>\xA9 ${(/* @__PURE__ */ new Date()).getFullYear()} Scalar</p>
|
|
153
|
+
</div>
|
|
154
|
+
</footer>`;
|
|
155
|
+
var defaultFooterCSS = `footer {
|
|
156
|
+
display: flex;
|
|
157
|
+
flex-direction: column;
|
|
158
|
+
font-size: var(--scalar-paragraph);
|
|
159
|
+
line-height: 1.625;
|
|
160
|
+
border-top: var(--scalar-border-width) solid var(--scalar-border-color);
|
|
161
|
+
}
|
|
162
|
+
footer p {
|
|
163
|
+
margin-bottom: 25px;
|
|
164
|
+
}
|
|
165
|
+
footer a {
|
|
166
|
+
width: fit-content;
|
|
167
|
+
color:var(--scalar-color-accent)
|
|
168
|
+
}
|
|
169
|
+
footer a:hover {
|
|
170
|
+
cursor: pointer;
|
|
171
|
+
text-decoration: underline;
|
|
172
|
+
}
|
|
173
|
+
.footer-content {
|
|
174
|
+
margin: 0 auto;
|
|
175
|
+
padding: 50px;
|
|
176
|
+
}
|
|
177
|
+
@media (max-width: 1000px) {
|
|
178
|
+
footer {
|
|
179
|
+
max-width: 100%;
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
`;
|
|
183
|
+
|
|
184
|
+
// ../../packages/entities/dist/project/header-links.js
|
|
185
|
+
var headerLinkBaseSchema = external_exports.object({
|
|
186
|
+
uid: nanoidSchema,
|
|
187
|
+
title: external_exports.string(),
|
|
188
|
+
show: external_exports.boolean().default(true),
|
|
189
|
+
isStarred: external_exports.boolean().default(false),
|
|
190
|
+
type: external_exports.union([
|
|
191
|
+
external_exports.literal("guide"),
|
|
192
|
+
external_exports.literal("reference"),
|
|
193
|
+
external_exports.literal("link"),
|
|
194
|
+
external_exports.literal("group"),
|
|
195
|
+
external_exports.literal("version-selector"),
|
|
196
|
+
external_exports.literal("spacer")
|
|
197
|
+
]).default("link")
|
|
198
|
+
}).meta({ id: "header-link-base" });
|
|
199
|
+
var headerLinkReferenceSchema = headerLinkBaseSchema.extend({
|
|
200
|
+
type: external_exports.literal("reference"),
|
|
201
|
+
/** Whether the reference has a permalinked reference or not */
|
|
202
|
+
hasPermalink: external_exports.boolean().default(false).describe("Whether the reference has a permalinked reference or not"),
|
|
203
|
+
hasManagedDoc: external_exports.boolean().default(false).describe("Whether the reference has a linked registry API")
|
|
204
|
+
}).meta({ id: "header-link-reference" });
|
|
205
|
+
var headerLinkGuideSchema = headerLinkBaseSchema.extend({
|
|
206
|
+
type: external_exports.literal("guide")
|
|
207
|
+
}).meta({ id: "header-link-guide" });
|
|
208
|
+
var headerLinkVersionSelectorSchema = headerLinkBaseSchema.extend({
|
|
209
|
+
type: external_exports.literal("version-selector")
|
|
210
|
+
}).meta({ id: "header-link-version-selector" });
|
|
211
|
+
var headerLinkSpacerSchema = headerLinkBaseSchema.extend({
|
|
212
|
+
type: external_exports.literal("spacer")
|
|
213
|
+
}).meta({ id: "header-link-spacer" });
|
|
214
|
+
var headerLinkExternalSchema = headerLinkBaseSchema.extend({
|
|
215
|
+
type: external_exports.literal("link"),
|
|
216
|
+
isButton: external_exports.boolean().default(false),
|
|
217
|
+
link: external_exports.string()
|
|
218
|
+
}).meta({ id: "header-link-external" });
|
|
219
|
+
var headerLinkGroupSchema = headerLinkBaseSchema.extend({
|
|
220
|
+
type: external_exports.literal("group"),
|
|
221
|
+
/** Children of the group. Groups cannot contain other groups, spacers, or the version selector */
|
|
222
|
+
children: external_exports.array(external_exports.union([
|
|
223
|
+
headerLinkGuideSchema,
|
|
224
|
+
headerLinkReferenceSchema,
|
|
225
|
+
headerLinkExternalSchema
|
|
226
|
+
])).describe("Children of the group. Groups cannot contain other groups, spacers, or the version selector")
|
|
227
|
+
}).meta({ id: "header-link-group" });
|
|
228
|
+
var headerLinkSchema = external_exports.union([
|
|
229
|
+
headerLinkGuideSchema,
|
|
230
|
+
headerLinkReferenceSchema,
|
|
231
|
+
headerLinkGroupSchema,
|
|
232
|
+
headerLinkExternalSchema,
|
|
233
|
+
headerLinkVersionSelectorSchema,
|
|
234
|
+
headerLinkSpacerSchema
|
|
235
|
+
]).meta({ id: "header-link" });
|
|
236
|
+
function getHeaderLinks({ guides, references, header }) {
|
|
237
|
+
const complete = [...header].filter((h) => {
|
|
238
|
+
if (h.type === "guide")
|
|
239
|
+
return !!guides[h.uid];
|
|
240
|
+
if (h.type === "reference")
|
|
241
|
+
return !!references[h.uid];
|
|
242
|
+
return true;
|
|
243
|
+
}).map((header2) => {
|
|
244
|
+
if (header2.type !== "group")
|
|
245
|
+
return header2;
|
|
246
|
+
return {
|
|
247
|
+
...header2,
|
|
248
|
+
// Only include header children if the guide/reference is available
|
|
249
|
+
children: header2.children.filter((c) => {
|
|
250
|
+
if (c.type === "guide")
|
|
251
|
+
return !!guides[c.uid];
|
|
252
|
+
if (c.type === "reference")
|
|
253
|
+
return !!references[c.uid];
|
|
254
|
+
return true;
|
|
255
|
+
})
|
|
256
|
+
};
|
|
257
|
+
});
|
|
258
|
+
const orderedIds = [];
|
|
259
|
+
complete.forEach((h) => {
|
|
260
|
+
orderedIds.push(h.uid);
|
|
261
|
+
if (h.type === "group") {
|
|
262
|
+
orderedIds.push(...h.children.map((c) => c.uid));
|
|
263
|
+
}
|
|
264
|
+
});
|
|
265
|
+
Object.values(guides).forEach((g) => {
|
|
266
|
+
if (!orderedIds.includes(g.uid)) {
|
|
267
|
+
complete.push({
|
|
268
|
+
uid: g.uid,
|
|
269
|
+
title: g.title,
|
|
270
|
+
show: g.show,
|
|
271
|
+
isStarred: g.isStarred,
|
|
272
|
+
type: "guide"
|
|
273
|
+
});
|
|
274
|
+
}
|
|
275
|
+
});
|
|
276
|
+
Object.values(references).forEach((r) => {
|
|
277
|
+
if (!orderedIds.includes(r.uid)) {
|
|
278
|
+
complete.push({
|
|
279
|
+
uid: r.uid,
|
|
280
|
+
title: r.title,
|
|
281
|
+
show: r.show,
|
|
282
|
+
isStarred: r.isStarred,
|
|
283
|
+
type: "reference",
|
|
284
|
+
hasPermalink: !!r.specPermalink,
|
|
285
|
+
hasManagedDoc: !!r.managedDoc
|
|
286
|
+
});
|
|
287
|
+
}
|
|
288
|
+
});
|
|
289
|
+
if (!complete.find((e) => e.type === "version-selector")) {
|
|
290
|
+
complete.push({
|
|
291
|
+
uid: nanoid(),
|
|
292
|
+
title: "Version Selector",
|
|
293
|
+
type: "version-selector",
|
|
294
|
+
show: true,
|
|
295
|
+
isStarred: false
|
|
296
|
+
});
|
|
297
|
+
}
|
|
298
|
+
complete.forEach((element) => {
|
|
299
|
+
const guide = guides[element.uid];
|
|
300
|
+
const reference = references[element.uid];
|
|
301
|
+
if (element.type === "guide" && guide) {
|
|
302
|
+
element.title = guide.title;
|
|
303
|
+
element.show = guide.show;
|
|
304
|
+
element.isStarred = guide.isStarred;
|
|
305
|
+
}
|
|
306
|
+
if (element.type === "reference" && reference) {
|
|
307
|
+
element.title = reference.title;
|
|
308
|
+
element.show = reference.show;
|
|
309
|
+
element.isStarred = reference.isStarred;
|
|
310
|
+
element.hasPermalink = !!reference.specPermalink;
|
|
311
|
+
element.hasManagedDoc = !!reference.managedDoc;
|
|
312
|
+
}
|
|
313
|
+
if (element.type === "group") {
|
|
314
|
+
element.children.forEach((c) => {
|
|
315
|
+
const childGuide = guides[c.uid];
|
|
316
|
+
const childReference = references[c.uid];
|
|
317
|
+
if (c.type === "guide" && childGuide) {
|
|
318
|
+
c.title = childGuide.title;
|
|
319
|
+
c.show = childGuide.show;
|
|
320
|
+
c.isStarred = childGuide.isStarred;
|
|
321
|
+
}
|
|
322
|
+
if (c.type === "reference" && childReference) {
|
|
323
|
+
c.title = childReference.title;
|
|
324
|
+
c.show = childReference.show;
|
|
325
|
+
c.isStarred = childReference.isStarred;
|
|
326
|
+
c.hasPermalink = !!childReference.specPermalink;
|
|
327
|
+
c.hasManagedDoc = !!childReference.managedDoc;
|
|
328
|
+
}
|
|
329
|
+
});
|
|
330
|
+
}
|
|
331
|
+
});
|
|
332
|
+
return complete;
|
|
333
|
+
}
|
|
334
|
+
|
|
335
|
+
// ../../packages/entities/dist/project/version/guide.js
|
|
336
|
+
var guideSchema = external_exports.object({
|
|
337
|
+
/** Unique identifier for the guide */
|
|
338
|
+
uid: nanoidSchema,
|
|
339
|
+
/** Title of the guide */
|
|
340
|
+
title: external_exports.string().overwrite((val) => val === "" ? "Guide" : val),
|
|
341
|
+
/** Description of the guide */
|
|
342
|
+
description: external_exports.string(),
|
|
343
|
+
/** Sidebar configuration for the guide */
|
|
344
|
+
sidebar: sidebarSchema,
|
|
345
|
+
/** Whether to publish the guide or not */
|
|
346
|
+
show: external_exports.boolean().default(true),
|
|
347
|
+
/** Option to show the header link as a button */
|
|
348
|
+
isButton: external_exports.boolean().default(false),
|
|
349
|
+
/** Option to force the header link to the top nav */
|
|
350
|
+
isStarred: external_exports.boolean().default(false)
|
|
351
|
+
}).meta({ id: "guide" });
|
|
352
|
+
function defaultGuide() {
|
|
353
|
+
const firstPage = defaultPage();
|
|
354
|
+
return guideSchema.parse({
|
|
355
|
+
uid: nanoid(),
|
|
356
|
+
title: "Guide",
|
|
357
|
+
description: "",
|
|
358
|
+
sidebar: {
|
|
359
|
+
items: {
|
|
360
|
+
[firstPage.uid]: firstPage
|
|
361
|
+
},
|
|
362
|
+
children: [firstPage.uid]
|
|
363
|
+
},
|
|
364
|
+
show: true,
|
|
365
|
+
isButton: false,
|
|
366
|
+
isStarred: false
|
|
367
|
+
});
|
|
368
|
+
}
|
|
369
|
+
|
|
370
|
+
// ../../packages/entities/dist/project/version/reference.js
|
|
371
|
+
var referenceManagedDocSchema = external_exports.object({
|
|
372
|
+
/** API namespace */
|
|
373
|
+
namespace: namespaceSchema,
|
|
374
|
+
/** API slug */
|
|
375
|
+
slug: slugSchema,
|
|
376
|
+
/** Selected versions to display */
|
|
377
|
+
versions: external_exports.string().array().default(["latest"])
|
|
378
|
+
}).meta({ id: "reference-managed-doc" });
|
|
379
|
+
var referenceSchema = external_exports.object({
|
|
380
|
+
/** Unique identifier for the reference */
|
|
381
|
+
uid: nanoidSchema,
|
|
382
|
+
/** Title of the reference */
|
|
383
|
+
title: external_exports.string().overwrite((val) => val === "" ? "Reference" : val),
|
|
384
|
+
/** Description of the reference */
|
|
385
|
+
description: external_exports.string(),
|
|
386
|
+
/** Yjs reference id for the reference */
|
|
387
|
+
yjsReference: nanoidSchema,
|
|
388
|
+
/** Config for the reference */
|
|
389
|
+
config: external_exports.string().default("{}"),
|
|
390
|
+
/** Optional permalink for the reference */
|
|
391
|
+
specPermalink: external_exports.string().default(""),
|
|
392
|
+
/** Optional registry API */
|
|
393
|
+
managedDoc: referenceManagedDocSchema.nullable().default(null),
|
|
394
|
+
/** Whether to publish the reference or not */
|
|
395
|
+
show: external_exports.boolean().default(true),
|
|
396
|
+
/** Option to show the header link as a button */
|
|
397
|
+
isButton: external_exports.boolean().default(false),
|
|
398
|
+
/** Option to force the header link to the top nav */
|
|
399
|
+
isStarred: external_exports.boolean().default(false)
|
|
400
|
+
}).meta({ id: "reference" });
|
|
401
|
+
function defaultReference() {
|
|
402
|
+
return referenceSchema.parse({
|
|
403
|
+
uid: nanoid(),
|
|
404
|
+
title: "",
|
|
405
|
+
description: "",
|
|
406
|
+
yjsReference: nanoid()
|
|
407
|
+
});
|
|
408
|
+
}
|
|
409
|
+
|
|
410
|
+
// ../../packages/entities/dist/project/version/version.js
|
|
411
|
+
var versionSchema = external_exports.object({
|
|
412
|
+
uid: nanoidSchema,
|
|
413
|
+
name: external_exports.string().default("Default Version"),
|
|
414
|
+
primaryGuideId: external_exports.string(),
|
|
415
|
+
primaryReferenceId: external_exports.string(),
|
|
416
|
+
references: external_exports.record(external_exports.string(), referenceSchema),
|
|
417
|
+
guides: external_exports.record(external_exports.string(), guideSchema),
|
|
418
|
+
header: headerLinkSchema.array(),
|
|
419
|
+
footer: external_exports.string().default(""),
|
|
420
|
+
footerCss: external_exports.string().default(""),
|
|
421
|
+
footerBelowSidebar: external_exports.boolean().default(false),
|
|
422
|
+
headScript: external_exports.string().default(""),
|
|
423
|
+
bodyScript: external_exports.string().default("")
|
|
424
|
+
}).overwrite((v) => {
|
|
425
|
+
return {
|
|
426
|
+
...v,
|
|
427
|
+
header: getHeaderLinks({
|
|
428
|
+
guides: v.guides,
|
|
429
|
+
references: v.references,
|
|
430
|
+
header: v.header
|
|
431
|
+
})
|
|
432
|
+
};
|
|
433
|
+
}).meta({ id: "project-version" });
|
|
434
|
+
function defaultVersion(initialState = {}, options = {}) {
|
|
435
|
+
const guide = defaultGuide();
|
|
436
|
+
const reference = defaultReference();
|
|
437
|
+
if (options.hideGuide)
|
|
438
|
+
guide.show = false;
|
|
439
|
+
if (options.hideReference)
|
|
440
|
+
reference.show = false;
|
|
441
|
+
return versionSchema.parse({
|
|
442
|
+
uid: nanoid(),
|
|
443
|
+
name: "Version 0",
|
|
444
|
+
primaryGuideId: guide.uid,
|
|
445
|
+
primaryReferenceId: reference.uid,
|
|
446
|
+
references: { [reference.uid]: reference },
|
|
447
|
+
guides: { [guide.uid]: guide },
|
|
448
|
+
header: getHeaderLinks({
|
|
449
|
+
guides: { [guide.uid]: guide },
|
|
450
|
+
references: { [reference.uid]: reference },
|
|
451
|
+
header: []
|
|
452
|
+
}),
|
|
453
|
+
footer: defaultFooter,
|
|
454
|
+
footerCss: defaultFooterCSS,
|
|
455
|
+
footerBelowSidebar: false,
|
|
456
|
+
headScript: "",
|
|
457
|
+
bodyScript: "",
|
|
458
|
+
...initialState
|
|
459
|
+
});
|
|
460
|
+
}
|
|
461
|
+
|
|
462
|
+
// ../../packages/entities/dist/project/website.js
|
|
463
|
+
var websiteSchema = external_exports.object({
|
|
464
|
+
lastDeployed: timestampSchema,
|
|
465
|
+
subdomainPrefix: external_exports.string().overwrite((val) => val.toLowerCase()),
|
|
466
|
+
customUrl: external_exports.string().overwrite((val) => val.toLowerCase()),
|
|
467
|
+
subPath: external_exports.string().optional(),
|
|
468
|
+
title: external_exports.string().optional(),
|
|
469
|
+
description: external_exports.string().optional(),
|
|
470
|
+
favicon: external_exports.string().optional(),
|
|
471
|
+
ogImage: external_exports.string().optional(),
|
|
472
|
+
proxy: external_exports.url().optional(),
|
|
473
|
+
routing: external_exports.object({
|
|
474
|
+
/**
|
|
475
|
+
* Path replacement pattern for guides.
|
|
476
|
+
* Defaults to `{{version}}/{{guide}}` with version dropped when there is only a single version.
|
|
477
|
+
*/
|
|
478
|
+
guidePathPattern: external_exports.string().optional(),
|
|
479
|
+
/**
|
|
480
|
+
* Path replacement pattern for references.
|
|
481
|
+
* Defaults to `{{version}}/{{reference}}` with version dropped when there is only a single version.
|
|
482
|
+
*/
|
|
483
|
+
referencePathPattern: external_exports.string().optional()
|
|
484
|
+
}).default({
|
|
485
|
+
guidePathPattern: "",
|
|
486
|
+
referencePathPattern: ""
|
|
487
|
+
}),
|
|
488
|
+
redirects: external_exports.array(external_exports.object({
|
|
489
|
+
from: external_exports.string(),
|
|
490
|
+
to: external_exports.string()
|
|
491
|
+
})).default([])
|
|
492
|
+
}).meta({ id: "website" });
|
|
493
|
+
|
|
494
|
+
// ../../packages/entities/dist/project/project.js
|
|
495
|
+
var logoSchema = external_exports.object({
|
|
496
|
+
darkMode: external_exports.string(),
|
|
497
|
+
lightMode: external_exports.string()
|
|
498
|
+
}).meta({ id: "logo" });
|
|
499
|
+
var sharedProjectSchema = entitySchema.extend({
|
|
500
|
+
/** Name of the project */
|
|
501
|
+
name: external_exports.string(),
|
|
502
|
+
/** Record of the last successful deployment */
|
|
503
|
+
activeDeployment: activeDeploymentSchema.nullable().default(null),
|
|
504
|
+
/** Track last published timestamp to allow build interrupts */
|
|
505
|
+
lastPublished: timestampSchema.nullable().default(null),
|
|
506
|
+
/** Uid of the most recent publish record (failed or successful) */
|
|
507
|
+
lastPublishedUid: external_exports.string().nullable().default(null),
|
|
508
|
+
/** Uid of the login portal customization object for private projects */
|
|
509
|
+
loginPortalUid: external_exports.string().default(""),
|
|
510
|
+
/** Active theme id for the project */
|
|
511
|
+
activeThemeId: external_exports.string().default(""),
|
|
512
|
+
/** Typesense id for the project */
|
|
513
|
+
typesenseId: external_exports.number().optional(),
|
|
514
|
+
/** Private projects require a login from a user in an access group */
|
|
515
|
+
isPrivate: external_exports.boolean().default(false),
|
|
516
|
+
/** Toggle AI agent features for the docs project */
|
|
517
|
+
agentEnabled: external_exports.boolean().default(false),
|
|
518
|
+
/** Toggle analytics tracking for the docs project */
|
|
519
|
+
analyticsEnabled: external_exports.boolean().default(true),
|
|
520
|
+
/** Set of allowed access groups */
|
|
521
|
+
accessGroups: scalarSet(external_exports.set(nanoidSchema).max(50)).default([])
|
|
522
|
+
}).meta({ id: "shared-project" });
|
|
523
|
+
var projectSchema = sharedProjectSchema.extend({
|
|
524
|
+
/** Versions of the project */
|
|
525
|
+
versions: external_exports.record(external_exports.string(), versionSchema),
|
|
526
|
+
/** Active template id for the project */
|
|
527
|
+
activeTemplateId: external_exports.string().optional().default(""),
|
|
528
|
+
/** Active version id for the project */
|
|
529
|
+
activeVersionId: external_exports.string().optional().default(""),
|
|
530
|
+
/** Logo for the project */
|
|
531
|
+
logo: logoSchema,
|
|
532
|
+
/** Deployed site configuration for a project */
|
|
533
|
+
website: websiteSchema.describe("Deployed site configuration for a project"),
|
|
534
|
+
insertPageTitles: external_exports.boolean().optional().default(true)
|
|
535
|
+
}).overwrite((project) => {
|
|
536
|
+
if (Object.keys(project.versions).length === 0) {
|
|
537
|
+
const v = defaultVersion({});
|
|
538
|
+
project.versions[v.uid] = v;
|
|
539
|
+
}
|
|
540
|
+
if (!project.activeVersionId) {
|
|
541
|
+
project.activeVersionId = Object.keys(project.versions)[0] ?? "";
|
|
542
|
+
}
|
|
543
|
+
return project;
|
|
544
|
+
}).meta({ id: "project" });
|
|
545
|
+
var githubProjectRepositorySchema = external_exports.object({
|
|
546
|
+
linkedBy: external_exports.string(),
|
|
547
|
+
id: external_exports.number(),
|
|
548
|
+
name: external_exports.string().min(2),
|
|
549
|
+
configPath: external_exports.string().default(""),
|
|
550
|
+
branch: external_exports.string().default(""),
|
|
551
|
+
publishOnMerge: external_exports.boolean().default(false),
|
|
552
|
+
publishPreviews: external_exports.boolean().default(false),
|
|
553
|
+
prComments: external_exports.boolean().default(false),
|
|
554
|
+
/** One-time repository expired tracking */
|
|
555
|
+
expired: external_exports.boolean().default(false)
|
|
556
|
+
}).meta({ id: "github-project-repository" });
|
|
557
|
+
var githubInstallSchema = external_exports.object({
|
|
558
|
+
id: external_exports.number().int(),
|
|
559
|
+
name: external_exports.string(),
|
|
560
|
+
icon: external_exports.string().optional(),
|
|
561
|
+
repos: external_exports.object({
|
|
562
|
+
id: external_exports.number().int(),
|
|
563
|
+
name: external_exports.string(),
|
|
564
|
+
/**
|
|
565
|
+
* The repository's default branch. Optional because a cached response
|
|
566
|
+
* predating this field parses without it, and callers fall back to
|
|
567
|
+
* whatever the server resolves at link time.
|
|
568
|
+
*/
|
|
569
|
+
defaultBranch: external_exports.string().optional()
|
|
570
|
+
}).array()
|
|
571
|
+
}).meta({ id: "github-install" });
|
|
572
|
+
var githubProjectSchema = sharedProjectSchema.extend({
|
|
573
|
+
slug: slugSchema,
|
|
574
|
+
/** Last publish status info */
|
|
575
|
+
publishStatus: external_exports.string().default(""),
|
|
576
|
+
/** Last publish output message */
|
|
577
|
+
publishMessage: external_exports.string().default(""),
|
|
578
|
+
/**
|
|
579
|
+
*
|
|
580
|
+
* Reference info for the link repository
|
|
581
|
+
*
|
|
582
|
+
* Optional for projects which are not linked
|
|
583
|
+
*/
|
|
584
|
+
repository: githubProjectRepositorySchema.nullable().optional()
|
|
585
|
+
}).meta({ id: "github-project" });
|
|
586
|
+
var forgejoRepositorySchema = external_exports.object({
|
|
587
|
+
provider: external_exports.literal("forgejo"),
|
|
588
|
+
forgejoOwner: external_exports.string(),
|
|
589
|
+
forgejoRepo: external_exports.string(),
|
|
590
|
+
branch: external_exports.string().default("main"),
|
|
591
|
+
configPath: external_exports.string().default("scalar.config.json")
|
|
592
|
+
}).meta({ id: "docs-project-repository-forgejo" });
|
|
593
|
+
var githubRepositorySchema = external_exports.object({
|
|
594
|
+
provider: external_exports.literal("github"),
|
|
595
|
+
linkedBy: external_exports.string(),
|
|
596
|
+
installationId: external_exports.number().int(),
|
|
597
|
+
id: external_exports.number().int(),
|
|
598
|
+
name: external_exports.string().min(2),
|
|
599
|
+
/**
|
|
600
|
+
* The team's shared linked-repository record for this remote, so a docs
|
|
601
|
+
* project and a registry document on the same customer repo share one
|
|
602
|
+
* record (and one internal mirror). Null until the backfill stamps it.
|
|
603
|
+
* The embedded remote fields above mirror the record; `branch`,
|
|
604
|
+
* `configPath` and the publish flags below describe how this project uses
|
|
605
|
+
* the repo and stay here.
|
|
606
|
+
*/
|
|
607
|
+
repositoryUid: nanoidSchema.brand().nullable().default(null),
|
|
608
|
+
branch: external_exports.string().default("main"),
|
|
609
|
+
configPath: external_exports.string().default("scalar.config.json"),
|
|
610
|
+
publishOnMerge: external_exports.boolean().default(true),
|
|
611
|
+
publishPreviews: external_exports.boolean().default(false),
|
|
612
|
+
prComments: external_exports.boolean().default(false),
|
|
613
|
+
expired: external_exports.boolean().default(false)
|
|
614
|
+
}).meta({ id: "docs-project-repository-github" });
|
|
615
|
+
var bitbucketRepositorySchema = external_exports.object({
|
|
616
|
+
provider: external_exports.literal("bitbucket"),
|
|
617
|
+
linkedBy: external_exports.string(),
|
|
618
|
+
workspaceUuid: external_exports.string(),
|
|
619
|
+
workspaceSlug: external_exports.string(),
|
|
620
|
+
repoUuid: external_exports.string(),
|
|
621
|
+
repoSlug: external_exports.string(),
|
|
622
|
+
/** `workspaceSlug/repoSlug` for display, mirrored from GitHub for symmetry */
|
|
623
|
+
name: external_exports.string().min(2),
|
|
624
|
+
/** The shared linked-repository record; wired when Bitbucket linking is. */
|
|
625
|
+
repositoryUid: nanoidSchema.brand().nullable().default(null),
|
|
626
|
+
branch: external_exports.string().default("main"),
|
|
627
|
+
configPath: external_exports.string().default("scalar.config.json"),
|
|
628
|
+
publishOnMerge: external_exports.boolean().default(true),
|
|
629
|
+
publishPreviews: external_exports.boolean().default(false),
|
|
630
|
+
prComments: external_exports.boolean().default(false),
|
|
631
|
+
expired: external_exports.boolean().default(false),
|
|
632
|
+
/**
|
|
633
|
+
* The Scalar hook this project was pointed at when it linked. Hooks are
|
|
634
|
+
* shared by every project on the repository, so this may name a hook a
|
|
635
|
+
* later link collapsed away; the hook is only deleted once no project is
|
|
636
|
+
* left on the repository.
|
|
637
|
+
*/
|
|
638
|
+
webhookUuid: external_exports.string().default("")
|
|
639
|
+
}).meta({ id: "docs-project-repository-bitbucket" });
|
|
640
|
+
var docsProjectRepositorySchema = external_exports.discriminatedUnion("provider", [
|
|
641
|
+
forgejoRepositorySchema,
|
|
642
|
+
githubRepositorySchema,
|
|
643
|
+
bitbucketRepositorySchema
|
|
644
|
+
]);
|
|
645
|
+
var remoteActivitySchema = external_exports.object({
|
|
646
|
+
at: timestampSchema,
|
|
647
|
+
branch: external_exports.string().nullable(),
|
|
648
|
+
sha: external_exports.string().nullable(),
|
|
649
|
+
actorName: external_exports.string().nullable()
|
|
650
|
+
}).meta({ id: "docs-project-remote-activity" });
|
|
651
|
+
var docsProjectSchema = sharedProjectSchema.extend({
|
|
652
|
+
slug: slugSchema,
|
|
653
|
+
publishStatus: external_exports.string().default(""),
|
|
654
|
+
publishMessage: external_exports.string().default(""),
|
|
655
|
+
repository: docsProjectRepositorySchema,
|
|
656
|
+
/**
|
|
657
|
+
* `.catch(undefined)` so a malformed bump degrades to "no signal" instead
|
|
658
|
+
* of failing the schema parse inside every subscribed dashboard.
|
|
659
|
+
*/
|
|
660
|
+
remoteActivity: remoteActivitySchema.optional().catch(void 0)
|
|
661
|
+
}).meta({ id: "docs-project" });
|
|
662
|
+
function isGithubBackedDocsProject(project) {
|
|
663
|
+
return project.repository.provider === "github";
|
|
664
|
+
}
|
|
665
|
+
|
|
666
|
+
// ../../packages/entities/dist/project/publish.js
|
|
667
|
+
var ConfigVersion;
|
|
668
|
+
(function(ConfigVersion2) {
|
|
669
|
+
ConfigVersion2["V1"] = "1.0.0";
|
|
670
|
+
ConfigVersion2["V2"] = "2.0.0";
|
|
671
|
+
})(ConfigVersion || (ConfigVersion = {}));
|
|
672
|
+
var publishRecordSchema = entitySchema.extend({
|
|
673
|
+
projectUid: nanoidSchema,
|
|
674
|
+
status: external_exports.union([
|
|
675
|
+
external_exports.literal("pending"),
|
|
676
|
+
external_exports.literal("building"),
|
|
677
|
+
external_exports.literal("deployed"),
|
|
678
|
+
external_exports.literal("inactive"),
|
|
679
|
+
external_exports.literal("error"),
|
|
680
|
+
external_exports.literal("deleted"),
|
|
681
|
+
external_exports.literal("cancelled")
|
|
682
|
+
]),
|
|
683
|
+
deployedAt: external_exports.number().nullable().default(null),
|
|
684
|
+
message: external_exports.string().default(""),
|
|
685
|
+
domain: external_exports.string().default(""),
|
|
686
|
+
preview: external_exports.boolean().optional().default(false),
|
|
687
|
+
/**
|
|
688
|
+
* Whether this publish may comment its preview URL on the pull requests
|
|
689
|
+
* that contain its commit. Resolved from the project's config when the
|
|
690
|
+
* publish is triggered, because the build finishes long after the trigger
|
|
691
|
+
* and the config may have moved on by then.
|
|
692
|
+
*
|
|
693
|
+
* Opt-out, not opt-in: a project that never states a preference keeps the
|
|
694
|
+
* comments, and records written before this field existed parse as `true`.
|
|
695
|
+
*/
|
|
696
|
+
pullRequestComments: external_exports.boolean().optional().default(true),
|
|
697
|
+
commitSha: external_exports.string().nullable().default(null),
|
|
698
|
+
version: external_exports.enum(ConfigVersion).default(ConfigVersion.V1),
|
|
699
|
+
isWysiwyg: external_exports.boolean().default(false),
|
|
700
|
+
unifiedDocs: external_exports.boolean().default(false),
|
|
701
|
+
subpath: external_exports.string().nullable().default(null),
|
|
702
|
+
configPath: external_exports.string().optional().default("scalar.config.json"),
|
|
703
|
+
registryApis: external_exports.object({
|
|
704
|
+
uid: nanoidSchema,
|
|
705
|
+
version: external_exports.string()
|
|
706
|
+
}).array().optional().default([]),
|
|
707
|
+
agentToken: external_exports.string().nullable().default(null)
|
|
708
|
+
}).meta({ id: "publish-record" });
|
|
709
|
+
|
|
710
|
+
// ../../packages/entities/dist/theme/index.js
|
|
711
|
+
var themeSchema = external_exports.object({
|
|
712
|
+
uid: nanoidSchema,
|
|
713
|
+
name: external_exports.string(),
|
|
714
|
+
description: external_exports.string(),
|
|
715
|
+
theme: external_exports.string(),
|
|
716
|
+
slug: slugSchema
|
|
717
|
+
}).meta({ id: "theme" });
|
|
718
|
+
|
|
719
|
+
// ../../packages/entities/dist/project/signup.js
|
|
720
|
+
var signupDataSchema = external_exports.object({
|
|
721
|
+
uid: nanoidSchema,
|
|
722
|
+
version: versionSchema,
|
|
723
|
+
theme: themeSchema.optional(),
|
|
724
|
+
yjsDocs: external_exports.record(external_exports.string(), external_exports.string()),
|
|
725
|
+
yjsReferences: external_exports.record(external_exports.string(), external_exports.string())
|
|
726
|
+
}).meta({ id: "signup-data" });
|
|
727
|
+
|
|
728
|
+
export {
|
|
729
|
+
activeDeploymentSchema,
|
|
730
|
+
customProjectIconSchema,
|
|
731
|
+
SidebarType,
|
|
732
|
+
sharedProjectSchema,
|
|
733
|
+
projectSchema,
|
|
734
|
+
githubInstallSchema,
|
|
735
|
+
githubProjectSchema,
|
|
736
|
+
docsProjectSchema,
|
|
737
|
+
isGithubBackedDocsProject,
|
|
738
|
+
ConfigVersion,
|
|
739
|
+
publishRecordSchema,
|
|
740
|
+
themeSchema
|
|
741
|
+
};
|