@scalar/cli 2.0.1 → 2.1.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 (80) hide show
  1. package/README.md +40 -0
  2. package/chunks/action-45OGQB2M.js +138 -0
  3. package/chunks/action-5R5FDF6S.js +2097 -0
  4. package/chunks/action-ANU5HGC4.js +34 -0
  5. package/chunks/action-BMFXENMX.js +176 -0
  6. package/chunks/action-BNEGJBUH.js +38 -0
  7. package/chunks/action-BYZUBXVB.js +82 -0
  8. package/chunks/action-C5VB4ITT.js +132 -0
  9. package/chunks/action-CCW66QJN.js +72 -0
  10. package/chunks/action-CLSD7O2R.js +60 -0
  11. package/chunks/action-CQ56FVES.js +65 -0
  12. package/chunks/action-CYP4VDK3.js +148 -0
  13. package/chunks/action-DFKHSDFV.js +36 -0
  14. package/chunks/action-F4Y6Q2VB.js +92 -0
  15. package/chunks/action-GB6DM53B.js +70 -0
  16. package/chunks/action-GEBRPNRT.js +87 -0
  17. package/chunks/action-H5OHT2GV.js +56 -0
  18. package/chunks/action-HD2T6BFJ.js +54 -0
  19. package/chunks/action-HNKM3Q65.js +65 -0
  20. package/chunks/action-JOSVV6YA.js +71 -0
  21. package/chunks/action-MENXFJH3.js +204 -0
  22. package/chunks/action-P7LN6FGY.js +13 -0
  23. package/chunks/action-PVDDRIM6.js +130 -0
  24. package/chunks/action-Q5UJ32D6.js +46 -0
  25. package/chunks/action-R6ZZO26F.js +299 -0
  26. package/chunks/action-STIEAXOE.js +53 -0
  27. package/chunks/action-TPBKPHNS.js +110 -0
  28. package/chunks/action-TWFJNQ2R.js +95 -0
  29. package/chunks/action-TZ5KGAQT.js +64 -0
  30. package/chunks/action-UDZUUJSI.js +49 -0
  31. package/chunks/action-W5BATF4Q.js +197 -0
  32. package/chunks/agent-XGLOHXNA.js +112 -0
  33. package/chunks/build.action-LKOILPA6.js +108 -0
  34. package/chunks/chunk-23I5PKZZ.js +78 -0
  35. package/chunks/chunk-2BSG2QHO.js +455 -0
  36. package/chunks/chunk-3MZYUBJ6.js +49 -0
  37. package/chunks/chunk-47Y4L5IT.js +63361 -0
  38. package/chunks/chunk-4DGQIAJX.js +359 -0
  39. package/chunks/chunk-4QS7SJTG.js +138 -0
  40. package/chunks/chunk-5BISXQX4.js +447 -0
  41. package/chunks/chunk-5BPPGTUU.js +463 -0
  42. package/chunks/chunk-AEFPCC4U.js +16 -0
  43. package/chunks/chunk-AHWWJ3MD.js +32 -0
  44. package/chunks/chunk-ASMHW5AY.js +19 -0
  45. package/chunks/chunk-B6QZJWCQ.js +92 -0
  46. package/chunks/chunk-DOVIWNKQ.js +108 -0
  47. package/chunks/chunk-H2WRMLYY.js +13780 -0
  48. package/chunks/chunk-HQKBZOYU.js +34 -0
  49. package/chunks/chunk-ISGLWBXZ.js +4265 -0
  50. package/chunks/chunk-IX7LJ3AD.js +17 -0
  51. package/chunks/chunk-JFIXNSPP.js +26 -0
  52. package/chunks/chunk-K74E42RV.js +7311 -0
  53. package/chunks/chunk-KHDYYVYF.js +16 -0
  54. package/chunks/chunk-KWOL7A6J.js +23 -0
  55. package/chunks/chunk-NUXPNUSS.js +38 -0
  56. package/chunks/chunk-OAXFCOJV.js +25 -0
  57. package/chunks/chunk-P2VH7DOC.js +107 -0
  58. package/chunks/chunk-P646T2WH.js +1608 -0
  59. package/chunks/chunk-SHSHFGA7.js +297 -0
  60. package/chunks/chunk-SXYALPYK.js +2709 -0
  61. package/chunks/chunk-T7B6WNZC.js +18 -0
  62. package/chunks/chunk-T7MDADON.js +17 -0
  63. package/chunks/chunk-TLFMATXR.js +344 -0
  64. package/chunks/chunk-TQ5XC2E3.js +284 -0
  65. package/chunks/chunk-UPUTMFD4.js +465 -0
  66. package/chunks/chunk-VTYTPSXO.js +161 -0
  67. package/chunks/chunk-X4QLDBB5.js +221 -0
  68. package/chunks/chunk-ZTVWAKNJ.js +21 -0
  69. package/chunks/create.action-FFQLBSJH.js +108 -0
  70. package/chunks/delete.action-QNN3LC2F.js +96 -0
  71. package/chunks/delete.action-STHQHP4F.js +88 -0
  72. package/chunks/get.action-OTKYOP3Z.js +87 -0
  73. package/chunks/list.action-6I5EZAVB.js +95 -0
  74. package/chunks/list.action-KDM5RHEH.js +116 -0
  75. package/chunks/publish.action-PODTVRXS.js +182 -0
  76. package/chunks/update.action-4F6STTEQ.js +101 -0
  77. package/chunks/update.action-KMD4ZM75.js +95 -0
  78. package/docs.html +310 -209
  79. package/index.js +645 -99061
  80. package/package.json +13 -11
