@hello-ai-company/editor-core 0.1.0 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/pageLink.d.ts +17 -0
- package/dist/pageLink.d.ts.map +1 -0
- package/dist/pageLink.js +35 -0
- package/dist/pageLink.js.map +1 -0
- package/dist/providers.d.ts +159 -5
- package/dist/providers.d.ts.map +1 -1
- package/dist/relations.d.ts +75 -0
- package/dist/relations.d.ts.map +1 -0
- package/dist/relations.js +37 -0
- package/dist/relations.js.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -12,11 +12,11 @@ npm install @hello-ai-company/editor-core
|
|
|
12
12
|
|
|
13
13
|
Requirements: Node.js `>=20`, ESM. No runtime dependencies. No CommonJS export.
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
Published `@hello-ai-company/editor-core@0.1.0` on npmjs is **immutable**. Workspace candidate is `0.1.1` (published from **main** after merge — not from this draft PR). Pack the candidate:
|
|
16
16
|
|
|
17
17
|
```bash
|
|
18
18
|
npm pack -w @hello-ai-company/editor-core
|
|
19
|
-
npm install ./hello-ai-company-editor-core-0.1.
|
|
19
|
+
npm install ./hello-ai-company-editor-core-0.1.1.tgz
|
|
20
20
|
```
|
|
21
21
|
|
|
22
22
|
## Quickstart
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
export { EDITOR_DOCUMENT_SCHEMA_VERSION, cloneEditorBlock, cloneEditorBlocks, createEditorDocument, isEditorBlock, isEditorDocument, isJsonValue, isSupportedSchemaVersion, type EditorBlock, type EditorBlockProps, type EditorDocument, type JsonValue } from "./model.js";
|
|
2
2
|
export { EditorDocumentSerializationError, deserializeEditorDocument, fromSerializedEditorDocument, serializeEditorDocument, toSerializedEditorDocument, type SerializedEditorDocument } from "./serialization.js";
|
|
3
|
-
export
|
|
3
|
+
export { PAGE_HREF_PREFIX, decodePageHref, encodePageHref, isPageHref } from "./pageLink.js";
|
|
4
|
+
export { relationEdgeId, withRelationEdgeId, type RelationEdge, type RelationKind, type RelationTargetQuery, type RelationTargetType } from "./relations.js";
|
|
5
|
+
export type { AIEditAction, AIEditRequest, AIProvider, AssetProvider, AssetUploadScope, BacklinkProvider, BacklinkQuery, BacklinkItem, CommentsProvider, CreateChildPageOptions, CreatePageOptions, CreatedChildPage, DatabaseFilter, DatabaseListOptions, DatabasePropertyDefinition, DatabasePropertyOption, DatabasePropertySort, DatabasePropertyType, DatabaseProvider, DatabaseQueryCapabilities, DatabaseRowItem, DatabaseRowsPage, EditorAsset, EditorAssetKind, EditorComment, EditorDatabase, EditorPageLink, EditorProviders, EditorUploadFile, EditorVersionSnapshot, ImageSearchProvider, ImageSearchResult, NativeBridge, NativeBridgeStats, NativeHostRequest, NativeHostResponse, PageId, PageProvider, PageSearchOptions, VersionProvider } from "./providers.js";
|
|
4
6
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,8BAA8B,EAC9B,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,EACpB,aAAa,EACb,gBAAgB,EAChB,WAAW,EACX,wBAAwB,EACxB,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,SAAS,EACf,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,gCAAgC,EAChC,yBAAyB,EACzB,4BAA4B,EAC5B,uBAAuB,EACvB,0BAA0B,EAC1B,KAAK,wBAAwB,EAC9B,MAAM,oBAAoB,CAAC;AAE5B,YAAY,EACV,YAAY,EACZ,aAAa,EACb,UAAU,EACV,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,WAAW,EACX,eAAe,EACf,aAAa,EACb,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,qBAAqB,EACrB,mBAAmB,EACnB,iBAAiB,EACjB,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,YAAY,EACZ,eAAe,EAChB,MAAM,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,8BAA8B,EAC9B,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,EACpB,aAAa,EACb,gBAAgB,EAChB,WAAW,EACX,wBAAwB,EACxB,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,SAAS,EACf,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,gCAAgC,EAChC,yBAAyB,EACzB,4BAA4B,EAC5B,uBAAuB,EACvB,0BAA0B,EAC1B,KAAK,wBAAwB,EAC9B,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,UAAU,EACX,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACxB,MAAM,gBAAgB,CAAC;AAExB,YAAY,EACV,YAAY,EACZ,aAAa,EACb,UAAU,EACV,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,sBAAsB,EACtB,iBAAiB,EACjB,gBAAgB,EAChB,cAAc,EACd,mBAAmB,EACnB,0BAA0B,EAC1B,sBAAsB,EACtB,oBAAoB,EACpB,oBAAoB,EACpB,gBAAgB,EAChB,yBAAyB,EACzB,eAAe,EACf,gBAAgB,EAChB,WAAW,EACX,eAAe,EACf,aAAa,EACb,cAAc,EACd,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,qBAAqB,EACrB,mBAAmB,EACnB,iBAAiB,EACjB,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,MAAM,EACN,YAAY,EACZ,iBAAiB,EACjB,eAAe,EAChB,MAAM,gBAAgB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
export { EDITOR_DOCUMENT_SCHEMA_VERSION, cloneEditorBlock, cloneEditorBlocks, createEditorDocument, isEditorBlock, isEditorDocument, isJsonValue, isSupportedSchemaVersion } from "./model.js";
|
|
2
2
|
export { EditorDocumentSerializationError, deserializeEditorDocument, fromSerializedEditorDocument, serializeEditorDocument, toSerializedEditorDocument } from "./serialization.js";
|
|
3
|
+
export { PAGE_HREF_PREFIX, decodePageHref, encodePageHref, isPageHref } from "./pageLink.js";
|
|
4
|
+
export { relationEdgeId, withRelationEdgeId } from "./relations.js";
|
|
3
5
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,8BAA8B,EAC9B,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,EACpB,aAAa,EACb,gBAAgB,EAChB,WAAW,EACX,wBAAwB,EAKzB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,gCAAgC,EAChC,yBAAyB,EACzB,4BAA4B,EAC5B,uBAAuB,EACvB,0BAA0B,EAE3B,MAAM,oBAAoB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,8BAA8B,EAC9B,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,EACpB,aAAa,EACb,gBAAgB,EAChB,WAAW,EACX,wBAAwB,EAKzB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,gCAAgC,EAChC,yBAAyB,EACzB,4BAA4B,EAC5B,uBAAuB,EACvB,0BAA0B,EAE3B,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,UAAU,EACX,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,cAAc,EACd,kBAAkB,EAKnB,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Host-neutral page reference codec.
|
|
3
|
+
*
|
|
4
|
+
* Supports a portable `#page:<encoded-id>` token for hosts that need an
|
|
5
|
+
* href-style representation. Not bound to browser hash navigation — hosts may
|
|
6
|
+
* use the opaque page id directly.
|
|
7
|
+
*/
|
|
8
|
+
export declare const PAGE_HREF_PREFIX: "#page:";
|
|
9
|
+
/** Encode a stable page id into a portable href-style token. */
|
|
10
|
+
export declare function encodePageHref(pageId: string): string;
|
|
11
|
+
/**
|
|
12
|
+
* Decode a page id from an href-style token.
|
|
13
|
+
* Returns null for malformed / non-page hrefs.
|
|
14
|
+
*/
|
|
15
|
+
export declare function decodePageHref(href: string): string | null;
|
|
16
|
+
export declare function isPageHref(href: string): boolean;
|
|
17
|
+
//# sourceMappingURL=pageLink.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pageLink.d.ts","sourceRoot":"","sources":["../src/pageLink.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,eAAO,MAAM,gBAAgB,EAAG,QAAiB,CAAC;AAElD,gEAAgE;AAChE,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAErD;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAY1D;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEhD"}
|
package/dist/pageLink.js
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Host-neutral page reference codec.
|
|
3
|
+
*
|
|
4
|
+
* Supports a portable `#page:<encoded-id>` token for hosts that need an
|
|
5
|
+
* href-style representation. Not bound to browser hash navigation — hosts may
|
|
6
|
+
* use the opaque page id directly.
|
|
7
|
+
*/
|
|
8
|
+
export const PAGE_HREF_PREFIX = "#page:";
|
|
9
|
+
/** Encode a stable page id into a portable href-style token. */
|
|
10
|
+
export function encodePageHref(pageId) {
|
|
11
|
+
return `${PAGE_HREF_PREFIX}${encodeURIComponent(pageId)}`;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Decode a page id from an href-style token.
|
|
15
|
+
* Returns null for malformed / non-page hrefs.
|
|
16
|
+
*/
|
|
17
|
+
export function decodePageHref(href) {
|
|
18
|
+
if (typeof href !== "string" || !href.startsWith(PAGE_HREF_PREFIX)) {
|
|
19
|
+
return null;
|
|
20
|
+
}
|
|
21
|
+
const encoded = href.slice(PAGE_HREF_PREFIX.length);
|
|
22
|
+
if (!encoded)
|
|
23
|
+
return null;
|
|
24
|
+
try {
|
|
25
|
+
const decoded = decodeURIComponent(encoded);
|
|
26
|
+
return decoded.length > 0 ? decoded : null;
|
|
27
|
+
}
|
|
28
|
+
catch {
|
|
29
|
+
return null;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
export function isPageHref(href) {
|
|
33
|
+
return decodePageHref(href) !== null;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=pageLink.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pageLink.js","sourceRoot":"","sources":["../src/pageLink.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,CAAC,MAAM,gBAAgB,GAAG,QAAiB,CAAC;AAElD,gEAAgE;AAChE,MAAM,UAAU,cAAc,CAAC,MAAc;IAC3C,OAAO,GAAG,gBAAgB,GAAG,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC;AAC5D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACnE,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACpD,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC1B,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAC5C,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;IAC7C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,OAAO,cAAc,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC;AACvC,CAAC"}
|
package/dist/providers.d.ts
CHANGED
|
@@ -16,12 +16,92 @@ export type AIEditRequest = {
|
|
|
16
16
|
export type AIProvider = {
|
|
17
17
|
edit?(request: AIEditRequest): Promise<string>;
|
|
18
18
|
};
|
|
19
|
+
/**
|
|
20
|
+
* Portable property kinds for typed metadata (Phase 4F-3B).
|
|
21
|
+
* Unsupported host types normalize to `"unknown"` (display-only).
|
|
22
|
+
*/
|
|
23
|
+
export type DatabasePropertyType = "text" | "number" | "boolean" | "date" | "url" | "select" | "status" | "unknown";
|
|
24
|
+
export type DatabasePropertyOption = {
|
|
25
|
+
value: string;
|
|
26
|
+
label?: string;
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* Host-owned property metadata. Identity is `id` (not display `name`).
|
|
30
|
+
* Additive — legacy hosts may omit entirely and keep `schema: Record<string, string>`.
|
|
31
|
+
*/
|
|
32
|
+
export type DatabasePropertyDefinition = {
|
|
33
|
+
id: string;
|
|
34
|
+
name: string;
|
|
35
|
+
type: DatabasePropertyType;
|
|
36
|
+
readOnly?: boolean;
|
|
37
|
+
options?: readonly DatabasePropertyOption[];
|
|
38
|
+
/** Original host type when normalized to `unknown`. */
|
|
39
|
+
rawType?: string;
|
|
40
|
+
};
|
|
41
|
+
/**
|
|
42
|
+
* Explicit advertisement of advanced query features.
|
|
43
|
+
* Absence or `false` is fail-closed — do not assume `listRows` understands filters/sorts.
|
|
44
|
+
*/
|
|
45
|
+
export type DatabaseQueryCapabilities = {
|
|
46
|
+
propertyFilters?: boolean;
|
|
47
|
+
propertySort?: boolean;
|
|
48
|
+
};
|
|
49
|
+
/**
|
|
50
|
+
* AND-only structured filters (Phase 4F-3B).
|
|
51
|
+
* Discriminated by `propertyType` + `operator` so value types stay sound.
|
|
52
|
+
* No OR groups / nested boolean trees in this phase.
|
|
53
|
+
*/
|
|
54
|
+
export type DatabaseFilter = {
|
|
55
|
+
propertyId: string;
|
|
56
|
+
propertyType: "text" | "url";
|
|
57
|
+
operator: "contains" | "equals" | "notEquals";
|
|
58
|
+
value: string;
|
|
59
|
+
} | {
|
|
60
|
+
propertyId: string;
|
|
61
|
+
propertyType: "number";
|
|
62
|
+
operator: "equals" | "gt" | "gte" | "lt" | "lte";
|
|
63
|
+
value: number;
|
|
64
|
+
} | {
|
|
65
|
+
propertyId: string;
|
|
66
|
+
propertyType: "boolean";
|
|
67
|
+
operator: "is";
|
|
68
|
+
value: boolean;
|
|
69
|
+
} | {
|
|
70
|
+
propertyId: string;
|
|
71
|
+
propertyType: "date";
|
|
72
|
+
operator: "on" | "before" | "after";
|
|
73
|
+
value: string;
|
|
74
|
+
} | {
|
|
75
|
+
propertyId: string;
|
|
76
|
+
propertyType: "select" | "status";
|
|
77
|
+
operator: "equals" | "notEquals";
|
|
78
|
+
value: string;
|
|
79
|
+
} | {
|
|
80
|
+
propertyId: string;
|
|
81
|
+
propertyType: "text" | "number" | "boolean" | "date" | "url" | "select" | "status";
|
|
82
|
+
operator: "isEmpty" | "isNotEmpty";
|
|
83
|
+
};
|
|
84
|
+
/** Single property sort — mutually exclusive with legacy sortBy when set. */
|
|
85
|
+
export type DatabasePropertySort = {
|
|
86
|
+
propertyId: string;
|
|
87
|
+
direction: "asc" | "desc";
|
|
88
|
+
};
|
|
19
89
|
export type DatabaseListOptions = {
|
|
20
90
|
limit?: number;
|
|
21
91
|
cursor?: string;
|
|
92
|
+
/** Free-text search — may coexist with structured `filters` (host executes both). */
|
|
22
93
|
query?: string;
|
|
94
|
+
/**
|
|
95
|
+
* Legacy sort. When `propertySort` is set, hosts should treat property sort
|
|
96
|
+
* as the active sort and ignore a conflicting legacy claim from the client.
|
|
97
|
+
* OpenEditor's runtime sends exactly one of: propertySort XOR (sortBy+direction).
|
|
98
|
+
*/
|
|
23
99
|
sortBy?: "position" | "title";
|
|
24
100
|
direction?: "asc" | "desc";
|
|
101
|
+
/** Structured AND filters — only when host advertises `queryCapabilities.propertyFilters`. */
|
|
102
|
+
filters?: readonly DatabaseFilter[];
|
|
103
|
+
/** Property sort — only when host advertises `queryCapabilities.propertySort`. */
|
|
104
|
+
propertySort?: DatabasePropertySort;
|
|
25
105
|
includeTrashed?: boolean;
|
|
26
106
|
trashedOnly?: boolean;
|
|
27
107
|
};
|
|
@@ -44,7 +124,31 @@ export type DatabaseRowsPage = {
|
|
|
44
124
|
total: number;
|
|
45
125
|
};
|
|
46
126
|
};
|
|
127
|
+
/**
|
|
128
|
+
* Host-neutral database descriptor. Rows are never stored in EditorDocument —
|
|
129
|
+
* they come from DatabaseProvider.listRows / getRow.
|
|
130
|
+
*
|
|
131
|
+
* Phase 4F-3B adds optional typed metadata. The opaque `properties` bag is
|
|
132
|
+
* left untouched for host use — do not reinterpret it as property definitions.
|
|
133
|
+
*/
|
|
134
|
+
export type EditorDatabase = {
|
|
135
|
+
id: string;
|
|
136
|
+
title: string;
|
|
137
|
+
/** Opaque host bag — not property definitions. */
|
|
138
|
+
properties?: Record<string, JsonValue>;
|
|
139
|
+
/** Typed property metadata (additive). Identity is `propertyDefinitions[].id`. */
|
|
140
|
+
propertyDefinitions?: readonly DatabasePropertyDefinition[];
|
|
141
|
+
/** Explicit advanced query capabilities (fail-closed when absent). */
|
|
142
|
+
queryCapabilities?: DatabaseQueryCapabilities;
|
|
143
|
+
views?: ReadonlyArray<{
|
|
144
|
+
id: string;
|
|
145
|
+
title?: string;
|
|
146
|
+
viewType?: string;
|
|
147
|
+
}>;
|
|
148
|
+
};
|
|
47
149
|
export type DatabaseProvider = {
|
|
150
|
+
/** Optional metadata lookup — does not embed rows into the document. */
|
|
151
|
+
getDatabase?(databaseId: string): Promise<EditorDatabase | null>;
|
|
48
152
|
listRows?(databaseId: string, options?: DatabaseListOptions): Promise<DatabaseRowsPage>;
|
|
49
153
|
getRow?(databaseId: string, rowKey: string): Promise<{
|
|
50
154
|
databaseId: string;
|
|
@@ -131,24 +235,72 @@ export type ImageSearchProvider = {
|
|
|
131
235
|
results: ImageSearchResult[];
|
|
132
236
|
}>;
|
|
133
237
|
};
|
|
238
|
+
/** Host-stable page identity — UUID, slug, local key, or remote id. */
|
|
239
|
+
export type PageId = string;
|
|
134
240
|
export type EditorPageLink = {
|
|
135
|
-
id:
|
|
241
|
+
id: PageId;
|
|
136
242
|
title: string;
|
|
137
243
|
preview?: string;
|
|
138
244
|
imageUrl?: string;
|
|
139
245
|
imageAlt?: string;
|
|
140
246
|
};
|
|
141
247
|
export type CreatedChildPage = {
|
|
142
|
-
id:
|
|
248
|
+
id: PageId;
|
|
143
249
|
title: string;
|
|
144
250
|
preview?: string;
|
|
145
251
|
imageUrl?: string;
|
|
146
252
|
imageAlt?: string;
|
|
147
253
|
};
|
|
254
|
+
export type CreateChildPageOptions = {
|
|
255
|
+
parentPageId?: PageId;
|
|
256
|
+
title?: string;
|
|
257
|
+
};
|
|
258
|
+
export type CreatePageOptions = {
|
|
259
|
+
title?: string;
|
|
260
|
+
};
|
|
261
|
+
export type PageSearchOptions = {
|
|
262
|
+
excludePageId?: PageId;
|
|
263
|
+
limit?: number;
|
|
264
|
+
};
|
|
265
|
+
/**
|
|
266
|
+
* Host-owned page workspace seam.
|
|
267
|
+
* OpenEditor stores page *references*; the host owns page entities.
|
|
268
|
+
*
|
|
269
|
+
* `createChildPage()` with no args remains supported for older hosts.
|
|
270
|
+
*/
|
|
148
271
|
export type PageProvider = {
|
|
149
|
-
listLinks?(excludePageId?:
|
|
150
|
-
|
|
151
|
-
|
|
272
|
+
listLinks?(excludePageId?: PageId): Promise<EditorPageLink[]>;
|
|
273
|
+
searchPages?(query: string, options?: PageSearchOptions): Promise<EditorPageLink[]>;
|
|
274
|
+
getPage?(pageId: PageId): Promise<EditorPageLink | null>;
|
|
275
|
+
createPage?(options?: CreatePageOptions): CreatedChildPage | EditorPageLink | void | Promise<CreatedChildPage | EditorPageLink | void>;
|
|
276
|
+
createChildPage?(options?: CreateChildPageOptions): CreatedChildPage | void | Promise<CreatedChildPage | void>;
|
|
277
|
+
openPage?(pageId: PageId): void;
|
|
278
|
+
};
|
|
279
|
+
export type BacklinkItem = {
|
|
280
|
+
sourceDocumentId: string;
|
|
281
|
+
sourceBlockId?: string;
|
|
282
|
+
sourceTitle?: string;
|
|
283
|
+
kind: string;
|
|
284
|
+
};
|
|
285
|
+
/**
|
|
286
|
+
* Workspace-wide incoming relations. A single editor only knows outgoing
|
|
287
|
+
* edges from its document — backlinks must come from the host.
|
|
288
|
+
*
|
|
289
|
+
* Discriminated on `targetType`. A database-row query always requires
|
|
290
|
+
* both `targetDatabaseId` and `targetId` (row keys are database-scoped).
|
|
291
|
+
*/
|
|
292
|
+
export type BacklinkQuery = {
|
|
293
|
+
targetType: "page" | "block" | "database";
|
|
294
|
+
targetId: string;
|
|
295
|
+
limit?: number;
|
|
296
|
+
} | {
|
|
297
|
+
targetType: "database-row";
|
|
298
|
+
targetDatabaseId: string;
|
|
299
|
+
targetId: string;
|
|
300
|
+
limit?: number;
|
|
301
|
+
};
|
|
302
|
+
export type BacklinkProvider = {
|
|
303
|
+
listBacklinks?(query: BacklinkQuery): Promise<BacklinkItem[]>;
|
|
152
304
|
};
|
|
153
305
|
export type NativeBridgeStats = {
|
|
154
306
|
characters?: number;
|
|
@@ -196,6 +348,8 @@ export type EditorProviders = {
|
|
|
196
348
|
assets?: AssetProvider;
|
|
197
349
|
imageSearch?: ImageSearchProvider;
|
|
198
350
|
pages?: PageProvider;
|
|
351
|
+
/** Optional host seam for workspace-wide incoming relations. */
|
|
352
|
+
backlinks?: BacklinkProvider;
|
|
199
353
|
nativeBridge?: NativeBridge;
|
|
200
354
|
};
|
|
201
355
|
//# sourceMappingURL=providers.d.ts.map
|
package/dist/providers.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../src/providers.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../src/providers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Outgoing semantic relationships extracted from an EditorDocument.
|
|
3
|
+
*
|
|
4
|
+
* DocumentIndex stays structural (outline / block text).
|
|
5
|
+
* RelationIndex models references (pages, child pages, blocks, databases).
|
|
6
|
+
*
|
|
7
|
+
* Workspace-wide *incoming* backlinks are NOT computed here — hosts supply
|
|
8
|
+
* them via BacklinkProvider.
|
|
9
|
+
*
|
|
10
|
+
* `RelationEdge` is a **discriminated union**. Invalid targetType/kind
|
|
11
|
+
* combinations are rejected by TypeScript.
|
|
12
|
+
*
|
|
13
|
+
* A database row reference is identified by the tuple `(databaseId, rowId)`.
|
|
14
|
+
* `rowId` alone is never a globally valid database-row target:
|
|
15
|
+
* db-a/row-1 ≠ db-b/row-1.
|
|
16
|
+
*
|
|
17
|
+
* Distinguish:
|
|
18
|
+
* - database-view-reference → a databaseView block pointing at a database
|
|
19
|
+
* - database-row-relation → a reference to a specific row within a database
|
|
20
|
+
*/
|
|
21
|
+
type RelationEdgeBase = {
|
|
22
|
+
/** Owning document that contains the reference. */
|
|
23
|
+
sourceDocumentId: string;
|
|
24
|
+
/** Block that holds the reference (when known). */
|
|
25
|
+
sourceBlockId?: string;
|
|
26
|
+
/** Optional stable edge key for incremental upserts. */
|
|
27
|
+
edgeId?: string;
|
|
28
|
+
};
|
|
29
|
+
export type PageReferenceEdge = RelationEdgeBase & {
|
|
30
|
+
targetType: "page";
|
|
31
|
+
targetId: string;
|
|
32
|
+
kind: "page-reference" | "child-page";
|
|
33
|
+
};
|
|
34
|
+
export type BlockReferenceEdge = RelationEdgeBase & {
|
|
35
|
+
targetType: "block";
|
|
36
|
+
targetId: string;
|
|
37
|
+
kind: "block-reference";
|
|
38
|
+
};
|
|
39
|
+
export type DatabaseViewReferenceEdge = RelationEdgeBase & {
|
|
40
|
+
targetType: "database";
|
|
41
|
+
targetId: string;
|
|
42
|
+
kind: "database-view-reference";
|
|
43
|
+
};
|
|
44
|
+
export type DatabaseRowRelationEdge = RelationEdgeBase & {
|
|
45
|
+
targetType: "database-row";
|
|
46
|
+
/** Database that scopes `targetId` (required; row keys are not global). */
|
|
47
|
+
targetDatabaseId: string;
|
|
48
|
+
targetId: string;
|
|
49
|
+
kind: "database-row-relation";
|
|
50
|
+
};
|
|
51
|
+
/**
|
|
52
|
+
* Outgoing semantic edge. Discriminated on `targetType` (and constrained
|
|
53
|
+
* `kind` per variant).
|
|
54
|
+
*/
|
|
55
|
+
export type RelationEdge = PageReferenceEdge | BlockReferenceEdge | DatabaseViewReferenceEdge | DatabaseRowRelationEdge;
|
|
56
|
+
export type RelationKind = RelationEdge["kind"];
|
|
57
|
+
export type RelationTargetType = RelationEdge["targetType"];
|
|
58
|
+
/**
|
|
59
|
+
* Typed target selector for RelationIndex queries.
|
|
60
|
+
* `database-row` always requires `targetDatabaseId`.
|
|
61
|
+
*/
|
|
62
|
+
export type RelationTargetQuery = {
|
|
63
|
+
targetType: "page" | "block" | "database";
|
|
64
|
+
targetId: string;
|
|
65
|
+
} | {
|
|
66
|
+
targetType: "database-row";
|
|
67
|
+
targetDatabaseId: string;
|
|
68
|
+
targetId: string;
|
|
69
|
+
};
|
|
70
|
+
/** Distributive Omit — plain Omit collapses union keys incorrectly. */
|
|
71
|
+
type RelationEdgeInput = RelationEdge extends infer E ? E extends RelationEdge ? Omit<E, "edgeId"> : never : never;
|
|
72
|
+
export declare function relationEdgeId(edge: RelationEdgeInput): string;
|
|
73
|
+
export declare function withRelationEdgeId(edge: RelationEdge): RelationEdge;
|
|
74
|
+
export {};
|
|
75
|
+
//# sourceMappingURL=relations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"relations.d.ts","sourceRoot":"","sources":["../src/relations.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,KAAK,gBAAgB,GAAG;IACtB,mDAAmD;IACnD,gBAAgB,EAAE,MAAM,CAAC;IACzB,mDAAmD;IACnD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,wDAAwD;IACxD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG,gBAAgB,GAAG;IACjD,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,gBAAgB,GAAG,YAAY,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,gBAAgB,GAAG;IAClD,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,iBAAiB,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG,gBAAgB,GAAG;IACzD,UAAU,EAAE,UAAU,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,yBAAyB,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG,gBAAgB,GAAG;IACvD,UAAU,EAAE,cAAc,CAAC;IAC3B,2EAA2E;IAC3E,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,uBAAuB,CAAC;CAC/B,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,YAAY,GACpB,iBAAiB,GACjB,kBAAkB,GAClB,yBAAyB,GACzB,uBAAuB,CAAC;AAE5B,MAAM,MAAM,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;AAChD,MAAM,MAAM,kBAAkB,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC;AAE5D;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAC3B;IACE,UAAU,EAAE,MAAM,GAAG,OAAO,GAAG,UAAU,CAAC;IAC1C,QAAQ,EAAE,MAAM,CAAC;CAClB,GACD;IACE,UAAU,EAAE,cAAc,CAAC;IAC3B,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEN,uEAAuE;AACvE,KAAK,iBAAiB,GAAG,YAAY,SAAS,MAAM,CAAC,GACjD,CAAC,SAAS,YAAY,GACpB,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,GACjB,KAAK,GACP,KAAK,CAAC;AAEV,wBAAgB,cAAc,CAAC,IAAI,EAAE,iBAAiB,GAAG,MAAM,CAW9D;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,YAAY,GAAG,YAAY,CAGnE"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Outgoing semantic relationships extracted from an EditorDocument.
|
|
3
|
+
*
|
|
4
|
+
* DocumentIndex stays structural (outline / block text).
|
|
5
|
+
* RelationIndex models references (pages, child pages, blocks, databases).
|
|
6
|
+
*
|
|
7
|
+
* Workspace-wide *incoming* backlinks are NOT computed here — hosts supply
|
|
8
|
+
* them via BacklinkProvider.
|
|
9
|
+
*
|
|
10
|
+
* `RelationEdge` is a **discriminated union**. Invalid targetType/kind
|
|
11
|
+
* combinations are rejected by TypeScript.
|
|
12
|
+
*
|
|
13
|
+
* A database row reference is identified by the tuple `(databaseId, rowId)`.
|
|
14
|
+
* `rowId` alone is never a globally valid database-row target:
|
|
15
|
+
* db-a/row-1 ≠ db-b/row-1.
|
|
16
|
+
*
|
|
17
|
+
* Distinguish:
|
|
18
|
+
* - database-view-reference → a databaseView block pointing at a database
|
|
19
|
+
* - database-row-relation → a reference to a specific row within a database
|
|
20
|
+
*/
|
|
21
|
+
export function relationEdgeId(edge) {
|
|
22
|
+
const databaseScope = edge.targetType === "database-row" ? edge.targetDatabaseId : "";
|
|
23
|
+
return [
|
|
24
|
+
edge.sourceDocumentId,
|
|
25
|
+
edge.sourceBlockId ?? "",
|
|
26
|
+
edge.kind,
|
|
27
|
+
edge.targetType,
|
|
28
|
+
databaseScope,
|
|
29
|
+
edge.targetId
|
|
30
|
+
].join("\0");
|
|
31
|
+
}
|
|
32
|
+
export function withRelationEdgeId(edge) {
|
|
33
|
+
if (edge.edgeId)
|
|
34
|
+
return edge;
|
|
35
|
+
return { ...edge, edgeId: relationEdgeId(edge) };
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=relations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"relations.js","sourceRoot":"","sources":["../src/relations.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAwEH,MAAM,UAAU,cAAc,CAAC,IAAuB;IACpD,MAAM,aAAa,GACjB,IAAI,CAAC,UAAU,KAAK,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC;IAClE,OAAO;QACL,IAAI,CAAC,gBAAgB;QACrB,IAAI,CAAC,aAAa,IAAI,EAAE;QACxB,IAAI,CAAC,IAAI;QACT,IAAI,CAAC,UAAU;QACf,aAAa;QACb,IAAI,CAAC,QAAQ;KACd,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,IAAkB;IACnD,IAAI,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IAC7B,OAAO,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;AACnD,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hello-ai-company/editor-core",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.1",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "Portable TypeScript document model, JSON serialization, and optional provider types. A small host-neutral document layer - not a rich-text editor.",
|
|
6
6
|
"keywords": [
|