@im-nobsidian/core 0.16.0 → 0.17.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/dist/index.d.ts +34 -29
- package/dist/index.js +147 -29
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -9,21 +9,15 @@ declare const DEFAULT_TITLE_PROPERTY = "Name";
|
|
|
9
9
|
declare const DatabaseSyncSchema: z.ZodObject<{
|
|
10
10
|
databaseId: z.ZodString;
|
|
11
11
|
localFolder: z.ZodString;
|
|
12
|
-
propertyMapping: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
13
12
|
pullFilter: z.ZodOptional<z.ZodUnknown>;
|
|
14
|
-
titleProperty: z.ZodDefault<z.ZodString>;
|
|
15
13
|
}, "strip", z.ZodTypeAny, {
|
|
16
14
|
databaseId: string;
|
|
17
15
|
localFolder: string;
|
|
18
|
-
titleProperty: string;
|
|
19
|
-
propertyMapping?: Record<string, string> | undefined;
|
|
20
16
|
pullFilter?: unknown;
|
|
21
17
|
}, {
|
|
22
18
|
databaseId: string;
|
|
23
19
|
localFolder: string;
|
|
24
|
-
propertyMapping?: Record<string, string> | undefined;
|
|
25
20
|
pullFilter?: unknown;
|
|
26
|
-
titleProperty?: string | undefined;
|
|
27
21
|
}>;
|
|
28
22
|
type DatabaseSyncConfig = z.infer<typeof DatabaseSyncSchema>;
|
|
29
23
|
declare const ConfigSchema: z.ZodObject<{
|
|
@@ -36,46 +30,36 @@ declare const ConfigSchema: z.ZodObject<{
|
|
|
36
30
|
databases: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
37
31
|
databaseId: z.ZodString;
|
|
38
32
|
localFolder: z.ZodString;
|
|
39
|
-
propertyMapping: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
40
33
|
pullFilter: z.ZodOptional<z.ZodUnknown>;
|
|
41
|
-
titleProperty: z.ZodDefault<z.ZodString>;
|
|
42
34
|
}, "strip", z.ZodTypeAny, {
|
|
43
35
|
databaseId: string;
|
|
44
36
|
localFolder: string;
|
|
45
|
-
titleProperty: string;
|
|
46
|
-
propertyMapping?: Record<string, string> | undefined;
|
|
47
37
|
pullFilter?: unknown;
|
|
48
38
|
}, {
|
|
49
39
|
databaseId: string;
|
|
50
40
|
localFolder: string;
|
|
51
|
-
propertyMapping?: Record<string, string> | undefined;
|
|
52
41
|
pullFilter?: unknown;
|
|
53
|
-
titleProperty?: string | undefined;
|
|
54
42
|
}>, "many">>;
|
|
55
43
|
}, "strip", z.ZodTypeAny, {
|
|
56
|
-
token: string;
|
|
57
|
-
rootPageId: string;
|
|
58
|
-
parentMode: "page" | "database";
|
|
59
44
|
databases: {
|
|
60
45
|
databaseId: string;
|
|
61
46
|
localFolder: string;
|
|
62
|
-
titleProperty: string;
|
|
63
|
-
propertyMapping?: Record<string, string> | undefined;
|
|
64
47
|
pullFilter?: unknown;
|
|
65
48
|
}[];
|
|
49
|
+
token: string;
|
|
50
|
+
rootPageId: string;
|
|
51
|
+
parentMode: "page" | "database";
|
|
66
52
|
databaseId?: string | undefined;
|
|
67
53
|
}, {
|
|
68
54
|
token: string;
|
|
69
55
|
rootPageId: string;
|
|
70
56
|
databaseId?: string | undefined;
|
|
71
|
-
parentMode?: "page" | "database" | undefined;
|
|
72
57
|
databases?: {
|
|
73
58
|
databaseId: string;
|
|
74
59
|
localFolder: string;
|
|
75
|
-
propertyMapping?: Record<string, string> | undefined;
|
|
76
60
|
pullFilter?: unknown;
|
|
77
|
-
titleProperty?: string | undefined;
|
|
78
61
|
}[] | undefined;
|
|
62
|
+
parentMode?: "page" | "database" | undefined;
|
|
79
63
|
}>;
|
|
80
64
|
sync: z.ZodObject<{
|
|
81
65
|
direction: z.ZodDefault<z.ZodEnum<["push", "pull", "both"]>>;
|
|
@@ -197,16 +181,14 @@ declare const ConfigSchema: z.ZodObject<{
|
|
|
197
181
|
}>;
|
|
198
182
|
}, "strip", z.ZodTypeAny, {
|
|
199
183
|
notion: {
|
|
200
|
-
token: string;
|
|
201
|
-
rootPageId: string;
|
|
202
|
-
parentMode: "page" | "database";
|
|
203
184
|
databases: {
|
|
204
185
|
databaseId: string;
|
|
205
186
|
localFolder: string;
|
|
206
|
-
titleProperty: string;
|
|
207
|
-
propertyMapping?: Record<string, string> | undefined;
|
|
208
187
|
pullFilter?: unknown;
|
|
209
188
|
}[];
|
|
189
|
+
token: string;
|
|
190
|
+
rootPageId: string;
|
|
191
|
+
parentMode: "page" | "database";
|
|
210
192
|
databaseId?: string | undefined;
|
|
211
193
|
};
|
|
212
194
|
conversion: {
|
|
@@ -257,14 +239,12 @@ declare const ConfigSchema: z.ZodObject<{
|
|
|
257
239
|
token: string;
|
|
258
240
|
rootPageId: string;
|
|
259
241
|
databaseId?: string | undefined;
|
|
260
|
-
parentMode?: "page" | "database" | undefined;
|
|
261
242
|
databases?: {
|
|
262
243
|
databaseId: string;
|
|
263
244
|
localFolder: string;
|
|
264
|
-
propertyMapping?: Record<string, string> | undefined;
|
|
265
245
|
pullFilter?: unknown;
|
|
266
|
-
titleProperty?: string | undefined;
|
|
267
246
|
}[] | undefined;
|
|
247
|
+
parentMode?: "page" | "database" | undefined;
|
|
268
248
|
};
|
|
269
249
|
conversion: {
|
|
270
250
|
timeZone?: string | undefined;
|
|
@@ -4808,6 +4788,31 @@ interface Logger {
|
|
|
4808
4788
|
declare function setLogger(logger: Logger): void;
|
|
4809
4789
|
declare function getLogger(): Logger;
|
|
4810
4790
|
|
|
4791
|
+
/**
|
|
4792
|
+
* lookbehind 없이 앞 글을 보는 정규식 — 소스에 `(?<!…)` · `(?<=…)` 를 쓰지 않는다.
|
|
4793
|
+
*
|
|
4794
|
+
* iOS 16.4 앞의 JavaScript 는 lookbehind 를 읽지 못해, 그런 정규식 하나가 든 스크립트 전체가 뜨지 않는다 — 플러그인이
|
|
4795
|
+
* 모바일에서 아예 켜지지 않는다(P11). 커뮤니티 디렉터리의 검사도 데스크톱 전용이 아닌 플러그인의 lookbehind 를
|
|
4796
|
+
* 거절한다. `tests/utils/no-lookbehind.test.ts` 가 소스에 다시 들어오지 않게 막는다.
|
|
4797
|
+
*
|
|
4798
|
+
* `exec` 만 갈아 끼운다 — `replace` · `matchAll` · `split` · `test` 가 모두 `exec` 를 부르므로 쓰는 곳은 바뀌지 않는다.
|
|
4799
|
+
* 맞은 자리의 앞 글이 조건에 맞지 않으면 그 자리를 버리고 다음 글자에서 다시 찾는다. 정규식 맨 앞(또는 마지막
|
|
4800
|
+
* 갈래의 맨 앞)의 lookbehind 와 결과가 같다 — 엔진도 그 자리에서 lookbehind 가 막히면 다음 글자로 넘어간다.
|
|
4801
|
+
*/
|
|
4802
|
+
/** 맞은 것을 받나 — `index` 는 맞은 자리, `match` 는 맞은 것(갈래를 가를 때). */
|
|
4803
|
+
type Lookbehind = (text: string, index: number, match: RegExpExecArray) => boolean;
|
|
4804
|
+
declare class LookbehindRegExp extends RegExp {
|
|
4805
|
+
readonly accept: Lookbehind;
|
|
4806
|
+
/** 실제로 찾는 정규식 — `g`(또는 `y`) 로 어느 자리에서든 이어 찾는다. */
|
|
4807
|
+
private readonly scanner;
|
|
4808
|
+
constructor(pattern: string | RegExp, flags?: string, accept?: Lookbehind);
|
|
4809
|
+
exec(text: string): RegExpExecArray | null;
|
|
4810
|
+
}
|
|
4811
|
+
/** `index` 바로 앞의 글자(써로게이트 쌍은 하나로) — 맨 앞이면 "". */
|
|
4812
|
+
declare function charBefore(text: string, index: number): string;
|
|
4813
|
+
/** `(?<![…])` — 바로 앞 글자가 `set`(글자 하나를 보는 정규식)에 맞지 않거나 맨 앞이다. */
|
|
4814
|
+
declare function notAfter(set: RegExp): Lookbehind;
|
|
4815
|
+
|
|
4811
4816
|
/**
|
|
4812
4817
|
* 경로 패턴(`paths.include` · `paths.exclude` · `.im-nobsidian-ignore`)을 목록에 대는 VaultFS.
|
|
4813
4818
|
*
|
|
@@ -5096,4 +5101,4 @@ declare function readColumnLayout(lines: readonly string[]): (ColumnPlace | unde
|
|
|
5096
5101
|
/** 열 이름표 — `열 2/3 · 50%`. 비율이 없으면 `열 2/3`. */
|
|
5097
5102
|
declare function columnLabel(place: ColumnPlace): string;
|
|
5098
5103
|
|
|
5099
|
-
export { BaseFileGenerator, type BaseFileOptions, type BasePropertyOption, type BasePropertySchema, type BaseStatusGroup, type BaseSyncOptions, type BasesFilterNode, type BasesViewMapping, type BasesViewType, BlankLineCollapser, type BookmarkTarget, CONFIG_FILE, CONFLICT_STRATEGIES, type CalendarEntry, type CalloutDesign, CalloutRestorer, CalloutTransformer, ChangeDetector, type ChangeDiff, ColorAnnotator, type ColumnPlace, type CompletenessFailure, type CompletenessLocalSource, type CompletenessOptions, type CompletenessRemoteSource, type CompletenessReport, type Config, ConfigManager, ConfigSchema, type Conflict, ConflictResolver, type ConflictStrategy, ConnectionBoundaryError, ConnectionScopeError, type ConversionContext, type ConversionPath, ConversionPipeline, type ConversionResult, type CoverConfig, type DBEntry, DB_VIEWS_FILE, DB_VIEWS_PATH, DEFAULT_CONFIG, DEFAULT_TITLE_PROPERTY, DEFAULT_WATCH_DEBOUNCE_MS, DIFF_SIGN, type DatabaseCompleteness, type DatabaseMove, type DatabaseSyncConfig, type DatabaseSyncResult, DatabaseSyncer, type DatabaseViewsConfig, type DeferredCode, type DegradeNote, type DesignColor, type DesignLine, type DesignSegment, type DiffHunk, type DiffLine, EmbedResolver, EntryEditor, type FailedOperation, type FidelityClassification, type FidelityContext, type FidelityDefect, type FidelityDefectForm, type FidelitySummary, type FileDownloadResult, FileHandler, type FileInfo, type FileRegistryEntry, type FileStatInfo, type FileSystemEntry, type FileType, type FileUploadResult, FileWatcher, type FilterCondition, FilteredVaultFS, type FolderDatabaseReport, type FolderMoveChange, FrontmatterExtractor, FrontmatterGenerator, type FullScanReason, GITIGNORE_ENTRY, type GatedOperation, type GroupByConfig, type GroupedEntries, IGNORE_FILE, INTERNAL_DIR, INTERNAL_DIR_GLOB, type IStateDB, type ImageDownloadResult, ImageHandler, type ImageReference, type InferredProperty, InlineAnnotationPreserver, InlineDBParser, type InlineStyle, type LineDiffOptions, type LineRange, type LocalChange, LocalImageRestorer, type LocalMoveAdoption, type LocalScan, type LocalScanOptions, type Logger, MARKER_BRAND, type MappingResult, type MappingType, MathNormalizer, MentionToWikilink, type MergeConflictRegion, type MergeResult, NOTION_COLOR_NAMES, NOTION_TOKEN_PREFIX, NOTION_TO_BASES_VIEW, type NestedFolderPage, type NestedFolderRecord, NodeVaultFS, type NonMdFileInfo, type NotionAccessCheck, type NotionBlock, NotionBlockBuilder, NotionClient, type NotionClientOptions, type NotionColor, type NotionPageNode, type NotionRichText, type RichTextItem as NotionRichTextItem, type NotionSidecar, OBSIDIAN_CONFIG_DIR, OBSIDIAN_ONLY_PATTERNS, type OperationType, type OutsideVault, type PageCompletenessRemoteSource, type PageCompletenessReport, type PageCover, type PageCreationPlan, type PageIcon, PathFilter, type PathFilterConfig, type PendingOperation, PendingWalError, type PlacementChange, type PlannedRow, type PreserveMarker, PreserveMarkerCollector, PreserveMarkerInjector, type Processor, type ProcessorInput, type ProcessorMetadata, type ProcessorOutput, type ProgressCallback, type ProgressItem, PropertiesTableInjector, PropertiesTableRestorer, PropertyMapper, type PropertyOption, type PropertyRename, type PropertySchema, type PropertyValue, type PullOptions, type PullResult, type PushOptions, type PushResult, RENDER_LINE_RULES, type ReadOnlySkip, type RecordPendingInput, type RegisterFileInput, type RemoteChange, type RemoteMove, type RemoteMoveSkip, type RemoteObservation, type RemoteScanInfo, type RenameHints, type RenameKind, type RenderFinding, type RenderLineRule, type ResolutionChoice, type ResolutionResult, type RichTextSegment, type RowProgress, SAVED_STATE_TABLES_QUERY, SEPARATOR_BODY, SIDECAR_SUFFIX, STATE_DB_FILE, STATE_DB_MIGRATIONS, STATE_DB_PATH, SavedStateDbError, type SchemaEdit, type SchemaFollowed, ScopedVaultFS, SidecarGenerator, type SidecarProperty, type SidecarView, StateDB, StateDbLockedError, type StateDbMigration, type StateDbTool, StateDbUnavailableError, StateLock, type StateLockClaim, type StateLockOwner, type StatusOptions, type StatusResult, type StyledRange, SyncBusyError, type SyncDirection, type SyncOptions, SyncOrchestrator, type SyncRecord, type SyncResult, type SyncStatus, TEMPLATE_FOLDER_SETTINGS, type TableLineDesign, type TranslationResult, TreeMapper, UnlinkedVaultError, UnsupportedBlockStripper, type UpsertSyncRecord, type UserBaseFilterFix, type VaultCompletenessReport, type VaultFS, type ViewConfig, ViewDataProvider, type ViewEdit, type ViewPropertyConfig, type ViewRenderData, type ViewType, WIKILINK_LOOKUPS, type WatchSyncOptions, type WatchSyncScope, WatchSyncService, type WikilinkEntry, type WikilinkLookup, WikilinkResolver, applicableChoices, assertNoPendingWal, basesViewMappingOf, basesViewTypeOf, checkNotionAccess, choiceForStrategy, classifyBodyFidelity, columnLabel, compactNotionId, computeBufferHash, computeHash, configDirFrom, connectionFolderOf, createDefaultPipeline, extractCalendarEntries, filterByMonth, filterEntries, findConnectionFolders, findNestedFolderPages, formatUnifiedDiff, generateColorCSS, generateId, getLogger, getNotionBgColor, getNotionColor, getVisibleProperties, groupEntries, hasColumnLayout, hasDesignMarker, inAnyPathScope, isHeadingLine, isHeadingMarkerLine, isInternalPath, isMarkdownPath, isRemoteDeletion, lineDiff, lintRenderedMarkdown, matchesPathScope, normalizeNotionId, normalizeVaultPath, noteNameFromPath, notionIdFromInput, notionIdsEqual, notionPageUrl, obsidianOnlyExcludes, operationLabel, parseDesignColor, parseIgnorePatterns, pendingWalBytes, readColumnLayout, readDesignLine, resolvePropertyName, sanitizeFileName, sectionLinesWithHeadingMarkers, setLogger, shortNotionId, sortEntries, stateDbLockPath, stateDbWalPath, stripMarkdownExtension, summarizeFidelity, systemTimeZone, templateFolders, threeWayMerge, toVaultPath, translateNotionFilter, verifyDatabaseCompleteness, verifyPageCompleteness, wikilinkLookupsIn };
|
|
5104
|
+
export { BaseFileGenerator, type BaseFileOptions, type BasePropertyOption, type BasePropertySchema, type BaseStatusGroup, type BaseSyncOptions, type BasesFilterNode, type BasesViewMapping, type BasesViewType, BlankLineCollapser, type BookmarkTarget, CONFIG_FILE, CONFLICT_STRATEGIES, type CalendarEntry, type CalloutDesign, CalloutRestorer, CalloutTransformer, ChangeDetector, type ChangeDiff, ColorAnnotator, type ColumnPlace, type CompletenessFailure, type CompletenessLocalSource, type CompletenessOptions, type CompletenessRemoteSource, type CompletenessReport, type Config, ConfigManager, ConfigSchema, type Conflict, ConflictResolver, type ConflictStrategy, ConnectionBoundaryError, ConnectionScopeError, type ConversionContext, type ConversionPath, ConversionPipeline, type ConversionResult, type CoverConfig, type DBEntry, DB_VIEWS_FILE, DB_VIEWS_PATH, DEFAULT_CONFIG, DEFAULT_TITLE_PROPERTY, DEFAULT_WATCH_DEBOUNCE_MS, DIFF_SIGN, type DatabaseCompleteness, type DatabaseMove, type DatabaseSyncConfig, type DatabaseSyncResult, DatabaseSyncer, type DatabaseViewsConfig, type DeferredCode, type DegradeNote, type DesignColor, type DesignLine, type DesignSegment, type DiffHunk, type DiffLine, EmbedResolver, EntryEditor, type FailedOperation, type FidelityClassification, type FidelityContext, type FidelityDefect, type FidelityDefectForm, type FidelitySummary, type FileDownloadResult, FileHandler, type FileInfo, type FileRegistryEntry, type FileStatInfo, type FileSystemEntry, type FileType, type FileUploadResult, FileWatcher, type FilterCondition, FilteredVaultFS, type FolderDatabaseReport, type FolderMoveChange, FrontmatterExtractor, FrontmatterGenerator, type FullScanReason, GITIGNORE_ENTRY, type GatedOperation, type GroupByConfig, type GroupedEntries, IGNORE_FILE, INTERNAL_DIR, INTERNAL_DIR_GLOB, type IStateDB, type ImageDownloadResult, ImageHandler, type ImageReference, type InferredProperty, InlineAnnotationPreserver, InlineDBParser, type InlineStyle, type LineDiffOptions, type LineRange, type LocalChange, LocalImageRestorer, type LocalMoveAdoption, type LocalScan, type LocalScanOptions, type Logger, type Lookbehind, LookbehindRegExp, MARKER_BRAND, type MappingResult, type MappingType, MathNormalizer, MentionToWikilink, type MergeConflictRegion, type MergeResult, NOTION_COLOR_NAMES, NOTION_TOKEN_PREFIX, NOTION_TO_BASES_VIEW, type NestedFolderPage, type NestedFolderRecord, NodeVaultFS, type NonMdFileInfo, type NotionAccessCheck, type NotionBlock, NotionBlockBuilder, NotionClient, type NotionClientOptions, type NotionColor, type NotionPageNode, type NotionRichText, type RichTextItem as NotionRichTextItem, type NotionSidecar, OBSIDIAN_CONFIG_DIR, OBSIDIAN_ONLY_PATTERNS, type OperationType, type OutsideVault, type PageCompletenessRemoteSource, type PageCompletenessReport, type PageCover, type PageCreationPlan, type PageIcon, PathFilter, type PathFilterConfig, type PendingOperation, PendingWalError, type PlacementChange, type PlannedRow, type PreserveMarker, PreserveMarkerCollector, PreserveMarkerInjector, type Processor, type ProcessorInput, type ProcessorMetadata, type ProcessorOutput, type ProgressCallback, type ProgressItem, PropertiesTableInjector, PropertiesTableRestorer, PropertyMapper, type PropertyOption, type PropertyRename, type PropertySchema, type PropertyValue, type PullOptions, type PullResult, type PushOptions, type PushResult, RENDER_LINE_RULES, type ReadOnlySkip, type RecordPendingInput, type RegisterFileInput, type RemoteChange, type RemoteMove, type RemoteMoveSkip, type RemoteObservation, type RemoteScanInfo, type RenameHints, type RenameKind, type RenderFinding, type RenderLineRule, type ResolutionChoice, type ResolutionResult, type RichTextSegment, type RowProgress, SAVED_STATE_TABLES_QUERY, SEPARATOR_BODY, SIDECAR_SUFFIX, STATE_DB_FILE, STATE_DB_MIGRATIONS, STATE_DB_PATH, SavedStateDbError, type SchemaEdit, type SchemaFollowed, ScopedVaultFS, SidecarGenerator, type SidecarProperty, type SidecarView, StateDB, StateDbLockedError, type StateDbMigration, type StateDbTool, StateDbUnavailableError, StateLock, type StateLockClaim, type StateLockOwner, type StatusOptions, type StatusResult, type StyledRange, SyncBusyError, type SyncDirection, type SyncOptions, SyncOrchestrator, type SyncRecord, type SyncResult, type SyncStatus, TEMPLATE_FOLDER_SETTINGS, type TableLineDesign, type TranslationResult, TreeMapper, UnlinkedVaultError, UnsupportedBlockStripper, type UpsertSyncRecord, type UserBaseFilterFix, type VaultCompletenessReport, type VaultFS, type ViewConfig, ViewDataProvider, type ViewEdit, type ViewPropertyConfig, type ViewRenderData, type ViewType, WIKILINK_LOOKUPS, type WatchSyncOptions, type WatchSyncScope, WatchSyncService, type WikilinkEntry, type WikilinkLookup, WikilinkResolver, applicableChoices, assertNoPendingWal, basesViewMappingOf, basesViewTypeOf, charBefore, checkNotionAccess, choiceForStrategy, classifyBodyFidelity, columnLabel, compactNotionId, computeBufferHash, computeHash, configDirFrom, connectionFolderOf, createDefaultPipeline, extractCalendarEntries, filterByMonth, filterEntries, findConnectionFolders, findNestedFolderPages, formatUnifiedDiff, generateColorCSS, generateId, getLogger, getNotionBgColor, getNotionColor, getVisibleProperties, groupEntries, hasColumnLayout, hasDesignMarker, inAnyPathScope, isHeadingLine, isHeadingMarkerLine, isInternalPath, isMarkdownPath, isRemoteDeletion, lineDiff, lintRenderedMarkdown, matchesPathScope, normalizeNotionId, normalizeVaultPath, notAfter, noteNameFromPath, notionIdFromInput, notionIdsEqual, notionPageUrl, obsidianOnlyExcludes, operationLabel, parseDesignColor, parseIgnorePatterns, pendingWalBytes, readColumnLayout, readDesignLine, resolvePropertyName, sanitizeFileName, sectionLinesWithHeadingMarkers, setLogger, shortNotionId, sortEntries, stateDbLockPath, stateDbWalPath, stripMarkdownExtension, summarizeFidelity, systemTimeZone, templateFolders, threeWayMerge, toVaultPath, translateNotionFilter, verifyDatabaseCompleteness, verifyPageCompleteness, wikilinkLookupsIn };
|
package/dist/index.js
CHANGED
|
@@ -118,7 +118,16 @@ var REQUEST_BYTES_MAX = 5e5;
|
|
|
118
118
|
var DEFAULT_DOWNLOAD_TIMEOUT_MS = 3e5;
|
|
119
119
|
function fetchForDownload(fetchFn, url, timeoutMs = DEFAULT_DOWNLOAD_TIMEOUT_MS) {
|
|
120
120
|
if (timeoutMs <= 0) return fetchFn(url);
|
|
121
|
-
return fetchFn(url, { signal:
|
|
121
|
+
return fetchFn(url, { signal: timeoutSignal(timeoutMs) });
|
|
122
|
+
}
|
|
123
|
+
function timeoutSignal(timeoutMs) {
|
|
124
|
+
if (typeof AbortSignal.timeout === "function") return AbortSignal.timeout(timeoutMs);
|
|
125
|
+
const controller = new AbortController();
|
|
126
|
+
setTimeout(
|
|
127
|
+
() => controller.abort(new DOMException("The operation timed out.", "TimeoutError")),
|
|
128
|
+
timeoutMs
|
|
129
|
+
);
|
|
130
|
+
return controller.signal;
|
|
122
131
|
}
|
|
123
132
|
|
|
124
133
|
// src/utils/deadline.ts
|
|
@@ -187,9 +196,7 @@ var DEFAULT_TITLE_PROPERTY = "Name";
|
|
|
187
196
|
var DatabaseSyncSchema = z.object({
|
|
188
197
|
databaseId: z.string(),
|
|
189
198
|
localFolder: z.string(),
|
|
190
|
-
|
|
191
|
-
pullFilter: z.unknown().optional(),
|
|
192
|
-
titleProperty: z.string().default(DEFAULT_TITLE_PROPERTY)
|
|
199
|
+
pullFilter: z.unknown().optional()
|
|
193
200
|
});
|
|
194
201
|
var DEFAULTS = {
|
|
195
202
|
version: 1,
|
|
@@ -259,12 +266,36 @@ var RETIRED_SETTINGS = [
|
|
|
259
266
|
note: "\uAEBC\uB3C4 \uBC14\uB010 \uAC83\uC774 \uC5C6\uC5C8\uC2B5\uB2C8\uB2E4 \u2014 frontmatter \uB294 \uB298 Notion \uC18D\uC131\uC73C\uB85C \uC8FC\uACE0\uBC1B\uC2B5\uB2C8\uB2E4"
|
|
260
267
|
}
|
|
261
268
|
];
|
|
269
|
+
var RETIRED_DATABASE_SETTINGS = [
|
|
270
|
+
{
|
|
271
|
+
key: "propertyMapping",
|
|
272
|
+
meant: (value) => value !== void 0,
|
|
273
|
+
note: "\uC5B4\uB514\uC5D0\uB3C4 \uC4F0\uC774\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4 \u2014 \uC18D\uC131\uC740 frontmatter \uC758 \uC774\uB984 \uADF8\uB300\uB85C Notion \uC18D\uC131\uACFC \uC9DD\uC9D3\uC2B5\uB2C8\uB2E4"
|
|
274
|
+
},
|
|
275
|
+
{
|
|
276
|
+
key: "titleProperty",
|
|
277
|
+
meant: (value) => value !== void 0 && value !== DEFAULT_TITLE_PROPERTY,
|
|
278
|
+
note: "\uC5B4\uB514\uC5D0\uB3C4 \uC4F0\uC774\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4 \u2014 \uC81C\uBAA9 \uC18D\uC131\uC740 Notion DB \uC758 title \uC18D\uC131\uC744 \uC77D\uC5B4 \uCC3E\uC2B5\uB2C8\uB2E4"
|
|
279
|
+
}
|
|
280
|
+
];
|
|
262
281
|
function retiredSettings(raw) {
|
|
263
|
-
|
|
264
|
-
|
|
282
|
+
const root = raw;
|
|
283
|
+
const lines = RETIRED_SETTINGS.flatMap(({ path: [section, key], meant, note }) => {
|
|
284
|
+
const group2 = root?.[section];
|
|
265
285
|
const value = group2 && typeof group2 === "object" ? group2[key] : void 0;
|
|
266
286
|
return meant(value) ? [`${section}.${key}: ${note}`] : [];
|
|
267
287
|
});
|
|
288
|
+
const notion = root?.notion;
|
|
289
|
+
const databases = Array.isArray(notion?.databases) ? notion.databases : [];
|
|
290
|
+
databases.forEach((database, index) => {
|
|
291
|
+
if (!database || typeof database !== "object") return;
|
|
292
|
+
for (const { key, meant, note } of RETIRED_DATABASE_SETTINGS) {
|
|
293
|
+
if (meant(database[key])) {
|
|
294
|
+
lines.push(`notion.databases[${index}].${key}: ${note}`);
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
});
|
|
298
|
+
return lines;
|
|
268
299
|
}
|
|
269
300
|
var ConfigSchema = z.object({
|
|
270
301
|
version: z.literal(1),
|
|
@@ -5847,6 +5878,69 @@ function decodeMarkerTarget(encoded) {
|
|
|
5847
5878
|
var MARKER_URL_CAPTURE = "((?:[^()\\s]|\\([^()]*\\))+)";
|
|
5848
5879
|
var MARKER_LABEL_CAPTURE = "([^[\\]]+)";
|
|
5849
5880
|
|
|
5881
|
+
// src/utils/lookbehind.ts
|
|
5882
|
+
var LookbehindRegExp = class _LookbehindRegExp extends RegExp {
|
|
5883
|
+
accept;
|
|
5884
|
+
/** 실제로 찾는 정규식 — `g`(또는 `y`) 로 어느 자리에서든 이어 찾는다. */
|
|
5885
|
+
scanner;
|
|
5886
|
+
constructor(pattern, flags, accept) {
|
|
5887
|
+
super(pattern, flags);
|
|
5888
|
+
const inherited = pattern instanceof _LookbehindRegExp ? pattern.accept : void 0;
|
|
5889
|
+
const resolved = accept ?? inherited;
|
|
5890
|
+
if (!resolved) throw new TypeError("LookbehindRegExp \uC5D0 \uC55E \uAE00 \uC870\uAC74\uC774 \uC5C6\uC74C");
|
|
5891
|
+
this.accept = resolved;
|
|
5892
|
+
this.scanner = new RegExp(
|
|
5893
|
+
this.source,
|
|
5894
|
+
this.sticky || this.global ? this.flags : `${this.flags}g`
|
|
5895
|
+
);
|
|
5896
|
+
}
|
|
5897
|
+
exec(text) {
|
|
5898
|
+
const keepsIndex = this.global || this.sticky;
|
|
5899
|
+
const start = keepsIndex ? this.lastIndex : 0;
|
|
5900
|
+
this.scanner.lastIndex = start;
|
|
5901
|
+
for (; ; ) {
|
|
5902
|
+
const match = start > text.length ? null : this.scanner.exec(text);
|
|
5903
|
+
if (match === null) {
|
|
5904
|
+
if (keepsIndex) this.lastIndex = 0;
|
|
5905
|
+
return null;
|
|
5906
|
+
}
|
|
5907
|
+
if (this.accept(text, match.index, match)) {
|
|
5908
|
+
if (keepsIndex) this.lastIndex = this.scanner.lastIndex;
|
|
5909
|
+
return match;
|
|
5910
|
+
}
|
|
5911
|
+
if (this.sticky) {
|
|
5912
|
+
this.lastIndex = 0;
|
|
5913
|
+
return null;
|
|
5914
|
+
}
|
|
5915
|
+
this.scanner.lastIndex = match.index + codeUnitsAt(text, match.index, this.unicode);
|
|
5916
|
+
}
|
|
5917
|
+
}
|
|
5918
|
+
};
|
|
5919
|
+
function codeUnitsAt(text, index, unicode) {
|
|
5920
|
+
return unicode && (text.codePointAt(index) ?? 0) > 65535 ? 2 : 1;
|
|
5921
|
+
}
|
|
5922
|
+
function charBefore(text, index) {
|
|
5923
|
+
if (index <= 0) return "";
|
|
5924
|
+
const low = text.charCodeAt(index - 1);
|
|
5925
|
+
const isLow = low >= 56320 && low <= 57343;
|
|
5926
|
+
const high = index >= 2 ? text.charCodeAt(index - 2) : 0;
|
|
5927
|
+
return isLow && high >= 55296 && high <= 56319 ? text.slice(index - 2, index) : text.slice(index - 1, index);
|
|
5928
|
+
}
|
|
5929
|
+
function notAfter(set) {
|
|
5930
|
+
return (text, index) => {
|
|
5931
|
+
const before = charBefore(text, index);
|
|
5932
|
+
return before === "" || !set.test(before);
|
|
5933
|
+
};
|
|
5934
|
+
}
|
|
5935
|
+
function notAfterText(literal) {
|
|
5936
|
+
return (text, index) => !text.slice(Math.max(0, index - literal.length), index).endsWith(literal);
|
|
5937
|
+
}
|
|
5938
|
+
function evenBackslashesBefore(text, index) {
|
|
5939
|
+
let count = 0;
|
|
5940
|
+
while (index - count - 1 >= 0 && text[index - count - 1] === "\\") count++;
|
|
5941
|
+
return count % 2 === 0;
|
|
5942
|
+
}
|
|
5943
|
+
|
|
5850
5944
|
// src/converter/anchor-links.ts
|
|
5851
5945
|
function splitAnchor(target) {
|
|
5852
5946
|
const at = target.indexOf("#");
|
|
@@ -5900,7 +5994,11 @@ function anchorBlockOf(block) {
|
|
|
5900
5994
|
text: (body?.rich_text ?? []).map((t) => t.plain_text ?? "").join("")
|
|
5901
5995
|
};
|
|
5902
5996
|
}
|
|
5903
|
-
var ANCHORED_WIKILINK_RE =
|
|
5997
|
+
var ANCHORED_WIKILINK_RE = new LookbehindRegExp(
|
|
5998
|
+
/\[\[([^[\]|]*#[^[\]|]*?)\\?(?:\|[^[\]]+)?\]\]/g,
|
|
5999
|
+
void 0,
|
|
6000
|
+
notAfter(/!/)
|
|
6001
|
+
);
|
|
5904
6002
|
function anchoredWikilinkTargets(markdown) {
|
|
5905
6003
|
return [...new Set([...markdown.matchAll(ANCHORED_WIKILINK_RE)].map((m) => m[1].trim()))].filter(
|
|
5906
6004
|
(target) => splitAnchor(target) !== null
|
|
@@ -5911,7 +6009,11 @@ function notionBlockUrl(pageId, blockId) {
|
|
|
5911
6009
|
}
|
|
5912
6010
|
|
|
5913
6011
|
// src/converter/pre-processors/wikilink.ts
|
|
5914
|
-
var WIKILINK_REGEX2 =
|
|
6012
|
+
var WIKILINK_REGEX2 = new LookbehindRegExp(
|
|
6013
|
+
/\[\[([^[\]|]+)(?:\|([^[\]]+))?\]\]/g,
|
|
6014
|
+
void 0,
|
|
6015
|
+
notAfter(/!/)
|
|
6016
|
+
);
|
|
5915
6017
|
function withoutTableAliasEscape(target) {
|
|
5916
6018
|
return target.endsWith("\\") ? target.slice(0, -1) : target;
|
|
5917
6019
|
}
|
|
@@ -6144,7 +6246,7 @@ function withoutPrefix(line, prefix) {
|
|
|
6144
6246
|
if (line.trimEnd() === prefix.trimEnd()) return "";
|
|
6145
6247
|
return null;
|
|
6146
6248
|
}
|
|
6147
|
-
var DOUBLE_DOLLAR_RE = /(
|
|
6249
|
+
var DOUBLE_DOLLAR_RE = new LookbehindRegExp(/\$\$(?!\$)/g, void 0, notAfter(/[\\$]/));
|
|
6148
6250
|
var OWN_LINE_DOLLARS_RE = new RegExp(
|
|
6149
6251
|
String.raw`^(?:[ \t]*>)*[ \t]*(?:\[![^\]]*\][+-]?[ \t]*|${LIST_MARKER_SOURCE}[ \t]+)?\$\$[ \t]*$`
|
|
6150
6252
|
);
|
|
@@ -6276,9 +6378,11 @@ var HEAD_LINE_PARTS_RE = /^([ \t]*(?:>[ \t]*)+)(\[![^\]\s]+\][-+]?)(.*)$/;
|
|
|
6276
6378
|
var TITLE_EMBED_RE = /[ \t]*!\[\[([^[\]]+)\]\]/g;
|
|
6277
6379
|
var MARKDOWN_IMAGE_REGEX = /!\[([^\]]*)\]\(([^)]+)\)/g;
|
|
6278
6380
|
var VIDEO_HOSTS = ["youtube.com", "youtu.be", "vimeo.com"];
|
|
6279
|
-
var STRAY_MEDIA_MARKER_RE = new
|
|
6280
|
-
|
|
6281
|
-
"gu"
|
|
6381
|
+
var STRAY_MEDIA_MARKER_RE = new LookbehindRegExp(
|
|
6382
|
+
`%%\\s*${MARKER_BRAND_RE}:local-(?:image|file):${MARKER_PAYLOAD_CHAR}+?\\s*%%`,
|
|
6383
|
+
"gu",
|
|
6384
|
+
// 같은 줄의 앞에 📎 이 없다 — 예전 `(?<!📎[^\n]*)`
|
|
6385
|
+
(text, index) => !text.slice(text.lastIndexOf("\n", index - 1) + 1, index).includes("\u{1F4CE}")
|
|
6282
6386
|
);
|
|
6283
6387
|
var EmbedResolver = class {
|
|
6284
6388
|
name = "EmbedResolver";
|
|
@@ -6778,7 +6882,7 @@ function containerBlockEnds(lines) {
|
|
|
6778
6882
|
|
|
6779
6883
|
// src/converter/pre-processors/html-annotation.ts
|
|
6780
6884
|
var UNDERLINE_REGEX = /<u>([\s\S]*?)<\/u>/g;
|
|
6781
|
-
var HIGHLIGHT_REGEX =
|
|
6885
|
+
var HIGHLIGHT_REGEX = new LookbehindRegExp(/==([^=\n]+?)==(?!=)/g, void 0, notAfter(/=/));
|
|
6782
6886
|
var MARK_REGEX = /<mark(?:\s[^>]*)?>([^\n]+?)<\/mark>/g;
|
|
6783
6887
|
var COLOR_SPAN_REGEX = /<span class="notion-(\w+)(-bg)?">([\s\S]*?)<\/span>/g;
|
|
6784
6888
|
var SPACED_COLOR_REGEX = new RegExp(
|
|
@@ -7500,7 +7604,7 @@ var CommentStripper = class {
|
|
|
7500
7604
|
};
|
|
7501
7605
|
|
|
7502
7606
|
// src/converter/pre-processors/footnote-guard.ts
|
|
7503
|
-
var FOOTNOTE_TOKEN_REGEX =
|
|
7607
|
+
var FOOTNOTE_TOKEN_REGEX = new LookbehindRegExp(/\[\^([^\]\s]+)\]/g, void 0, notAfter(/\\/));
|
|
7504
7608
|
var FootnoteGuard = class {
|
|
7505
7609
|
name = "FootnoteGuard";
|
|
7506
7610
|
order = 12;
|
|
@@ -9988,12 +10092,16 @@ function mapOutsideRanges(line, ranges, fn) {
|
|
|
9988
10092
|
}
|
|
9989
10093
|
return out + fn(line.slice(pos));
|
|
9990
10094
|
}
|
|
9991
|
-
var WIKILINK_FORMAT_CHAR_RE = /(
|
|
10095
|
+
var WIKILINK_FORMAT_CHAR_RE = new LookbehindRegExp(/([*_~`$])/g, void 0, notAfter(/\\/));
|
|
9992
10096
|
function sendWikilinkText(text) {
|
|
9993
10097
|
return text.replace(WIKILINK_FORMAT_CHAR_RE, "\\$1");
|
|
9994
10098
|
}
|
|
9995
10099
|
var WIKILINK_ESCAPED_RE = /\\([*_~`$<>])/g;
|
|
9996
|
-
var PLAIN_WIKILINK_RE =
|
|
10100
|
+
var PLAIN_WIKILINK_RE = new LookbehindRegExp(
|
|
10101
|
+
/\[\[(?!notion:)([^[\]\n]+)\]\]/g,
|
|
10102
|
+
void 0,
|
|
10103
|
+
notAfter(/!/)
|
|
10104
|
+
);
|
|
9997
10105
|
function receiveWikilinkText(markdown) {
|
|
9998
10106
|
if (!markdown.includes("[[")) return markdown;
|
|
9999
10107
|
return mapOutsideCodeFences(
|
|
@@ -10026,6 +10134,7 @@ function extractInlineDbIds(markdown) {
|
|
|
10026
10134
|
}
|
|
10027
10135
|
|
|
10028
10136
|
// src/converter/child-tags.ts
|
|
10137
|
+
var UNESCAPED_UNDERSCORE_RE = new LookbehindRegExp(/_/g, void 0, notAfter(/\\/));
|
|
10029
10138
|
var CHILD_PAGE_TAG_RE = /<page url="([^"]*)">([\s\S]*?)<\/page>/g;
|
|
10030
10139
|
var CHILD_DATABASE_TAG_RE = /<database\b([^>]*)>([\s\S]*?)<\/database>/g;
|
|
10031
10140
|
var ID32_RE = /[a-f0-9]{32}/;
|
|
@@ -10109,7 +10218,7 @@ function sendableTag(child) {
|
|
|
10109
10218
|
if (child.kind !== "page" || !child.title.includes("_")) return child.tag;
|
|
10110
10219
|
const close = "</page>";
|
|
10111
10220
|
const head = child.tag.slice(0, child.tag.length - close.length - child.title.length);
|
|
10112
|
-
return `${head}${child.title.replace(
|
|
10221
|
+
return `${head}${child.title.replace(UNESCAPED_UNDERSCORE_RE, "\\_")}${close}`;
|
|
10113
10222
|
}
|
|
10114
10223
|
var CONTAINER_OPEN_RE = /^[ \t]*<(callout|details|columns|column)\b[^>]*>[ \t]*$/;
|
|
10115
10224
|
var CONTAINER_CLOSE_RE = /^[ \t]*<\/(?:callout|details|columns|column)>[ \t]*$/;
|
|
@@ -10673,10 +10782,9 @@ function markersToMentions(obsidian) {
|
|
|
10673
10782
|
// src/converter/table.ts
|
|
10674
10783
|
var PIPE_TABLE_ATTRS = [["header-row", "true"]];
|
|
10675
10784
|
var ESCAPED_PIPE = "\\|";
|
|
10676
|
-
var
|
|
10677
|
-
var
|
|
10678
|
-
var
|
|
10679
|
-
var TRAILING_CELL_PIPE_RE = new RegExp(`${CELL_PIPE_SOURCE}$`);
|
|
10785
|
+
var CELL_PIPE_RE = new LookbehindRegExp(/\|/, void 0, evenBackslashesBefore);
|
|
10786
|
+
var CELL_PIPES_RE = new LookbehindRegExp(/\|/g, void 0, evenBackslashesBefore);
|
|
10787
|
+
var TRAILING_CELL_PIPE_RE = new LookbehindRegExp(/\|$/, void 0, evenBackslashesBefore);
|
|
10680
10788
|
var CODE_PIPE_RE = /(\\*)\|/g;
|
|
10681
10789
|
function encodeCodePipes(code) {
|
|
10682
10790
|
return code.replace(CODE_PIPE_RE, (_m, bs) => `${bs}${bs}${ESCAPED_PIPE}`);
|
|
@@ -11364,6 +11472,7 @@ function mergeAndSplit(items) {
|
|
|
11364
11472
|
}
|
|
11365
11473
|
|
|
11366
11474
|
// src/converter/nfm-to-blocks.ts
|
|
11475
|
+
var UNESCAPED_PIPE_RE = new LookbehindRegExp(/\|/, void 0, notAfter(/\\/));
|
|
11367
11476
|
function nfmToBlocks(nfm, options = {}) {
|
|
11368
11477
|
const lines = nfm.split("\n");
|
|
11369
11478
|
return prune(new NfmBlockParser(lines, options).parse(0, lines.length).map((p) => p.block));
|
|
@@ -11734,8 +11843,8 @@ function tableBlock(rows, header) {
|
|
|
11734
11843
|
});
|
|
11735
11844
|
}
|
|
11736
11845
|
function pipeCells(line) {
|
|
11737
|
-
const body = line.trim().replace(/^\|/, "").replace(
|
|
11738
|
-
return body.split(
|
|
11846
|
+
const body = line.trim().replace(/^\|/, "").replace(new LookbehindRegExp(/\|$/, void 0, notAfter(/\\/)), "");
|
|
11847
|
+
return body.split(UNESCAPED_PIPE_RE).map((cell) => nfmInlineToRichText(cell.trim()));
|
|
11739
11848
|
}
|
|
11740
11849
|
function emptyParagraph() {
|
|
11741
11850
|
return { type: "paragraph", paragraph: { rich_text: [] } };
|
|
@@ -11973,7 +12082,12 @@ function obsidianToNotionEnhanced(obsidian) {
|
|
|
11973
12082
|
result = sendLiteralBackslashes(result);
|
|
11974
12083
|
return result;
|
|
11975
12084
|
}
|
|
11976
|
-
var ITALIC_WITH_ESCAPED_STAR_RE =
|
|
12085
|
+
var ITALIC_WITH_ESCAPED_STAR_RE = new LookbehindRegExp(
|
|
12086
|
+
// 닫는 `*` 앞 글자가 공백 · `\\` 가 아니다 — 예전 `(?<![\s\\])` 를 마지막 조각(`[^…\s]` · `\\[^…\s\\]`)으로
|
|
12087
|
+
/\*(?![\s*])((?:[^*_\n\\]|\\[^\n])*?\\\*(?:(?:[^*_\n\\]|\\[^\n])*?(?:[^*_\n\\\s]|\\[^\n\s\\]))??)\*(?![*\p{L}\p{N}])/gu,
|
|
12088
|
+
void 0,
|
|
12089
|
+
notAfter(/[\\*\p{L}\p{N}]/u)
|
|
12090
|
+
);
|
|
11977
12091
|
function underscoreItalicsWithStar(content) {
|
|
11978
12092
|
if (!content.includes("\\*")) return content;
|
|
11979
12093
|
return mapOutsideCode(
|
|
@@ -16541,6 +16655,11 @@ ${text}
|
|
|
16541
16655
|
}
|
|
16542
16656
|
|
|
16543
16657
|
// src/sync/database-creator.ts
|
|
16658
|
+
var PROP_REFERENCE_RE = new LookbehindRegExp(
|
|
16659
|
+
/prop\("([^"]+)"\)/g,
|
|
16660
|
+
void 0,
|
|
16661
|
+
notAfterText("current.")
|
|
16662
|
+
);
|
|
16544
16663
|
function isSidecarPath(path) {
|
|
16545
16664
|
return path.toLowerCase().endsWith(SIDECAR_SUFFIX);
|
|
16546
16665
|
}
|
|
@@ -17102,7 +17221,7 @@ function messageOf3(error) {
|
|
|
17102
17221
|
function dependentHint(dependent, schema, message) {
|
|
17103
17222
|
const expression = dependent.body.formula?.expression;
|
|
17104
17223
|
if (typeof expression === "string") {
|
|
17105
|
-
const referenced = [...expression.matchAll(
|
|
17224
|
+
const referenced = [...expression.matchAll(PROP_REFERENCE_RE)].map((m) => m[1]).filter((name) => name !== dependent.name);
|
|
17106
17225
|
const blocked = referenced.filter(schema.stillMissing);
|
|
17107
17226
|
if (blocked.length > 0) {
|
|
17108
17227
|
return ` \u2014 \uAC00\uB9AC\uD0A4\uB294 \uC18D\uC131(${[...new Set(blocked)].join(", ")})\uC744 \uB9CC\uB4E4\uC9C0 \uBABB\uD574\uC11C\uB2E4`;
|
|
@@ -23257,8 +23376,7 @@ var DatabaseDiscovery = class {
|
|
|
23257
23376
|
kind: "ok",
|
|
23258
23377
|
config: {
|
|
23259
23378
|
databaseId: dbId,
|
|
23260
|
-
localFolder: `${parentFolder}/${safeName}
|
|
23261
|
-
titleProperty: DEFAULT_TITLE_PROPERTY
|
|
23379
|
+
localFolder: `${parentFolder}/${safeName}`
|
|
23262
23380
|
}
|
|
23263
23381
|
};
|
|
23264
23382
|
}
|
|
@@ -31419,7 +31537,7 @@ function inlineCodeRanges2(line) {
|
|
|
31419
31537
|
const open = /`+/g;
|
|
31420
31538
|
let start;
|
|
31421
31539
|
while ((start = open.exec(line)) !== null) {
|
|
31422
|
-
const close = new
|
|
31540
|
+
const close = new LookbehindRegExp(`${"`".repeat(start[0].length)}(?!\`)`, "g", notAfter(/`/));
|
|
31423
31541
|
close.lastIndex = start.index + start[0].length;
|
|
31424
31542
|
const end = close.exec(line);
|
|
31425
31543
|
if (end === null) continue;
|
|
@@ -31603,6 +31721,6 @@ function formatRatio(ratio) {
|
|
|
31603
31721
|
return String(Math.round(ratio * 100) / 100);
|
|
31604
31722
|
}
|
|
31605
31723
|
|
|
31606
|
-
export { BaseFileGenerator, BlankLineCollapser, CONFIG_FILE, CONFLICT_STRATEGIES, CalloutRestorer, CalloutTransformer, ChangeDetector, ColorAnnotator, ConfigManager, ConfigSchema, ConflictResolver, ConnectionBoundaryError, ConnectionScopeError, ConversionPipeline, DB_VIEWS_FILE, DB_VIEWS_PATH, DEFAULT_CONFIG, DEFAULT_TITLE_PROPERTY, DEFAULT_WATCH_DEBOUNCE_MS, DIFF_SIGN, DatabaseSyncer, EmbedResolver, EntryEditor, FileHandler, FileWatcher, FilteredVaultFS, FrontmatterExtractor, FrontmatterGenerator, GITIGNORE_ENTRY, IGNORE_FILE, INTERNAL_DIR, INTERNAL_DIR_GLOB, ImageHandler, InlineAnnotationPreserver, InlineDBParser, LocalImageRestorer, MARKER_BRAND, MathNormalizer, MentionToWikilink, NOTION_COLOR_NAMES, NOTION_TOKEN_PREFIX, NOTION_TO_BASES_VIEW, NodeVaultFS, NotionBlockBuilder, NotionClient2 as NotionClient, OBSIDIAN_CONFIG_DIR, OBSIDIAN_ONLY_PATTERNS, PathFilter, PendingWalError, PreserveMarkerCollector, PreserveMarkerInjector, PropertiesTableInjector, PropertiesTableRestorer, PropertyMapper, RENDER_LINE_RULES, SAVED_STATE_TABLES_QUERY, SEPARATOR_BODY, SIDECAR_SUFFIX, STATE_DB_FILE, STATE_DB_MIGRATIONS, STATE_DB_PATH, SavedStateDbError, ScopedVaultFS, SidecarGenerator, StateDB, StateDbLockedError, StateDbUnavailableError, StateLock, SyncBusyError, SyncOrchestrator, TEMPLATE_FOLDER_SETTINGS, TreeMapper, UnlinkedVaultError, UnsupportedBlockStripper, ViewDataProvider, WIKILINK_LOOKUPS, WatchSyncService, WikilinkResolver, applicableChoices, assertNoPendingWal, basesViewMappingOf, basesViewTypeOf, checkNotionAccess, choiceForStrategy, classifyBodyFidelity, columnLabel, compactNotionId, computeBufferHash, computeHash, configDirFrom, connectionFolderOf, createDefaultPipeline, extractCalendarEntries, filterByMonth, filterEntries, findConnectionFolders, findNestedFolderPages, formatUnifiedDiff, generateColorCSS, generateId, getLogger, getNotionBgColor, getNotionColor, getVisibleProperties, groupEntries, hasColumnLayout, hasDesignMarker, inAnyPathScope, isHeadingLine, isHeadingMarkerLine, isInternalPath, isMarkdownPath, isRemoteDeletion, lineDiff, lintRenderedMarkdown, matchesPathScope, normalizeNotionId, normalizeVaultPath, noteNameFromPath, notionIdFromInput, notionIdsEqual, notionPageUrl, obsidianOnlyExcludes, operationLabel, parseDesignColor, parseIgnorePatterns, pendingWalBytes, readColumnLayout, readDesignLine, resolvePropertyName, sanitizeFileName, sectionLinesWithHeadingMarkers, setLogger, shortNotionId, sortEntries, stateDbLockPath, stateDbWalPath, stripMarkdownExtension, summarizeFidelity, systemTimeZone, templateFolders, threeWayMerge, toVaultPath, translateNotionFilter, verifyDatabaseCompleteness, verifyPageCompleteness, wikilinkLookupsIn };
|
|
31724
|
+
export { BaseFileGenerator, BlankLineCollapser, CONFIG_FILE, CONFLICT_STRATEGIES, CalloutRestorer, CalloutTransformer, ChangeDetector, ColorAnnotator, ConfigManager, ConfigSchema, ConflictResolver, ConnectionBoundaryError, ConnectionScopeError, ConversionPipeline, DB_VIEWS_FILE, DB_VIEWS_PATH, DEFAULT_CONFIG, DEFAULT_TITLE_PROPERTY, DEFAULT_WATCH_DEBOUNCE_MS, DIFF_SIGN, DatabaseSyncer, EmbedResolver, EntryEditor, FileHandler, FileWatcher, FilteredVaultFS, FrontmatterExtractor, FrontmatterGenerator, GITIGNORE_ENTRY, IGNORE_FILE, INTERNAL_DIR, INTERNAL_DIR_GLOB, ImageHandler, InlineAnnotationPreserver, InlineDBParser, LocalImageRestorer, LookbehindRegExp, MARKER_BRAND, MathNormalizer, MentionToWikilink, NOTION_COLOR_NAMES, NOTION_TOKEN_PREFIX, NOTION_TO_BASES_VIEW, NodeVaultFS, NotionBlockBuilder, NotionClient2 as NotionClient, OBSIDIAN_CONFIG_DIR, OBSIDIAN_ONLY_PATTERNS, PathFilter, PendingWalError, PreserveMarkerCollector, PreserveMarkerInjector, PropertiesTableInjector, PropertiesTableRestorer, PropertyMapper, RENDER_LINE_RULES, SAVED_STATE_TABLES_QUERY, SEPARATOR_BODY, SIDECAR_SUFFIX, STATE_DB_FILE, STATE_DB_MIGRATIONS, STATE_DB_PATH, SavedStateDbError, ScopedVaultFS, SidecarGenerator, StateDB, StateDbLockedError, StateDbUnavailableError, StateLock, SyncBusyError, SyncOrchestrator, TEMPLATE_FOLDER_SETTINGS, TreeMapper, UnlinkedVaultError, UnsupportedBlockStripper, ViewDataProvider, WIKILINK_LOOKUPS, WatchSyncService, WikilinkResolver, applicableChoices, assertNoPendingWal, basesViewMappingOf, basesViewTypeOf, charBefore, checkNotionAccess, choiceForStrategy, classifyBodyFidelity, columnLabel, compactNotionId, computeBufferHash, computeHash, configDirFrom, connectionFolderOf, createDefaultPipeline, extractCalendarEntries, filterByMonth, filterEntries, findConnectionFolders, findNestedFolderPages, formatUnifiedDiff, generateColorCSS, generateId, getLogger, getNotionBgColor, getNotionColor, getVisibleProperties, groupEntries, hasColumnLayout, hasDesignMarker, inAnyPathScope, isHeadingLine, isHeadingMarkerLine, isInternalPath, isMarkdownPath, isRemoteDeletion, lineDiff, lintRenderedMarkdown, matchesPathScope, normalizeNotionId, normalizeVaultPath, notAfter, noteNameFromPath, notionIdFromInput, notionIdsEqual, notionPageUrl, obsidianOnlyExcludes, operationLabel, parseDesignColor, parseIgnorePatterns, pendingWalBytes, readColumnLayout, readDesignLine, resolvePropertyName, sanitizeFileName, sectionLinesWithHeadingMarkers, setLogger, shortNotionId, sortEntries, stateDbLockPath, stateDbWalPath, stripMarkdownExtension, summarizeFidelity, systemTimeZone, templateFolders, threeWayMerge, toVaultPath, translateNotionFilter, verifyDatabaseCompleteness, verifyPageCompleteness, wikilinkLookupsIn };
|
|
31607
31725
|
//# sourceMappingURL=index.js.map
|
|
31608
31726
|
//# sourceMappingURL=index.js.map
|