@book.dev/sdk 3.15.2 → 3.17.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/dist/ai.d.ts +1 -1
- package/dist/assetUpload.d.ts +28 -0
- package/dist/assetUpload.js +54 -0
- package/dist/assetUpload.js.map +1 -0
- package/dist/blockCatalogue.d.ts +15 -39
- package/dist/blockCatalogue.js +30 -52
- package/dist/blockCatalogue.js.map +1 -1
- package/dist/blockPropSchemas.d.ts +293 -0
- package/dist/blockPropSchemas.js +77 -0
- package/dist/blockPropSchemas.js.map +1 -0
- package/dist/blockSnapshot.d.ts +48 -0
- package/dist/blockSnapshot.js +211 -0
- package/dist/blockSnapshot.js.map +1 -0
- package/dist/client.js +29 -0
- package/dist/client.js.map +1 -1
- package/dist/content.d.ts +5 -4
- package/dist/content.js +2 -1
- package/dist/content.js.map +1 -1
- package/dist/databaseTools.d.ts +86 -0
- package/dist/databaseTools.js +174 -0
- package/dist/databaseTools.js.map +1 -0
- package/dist/index.d.ts +8 -2
- package/dist/index.js +8 -2
- package/dist/index.js.map +1 -1
- package/dist/pageTools.d.ts +61 -0
- package/dist/pageTools.js +175 -0
- package/dist/pageTools.js.map +1 -0
- package/dist/richTextInput.d.ts +29 -0
- package/dist/richTextInput.js +142 -0
- package/dist/richTextInput.js.map +1 -0
- package/dist/suggestions.d.ts +1 -1
- package/dist/tableSnapshot.d.ts +12 -4
- package/dist/tableSnapshot.js +34 -4
- package/dist/tableSnapshot.js.map +1 -1
- package/package.json +3 -2
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
export const DATABASE_TOOL_PROPERTY_TYPES = [
|
|
2
|
+
'text', 'number', 'rating', 'select', 'multi_select', 'status', 'checkbox',
|
|
3
|
+
'date', 'url', 'email', 'phone',
|
|
4
|
+
];
|
|
5
|
+
const PROPERTY_TYPES = new Set(DATABASE_TOOL_PROPERTY_TYPES);
|
|
6
|
+
const id = (prefix) => `${prefix}_${crypto.randomUUID().slice(0, 8)}`;
|
|
7
|
+
/** Safe, stable errors returned by both agent and MCP database tools. */
|
|
8
|
+
export class DatabaseToolError extends Error {
|
|
9
|
+
constructor(code, message) {
|
|
10
|
+
super(message);
|
|
11
|
+
this.code = code;
|
|
12
|
+
this.name = 'DatabaseToolError';
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
const databaseForPage = async (store, pageId) => {
|
|
16
|
+
const database = await store.getPageDatabase(pageId);
|
|
17
|
+
if (!database)
|
|
18
|
+
throw new DatabaseToolError('database_not_found', 'That page hosts no database.');
|
|
19
|
+
return database;
|
|
20
|
+
};
|
|
21
|
+
export const buildDatabaseToolOptions = (labels, existing = []) => labels.map((raw) => String(raw).trim()).filter(Boolean).map((label) => {
|
|
22
|
+
const previous = existing.find((option) => option.label.toLowerCase() === label.toLowerCase());
|
|
23
|
+
return { id: previous?.id ?? id('opt'), label, ...(previous?.color ? { color: previous.color } : {}) };
|
|
24
|
+
});
|
|
25
|
+
export const buildDatabaseToolProperty = (spec) => {
|
|
26
|
+
const name = String(spec.name ?? '').trim();
|
|
27
|
+
const type = String(spec.type ?? '');
|
|
28
|
+
if (!name)
|
|
29
|
+
throw new DatabaseToolError('invalid_input', 'A property name is required.');
|
|
30
|
+
if (!PROPERTY_TYPES.has(type)) {
|
|
31
|
+
throw new DatabaseToolError('invalid_input', `Unsupported property type "${String(spec.type)}".`);
|
|
32
|
+
}
|
|
33
|
+
const property = { id: id('p'), name, type };
|
|
34
|
+
if ((type === 'select' || type === 'multi_select' || type === 'status') && Array.isArray(spec.options)) {
|
|
35
|
+
property.options = buildDatabaseToolOptions(spec.options);
|
|
36
|
+
}
|
|
37
|
+
return property;
|
|
38
|
+
};
|
|
39
|
+
const optionId = (property, value) => {
|
|
40
|
+
const candidate = String(value);
|
|
41
|
+
const options = property.options ?? [];
|
|
42
|
+
return (options.find((option) => option.id === candidate)
|
|
43
|
+
?? options.find((option) => option.label.toLowerCase() === candidate.toLowerCase()))?.id ?? candidate;
|
|
44
|
+
};
|
|
45
|
+
const cellValue = (property, value, lenient) => {
|
|
46
|
+
if (value === null || value === undefined)
|
|
47
|
+
return null;
|
|
48
|
+
if (property.type === 'number' || property.type === 'rating') {
|
|
49
|
+
const number = Number(value);
|
|
50
|
+
if (!Number.isFinite(number)) {
|
|
51
|
+
if (lenient)
|
|
52
|
+
return null;
|
|
53
|
+
throw new DatabaseToolError('invalid_input', `Invalid number for property "${property.name}".`);
|
|
54
|
+
}
|
|
55
|
+
return number;
|
|
56
|
+
}
|
|
57
|
+
if (property.type === 'checkbox') {
|
|
58
|
+
if (lenient)
|
|
59
|
+
return Boolean(value);
|
|
60
|
+
if (typeof value !== 'boolean')
|
|
61
|
+
throw new DatabaseToolError('invalid_input', `Invalid checkbox value for property "${property.name}".`);
|
|
62
|
+
return value;
|
|
63
|
+
}
|
|
64
|
+
if (property.type === 'select' || property.type === 'status')
|
|
65
|
+
return optionId(property, value);
|
|
66
|
+
if (property.type === 'multi_select')
|
|
67
|
+
return (Array.isArray(value) ? value : [value]).map((entry) => optionId(property, entry));
|
|
68
|
+
return typeof value === 'string' ? value : String(value);
|
|
69
|
+
};
|
|
70
|
+
export const resolveDatabaseToolRowValues = (schema, input, opts = {}) => {
|
|
71
|
+
const values = {};
|
|
72
|
+
for (const [key, value] of Object.entries(input)) {
|
|
73
|
+
const property = schema.properties.find((item) => item.id === key)
|
|
74
|
+
?? schema.properties.find((item) => item.name.toLowerCase() === key.toLowerCase());
|
|
75
|
+
if (!property) {
|
|
76
|
+
if (opts.lenient)
|
|
77
|
+
continue;
|
|
78
|
+
throw new DatabaseToolError('property_not_found', `Unknown property "${key}".`);
|
|
79
|
+
}
|
|
80
|
+
values[property.id] = cellValue(property, value, opts.lenient === true);
|
|
81
|
+
}
|
|
82
|
+
return values;
|
|
83
|
+
};
|
|
84
|
+
export async function describeDatabaseTool(store, pageId) {
|
|
85
|
+
const database = await databaseForPage(store, pageId);
|
|
86
|
+
const rows = await store.listRows(database.id);
|
|
87
|
+
return {
|
|
88
|
+
database: { id: database.id, pageId: database.pageId, name: database.name },
|
|
89
|
+
properties: database.schema.properties,
|
|
90
|
+
rows: rows.slice(0, 40).map(({ id: rowId, name }) => ({ id: rowId, name })),
|
|
91
|
+
rowCount: rows.length,
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
export async function createDatabaseTool(store, input) {
|
|
95
|
+
const title = input.title.trim();
|
|
96
|
+
if (!title)
|
|
97
|
+
throw new DatabaseToolError('invalid_input', 'A title is required.');
|
|
98
|
+
const schema = {
|
|
99
|
+
properties: (input.properties ?? []).map(buildDatabaseToolProperty),
|
|
100
|
+
views: [{ id: id('v'), name: 'Table', type: 'table', filters: [], sorts: [] }],
|
|
101
|
+
};
|
|
102
|
+
return store.createDatabase({ pageId: input.pageId, name: title, schema });
|
|
103
|
+
}
|
|
104
|
+
export async function updateDatabaseTool(store, input) {
|
|
105
|
+
const database = await databaseForPage(store, input.pageId);
|
|
106
|
+
const name = input.name.trim();
|
|
107
|
+
if (!name)
|
|
108
|
+
throw new DatabaseToolError('invalid_input', 'A name is required.');
|
|
109
|
+
const updated = await store.updateDatabase(database.id, { name });
|
|
110
|
+
if (!updated)
|
|
111
|
+
throw new DatabaseToolError('database_not_found', 'That page hosts no database.');
|
|
112
|
+
return updated;
|
|
113
|
+
}
|
|
114
|
+
export async function createPropertyTool(store, input) {
|
|
115
|
+
const database = await databaseForPage(store, input.pageId);
|
|
116
|
+
const property = buildDatabaseToolProperty(input);
|
|
117
|
+
const schema = { ...database.schema, properties: [...database.schema.properties, property] };
|
|
118
|
+
const updated = await store.updateDatabase(database.id, { schema });
|
|
119
|
+
if (!updated)
|
|
120
|
+
throw new DatabaseToolError('database_not_found', 'That page hosts no database.');
|
|
121
|
+
return { database: updated, property };
|
|
122
|
+
}
|
|
123
|
+
export async function updatePropertyTool(store, input) {
|
|
124
|
+
const database = await databaseForPage(store, input.pageId);
|
|
125
|
+
const index = database.schema.properties.findIndex((property) => property.id === input.propertyId);
|
|
126
|
+
if (index < 0)
|
|
127
|
+
throw new DatabaseToolError('property_not_found', `Unknown property "${input.propertyId}".`);
|
|
128
|
+
if (input.name === undefined && input.options === undefined)
|
|
129
|
+
throw new DatabaseToolError('invalid_input', 'Pass a name and/or options.');
|
|
130
|
+
const property = { ...database.schema.properties[index] };
|
|
131
|
+
if (input.name !== undefined) {
|
|
132
|
+
const name = input.name.trim();
|
|
133
|
+
if (!name)
|
|
134
|
+
throw new DatabaseToolError('invalid_input', 'A property name is required.');
|
|
135
|
+
property.name = name;
|
|
136
|
+
}
|
|
137
|
+
if (input.options !== undefined)
|
|
138
|
+
property.options = buildDatabaseToolOptions(input.options, property.options);
|
|
139
|
+
const properties = database.schema.properties.map((current, position) => position === index ? property : current);
|
|
140
|
+
const updated = await store.updateDatabase(database.id, { schema: { ...database.schema, properties } });
|
|
141
|
+
if (!updated)
|
|
142
|
+
throw new DatabaseToolError('database_not_found', 'That page hosts no database.');
|
|
143
|
+
return { database: updated, property };
|
|
144
|
+
}
|
|
145
|
+
export async function updateRowTool(store, input) {
|
|
146
|
+
const database = await databaseForPage(store, input.pageId);
|
|
147
|
+
const rows = await store.listRows(database.id);
|
|
148
|
+
const row = rows.find((candidate) => candidate.id === input.rowId);
|
|
149
|
+
if (!row)
|
|
150
|
+
throw new DatabaseToolError('row_not_found', 'Row not found in this database.');
|
|
151
|
+
if (input.name === undefined && input.properties === undefined)
|
|
152
|
+
throw new DatabaseToolError('invalid_input', 'Pass a name and/or properties.');
|
|
153
|
+
const patch = {
|
|
154
|
+
...(input.name !== undefined ? { name: input.name } : {}),
|
|
155
|
+
...(input.properties !== undefined
|
|
156
|
+
? { properties: { ...row.properties, ...resolveDatabaseToolRowValues(database.schema, input.properties) } }
|
|
157
|
+
: {}),
|
|
158
|
+
};
|
|
159
|
+
const updated = await store.updateRow(database.id, input.rowId, patch);
|
|
160
|
+
if (!updated)
|
|
161
|
+
throw new DatabaseToolError('row_not_found', 'Row not found in this database.');
|
|
162
|
+
return updated;
|
|
163
|
+
}
|
|
164
|
+
/** Rows are pages, so deletion uses the normal recoverable trash path. */
|
|
165
|
+
export async function deleteRowTool(store, input) {
|
|
166
|
+
const database = await databaseForPage(store, input.pageId);
|
|
167
|
+
const row = (await store.listRows(database.id)).find((candidate) => candidate.id === input.rowId);
|
|
168
|
+
if (!row)
|
|
169
|
+
throw new DatabaseToolError('row_not_found', 'Row not found in this database.');
|
|
170
|
+
if (!(await store.deletePage(row.id)))
|
|
171
|
+
throw new DatabaseToolError('row_not_found', 'Row not found in this database.');
|
|
172
|
+
return { id: row.id, name: row.name };
|
|
173
|
+
}
|
|
174
|
+
//# sourceMappingURL=databaseTools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"databaseTools.js","sourceRoot":"","sources":["../src/databaseTools.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -4,9 +4,12 @@ export { API, type ApiError, type CompactResult } from './routes';
|
|
|
4
4
|
export { FormSubmissionError, FormUploadError, DatabaseFormRequestError, FORM_UPLOAD_MAX_FILE_BYTES, FORM_UPLOAD_MAX_FILES, FORM_UPLOAD_MAX_FORM_STAGED_BYTES, FORM_UPLOAD_MAX_FORM_BYTES, FORM_UPLOAD_ORPHAN_TTL_MS, generateSubmissionKey, safeFormRedirectUrl, type DatabaseFormDescriptorRequest, type DatabaseFormPublication, type DatabaseFormPublishResult, type DatabaseFormReference, type DatabaseFormSubmissionRequest, type DatabaseFormUploadInput, type FormSubmissionRequest, type FormSubmissionResult, type FormUploadInput, type FormUploadRequest, type FormUploadResult, } from './forms';
|
|
5
5
|
export type { DataClient, PageSubscription, FetchLike, LiveSourceLike, HttpDataClientOptions, IdentityCredential, CreateAgentTokenInput, CreatedAgentToken, AgentTokenList } from './client';
|
|
6
6
|
export { HttpDataClient, IdentityRejectedError } from './client';
|
|
7
|
+
export { AGENT_ASSET_MIMES, AssetUploadError, decodeStrictBase64, uploadAgentAsset, type AgentAssetUploader, type AgentAssetUploadInput, type AgentAssetUploadResult, type AssetUploadErrorCode, } from './assetUpload';
|
|
7
8
|
export { ForwardingApiError, ForwardingClient, TunnelClient, MemoryKeyStore, SITE_VISIBILITIES, SiteReattachError, type SiteReattachErrorCode, createNamespacedKeyStore, KeychainLockedError, type NamespacedKeyStoreOptions, type RawSecretStore, mintSiteKeypair, signWithSiteKey, verifyWithSiteKey, FORWARDED_HEADER, signRosterAssertion, verifyRosterAssertion, isAcceptedRosterVersion, ROSTER_ASSERTION_VERSION, ROSTER_ASSERTION_V2, ACCEPTED_ROSTER_VERSIONS, ROSTER_ASSERTION_SKEW_MS, type KeyStore, type SiteIdentity, type SiteVisibility, type ForwardingClientOptions, type TunnelStatus, type RosterAssertionVersion, type RosterAssertionPayload, type RosterAssertionV1Payload, type RosterAssertionV2Payload, type SignRosterAssertionInput, type VerifyRosterAssertionInput, type VerifiedRosterAssertion, } from './forwarding';
|
|
8
9
|
export { DATA_PALETTE, DATA_COLOR_TOKENS, DATA_COLOR_SCHEMES, DEFAULT_DATA_COLOR_SCHEME, SERIES_ORDER, DATA_STROKE, STATUS_TOKENS, dataStroke, isDataColorToken, seriesColor, statusColor, hexAlpha, type DataColorToken, type DataColorScheme, type DataColor, type ChipColors, } from './dataColors';
|
|
9
10
|
export type { DatabasePropertyType, FormWritablePropertyType, NumberFormat, NumberDisplay, StatusGroup, RollupFunction, RollupConfig, RelationCardinality, DatabaseSelectOption, DatabaseProperty, DateRange, LocationValue, PropertyGroup, RowTemplate, DatabaseViewType, ChartAggregate, SummaryType, FilterOperator, FilterConjunction, DatabaseFilter, DatabaseFilterGroup, FilterNode, SortDirection, DatabaseSort, DatabaseView, DatabaseFormField, DatabaseFormFieldValidation, DatabaseFormConfirmation, DatabaseFormConfig, DatabaseFormDescriptorField, DatabaseFormDescriptor, FormRowValidationErrorCode, FormRowValidationError, FormRowValidationResult, DatabaseMetric, ColorRule, DatabaseSchema, AutoExpiryConfig, ResolvedAutoExpiry, StoredDatabase, DatabaseInput, DatabaseUpdate, DatabaseRow, RowInput, RowUpdate, RowGroup, ChartDatum, ChartSeries, ChartSegment, ChartGroup, ChartMatrix, DateSpan, GraphNode, GraphEdge, DependencyGraph, InverseUpdate, RowTreeNode, } from './database';
|
|
11
|
+
export { DATABASE_TOOL_PROPERTY_TYPES, DatabaseToolError, buildDatabaseToolOptions, buildDatabaseToolProperty, resolveDatabaseToolRowValues, describeDatabaseTool, createDatabaseTool, updateDatabaseTool, createPropertyTool, updatePropertyTool, updateRowTool, deleteRowTool, type DatabaseDescription, type DatabaseToolErrorCode, type DatabaseToolStore, } from './databaseTools';
|
|
12
|
+
export { PAGE_THEME_IDS, PAGE_BACKGROUND_TOKENS, PAGE_COVER_GRADIENT_IDS, COVER_GRADIENTS, PageToolError, buildPageAppearancePatch, validatePageProperties, buildMovePlan, setPageAppearanceTool, getPagePropertiesTool, setPagePropertiesTool, movePageTool, type PageAppearanceInput, type PageToolErrorCode, type PageToolStore, type PageToolMoveInput, } from './pageTools';
|
|
10
13
|
export { TITLE_PROPERTY_ID, FORM_PROPERTY_TYPE_WRITABILITY, FORM_ROW_VALIDATION_ERROR_CODES, KNOWN_DATABASE_VIEW_TYPES, SELECT_COLORS, NO_VALUE_GROUP, STATUS_GROUPS, RELATIVE_DATE_OPS, projectExports, rowValue, matchesFilter, rowMatchesCondition, applyView, viewFilterRoot, isFilterGroup, shortId, resolveAutoExpiry, isDatabaseViewType, isFormWritablePropertyType, formPatternIsUnsafe, defaultDatabaseSchema, defaultView, defaultStatusOptions, removeProperty, projectDatabaseFormDescriptor, validateRowAgainstForm, formatNumber, formatUniqueId, numberProgress, groupRows, groupRowsBy, groupRowsByParent, PARENT_GROUP_ID, NO_PARENT_GROUP, aggregateRows, aggregateMatrix, CHART_TOTAL_SERIES, summarizeColumn, dateStart, dateEnd, parseDay, rowDateSpan, rowLocation, asLocation, dependencyGraph, syncInverseUpdates, relationSides, buildRowTree, flattenRowTree, isImageUrl, firstImageUrl, coverImageUrl, } from './database';
|
|
11
14
|
export { evaluateFormula, formulaReferences, FormulaError, type FormulaValue, type FormulaResolver, } from './formula';
|
|
12
15
|
export { OWNER_PROPERTY_ID, VERIFICATION_PROPERTY_ID, BACKLINKS_PROPERTY_ID, FORM_SUBMISSION_PROPERTY_ID, THEME_PROPERTY_ID, COVER_PROPERTY_ID, FONTS_PROPERTY_ID, ICON_PROPERTY_ID, FULLWIDTH_PROPERTY_ID, SYSTEM_PAGE_PROPERTIES, isVerified, verificationExpired, isVerificationActive, makeVerification, extractMentionIds, propertiesReferencePage, extractPropertyReferenceIds, type DatabaseFormSubmissionMarker, type VerificationValue, } from './pageProperties';
|
|
@@ -16,8 +19,10 @@ export { guestPrincipal, localPrincipal, principalId, verifiedSubject, colorForI
|
|
|
16
19
|
export { DEFAULT_INSTANCE_CONFIG, type GuestAccess, type TrustedIssuerConfig, type InstanceConfig, type InstanceConfigUpdate, type InstanceConfigWithRev, type InstanceInfo, type StoredEdit, type LibraryBinding, type LibraryRoster, type LibraryRosterEntry, } from './provenance';
|
|
17
20
|
export { authorize, isEmailAuthoritative, type Role, type EffectiveVisibility, type AclEntry, type AccessPage, type AccessCtx, type Decision, } from './authorize';
|
|
18
21
|
export { snapshotText, snapshotSegments, paragraphBlocks, textSnapshot, appendTextToSnapshot, appendBlocksToSnapshot, projectAppendBlocks, type AppendBlock, type ProjectedBlock, type SnapshotSegment } from './content';
|
|
22
|
+
export { RichTextInputError, normalizeRuns, parseMiniMarkdown, richTextRuns, type RichTextInput, type RichTextInputErrorCode, type Run, type RunAttrs, } from './richTextInput';
|
|
23
|
+
export { BlockSnapshotError, deleteBlock, findBlock, insertBlocks, moveBlock, setBlockProps, setBlockText, type BlockSnapshotErrorCode, type FoundSnapshotBlock, type InsertBlocksInput, type MoveBlockInput, } from './blockSnapshot';
|
|
19
24
|
export { ORDER_KEY_REBALANCE_LENGTH, isOrderKey, compareOrderKeys, keyBetween, keysBetween, } from './orderKeys';
|
|
20
|
-
export { TABLE_COL_PREFIX, TABLE_COLBG_PREFIX, TABLE_OP_KINDS, applyTableOpToSnapshot, ensureSnapshotTableOrder, resolveTableOp, snapshotCellPosition, snapshotTableColumns, snapshotTableGrid, snapshotTableIdFor, snapshotTableView, snapshotTables, tableOpError, tableOpRemovesTable, tableOrderContractKey, tableOrderContractRefusal, tableShapeOf, type SnapshotBlock, type SnapshotTableGrid, type SnapshotTableView, type TableOpAddress, type TableOpKind, type TableOpRequest, type TableShape, } from './tableSnapshot';
|
|
25
|
+
export { TABLE_COL_PREFIX, TABLE_COLBG_PREFIX, TABLE_COLW_PREFIX, TABLE_COLUMN_MIN_WIDTH, TABLE_OP_KINDS, applyTableOpToSnapshot, ensureSnapshotTableOrder, resolveTableOp, snapshotCellPosition, snapshotTableColumns, snapshotTableGrid, snapshotTableIdFor, snapshotTableView, snapshotTables, tableOpError, tableOpRemovesTable, tableOrderContractKey, tableOrderContractRefusal, tableShapeOf, type SnapshotBlock, type SnapshotTableGrid, type SnapshotTableView, type TableOpAddress, type TableOpKind, type TableOpRequest, type TableShape, } from './tableSnapshot';
|
|
21
26
|
export { snapshotBlocks, contentHash, computeBlockMtimes, stampSnapshotMtimes, latestBlockMtime, type BlockDigest, } from './mtime';
|
|
22
27
|
export { computeBlockAuthors, stampSnapshotAuthors, stampSnapshotAuthorsPerBlock, latestSnapshotAuthor, type BlockAuthorResolver, } from './authors';
|
|
23
28
|
export { OPENBOOK_ISLAND_MARKER, OPENBOOK_ASSETS_MARKER, encodeIsland, islandScript, assetsIslandScript, readIsland, readIslandRaw, readAssetsIsland, type ExportAssetEntry, type ExportAssetsIsland, } from './island';
|
|
@@ -25,7 +30,8 @@ export { pageToBookHtml, bookHtmlToPage, readBookHtmlMeta, pageIslandScript, san
|
|
|
25
30
|
export { libraryToBookFiles, parseBookFolder, libraryIslandScript, readLibraryIsland, SPACE_BUNDLE_FILE, LEGACY_SPACE_BUNDLE_FILE, type BookFolderFile, type LibrarySnapshot, type LibraryToBookFilesOptions, type LibraryIsland, } from './bookFolder';
|
|
26
31
|
export { gatherLedgerExportSection, parseLedgerExportSection, type LedgerExportSection, type LedgerSectionAccount, type LedgerSectionBook, type LedgerSectionParseResult, type LedgerSectionPosting, type LedgerSectionReconciliation, type LedgerSectionRestoreResult, type LedgerSectionTransaction, } from './ledgerExportSection';
|
|
27
32
|
export { canonicalDigest, canonicalJson, generateRegistryKeys, signPlugin, verifyPlugin, verifyEd25519Message, validateManifest, pluginApiVersionError, OPENBOOK_REGISTRY, OPENBOOK_REGISTRY_KEYS, PLUGIN_API_VERSION, type PluginManifest, type PluginAgentTool, type PluginBlockDeclaration, type PluginPackage, type PluginSignature, type StoredPlugin, } from './plugins';
|
|
28
|
-
export { BLOCK_TYPE_CATALOGUE, KNOWN_BLOCK_TYPE_IDS, CONTAINER_BLOCK_TYPES, TEXT_BLOCK_TYPES, CHILD_ONLY_PARENT, MAX_BLOCK_DEPTH, MAX_BLOCK_NODES, blockTypeInfo, isPluginBlockType, pluginIdOfBlockType, findUnknownBlockType, unknownBlockTypeMessage, blockTreeError, invalidBlockProps, blockCatalogueText, addBlocksGuidance, type BlockNature, type BlockPropType, type BlockTypeInfo, type CoreBlockType, type UnknownBlockType, type PluginBlockSource, } from './blockCatalogue';
|
|
33
|
+
export { BLOCK_TYPE_CATALOGUE, KIT_VALUE_BLOCK_TYPES, KNOWN_BLOCK_TYPE_IDS, CONTAINER_BLOCK_TYPES, TEXT_BLOCK_TYPES, CHILD_ONLY_PARENT, MAX_BLOCK_DEPTH, MAX_BLOCK_NODES, blockTypeInfo, isPluginBlockType, pluginIdOfBlockType, findUnknownBlockType, unknownBlockTypeMessage, blockTreeError, invalidBlockProps, blockCatalogueText, addBlocksGuidance, type BlockNature, type BlockPropType, type BlockTypeInfo, type CoreBlockType, type UnknownBlockType, type PluginBlockSource, } from './blockCatalogue';
|
|
34
|
+
export { BLOCK_PROP_SCHEMAS, BLOCK_PROP_JSON_SCHEMAS, type BlockPropsJsonSchema, type CataloguedSchemaType, } from './blockPropSchemas';
|
|
29
35
|
export { RegistryClient, RegistryError, fetchRegistryDocument, registryBaseUrlProblem, registryKeyFingerprint, revocationMatches, REVOCATION_STALENESS_MS, isSemver, compareSemver, type RegistryDocument, type RegistryIndexEntry, type RegistryIndexPage, type RegistryNotarization, type RegistryPluginMeta, type RegistryPluginVersion, type RegistryRevocation, type RegistryRevocationHead, type RegistryPin, type RegistryTrust, type VerifiedDownload, } from './registryClient';
|
|
30
36
|
export { buildSampleDocument, seedSampleDocument, SAMPLE_DOCUMENT_NAME } from './sampleDocument';
|
|
31
37
|
export type { CommentRun, AuthoredIdentity, SuggestionAuthorKind, SuggestionKind, SuggestionStatus, SuggestionTarget, StoredSuggestion, SuggestionInput, SuggestionUpdate, StoredComment, CommentInput, } from './suggestions';
|
package/dist/index.js
CHANGED
|
@@ -2,8 +2,11 @@ export { emptyPageSnapshot, PAGE_VISIBILITIES, AGENT_EDITS_MODES, AGENT_EDITS_PO
|
|
|
2
2
|
export { API } from './routes';
|
|
3
3
|
export { FormSubmissionError, FormUploadError, DatabaseFormRequestError, FORM_UPLOAD_MAX_FILE_BYTES, FORM_UPLOAD_MAX_FILES, FORM_UPLOAD_MAX_FORM_STAGED_BYTES, FORM_UPLOAD_MAX_FORM_BYTES, FORM_UPLOAD_ORPHAN_TTL_MS, generateSubmissionKey, safeFormRedirectUrl, } from './forms';
|
|
4
4
|
export { HttpDataClient, IdentityRejectedError } from './client';
|
|
5
|
+
export { AGENT_ASSET_MIMES, AssetUploadError, decodeStrictBase64, uploadAgentAsset, } from './assetUpload';
|
|
5
6
|
export { ForwardingApiError, ForwardingClient, TunnelClient, MemoryKeyStore, SITE_VISIBILITIES, SiteReattachError, createNamespacedKeyStore, KeychainLockedError, mintSiteKeypair, signWithSiteKey, verifyWithSiteKey, FORWARDED_HEADER, signRosterAssertion, verifyRosterAssertion, isAcceptedRosterVersion, ROSTER_ASSERTION_VERSION, ROSTER_ASSERTION_V2, ACCEPTED_ROSTER_VERSIONS, ROSTER_ASSERTION_SKEW_MS, } from './forwarding';
|
|
6
7
|
export { DATA_PALETTE, DATA_COLOR_TOKENS, DATA_COLOR_SCHEMES, DEFAULT_DATA_COLOR_SCHEME, SERIES_ORDER, DATA_STROKE, STATUS_TOKENS, dataStroke, isDataColorToken, seriesColor, statusColor, hexAlpha, } from './dataColors';
|
|
8
|
+
export { DATABASE_TOOL_PROPERTY_TYPES, DatabaseToolError, buildDatabaseToolOptions, buildDatabaseToolProperty, resolveDatabaseToolRowValues, describeDatabaseTool, createDatabaseTool, updateDatabaseTool, createPropertyTool, updatePropertyTool, updateRowTool, deleteRowTool, } from './databaseTools';
|
|
9
|
+
export { PAGE_THEME_IDS, PAGE_BACKGROUND_TOKENS, PAGE_COVER_GRADIENT_IDS, COVER_GRADIENTS, PageToolError, buildPageAppearancePatch, validatePageProperties, buildMovePlan, setPageAppearanceTool, getPagePropertiesTool, setPagePropertiesTool, movePageTool, } from './pageTools';
|
|
7
10
|
export { TITLE_PROPERTY_ID, FORM_PROPERTY_TYPE_WRITABILITY, FORM_ROW_VALIDATION_ERROR_CODES, KNOWN_DATABASE_VIEW_TYPES, SELECT_COLORS, NO_VALUE_GROUP, STATUS_GROUPS, RELATIVE_DATE_OPS, projectExports, rowValue, matchesFilter, rowMatchesCondition, applyView, viewFilterRoot, isFilterGroup, shortId, resolveAutoExpiry, isDatabaseViewType, isFormWritablePropertyType, formPatternIsUnsafe, defaultDatabaseSchema, defaultView, defaultStatusOptions, removeProperty, projectDatabaseFormDescriptor, validateRowAgainstForm, formatNumber, formatUniqueId, numberProgress, groupRows, groupRowsBy, groupRowsByParent, PARENT_GROUP_ID, NO_PARENT_GROUP, aggregateRows, aggregateMatrix, CHART_TOTAL_SERIES, summarizeColumn, dateStart, dateEnd, parseDay, rowDateSpan, rowLocation, asLocation, dependencyGraph, syncInverseUpdates, relationSides, buildRowTree, flattenRowTree, isImageUrl, firstImageUrl, coverImageUrl, } from './database';
|
|
8
11
|
export { evaluateFormula, formulaReferences, FormulaError, } from './formula';
|
|
9
12
|
export { OWNER_PROPERTY_ID, VERIFICATION_PROPERTY_ID, BACKLINKS_PROPERTY_ID, FORM_SUBMISSION_PROPERTY_ID, THEME_PROPERTY_ID, COVER_PROPERTY_ID, FONTS_PROPERTY_ID, ICON_PROPERTY_ID, FULLWIDTH_PROPERTY_ID, SYSTEM_PAGE_PROPERTIES, isVerified, verificationExpired, isVerificationActive, makeVerification, extractMentionIds, propertiesReferencePage, extractPropertyReferenceIds, } from './pageProperties';
|
|
@@ -13,8 +16,10 @@ export { guestPrincipal, localPrincipal, principalId, verifiedSubject, colorForI
|
|
|
13
16
|
export { DEFAULT_INSTANCE_CONFIG, } from './provenance';
|
|
14
17
|
export { authorize, isEmailAuthoritative, } from './authorize';
|
|
15
18
|
export { snapshotText, snapshotSegments, paragraphBlocks, textSnapshot, appendTextToSnapshot, appendBlocksToSnapshot, projectAppendBlocks } from './content';
|
|
19
|
+
export { RichTextInputError, normalizeRuns, parseMiniMarkdown, richTextRuns, } from './richTextInput';
|
|
20
|
+
export { BlockSnapshotError, deleteBlock, findBlock, insertBlocks, moveBlock, setBlockProps, setBlockText, } from './blockSnapshot';
|
|
16
21
|
export { ORDER_KEY_REBALANCE_LENGTH, isOrderKey, compareOrderKeys, keyBetween, keysBetween, } from './orderKeys';
|
|
17
|
-
export { TABLE_COL_PREFIX, TABLE_COLBG_PREFIX, TABLE_OP_KINDS, applyTableOpToSnapshot, ensureSnapshotTableOrder, resolveTableOp, snapshotCellPosition, snapshotTableColumns, snapshotTableGrid, snapshotTableIdFor, snapshotTableView, snapshotTables, tableOpError, tableOpRemovesTable, tableOrderContractKey, tableOrderContractRefusal, tableShapeOf, } from './tableSnapshot';
|
|
22
|
+
export { TABLE_COL_PREFIX, TABLE_COLBG_PREFIX, TABLE_COLW_PREFIX, TABLE_COLUMN_MIN_WIDTH, TABLE_OP_KINDS, applyTableOpToSnapshot, ensureSnapshotTableOrder, resolveTableOp, snapshotCellPosition, snapshotTableColumns, snapshotTableGrid, snapshotTableIdFor, snapshotTableView, snapshotTables, tableOpError, tableOpRemovesTable, tableOrderContractKey, tableOrderContractRefusal, tableShapeOf, } from './tableSnapshot';
|
|
18
23
|
export { snapshotBlocks, contentHash, computeBlockMtimes, stampSnapshotMtimes, latestBlockMtime, } from './mtime';
|
|
19
24
|
export { computeBlockAuthors, stampSnapshotAuthors, stampSnapshotAuthorsPerBlock, latestSnapshotAuthor, } from './authors';
|
|
20
25
|
export { OPENBOOK_ISLAND_MARKER, OPENBOOK_ASSETS_MARKER, encodeIsland, islandScript, assetsIslandScript, readIsland, readIslandRaw, readAssetsIsland, } from './island';
|
|
@@ -22,7 +27,8 @@ export { pageToBookHtml, bookHtmlToPage, readBookHtmlMeta, pageIslandScript, san
|
|
|
22
27
|
export { libraryToBookFiles, parseBookFolder, libraryIslandScript, readLibraryIsland, SPACE_BUNDLE_FILE, LEGACY_SPACE_BUNDLE_FILE, } from './bookFolder';
|
|
23
28
|
export { gatherLedgerExportSection, parseLedgerExportSection, } from './ledgerExportSection';
|
|
24
29
|
export { canonicalDigest, canonicalJson, generateRegistryKeys, signPlugin, verifyPlugin, verifyEd25519Message, validateManifest, pluginApiVersionError, OPENBOOK_REGISTRY, OPENBOOK_REGISTRY_KEYS, PLUGIN_API_VERSION, } from './plugins';
|
|
25
|
-
export { BLOCK_TYPE_CATALOGUE, KNOWN_BLOCK_TYPE_IDS, CONTAINER_BLOCK_TYPES, TEXT_BLOCK_TYPES, CHILD_ONLY_PARENT, MAX_BLOCK_DEPTH, MAX_BLOCK_NODES, blockTypeInfo, isPluginBlockType, pluginIdOfBlockType, findUnknownBlockType, unknownBlockTypeMessage, blockTreeError, invalidBlockProps, blockCatalogueText, addBlocksGuidance, } from './blockCatalogue';
|
|
30
|
+
export { BLOCK_TYPE_CATALOGUE, KIT_VALUE_BLOCK_TYPES, KNOWN_BLOCK_TYPE_IDS, CONTAINER_BLOCK_TYPES, TEXT_BLOCK_TYPES, CHILD_ONLY_PARENT, MAX_BLOCK_DEPTH, MAX_BLOCK_NODES, blockTypeInfo, isPluginBlockType, pluginIdOfBlockType, findUnknownBlockType, unknownBlockTypeMessage, blockTreeError, invalidBlockProps, blockCatalogueText, addBlocksGuidance, } from './blockCatalogue';
|
|
31
|
+
export { BLOCK_PROP_SCHEMAS, BLOCK_PROP_JSON_SCHEMAS, } from './blockPropSchemas';
|
|
26
32
|
export { RegistryClient, RegistryError, fetchRegistryDocument, registryBaseUrlProblem, registryKeyFingerprint, revocationMatches, REVOCATION_STALENESS_MS, isSemver, compareSemver, } from './registryClient';
|
|
27
33
|
export { buildSampleDocument, seedSampleDocument, SAMPLE_DOCUMENT_NAME } from './sampleDocument';
|
|
28
34
|
export { PAGE_TEMPLATES, STARTUP_BOOKS_CHART, instantiateTemplate, startupBooksTransactions } from './templates';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import type { PageMeta, StoredPage } from './types';
|
|
2
|
+
export declare const PAGE_THEME_IDS: readonly ["default", "amber", "forest", "graphite", "ocean", "rose", "sandstone", "slate", "sunset", "teal", "violet"];
|
|
3
|
+
export declare const PAGE_BACKGROUND_TOKENS: readonly ["gray", "red", "orange", "yellow", "green", "blue", "purple", "pink"];
|
|
4
|
+
export declare const PAGE_COVER_GRADIENT_IDS: readonly ["dawn", "ocean", "dusk", "forest", "ember", "slate", "citrus", "mint", "grape", "sand", "rose", "night"];
|
|
5
|
+
export declare const COVER_GRADIENTS: ReadonlyArray<{
|
|
6
|
+
id: typeof PAGE_COVER_GRADIENT_IDS[number];
|
|
7
|
+
css: string;
|
|
8
|
+
}>;
|
|
9
|
+
export type PageToolErrorCode = 'page_not_found' | 'parent_not_found' | 'invalid_input' | 'invalid_move' | 'permission_denied';
|
|
10
|
+
export declare class PageToolError extends Error {
|
|
11
|
+
readonly code: PageToolErrorCode;
|
|
12
|
+
constructor(code: PageToolErrorCode, message: string);
|
|
13
|
+
}
|
|
14
|
+
export interface PageToolStore {
|
|
15
|
+
listPages(): Promise<PageMeta[]>;
|
|
16
|
+
getPage(id: string): Promise<StoredPage | null>;
|
|
17
|
+
setPageProperties(id: string, properties: Record<string, unknown>): Promise<StoredPage | null>;
|
|
18
|
+
movePage(id: string, move: {
|
|
19
|
+
parentId: string | null;
|
|
20
|
+
orderedIds: string[];
|
|
21
|
+
}): Promise<StoredPage | null>;
|
|
22
|
+
}
|
|
23
|
+
export interface PageAppearanceInput {
|
|
24
|
+
icon?: string | null;
|
|
25
|
+
cover?: {
|
|
26
|
+
kind: 'gradient';
|
|
27
|
+
gradientId: typeof PAGE_COVER_GRADIENT_IDS[number];
|
|
28
|
+
} | {
|
|
29
|
+
kind: 'image';
|
|
30
|
+
url: string;
|
|
31
|
+
position?: number;
|
|
32
|
+
} | null;
|
|
33
|
+
theme?: {
|
|
34
|
+
themeId?: string;
|
|
35
|
+
background?: string;
|
|
36
|
+
controlIntensity?: number;
|
|
37
|
+
interfaceIntensity?: number;
|
|
38
|
+
} | null;
|
|
39
|
+
fullWidth?: boolean | null;
|
|
40
|
+
}
|
|
41
|
+
/** Validate and project the public appearance input onto reserved page-property ids. */
|
|
42
|
+
export declare function buildPageAppearancePatch(input: PageAppearanceInput): Record<string, unknown>;
|
|
43
|
+
export declare function validatePageProperties(input: Record<string, unknown>): Record<string, unknown>;
|
|
44
|
+
export declare function setPageAppearanceTool(store: PageToolStore, pageId: string, input: PageAppearanceInput): Promise<StoredPage>;
|
|
45
|
+
export declare function getPagePropertiesTool(store: Pick<PageToolStore, 'getPage'>, pageId: string): Promise<Record<string, unknown>>;
|
|
46
|
+
export declare function setPagePropertiesTool(store: PageToolStore, pageId: string, properties: Record<string, unknown>): Promise<StoredPage>;
|
|
47
|
+
export type PageToolMoveInput = {
|
|
48
|
+
pageId: string;
|
|
49
|
+
parentId: string | null;
|
|
50
|
+
position?: {
|
|
51
|
+
index: number;
|
|
52
|
+
} | {
|
|
53
|
+
afterId: string;
|
|
54
|
+
};
|
|
55
|
+
};
|
|
56
|
+
/** Validate a page move and compute the ordered destination siblings without writing. */
|
|
57
|
+
export declare function buildMovePlan(pages: PageMeta[], input: PageToolMoveInput): {
|
|
58
|
+
parentId: string | null;
|
|
59
|
+
orderedIds: string[];
|
|
60
|
+
};
|
|
61
|
+
export declare function movePageTool(store: PageToolStore, input: PageToolMoveInput): Promise<StoredPage>;
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
import { BACKLINKS_PROPERTY_ID, COVER_PROPERTY_ID, FULLWIDTH_PROPERTY_ID, ICON_PROPERTY_ID, OWNER_PROPERTY_ID, THEME_PROPERTY_ID, VERIFICATION_PROPERTY_ID, } from './pageProperties';
|
|
2
|
+
export const PAGE_THEME_IDS = [
|
|
3
|
+
'default', 'amber', 'forest', 'graphite', 'ocean', 'rose', 'sandstone', 'slate', 'sunset', 'teal', 'violet',
|
|
4
|
+
];
|
|
5
|
+
export const PAGE_BACKGROUND_TOKENS = ['gray', 'red', 'orange', 'yellow', 'green', 'blue', 'purple', 'pink'];
|
|
6
|
+
export const PAGE_COVER_GRADIENT_IDS = ['dawn', 'ocean', 'dusk', 'forest', 'ember', 'slate', 'citrus', 'mint', 'grape', 'sand', 'rose', 'night'];
|
|
7
|
+
export const COVER_GRADIENTS = [
|
|
8
|
+
{ id: 'dawn', css: 'linear-gradient(120deg, #f6d365 0%, #fda085 100%)' },
|
|
9
|
+
{ id: 'ocean', css: 'linear-gradient(120deg, #4facfe 0%, #00f2fe 100%)' },
|
|
10
|
+
{ id: 'dusk', css: 'linear-gradient(120deg, #a18cd1 0%, #fbc2eb 100%)' },
|
|
11
|
+
{ id: 'forest', css: 'linear-gradient(120deg, #0ba360 0%, #3cba92 100%)' },
|
|
12
|
+
{ id: 'ember', css: 'linear-gradient(120deg, #ff6a88 0%, #ff99ac 60%, #ffc3a0 100%)' },
|
|
13
|
+
{ id: 'slate', css: 'linear-gradient(120deg, #2b5876 0%, #4e4376 100%)' },
|
|
14
|
+
{ id: 'citrus', css: 'linear-gradient(120deg, #f7971e 0%, #ffd200 100%)' },
|
|
15
|
+
{ id: 'mint', css: 'linear-gradient(120deg, #43e97b 0%, #38f9d7 100%)' },
|
|
16
|
+
{ id: 'grape', css: 'linear-gradient(120deg, #667eea 0%, #764ba2 100%)' },
|
|
17
|
+
{ id: 'sand', css: 'linear-gradient(120deg, #e6dada 0%, #d3a17b 100%)' },
|
|
18
|
+
{ id: 'rose', css: 'linear-gradient(120deg, #ee9ca7 0%, #ffdde1 100%)' },
|
|
19
|
+
{ id: 'night', css: 'linear-gradient(120deg, #232526 0%, #414345 100%)' },
|
|
20
|
+
];
|
|
21
|
+
export class PageToolError extends Error {
|
|
22
|
+
constructor(code, message) {
|
|
23
|
+
super(message);
|
|
24
|
+
this.code = code;
|
|
25
|
+
this.name = 'PageToolError';
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
const record = (value) => value !== null && typeof value === 'object' && !Array.isArray(value) ? value : null;
|
|
29
|
+
const oneOf = (value, values) => typeof value === 'string' && values.includes(value);
|
|
30
|
+
/** Validate and project the public appearance input onto reserved page-property ids. */
|
|
31
|
+
export function buildPageAppearancePatch(input) {
|
|
32
|
+
const patch = {};
|
|
33
|
+
if (input.icon !== undefined) {
|
|
34
|
+
if (input.icon !== null && (typeof input.icon !== 'string' || input.icon.length > 32))
|
|
35
|
+
throw new PageToolError('invalid_input', 'icon must be a string of at most 32 characters or null.');
|
|
36
|
+
patch[ICON_PROPERTY_ID] = input.icon;
|
|
37
|
+
}
|
|
38
|
+
if (input.fullWidth !== undefined) {
|
|
39
|
+
if (input.fullWidth !== null && typeof input.fullWidth !== 'boolean')
|
|
40
|
+
throw new PageToolError('invalid_input', 'fullWidth must be a boolean or null.');
|
|
41
|
+
patch[FULLWIDTH_PROPERTY_ID] = input.fullWidth;
|
|
42
|
+
}
|
|
43
|
+
if (input.theme !== undefined) {
|
|
44
|
+
if (input.theme === null)
|
|
45
|
+
patch[THEME_PROPERTY_ID] = null;
|
|
46
|
+
else {
|
|
47
|
+
const theme = record(input.theme);
|
|
48
|
+
if (!theme)
|
|
49
|
+
throw new PageToolError('invalid_input', 'theme must be an object or null.');
|
|
50
|
+
const allowed = new Set(['themeId', 'background', 'controlIntensity', 'interfaceIntensity']);
|
|
51
|
+
if (Object.keys(theme).some((key) => !allowed.has(key)))
|
|
52
|
+
throw new PageToolError('invalid_input', 'theme contains an unknown setting.');
|
|
53
|
+
if (theme.themeId !== undefined && !oneOf(theme.themeId, PAGE_THEME_IDS))
|
|
54
|
+
throw new PageToolError('invalid_input', `Unknown theme "${String(theme.themeId)}".`);
|
|
55
|
+
if (theme.background !== undefined && !oneOf(theme.background, PAGE_BACKGROUND_TOKENS))
|
|
56
|
+
throw new PageToolError('invalid_input', `Unknown background "${String(theme.background)}".`);
|
|
57
|
+
for (const key of ['controlIntensity', 'interfaceIntensity']) {
|
|
58
|
+
if (theme[key] !== undefined && (!Number.isInteger(theme[key]) || Number(theme[key]) < 0 || Number(theme[key]) > 3))
|
|
59
|
+
throw new PageToolError('invalid_input', `${key} must be an integer from 0 to 3.`);
|
|
60
|
+
}
|
|
61
|
+
patch[THEME_PROPERTY_ID] = theme;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
if (input.cover !== undefined) {
|
|
65
|
+
if (input.cover === null)
|
|
66
|
+
patch[COVER_PROPERTY_ID] = null;
|
|
67
|
+
else {
|
|
68
|
+
const cover = record(input.cover);
|
|
69
|
+
if (!cover || (cover.kind !== 'gradient' && cover.kind !== 'image'))
|
|
70
|
+
throw new PageToolError('invalid_input', 'cover must be a gradient or image cover.');
|
|
71
|
+
const allowed = cover.kind === 'gradient' ? new Set(['kind', 'gradientId']) : new Set(['kind', 'url', 'position']);
|
|
72
|
+
if (Object.keys(cover).some((key) => !allowed.has(key)))
|
|
73
|
+
throw new PageToolError('invalid_input', 'cover contains an unknown setting.');
|
|
74
|
+
if (cover.kind === 'gradient' && !oneOf(cover.gradientId, PAGE_COVER_GRADIENT_IDS))
|
|
75
|
+
throw new PageToolError('invalid_input', 'A gradient cover requires a valid gradientId.');
|
|
76
|
+
if (cover.kind === 'image' && (typeof cover.url !== 'string' || (!/^https:\/\//i.test(cover.url) && !cover.url.startsWith('/api/assets/')))) {
|
|
77
|
+
throw new PageToolError('invalid_input', 'cover.url must be https or an OpenBook asset URL');
|
|
78
|
+
}
|
|
79
|
+
if (cover.position !== undefined && (typeof cover.position !== 'number' || cover.position < 0 || cover.position > 1))
|
|
80
|
+
throw new PageToolError('invalid_input', 'cover.position must be between 0 and 1.');
|
|
81
|
+
patch[COVER_PROPERTY_ID] = cover.kind === 'gradient'
|
|
82
|
+
? { kind: 'gradient', css: COVER_GRADIENTS.find(({ id }) => id === cover.gradientId).css }
|
|
83
|
+
: cover;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
if (Object.keys(patch).length === 0)
|
|
87
|
+
throw new PageToolError('invalid_input', 'Pass at least one appearance setting.');
|
|
88
|
+
return patch;
|
|
89
|
+
}
|
|
90
|
+
export function validatePageProperties(input) {
|
|
91
|
+
const out = {};
|
|
92
|
+
for (const [key, value] of Object.entries(input)) {
|
|
93
|
+
if (key === BACKLINKS_PROPERTY_ID)
|
|
94
|
+
throw new PageToolError('invalid_input', 'Backlinks are computed and cannot be set.');
|
|
95
|
+
if (key === OWNER_PROPERTY_ID) {
|
|
96
|
+
if (value !== null && typeof value !== 'string')
|
|
97
|
+
throw new PageToolError('invalid_input', 'sys_owner must be a string or null.');
|
|
98
|
+
}
|
|
99
|
+
else if (key === VERIFICATION_PROPERTY_ID) {
|
|
100
|
+
if (value !== null) {
|
|
101
|
+
const v = record(value);
|
|
102
|
+
if (!v || typeof v.verified !== 'boolean' || ['by', 'at', 'expiresAt'].some((field) => v[field] !== undefined && v[field] !== null && typeof v[field] !== 'string')) {
|
|
103
|
+
throw new PageToolError('invalid_input', 'sys_verification has an invalid value.');
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
else {
|
|
108
|
+
throw new PageToolError('invalid_input', `Unknown page property "${key}".`);
|
|
109
|
+
}
|
|
110
|
+
out[key] = value;
|
|
111
|
+
}
|
|
112
|
+
if (Object.keys(out).length === 0)
|
|
113
|
+
throw new PageToolError('invalid_input', 'Pass at least one page property.');
|
|
114
|
+
return out;
|
|
115
|
+
}
|
|
116
|
+
const page = async (store, pageId) => {
|
|
117
|
+
const found = await store.getPage(pageId);
|
|
118
|
+
if (!found)
|
|
119
|
+
throw new PageToolError('page_not_found', 'Page not found.');
|
|
120
|
+
return found;
|
|
121
|
+
};
|
|
122
|
+
export async function setPageAppearanceTool(store, pageId, input) {
|
|
123
|
+
await page(store, pageId);
|
|
124
|
+
const updated = await store.setPageProperties(pageId, buildPageAppearancePatch(input));
|
|
125
|
+
if (!updated)
|
|
126
|
+
throw new PageToolError('page_not_found', 'Page not found.');
|
|
127
|
+
return updated;
|
|
128
|
+
}
|
|
129
|
+
export async function getPagePropertiesTool(store, pageId) {
|
|
130
|
+
return (await page(store, pageId)).properties ?? {};
|
|
131
|
+
}
|
|
132
|
+
export async function setPagePropertiesTool(store, pageId, properties) {
|
|
133
|
+
await page(store, pageId);
|
|
134
|
+
const updated = await store.setPageProperties(pageId, validatePageProperties(properties));
|
|
135
|
+
if (!updated)
|
|
136
|
+
throw new PageToolError('page_not_found', 'Page not found.');
|
|
137
|
+
return updated;
|
|
138
|
+
}
|
|
139
|
+
/** Validate a page move and compute the ordered destination siblings without writing. */
|
|
140
|
+
export function buildMovePlan(pages, input) {
|
|
141
|
+
if (!pages.some((candidate) => candidate.id === input.pageId))
|
|
142
|
+
throw new PageToolError('page_not_found', 'Page not found.');
|
|
143
|
+
if (input.parentId === input.pageId)
|
|
144
|
+
throw new PageToolError('invalid_move', 'A page cannot be its own parent.');
|
|
145
|
+
if (input.parentId !== null && !pages.some((candidate) => candidate.id === input.parentId))
|
|
146
|
+
throw new PageToolError('parent_not_found', 'Parent page not found.');
|
|
147
|
+
const byId = new Map(pages.map((candidate) => [candidate.id, candidate]));
|
|
148
|
+
for (let ancestor = input.parentId; ancestor !== null; ancestor = byId.get(ancestor)?.parentId ?? null) {
|
|
149
|
+
if (ancestor === input.pageId)
|
|
150
|
+
throw new PageToolError('invalid_move', 'The move would create a cycle.');
|
|
151
|
+
}
|
|
152
|
+
const siblings = pages.filter((candidate) => candidate.id !== input.pageId && (candidate.parentId ?? null) === input.parentId).map(({ id }) => id);
|
|
153
|
+
if (input.position && 'afterId' in input.position) {
|
|
154
|
+
const at = siblings.indexOf(input.position.afterId);
|
|
155
|
+
if (at < 0)
|
|
156
|
+
throw new PageToolError('invalid_input', 'afterId must name a sibling under the destination parent.');
|
|
157
|
+
siblings.splice(at + 1, 0, input.pageId);
|
|
158
|
+
}
|
|
159
|
+
else {
|
|
160
|
+
const index = input.position && 'index' in input.position ? input.position.index : siblings.length;
|
|
161
|
+
if (!Number.isInteger(index) || index < 0 || index > siblings.length)
|
|
162
|
+
throw new PageToolError('invalid_input', 'position.index is outside the destination sibling range.');
|
|
163
|
+
siblings.splice(index, 0, input.pageId);
|
|
164
|
+
}
|
|
165
|
+
return { parentId: input.parentId, orderedIds: siblings };
|
|
166
|
+
}
|
|
167
|
+
export async function movePageTool(store, input) {
|
|
168
|
+
await page(store, input.pageId);
|
|
169
|
+
const move = buildMovePlan(await store.listPages(), input);
|
|
170
|
+
const moved = await store.movePage(input.pageId, move);
|
|
171
|
+
if (!moved)
|
|
172
|
+
throw new PageToolError('invalid_move', 'The move was refused.');
|
|
173
|
+
return moved;
|
|
174
|
+
}
|
|
175
|
+
//# sourceMappingURL=pageTools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pageTools.js","sourceRoot":"","sources":["../src/pageTools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/** Inline attributes supported by agent/MCP rich-text input. */
|
|
2
|
+
export interface RunAttrs extends Record<string, unknown> {
|
|
3
|
+
b?: true;
|
|
4
|
+
i?: true;
|
|
5
|
+
u?: true;
|
|
6
|
+
s?: true;
|
|
7
|
+
c?: true;
|
|
8
|
+
a?: string;
|
|
9
|
+
}
|
|
10
|
+
/** The editor's JSON-projection run shape. */
|
|
11
|
+
export interface Run {
|
|
12
|
+
t: string;
|
|
13
|
+
a?: RunAttrs;
|
|
14
|
+
}
|
|
15
|
+
export type RichTextInput = string | {
|
|
16
|
+
runs: Run[];
|
|
17
|
+
};
|
|
18
|
+
export type RichTextInputErrorCode = 'invalid-runs' | 'unsafe-link';
|
|
19
|
+
/** A machine-readable rich-text validation failure. */
|
|
20
|
+
export declare class RichTextInputError extends Error {
|
|
21
|
+
readonly code: RichTextInputErrorCode;
|
|
22
|
+
constructor(code: RichTextInputErrorCode, message: string);
|
|
23
|
+
}
|
|
24
|
+
/** Validate, copy, and coalesce editor-projection runs supplied by a client. */
|
|
25
|
+
export declare function normalizeRuns(input: unknown): Run[];
|
|
26
|
+
/** Parse the deliberately small, DOM-free markdown subset accepted by write tools. */
|
|
27
|
+
export declare function parseMiniMarkdown(text: string): Run[];
|
|
28
|
+
/** Resolve either mini-markdown/plain text or an explicit run envelope. */
|
|
29
|
+
export declare function richTextRuns(input: RichTextInput, plain?: boolean): Run[];
|