@@ -0,0 +1,465 @@
1
+ import { createRequire as $$cR } from "node:module"; const require = $$cR(import.meta.url);
2
+ import {
3
+ RegistryResourceTypes,
4
+ baseRegistrySchema
5
+ } from "./chunk-VTYTPSXO.js";
6
+ import {
7
+ brandedUid,
8
+ docVersionSchema,
9
+ emailSchema,
10
+ entitySchema,
11
+ mintUid,
12
+ nanoid,
13
+ nanoidSchema,
14
+ randomAccessGroupSlug,
15
+ registryMetaSchema,
16
+ scalarSet,
17
+ slugSchema,
18
+ timestampSchema,
19
+ unixTimestamp
20
+ } from "./chunk-ISGLWBXZ.js";
21
+ import {
22
+ external_exports
23
+ } from "./chunk-H2WRMLYY.js";
24
+
25
+ // ../../packages/entities/dist/access-group/schema.js
26
+ var emailDomainRegex = /^([A-Za-z0-9]+(-[A-Za-z0-9]+)*\.)+[A-Za-z]{2,}$/i;
27
+ var emailDomainSchema = external_exports.string().regex(emailDomainRegex, "Invalid domain").max(253).meta({ id: "email-domain" });
28
+ var accessGroupEmails = scalarSet(external_exports.set(emailSchema).max(1e3, "You can only add up to 1000 emails"));
29
+ var accessGroupDomains = scalarSet(external_exports.set(emailDomainSchema).max(1e3, "You can only add up to 1000 domains"));
30
+ var accessGroupNameSchema = external_exports.string().max(40).meta({ id: "access-group-name" });
31
+ var accessGroupSchema = entitySchema.extend({
32
+ name: accessGroupNameSchema.default(""),
33
+ slug: slugSchema.default(randomAccessGroupSlug).meta({ default: "randomAccessGroupSlug()" }),
34
+ /** Set of allowed external email addresses */
35
+ allowedEmails: accessGroupEmails.default([]),
36
+ /** List of allowed email domains */
37
+ allowedDomains: accessGroupDomains.default([])
38
+ }).meta({ id: "access-group" });
39
+
40
+ // ../../packages/entities/dist/auth/identity-provider.js
41
+ var identityProviders = [
42
+ "local",
43
+ "google",
44
+ "okta",
45
+ "auth0",
46
+ "azure",
47
+ "one-login",
48
+ "ping-identity"
49
+ ];
50
+ var identityProviderRecordSchema = entitySchema.extend({
51
+ uid: nanoidSchema,
52
+ name: external_exports.string(),
53
+ provider: external_exports.enum(identityProviders),
54
+ createUsers: external_exports.boolean().default(false),
55
+ signRequests: external_exports.boolean().default(false),
56
+ /** Initiation URL */
57
+ ssoUrl: external_exports.string().default("").describe("This URL is used by Scalar to initiate a SAML login."),
58
+ /** IdP issuer */
59
+ issuer: external_exports.string().default("").describe("This is the URI that identifies your SAML identity provider. Any assertions must use a matching <saml:Issuer> attribute."),
60
+ /** Public provider certificate */
61
+ x509Cert: external_exports.string().default("").describe("The authentication certificate issued by your identity provider"),
62
+ /** Allow hosting authentication only */
63
+ consumerOnly: external_exports.boolean()
64
+ }).meta({ id: "identity-provider-record" });
65
+
66
+ // ../../packages/entities/dist/auth/login-attempt.js
67
+ var loginAttemptRecordSchema = entitySchema.extend({
68
+ /**
69
+ * HMAC of the account's userIndex, scoped to the action being counted. The
70
+ * address itself is deliberately not stored, so this collection cannot be
71
+ * read as a list of registered users.
72
+ */
73
+ attemptKey: external_exports.string(),
74
+ /** Consecutive failures. The record is dropped when a login succeeds. */
75
+ failedCount: external_exports.number().int(),
76
+ /** When the most recent failure was recorded, in unix seconds */
77
+ lastFailureAt: external_exports.number().int(),
78
+ /**
79
+ * When this record may be collected, as a Date because MongoDB TTL indexes
80
+ * only act on BSON dates and silently ignore numeric fields.
81
+ */
82
+ expiresAt: external_exports.date()
83
+ }).meta({ id: "login-attempt-record" });
84
+
85
+ // ../../packages/entities/dist/auth/flows.js
86
+ var OnboardingFlow;
87
+ (function(OnboardingFlow2) {
88
+ OnboardingFlow2["OssAgent"] = "oss-agent";
89
+ })(OnboardingFlow || (OnboardingFlow = {}));
90
+
91
+ // ../../packages/entities/dist/auth/oauth-state.js
92
+ var googleProfileSchema = external_exports.object({
93
+ email: emailSchema,
94
+ name: external_exports.string().min(1),
95
+ picture: external_exports.string().optional(),
96
+ email_verified: external_exports.boolean()
97
+ }).meta({ id: "google-profile" });
98
+ var githubProfileSchema = external_exports.object({
99
+ login: external_exports.string(),
100
+ name: external_exports.string().optional().nullable().default(null),
101
+ email: emailSchema.optional().nullable().default(null),
102
+ avatar_url: external_exports.string().optional().nullable().default(null)
103
+ }).meta({ id: "github-profile" });
104
+ var oauthStateSchema = external_exports.object({
105
+ uid: external_exports.string(),
106
+ redirect: external_exports.string(),
107
+ signupDataUid: external_exports.string().optional(),
108
+ teamInvite: external_exports.string().optional(),
109
+ flow: external_exports.enum(OnboardingFlow).optional()
110
+ }).meta({ id: "oauth-state" });
111
+ var microsoftProfileSchema = external_exports.object({
112
+ email: emailSchema,
113
+ name: external_exports.string().optional(),
114
+ /** Entra tenant id; the consumer tenant means a personal account */
115
+ tid: external_exports.string(),
116
+ /**
117
+ * "Email domain owner verified" optional claim. Entra tenant admins can
118
+ * put arbitrary emails on their users (nOAuth), so without this claim a
119
+ * work-account email cannot be trusted for allowlist checks.
120
+ */
121
+ xms_edov: external_exports.union([external_exports.boolean(), external_exports.string()]).optional()
122
+ }).meta({ id: "microsoft-profile" });
123
+ var hostingOauthResourceSchema = external_exports.enum([...RegistryResourceTypes, "sync-project", "project", "publish"]).meta({ id: "hosting-oauth-resource" });
124
+ var hostingOauthStateSchema = external_exports.object({
125
+ uid: nanoidSchema,
126
+ resource: external_exports.object({
127
+ uid: nanoidSchema,
128
+ type: hostingOauthResourceSchema
129
+ }),
130
+ teamUid: nanoidSchema,
131
+ redirect: external_exports.string().optional(),
132
+ /** Stamped on the stored record so abandoned states can be vacuumed */
133
+ createdAt: external_exports.number().optional()
134
+ }).meta({ id: "hosting-oauth-state" });
135
+
136
+ // ../../packages/entities/dist/auth/personal-token.js
137
+ var personalTokenRecordSchema = external_exports.object({
138
+ uid: external_exports.string(),
139
+ /** User friendly name */
140
+ name: external_exports.string().min(3).max(50),
141
+ /** User friendly description */
142
+ description: external_exports.string().max(200).optional().default(""),
143
+ /** Associate a personal token with a team */
144
+ teamUid: external_exports.string(),
145
+ /** Token expiry time in unix timestamp */
146
+ expiresAt: external_exports.number().int(),
147
+ /** Tracks if a token is blacklisted. Should not be used if token is revoked */
148
+ revoked: external_exports.boolean()
149
+ }).meta({ id: "personal-token-record" });
150
+
151
+ // ../../packages/entities/dist/auth/saml-state.js
152
+ var samlStateSchema = external_exports.object({
153
+ uid: nanoidSchema,
154
+ // AuthN request identifier
155
+ requestId: external_exports.string(),
156
+ // IDP configuration identifier
157
+ idpUid: nanoidSchema,
158
+ // Random state
159
+ relayState: external_exports.string().min(20),
160
+ // Redirect after sign in
161
+ redirect: external_exports.string().optional(),
162
+ // Expiry
163
+ expiresAt: external_exports.number()
164
+ }).meta({ id: "saml-state" });
165
+ var ssoResourceSchema = external_exports.enum([...RegistryResourceTypes, "sync-project", "project", "publish", "mcp"]).meta({ id: "sso-resource" });
166
+ var relayStateSchema = external_exports.object({
167
+ /** Uniquely identifies a relay state */
168
+ uid: nanoidSchema.default(nanoid).meta({ default: "nanoid()" }),
169
+ /** Identity provider metadata */
170
+ idp: external_exports.object({
171
+ uid: nanoidSchema,
172
+ provider: external_exports.enum(identityProviders)
173
+ }),
174
+ /**
175
+ * A resource indicates which specific product entity a
176
+ * relay state is meant for.
177
+ *
178
+ * If optional, the relay state is meant to redirect
179
+ * you to the platform (i.e. Dashboard URL) by default.
180
+ */
181
+ resource: external_exports.object({
182
+ /** Identify resource by UID */
183
+ uid: nanoidSchema,
184
+ /** Allowed product SSO connections */
185
+ type: ssoResourceSchema
186
+ }).optional()
187
+ }).meta({ id: "relay-state", default: "nanoid()" });
188
+
189
+ // ../../packages/entities/dist/auth/domains.js
190
+ var AuthDomains;
191
+ (function(AuthDomains2) {
192
+ AuthDomains2["Cli"] = "cli";
193
+ AuthDomains2["Docs"] = "docs";
194
+ AuthDomains2["Client"] = "client";
195
+ AuthDomains2["Local"] = "local";
196
+ AuthDomains2["Dashboard"] = "dashboard";
197
+ AuthDomains2["Editor"] = "editor";
198
+ AuthDomains2["Agent"] = "agent";
199
+ AuthDomains2["Mcp"] = "mcp";
200
+ })(AuthDomains || (AuthDomains = {}));
201
+
202
+ // ../../packages/entities/dist/login-portals/customization.js
203
+ var loginPortalEmailSchema = external_exports.object({
204
+ /** @deprecated No longer rendered in the email template */
205
+ logo: external_exports.string().default(""),
206
+ /** @deprecated No longer rendered in the email template */
207
+ logoSize: external_exports.string().default("100"),
208
+ buttonText: external_exports.string().max(50).default("Login"),
209
+ message: external_exports.string().max(1e3).default("Click to access private documentation hosted by scalar.com"),
210
+ title: external_exports.string().max(100).default("Private Docs"),
211
+ mainColor: external_exports.string().max(100).default("#2a2f45"),
212
+ mainBackground: external_exports.string().max(100).default("#f6f6f6"),
213
+ cardColor: external_exports.string().max(100).default("#2a2f45"),
214
+ cardBackground: external_exports.string().max(100).default("#fff"),
215
+ buttonColor: external_exports.string().max(100).default("#fff"),
216
+ buttonBackground: external_exports.string().max(100).default("#0f0f0f")
217
+ }).meta({ id: "login-portal-email" });
218
+ var loginPortalPageSchema = external_exports.object({
219
+ /** Title of the page for the HTML Head */
220
+ title: external_exports.string().max(100).default("Scalar Private Docs"),
221
+ /** Description of the page for the HTML Head */
222
+ description: external_exports.string().max(500).default("Login to access your documentation"),
223
+ /** Custom HTML for the head of the page */
224
+ head: external_exports.string().default(""),
225
+ /** Script to include in the head of the page */
226
+ script: external_exports.string().default(""),
227
+ /** UID of the team theme to apply to the page */
228
+ theme: external_exports.string().default(""),
229
+ /** Company name used in the header */
230
+ companyName: external_exports.string().max(100).default(""),
231
+ /** Logo of the company used in the header as raw SVG/HTML */
232
+ logo: external_exports.string().default(""),
233
+ /** Link that the logo redirects to when clicking */
234
+ logoURL: external_exports.string().default(""),
235
+ /** Favicon URL or dataURI */
236
+ favicon: external_exports.string().default(""),
237
+ /** Terms link */
238
+ termsLink: external_exports.string().default(""),
239
+ /** Privacy link */
240
+ privacyLink: external_exports.string().default(""),
241
+ /** Title of the form */
242
+ formTitle: external_exports.string().max(100).default("Scalar Private Docs"),
243
+ /** Description of the form */
244
+ formDescription: external_exports.string().max(500).default("Login to access your documentation"),
245
+ /** Image of the form */
246
+ formImage: external_exports.string().default("")
247
+ }).meta({ id: "login-portal-page" });
248
+ var loginPortalSchema = external_exports.object({
249
+ uid: nanoidSchema,
250
+ title: external_exports.string().max(200),
251
+ slug: slugSchema,
252
+ email: loginPortalEmailSchema,
253
+ page: loginPortalPageSchema
254
+ }).meta({ id: "login-portal" });
255
+
256
+ // ../../packages/entities/dist/managed-schema/schema.js
257
+ var managedSchemaVersion = entitySchema.extend({
258
+ /** Version identifier (e.g. 0.0.1) for schema */
259
+ version: docVersionSchema.default("0.0.1")
260
+ }).meta({ id: "managed-schema-version" });
261
+ var managedSchemaFormat = external_exports.enum(["json", "yaml"]).meta({ id: "managed-schema-format" });
262
+ var managedSchema = baseRegistrySchema.extend({
263
+ /** Own uid, branded so it cannot be confused with another entity's uid */
264
+ uid: brandedUid().default(mintUid).meta({ default: "nanoid()" }),
265
+ /** The current version served to consumers by default */
266
+ version: docVersionSchema.default("0.0.1"),
267
+ /** All schema versions */
268
+ versions: managedSchemaVersion.array(),
269
+ /** Default schema format for edit/view */
270
+ format: managedSchemaFormat.default("json")
271
+ }).meta({ id: "managed-schema" });
272
+
273
+ // ../../packages/entities/dist/waitlist/index.js
274
+ var WaitlistProducts;
275
+ (function(WaitlistProducts2) {
276
+ WaitlistProducts2["Client"] = "client";
277
+ })(WaitlistProducts || (WaitlistProducts = {}));
278
+ var WaitlistSources;
279
+ (function(WaitlistSources2) {
280
+ WaitlistSources2["Client"] = "client";
281
+ })(WaitlistSources || (WaitlistSources = {}));
282
+ var waitlistRecordSchema = external_exports.object({
283
+ uid: nanoidSchema,
284
+ email: emailSchema,
285
+ products: external_exports.array(external_exports.enum(WaitlistProducts)),
286
+ createdAt: timestampSchema,
287
+ updatedAt: timestampSchema,
288
+ metadata: external_exports.record(external_exports.string(), external_exports.union([external_exports.string(), external_exports.number(), external_exports.boolean()])).optional().overwrite((obj) => {
289
+ if (!obj || Object.keys(obj).length < 50)
290
+ return obj;
291
+ const trimmedObj = Object.fromEntries(Object.entries(obj).slice(0, 50));
292
+ return trimmedObj;
293
+ })
294
+ }).meta({ id: "waitlist-record" });
295
+
296
+ // ../../packages/entities/dist/workspace/hotkeys/constants.js
297
+ var HOTKEY_EVENT_NAMES = [
298
+ "closeModal",
299
+ "commandPaletteDown",
300
+ "commandPaletteSelect",
301
+ "commandPaletteUp",
302
+ "openCommandPalette",
303
+ "toggleSidebar",
304
+ "addTopNav",
305
+ "closeTopNav",
306
+ "navigateTopNavLeft",
307
+ "navigateTopNavRight",
308
+ "focusAddressBar",
309
+ "jumpToTab",
310
+ "jumpToLastTab"
311
+ ];
312
+ var KEYDOWN_KEYS = [
313
+ "Space",
314
+ "Backspace",
315
+ "Tab",
316
+ "Enter",
317
+ "Escape",
318
+ "ArrowDown",
319
+ "ArrowLeft",
320
+ "ArrowRight",
321
+ "ArrowUp",
322
+ "End",
323
+ "Home",
324
+ "PageDown",
325
+ "PageUp",
326
+ "Delete",
327
+ "0",
328
+ "1",
329
+ "2",
330
+ "3",
331
+ "4",
332
+ "5",
333
+ "6",
334
+ "7",
335
+ "8",
336
+ "9",
337
+ "a",
338
+ "b",
339
+ "c",
340
+ "d",
341
+ "e",
342
+ "f",
343
+ "g",
344
+ "h",
345
+ "i",
346
+ "j",
347
+ "k",
348
+ "l",
349
+ "m",
350
+ "n",
351
+ "o",
352
+ "p",
353
+ "q",
354
+ "r",
355
+ "s",
356
+ "t",
357
+ "u",
358
+ "v",
359
+ "w",
360
+ "x",
361
+ "y",
362
+ "z",
363
+ "0",
364
+ "1",
365
+ "2",
366
+ "3",
367
+ "4",
368
+ "5",
369
+ "6",
370
+ "7",
371
+ "8",
372
+ "9",
373
+ "*",
374
+ "+",
375
+ "-",
376
+ ".",
377
+ "/",
378
+ "F1",
379
+ "F2",
380
+ "F3",
381
+ "F4",
382
+ "F5",
383
+ "F6",
384
+ "F7",
385
+ "F8",
386
+ "F9",
387
+ "F10",
388
+ "F11",
389
+ "F12",
390
+ ";",
391
+ "=",
392
+ ",",
393
+ "-",
394
+ ".",
395
+ "/",
396
+ "`",
397
+ "[",
398
+ "\\",
399
+ "]",
400
+ ""
401
+ ];
402
+
403
+ // ../../packages/entities/dist/workspace/hotkeys/hotkeys.js
404
+ var modifier = external_exports.enum(["Meta", "Control", "Shift", "Alt", "default"]).optional().default("default").meta({ id: "modifier" });
405
+ var modifiers = external_exports.array(modifier).optional().default(["default"]).meta({ id: "modifiers" });
406
+ var hotKeys = external_exports.record(external_exports.enum(KEYDOWN_KEYS), external_exports.object({
407
+ modifiers: modifiers.optional(),
408
+ event: external_exports.enum(HOTKEY_EVENT_NAMES)
409
+ })).meta({ id: "hot-keys" });
410
+ var hotKeyConfigSchema = external_exports.object({
411
+ modifiers,
412
+ hotKeys: hotKeys.optional()
413
+ }).optional().meta({ id: "hot-key-config" });
414
+
415
+ // ../../packages/entities/dist/workspace/workspace.js
416
+ var workspaceJsonSchema = external_exports.object({
417
+ /** Customize hotkeys */
418
+ hotKeyConfig: hotKeyConfigSchema,
419
+ /** Workspace level proxy for all requests to be sent through */
420
+ proxyUrl: external_exports.string().optional(),
421
+ /** Workspace level theme */
422
+ theme: external_exports.string().optional(),
423
+ /** Ordered list of documents to add to the workspace */
424
+ documents: external_exports.record(external_exports.string(), external_exports.looseObject({
425
+ title: external_exports.string().optional(),
426
+ $ref: external_exports.string().optional()
427
+ })),
428
+ /**
429
+ * Workspace level spec extensions.
430
+ *
431
+ * This must be an OAS Compliant JSON object that extends a spec with additional
432
+ * properties such as extra servers, cookies, auth, and environments
433
+ */
434
+ extensions: external_exports.looseObject({})
435
+ }).meta({ id: "workspace-json" });
436
+ var workspaceVersionSchema = external_exports.object({
437
+ version: docVersionSchema,
438
+ /**
439
+ * We also keep a list of any managed docs used
440
+ * in the workspace version, in case we need to
441
+ * trigger any platform actions or update the
442
+ * workspace JSON
443
+ */
444
+ managedDocs: registryMetaSchema.array(),
445
+ createdAt: timestampSchema.default(unixTimestamp).meta({ default: "unixTimestamp()" }),
446
+ updatedAt: timestampSchema.default(unixTimestamp).meta({ default: "unixTimestamp()" })
447
+ }).meta({ id: "workspace-version" });
448
+ var workspaceSchema = baseRegistrySchema.extend({
449
+ uid: nanoidSchema,
450
+ /** The current version served to consumers by default */
451
+ version: docVersionSchema,
452
+ versions: workspaceVersionSchema.array()
453
+ }).meta({ id: "workspace" });
454
+
455
+ export {
456
+ accessGroupSchema,
457
+ identityProviders,
458
+ identityProviderRecordSchema,
459
+ loginPortalSchema,
460
+ managedSchema,
461
+ WaitlistProducts,
462
+ WaitlistSources,
463
+ workspaceVersionSchema,
464
+ workspaceSchema
465
+ };
@@ -0,0 +1,161 @@
1
+ import { createRequire as $$cR } from "node:module"; const require = $$cR(import.meta.url);
2
+ import {
3
+ brandedUid,
4
+ docVersionSchema,
5
+ entitySchema,
6
+ namespaceSchema,
7
+ nanoidSchema,
8
+ randomManagedDocSlug,
9
+ scalarSet,
10
+ slugSchema,
11
+ timestampSchema
12
+ } from "./chunk-ISGLWBXZ.js";
13
+ import {
14
+ external_exports
15
+ } from "./chunk-H2WRMLYY.js";
16
+
17
+ // ../../packages/entities/dist/registry/schema.js
18
+ var RegistryAsset;
19
+ (function(RegistryAsset2) {
20
+ RegistryAsset2["Apis"] = "apis";
21
+ RegistryAsset2["Rules"] = "rules";
22
+ RegistryAsset2["Schemas"] = "schemas";
23
+ RegistryAsset2["Sdks"] = "sdks";
24
+ RegistryAsset2["Workspaces"] = "workspaces";
25
+ })(RegistryAsset || (RegistryAsset = {}));
26
+ var RegistryResourceTypes = [
27
+ RegistryAsset.Apis,
28
+ RegistryAsset.Schemas,
29
+ RegistryAsset.Rules,
30
+ RegistryAsset.Sdks,
31
+ RegistryAsset.Workspaces
32
+ ];
33
+ var registryAssetSchema = external_exports.enum(RegistryAsset).meta({ id: "registry-asset" });
34
+ var registryGitExternalSchema = external_exports.discriminatedUnion("provider", [
35
+ external_exports.object({
36
+ provider: external_exports.literal("github"),
37
+ linkedBy: external_exports.string(),
38
+ installationId: external_exports.number().int(),
39
+ id: external_exports.number().int(),
40
+ name: external_exports.string().min(2),
41
+ branch: external_exports.string().default("main"),
42
+ /** Where the canonical file lives inside the linked repo. */
43
+ path: external_exports.string().default(""),
44
+ webhookId: external_exports.string().default("")
45
+ }),
46
+ external_exports.object({
47
+ provider: external_exports.literal("bitbucket"),
48
+ linkedBy: external_exports.string(),
49
+ workspaceUuid: external_exports.string(),
50
+ workspaceSlug: external_exports.string(),
51
+ repoUuid: external_exports.string(),
52
+ repoSlug: external_exports.string(),
53
+ name: external_exports.string().min(2),
54
+ branch: external_exports.string().default("main"),
55
+ webhookUuid: external_exports.string().default("")
56
+ })
57
+ ]).meta({ id: "registry-git-external" });
58
+ var registryGitBindingSchema = external_exports.object({
59
+ forgejo: external_exports.object({
60
+ owner: external_exports.string(),
61
+ repo: external_exports.string(),
62
+ branch: external_exports.string().default("main")
63
+ }),
64
+ /** Publish when a commit lands on the tracked branch. */
65
+ publishOnPush: external_exports.boolean().default(true),
66
+ /** Publish when a pull request is merged. */
67
+ publishOnMerge: external_exports.boolean().default(false),
68
+ trackedBranch: external_exports.string().default("main"),
69
+ /** Forgejo webhook id, so it can be updated or removed. */
70
+ webhookId: external_exports.number().nullable().default(null),
71
+ external: registryGitExternalSchema.nullable().default(null),
72
+ /** The commit currently served as the published state. */
73
+ currentPublishedSha: external_exports.string().nullable().default(null),
74
+ lastPublishedAt: timestampSchema.nullable().default(null)
75
+ }).meta({ id: "registry-git-binding" });
76
+ var baseRegistrySchema = entitySchema.extend({
77
+ /** Team namespace - not linked by UID */
78
+ namespace: namespaceSchema,
79
+ /** UI label for registry item */
80
+ title: external_exports.string().max(100).default(""),
81
+ /** Unique configuration identifier */
82
+ slug: slugSchema.default(randomManagedDocSlug).meta({ default: "randomManagedDocSlug()" }),
83
+ /** Extended description for registry item */
84
+ description: external_exports.string().default(""),
85
+ /** Public accessibility */
86
+ isPrivate: external_exports.boolean().default(false),
87
+ /** Grouping/identifier tags */
88
+ tags: scalarSet(external_exports.set(external_exports.string()).max(100)).default([]),
89
+ /** Access groups for private access permissions */
90
+ accessGroups: scalarSet(external_exports.set(nanoidSchema).max(50)).default([]),
91
+ /** The uid of the login portal customization object for private documents */
92
+ loginPortalUid: external_exports.string().optional(),
93
+ /** Whether the content has been scanned and confirmed to not to contain malicious content */
94
+ verifiedContent: external_exports.boolean().optional(),
95
+ /** Git backing repository + publish-trigger config. Absent until provisioned. */
96
+ git: registryGitBindingSchema.nullable().optional()
97
+ }).meta({ id: "base-registry" });
98
+
99
+ // ../../packages/entities/dist/registry/migration.js
100
+ var registryGitMigrationResourceSchema = external_exports.object({
101
+ asset: registryAssetSchema,
102
+ namespace: namespaceSchema,
103
+ slug: slugSchema,
104
+ resourceUid: nanoidSchema,
105
+ status: external_exports.enum([
106
+ "migrated",
107
+ "already-migrated",
108
+ "partial",
109
+ "would-migrate",
110
+ "error"
111
+ ]),
112
+ versionsImported: external_exports.number().default(0),
113
+ versionsSkipped: external_exports.number().default(0),
114
+ error: external_exports.string().default("")
115
+ });
116
+ var registryGitMigrationStatusSchema = external_exports.enum([
117
+ "running",
118
+ "complete",
119
+ "partial",
120
+ "failed"
121
+ ]);
122
+ var registryGitMigrationSchema = entitySchema.extend({
123
+ teamUid: brandedUid(),
124
+ dryRun: external_exports.boolean().default(false),
125
+ status: registryGitMigrationStatusSchema,
126
+ /**
127
+ * While `running`, the unix time after which the lease is considered
128
+ * abandoned and another run may take over. Renewed as the run progresses, so
129
+ * it only lapses when the run really stopped (a crash, a killed pod) rather
130
+ * than because the work took a while. Zero once the run has finished.
131
+ */
132
+ lockedUntil: external_exports.number().default(0),
133
+ resources: registryGitMigrationResourceSchema.array().default([])
134
+ }).meta({ id: "registry-git-migration" });
135
+
136
+ // ../../packages/entities/dist/registry/publish.js
137
+ var registryPublishSourceSchema = external_exports.enum(["manual", "git-hook", "external-push", "migration"]).meta({ id: "registry-publish-source" });
138
+ var registryPublishAuthorSchema = external_exports.object({
139
+ name: external_exports.string(),
140
+ email: external_exports.string()
141
+ });
142
+ var registryPublishRecordSchema = entitySchema.extend({
143
+ resourceUid: nanoidSchema,
144
+ asset: registryAssetSchema,
145
+ namespace: namespaceSchema,
146
+ slug: slugSchema,
147
+ /** Null for unversioned resources (rules). */
148
+ version: docVersionSchema.nullable().default(null),
149
+ commitSha: external_exports.string(),
150
+ parentSha: external_exports.string().nullable().default(null),
151
+ source: registryPublishSourceSchema,
152
+ message: external_exports.string().default(""),
153
+ author: registryPublishAuthorSchema.nullable().default(null)
154
+ }).meta({ id: "registry-publish" });
155
+
156
+ export {
157
+ RegistryResourceTypes,
158
+ registryGitBindingSchema,
159
+ baseRegistrySchema,
160
+ registryPublishRecordSchema
161
+ };