@phtngyn/cms 0.1.0-beta.0 → 0.1.0-beta.2
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 +260 -6
- package/package.json +31 -16
- package/src/Authoring.d.ts +13 -1
- package/src/Configuration-Br7tE9Qt.d.ts +68 -0
- package/src/{AuthoringSchema-BQ5kbhVB.js → Configuration-CA_jvQKG.js} +599 -492
- package/src/Configuration-CA_jvQKG.js.map +1 -0
- package/src/Configuration.d.ts +2 -44
- package/src/Configuration.js +0 -1
- package/src/Configuration.js.map +1 -1
- package/src/{DocumentEngine-Da0kWotL.js → DocumentEngine-CgiBQU4g.js} +110 -84
- package/src/DocumentEngine-CgiBQU4g.js.map +1 -0
- package/src/DocumentModel-BB9igGC7.d.ts +34 -0
- package/src/DocumentModel.d.ts +2 -30
- package/src/DocumentModel.js +13 -3
- package/src/DocumentModel.js.map +1 -1
- package/src/Forms-BsJMev5_.d.ts +74 -0
- package/src/Forms-CfcI3tPU.js +79 -0
- package/src/Forms-CfcI3tPU.js.map +1 -0
- package/src/Forms-DxbkU3_5.js +367 -0
- package/src/Forms-DxbkU3_5.js.map +1 -0
- package/src/Forms.d.ts +35 -0
- package/src/Forms.js +13 -0
- package/src/Forms.js.map +1 -0
- package/src/HttpPaths-c9nLZ9H2.js +21 -0
- package/src/HttpPaths-c9nLZ9H2.js.map +1 -0
- package/src/I18n-DZK4CkJF.d.ts +21 -0
- package/src/I18n.d.ts +2 -0
- package/src/I18n.js +1 -0
- package/src/Module.js +78 -81
- package/src/Module.js.map +1 -1
- package/src/S3MediaObjects-JKMAWyVB.js +2664 -0
- package/src/S3MediaObjects-JKMAWyVB.js.map +1 -0
- package/src/Seed.d.ts +6 -0
- package/src/Seed.js +34 -0
- package/src/Seed.js.map +1 -0
- package/src/Seo-402YumpT.d.ts +198 -0
- package/src/{connection-ZGtL54qY.js → connection-B-iz0Y9Y.js} +5 -7
- package/src/connection-B-iz0Y9Y.js.map +1 -0
- package/src/{installation-BNKaVjni.js → installation-DgF2M1gL.js} +1162 -2147
- package/src/installation-DgF2M1gL.js.map +1 -0
- package/src/internal/authoring-catalog.js +153 -0
- package/src/internal/authoring-catalog.js.map +1 -0
- package/src/internal/authoring-compiler.js +2 -2
- package/src/internal/authoring-compiler.js.map +1 -1
- package/src/internal/authoring-metadata.js +68 -49
- package/src/internal/authoring-metadata.js.map +1 -1
- package/src/internal/cms-config.js +0 -1
- package/src/internal/cms-config.js.map +1 -1
- package/src/internal/configuration.js +25 -13
- package/src/internal/configuration.js.map +1 -1
- package/src/internal/document-model.js +66 -20
- package/src/internal/document-model.js.map +1 -1
- package/src/internal/form-capabilities.js +12 -0
- package/src/internal/form-capabilities.js.map +1 -0
- package/src/internal/i18n.js +47 -0
- package/src/internal/i18n.js.map +1 -0
- package/src/internal/studio-app.js +66 -0
- package/src/internal/studio-app.js.map +1 -0
- package/src/location-CFKTeK1K.js +35 -0
- package/src/location-CFKTeK1K.js.map +1 -0
- package/src/{metadata-Czvi3E4K.js → metadata-BEZPWh-3.js} +3 -72
- package/src/metadata-BEZPWh-3.js.map +1 -0
- package/src/{models-DS5ClMsH.js → models-BWm1pTAf.js} +9 -31
- package/src/models-BWm1pTAf.js.map +1 -0
- package/src/models-DwYioyNV.js +726 -0
- package/src/models-DwYioyNV.js.map +1 -0
- package/src/runtime/blocks.js +30 -0
- package/src/runtime/blocks.js.map +1 -0
- package/src/runtime/collaboration.js +9 -4
- package/src/runtime/collaboration.js.map +1 -1
- package/src/runtime/delivery/DocumentRenderer.js +10 -4
- package/src/runtime/delivery/DocumentRenderer.js.map +1 -1
- package/src/runtime/delivery/blocks.js +8 -0
- package/src/runtime/delivery/blocks.js.map +1 -0
- package/src/runtime/delivery/context.js +12 -0
- package/src/runtime/delivery/context.js.map +1 -0
- package/src/runtime/delivery/document-page.js +14 -12
- package/src/runtime/delivery/document-page.js.map +1 -1
- package/src/runtime/delivery/document.js +21 -3
- package/src/runtime/delivery/document.js.map +1 -1
- package/src/runtime/delivery/error.js +11 -0
- package/src/runtime/delivery/error.js.map +1 -0
- package/src/runtime/delivery/plugin.js +41 -0
- package/src/runtime/delivery/plugin.js.map +1 -0
- package/src/runtime/delivery/types.d.ts +5 -0
- package/src/runtime/delivery/useCmsDocumentSeo.d.ts +56 -0
- package/src/runtime/delivery/useCmsDocumentSeo.js +99 -0
- package/src/runtime/delivery/useCmsDocumentSeo.js.map +1 -0
- package/src/runtime/delivery/useDocument.js +5 -2
- package/src/runtime/delivery/useDocument.js.map +1 -1
- package/src/runtime/delivery/useDocumentQuery.js +5 -2
- package/src/runtime/delivery/useDocumentQuery.js.map +1 -1
- package/src/runtime/forms/document.js +38 -0
- package/src/runtime/forms/document.js.map +1 -0
- package/src/runtime/forms/useCmsForm.js +149 -0
- package/src/runtime/forms/useCmsForm.js.map +1 -0
- package/src/runtime/i18n/translator.js +22 -0
- package/src/runtime/i18n/translator.js.map +1 -0
- package/src/runtime/i18n/useCmsI18n.d.ts +9 -0
- package/src/runtime/i18n/useCmsI18n.js +29 -0
- package/src/runtime/i18n/useCmsI18n.js.map +1 -0
- package/src/runtime/installation.js +1 -1
- package/src/runtime/plugin.js +3 -3
- package/src/runtime/plugin.js.map +1 -1
- package/src/runtime/preview/comark-document.js +0 -1
- package/src/runtime/preview/comark-document.js.map +1 -1
- package/src/runtime/preview/connection.js +1 -1
- package/src/runtime/preview/controller.js +37 -11
- package/src/runtime/preview/controller.js.map +1 -1
- package/src/runtime/preview/overlay.js +65 -0
- package/src/runtime/preview/overlay.js.map +1 -0
- package/src/runtime/preview/plugin.client.js +59 -61
- package/src/runtime/preview/plugin.client.js.map +1 -1
- package/src/runtime/preview/preview.css +72 -4
- package/src/runtime/preview/protocol.js.map +1 -1
- package/src/runtime/preview/store.js +1 -1
- package/src/runtime/preview/targets.js +0 -1
- package/src/runtime/preview/targets.js.map +1 -1
- package/src/runtime/sitemap-entries.js +17 -0
- package/src/runtime/sitemap-entries.js.map +1 -0
- package/src/runtime/sitemap.js +24 -0
- package/src/runtime/sitemap.js.map +1 -0
- package/src/runtime/studio-app.js +5 -1
- package/src/runtime/studio-app.js.map +1 -1
- package/src/runtime/studio-entry.js +36 -0
- package/src/runtime/studio-entry.js.map +1 -0
- package/src/runtime/studio-navigation.js +11 -0
- package/src/runtime/studio-navigation.js.map +1 -0
- package/src/scalars-B2lgGUnj.js +26 -0
- package/src/scalars-B2lgGUnj.js.map +1 -0
- package/src/{store-Nl4uxEXx.js → store-DjJs3I7k.js} +12 -7
- package/src/store-DjJs3I7k.js.map +1 -0
- package/studio/CreateDocumentDialog-CTeIFlPb.js +256 -0
- package/studio/collaboration-DcK2F6v9.js +4566 -0
- package/studio/documentPlanning-Bfv-d7OU.js +29820 -0
- package/studio/dom-to-image-more.min-D6jGGdrW.js +877 -0
- package/studio/editor-Bzlh3zXt.js +30827 -0
- package/studio/host.css +3 -0
- package/studio/host.js +46614 -0
- package/studio/rolldown-runtime-B0aSnxlc.js +20 -0
- package/dist/studio/assets/ActivityEntryRow-D--fRvWI.js +0 -1
- package/dist/studio/assets/ActivityView-D-XBBUHb.js +0 -1
- package/dist/studio/assets/CreateDocumentDialog-CH8UH1QM.js +0 -1
- package/dist/studio/assets/DocumentsView-CxRpmAxt.js +0 -34
- package/dist/studio/assets/DropdownMenu-BSb1l7fr.js +0 -1
- package/dist/studio/assets/Input-DVao38h7.js +0 -3
- package/dist/studio/assets/MediaView-BHrPIjxB.js +0 -1
- package/dist/studio/assets/Modal-VNrXGa5C.js +0 -1
- package/dist/studio/assets/OverviewView-DfP6-mLZ.js +0 -1
- package/dist/studio/assets/Select-BJZIs9sY.js +0 -1
- package/dist/studio/assets/SettingsView-CerHe-ua.js +0 -1
- package/dist/studio/assets/Skeleton-CWJNi3nS.js +0 -1
- package/dist/studio/assets/StudioPageHeader-DP9HDAF2.js +0 -1
- package/dist/studio/assets/UsersView-cP3REkH2.js +0 -1
- package/dist/studio/assets/collaboration-BLnCzfvV.js +0 -4
- package/dist/studio/assets/context-dY4fNbn3.js +0 -1
- package/dist/studio/assets/editor-CE07wW83.js +0 -137
- package/dist/studio/assets/gateway-BAyQgCse.js +0 -10
- package/dist/studio/assets/index-CjoaPLhZ.js +0 -28
- package/dist/studio/assets/index-s2rPqCmP.css +0 -2
- package/dist/studio/assets/render-BkxbK2St.js +0 -83
- package/dist/studio/assets/rolldown-runtime-DK3Fl9T5.js +0 -1
- package/dist/studio/assets/useMediaLibrary-D7qR7aBf.js +0 -1
- package/dist/studio/index.html +0 -76
- package/src/AuthoringSchema-BQ5kbhVB.js.map +0 -1
- package/src/Configuration-BGYFD2N1.js +0 -150
- package/src/Configuration-BGYFD2N1.js.map +0 -1
- package/src/DocumentEngine-Da0kWotL.js.map +0 -1
- package/src/HttpPaths-86qLGB90.js +0 -15
- package/src/HttpPaths-86qLGB90.js.map +0 -1
- package/src/StudioHttp-BTLLooh0.js +0 -916
- package/src/StudioHttp-BTLLooh0.js.map +0 -1
- package/src/connection-ZGtL54qY.js.map +0 -1
- package/src/installation-BNKaVjni.js.map +0 -1
- package/src/internal/component-metadata.js +0 -37
- package/src/internal/component-metadata.js.map +0 -1
- package/src/metadata-Czvi3E4K.js.map +0 -1
- package/src/models-Citx8jBi.js +0 -306
- package/src/models-Citx8jBi.js.map +0 -1
- package/src/models-DS5ClMsH.js.map +0 -1
- package/src/store-Nl4uxEXx.js.map +0 -1
|
@@ -1,916 +0,0 @@
|
|
|
1
|
-
import { o as STUDIO_API_PATH } from "./HttpPaths-86qLGB90.js";
|
|
2
|
-
import { A as RestoreDocumentInput, B as DocumentVersion, C as MoveDocumentInput, D as PublishedDocumentQuery, E as PublishedDocumentPage, F as Locale, G as SourcePath, H as PublicPath, K as nonNegativeInt, M as UpdateDocumentInput, O as PublishedDocumentSurroundQuery, P as CollectionName, R as DocumentHistoryCursor, T as PublishedDocumentLookup, U as RevisionId, _ as DocumentSource, b as DocumentSurround, d as DocumentIssue, f as DocumentMutationResult, g as DocumentRevisionAction, i as CreateDocumentInput, j as UndeleteDocumentInput, k as RemoveDocumentInput, m as DocumentNavigationQuery, n as CmsMarkdownDocument, o as DeletedDocument, p as DocumentNavigationItem, r as CompiledDocument, s as DocumentBrowseQuery, w as PublishDocumentInput, x as DocumentValidationResult, y as DocumentSummary, z as DocumentId } from "./models-Citx8jBi.js";
|
|
3
|
-
import { c as PreviewSession, d as PreviewSessionInvalid, f as PreviewSessionRequest, i as PreviewDraftRequest, l as PreviewSessionAccess, m as RequestId, o as PreviewInvalidation, r as PreviewDraftNotFound } from "./models-DS5ClMsH.js";
|
|
4
|
-
import { n as DocumentConfiguration, r as MediaConfiguration, t as ComponentDefinition } from "./Configuration-BGYFD2N1.js";
|
|
5
|
-
import { Context, Schema } from "effect";
|
|
6
|
-
import { Multipart } from "effect/unstable/http";
|
|
7
|
-
import { HttpApi, HttpApiEndpoint, HttpApiGroup, HttpApiMiddleware, HttpApiSchema } from "effect/unstable/httpapi";
|
|
8
|
-
|
|
9
|
-
//#region ../protocol/src/Media.ts
|
|
10
|
-
/**
|
|
11
|
-
* Media wire models. Search pages are newest-first with opaque continuation cursors; only ready
|
|
12
|
-
* assets are public results, and names, folders, and object keys are validated path-safe values.
|
|
13
|
-
*/
|
|
14
|
-
const hasUnsafeMediaCharacter = (value) => {
|
|
15
|
-
for (const character of value) {
|
|
16
|
-
const codePoint = character.codePointAt(0);
|
|
17
|
-
if (character === "\\" || codePoint !== void 0 && (codePoint <= 31 || codePoint === 127)) return true;
|
|
18
|
-
}
|
|
19
|
-
return false;
|
|
20
|
-
};
|
|
21
|
-
const isSafeMediaPath = (value, allowEmpty) => {
|
|
22
|
-
if (value.length === 0) return allowEmpty;
|
|
23
|
-
if (value !== value.trim() || value.startsWith("/") || value.endsWith("/") || hasUnsafeMediaCharacter(value)) return false;
|
|
24
|
-
return value.split("/").every((segment) => segment.length > 0 && segment !== "." && segment !== "..");
|
|
25
|
-
};
|
|
26
|
-
const safeMediaFolder = Schema.makeFilter((value) => isSafeMediaPath(value, true), { expected: "a provider-relative media folder without traversal segments" });
|
|
27
|
-
const safeMediaObjectKey = Schema.makeFilter((value) => isSafeMediaPath(value, false), { expected: "a non-empty provider-relative media object key without traversal segments" });
|
|
28
|
-
const safeMediaName = Schema.makeFilter((value) => value.length > 0 && value.length <= 255 && value === value.trim() && value !== "." && value !== ".." && !value.includes("/") && !hasUnsafeMediaCharacter(value), { expected: "a safe media file name of at most 255 characters" });
|
|
29
|
-
const MediaId = Schema.String.check(Schema.isUUID()).pipe(Schema.brand("MediaId"));
|
|
30
|
-
const MediaFolder = Schema.String.check(Schema.isMaxLength(512), safeMediaFolder).pipe(Schema.brand("MediaFolder"));
|
|
31
|
-
const MediaObjectKey = Schema.String.check(Schema.isMaxLength(1024), safeMediaObjectKey).pipe(Schema.brand("MediaObjectKey"));
|
|
32
|
-
const MediaName = Schema.String.check(safeMediaName).pipe(Schema.brand("MediaName"));
|
|
33
|
-
const MediaCursor = Schema.NonEmptyString.pipe(Schema.brand("MediaCursor"));
|
|
34
|
-
const ImageMimeType = Schema.Literals([
|
|
35
|
-
"image/avif",
|
|
36
|
-
"image/gif",
|
|
37
|
-
"image/jpeg",
|
|
38
|
-
"image/png",
|
|
39
|
-
"image/webp"
|
|
40
|
-
]);
|
|
41
|
-
const MediaStatus = Schema.Literals([
|
|
42
|
-
"uploading",
|
|
43
|
-
"ready",
|
|
44
|
-
"deleting"
|
|
45
|
-
]);
|
|
46
|
-
const MediaByteSize = Schema.Int.check(Schema.isGreaterThan(0));
|
|
47
|
-
const MediaAsset = Schema.Struct({
|
|
48
|
-
kind: Schema.tag("image"),
|
|
49
|
-
id: MediaId,
|
|
50
|
-
objectKey: MediaObjectKey,
|
|
51
|
-
url: Schema.NonEmptyString,
|
|
52
|
-
name: MediaName,
|
|
53
|
-
folder: MediaFolder,
|
|
54
|
-
mimeType: ImageMimeType,
|
|
55
|
-
byteSize: MediaByteSize,
|
|
56
|
-
createdAt: Schema.DateTimeUtcFromString,
|
|
57
|
-
updatedAt: Schema.DateTimeUtcFromString,
|
|
58
|
-
status: MediaStatus
|
|
59
|
-
}).annotate({ identifier: "MediaAsset" });
|
|
60
|
-
const MediaUpload = Schema.Struct({
|
|
61
|
-
name: MediaName,
|
|
62
|
-
folder: Schema.optionalKey(MediaFolder),
|
|
63
|
-
declaredMimeType: Schema.optionalKey(Schema.NonEmptyString),
|
|
64
|
-
declaredByteSize: MediaByteSize
|
|
65
|
-
}).annotate({ identifier: "MediaUpload" });
|
|
66
|
-
const MediaQuery = Schema.Struct({
|
|
67
|
-
cursor: Schema.optionalKey(MediaCursor),
|
|
68
|
-
folder: Schema.optionalKey(MediaFolder),
|
|
69
|
-
search: Schema.optionalKey(Schema.NonEmptyString.check(Schema.isMaxLength(200))),
|
|
70
|
-
limit: Schema.optionalKey(Schema.Int.check(Schema.isBetween({
|
|
71
|
-
minimum: 1,
|
|
72
|
-
maximum: 100
|
|
73
|
-
})))
|
|
74
|
-
}).annotate({ identifier: "MediaQuery" });
|
|
75
|
-
const ReadyMediaAssets = Schema.Array(MediaAsset).check(Schema.makeFilter((assets) => assets.every((asset) => asset.status === "ready"), { expected: "media assets whose lifecycle status is ready" }));
|
|
76
|
-
const MediaPage = Schema.Struct({
|
|
77
|
-
assets: ReadyMediaAssets,
|
|
78
|
-
folders: Schema.Array(MediaFolder),
|
|
79
|
-
nextCursor: Schema.optionalKey(MediaCursor),
|
|
80
|
-
total: nonNegativeInt
|
|
81
|
-
}).annotate({ identifier: "MediaPage" });
|
|
82
|
-
const MediaReference = Schema.Struct({
|
|
83
|
-
documentId: DocumentId,
|
|
84
|
-
path: PublicPath,
|
|
85
|
-
sourcePath: SourcePath,
|
|
86
|
-
objectKey: MediaObjectKey,
|
|
87
|
-
nodePath: Schema.Array(nonNegativeInt)
|
|
88
|
-
}).annotate({ identifier: "MediaReference" });
|
|
89
|
-
const MediaObjectMismatch = Schema.Struct({
|
|
90
|
-
asset: MediaAsset,
|
|
91
|
-
storedByteSize: MediaByteSize,
|
|
92
|
-
storedMimeType: Schema.optionalKey(ImageMimeType)
|
|
93
|
-
}).annotate({ identifier: "MediaObjectMismatch" });
|
|
94
|
-
const MediaIntegrityReport = Schema.Struct({
|
|
95
|
-
missingAssets: Schema.Array(MediaReference),
|
|
96
|
-
missingObjects: Schema.Array(MediaAsset),
|
|
97
|
-
mismatchedObjects: Schema.Array(MediaObjectMismatch),
|
|
98
|
-
orphanedObjectKeys: Schema.Array(MediaObjectKey),
|
|
99
|
-
unusedAssets: Schema.Array(MediaAsset)
|
|
100
|
-
}).annotate({ identifier: "MediaIntegrityReport" });
|
|
101
|
-
const MediaCleanupReport = Schema.Struct({ removedObjectKeys: Schema.Array(MediaObjectKey) }).annotate({ identifier: "MediaCleanupReport" });
|
|
102
|
-
var MediaNotFound = class extends Schema.TaggedError()("Media.NotFound", { mediaId: MediaId }) {};
|
|
103
|
-
var MediaReferenced = class extends Schema.TaggedError()("Media.Referenced", {
|
|
104
|
-
mediaId: MediaId,
|
|
105
|
-
references: Schema.Array(MediaReference)
|
|
106
|
-
}) {};
|
|
107
|
-
var MediaConflict = class extends Schema.TaggedError()("Media.Conflict", { mediaId: MediaId }) {};
|
|
108
|
-
var MediaInvalid = class extends Schema.TaggedError()("Media.Invalid", { message: Schema.NonEmptyString }) {};
|
|
109
|
-
var MediaTooLarge = class extends Schema.TaggedError()("Media.TooLarge", {
|
|
110
|
-
declaredByteSize: MediaByteSize,
|
|
111
|
-
maxUploadBytes: MediaByteSize
|
|
112
|
-
}) {};
|
|
113
|
-
|
|
114
|
-
//#endregion
|
|
115
|
-
//#region ../protocol/src/internal/documents/errors.ts
|
|
116
|
-
var DocumentNotFound = class extends Schema.TaggedError()("Document.NotFound", {
|
|
117
|
-
documentId: DocumentId,
|
|
118
|
-
revisionId: Schema.optionalKey(RevisionId)
|
|
119
|
-
}) {};
|
|
120
|
-
var DocumentPathConflict = class extends Schema.TaggedError()("Document.PathConflict", { sourcePath: SourcePath }) {};
|
|
121
|
-
var DocumentVersionConflict = class extends Schema.TaggedError()("Document.VersionConflict", {
|
|
122
|
-
documentId: DocumentId,
|
|
123
|
-
expectedVersion: DocumentVersion,
|
|
124
|
-
actualVersion: DocumentVersion
|
|
125
|
-
}) {};
|
|
126
|
-
var DocumentMediaUnavailable = class extends Schema.TaggedError()("Document.MediaUnavailable", {
|
|
127
|
-
documentId: DocumentId,
|
|
128
|
-
mediaKeys: Schema.Array(MediaObjectKey).check(Schema.isMinLength(1))
|
|
129
|
-
}) {};
|
|
130
|
-
var DocumentValidationFailed = class extends Schema.TaggedError()("Document.ValidationFailed", { issues: Schema.Array(DocumentIssue) }) {};
|
|
131
|
-
var PublishedDocumentNotFound = class extends Schema.TaggedError()("PublishedDocument.NotFound", { lookup: PublishedDocumentLookup }) {};
|
|
132
|
-
|
|
133
|
-
//#endregion
|
|
134
|
-
//#region ../protocol/src/AccessControl.ts
|
|
135
|
-
/** Wire-visible Studio actors, request identity, roles, access decisions, and denials. */
|
|
136
|
-
const ROLES = [
|
|
137
|
-
"administrator",
|
|
138
|
-
"editor",
|
|
139
|
-
"viewer"
|
|
140
|
-
];
|
|
141
|
-
const Role = Schema.Literals(ROLES);
|
|
142
|
-
const StudioActor = Schema.Struct({
|
|
143
|
-
id: Schema.NonEmptyString,
|
|
144
|
-
email: Schema.NonEmptyString,
|
|
145
|
-
name: Schema.NonEmptyString,
|
|
146
|
-
roles: Schema.Array(Schema.NonEmptyString)
|
|
147
|
-
}).annotate({ identifier: "StudioActor" });
|
|
148
|
-
const StudioRequestContext = Schema.Struct({
|
|
149
|
-
actor: StudioActor,
|
|
150
|
-
requestId: RequestId
|
|
151
|
-
}).annotate({ identifier: "StudioRequestContext" });
|
|
152
|
-
const DOCUMENT_ACTIONS = [
|
|
153
|
-
"document.browse",
|
|
154
|
-
"document.read",
|
|
155
|
-
"document.trash",
|
|
156
|
-
"document.validate",
|
|
157
|
-
"document.create",
|
|
158
|
-
"document.update",
|
|
159
|
-
"document.move",
|
|
160
|
-
"document.remove",
|
|
161
|
-
"document.restore",
|
|
162
|
-
"document.undelete",
|
|
163
|
-
"document.publish",
|
|
164
|
-
"document.history"
|
|
165
|
-
];
|
|
166
|
-
const DocumentAction = Schema.Literals(DOCUMENT_ACTIONS);
|
|
167
|
-
const DocumentCatalogResource = Schema.Struct({ kind: Schema.tag("catalog") });
|
|
168
|
-
const CollectionResource = Schema.Struct({
|
|
169
|
-
kind: Schema.tag("collection"),
|
|
170
|
-
collection: CollectionName,
|
|
171
|
-
locale: Schema.optionalKey(Locale)
|
|
172
|
-
});
|
|
173
|
-
const DocumentResource = Schema.Struct({
|
|
174
|
-
kind: Schema.tag("document"),
|
|
175
|
-
documentId: DocumentId
|
|
176
|
-
});
|
|
177
|
-
const DocumentAccessResource = Schema.Union([
|
|
178
|
-
DocumentCatalogResource,
|
|
179
|
-
CollectionResource,
|
|
180
|
-
DocumentResource
|
|
181
|
-
]).pipe(Schema.toTaggedUnion("kind"));
|
|
182
|
-
const DocumentAccessDecision = Schema.Struct({
|
|
183
|
-
action: DocumentAction,
|
|
184
|
-
resource: DocumentAccessResource
|
|
185
|
-
}).annotate({ identifier: "DocumentAccessDecision" });
|
|
186
|
-
const MEDIA_ACTIONS = [
|
|
187
|
-
"media.read",
|
|
188
|
-
"media.search",
|
|
189
|
-
"media.integrity",
|
|
190
|
-
"media.upload",
|
|
191
|
-
"media.replace",
|
|
192
|
-
"media.remove",
|
|
193
|
-
"media.cleanup"
|
|
194
|
-
];
|
|
195
|
-
const MediaAction = Schema.Literals(MEDIA_ACTIONS);
|
|
196
|
-
const MediaCatalogResource = Schema.Struct({ kind: Schema.tag("media-catalog") });
|
|
197
|
-
const MediaAssetResource = Schema.Struct({
|
|
198
|
-
kind: Schema.tag("media-asset"),
|
|
199
|
-
mediaId: MediaId
|
|
200
|
-
});
|
|
201
|
-
const MediaFolderResource = Schema.Struct({
|
|
202
|
-
kind: Schema.tag("media-folder"),
|
|
203
|
-
folder: MediaFolder
|
|
204
|
-
});
|
|
205
|
-
const MediaResource = Schema.Union([
|
|
206
|
-
MediaCatalogResource,
|
|
207
|
-
MediaAssetResource,
|
|
208
|
-
MediaFolderResource
|
|
209
|
-
]).pipe(Schema.toTaggedUnion("kind"));
|
|
210
|
-
const MediaAccessDecision = Schema.Struct({
|
|
211
|
-
action: MediaAction,
|
|
212
|
-
resource: MediaResource
|
|
213
|
-
}).annotate({ identifier: "MediaAccessDecision" });
|
|
214
|
-
const ActivityResource = Schema.Struct({ kind: Schema.tag("activity") });
|
|
215
|
-
const ActivityAccessDecision = Schema.Struct({
|
|
216
|
-
action: Schema.Literal("activity.read"),
|
|
217
|
-
resource: ActivityResource
|
|
218
|
-
}).annotate({ identifier: "ActivityAccessDecision" });
|
|
219
|
-
const STUDIO_ACTIONS = [
|
|
220
|
-
...DOCUMENT_ACTIONS,
|
|
221
|
-
...MEDIA_ACTIONS,
|
|
222
|
-
"activity.read"
|
|
223
|
-
];
|
|
224
|
-
const StudioAction = Schema.Literals(STUDIO_ACTIONS);
|
|
225
|
-
const StudioResource = Schema.Union([
|
|
226
|
-
DocumentAccessResource,
|
|
227
|
-
MediaResource,
|
|
228
|
-
ActivityResource
|
|
229
|
-
]);
|
|
230
|
-
const StudioAccessDecision = Schema.Union([
|
|
231
|
-
DocumentAccessDecision,
|
|
232
|
-
MediaAccessDecision,
|
|
233
|
-
ActivityAccessDecision
|
|
234
|
-
]);
|
|
235
|
-
var AuthenticationRequired = class extends Schema.TaggedError()("Studio.AuthenticationRequired", {}) {};
|
|
236
|
-
var StudioEntryDenied = class extends Schema.TaggedError()("Studio.EntryDenied", {}) {};
|
|
237
|
-
var AccessDenied = class extends Schema.TaggedError()("Studio.AccessDenied", {
|
|
238
|
-
action: StudioAction,
|
|
239
|
-
actorId: StudioActor.fields.id,
|
|
240
|
-
resource: StudioResource
|
|
241
|
-
}) {};
|
|
242
|
-
|
|
243
|
-
//#endregion
|
|
244
|
-
//#region ../protocol/src/Activity.ts
|
|
245
|
-
/**
|
|
246
|
-
* Immutable completed Activity facts. Pages are ordered newest-first; cursors are opaque,
|
|
247
|
-
* stable continuation tokens and an invalid cursor is a caller-visible failure.
|
|
248
|
-
*/
|
|
249
|
-
const ActivityId = Schema.String.check(Schema.isUUID()).pipe(Schema.brand("ActivityId"));
|
|
250
|
-
const ActivityCursor = Schema.NonEmptyString.pipe(Schema.brand("ActivityCursor"));
|
|
251
|
-
const ACTIVITY_ACTIONS = [
|
|
252
|
-
"document.created",
|
|
253
|
-
"document.updated",
|
|
254
|
-
"document.moved",
|
|
255
|
-
"document.trashed",
|
|
256
|
-
"document.revision.restored",
|
|
257
|
-
"document.untrashed",
|
|
258
|
-
"document.published",
|
|
259
|
-
"media.uploaded",
|
|
260
|
-
"media.replaced",
|
|
261
|
-
"media.removed",
|
|
262
|
-
"media.cleaned",
|
|
263
|
-
"user.created",
|
|
264
|
-
"user.removed",
|
|
265
|
-
"user.role.changed",
|
|
266
|
-
"user.sessions.revoked",
|
|
267
|
-
"authentication.signed-in",
|
|
268
|
-
"authentication.signed-out",
|
|
269
|
-
"authentication.password.changed",
|
|
270
|
-
"authentication.password.reset"
|
|
271
|
-
];
|
|
272
|
-
const ActivityAction = Schema.Literals(ACTIVITY_ACTIONS);
|
|
273
|
-
const DocumentActivityTarget = Schema.Struct({
|
|
274
|
-
kind: Schema.tag("document"),
|
|
275
|
-
documentId: DocumentId
|
|
276
|
-
});
|
|
277
|
-
const MediaActivityTarget = Schema.Struct({
|
|
278
|
-
kind: Schema.tag("media"),
|
|
279
|
-
mediaId: MediaId
|
|
280
|
-
});
|
|
281
|
-
const MediaLibraryActivityTarget = Schema.Struct({ kind: Schema.tag("media-library") });
|
|
282
|
-
const ActivityTarget = Schema.Union([
|
|
283
|
-
DocumentActivityTarget,
|
|
284
|
-
MediaActivityTarget,
|
|
285
|
-
MediaLibraryActivityTarget,
|
|
286
|
-
Schema.Struct({
|
|
287
|
-
kind: Schema.tag("user"),
|
|
288
|
-
userId: Schema.NonEmptyString
|
|
289
|
-
})
|
|
290
|
-
]).pipe(Schema.toTaggedUnion("kind"));
|
|
291
|
-
const ActivityTargetKind = Schema.Literals([
|
|
292
|
-
"document",
|
|
293
|
-
"media",
|
|
294
|
-
"media-library",
|
|
295
|
-
"user"
|
|
296
|
-
]);
|
|
297
|
-
const ActivityContext = Schema.Struct({
|
|
298
|
-
actor: StudioActor,
|
|
299
|
-
requestId: RequestId,
|
|
300
|
-
reason: Schema.optionalKey(Schema.NonEmptyString.check(Schema.isMaxLength(1e3)))
|
|
301
|
-
}).annotate({ identifier: "ActivityContext" });
|
|
302
|
-
const ActivityEntry = Schema.Struct({
|
|
303
|
-
id: ActivityId,
|
|
304
|
-
action: ActivityAction,
|
|
305
|
-
actor: StudioActor,
|
|
306
|
-
requestId: RequestId,
|
|
307
|
-
reason: ActivityContext.fields.reason,
|
|
308
|
-
target: ActivityTarget,
|
|
309
|
-
details: Schema.JsonObject,
|
|
310
|
-
occurredAt: Schema.DateTimeUtcFromString
|
|
311
|
-
}).annotate({ identifier: "ActivityEntry" });
|
|
312
|
-
const ActivityEntryDraft = Schema.Struct({
|
|
313
|
-
action: ActivityAction,
|
|
314
|
-
context: ActivityContext,
|
|
315
|
-
target: ActivityTarget,
|
|
316
|
-
details: Schema.JsonObject
|
|
317
|
-
}).annotate({ identifier: "ActivityEntryDraft" });
|
|
318
|
-
const ActivityQuery = Schema.Struct({
|
|
319
|
-
action: Schema.optionalKey(ActivityAction),
|
|
320
|
-
actorId: Schema.optionalKey(StudioActor.fields.id),
|
|
321
|
-
cursor: Schema.optionalKey(ActivityCursor),
|
|
322
|
-
limit: Schema.optionalKey(Schema.Int.check(Schema.isBetween({
|
|
323
|
-
minimum: 1,
|
|
324
|
-
maximum: 100
|
|
325
|
-
}))),
|
|
326
|
-
requestId: Schema.optionalKey(RequestId),
|
|
327
|
-
targetId: Schema.optionalKey(Schema.NonEmptyString),
|
|
328
|
-
targetKind: Schema.optionalKey(ActivityTargetKind)
|
|
329
|
-
}).annotate({ identifier: "ActivityQuery" });
|
|
330
|
-
const ActivityPage = Schema.Struct({
|
|
331
|
-
entries: Schema.Array(ActivityEntry),
|
|
332
|
-
nextCursor: Schema.optionalKey(ActivityCursor),
|
|
333
|
-
total: nonNegativeInt
|
|
334
|
-
}).annotate({ identifier: "ActivityPage" });
|
|
335
|
-
var ActivityCursorInvalid = class extends Schema.TaggedError()("Activity.CursorInvalid", {}) {};
|
|
336
|
-
|
|
337
|
-
//#endregion
|
|
338
|
-
//#region ../protocol/src/internal/documents/history.ts
|
|
339
|
-
const DocumentRevisionSummary = Schema.Struct({
|
|
340
|
-
action: DocumentRevisionAction,
|
|
341
|
-
activity: ActivityEntry,
|
|
342
|
-
createdAt: Schema.DateTimeUtcFromString,
|
|
343
|
-
documentId: DocumentId,
|
|
344
|
-
revisionId: RevisionId,
|
|
345
|
-
sourcePath: SourcePath,
|
|
346
|
-
version: DocumentVersion
|
|
347
|
-
}).annotate({ identifier: "DocumentRevisionSummary" });
|
|
348
|
-
const DocumentRevision = Schema.Struct({
|
|
349
|
-
...DocumentRevisionSummary.fields,
|
|
350
|
-
markdown: Schema.String
|
|
351
|
-
}).annotate({ identifier: "DocumentRevision" });
|
|
352
|
-
const DocumentHistoryQuery = Schema.Struct({
|
|
353
|
-
documentId: DocumentId,
|
|
354
|
-
cursor: Schema.optionalKey(DocumentHistoryCursor),
|
|
355
|
-
limit: Schema.optionalKey(Schema.Int.check(Schema.isBetween({
|
|
356
|
-
minimum: 1,
|
|
357
|
-
maximum: 100
|
|
358
|
-
})))
|
|
359
|
-
}).annotate({ identifier: "DocumentHistoryQuery" });
|
|
360
|
-
const DocumentRevisionPage = Schema.Struct({
|
|
361
|
-
revisions: Schema.Array(DocumentRevisionSummary),
|
|
362
|
-
nextCursor: Schema.optionalKey(DocumentHistoryCursor),
|
|
363
|
-
total: nonNegativeInt
|
|
364
|
-
}).annotate({ identifier: "DocumentRevisionPage" });
|
|
365
|
-
const LineNumber = Schema.Int.check(Schema.isGreaterThan(0));
|
|
366
|
-
const DocumentRevisionChange = Schema.Union([
|
|
367
|
-
Schema.Struct({
|
|
368
|
-
kind: Schema.tag("equal"),
|
|
369
|
-
beforeLine: LineNumber,
|
|
370
|
-
afterLine: LineNumber,
|
|
371
|
-
line: Schema.String
|
|
372
|
-
}),
|
|
373
|
-
Schema.Struct({
|
|
374
|
-
kind: Schema.tag("added"),
|
|
375
|
-
afterLine: LineNumber,
|
|
376
|
-
line: Schema.String
|
|
377
|
-
}),
|
|
378
|
-
Schema.Struct({
|
|
379
|
-
kind: Schema.tag("removed"),
|
|
380
|
-
beforeLine: LineNumber,
|
|
381
|
-
line: Schema.String
|
|
382
|
-
})
|
|
383
|
-
]).pipe(Schema.toTaggedUnion("kind"));
|
|
384
|
-
const CompareDocumentRevisionsInput = Schema.Struct({
|
|
385
|
-
documentId: DocumentId,
|
|
386
|
-
fromRevisionId: RevisionId,
|
|
387
|
-
toRevisionId: RevisionId
|
|
388
|
-
}).annotate({ identifier: "CompareDocumentRevisionsInput" });
|
|
389
|
-
const DocumentRevisionComparison = Schema.Struct({
|
|
390
|
-
from: DocumentRevision,
|
|
391
|
-
to: DocumentRevision,
|
|
392
|
-
changes: Schema.Array(DocumentRevisionChange)
|
|
393
|
-
}).annotate({ identifier: "DocumentRevisionComparison" });
|
|
394
|
-
var DocumentHistoryInvalidCursor = class extends Schema.TaggedError()("DocumentHistory.InvalidCursor", {}) {};
|
|
395
|
-
var DocumentHistoryComparisonTooLarge = class extends Schema.TaggedError()("DocumentHistory.ComparisonTooLarge", {
|
|
396
|
-
maximumEditLength: Schema.Int.check(Schema.isGreaterThan(0)),
|
|
397
|
-
maximumLines: Schema.Int.check(Schema.isGreaterThan(0))
|
|
398
|
-
}) {};
|
|
399
|
-
|
|
400
|
-
//#endregion
|
|
401
|
-
//#region ../protocol/src/Collaboration.ts
|
|
402
|
-
/**
|
|
403
|
-
* Collaboration handshake and WebSocket envelopes. Command results correlate by RequestId;
|
|
404
|
-
* checkpoints carry the durable state vector needed for retry and recovery.
|
|
405
|
-
*/
|
|
406
|
-
const StateVector = Schema.String.check(Schema.isBase64()).pipe(Schema.brand("StateVector"));
|
|
407
|
-
const HttpErrorStatus = Schema.Int.check(Schema.isBetween({
|
|
408
|
-
minimum: 400,
|
|
409
|
-
maximum: 599
|
|
410
|
-
}));
|
|
411
|
-
const CollaborationUser = Schema.Struct({
|
|
412
|
-
color: Schema.NonEmptyString,
|
|
413
|
-
id: Schema.NonEmptyString,
|
|
414
|
-
name: Schema.NonEmptyString
|
|
415
|
-
});
|
|
416
|
-
const CollaborationTicket = Schema.Struct({
|
|
417
|
-
authoredStateVector: StateVector,
|
|
418
|
-
documentName: Schema.NonEmptyString,
|
|
419
|
-
source: DocumentSource,
|
|
420
|
-
token: Schema.NonEmptyString,
|
|
421
|
-
url: Schema.NonEmptyString,
|
|
422
|
-
user: CollaborationUser,
|
|
423
|
-
workingStateVector: StateVector
|
|
424
|
-
}).annotate({ identifier: "CollaborationTicket" });
|
|
425
|
-
const CollaborationPreview = DocumentValidationResult.pipe(Schema.fieldsAssign({
|
|
426
|
-
markdown: Schema.String,
|
|
427
|
-
preview: Schema.Struct({
|
|
428
|
-
body: CmsMarkdownDocument,
|
|
429
|
-
fallbacks: Schema.Record(Schema.String, Schema.String)
|
|
430
|
-
})
|
|
431
|
-
})).annotate({ identifier: "CollaborationPreview" });
|
|
432
|
-
const CheckpointMessage = Schema.Struct({ type: Schema.tag("checkpoint") });
|
|
433
|
-
const PreviewMessage = Schema.Struct({
|
|
434
|
-
type: Schema.tag("preview"),
|
|
435
|
-
requestId: RequestId
|
|
436
|
-
});
|
|
437
|
-
const PublishMessage = Schema.Struct({
|
|
438
|
-
type: Schema.tag("publish"),
|
|
439
|
-
requestId: RequestId
|
|
440
|
-
});
|
|
441
|
-
const CollaborationClientMessage = Schema.Union([
|
|
442
|
-
CheckpointMessage,
|
|
443
|
-
PreviewMessage,
|
|
444
|
-
PublishMessage
|
|
445
|
-
]).pipe(Schema.toTaggedUnion("type"));
|
|
446
|
-
const requestFailure = {
|
|
447
|
-
error: Schema.NonEmptyString,
|
|
448
|
-
statusCode: HttpErrorStatus
|
|
449
|
-
};
|
|
450
|
-
const RequestFailure = Schema.Struct({
|
|
451
|
-
status: Schema.tag("failure"),
|
|
452
|
-
...requestFailure
|
|
453
|
-
});
|
|
454
|
-
const PreviewOutcome = Schema.Union([Schema.Struct({
|
|
455
|
-
status: Schema.tag("success"),
|
|
456
|
-
result: CollaborationPreview
|
|
457
|
-
}), RequestFailure]).pipe(Schema.toTaggedUnion("status"));
|
|
458
|
-
const PublishCheckpoint = Schema.Struct({
|
|
459
|
-
authoredStateVector: StateVector,
|
|
460
|
-
result: Schema.optionalKey(DocumentMutationResult)
|
|
461
|
-
});
|
|
462
|
-
const PublishOutcome = Schema.Union([Schema.Struct({
|
|
463
|
-
status: Schema.tag("success"),
|
|
464
|
-
authoredStateVector: StateVector,
|
|
465
|
-
result: DocumentMutationResult
|
|
466
|
-
}), Schema.Struct({
|
|
467
|
-
status: Schema.tag("failure"),
|
|
468
|
-
...requestFailure,
|
|
469
|
-
checkpoint: Schema.optionalKey(PublishCheckpoint)
|
|
470
|
-
})]).pipe(Schema.toTaggedUnion("status"));
|
|
471
|
-
const WorkingSavedMessage = Schema.Struct({
|
|
472
|
-
type: Schema.tag("working-saved"),
|
|
473
|
-
workingStateVector: StateVector
|
|
474
|
-
});
|
|
475
|
-
const WorkingSaveErrorMessage = Schema.Struct({
|
|
476
|
-
type: Schema.tag("working-save-error"),
|
|
477
|
-
error: Schema.NonEmptyString
|
|
478
|
-
});
|
|
479
|
-
const PreviewResultMessage = Schema.Struct({
|
|
480
|
-
type: Schema.tag("preview-result"),
|
|
481
|
-
requestId: RequestId,
|
|
482
|
-
outcome: PreviewOutcome
|
|
483
|
-
});
|
|
484
|
-
const PublishResultMessage = Schema.Struct({
|
|
485
|
-
type: Schema.tag("publish-result"),
|
|
486
|
-
requestId: RequestId,
|
|
487
|
-
outcome: PublishOutcome
|
|
488
|
-
});
|
|
489
|
-
const CollaborationServerMessage = Schema.Union([
|
|
490
|
-
WorkingSavedMessage,
|
|
491
|
-
WorkingSaveErrorMessage,
|
|
492
|
-
PreviewResultMessage,
|
|
493
|
-
PublishResultMessage
|
|
494
|
-
]).pipe(Schema.toTaggedUnion("type"));
|
|
495
|
-
|
|
496
|
-
//#endregion
|
|
497
|
-
//#region ../protocol/src/Users.ts
|
|
498
|
-
/**
|
|
499
|
-
* User administration inputs, offset-paginated directory results, and caller-visible command
|
|
500
|
-
* failures. Commands carry no idempotency key; clients resolve ambiguous outcomes by listing again.
|
|
501
|
-
*/
|
|
502
|
-
const UserEmail = Schema.NonEmptyString.check(Schema.isMaxLength(320), Schema.isPattern(/^[^\s@]+@[^\s@]+\.[^\s@]+$/u)).annotate({ identifier: "UserEmail" });
|
|
503
|
-
const UserName = Schema.NonEmptyString.check(Schema.isMaxLength(200)).annotate({ identifier: "UserName" });
|
|
504
|
-
const UserPassword = Schema.NonEmptyString.check(Schema.isMinLength(8), Schema.isMaxLength(200)).annotate({ identifier: "UserPassword" });
|
|
505
|
-
const User = Schema.Struct({
|
|
506
|
-
id: Schema.NonEmptyString,
|
|
507
|
-
email: UserEmail,
|
|
508
|
-
name: UserName,
|
|
509
|
-
role: Role,
|
|
510
|
-
emailVerified: Schema.Boolean,
|
|
511
|
-
banned: Schema.Boolean,
|
|
512
|
-
createdAt: Schema.DateTimeUtcFromString,
|
|
513
|
-
updatedAt: Schema.DateTimeUtcFromString
|
|
514
|
-
}).annotate({ identifier: "User" });
|
|
515
|
-
const UserPage = Schema.Struct({
|
|
516
|
-
users: Schema.Array(User),
|
|
517
|
-
total: nonNegativeInt
|
|
518
|
-
}).annotate({ identifier: "UserPage" });
|
|
519
|
-
const UserQuery = Schema.Struct({
|
|
520
|
-
limit: Schema.optionalKey(Schema.Int.check(Schema.isBetween({
|
|
521
|
-
minimum: 1,
|
|
522
|
-
maximum: 100
|
|
523
|
-
}))),
|
|
524
|
-
offset: Schema.optionalKey(nonNegativeInt),
|
|
525
|
-
search: Schema.optionalKey(Schema.NonEmptyString.check(Schema.isMaxLength(200)))
|
|
526
|
-
}).annotate({ identifier: "UserQuery" });
|
|
527
|
-
const CreateUserInput = Schema.Struct({
|
|
528
|
-
email: UserEmail,
|
|
529
|
-
name: UserName,
|
|
530
|
-
password: UserPassword,
|
|
531
|
-
role: Role
|
|
532
|
-
}).annotate({ identifier: "CreateUserInput" });
|
|
533
|
-
var UserAlreadyExists = class extends Schema.TaggedError()("User.AlreadyExists", { email: UserEmail }) {};
|
|
534
|
-
var UserNotFound = class extends Schema.TaggedError()("User.NotFound", { userId: User.fields.id }) {};
|
|
535
|
-
var UserSelfRemovalDenied = class extends Schema.TaggedError()("User.SelfRemovalDenied", { userId: User.fields.id }) {};
|
|
536
|
-
var UserSelfRoleChangeDenied = class extends Schema.TaggedError()("User.SelfRoleChangeDenied", { userId: User.fields.id }) {};
|
|
537
|
-
var UserAdministrationDenied = class extends Schema.TaggedError()("UserAdministration.Denied", {}) {};
|
|
538
|
-
|
|
539
|
-
//#endregion
|
|
540
|
-
//#region ../protocol/src/Initialization.ts
|
|
541
|
-
/** Exclusive first-installation claim input, state, and caller-visible rejection failures. */
|
|
542
|
-
const InitializationInput = Schema.Struct({
|
|
543
|
-
email: UserEmail,
|
|
544
|
-
initializationToken: Schema.NonEmptyString.check(Schema.isMaxLength(512)),
|
|
545
|
-
name: UserName,
|
|
546
|
-
password: UserPassword
|
|
547
|
-
}).annotate({ identifier: "InitializationInput" });
|
|
548
|
-
const InitializationState = Schema.Struct({ needsAdministrator: Schema.Boolean }).annotate({ identifier: "InitializationState" });
|
|
549
|
-
var InitializationAlreadyCompleted = class extends Schema.TaggedError()("Initialization.AlreadyCompleted", {}) {};
|
|
550
|
-
var InitializationProofInvalid = class extends Schema.TaggedError()("Initialization.ProofInvalid", {}) {};
|
|
551
|
-
|
|
552
|
-
//#endregion
|
|
553
|
-
//#region ../protocol/src/internal/http/failures.ts
|
|
554
|
-
var StudioInternalError = class extends Schema.TaggedError()("Studio.InternalError", { message: Schema.Literal("The request could not be completed.") }) {};
|
|
555
|
-
function studioInternalError() {
|
|
556
|
-
return new StudioInternalError({ message: "The request could not be completed." });
|
|
557
|
-
}
|
|
558
|
-
|
|
559
|
-
//#endregion
|
|
560
|
-
//#region ../protocol/src/internal/http/delivery.ts
|
|
561
|
-
const DeliverySurroundPayload = Schema.Struct({
|
|
562
|
-
lookup: PublishedDocumentLookup,
|
|
563
|
-
query: PublishedDocumentSurroundQuery
|
|
564
|
-
}).annotate({ identifier: "DeliverySurroundPayload" });
|
|
565
|
-
const InternalError$1 = StudioInternalError.pipe(HttpApiSchema.status(500));
|
|
566
|
-
const PublishedNotFound = PublishedDocumentNotFound.pipe(HttpApiSchema.status(404));
|
|
567
|
-
const InvalidPreviewSession$1 = PreviewSessionInvalid.pipe(HttpApiSchema.status(401));
|
|
568
|
-
const PreviewDraftMissing = PreviewDraftNotFound.pipe(HttpApiSchema.status(404));
|
|
569
|
-
const PublishedDeliveryApi = HttpApiGroup.make("delivery").add(HttpApiEndpoint.post("read", "/read", {
|
|
570
|
-
payload: PublishedDocumentLookup,
|
|
571
|
-
success: CompiledDocument,
|
|
572
|
-
error: [PublishedNotFound, InternalError$1]
|
|
573
|
-
}), HttpApiEndpoint.post("query", "/query", {
|
|
574
|
-
payload: PublishedDocumentQuery,
|
|
575
|
-
success: PublishedDocumentPage,
|
|
576
|
-
error: InternalError$1
|
|
577
|
-
}), HttpApiEndpoint.post("navigation", "/navigation", {
|
|
578
|
-
payload: DocumentNavigationQuery,
|
|
579
|
-
success: Schema.Array(DocumentNavigationItem),
|
|
580
|
-
error: InternalError$1
|
|
581
|
-
}), HttpApiEndpoint.post("surround", "/surround", {
|
|
582
|
-
payload: DeliverySurroundPayload,
|
|
583
|
-
success: DocumentSurround,
|
|
584
|
-
error: [PublishedNotFound, InternalError$1]
|
|
585
|
-
})).prefix("/delivery");
|
|
586
|
-
const PreviewDeliveryApi = HttpApiGroup.make("previewDelivery").add(HttpApiEndpoint.post("resolve", "/preview/resolve", {
|
|
587
|
-
payload: PreviewDraftRequest,
|
|
588
|
-
success: CompiledDocument,
|
|
589
|
-
error: [
|
|
590
|
-
InvalidPreviewSession$1,
|
|
591
|
-
PreviewDraftMissing,
|
|
592
|
-
InternalError$1
|
|
593
|
-
]
|
|
594
|
-
}), HttpApiEndpoint.post("invalidations", "/preview/invalidations", {
|
|
595
|
-
payload: PreviewSessionAccess,
|
|
596
|
-
success: HttpApiSchema.StreamSse({ data: PreviewInvalidation }),
|
|
597
|
-
error: [InvalidPreviewSession$1, InternalError$1]
|
|
598
|
-
}));
|
|
599
|
-
|
|
600
|
-
//#endregion
|
|
601
|
-
//#region ../protocol/src/StudioHttp.ts
|
|
602
|
-
/**
|
|
603
|
-
* Studio HTTP paths, middleware contracts, payloads, and the composed CMS API. Every expected
|
|
604
|
-
* caller failure is a tagged schema with an explicit status; unclassified failures become the
|
|
605
|
-
* deliberately opaque `StudioInternalError`.
|
|
606
|
-
*/
|
|
607
|
-
const ApiVersion = Schema.NonEmptyString.pipe(Schema.brand("ApiVersion"));
|
|
608
|
-
const StudioBootstrap = Schema.Struct({
|
|
609
|
-
basePath: PublicPath,
|
|
610
|
-
components: Schema.Array(ComponentDefinition),
|
|
611
|
-
documents: DocumentConfiguration,
|
|
612
|
-
media: MediaConfiguration,
|
|
613
|
-
version: ApiVersion
|
|
614
|
-
}).annotate({ identifier: "StudioBootstrap" });
|
|
615
|
-
var StudioBadRequest = class extends Schema.TaggedError()("Studio.BadRequest", { kind: Schema.Literals([
|
|
616
|
-
"Headers",
|
|
617
|
-
"Params",
|
|
618
|
-
"Payload",
|
|
619
|
-
"Query"
|
|
620
|
-
]) }) {};
|
|
621
|
-
var StudioRequestConflict = class extends Schema.TaggedError()("Studio.RequestConflict", { retryable: Schema.Literal(true) }) {};
|
|
622
|
-
var StudioSchemaError = class extends HttpApiMiddleware.Service()("@internal/protocol/StudioSchemaError", { error: [StudioBadRequest.pipe(HttpApiSchema.status(400)), StudioInternalError.pipe(HttpApiSchema.status(500))] }) {};
|
|
623
|
-
var CurrentStudioRequest = class extends Context.Service()("@internal/protocol/CurrentStudioRequest") {};
|
|
624
|
-
var StudioAuthentication = class extends HttpApiMiddleware.Service()("@internal/protocol/StudioAuthentication", { error: [
|
|
625
|
-
AuthenticationRequired.pipe(HttpApiSchema.status(401)),
|
|
626
|
-
StudioEntryDenied.pipe(HttpApiSchema.status(403)),
|
|
627
|
-
StudioInternalError.pipe(HttpApiSchema.status(500))
|
|
628
|
-
] }) {};
|
|
629
|
-
const UpdateDocumentPayload = Schema.Struct({
|
|
630
|
-
expectedVersion: UpdateDocumentInput.fields.expectedVersion,
|
|
631
|
-
markdown: UpdateDocumentInput.fields.markdown
|
|
632
|
-
});
|
|
633
|
-
const MoveDocumentPayload = Schema.Struct({
|
|
634
|
-
expectedVersion: MoveDocumentInput.fields.expectedVersion,
|
|
635
|
-
location: MoveDocumentInput.fields.location
|
|
636
|
-
});
|
|
637
|
-
const PublishDocumentPayload = Schema.Struct({ expectedVersion: PublishDocumentInput.fields.expectedVersion });
|
|
638
|
-
const RemoveDocumentPayload = Schema.Struct({ expectedVersion: RemoveDocumentInput.fields.expectedVersion });
|
|
639
|
-
const RestoreDocumentPayload = Schema.Struct({
|
|
640
|
-
expectedVersion: RestoreDocumentInput.fields.expectedVersion,
|
|
641
|
-
revisionId: RestoreDocumentInput.fields.revisionId
|
|
642
|
-
});
|
|
643
|
-
const UndeleteDocumentPayload = Schema.Struct({ expectedVersion: UndeleteDocumentInput.fields.expectedVersion });
|
|
644
|
-
const ChangeRolePayload = Schema.Struct({ role: Role }).annotate({ identifier: "ChangeRolePayload" });
|
|
645
|
-
const MediaUploadQuery = Schema.Struct({
|
|
646
|
-
declaredByteSize: MediaUpload.fields.declaredByteSize,
|
|
647
|
-
folder: Schema.optionalKey(MediaFolder)
|
|
648
|
-
}).annotate({ identifier: "MediaUploadQuery" });
|
|
649
|
-
const MediaUploadPayload = Schema.Struct({ file: Multipart.SingleFileSchema }).pipe(HttpApiSchema.asMultipartStream({ maxParts: 1 }));
|
|
650
|
-
const NotFound = DocumentNotFound.pipe(HttpApiSchema.status(404));
|
|
651
|
-
const VersionConflict = DocumentVersionConflict.pipe(HttpApiSchema.status(409));
|
|
652
|
-
const Conflict = Schema.Union([
|
|
653
|
-
DocumentMediaUnavailable,
|
|
654
|
-
DocumentPathConflict,
|
|
655
|
-
DocumentVersionConflict
|
|
656
|
-
]).pipe(HttpApiSchema.status(409));
|
|
657
|
-
const ValidationFailed = DocumentValidationFailed.pipe(HttpApiSchema.status(422));
|
|
658
|
-
const RequestConflict = StudioRequestConflict.pipe(HttpApiSchema.status(409));
|
|
659
|
-
const InternalError = StudioInternalError.pipe(HttpApiSchema.status(500));
|
|
660
|
-
const Forbidden = AccessDenied.pipe(HttpApiSchema.status(403));
|
|
661
|
-
const MutationErrors = [
|
|
662
|
-
NotFound,
|
|
663
|
-
Conflict,
|
|
664
|
-
ValidationFailed,
|
|
665
|
-
RequestConflict,
|
|
666
|
-
Forbidden,
|
|
667
|
-
InternalError
|
|
668
|
-
];
|
|
669
|
-
const MediaNotFoundResponse = MediaNotFound.pipe(HttpApiSchema.status(404));
|
|
670
|
-
const MediaInvalidQuery = MediaInvalid.pipe(HttpApiSchema.status(400));
|
|
671
|
-
const MediaInvalidUpload = MediaInvalid.pipe(HttpApiSchema.status(422));
|
|
672
|
-
const MediaTooLargeResponse = MediaTooLarge.pipe(HttpApiSchema.status(413));
|
|
673
|
-
const MediaReferencedResponse = MediaReferenced.pipe(HttpApiSchema.status(409));
|
|
674
|
-
const MediaConflictResponse = MediaConflict.pipe(HttpApiSchema.status(409));
|
|
675
|
-
const InvalidActivityCursor = ActivityCursorInvalid.pipe(HttpApiSchema.status(400));
|
|
676
|
-
const InvalidHistoryCursor = DocumentHistoryInvalidCursor.pipe(HttpApiSchema.status(400));
|
|
677
|
-
const HistoryComparisonTooLarge = DocumentHistoryComparisonTooLarge.pipe(HttpApiSchema.status(422));
|
|
678
|
-
const AlreadyInitialized = InitializationAlreadyCompleted.pipe(HttpApiSchema.status(409));
|
|
679
|
-
const InitializationProofRejected = InitializationProofInvalid.pipe(HttpApiSchema.status(403));
|
|
680
|
-
const UserAdministrationForbidden = UserAdministrationDenied.pipe(HttpApiSchema.status(403));
|
|
681
|
-
const UserDuplicate = UserAlreadyExists.pipe(HttpApiSchema.status(409));
|
|
682
|
-
const MissingUser = UserNotFound.pipe(HttpApiSchema.status(404));
|
|
683
|
-
const UserSelfRemoval = UserSelfRemovalDenied.pipe(HttpApiSchema.status(409));
|
|
684
|
-
const UserSelfRoleChange = UserSelfRoleChangeDenied.pipe(HttpApiSchema.status(409));
|
|
685
|
-
const InvalidPreviewSession = PreviewSessionInvalid.pipe(HttpApiSchema.status(401));
|
|
686
|
-
const StudioDocumentsApi = HttpApiGroup.make("documents").add(HttpApiEndpoint.get("browse", "/", {
|
|
687
|
-
query: DocumentBrowseQuery,
|
|
688
|
-
success: Schema.Array(DocumentSummary),
|
|
689
|
-
error: [Forbidden, InternalError]
|
|
690
|
-
}), HttpApiEndpoint.get("trash", "/trash", {
|
|
691
|
-
success: Schema.Array(DeletedDocument),
|
|
692
|
-
error: [Forbidden, InternalError]
|
|
693
|
-
}), HttpApiEndpoint.get("read", "/:documentId", {
|
|
694
|
-
params: { documentId: DocumentId },
|
|
695
|
-
success: DocumentSource,
|
|
696
|
-
error: [
|
|
697
|
-
NotFound,
|
|
698
|
-
Forbidden,
|
|
699
|
-
InternalError
|
|
700
|
-
]
|
|
701
|
-
}), HttpApiEndpoint.post("create", "/", {
|
|
702
|
-
payload: CreateDocumentInput,
|
|
703
|
-
success: DocumentMutationResult.pipe(HttpApiSchema.status(201)),
|
|
704
|
-
error: MutationErrors
|
|
705
|
-
}), HttpApiEndpoint.put("update", "/:documentId", {
|
|
706
|
-
params: { documentId: DocumentId },
|
|
707
|
-
payload: UpdateDocumentPayload,
|
|
708
|
-
success: DocumentMutationResult,
|
|
709
|
-
error: MutationErrors
|
|
710
|
-
}), HttpApiEndpoint.post("validate", "/:documentId/validate", {
|
|
711
|
-
params: { documentId: DocumentId },
|
|
712
|
-
payload: UpdateDocumentPayload,
|
|
713
|
-
success: DocumentValidationResult,
|
|
714
|
-
error: [
|
|
715
|
-
NotFound,
|
|
716
|
-
VersionConflict,
|
|
717
|
-
Forbidden,
|
|
718
|
-
InternalError
|
|
719
|
-
]
|
|
720
|
-
}), HttpApiEndpoint.post("move", "/:documentId/move", {
|
|
721
|
-
params: { documentId: DocumentId },
|
|
722
|
-
payload: MoveDocumentPayload,
|
|
723
|
-
success: DocumentMutationResult,
|
|
724
|
-
error: MutationErrors
|
|
725
|
-
}), HttpApiEndpoint.post("publish", "/:documentId/publish", {
|
|
726
|
-
params: { documentId: DocumentId },
|
|
727
|
-
payload: PublishDocumentPayload,
|
|
728
|
-
success: DocumentMutationResult,
|
|
729
|
-
error: MutationErrors
|
|
730
|
-
}), HttpApiEndpoint.post("remove", "/:documentId/remove", {
|
|
731
|
-
params: { documentId: DocumentId },
|
|
732
|
-
payload: RemoveDocumentPayload,
|
|
733
|
-
success: DocumentMutationResult,
|
|
734
|
-
error: MutationErrors
|
|
735
|
-
}), HttpApiEndpoint.post("restore", "/:documentId/restore", {
|
|
736
|
-
params: { documentId: DocumentId },
|
|
737
|
-
payload: RestoreDocumentPayload,
|
|
738
|
-
success: DocumentMutationResult,
|
|
739
|
-
error: MutationErrors
|
|
740
|
-
}), HttpApiEndpoint.post("undelete", "/:documentId/undelete", {
|
|
741
|
-
params: { documentId: DocumentId },
|
|
742
|
-
payload: UndeleteDocumentPayload,
|
|
743
|
-
success: DocumentMutationResult,
|
|
744
|
-
error: MutationErrors
|
|
745
|
-
})).middleware(StudioAuthentication).prefix("/documents");
|
|
746
|
-
const StudioMediaApi = HttpApiGroup.make("media").add(HttpApiEndpoint.get("search", "/", {
|
|
747
|
-
query: MediaQuery,
|
|
748
|
-
success: MediaPage,
|
|
749
|
-
error: [
|
|
750
|
-
MediaInvalidQuery,
|
|
751
|
-
Forbidden,
|
|
752
|
-
InternalError
|
|
753
|
-
]
|
|
754
|
-
}), HttpApiEndpoint.post("upload", "/", {
|
|
755
|
-
query: MediaUploadQuery,
|
|
756
|
-
payload: MediaUploadPayload,
|
|
757
|
-
success: MediaAsset.pipe(HttpApiSchema.status(201)),
|
|
758
|
-
error: [
|
|
759
|
-
MediaInvalidUpload,
|
|
760
|
-
MediaTooLargeResponse,
|
|
761
|
-
Forbidden,
|
|
762
|
-
InternalError
|
|
763
|
-
]
|
|
764
|
-
}), HttpApiEndpoint.put("replace", "/:mediaId", {
|
|
765
|
-
params: { mediaId: MediaId },
|
|
766
|
-
query: MediaUploadQuery,
|
|
767
|
-
payload: MediaUploadPayload,
|
|
768
|
-
success: MediaAsset,
|
|
769
|
-
error: [
|
|
770
|
-
MediaNotFoundResponse,
|
|
771
|
-
MediaConflictResponse,
|
|
772
|
-
MediaInvalidUpload,
|
|
773
|
-
MediaTooLargeResponse,
|
|
774
|
-
Forbidden,
|
|
775
|
-
InternalError
|
|
776
|
-
]
|
|
777
|
-
}), HttpApiEndpoint.post("cleanup", "/cleanup", {
|
|
778
|
-
success: MediaCleanupReport,
|
|
779
|
-
error: [Forbidden, InternalError]
|
|
780
|
-
}), HttpApiEndpoint.get("integrity", "/integrity", {
|
|
781
|
-
success: MediaIntegrityReport,
|
|
782
|
-
error: [Forbidden, InternalError]
|
|
783
|
-
}), HttpApiEndpoint.get("get", "/:mediaId", {
|
|
784
|
-
params: { mediaId: MediaId },
|
|
785
|
-
success: MediaAsset,
|
|
786
|
-
error: [
|
|
787
|
-
MediaNotFoundResponse,
|
|
788
|
-
Forbidden,
|
|
789
|
-
InternalError
|
|
790
|
-
]
|
|
791
|
-
}), HttpApiEndpoint.delete("remove", "/:mediaId", {
|
|
792
|
-
params: { mediaId: MediaId },
|
|
793
|
-
success: HttpApiSchema.NoContent,
|
|
794
|
-
error: [
|
|
795
|
-
MediaNotFoundResponse,
|
|
796
|
-
MediaConflictResponse,
|
|
797
|
-
MediaReferencedResponse,
|
|
798
|
-
Forbidden,
|
|
799
|
-
InternalError
|
|
800
|
-
]
|
|
801
|
-
})).middleware(StudioAuthentication).prefix("/media");
|
|
802
|
-
const StudioConfigurationApi = HttpApiGroup.make("configuration").add(HttpApiEndpoint.get("bootstrap", "/bootstrap", { success: StudioBootstrap })).middleware(StudioAuthentication);
|
|
803
|
-
const StudioSessionApi = HttpApiGroup.make("session").add(HttpApiEndpoint.get("current", "/session", { success: StudioActor })).middleware(StudioAuthentication);
|
|
804
|
-
const InitializationApi = HttpApiGroup.make("initialization").add(HttpApiEndpoint.get("status", "/initialization", {
|
|
805
|
-
success: InitializationState,
|
|
806
|
-
error: InternalError
|
|
807
|
-
}), HttpApiEndpoint.post("claim", "/initialization", {
|
|
808
|
-
payload: InitializationInput,
|
|
809
|
-
success: User.pipe(HttpApiSchema.status(201)),
|
|
810
|
-
error: [
|
|
811
|
-
AlreadyInitialized,
|
|
812
|
-
InitializationProofRejected,
|
|
813
|
-
InternalError
|
|
814
|
-
]
|
|
815
|
-
}));
|
|
816
|
-
const StudioDiagnosticsApi = HttpApiGroup.make("diagnostics").add(HttpApiEndpoint.get("documents", "/diagnostics/documents", {
|
|
817
|
-
success: Schema.Array(DocumentIssue),
|
|
818
|
-
error: [Forbidden, InternalError]
|
|
819
|
-
})).middleware(StudioAuthentication);
|
|
820
|
-
const StudioPreviewSessionsApi = HttpApiGroup.make("previewSessions").add(HttpApiEndpoint.post("issue", "/preview/sessions", {
|
|
821
|
-
payload: PreviewSessionRequest,
|
|
822
|
-
success: PreviewSession.pipe(HttpApiSchema.status(201)),
|
|
823
|
-
error: [InvalidPreviewSession, InternalError]
|
|
824
|
-
})).middleware(StudioAuthentication);
|
|
825
|
-
const StudioHistoryApi = HttpApiGroup.make("history").add(HttpApiEndpoint.get("list", "/", {
|
|
826
|
-
query: DocumentHistoryQuery,
|
|
827
|
-
success: DocumentRevisionPage,
|
|
828
|
-
error: [
|
|
829
|
-
InvalidHistoryCursor,
|
|
830
|
-
Forbidden,
|
|
831
|
-
InternalError
|
|
832
|
-
]
|
|
833
|
-
}), HttpApiEndpoint.get("read", "/:documentId/:revisionId", {
|
|
834
|
-
params: {
|
|
835
|
-
documentId: DocumentId,
|
|
836
|
-
revisionId: DocumentRevision.fields.revisionId
|
|
837
|
-
},
|
|
838
|
-
success: DocumentRevision,
|
|
839
|
-
error: [
|
|
840
|
-
NotFound,
|
|
841
|
-
Forbidden,
|
|
842
|
-
InternalError
|
|
843
|
-
]
|
|
844
|
-
}), HttpApiEndpoint.post("compare", "/compare", {
|
|
845
|
-
payload: CompareDocumentRevisionsInput,
|
|
846
|
-
success: DocumentRevisionComparison,
|
|
847
|
-
error: [
|
|
848
|
-
NotFound,
|
|
849
|
-
HistoryComparisonTooLarge,
|
|
850
|
-
Forbidden,
|
|
851
|
-
InternalError
|
|
852
|
-
]
|
|
853
|
-
})).middleware(StudioAuthentication).prefix("/history");
|
|
854
|
-
const StudioActivityApi = HttpApiGroup.make("activity").add(HttpApiEndpoint.get("list", "/", {
|
|
855
|
-
query: ActivityQuery,
|
|
856
|
-
success: ActivityPage,
|
|
857
|
-
error: [
|
|
858
|
-
InvalidActivityCursor,
|
|
859
|
-
Forbidden,
|
|
860
|
-
InternalError
|
|
861
|
-
]
|
|
862
|
-
})).middleware(StudioAuthentication).prefix("/activity");
|
|
863
|
-
const StudioUserAdministrationApi = HttpApiGroup.make("users").add(HttpApiEndpoint.get("list", "/", {
|
|
864
|
-
query: UserQuery,
|
|
865
|
-
success: UserPage,
|
|
866
|
-
error: [UserAdministrationForbidden, InternalError]
|
|
867
|
-
}), HttpApiEndpoint.post("create", "/", {
|
|
868
|
-
payload: CreateUserInput,
|
|
869
|
-
success: User.pipe(HttpApiSchema.status(201)),
|
|
870
|
-
error: [
|
|
871
|
-
UserDuplicate,
|
|
872
|
-
UserAdministrationForbidden,
|
|
873
|
-
InternalError
|
|
874
|
-
]
|
|
875
|
-
}), HttpApiEndpoint.post("changeRole", "/:userId/role", {
|
|
876
|
-
params: { userId: User.fields.id },
|
|
877
|
-
payload: ChangeRolePayload,
|
|
878
|
-
success: User,
|
|
879
|
-
error: [
|
|
880
|
-
MissingUser,
|
|
881
|
-
UserSelfRoleChange,
|
|
882
|
-
UserAdministrationForbidden,
|
|
883
|
-
InternalError
|
|
884
|
-
]
|
|
885
|
-
}), HttpApiEndpoint.post("revokeSessions", "/:userId/sessions/revoke", {
|
|
886
|
-
params: { userId: User.fields.id },
|
|
887
|
-
success: User,
|
|
888
|
-
error: [
|
|
889
|
-
MissingUser,
|
|
890
|
-
UserAdministrationForbidden,
|
|
891
|
-
InternalError
|
|
892
|
-
]
|
|
893
|
-
}), HttpApiEndpoint.delete("remove", "/:userId", {
|
|
894
|
-
params: { userId: User.fields.id },
|
|
895
|
-
success: User,
|
|
896
|
-
error: [
|
|
897
|
-
MissingUser,
|
|
898
|
-
UserSelfRemoval,
|
|
899
|
-
UserAdministrationForbidden,
|
|
900
|
-
InternalError
|
|
901
|
-
]
|
|
902
|
-
})).middleware(StudioAuthentication).prefix("/users");
|
|
903
|
-
const StudioCollaborationApi = HttpApiGroup.make("collaboration").add(HttpApiEndpoint.post("ticket", "/:documentId/ticket", {
|
|
904
|
-
params: { documentId: DocumentId },
|
|
905
|
-
success: CollaborationTicket,
|
|
906
|
-
error: [
|
|
907
|
-
NotFound,
|
|
908
|
-
Forbidden,
|
|
909
|
-
InternalError
|
|
910
|
-
]
|
|
911
|
-
})).middleware(StudioAuthentication).prefix("/collaboration");
|
|
912
|
-
var StudioApi = class extends HttpApi.make("StudioApi").add(InitializationApi, PublishedDeliveryApi, StudioConfigurationApi, StudioSessionApi, StudioDiagnosticsApi, StudioPreviewSessionsApi, PreviewDeliveryApi, StudioDocumentsApi, StudioHistoryApi, StudioActivityApi, StudioUserAdministrationApi, StudioMediaApi, StudioCollaborationApi).middleware(StudioSchemaError).prefix(STUDIO_API_PATH) {};
|
|
913
|
-
|
|
914
|
-
//#endregion
|
|
915
|
-
export { DocumentVersionConflict as $, ACTIVITY_ACTIONS as A, ActivityTargetKind as B, CollaborationTicket as C, DocumentRevision as D, DocumentHistoryInvalidCursor as E, ActivityEntry as F, Role as G, AuthenticationRequired as H, ActivityEntryDraft as I, StudioRequestContext as J, StudioActor as K, ActivityId as L, ActivityContext as M, ActivityCursor as N, DocumentRevisionComparison as O, ActivityCursorInvalid as P, DocumentValidationFailed as Q, ActivityPage as R, CollaborationServerMessage as S, DocumentHistoryComparisonTooLarge as T, DOCUMENT_ACTIONS as U, AccessDenied as V, MEDIA_ACTIONS as W, DocumentNotFound as X, DocumentMediaUnavailable as Y, DocumentPathConflict as Z, UserNotFound as _, MediaStatus as _t, StudioBootstrap as a, MediaConflict as at, UserSelfRoleChangeDenied as b, StudioInternalError as c, MediaId as ct, InitializationProofInvalid as d, MediaName as dt, PublishedDocumentNotFound as et, InitializationState as f, MediaNotFound as ft, UserAlreadyExists as g, MediaReferenced as gt, UserAdministrationDenied as h, MediaReference as ht, StudioBadRequest as i, MediaCleanupReport as it, ActivityAction as j, DocumentRevisionPage as k, studioInternalError as l, MediaIntegrityReport as lt, User as m, MediaPage as mt, StudioApi as n, MediaAsset as nt, StudioRequestConflict as o, MediaCursor as ot, CreateUserInput as p, MediaObjectKey as pt, StudioEntryDenied as q, StudioAuthentication as r, MediaByteSize as rt, StudioSchemaError as s, MediaFolder as st, CurrentStudioRequest as t, ImageMimeType as tt, InitializationAlreadyCompleted as u, MediaInvalid as ut, UserPage as v, MediaTooLarge as vt, StateVector as w, CollaborationClientMessage as x, UserSelfRemovalDenied as y, MediaUpload as yt, ActivityTarget as z };
|
|
916
|
-
//# sourceMappingURL=StudioHttp-BTLLooh0.js.map
|