@im-nobsidian/core 0.19.1 → 0.21.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/index.d.ts +73 -11
- package/dist/index.js +938 -321
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -603,8 +603,8 @@ interface PullResult {
|
|
|
603
603
|
*/
|
|
604
604
|
readonly relinkPending?: true;
|
|
605
605
|
/**
|
|
606
|
-
* dry-run 만 —
|
|
607
|
-
*
|
|
606
|
+
* dry-run 만 — 본문을 읽지 않은 새 페이지 안의 DB 행은 세지 않았다. 받아 봐야 그 DB 가 있는지 안다. 루트 아래 · 미리 보며
|
|
607
|
+
* 읽은 본문 안의 새 DB 는 센다. 없으면 생략.
|
|
608
608
|
*/
|
|
609
609
|
readonly undiscoveredDatabases?: true;
|
|
610
610
|
/**
|
|
@@ -2821,6 +2821,12 @@ declare class SyncOrchestrator {
|
|
|
2821
2821
|
* 있든 없든 push 마다 부른다 — 바뀌지 않은 첨부는 파일 기록이 건너뛴다.
|
|
2822
2822
|
*/
|
|
2823
2823
|
private pushVaultFiles;
|
|
2824
|
+
/**
|
|
2825
|
+
* 폴더 첨부를 노트의 페이지에 붙이거나 지울 때({@link NotePageWrites}) — 쓰기 전에 원격과 맞던 노트만 쓴 뒤의 원격을 본
|
|
2826
|
+
* 것으로 적는다. 받지 않은 Notion 편집이 걸린 노트를 적으면 다음 pull 이 그 편집을 받지 않는다. 읽지 못하면 적지 않는다 —
|
|
2827
|
+
* 다음 push 가 그 노트를 올리지 않고 pull 을 먼저 하라고 알릴 뿐이다.
|
|
2828
|
+
*/
|
|
2829
|
+
private notePageWrites;
|
|
2824
2830
|
/**
|
|
2825
2831
|
* @param mergedByPull sync dry-run 만 — 앞선 pull dry-run 이 합칠 노트. 실제 sync 는 합친 뒤 원격을 본 것으로
|
|
2826
2832
|
* 적어 push 가 올린다 — dry-run 은 받지 않아 원격이 바뀐 그대로라, 원격을 보고 거절하지 않는다.
|
|
@@ -3105,6 +3111,16 @@ declare class ImageHandler {
|
|
|
3105
3111
|
private readonly downloadTimeoutMs;
|
|
3106
3112
|
constructor(vaultFs: VaultFS, attachmentFolder?: string, notionClient?: NotionClient | undefined, customFetch?: typeof globalThis.fetch, options?: MediaOptions, stateDb?: IStateDB | undefined);
|
|
3107
3113
|
private get fetchFn();
|
|
3114
|
+
/** {@link preview} 안에서 도는 중인 렌더 수 — 0 보다 크면 받은 미디어를 볼트에 쓰지 않고 상태 DB 에 적지 않는다. */
|
|
3115
|
+
private previewDepth;
|
|
3116
|
+
/**
|
|
3117
|
+
* 받기를 미리 본다(dry-run) — 미디어를 실제 pull 처럼 받아 이름(내용 해시)과 임베드를 정하되 볼트에 쓰지 않고 상태 DB 에
|
|
3118
|
+
* 적지 않는다. 받지 않고 렌더하면 미디어가 원격 주소로 남아, 받은 글을 볼트의 노트와 견줄 수 없다.
|
|
3119
|
+
*/
|
|
3120
|
+
preview<T>(run: () => Promise<T>): Promise<T>;
|
|
3121
|
+
private get previewing();
|
|
3122
|
+
/** 받은 파일을 볼트에 쓴다 — 미리 보기에서는 쓰지 않는다({@link preview}). */
|
|
3123
|
+
private writeDownload;
|
|
3108
3124
|
/** 상한 로직은 첨부 경로와 공유한다 — 한쪽만 빠뜨리지 않도록(utils/download-fetch). */
|
|
3109
3125
|
private fetchForDownload;
|
|
3110
3126
|
downloadImage(url: string, pageTitle: string): Promise<ImageDownloadResult>;
|
|
@@ -3320,6 +3336,16 @@ interface FileHandlerOptions {
|
|
|
3320
3336
|
*/
|
|
3321
3337
|
readonly deleteSync?: boolean;
|
|
3322
3338
|
}
|
|
3339
|
+
/**
|
|
3340
|
+
* 노트의 페이지에 폴더 첨부 블록을 붙이거나 지울 때(ADR-056) — 그 쓰기로 노트 페이지의 수정 시각 · 본문이 바뀐다. 알리지 않으면
|
|
3341
|
+
* 다음 push 가 그 노트를 «Notion 에서도 바뀐 페이지» 로 보고 올리지 않는다.
|
|
3342
|
+
*/
|
|
3343
|
+
interface NotePageWrites {
|
|
3344
|
+
/** 쓰기 전 — 그 노트가 지금 원격과 맞는지 본다. */
|
|
3345
|
+
begin(pageId: string): Promise<void>;
|
|
3346
|
+
/** 쓴 뒤 — 맞던 노트는 지금 원격을 본 것으로 적는다. 맞지 않던 노트(받지 않은 Notion 편집)는 그대로 둔다. */
|
|
3347
|
+
end(pageId: string): Promise<void>;
|
|
3348
|
+
}
|
|
3323
3349
|
/** 노트 없는 폴더의 Notion 페이지를 마련하는 쪽 — push 의 폴더 배치(`FolderPlacement`). */
|
|
3324
3350
|
interface FolderPageProvider {
|
|
3325
3351
|
/** 폴더의 페이지를 마련한다. 이미 있으면 그대로 둔다. 마련할 수 없으면 까닭과 함께 던진다. */
|
|
@@ -3366,12 +3392,28 @@ declare class FileHandler {
|
|
|
3366
3392
|
* @returns 업로드 결과. 변경 없음(스킵)이거나 실패했으면 null.
|
|
3367
3393
|
*/
|
|
3368
3394
|
private pushSingleFile;
|
|
3369
|
-
/**
|
|
3395
|
+
/**
|
|
3396
|
+
* 올리거나 받은 뒤 바뀌지 않았나 — 그때의 표(크기 · 수정 시각, {@link fileStampOf})와 같으면 읽지 않는다. 크기가 다르면 바뀌었다.
|
|
3397
|
+
* 크기만 같으면 내용으로 견주고, 같으면 지금 표를 적어 다음에는 읽지 않는다. 예전에는 크기가 같으면 바뀌지 않았다고 봐, 같은
|
|
3398
|
+
* 크기로 고친 파일을 올리지 않았다.
|
|
3399
|
+
*/
|
|
3370
3400
|
private isUnchanged;
|
|
3371
3401
|
/** pull 이 받은 것을 두는 폴더 안인가. */
|
|
3372
3402
|
private inAttachmentsFolder;
|
|
3373
|
-
/**
|
|
3403
|
+
/**
|
|
3404
|
+
* 폴더 첨부를 둘 Notion 페이지 — 그 폴더의 Notion 자리({@link folderContainer} 와 같은 차례). 폴더 노트(`X/X.md`)나 노트
|
|
3405
|
+
* 이름의 폴더(`X.md` 옆 `X/`)면 그 노트의 페이지 끝(ADR-056), 아니면 push 가 만든 폴더 페이지. 맨 위는 루트 기록이 있을 때만.
|
|
3406
|
+
* 행 · DB 폴더는 둘 곳이 없다 — 행의 본문은 행의 것이다.
|
|
3407
|
+
*/
|
|
3374
3408
|
private folderPageOf;
|
|
3409
|
+
/** 이 폴더를 품은 노트의 페이지 — 폴더 노트 · 노트 이름의 폴더. 없거나 행이면 null. */
|
|
3410
|
+
private notePageOf;
|
|
3411
|
+
private folderRecordPageOf;
|
|
3412
|
+
/**
|
|
3413
|
+
* 이 기록이 그 폴더의 폴더 첨부인가. 노트의 페이지에는 그 노트가 임베드해 올린 파일도 같은 페이지로 적혀 있다 — 폴더
|
|
3414
|
+
* 첨부로 적어 둔 것({@link folderFileIdsOf})만이다.
|
|
3415
|
+
*/
|
|
3416
|
+
private isFolderFileEntry;
|
|
3375
3417
|
/**
|
|
3376
3418
|
* 업로드 후보 목록 — 도구 내부 산출물(`.base`/`.notion.json`)은 아예 빼고, Notion 이 받지 않는
|
|
3377
3419
|
* 형식은 따로 모은다.
|
|
@@ -3390,12 +3432,14 @@ declare class FileHandler {
|
|
|
3390
3432
|
* @param failed 올리지 못한 첨부를 담을 곳 — push 결과의 `failed` 를 넘기면 CLI · 플러그인이 처리하지 못한 것으로
|
|
3391
3433
|
* 보인다. 예전엔 경고 로그로만 남아 push 가 「실패 0」 으로 끝났다.
|
|
3392
3434
|
*/
|
|
3393
|
-
pushAllFiles(failed?: FailedOperation[], folders?: FolderPageProvider): Promise<FileUploadResult[]>;
|
|
3435
|
+
pushAllFiles(failed?: FailedOperation[], folders?: FolderPageProvider, noteWrites?: NotePageWrites): Promise<FileUploadResult[]>;
|
|
3394
3436
|
/**
|
|
3395
3437
|
* 볼트에서 지운 폴더 첨부를 Notion 에서도 지운다(deleteSync) — 폴더 페이지에 적힌 파일 가운데 볼트에 없는 것의 블록과 기록.
|
|
3396
3438
|
* 포함 · 제외 패턴으로 빠진 파일은 볼트에 있어 지우지 않는다.
|
|
3397
3439
|
*/
|
|
3398
3440
|
private removeDeletedFolderFiles;
|
|
3441
|
+
/** 노트의 페이지에 쓰는 동안을 알린다({@link NotePageWrites}) — 폴더 페이지는 노트가 없어 알릴 것이 없다. */
|
|
3442
|
+
private writingNotePage;
|
|
3399
3443
|
/** 폴더 첨부를 둘 페이지 — 노트 없는 폴더면 마련한다. 둘 곳이 없으면 그 파일들을 `stranded` 에 담고 null. */
|
|
3400
3444
|
private provideFolderPage;
|
|
3401
3445
|
/**
|
|
@@ -3434,11 +3478,23 @@ declare class FileHandler {
|
|
|
3434
3478
|
caption?: string;
|
|
3435
3479
|
}>, targetFolder: string): Promise<FileDownloadResult[]>;
|
|
3436
3480
|
private uploadFile;
|
|
3437
|
-
/**
|
|
3481
|
+
/**
|
|
3482
|
+
* 처음 보는 파일이 이 페이지에 적어 둔 같은 이름의 폴더 첨부를 옮긴 것인가 — 그 기록의 경로가 볼트에서 사라졌으면 옮겼다(폴더 ·
|
|
3483
|
+
* 폴더 노트 · 노트의 이름 바꾸기). 기록 · 파일 id · 표를 새 경로로 옮긴다. `same` 이면 내용이 같아 올리지 않는다. 다르면 옮긴
|
|
3484
|
+
* 기록을 옛 것으로 올려 옛 블록을 지운다. 예전에는 새 파일로 올려 노트 페이지에 같은 파일의 블록이 둘 남았다.
|
|
3485
|
+
*/
|
|
3486
|
+
private movedHere;
|
|
3487
|
+
/**
|
|
3488
|
+
* 이 페이지에서 그 폴더 첨부의 블록 중 방금 붙인 것(`keep`) 말고를 지운다. 폴더 페이지는 같은 이름의 파일 블록 모두(id 를
|
|
3489
|
+
* 적기 전에 올린 블록도). 노트의 페이지는 노트가 임베드한 같은 이름의 파일이 있을 수 있어, 적어 둔 Notion 파일 id 의 블록과
|
|
3490
|
+
* 표시를 단 캡션({@link folderFileCaption})의 블록만 — 다른 볼트가 같은 파일을 먼저 고쳐 올린 블록은 id 를 모르지만 표시가 있다.
|
|
3491
|
+
* 예전에는 id 로만 지워, 두 볼트가 따로 고쳐 올리면 블록이 둘 남았다.
|
|
3492
|
+
*/
|
|
3438
3493
|
private removeOlderBlocks;
|
|
3439
3494
|
/**
|
|
3440
|
-
* 폴더 첨부의 파일 블록 — 캡션에 파일 이름을
|
|
3441
|
-
* 자식 페이지가 없는 폴더 페이지는 PDF 하나만 붙인 노트와 모양이
|
|
3495
|
+
* 폴더 첨부의 파일 블록 — 캡션에 표시를 단 파일 이름을 적는다({@link folderFileCaption}). 받는 쪽이 그 표시로 폴더 첨부를
|
|
3496
|
+
* 알아본다 — 자식 페이지가 없는 폴더 페이지는 PDF 하나만 붙인 노트와 모양이 같고, 노트 페이지의 폴더 첨부는 그 노트의
|
|
3497
|
+
* 임베드와 같은 블록이다.
|
|
3442
3498
|
*/
|
|
3443
3499
|
private createFileBlock;
|
|
3444
3500
|
private extractFilename;
|
|
@@ -3651,6 +3707,8 @@ interface PlannedRow {
|
|
|
3651
3707
|
readonly resolution?: PlannedResolution;
|
|
3652
3708
|
/** `create` 만 — 상태 기록에 없던 같은 자리의 행 노트를 다시 잇는다(P7). 새로 받는 것으로 세지 않는다. */
|
|
3653
3709
|
readonly relink?: true;
|
|
3710
|
+
/** 다시 잇되 글이 달라 충돌로 남긴다 — `relink` 와 같이. */
|
|
3711
|
+
readonly relinkConflict?: Conflict;
|
|
3654
3712
|
}
|
|
3655
3713
|
/**
|
|
3656
3714
|
* 로컬도 고친 노트를 실제 pull 이 어떻게 처리하나 — 충돌로 남김 · 합침(merge) · 받지 않음(원격이 그대로거나
|
|
@@ -4040,11 +4098,15 @@ declare class DatabaseSyncer {
|
|
|
4040
4098
|
*/
|
|
4041
4099
|
private claimExistingRow;
|
|
4042
4100
|
/**
|
|
4043
|
-
* 상태 기록에 없던 행 노트를 이 행과 다시 잇는다(P7) —
|
|
4044
|
-
*
|
|
4045
|
-
* remote-first 는 `"write"` — 호출측이 받은 행으로 덮는다.
|
|
4101
|
+
* 상태 기록에 없던 행 노트를 이 행과 다시 잇는다(P7) — 받은 글과 견줘 {@link relinkOutcome} 대로. 잇지 않으면 null.
|
|
4102
|
+
* 원격으로 덮을 것은 `"write"` — 호출측이 받은 행으로 덮는다.
|
|
4046
4103
|
*/
|
|
4047
4104
|
private relinkExistingRow;
|
|
4105
|
+
/**
|
|
4106
|
+
* dry-run — 실제 pull 이 상태 기록에 없던 이 행 노트를 다시 잇나(P7). 받은 행을 실제 pull 처럼 렌더하되 볼트 · 상태 DB 는
|
|
4107
|
+
* 바꾸지 않고({@link ImageHandler.preview}) 견준다. 잇지 않으면 null(새 이름으로 받는다), 충돌로 남길 것이면 그 충돌.
|
|
4108
|
+
*/
|
|
4109
|
+
private plannedRowRelink;
|
|
4048
4110
|
/** 이번 받기에서 로컬 편집을 합친 행의 경로를 가져가고 비운다. */
|
|
4049
4111
|
takeMergedRows(): string[];
|
|
4050
4112
|
/**
|