@im-nobsidian/core 0.20.0 → 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 +52 -6
- package/dist/index.js +449 -58
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -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 은 받지 않아 원격이 바뀐 그대로라, 원격을 보고 거절하지 않는다.
|
|
@@ -3330,6 +3336,16 @@ interface FileHandlerOptions {
|
|
|
3330
3336
|
*/
|
|
3331
3337
|
readonly deleteSync?: boolean;
|
|
3332
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
|
+
}
|
|
3333
3349
|
/** 노트 없는 폴더의 Notion 페이지를 마련하는 쪽 — push 의 폴더 배치(`FolderPlacement`). */
|
|
3334
3350
|
interface FolderPageProvider {
|
|
3335
3351
|
/** 폴더의 페이지를 마련한다. 이미 있으면 그대로 둔다. 마련할 수 없으면 까닭과 함께 던진다. */
|
|
@@ -3376,12 +3392,28 @@ declare class FileHandler {
|
|
|
3376
3392
|
* @returns 업로드 결과. 변경 없음(스킵)이거나 실패했으면 null.
|
|
3377
3393
|
*/
|
|
3378
3394
|
private pushSingleFile;
|
|
3379
|
-
/**
|
|
3395
|
+
/**
|
|
3396
|
+
* 올리거나 받은 뒤 바뀌지 않았나 — 그때의 표(크기 · 수정 시각, {@link fileStampOf})와 같으면 읽지 않는다. 크기가 다르면 바뀌었다.
|
|
3397
|
+
* 크기만 같으면 내용으로 견주고, 같으면 지금 표를 적어 다음에는 읽지 않는다. 예전에는 크기가 같으면 바뀌지 않았다고 봐, 같은
|
|
3398
|
+
* 크기로 고친 파일을 올리지 않았다.
|
|
3399
|
+
*/
|
|
3380
3400
|
private isUnchanged;
|
|
3381
3401
|
/** pull 이 받은 것을 두는 폴더 안인가. */
|
|
3382
3402
|
private inAttachmentsFolder;
|
|
3383
|
-
/**
|
|
3403
|
+
/**
|
|
3404
|
+
* 폴더 첨부를 둘 Notion 페이지 — 그 폴더의 Notion 자리({@link folderContainer} 와 같은 차례). 폴더 노트(`X/X.md`)나 노트
|
|
3405
|
+
* 이름의 폴더(`X.md` 옆 `X/`)면 그 노트의 페이지 끝(ADR-056), 아니면 push 가 만든 폴더 페이지. 맨 위는 루트 기록이 있을 때만.
|
|
3406
|
+
* 행 · DB 폴더는 둘 곳이 없다 — 행의 본문은 행의 것이다.
|
|
3407
|
+
*/
|
|
3384
3408
|
private folderPageOf;
|
|
3409
|
+
/** 이 폴더를 품은 노트의 페이지 — 폴더 노트 · 노트 이름의 폴더. 없거나 행이면 null. */
|
|
3410
|
+
private notePageOf;
|
|
3411
|
+
private folderRecordPageOf;
|
|
3412
|
+
/**
|
|
3413
|
+
* 이 기록이 그 폴더의 폴더 첨부인가. 노트의 페이지에는 그 노트가 임베드해 올린 파일도 같은 페이지로 적혀 있다 — 폴더
|
|
3414
|
+
* 첨부로 적어 둔 것({@link folderFileIdsOf})만이다.
|
|
3415
|
+
*/
|
|
3416
|
+
private isFolderFileEntry;
|
|
3385
3417
|
/**
|
|
3386
3418
|
* 업로드 후보 목록 — 도구 내부 산출물(`.base`/`.notion.json`)은 아예 빼고, Notion 이 받지 않는
|
|
3387
3419
|
* 형식은 따로 모은다.
|
|
@@ -3400,12 +3432,14 @@ declare class FileHandler {
|
|
|
3400
3432
|
* @param failed 올리지 못한 첨부를 담을 곳 — push 결과의 `failed` 를 넘기면 CLI · 플러그인이 처리하지 못한 것으로
|
|
3401
3433
|
* 보인다. 예전엔 경고 로그로만 남아 push 가 「실패 0」 으로 끝났다.
|
|
3402
3434
|
*/
|
|
3403
|
-
pushAllFiles(failed?: FailedOperation[], folders?: FolderPageProvider): Promise<FileUploadResult[]>;
|
|
3435
|
+
pushAllFiles(failed?: FailedOperation[], folders?: FolderPageProvider, noteWrites?: NotePageWrites): Promise<FileUploadResult[]>;
|
|
3404
3436
|
/**
|
|
3405
3437
|
* 볼트에서 지운 폴더 첨부를 Notion 에서도 지운다(deleteSync) — 폴더 페이지에 적힌 파일 가운데 볼트에 없는 것의 블록과 기록.
|
|
3406
3438
|
* 포함 · 제외 패턴으로 빠진 파일은 볼트에 있어 지우지 않는다.
|
|
3407
3439
|
*/
|
|
3408
3440
|
private removeDeletedFolderFiles;
|
|
3441
|
+
/** 노트의 페이지에 쓰는 동안을 알린다({@link NotePageWrites}) — 폴더 페이지는 노트가 없어 알릴 것이 없다. */
|
|
3442
|
+
private writingNotePage;
|
|
3409
3443
|
/** 폴더 첨부를 둘 페이지 — 노트 없는 폴더면 마련한다. 둘 곳이 없으면 그 파일들을 `stranded` 에 담고 null. */
|
|
3410
3444
|
private provideFolderPage;
|
|
3411
3445
|
/**
|
|
@@ -3444,11 +3478,23 @@ declare class FileHandler {
|
|
|
3444
3478
|
caption?: string;
|
|
3445
3479
|
}>, targetFolder: string): Promise<FileDownloadResult[]>;
|
|
3446
3480
|
private uploadFile;
|
|
3447
|
-
/**
|
|
3481
|
+
/**
|
|
3482
|
+
* 처음 보는 파일이 이 페이지에 적어 둔 같은 이름의 폴더 첨부를 옮긴 것인가 — 그 기록의 경로가 볼트에서 사라졌으면 옮겼다(폴더 ·
|
|
3483
|
+
* 폴더 노트 · 노트의 이름 바꾸기). 기록 · 파일 id · 표를 새 경로로 옮긴다. `same` 이면 내용이 같아 올리지 않는다. 다르면 옮긴
|
|
3484
|
+
* 기록을 옛 것으로 올려 옛 블록을 지운다. 예전에는 새 파일로 올려 노트 페이지에 같은 파일의 블록이 둘 남았다.
|
|
3485
|
+
*/
|
|
3486
|
+
private movedHere;
|
|
3487
|
+
/**
|
|
3488
|
+
* 이 페이지에서 그 폴더 첨부의 블록 중 방금 붙인 것(`keep`) 말고를 지운다. 폴더 페이지는 같은 이름의 파일 블록 모두(id 를
|
|
3489
|
+
* 적기 전에 올린 블록도). 노트의 페이지는 노트가 임베드한 같은 이름의 파일이 있을 수 있어, 적어 둔 Notion 파일 id 의 블록과
|
|
3490
|
+
* 표시를 단 캡션({@link folderFileCaption})의 블록만 — 다른 볼트가 같은 파일을 먼저 고쳐 올린 블록은 id 를 모르지만 표시가 있다.
|
|
3491
|
+
* 예전에는 id 로만 지워, 두 볼트가 따로 고쳐 올리면 블록이 둘 남았다.
|
|
3492
|
+
*/
|
|
3448
3493
|
private removeOlderBlocks;
|
|
3449
3494
|
/**
|
|
3450
|
-
* 폴더 첨부의 파일 블록 — 캡션에 파일 이름을
|
|
3451
|
-
* 자식 페이지가 없는 폴더 페이지는 PDF 하나만 붙인 노트와 모양이
|
|
3495
|
+
* 폴더 첨부의 파일 블록 — 캡션에 표시를 단 파일 이름을 적는다({@link folderFileCaption}). 받는 쪽이 그 표시로 폴더 첨부를
|
|
3496
|
+
* 알아본다 — 자식 페이지가 없는 폴더 페이지는 PDF 하나만 붙인 노트와 모양이 같고, 노트 페이지의 폴더 첨부는 그 노트의
|
|
3497
|
+
* 임베드와 같은 블록이다.
|
|
3452
3498
|
*/
|
|
3453
3499
|
private createFileBlock;
|
|
3454
3500
|
private extractFilename;
|