@neta-art/cohub 6.0.0 → 8.0.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.
- package/README.md +6 -5
- package/dist/board/animation.d.ts +2 -1
- package/dist/board/animation.js +0 -1
- package/dist/board/core/connections.js +4 -4
- package/dist/board/core/export-plan.js +1 -1
- package/dist/board/core/shape-types.js +0 -1
- package/dist/board/index.d.ts +6 -5
- package/dist/board/index.js +7 -7
- package/dist/board/mutation.d.ts +2 -11
- package/dist/board/mutation.js +2 -56
- package/dist/board/render/renderers/text-card-renderer.js +1 -1
- package/dist/board/semantic-document.d.ts +30 -0
- package/dist/board/semantic-document.js +271 -0
- package/dist/board/semantic-mutation.d.ts +10 -0
- package/dist/board/semantic-mutation.js +203 -0
- package/dist/chunks/http.d.ts +340 -317
- package/dist/chunks/http.js +477 -1784
- package/dist/chunks/transport.js +1 -1
- package/dist/chunks/websocket.d.ts +3677 -3151
- package/dist/chunks/websocket.js +1 -1
- package/dist/http.d.ts +3 -3
- package/dist/index.d.ts +165 -119
- package/dist/index.js +1419 -446
- package/dist/protocol/dist/board-authoring.d.ts +1305 -1
- package/dist/protocol/dist/board-authoring.js +80 -6
- package/dist/protocol/dist/board-codec.d.ts +2 -2
- package/dist/protocol/dist/board-codec.js +19 -4
- package/dist/protocol/dist/board-composition.d.ts +126 -1
- package/dist/protocol/dist/board-composition.js +1 -9
- package/dist/protocol/dist/board-connection.d.ts +16 -16
- package/dist/protocol/dist/board-connection.js +16 -16
- package/dist/protocol/dist/board-document.d.ts +34 -3
- package/dist/protocol/dist/board-document.js +3 -1
- package/dist/protocol/dist/board-effect.d.ts +94 -0
- package/dist/protocol/dist/board-effect.js +53 -0
- package/dist/protocol/dist/board-json.js +16 -0
- package/dist/protocol/dist/board.d.ts +34 -164
- package/dist/protocol/dist/board.js +44 -45
- package/dist/protocol/dist/index.d.ts +8 -8
- package/dist/protocol/dist/realtime/types.d.ts +1 -1
- package/dist/types.d.ts +3 -1
- package/package.json +1 -2
- package/dist/board/codec.d.ts +0 -27
- package/dist/board/codec.js +0 -277
- package/dist/protocol/dist/board-content.js +0 -26
- package/dist/protocol/dist/board-upgrade.js +0 -2
- package/dist/protocol/dist/identifiers.js +0 -10
- package/dist/protocol/dist/index.js +0 -19
- package/dist/protocol/dist/provenance.js +0 -15
- package/dist/protocol/dist/public-identifiers.js +0 -38
- package/dist/protocol/dist/realtime/board-awareness.js +0 -119
- package/dist/protocol/dist/ui-command.js +0 -2
- package/dist/protocol/dist/work-promotion-stats.js +0 -11
- package/dist/protocol/dist/work-surface.js +0 -2
- package/dist/protocol/dist/work-view-stats.js +0 -3
- package/dist/protocol/dist/work.d.ts +0 -1
- /package/dist/protocol/dist/{board-upgrade.d.ts → app.d.ts} +0 -0
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { BOARD_BUILTIN_CAPABILITIES, DEFAULT_BOARD_RENDER_LIMITS } from "./board-constants.js";
|
|
2
2
|
import { BoardConnectionSchema } from "./board-connection.js";
|
|
3
3
|
import { BoardCompositionInputSchema } from "./board-composition.js";
|
|
4
|
-
import {
|
|
4
|
+
import { BoardEffectInputSchema } from "./board-effect.js";
|
|
5
|
+
import { BoardAuthoringItemSchema, BoardItemPatchSchema, BoardSemanticMutationSchema } from "./board-authoring.js";
|
|
5
6
|
import { z } from "zod";
|
|
6
7
|
//#region ../protocol/dist/board.js
|
|
7
8
|
const BOARD_EXTENSION = ".board";
|
|
8
9
|
const BOARD_DOCUMENT_KIND = "cohub.board";
|
|
9
10
|
const BOARD_MANIFEST_KIND = "cohub.board.manifest";
|
|
10
11
|
const idSchema = z.string().min(1).max(160);
|
|
11
|
-
const extensionIdSchema = z.string().regex(/^[a-z][a-z0-9]*(?:[.-][a-z0-9]+)+$/).max(160);
|
|
12
12
|
const jsonObjectSchema = z.record(z.string(), z.unknown());
|
|
13
13
|
const finiteSchema = z.number().finite();
|
|
14
14
|
const BoardManifestSchema = z.object({
|
|
@@ -79,42 +79,6 @@ const BoardCameraFocusParamsSchema = z.object({
|
|
|
79
79
|
path: ["minZoom"]
|
|
80
80
|
});
|
|
81
81
|
});
|
|
82
|
-
const BoardAssetRefSchema = z.object({
|
|
83
|
-
type: z.enum(["space-file", "extension"]),
|
|
84
|
-
ref: z.string().min(1).max(4096),
|
|
85
|
-
digest: z.string().min(16).max(160).optional()
|
|
86
|
-
});
|
|
87
|
-
const BoardEffectSchema = z.object({
|
|
88
|
-
id: idSchema,
|
|
89
|
-
boardId: z.string().uuid(),
|
|
90
|
-
target: z.discriminatedUnion("type", [z.object({
|
|
91
|
-
type: z.literal("item"),
|
|
92
|
-
itemId: idSchema
|
|
93
|
-
}).strict(), z.object({ type: z.literal("board") }).strict()]),
|
|
94
|
-
kind: extensionIdSchema,
|
|
95
|
-
kindVersion: z.number().int().positive(),
|
|
96
|
-
enabled: z.boolean().default(true),
|
|
97
|
-
lifecycle: z.enum([
|
|
98
|
-
"persistent",
|
|
99
|
-
"when-visible",
|
|
100
|
-
"manual"
|
|
101
|
-
]),
|
|
102
|
-
timeOrigin: z.enum([
|
|
103
|
-
"board",
|
|
104
|
-
"visible",
|
|
105
|
-
"activation"
|
|
106
|
-
]),
|
|
107
|
-
layer: z.enum([
|
|
108
|
-
"behind",
|
|
109
|
-
"front",
|
|
110
|
-
"screen"
|
|
111
|
-
]).default("front"),
|
|
112
|
-
seed: z.string().min(1).max(160),
|
|
113
|
-
params: jsonObjectSchema.default({}),
|
|
114
|
-
assetRefs: z.array(BoardAssetRefSchema).default([]),
|
|
115
|
-
metadata: jsonObjectSchema.default({}),
|
|
116
|
-
revision: z.number().int().nonnegative()
|
|
117
|
-
});
|
|
118
82
|
z.object({
|
|
119
83
|
nodeId: idSchema,
|
|
120
84
|
type: z.string().min(1).max(40),
|
|
@@ -132,7 +96,14 @@ z.object({
|
|
|
132
96
|
style: jsonObjectSchema,
|
|
133
97
|
data: jsonObjectSchema
|
|
134
98
|
});
|
|
135
|
-
|
|
99
|
+
const stripBoardServerFields = (value) => {
|
|
100
|
+
if (!value || typeof value !== "object" || Array.isArray(value)) return value;
|
|
101
|
+
const { boardId: _boardId, revision: _revision, ...input } = value;
|
|
102
|
+
return input;
|
|
103
|
+
};
|
|
104
|
+
const BoardCreateEffectInputSchema = z.preprocess(stripBoardServerFields, BoardEffectInputSchema);
|
|
105
|
+
const BoardCreateCompositionInputSchema = z.preprocess(stripBoardServerFields, BoardCompositionInputSchema);
|
|
106
|
+
const BoardCreateInputSchema = z.object({
|
|
136
107
|
path: z.string().min(1),
|
|
137
108
|
/** Reused by clients when board creation is interrupted and retried. */
|
|
138
109
|
mutationId: z.string().max(128).optional(),
|
|
@@ -140,12 +111,36 @@ z.object({
|
|
|
140
111
|
metadata: jsonObjectSchema.optional(),
|
|
141
112
|
items: z.array(BoardAuthoringItemSchema).max(5e4).optional(),
|
|
142
113
|
connections: z.array(BoardConnectionSchema).max(5e4).optional(),
|
|
143
|
-
effects: z.array(
|
|
144
|
-
|
|
145
|
-
revision: true
|
|
146
|
-
})).optional(),
|
|
147
|
-
compositions: z.array(BoardCompositionInputSchema).optional()
|
|
114
|
+
effects: z.array(BoardCreateEffectInputSchema).max(5e4).optional(),
|
|
115
|
+
compositions: z.array(BoardCreateCompositionInputSchema).max(5e4).optional()
|
|
148
116
|
});
|
|
117
|
+
const jsonSchema = (schema) => z.toJSONSchema(schema);
|
|
118
|
+
const authoringSchemaFactories = {
|
|
119
|
+
item: () => jsonSchema(BoardAuthoringItemSchema),
|
|
120
|
+
itemPatch: () => jsonSchema(BoardItemPatchSchema),
|
|
121
|
+
mutation: () => jsonSchema(BoardSemanticMutationSchema),
|
|
122
|
+
composition: () => jsonSchema(BoardCompositionInputSchema),
|
|
123
|
+
effect: () => jsonSchema(BoardEffectInputSchema),
|
|
124
|
+
create: () => jsonSchema(BoardCreateInputSchema)
|
|
125
|
+
};
|
|
126
|
+
/**
|
|
127
|
+
* JSON Schemas for the semantic authoring surface. Each property is enumerable
|
|
128
|
+
* for Object.keys/JSON.stringify, but generated only when that property is
|
|
129
|
+
* requested. This keeps protocol imports cheap while capabilities still returns
|
|
130
|
+
* the complete machine-readable schema object.
|
|
131
|
+
*/
|
|
132
|
+
const BOARD_AUTHORING_SCHEMAS = {};
|
|
133
|
+
for (const key of Object.keys(authoringSchemaFactories)) {
|
|
134
|
+
let cached;
|
|
135
|
+
Object.defineProperty(BOARD_AUTHORING_SCHEMAS, key, {
|
|
136
|
+
enumerable: true,
|
|
137
|
+
configurable: false,
|
|
138
|
+
get() {
|
|
139
|
+
cached ??= authoringSchemaFactories[key]();
|
|
140
|
+
return cached;
|
|
141
|
+
}
|
|
142
|
+
});
|
|
143
|
+
}
|
|
149
144
|
z.object({
|
|
150
145
|
include: z.array(z.enum([
|
|
151
146
|
"nodes",
|
|
@@ -154,6 +149,10 @@ z.object({
|
|
|
154
149
|
"compositions",
|
|
155
150
|
"playback"
|
|
156
151
|
])).optional(),
|
|
152
|
+
nodeIds: z.array(idSchema).max(5e4).optional(),
|
|
153
|
+
connectionIds: z.array(idSchema).max(5e4).optional(),
|
|
154
|
+
effectIds: z.array(idSchema).max(5e4).optional(),
|
|
155
|
+
compositionIds: z.array(idSchema).max(5e4).optional(),
|
|
157
156
|
viewport: z.object({
|
|
158
157
|
x: finiteSchema,
|
|
159
158
|
y: finiteSchema,
|
|
@@ -197,4 +196,4 @@ function isBoardPath(path) {
|
|
|
197
196
|
return path.toLowerCase().endsWith(BOARD_EXTENSION);
|
|
198
197
|
}
|
|
199
198
|
//#endregion
|
|
200
|
-
export { BOARD_BUILTIN_CAPABILITIES, BOARD_DOCUMENT_KIND, BOARD_EXTENSION, BOARD_MANIFEST_KIND,
|
|
199
|
+
export { BOARD_AUTHORING_SCHEMAS, BOARD_BUILTIN_CAPABILITIES, BOARD_DOCUMENT_KIND, BOARD_EXTENSION, BOARD_MANIFEST_KIND, BoardCameraFocusParamsSchema, BoardCameraFocusSchema, BoardCameraStateSchema, BoardCreateInputSchema, BoardManifestSchema, DEFAULT_BOARD_RENDER_LIMITS, InvalidBoardFileError, isBoardPath, parseBoardManifest, serializeBoardManifest };
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { BoardCapability, BoardCoordinateSpace, BoardRenderCost } from "./board-constants.js";
|
|
2
|
-
import { AUTO_BOARD_CONNECTION_ANCHOR, BOARD_CONNECTION_DIRECTIONS, BOARD_CONNECTION_LINES, BOARD_CONNECTION_ROUTINGS, BOARD_CONNECTION_SIDES, BoardConnection, BoardConnectionAnchor, BoardConnectionAnchorSchema, BoardConnectionDirection, BoardConnectionEndpoint, BoardConnectionEndpointSchema, BoardConnectionInput, BoardConnectionLine, BoardConnectionPatch, BoardConnectionPatchSchema, BoardConnectionRecord, BoardConnectionRouting, BoardConnectionRoutingConfig, BoardConnectionRoutingSchema, BoardConnectionSchema, BoardConnectionSide, BoardConnectionStyle, BoardConnectionStyleSchema, BoardConnectionWaypointSchema, BoardRelationSchema, DEFAULT_BOARD_CONNECTION_ROUTING, DEFAULT_BOARD_CONNECTION_STYLE, DEFAULT_BOARD_RELATION,
|
|
3
|
-
import { BoardAnimationTarget, BoardAnimationTargetSchema, BoardComposition, BoardCompositionSchema, BoardEasing, BoardEasingSchema, BoardProceduralClip, BoardProceduralClipSchema, BoardTimelineMarker, BoardTimelineMarkerSchema, BoardTrack, BoardTrackInterpolation, BoardTrackSchema } from "./board-composition.js";
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import "./board
|
|
2
|
+
import { AUTO_BOARD_CONNECTION_ANCHOR, BOARD_CONNECTION_DIRECTIONS, BOARD_CONNECTION_LINES, BOARD_CONNECTION_ROUTINGS, BOARD_CONNECTION_SIDES, BoardConnection, BoardConnectionAnchor, BoardConnectionAnchorSchema, BoardConnectionDirection, BoardConnectionEndpoint, BoardConnectionEndpointSchema, BoardConnectionInput, BoardConnectionLine, BoardConnectionPatch, BoardConnectionPatchSchema, BoardConnectionRecord, BoardConnectionRouting, BoardConnectionRoutingConfig, BoardConnectionRoutingSchema, BoardConnectionSchema, BoardConnectionSide, BoardConnectionStyle, BoardConnectionStyleSchema, BoardConnectionWaypointSchema, BoardRelationSchema, DEFAULT_BOARD_CONNECTION_ROUTING, DEFAULT_BOARD_CONNECTION_STYLE, DEFAULT_BOARD_RELATION, connectionItemIds, connectionOtherItemId, connectionTouchesItem, createBoardConnection, flipBoardConnection, normalizeBoardConnectionStyle } from "./board-connection.js";
|
|
3
|
+
import { BoardAnimationTarget, BoardAnimationTargetSchema, BoardComposition, BoardCompositionInput, BoardCompositionInputSchema, BoardCompositionSchema, BoardEasing, BoardEasingSchema, BoardProceduralClip, BoardProceduralClipSchema, BoardTimelineMarker, BoardTimelineMarkerSchema, BoardTrack, BoardTrackInterpolation, BoardTrackSchema } from "./board-composition.js";
|
|
4
|
+
import { BoardAssetRef, BoardAssetRefSchema, BoardEffect, BoardEffectInput, BoardEffectInputSchema, BoardEffectSchema } from "./board-effect.js";
|
|
5
|
+
import { BoardAuthoringItem, BoardAuthoringItemSchema, BoardAuthoringSnapshot, BoardSemanticCommand, BoardSemanticCommandSchema } from "./board-authoring.js";
|
|
6
|
+
import { BOARD_DOCUMENT_KIND, BOARD_EXTENSION, BoardCameraFocus, BoardCameraFocusParams, BoardCameraFocusParamsSchema, BoardCameraFocusSchema, BoardCameraState, BoardCameraStateSchema, BoardDiagnostic, BoardManifest, BoardManifestSchema, BoardMutationReceipt, BoardPlaybackSnapshot, BoardPlaybackStatus, BoardValidationResult, isBoardPath, parseBoardManifest, serializeBoardManifest } from "./board.js";
|
|
7
7
|
import "./board-capability-registry.js";
|
|
8
8
|
import "./board-codec.js";
|
|
9
9
|
import "./board-content.js";
|
|
10
|
-
import "./board-
|
|
10
|
+
import { BOARD_COLOR_IDS, BOARD_GEO_KINDS, BoardColorId, BoardGeoKind } from "./board-node.js";
|
|
11
11
|
import "./realtime/board-awareness.js";
|
|
12
|
-
import "./
|
|
12
|
+
import "./app.js";
|
|
13
13
|
import "./realtime/types.js";
|
|
14
|
-
export { AUTO_BOARD_CONNECTION_ANCHOR, BOARD_COLOR_IDS, BOARD_CONNECTION_DIRECTIONS, BOARD_CONNECTION_LINES, BOARD_CONNECTION_ROUTINGS, BOARD_CONNECTION_SIDES,
|
|
14
|
+
export { AUTO_BOARD_CONNECTION_ANCHOR, BOARD_COLOR_IDS, BOARD_CONNECTION_DIRECTIONS, BOARD_CONNECTION_LINES, BOARD_CONNECTION_ROUTINGS, BOARD_CONNECTION_SIDES, BOARD_DOCUMENT_KIND, BOARD_EXTENSION, BOARD_GEO_KINDS, BoardAnimationTarget, BoardAnimationTargetSchema, type BoardAssetRef, BoardAuthoringItem, BoardAuthoringItemSchema, BoardAuthoringSnapshot, BoardCameraFocus, BoardCameraFocusParams, BoardCameraFocusParamsSchema, BoardCameraFocusSchema, BoardCameraState, BoardCameraStateSchema, type BoardCapability, BoardColorId, BoardComposition, BoardCompositionInput, BoardCompositionInputSchema, BoardCompositionSchema, BoardConnection, BoardConnectionAnchor, BoardConnectionAnchorSchema, BoardConnectionDirection, BoardConnectionEndpoint, BoardConnectionEndpointSchema, BoardConnectionInput, BoardConnectionLine, BoardConnectionPatch, BoardConnectionPatchSchema, BoardConnectionRecord, BoardConnectionRouting, BoardConnectionRoutingConfig, BoardConnectionRoutingSchema, BoardConnectionSchema, BoardConnectionSide, BoardConnectionStyle, BoardConnectionStyleSchema, BoardConnectionWaypointSchema, BoardDiagnostic, BoardEasing, BoardEasingSchema, type BoardEffect, BoardGeoKind, BoardManifest, BoardManifestSchema, BoardMutationReceipt, BoardPlaybackSnapshot, BoardPlaybackStatus, BoardProceduralClip, BoardProceduralClipSchema, BoardRelationSchema, type BoardRenderCost, BoardSemanticCommand, BoardSemanticCommandSchema, BoardTimelineMarker, BoardTimelineMarkerSchema, BoardTrack, BoardTrackInterpolation, BoardTrackSchema, BoardValidationResult, DEFAULT_BOARD_CONNECTION_ROUTING, DEFAULT_BOARD_CONNECTION_STYLE, DEFAULT_BOARD_RELATION, connectionItemIds, connectionOtherItemId, connectionTouchesItem, createBoardConnection, flipBoardConnection, isBoardPath, normalizeBoardConnectionStyle, parseBoardManifest, serializeBoardManifest };
|
package/dist/types.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { BoardCapability, BoardCoordinateSpace, BoardRenderCost } from "./protocol/dist/board-constants.js";
|
|
2
2
|
import { BoardAnimationTarget, BoardComposition, BoardEasing, BoardProceduralClip, BoardTimelineMarker, BoardTrack } from "./protocol/dist/board-composition.js";
|
|
3
|
-
import { BoardAssetRef,
|
|
3
|
+
import { BoardAssetRef, BoardEffect, BoardEffectInput } from "./protocol/dist/board-effect.js";
|
|
4
|
+
import { BoardAuthoringItem, BoardAuthoringSnapshot, BoardSemanticCommand } from "./protocol/dist/board-authoring.js";
|
|
5
|
+
import { BoardCameraFocus, BoardCameraFocusParams, BoardCameraState, BoardDiagnostic, BoardManifest, BoardMutationReceipt, BoardPlaybackSnapshot, BoardValidationResult } from "./protocol/dist/board.js";
|
|
4
6
|
import "./protocol/dist/index.js";
|
|
5
7
|
//#region src/types.d.ts
|
|
6
8
|
type UserProfile = {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@neta-art/cohub",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "8.0.0",
|
|
4
4
|
"description": "Cohub SDK for spaces, sessions, boards, and realtime agent collaboration.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"private": false,
|
|
@@ -82,7 +82,6 @@
|
|
|
82
82
|
"tsdown": "^0.22.7",
|
|
83
83
|
"tsx": "4.23.1",
|
|
84
84
|
"typescript": "^7.0.2",
|
|
85
|
-
"@cohub/core": "1.1.1",
|
|
86
85
|
"@cohub/protocol": "2.0.0"
|
|
87
86
|
},
|
|
88
87
|
"peerDependencies": {
|
package/dist/board/codec.d.ts
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { BoardConnectionRecord } from "../protocol/dist/board-connection.js";
|
|
2
|
-
import { BoardManifest, BoardNodeInput, BoardNodeRecord, BoardRecord, InvalidBoardFileError, isBoardPath, parseBoardManifest, serializeBoardManifest } from "../protocol/dist/board.js";
|
|
3
|
-
import "../protocol/dist/index.js";
|
|
4
|
-
import { BoardAppearance, BoardDocument, BoardItem } from "../protocol/dist/board-document.js";
|
|
5
|
-
//#region src/board/codec.d.ts
|
|
6
|
-
declare const DEFAULT_BOARD_APPEARANCE: BoardAppearance;
|
|
7
|
-
declare const ITEM_BASE_KEYS: readonly ["id", "type", "frame", "locked", "style", "metadata"];
|
|
8
|
-
/**
|
|
9
|
-
* Original wire data follows an item through immutable object spreads while
|
|
10
|
-
* remaining invisible to JSON serialization. Codecs can then patch only the
|
|
11
|
-
* fields this client understands instead of rebuilding and truncating a node.
|
|
12
|
-
*/
|
|
13
|
-
declare const BOARD_NODE_SOURCE: unique symbol;
|
|
14
|
-
type WireBackedBoardItem = BoardItem & {
|
|
15
|
-
[BOARD_NODE_SOURCE]?: BoardNodeInput;
|
|
16
|
-
};
|
|
17
|
-
declare function nodeInputFromRecord(node: BoardNodeRecord): BoardNodeInput;
|
|
18
|
-
declare function sourceForItem(item: BoardItem): BoardNodeInput | undefined;
|
|
19
|
-
declare function isRecord(value: unknown): value is Record<string, unknown>;
|
|
20
|
-
declare function boardNodeToItem(node: BoardNodeRecord): BoardItem;
|
|
21
|
-
declare function boardBootstrapToDocument(input: {
|
|
22
|
-
board: BoardRecord;
|
|
23
|
-
nodes: BoardNodeRecord[];
|
|
24
|
-
connections?: BoardConnectionRecord[];
|
|
25
|
-
}): BoardDocument;
|
|
26
|
-
//#endregion
|
|
27
|
-
export { BOARD_NODE_SOURCE, type BoardManifest, type BoardNodeRecord, type BoardRecord, DEFAULT_BOARD_APPEARANCE, ITEM_BASE_KEYS, InvalidBoardFileError, WireBackedBoardItem, boardBootstrapToDocument, boardNodeToItem, isBoardPath, isRecord, nodeInputFromRecord, parseBoardManifest, serializeBoardManifest, sourceForItem };
|
package/dist/board/codec.js
DELETED
|
@@ -1,277 +0,0 @@
|
|
|
1
|
-
import { BOARD_DOCUMENT_KIND, InvalidBoardFileError, isBoardPath, parseBoardManifest, serializeBoardManifest } from "../protocol/dist/board.js";
|
|
2
|
-
import { BoardAppearanceSchema, BoardFileSnapshotSchema, BoardTaskSnapshotSchema, UNKNOWN_BOARD_ITEM_TYPE, parseBoardDocument } from "../protocol/dist/board-document.js";
|
|
3
|
-
import "../protocol/dist/index.js";
|
|
4
|
-
import { TEXT_FONT_SIZE, clampBoardTextFontSize } from "./core/text-metrics.js";
|
|
5
|
-
//#region src/board/codec.ts
|
|
6
|
-
const DEFAULT_BOARD_APPEARANCE = BoardAppearanceSchema.parse({
|
|
7
|
-
theme: "clean",
|
|
8
|
-
background: { kind: "solid" },
|
|
9
|
-
grid: {
|
|
10
|
-
visible: false,
|
|
11
|
-
size: 24,
|
|
12
|
-
opacity: .12
|
|
13
|
-
},
|
|
14
|
-
mood: "clean"
|
|
15
|
-
});
|
|
16
|
-
const ITEM_BASE_KEYS = [
|
|
17
|
-
"id",
|
|
18
|
-
"type",
|
|
19
|
-
"frame",
|
|
20
|
-
"locked",
|
|
21
|
-
"style",
|
|
22
|
-
"metadata"
|
|
23
|
-
];
|
|
24
|
-
/**
|
|
25
|
-
* Original wire data follows an item through immutable object spreads while
|
|
26
|
-
* remaining invisible to JSON serialization. Codecs can then patch only the
|
|
27
|
-
* fields this client understands instead of rebuilding and truncating a node.
|
|
28
|
-
*/
|
|
29
|
-
const BOARD_NODE_SOURCE = Symbol("board-node-source");
|
|
30
|
-
function nodeInputFromRecord(node) {
|
|
31
|
-
return {
|
|
32
|
-
nodeId: node.nodeId,
|
|
33
|
-
type: node.type,
|
|
34
|
-
parentId: node.parentId ?? null,
|
|
35
|
-
orderKey: node.orderKey ?? null,
|
|
36
|
-
x: node.x,
|
|
37
|
-
y: node.y,
|
|
38
|
-
width: node.width,
|
|
39
|
-
height: node.height,
|
|
40
|
-
rotation: node.rotation,
|
|
41
|
-
refKind: node.refKind ?? null,
|
|
42
|
-
refPath: node.refPath ?? null,
|
|
43
|
-
refUrl: node.refUrl ?? null,
|
|
44
|
-
view: node.view ?? {},
|
|
45
|
-
style: node.style ?? {},
|
|
46
|
-
data: node.data ?? {}
|
|
47
|
-
};
|
|
48
|
-
}
|
|
49
|
-
function sourceForItem(item) {
|
|
50
|
-
return item[BOARD_NODE_SOURCE];
|
|
51
|
-
}
|
|
52
|
-
function isRecord(value) {
|
|
53
|
-
return Boolean(value && typeof value === "object" && !Array.isArray(value));
|
|
54
|
-
}
|
|
55
|
-
function frameFromNode(node) {
|
|
56
|
-
return {
|
|
57
|
-
x: node.x,
|
|
58
|
-
y: node.y,
|
|
59
|
-
width: node.width,
|
|
60
|
-
height: node.height,
|
|
61
|
-
rotation: node.rotation
|
|
62
|
-
};
|
|
63
|
-
}
|
|
64
|
-
function lockedFromData(data) {
|
|
65
|
-
return data.locked === true ? true : void 0;
|
|
66
|
-
}
|
|
67
|
-
function styleFromNode(node) {
|
|
68
|
-
return Object.keys(node.style ?? {}).length ? node.style : void 0;
|
|
69
|
-
}
|
|
70
|
-
function spaceFilePathFromNode(node) {
|
|
71
|
-
if (node.refKind === "space_file" && node.refPath) return node.refPath;
|
|
72
|
-
if (typeof node.refPath === "string" && node.refPath) return node.refPath;
|
|
73
|
-
return null;
|
|
74
|
-
}
|
|
75
|
-
/** Read a stored world point, defaulting to the origin when absent. */
|
|
76
|
-
function pointFromData(value) {
|
|
77
|
-
if (isRecord(value) && typeof value.x === "number" && typeof value.y === "number") return {
|
|
78
|
-
x: value.x,
|
|
79
|
-
y: value.y
|
|
80
|
-
};
|
|
81
|
-
return {
|
|
82
|
-
x: 0,
|
|
83
|
-
y: 0
|
|
84
|
-
};
|
|
85
|
-
}
|
|
86
|
-
function unknownItemFromNode(node, frame, style, locked, data) {
|
|
87
|
-
const raw = {
|
|
88
|
-
...data,
|
|
89
|
-
id: node.nodeId,
|
|
90
|
-
type: node.type,
|
|
91
|
-
frame
|
|
92
|
-
};
|
|
93
|
-
if (style) raw.style = style;
|
|
94
|
-
if (locked) raw.locked = true;
|
|
95
|
-
return {
|
|
96
|
-
id: node.nodeId,
|
|
97
|
-
type: UNKNOWN_BOARD_ITEM_TYPE,
|
|
98
|
-
frame,
|
|
99
|
-
...locked ? { locked } : {},
|
|
100
|
-
style,
|
|
101
|
-
raw
|
|
102
|
-
};
|
|
103
|
-
}
|
|
104
|
-
function boardNodeToItemValue(node) {
|
|
105
|
-
const frame = frameFromNode(node);
|
|
106
|
-
const style = styleFromNode(node);
|
|
107
|
-
const data = node.data ?? {};
|
|
108
|
-
const locked = lockedFromData(data);
|
|
109
|
-
switch (node.type) {
|
|
110
|
-
case "text": return {
|
|
111
|
-
id: node.nodeId,
|
|
112
|
-
type: "text",
|
|
113
|
-
text: typeof data.text === "string" ? data.text : "",
|
|
114
|
-
color: typeof data.color === "string" ? data.color : "neutral",
|
|
115
|
-
fontSize: clampBoardTextFontSize(typeof data.fontSize === "number" ? data.fontSize : TEXT_FONT_SIZE),
|
|
116
|
-
frame,
|
|
117
|
-
...locked ? { locked } : {},
|
|
118
|
-
style
|
|
119
|
-
};
|
|
120
|
-
case "geo": return {
|
|
121
|
-
id: node.nodeId,
|
|
122
|
-
type: "geo",
|
|
123
|
-
geo: typeof data.geo === "string" ? data.geo : "rectangle",
|
|
124
|
-
text: typeof data.text === "string" ? data.text : "",
|
|
125
|
-
color: typeof data.color === "string" ? data.color : "brand",
|
|
126
|
-
fillOpacity: typeof data.fillOpacity === "number" ? data.fillOpacity : 0,
|
|
127
|
-
frame,
|
|
128
|
-
...locked ? { locked } : {},
|
|
129
|
-
style
|
|
130
|
-
};
|
|
131
|
-
case "draw": return {
|
|
132
|
-
id: node.nodeId,
|
|
133
|
-
type: "draw",
|
|
134
|
-
points: Array.isArray(data.points) ? data.points : [],
|
|
135
|
-
color: typeof data.color === "string" ? data.color : "brand",
|
|
136
|
-
size: typeof data.size === "number" ? data.size : 4,
|
|
137
|
-
frame,
|
|
138
|
-
...locked ? { locked } : {},
|
|
139
|
-
style
|
|
140
|
-
};
|
|
141
|
-
case "arrow": return {
|
|
142
|
-
id: node.nodeId,
|
|
143
|
-
type: "arrow",
|
|
144
|
-
start: pointFromData(data.start),
|
|
145
|
-
end: pointFromData(data.end),
|
|
146
|
-
bend: typeof data.bend === "number" ? data.bend : 0,
|
|
147
|
-
color: typeof data.color === "string" ? data.color : "brand",
|
|
148
|
-
size: typeof data.size === "number" ? data.size : 2.5,
|
|
149
|
-
arrowStart: Boolean(data.arrowStart),
|
|
150
|
-
arrowEnd: data.arrowEnd === void 0 ? true : Boolean(data.arrowEnd),
|
|
151
|
-
label: typeof data.label === "string" ? data.label : "",
|
|
152
|
-
frame,
|
|
153
|
-
...locked ? { locked } : {},
|
|
154
|
-
style
|
|
155
|
-
};
|
|
156
|
-
case "frame": return {
|
|
157
|
-
id: node.nodeId,
|
|
158
|
-
type: "frame",
|
|
159
|
-
label: typeof data.label === "string" ? data.label : "Frame",
|
|
160
|
-
color: typeof data.color === "string" ? data.color : "neutral",
|
|
161
|
-
frame,
|
|
162
|
-
...locked ? { locked } : {},
|
|
163
|
-
style
|
|
164
|
-
};
|
|
165
|
-
case "image": {
|
|
166
|
-
const path = spaceFilePathFromNode(node) ?? "missing";
|
|
167
|
-
return {
|
|
168
|
-
id: node.nodeId,
|
|
169
|
-
type: "image",
|
|
170
|
-
ref: {
|
|
171
|
-
kind: "space-file",
|
|
172
|
-
path
|
|
173
|
-
},
|
|
174
|
-
snapshot: node.view,
|
|
175
|
-
...data.crop && typeof data.crop === "object" ? { crop: data.crop } : {},
|
|
176
|
-
frame,
|
|
177
|
-
...locked ? { locked } : {},
|
|
178
|
-
style
|
|
179
|
-
};
|
|
180
|
-
}
|
|
181
|
-
case "video": {
|
|
182
|
-
const path = spaceFilePathFromNode(node) ?? "missing";
|
|
183
|
-
return {
|
|
184
|
-
id: node.nodeId,
|
|
185
|
-
type: "video",
|
|
186
|
-
ref: {
|
|
187
|
-
kind: "space-file",
|
|
188
|
-
path
|
|
189
|
-
},
|
|
190
|
-
snapshot: node.view,
|
|
191
|
-
frame,
|
|
192
|
-
...locked ? { locked } : {},
|
|
193
|
-
style
|
|
194
|
-
};
|
|
195
|
-
}
|
|
196
|
-
case "audio": {
|
|
197
|
-
const path = spaceFilePathFromNode(node) ?? "missing";
|
|
198
|
-
return {
|
|
199
|
-
id: node.nodeId,
|
|
200
|
-
type: "audio",
|
|
201
|
-
ref: {
|
|
202
|
-
kind: "space-file",
|
|
203
|
-
path
|
|
204
|
-
},
|
|
205
|
-
snapshot: node.view,
|
|
206
|
-
frame,
|
|
207
|
-
...locked ? { locked } : {},
|
|
208
|
-
style
|
|
209
|
-
};
|
|
210
|
-
}
|
|
211
|
-
case "file": {
|
|
212
|
-
const path = spaceFilePathFromNode(node) ?? "missing";
|
|
213
|
-
const parsed = BoardFileSnapshotSchema.safeParse(node.view ?? {});
|
|
214
|
-
return {
|
|
215
|
-
id: node.nodeId,
|
|
216
|
-
type: "file",
|
|
217
|
-
ref: {
|
|
218
|
-
kind: "space-file",
|
|
219
|
-
path
|
|
220
|
-
},
|
|
221
|
-
...parsed.success ? { snapshot: parsed.data } : {},
|
|
222
|
-
frame,
|
|
223
|
-
...locked ? { locked } : {},
|
|
224
|
-
style
|
|
225
|
-
};
|
|
226
|
-
}
|
|
227
|
-
case "task": {
|
|
228
|
-
const parsed = BoardTaskSnapshotSchema.safeParse(node.view ?? {});
|
|
229
|
-
if (parsed.success && typeof data.taskRunId === "string") return {
|
|
230
|
-
id: node.nodeId,
|
|
231
|
-
type: "task",
|
|
232
|
-
taskRunId: data.taskRunId,
|
|
233
|
-
snapshot: parsed.data,
|
|
234
|
-
frame,
|
|
235
|
-
...locked ? { locked } : {},
|
|
236
|
-
style
|
|
237
|
-
};
|
|
238
|
-
return unknownItemFromNode(node, frame, style, locked, data);
|
|
239
|
-
}
|
|
240
|
-
default: return unknownItemFromNode(node, frame, style, locked, data);
|
|
241
|
-
}
|
|
242
|
-
}
|
|
243
|
-
function boardNodeToItem(node) {
|
|
244
|
-
const item = boardNodeToItemValue(node);
|
|
245
|
-
const metadata = isRecord(node.data?.metadata) ? node.data.metadata : void 0;
|
|
246
|
-
return {
|
|
247
|
-
...item,
|
|
248
|
-
...metadata ? { metadata } : {},
|
|
249
|
-
[BOARD_NODE_SOURCE]: nodeInputFromRecord(node)
|
|
250
|
-
};
|
|
251
|
-
}
|
|
252
|
-
function boardBootstrapToDocument(input) {
|
|
253
|
-
const appearance = BoardAppearanceSchema.safeParse(input.board.metadata.appearance);
|
|
254
|
-
const connections = (input.connections ?? []).map(({ boardId: _boardId, revision: _revision, createdAt: _createdAt, updatedAt: _updatedAt, ...connection }) => connection);
|
|
255
|
-
const document = parseBoardDocument({
|
|
256
|
-
kind: BOARD_DOCUMENT_KIND,
|
|
257
|
-
version: 1,
|
|
258
|
-
appearance: appearance.success ? appearance.data : DEFAULT_BOARD_APPEARANCE,
|
|
259
|
-
viewport: {
|
|
260
|
-
x: 0,
|
|
261
|
-
y: 0,
|
|
262
|
-
zoom: 1
|
|
263
|
-
},
|
|
264
|
-
items: input.nodes.map(boardNodeToItem),
|
|
265
|
-
connections
|
|
266
|
-
});
|
|
267
|
-
const sources = new Map(input.nodes.map((node) => [node.nodeId, nodeInputFromRecord(node)]));
|
|
268
|
-
return {
|
|
269
|
-
...document,
|
|
270
|
-
items: document.items.map((item) => ({
|
|
271
|
-
...item,
|
|
272
|
-
[BOARD_NODE_SOURCE]: sources.get(item.id)
|
|
273
|
-
}))
|
|
274
|
-
};
|
|
275
|
-
}
|
|
276
|
-
//#endregion
|
|
277
|
-
export { BOARD_NODE_SOURCE, DEFAULT_BOARD_APPEARANCE, ITEM_BASE_KEYS, InvalidBoardFileError, boardBootstrapToDocument, boardNodeToItem, isBoardPath, isRecord, nodeInputFromRecord, parseBoardManifest, serializeBoardManifest, sourceForItem };
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { z } from "zod";
|
|
2
|
-
//#region ../protocol/dist/board-content.js
|
|
3
|
-
const BOARD_CONTENT_KINDS = [
|
|
4
|
-
"text",
|
|
5
|
-
"image",
|
|
6
|
-
"video",
|
|
7
|
-
"audio",
|
|
8
|
-
"file",
|
|
9
|
-
"json",
|
|
10
|
-
"collection"
|
|
11
|
-
];
|
|
12
|
-
const BoardContentKindSchema = z.enum(BOARD_CONTENT_KINDS);
|
|
13
|
-
const BoardPortSchema = z.object({
|
|
14
|
-
id: z.string().min(1).max(120),
|
|
15
|
-
kind: BoardContentKindSchema,
|
|
16
|
-
role: z.string().min(1).max(80).optional(),
|
|
17
|
-
required: z.boolean().optional(),
|
|
18
|
-
multiple: z.boolean().optional(),
|
|
19
|
-
maxItems: z.number().int().positive().optional()
|
|
20
|
-
}).strict();
|
|
21
|
-
z.object({
|
|
22
|
-
inputs: z.array(BoardPortSchema),
|
|
23
|
-
outputs: z.array(BoardPortSchema)
|
|
24
|
-
}).strict();
|
|
25
|
-
//#endregion
|
|
26
|
-
export { BOARD_CONTENT_KINDS, BoardContentKindSchema, BoardPortSchema };
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
//#region ../protocol/dist/identifiers.js
|
|
2
|
-
const UUID_SHAPE_PATTERN = "[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}";
|
|
3
|
-
const UUID_PATTERN = "[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}";
|
|
4
|
-
const SHORT_UUID_PATTERN = "[0-9a-fA-F]{32}";
|
|
5
|
-
const UUID_OR_SHORT_UUID_PATTERN = `^(?:${UUID_PATTERN}|${SHORT_UUID_PATTERN})$`;
|
|
6
|
-
new RegExp(`^${UUID_SHAPE_PATTERN}$`);
|
|
7
|
-
new RegExp(`^${UUID_PATTERN}$`);
|
|
8
|
-
new RegExp(UUID_OR_SHORT_UUID_PATTERN);
|
|
9
|
-
//#endregion
|
|
10
|
-
export { SHORT_UUID_PATTERN, UUID_OR_SHORT_UUID_PATTERN, UUID_PATTERN, UUID_SHAPE_PATTERN };
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { BOARD_BUILTIN_CAPABILITIES, DEFAULT_BOARD_RENDER_LIMITS } from "./board-constants.js";
|
|
2
|
-
import { AUTO_BOARD_CONNECTION_ANCHOR, BOARD_CONNECTION_DIRECTIONS, BOARD_CONNECTION_LINES, BOARD_CONNECTION_ROUTINGS, BOARD_CONNECTION_SIDES, BoardConnectionAnchorSchema, BoardConnectionEndpointSchema, BoardConnectionPatchSchema, BoardConnectionRoutingSchema, BoardConnectionSchema, BoardConnectionStyleSchema, BoardConnectionWaypointSchema, BoardRelationSchema, DEFAULT_BOARD_CONNECTION_ROUTING, DEFAULT_BOARD_CONNECTION_STYLE, DEFAULT_BOARD_RELATION, connectionNodeIds, connectionOtherNodeId, connectionTouchesNode, createBoardConnection, flipBoardConnection, normalizeBoardConnectionStyle } from "./board-connection.js";
|
|
3
|
-
import { BOARD_ANIMATION_CHANNELS, BOARD_EASINGS, BoardAnimationTargetSchema, BoardCompositionInputSchema, BoardCompositionPlaybackSchema, BoardCompositionSchema, BoardEasingSchema, BoardProceduralClipSchema, BoardTimelineMarkerSchema, BoardTimelineSchema, BoardTrackSchema, parseBoardCompositionInput } from "./board-composition.js";
|
|
4
|
-
import { BoardArrowAuthoringItemSchema, BoardAudioAuthoringItemSchema, BoardAuthoringItemSchema, BoardBuiltinAuthoringItemSchema, BoardDrawAuthoringItemSchema, BoardExtensionAuthoringItemSchema, BoardFileAuthoringItemSchema, BoardFrameAuthoringItemSchema, BoardGeoAuthoringItemSchema, BoardImageAuthoringItemSchema, BoardItemPatchSchema, BoardItemSourceSchema, BoardItemStyleSchema, BoardSemanticCommandSchema, BoardTaskAuthoringItemSchema, BoardTextAuthoringItemSchema, BoardVideoAuthoringItemSchema, isSafeBoardSourcePath } from "./board-authoring.js";
|
|
5
|
-
import { BOARD_DOCUMENT_KIND, BOARD_EXTENSION, BOARD_MANIFEST_KIND, BoardAssetRefSchema, BoardCameraFocusParamsSchema, BoardCameraFocusSchema, BoardCameraStateSchema, BoardEffectSchema, BoardManifestSchema, InvalidBoardFileError, isBoardPath, parseBoardManifest, serializeBoardManifest } from "./board.js";
|
|
6
|
-
import { estimateBuiltinBoardClipCost, validateBuiltinBoardClip } from "./board-capability-registry.js";
|
|
7
|
-
import { BOARD_COLOR_IDS, BOARD_GEO_KINDS, BOARD_NATIVE_NODE_TYPES, BoardColorIdSchema, BoardGeoKindSchema } from "./board-node.js";
|
|
8
|
-
import "./board-codec.js";
|
|
9
|
-
import { BOARD_CONTENT_KINDS, BoardContentKindSchema, BoardPortSchema } from "./board-content.js";
|
|
10
|
-
import "./board-upgrade.js";
|
|
11
|
-
import { BoardAwarenessDrawPointSchema, BoardAwarenessFrameSchema, BoardAwarenessGestureSchema, BoardAwarenessNodePreviewSchema, BoardAwarenessPointSchema, BoardAwarenessStateUpdateSchema, BoardAwarenessUpdateSchema } from "./realtime/board-awareness.js";
|
|
12
|
-
import { SHORT_UUID_PATTERN, UUID_OR_SHORT_UUID_PATTERN, UUID_PATTERN, UUID_SHAPE_PATTERN } from "./identifiers.js";
|
|
13
|
-
import { COHUB_SOURCE_HEADER } from "./provenance.js";
|
|
14
|
-
import { RESERVED_PLATFORM_PATH_SEGMENTS } from "./public-identifiers.js";
|
|
15
|
-
import "./ui-command.js";
|
|
16
|
-
import "./work-surface.js";
|
|
17
|
-
import "./work-view-stats.js";
|
|
18
|
-
import { WORK_PROMOTION_EVENT_KEYS } from "./work-promotion-stats.js";
|
|
19
|
-
export { AUTO_BOARD_CONNECTION_ANCHOR, BOARD_ANIMATION_CHANNELS, BOARD_BUILTIN_CAPABILITIES, BOARD_COLOR_IDS, BOARD_CONNECTION_DIRECTIONS, BOARD_CONNECTION_LINES, BOARD_CONNECTION_ROUTINGS, BOARD_CONNECTION_SIDES, BOARD_CONTENT_KINDS, BOARD_DOCUMENT_KIND, BOARD_EASINGS, BOARD_EXTENSION, BOARD_GEO_KINDS, BOARD_MANIFEST_KIND, BOARD_NATIVE_NODE_TYPES, BoardAnimationTargetSchema, BoardArrowAuthoringItemSchema, BoardAssetRefSchema, BoardAudioAuthoringItemSchema, BoardAuthoringItemSchema, BoardAwarenessDrawPointSchema, BoardAwarenessFrameSchema, BoardAwarenessGestureSchema, BoardAwarenessNodePreviewSchema, BoardAwarenessPointSchema, BoardAwarenessStateUpdateSchema, BoardAwarenessUpdateSchema, BoardBuiltinAuthoringItemSchema, BoardCameraFocusParamsSchema, BoardCameraFocusSchema, BoardCameraStateSchema, BoardColorIdSchema, BoardCompositionInputSchema, BoardCompositionPlaybackSchema, BoardCompositionSchema, BoardConnectionAnchorSchema, BoardConnectionEndpointSchema, BoardConnectionPatchSchema, BoardConnectionRoutingSchema, BoardConnectionSchema, BoardConnectionStyleSchema, BoardConnectionWaypointSchema, BoardContentKindSchema, BoardDrawAuthoringItemSchema, BoardEasingSchema, BoardEffectSchema, BoardExtensionAuthoringItemSchema, BoardFileAuthoringItemSchema, BoardFrameAuthoringItemSchema, BoardGeoAuthoringItemSchema, BoardGeoKindSchema, BoardImageAuthoringItemSchema, BoardItemPatchSchema, BoardItemSourceSchema, BoardItemStyleSchema, BoardManifestSchema, BoardPortSchema, BoardProceduralClipSchema, BoardRelationSchema, BoardSemanticCommandSchema, BoardTaskAuthoringItemSchema, BoardTextAuthoringItemSchema, BoardTimelineMarkerSchema, BoardTimelineSchema, BoardTrackSchema, BoardVideoAuthoringItemSchema, COHUB_SOURCE_HEADER, DEFAULT_BOARD_CONNECTION_ROUTING, DEFAULT_BOARD_CONNECTION_STYLE, DEFAULT_BOARD_RELATION, DEFAULT_BOARD_RENDER_LIMITS, InvalidBoardFileError, RESERVED_PLATFORM_PATH_SEGMENTS, SHORT_UUID_PATTERN, UUID_OR_SHORT_UUID_PATTERN, UUID_PATTERN, UUID_SHAPE_PATTERN, WORK_PROMOTION_EVENT_KEYS, connectionNodeIds, connectionOtherNodeId, connectionTouchesNode, createBoardConnection, estimateBuiltinBoardClipCost, flipBoardConnection, isBoardPath, isSafeBoardSourcePath, normalizeBoardConnectionStyle, parseBoardCompositionInput, parseBoardManifest, serializeBoardManifest, validateBuiltinBoardClip };
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import "./identifiers.js";
|
|
2
|
-
//#region ../protocol/dist/provenance.js
|
|
3
|
-
/** Request provenance via X-Cohub-Source-* headers. Never used for authorization. */
|
|
4
|
-
const COHUB_SOURCE_HEADER = {
|
|
5
|
-
space: "X-Cohub-Source-Space",
|
|
6
|
-
session: "X-Cohub-Source-Session",
|
|
7
|
-
turn: "X-Cohub-Source-Turn",
|
|
8
|
-
toolCall: "X-Cohub-Source-Tool-Call",
|
|
9
|
-
client: "X-Cohub-Source-Client",
|
|
10
|
-
sandboxVersion: "X-Cohub-Source-Sandbox",
|
|
11
|
-
via: "X-Cohub-Source-Via"
|
|
12
|
-
};
|
|
13
|
-
Object.values(COHUB_SOURCE_HEADER);
|
|
14
|
-
//#endregion
|
|
15
|
-
export { COHUB_SOURCE_HEADER };
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
//#region ../protocol/dist/public-identifiers.js
|
|
2
|
-
/**
|
|
3
|
-
* Platform-owned path segments that must not be newly assigned to public
|
|
4
|
-
* identities. Existing stored values remain readable through parse helpers.
|
|
5
|
-
*/
|
|
6
|
-
const RESERVED_PLATFORM_PATH_SEGMENTS = Object.freeze([
|
|
7
|
-
"admin",
|
|
8
|
-
"api",
|
|
9
|
-
"assets",
|
|
10
|
-
"auth",
|
|
11
|
-
"callback",
|
|
12
|
-
"changelog",
|
|
13
|
-
"docs",
|
|
14
|
-
"explore",
|
|
15
|
-
"invite",
|
|
16
|
-
"landing",
|
|
17
|
-
"login",
|
|
18
|
-
"logout",
|
|
19
|
-
"new",
|
|
20
|
-
"org",
|
|
21
|
-
"pricing",
|
|
22
|
-
"pwa",
|
|
23
|
-
"referrals",
|
|
24
|
-
"sessions",
|
|
25
|
-
"settings",
|
|
26
|
-
"spaces",
|
|
27
|
-
"static",
|
|
28
|
-
"teams",
|
|
29
|
-
"trending",
|
|
30
|
-
"u",
|
|
31
|
-
"user",
|
|
32
|
-
"users",
|
|
33
|
-
"work-auth"
|
|
34
|
-
]);
|
|
35
|
-
new Set(RESERVED_PLATFORM_PATH_SEGMENTS);
|
|
36
|
-
[...RESERVED_PLATFORM_PATH_SEGMENTS];
|
|
37
|
-
//#endregion
|
|
38
|
-
export { RESERVED_PLATFORM_PATH_SEGMENTS };
|