@ncukondo/reference-manager 0.16.1 → 0.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/chunks/{file-watcher-B_WpVHSV.js → file-watcher-CrsNHUpz.js} +81 -29
- package/dist/chunks/file-watcher-CrsNHUpz.js.map +1 -0
- package/dist/chunks/{format-BPeCbpFG.js → format-CduFas9k.js} +16 -6
- package/dist/chunks/format-CduFas9k.js.map +1 -0
- package/dist/chunks/{index-DHgeuWGP.js → index-B4gr0P83.js} +16 -20
- package/dist/chunks/{index-DHgeuWGP.js.map → index-B4gr0P83.js.map} +1 -1
- package/dist/chunks/{index-7bmkSgzh.js → index-CfuE2EuX.js} +6 -80
- package/dist/chunks/index-CfuE2EuX.js.map +1 -0
- package/dist/chunks/{index-Ddq16wFm.js → index-CqrsgD_G.js} +1026 -177
- package/dist/chunks/index-CqrsgD_G.js.map +1 -0
- package/dist/chunks/{index-BzHJQ7Or.js → index-D_UafVdu.js} +2 -2
- package/dist/chunks/index-D_UafVdu.js.map +1 -0
- package/dist/chunks/{loader-DuhmXjiI.js → loader-BN5sS7lg.js} +2 -2
- package/dist/chunks/{loader-DuhmXjiI.js.map → loader-BN5sS7lg.js.map} +1 -1
- package/dist/chunks/{reference-select-Cs3hsy-1.js → reference-select-DbnF3oWs.js} +4 -16
- package/dist/chunks/reference-select-DbnF3oWs.js.map +1 -0
- package/dist/chunks/{style-select-tmKOHx_B.js → style-select-CbV5k3AV.js} +3 -3
- package/dist/chunks/{style-select-tmKOHx_B.js.map → style-select-CbV5k3AV.js.map} +1 -1
- package/dist/cli/commands/edit.d.ts +24 -3
- package/dist/cli/commands/edit.d.ts.map +1 -1
- package/dist/cli/commands/update.d.ts +1 -1
- package/dist/cli/commands/update.d.ts.map +1 -1
- package/dist/cli.js +2 -2
- package/dist/core/csl-json/types.d.ts +0 -12
- package/dist/core/csl-json/types.d.ts.map +1 -1
- package/dist/core/library-interface.d.ts +14 -2
- package/dist/core/library-interface.d.ts.map +1 -1
- package/dist/core/library.d.ts +10 -1
- package/dist/core/library.d.ts.map +1 -1
- package/dist/features/edit/edit-session.d.ts +4 -0
- package/dist/features/edit/edit-session.d.ts.map +1 -1
- package/dist/features/edit/edit-validator.d.ts +19 -0
- package/dist/features/edit/edit-validator.d.ts.map +1 -0
- package/dist/features/edit/field-transformer.d.ts +4 -0
- package/dist/features/edit/field-transformer.d.ts.map +1 -1
- package/dist/features/edit/index.d.ts +2 -1
- package/dist/features/edit/index.d.ts.map +1 -1
- package/dist/features/edit/json-serializer.d.ts +9 -0
- package/dist/features/edit/json-serializer.d.ts.map +1 -1
- package/dist/features/edit/validation-prompt.d.ts +17 -0
- package/dist/features/edit/validation-prompt.d.ts.map +1 -0
- package/dist/features/edit/yaml-serializer.d.ts +10 -0
- package/dist/features/edit/yaml-serializer.d.ts.map +1 -1
- package/dist/features/fulltext/index.d.ts +0 -1
- package/dist/features/fulltext/index.d.ts.map +1 -1
- package/dist/features/interactive/apps/runCiteFlow.d.ts +1 -1
- package/dist/features/interactive/apps/runCiteFlow.d.ts.map +1 -1
- package/dist/features/interactive/apps/runSearchFlow.d.ts.map +1 -1
- package/dist/features/interactive/components/SearchableMultiSelect.d.ts.map +1 -1
- package/dist/features/interactive/components/index.d.ts +1 -0
- package/dist/features/interactive/components/index.d.ts.map +1 -1
- package/dist/features/interactive/components/layout.d.ts +23 -0
- package/dist/features/interactive/components/layout.d.ts.map +1 -0
- package/dist/features/interactive/search-prompt.d.ts +2 -15
- package/dist/features/interactive/search-prompt.d.ts.map +1 -1
- package/dist/features/operations/change-details.d.ts +27 -0
- package/dist/features/operations/change-details.d.ts.map +1 -0
- package/dist/features/operations/json-output.d.ts +2 -0
- package/dist/features/operations/json-output.d.ts.map +1 -1
- package/dist/features/operations/remove.d.ts +0 -1
- package/dist/features/operations/remove.d.ts.map +1 -1
- package/dist/features/operations/update.d.ts +4 -2
- package/dist/features/operations/update.d.ts.map +1 -1
- package/dist/index.js +16 -15
- package/dist/index.js.map +1 -1
- package/dist/server.js +2 -2
- package/dist/utils/index.d.ts +1 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/object.d.ts +5 -0
- package/dist/utils/object.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/chunks/alternate-screen-DcxkOKfW.js +0 -19
- package/dist/chunks/alternate-screen-DcxkOKfW.js.map +0 -1
- package/dist/chunks/file-watcher-B_WpVHSV.js.map +0 -1
- package/dist/chunks/format-BPeCbpFG.js.map +0 -1
- package/dist/chunks/index-7bmkSgzh.js.map +0 -1
- package/dist/chunks/index-BzHJQ7Or.js.map +0 -1
- package/dist/chunks/index-Ddq16wFm.js.map +0 -1
- package/dist/chunks/jsx-runtime-Q5cUjSur.js +0 -322
- package/dist/chunks/jsx-runtime-Q5cUjSur.js.map +0 -1
- package/dist/chunks/reference-select-Cs3hsy-1.js.map +0 -1
- package/dist/features/fulltext/manager.d.ts +0 -109
- package/dist/features/fulltext/manager.d.ts.map +0 -1
package/dist/core/library.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { CslItem } from "./csl-json/types";
|
|
2
|
-
import type
|
|
2
|
+
import { type FindOptions, type ILibrary, type RemoveOptions, type RemoveResult, type UpdateOptions, type UpdateResult } from "./library-interface.js";
|
|
3
3
|
export type { FindOptions, IdentifierType, ILibrary, UpdateOptions, UpdateResult, } from "./library-interface.js";
|
|
4
4
|
/**
|
|
5
5
|
* Library manager for CSL-JSON references.
|
|
@@ -88,6 +88,15 @@ export declare class Library implements ILibrary {
|
|
|
88
88
|
* Resolve the new ID, handling collisions based on options.
|
|
89
89
|
*/
|
|
90
90
|
private resolveNewId;
|
|
91
|
+
/**
|
|
92
|
+
* Check if there are actual changes between existing item and updates.
|
|
93
|
+
* Ignores protected fields (uuid, created_at, timestamp).
|
|
94
|
+
*/
|
|
95
|
+
private hasChanges;
|
|
96
|
+
/**
|
|
97
|
+
* Check if custom fields have changes (excluding protected fields).
|
|
98
|
+
*/
|
|
99
|
+
private hasCustomFieldChanges;
|
|
91
100
|
/**
|
|
92
101
|
* Build the updated CslItem, preserving uuid and created_at.
|
|
93
102
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"library.d.ts","sourceRoot":"","sources":["../../src/core/library.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"library.d.ts","sourceRoot":"","sources":["../../src/core/library.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,QAAQ,EAEb,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,YAAY,EAClB,MAAM,wBAAwB,CAAC;AAIhC,YAAY,EACV,WAAW,EACX,cAAc,EACd,QAAQ,EACR,aAAa,EACb,YAAY,GACb,MAAM,wBAAwB,CAAC;AAEhC;;;GAGG;AACH,qBAAa,OAAQ,YAAW,QAAQ;IACtC,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,UAAU,CAAmB;IACrC,OAAO,CAAC,WAAW,CAAuB;IAG1C,OAAO,CAAC,SAAS,CAAqC;IACtD,OAAO,CAAC,OAAO,CAAqC;IACpD,OAAO,CAAC,QAAQ,CAAqC;IACrD,OAAO,CAAC,SAAS,CAAqC;IACtD,OAAO,CAAC,SAAS,CAAqC;IAEtD,OAAO;IAWP;;;OAGG;WACU,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAiBrD;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAO3B;;;;OAIG;IACG,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;IA8BhC;;;;OAIG;IACG,GAAG,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAe1C;;;;;OAKG;IACG,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,YAAY,CAAC;IA4BpF;;;;;;OAMG;IACG,MAAM,CACV,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,EACzB,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,YAAY,CAAC;IA4BxB;;;;;OAKG;IACG,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC;IAyBvF;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAIlC;;OAEG;IACH,WAAW,IAAI,MAAM;IAIrB;;;OAGG;IACH,cAAc,IAAI,MAAM,GAAG,IAAI;IAI/B;;OAEG;IACH,OAAO,CAAC,YAAY;IA0BpB;;OAEG;IACH,OAAO,CAAC,eAAe;IAUvB;;;OAGG;IACH,OAAO,CAAC,eAAe;IAoDvB;;OAEG;IACH,OAAO,CAAC,YAAY;IA2BpB;;;OAGG;IACH,OAAO,CAAC,UAAU;IAgBlB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAS7B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAoBxB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAoBzB;;;OAGG;IACH,OAAO,CAAC,cAAc;IAatB;;OAEG;IACH,OAAO,CAAC,kBAAkB;CAgB3B"}
|
|
@@ -19,6 +19,10 @@ export declare function openEditor(editor: string, filePath: string): number;
|
|
|
19
19
|
* Reads content from the temporary file.
|
|
20
20
|
*/
|
|
21
21
|
export declare function readTempFile(filePath: string): string;
|
|
22
|
+
/**
|
|
23
|
+
* Writes content to an existing temporary file.
|
|
24
|
+
*/
|
|
25
|
+
export declare function writeTempFile(filePath: string, content: string): void;
|
|
22
26
|
/**
|
|
23
27
|
* Deletes the temporary file.
|
|
24
28
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"edit-session.d.ts","sourceRoot":"","sources":["../../../src/features/edit/edit-session.ts"],"names":[],"mappings":"AAKA;;;GAGG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,MAAM,CAAC;AAEzC,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,UAAU,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,MAAM,CAQ1E;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAUnE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAErD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAMrD"}
|
|
1
|
+
{"version":3,"file":"edit-session.d.ts","sourceRoot":"","sources":["../../../src/features/edit/edit-session.ts"],"names":[],"mappings":"AAKA;;;GAGG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,MAAM,CAAC;AAEzC,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,UAAU,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,MAAM,CAQ1E;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAUnE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAErD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAErE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAMrD"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export interface EditValidationError {
|
|
2
|
+
field: string;
|
|
3
|
+
message: string;
|
|
4
|
+
}
|
|
5
|
+
export interface EditValidationResult {
|
|
6
|
+
valid: boolean;
|
|
7
|
+
errors: Map<number, EditValidationError[]>;
|
|
8
|
+
}
|
|
9
|
+
export declare function validateEditFormat(items: Record<string, unknown>[]): EditValidationResult;
|
|
10
|
+
/**
|
|
11
|
+
* Stage 2: Validates items against CslItemSchema after transforming date fields.
|
|
12
|
+
*/
|
|
13
|
+
export declare function validateCslItems(items: Record<string, unknown>[]): EditValidationResult;
|
|
14
|
+
/**
|
|
15
|
+
* Combined two-stage validation: edit-format first, then CSL schema.
|
|
16
|
+
* Short-circuits on Stage 1 failure.
|
|
17
|
+
*/
|
|
18
|
+
export declare function validateEditedItems(items: Record<string, unknown>[]): EditValidationResult;
|
|
19
|
+
//# sourceMappingURL=edit-validator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"edit-validator.d.ts","sourceRoot":"","sources":["../../../src/features/edit/edit-validator.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,mBAAmB,EAAE,CAAC,CAAC;CAC5C;AAKD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,oBAAoB,CAoBzF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,oBAAoB,CAkBvF;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,oBAAoB,CAM1F"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field-transformer.d.ts","sourceRoot":"","sources":["../../../src/features/edit/field-transformer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,GAAG,MAAM,CAmB5D;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,CAG1D;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE;IAAE,YAAY,CAAC,EAAE,MAAM,EAAE,EAAE,CAAA;CAAE,GAAG,SAAS,GAC9C,MAAM,GAAG,SAAS,CAKpB;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG;IAAE,YAAY,EAAE,MAAM,EAAE,EAAE,CAAA;CAAE,CAInF"}
|
|
1
|
+
{"version":3,"file":"field-transformer.d.ts","sourceRoot":"","sources":["../../../src/features/edit/field-transformer.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,cAAc,QAA8B,CAAC;AAE1D;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,GAAG,MAAM,CAmB5D;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,CAG1D;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE;IAAE,YAAY,CAAC,EAAE,MAAM,EAAE,EAAE,CAAA;CAAE,GAAG,SAAS,GAC9C,MAAM,GAAG,SAAS,CAKpB;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG;IAAE,YAAY,EAAE,MAAM,EAAE,EAAE,CAAA;CAAE,CAInF"}
|
|
@@ -19,9 +19,10 @@ export interface EditResult {
|
|
|
19
19
|
success: boolean;
|
|
20
20
|
editedItems: Record<string, unknown>[];
|
|
21
21
|
error?: string;
|
|
22
|
+
aborted?: boolean;
|
|
22
23
|
}
|
|
23
24
|
/**
|
|
24
|
-
* Executes the edit workflow.
|
|
25
|
+
* Executes the edit workflow with validation retry loop.
|
|
25
26
|
*
|
|
26
27
|
* @param items - The CSL items to edit
|
|
27
28
|
* @param options - Edit options (format, editor)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/features/edit/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EACL,KAAK,UAAU,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/features/edit/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EACL,KAAK,UAAU,EAMhB,MAAM,mBAAmB,CAAC;AAY3B,YAAY,EAAE,UAAU,EAAE,CAAC;AAE3B,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,UAAU,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IACvC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAmCD;;;;;;GAMG;AACH,wBAAsB,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAwF7F;AAGD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -1,9 +1,18 @@
|
|
|
1
1
|
import type { CslItem } from "../../core/csl-json/types.js";
|
|
2
|
+
import type { EditValidationError } from "./edit-validator.js";
|
|
2
3
|
/**
|
|
3
4
|
* Serializes CSL items to JSON format for editing.
|
|
4
5
|
* Protected fields are nested under _protected key.
|
|
5
6
|
*/
|
|
6
7
|
export declare function serializeToJson(items: CslItem[]): string;
|
|
8
|
+
/**
|
|
9
|
+
* Serializes edited items to JSON with _errors annotations for re-edit.
|
|
10
|
+
*
|
|
11
|
+
* @param editedItems - User's edited items (preserves their changes)
|
|
12
|
+
* @param errors - Validation errors per item index
|
|
13
|
+
* @param originalItems - Original items for protected fields (optional)
|
|
14
|
+
*/
|
|
15
|
+
export declare function serializeToJsonWithErrors(editedItems: Record<string, unknown>[], errors: Map<number, EditValidationError[]>, originalItems?: CslItem[]): string;
|
|
7
16
|
/**
|
|
8
17
|
* Deserializes JSON content back to CSL items.
|
|
9
18
|
* Ignores _protected fields.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json-serializer.d.ts","sourceRoot":"","sources":["../../../src/features/edit/json-serializer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"json-serializer.d.ts","sourceRoot":"","sources":["../../../src/features/edit/json-serializer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AAE5D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAqE/D;;;GAGG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,MAAM,CAGxD;AAeD;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CACvC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EACtC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,mBAAmB,EAAE,CAAC,EAC1C,aAAa,CAAC,EAAE,OAAO,EAAE,GACxB,MAAM,CA6BR;AAkBD;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAwBlF"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Validation prompt for the edit command.
|
|
3
|
+
* Shows validation errors and prompts user for action.
|
|
4
|
+
*/
|
|
5
|
+
import type { CslItem } from "../../core/csl-json/types.js";
|
|
6
|
+
import type { EditValidationResult } from "./edit-validator.js";
|
|
7
|
+
export type ValidationPromptChoice = "re-edit" | "restore" | "abort";
|
|
8
|
+
/**
|
|
9
|
+
* Run the validation prompt.
|
|
10
|
+
* Shows validation errors and asks user what to do.
|
|
11
|
+
*
|
|
12
|
+
* @param validationResult - The validation result with errors
|
|
13
|
+
* @param items - The original items being edited
|
|
14
|
+
* @returns User's choice: "re-edit", "restore", or "abort"
|
|
15
|
+
*/
|
|
16
|
+
export declare function runValidationPrompt(validationResult: EditValidationResult, items: CslItem[]): Promise<ValidationPromptChoice>;
|
|
17
|
+
//# sourceMappingURL=validation-prompt.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation-prompt.d.ts","sourceRoot":"","sources":["../../../src/features/edit/validation-prompt.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AAG5D,OAAO,KAAK,EAAuB,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAErF,MAAM,MAAM,sBAAsB,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;AAqErE;;;;;;;GAOG;AACH,wBAAsB,mBAAmB,CACvC,gBAAgB,EAAE,oBAAoB,EACtC,KAAK,EAAE,OAAO,EAAE,GACf,OAAO,CAAC,sBAAsB,CAAC,CAoCjC"}
|
|
@@ -1,7 +1,17 @@
|
|
|
1
1
|
import type { CslItem } from "../../core/csl-json/types.js";
|
|
2
|
+
import type { EditValidationError } from "./edit-validator.js";
|
|
2
3
|
/**
|
|
3
4
|
* Serializes CSL items to YAML format for editing.
|
|
4
5
|
* Protected fields are shown as comments.
|
|
5
6
|
*/
|
|
6
7
|
export declare function serializeToYaml(items: CslItem[]): string;
|
|
8
|
+
/**
|
|
9
|
+
* Serializes edited items to YAML with error annotations for re-edit.
|
|
10
|
+
* Adds file-top summary and per-entry error blocks.
|
|
11
|
+
*
|
|
12
|
+
* @param editedItems - User's edited items (preserves their changes)
|
|
13
|
+
* @param errors - Validation errors per item index
|
|
14
|
+
* @param originalItems - Original items for protected fields comments (optional)
|
|
15
|
+
*/
|
|
16
|
+
export declare function serializeToYamlWithErrors(editedItems: Record<string, unknown>[], errors: Map<number, EditValidationError[]>, originalItems?: CslItem[]): string;
|
|
7
17
|
//# sourceMappingURL=yaml-serializer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"yaml-serializer.d.ts","sourceRoot":"","sources":["../../../src/features/edit/yaml-serializer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"yaml-serializer.d.ts","sourceRoot":"","sources":["../../../src/features/edit/yaml-serializer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AAE5D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAoE/D;;;GAGG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,MAAM,CA0BxD;AAeD;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CACvC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EACtC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,mBAAmB,EAAE,CAAC,EAC1C,aAAa,CAAC,EAAE,OAAO,EAAE,GACxB,MAAM,CAwDR"}
|
|
@@ -3,5 +3,4 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export * from "./types.js";
|
|
5
5
|
export { generateFulltextFilename } from "./filename.js";
|
|
6
|
-
export { FulltextManager, FulltextIOError, FulltextNotAttachedError, type AttachOptions, type AttachResult, type DetachOptions, type DetachResult, } from "./manager.js";
|
|
7
6
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/features/fulltext/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/features/fulltext/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import type { CslItem } from "../../../core/csl-json/types.js";
|
|
7
7
|
import type { SearchResult } from "../../search/types.js";
|
|
8
|
-
import type
|
|
8
|
+
import { type SelectOption } from "../components/index.js";
|
|
9
9
|
import { type CiteFlowResult } from "./CiteFlowApp.js";
|
|
10
10
|
/**
|
|
11
11
|
* Configuration for the cite flow
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runCiteFlow.d.ts","sourceRoot":"","sources":["../../../../src/features/interactive/apps/runCiteFlow.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE1D,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"runCiteFlow.d.ts","sourceRoot":"","sources":["../../../../src/features/interactive/apps/runCiteFlow.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE1D,OAAO,EAEL,KAAK,YAAY,EAGlB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAe,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEpE;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,2CAA2C;IAC3C,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK,YAAY,EAAE,CAAC;AA2G/D;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,6CAA6C;IAC7C,aAAa,EAAE,OAAO,EAAE,CAAC;IACzB,oCAAoC;IACpC,QAAQ,EAAE,cAAc,CAAC;IACzB,yBAAyB;IACzB,MAAM,EAAE,cAAc,CAAC;IACvB,wCAAwC;IACxC,YAAY,EAAE,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC;IACrC,sCAAsC;IACtC,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED;;;;GAIG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,cAAc,CAAC,CAkEtF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runSearchFlow.d.ts","sourceRoot":"","sources":["../../../../src/features/interactive/apps/runSearchFlow.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAM1D;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,2CAA2C;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,4EAA4E;IAC5E,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK,YAAY,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"runSearchFlow.d.ts","sourceRoot":"","sources":["../../../../src/features/interactive/apps/runSearchFlow.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAM1D;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,2CAA2C;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,4EAA4E;IAC5E,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK,YAAY,EAAE,CAAC;AA2G/D;;;;GAIG;AACH,wBAAsB,aAAa,CACjC,aAAa,EAAE,OAAO,EAAE,EACxB,QAAQ,EAAE,cAAc,EACxB,MAAM,EAAE,gBAAgB,GACvB,OAAO,CAAC,gBAAgB,CAAC,CAiE3B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SearchableMultiSelect.d.ts","sourceRoot":"","sources":["../../../../src/features/interactive/components/SearchableMultiSelect.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"SearchableMultiSelect.d.ts","sourceRoot":"","sources":["../../../../src/features/interactive/components/SearchableMultiSelect.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/B,MAAM,WAAW,MAAM,CAAC,CAAC,GAAG,OAAO;IACjC,uCAAuC;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,4DAA4D;IAC5D,KAAK,EAAE,MAAM,CAAC;IACd,qCAAqC;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oDAAoD;IACpD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uBAAuB;IACvB,KAAK,EAAE,CAAC,CAAC;IACT,6DAA6D;IAC7D,WAAW,CAAC,EAAE,IAAI,CAAC;IACnB,yDAAyD;IACzD,WAAW,CAAC,EAAE,IAAI,CAAC;IACnB,qDAAqD;IACrD,aAAa,CAAC,EAAE,IAAI,CAAC;CACtB;AAED,6BAA6B;AAC7B,MAAM,MAAM,UAAU,GAClB,cAAc,GACd,aAAa,GACb,cAAc,GACd,aAAa,GACb,gBAAgB,GAChB,eAAe,GACf,WAAW,CAAC;AAShB,MAAM,WAAW,0BAA0B,CAAC,CAAC;IAC3C,wBAAwB;IACxB,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IACrB,iCAAiC;IACjC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IAChE,4BAA4B;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,2CAA2C;IAC3C,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC;IAC1C,8BAA8B;IAC9B,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,wCAAwC;IACxC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kBAAkB;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kBAAkB;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0BAA0B;IAC1B,WAAW,CAAC,EAAE,UAAU,CAAC;CAC1B;AAwVD,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,EACvC,OAAO,EACP,QAAwB,EACxB,YAAY,EAAE,gBAAgB,EAC9B,QAAQ,EACR,QAAQ,EACR,WAAiC,EACjC,MAAM,EACN,MAAM,EACN,WAA4B,GAC7B,EAAE,0BAA0B,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,YAAY,CAoNpD"}
|
|
@@ -5,4 +5,5 @@ export { SearchableMultiSelect } from "./SearchableMultiSelect.js";
|
|
|
5
5
|
export type { Choice, SearchableMultiSelectProps, SortOption, } from "./SearchableMultiSelect.js";
|
|
6
6
|
export { Select } from "./Select.js";
|
|
7
7
|
export type { SelectOption, SelectProps } from "./Select.js";
|
|
8
|
+
export { ITEM_HEIGHT, RESERVED_LINES, calculateEffectiveLimit, getTerminalHeight, getTerminalWidth, } from "./layout.js";
|
|
8
9
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/features/interactive/components/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,YAAY,EACV,MAAM,EACN,0BAA0B,EAC1B,UAAU,GACX,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/features/interactive/components/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,YAAY,EACV,MAAM,EACN,0BAA0B,EAC1B,UAAU,GACX,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE7D,OAAO,EACL,WAAW,EACX,cAAc,EACd,uBAAuB,EACvB,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Layout constants and utility functions for SearchableMultiSelect.
|
|
3
|
+
*
|
|
4
|
+
* These values are shared between the component itself and the callers
|
|
5
|
+
* that need to pre-calculate the visible item count.
|
|
6
|
+
*/
|
|
7
|
+
/** Lines rendered per choice item (title + subtitle + meta) */
|
|
8
|
+
export declare const ITEM_HEIGHT = 3;
|
|
9
|
+
/**
|
|
10
|
+
* Lines reserved for chrome around the item list:
|
|
11
|
+
* header(2) + search box(4) + status(2) + scroll indicators(2) + footer(2) = 12
|
|
12
|
+
*/
|
|
13
|
+
export declare const RESERVED_LINES = 12;
|
|
14
|
+
/** Gets terminal width, falling back to 80 if not available */
|
|
15
|
+
export declare function getTerminalWidth(): number;
|
|
16
|
+
/** Gets terminal height, falling back to 24 if not available */
|
|
17
|
+
export declare function getTerminalHeight(): number;
|
|
18
|
+
/**
|
|
19
|
+
* Calculates the effective limit for the item list
|
|
20
|
+
* based on terminal height to prevent the input field from being hidden.
|
|
21
|
+
*/
|
|
22
|
+
export declare function calculateEffectiveLimit(configLimit: number): number;
|
|
23
|
+
//# sourceMappingURL=layout.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../../../src/features/interactive/components/layout.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,+DAA+D;AAC/D,eAAO,MAAM,WAAW,IAAI,CAAC;AAE7B;;;GAGG;AACH,eAAO,MAAM,cAAc,KAAK,CAAC;AAEjC,+DAA+D;AAC/D,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED,gEAAgE;AAChE,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAKnE"}
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import type { CslItem } from "../../core/csl-json/types.js";
|
|
7
7
|
import type { SearchResult } from "../search/types.js";
|
|
8
|
+
import { calculateEffectiveLimit, getTerminalHeight, getTerminalWidth } from "./components/index.js";
|
|
8
9
|
/**
|
|
9
10
|
* Configuration for the search prompt
|
|
10
11
|
*/
|
|
@@ -27,21 +28,7 @@ export interface SearchPromptResult {
|
|
|
27
28
|
/** Whether the prompt was cancelled */
|
|
28
29
|
cancelled: boolean;
|
|
29
30
|
}
|
|
30
|
-
|
|
31
|
-
* Gets terminal width, falling back to 80 if not available
|
|
32
|
-
*/
|
|
33
|
-
export declare function getTerminalWidth(): number;
|
|
34
|
-
/**
|
|
35
|
-
* Gets terminal height, falling back to 24 if not available
|
|
36
|
-
*/
|
|
37
|
-
export declare function getTerminalHeight(): number;
|
|
38
|
-
/**
|
|
39
|
-
* Calculates the effective limit for the autocomplete list
|
|
40
|
-
* based on terminal height to prevent input field from being hidden.
|
|
41
|
-
* Reserves space for: prompt header (1), input line (1), footer hint (1), and padding (2)
|
|
42
|
-
* Each item displays up to 3 lines (author/year, title, identifiers)
|
|
43
|
-
*/
|
|
44
|
-
export declare function calculateEffectiveLimit(configLimit: number): number;
|
|
31
|
+
export { calculateEffectiveLimit, getTerminalHeight, getTerminalWidth };
|
|
45
32
|
/**
|
|
46
33
|
* Creates and runs an interactive search prompt
|
|
47
34
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search-prompt.d.ts","sourceRoot":"","sources":["../../../src/features/interactive/search-prompt.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"search-prompt.d.ts","sourceRoot":"","sources":["../../../src/features/interactive/search-prompt.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,OAAO,EAIL,uBAAuB,EACvB,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,uBAAuB,CAAC;AAG/B;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,2CAA2C;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,2FAA2F;IAC3F,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK,YAAY,EAAE,CAAC;AAE/D;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,0BAA0B;IAC1B,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,uCAAuC;IACvC,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,OAAO,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;AA0JxE;;GAEG;AACH,wBAAsB,eAAe,CACnC,aAAa,EAAE,OAAO,EAAE,EACxB,QAAQ,EAAE,cAAc,EACxB,MAAM,EAAE,kBAAkB,EAC1B,aAAa,SAAK,GACjB,OAAO,CAAC,kBAAkB,CAAC,CA6D7B;AAID,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,YAAY,EAAE,EACvB,cAAc,EAAE,MAAM,GACrB,kBAAkB,EAAE,CAKtB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,EAAE,CAexE"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { CslItem } from "../../core/csl-json/types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Compare two CSL items and return the list of changed field names.
|
|
4
|
+
* Excludes protected custom fields (uuid, created_at, timestamp).
|
|
5
|
+
*/
|
|
6
|
+
export declare function getChangedFields(oldItem: CslItem, newItem: CslItem): string[];
|
|
7
|
+
/**
|
|
8
|
+
* Format a single field change for display.
|
|
9
|
+
*
|
|
10
|
+
* Examples:
|
|
11
|
+
* title: "Old Title" → "New Title"
|
|
12
|
+
* author: +1 entry
|
|
13
|
+
* volume: → "42"
|
|
14
|
+
* volume: "42" → (removed)
|
|
15
|
+
* issued: "2024-03-15" → "2024-04-01"
|
|
16
|
+
*/
|
|
17
|
+
export declare function formatFieldChange(field: string, oldValue: unknown, newValue: unknown): string;
|
|
18
|
+
/**
|
|
19
|
+
* Get a field value from a CslItem, supporting dot notation for custom fields.
|
|
20
|
+
*/
|
|
21
|
+
export declare function getFieldValue(item: CslItem, field: string): unknown;
|
|
22
|
+
/**
|
|
23
|
+
* Format all change details for a pair of old/new items.
|
|
24
|
+
* Returns formatted change lines (indented with 2 spaces).
|
|
25
|
+
*/
|
|
26
|
+
export declare function formatChangeDetails(oldItem: CslItem, newItem: CslItem): string[];
|
|
27
|
+
//# sourceMappingURL=change-details.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"change-details.d.ts","sourceRoot":"","sources":["../../../src/features/operations/change-details.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AA2B5D;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,EAAE,CAoB7E;AAwED;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,GAAG,MAAM,CAQ7F;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAMnE;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,EAAE,CAOhF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json-output.d.ts","sourceRoot":"","sources":["../../../src/features/operations/json-output.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"json-output.d.ts","sourceRoot":"","sources":["../../../src/features/operations/json-output.ts"],"names":[],"mappings":"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"}
|
|
@@ -27,7 +27,6 @@ export interface RemoveResult {
|
|
|
27
27
|
}
|
|
28
28
|
/**
|
|
29
29
|
* Get fulltext attachment types from a CSL item.
|
|
30
|
-
* Supports both legacy fulltext structure and new attachments structure.
|
|
31
30
|
*/
|
|
32
31
|
export declare function getFulltextAttachmentTypes(item: CslItem): FulltextType[];
|
|
33
32
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remove.d.ts","sourceRoot":"","sources":["../../../src/features/operations/remove.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAEhF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAGzD;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,2BAA2B;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,wEAAwE;IACxE,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,+EAA+E;IAC/E,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,kDAAkD;IAClD,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,wCAAwC;IACxC,OAAO,EAAE,OAAO,CAAC;IACjB,wDAAwD;IACxD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,uEAAuE;IACvE,oBAAoB,CAAC,EAAE,YAAY,EAAE,CAAC;CACvC;AAED
|
|
1
|
+
{"version":3,"file":"remove.d.ts","sourceRoot":"","sources":["../../../src/features/operations/remove.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAEhF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAGzD;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,2BAA2B;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,wEAAwE;IACxE,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,+EAA+E;IAC/E,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,kDAAkD;IAClD,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,wCAAwC;IACxC,OAAO,EAAE,OAAO,CAAC;IACjB,wDAAwD;IACxD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,uEAAuE;IACvE,oBAAoB,CAAC,EAAE,YAAY,EAAE,CAAC;CACvC;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,OAAO,GAAG,YAAY,EAAE,CAexE;AAqCD;;;;;;GAMG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,QAAQ,EACjB,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,YAAY,CAAC,CAyBvB"}
|
|
@@ -21,8 +21,10 @@ export interface UpdateOperationResult {
|
|
|
21
21
|
updated: boolean;
|
|
22
22
|
/** The updated item (if successful) */
|
|
23
23
|
item?: CslItem;
|
|
24
|
-
/**
|
|
25
|
-
|
|
24
|
+
/** The original item before update (when item is available) */
|
|
25
|
+
oldItem?: CslItem;
|
|
26
|
+
/** Error type when update failed (only when updated=false) */
|
|
27
|
+
errorType?: "not_found" | "id_collision";
|
|
26
28
|
/** True if the ID was changed due to collision resolution */
|
|
27
29
|
idChanged?: boolean;
|
|
28
30
|
/** The new ID after collision resolution (only when idChanged=true) */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../src/features/operations/update.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAEhF;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,2BAA2B;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,wEAAwE;IACxE,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,gDAAgD;IAChD,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1B,+DAA+D;IAC/D,aAAa,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,wCAAwC;IACxC,OAAO,EAAE,OAAO,CAAC;IACjB,uCAAuC;IACvC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf
|
|
1
|
+
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../src/features/operations/update.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAEhF;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,2BAA2B;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,wEAAwE;IACxE,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,gDAAgD;IAChD,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1B,+DAA+D;IAC/D,aAAa,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,wCAAwC;IACxC,OAAO,EAAE,OAAO,CAAC;IACjB,uCAAuC;IACvC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,+DAA+D;IAC/D,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,8DAA8D;IAC9D,SAAS,CAAC,EAAE,WAAW,GAAG,cAAc,CAAC;IACzC,6DAA6D;IAC7D,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,uEAAuE;IACvE,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;GAMG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,QAAQ,EACjB,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,qBAAqB,CAAC,CAyChC"}
|
package/dist/index.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { C as CslLibrarySchema, c as computeFileHash, d as computeHash, p as pickDefined, n as normalize, s as search, e as sortResults, t as tokenize, f as detectDuplicate } from "./chunks/file-watcher-
|
|
2
|
-
import { g, F, L, R,
|
|
1
|
+
import { C as CslLibrarySchema, c as computeFileHash, d as computeHash, i as isEqual, p as pickDefined, n as normalize, s as search, e as sortResults, t as tokenize, f as detectDuplicate } from "./chunks/file-watcher-CrsNHUpz.js";
|
|
2
|
+
import { g, F, L, R, r, u, k, l, o, q, m, h, j, w } from "./chunks/file-watcher-CrsNHUpz.js";
|
|
3
3
|
import { mkdir, readFile, copyFile, stat, unlink, readdir } from "node:fs/promises";
|
|
4
4
|
import { dirname, join } from "node:path";
|
|
5
5
|
import writeFileAtomicLib from "write-file-atomic";
|
|
6
6
|
import { existsSync } from "node:fs";
|
|
7
7
|
import { tmpdir } from "node:os";
|
|
8
8
|
import { fileURLToPath } from "node:url";
|
|
9
|
-
import { g as getOpenerCommand, o as openWithSystemApp, b as backupConfigSchema, c as configSchema, d as defaultConfig, a as getDefaultBackupDirectory, e as getDefaultCurrentDirConfigFilename, f as getDefaultLibraryPath, h as getDefaultUserConfigPath, l as loadConfig, i as logLevelSchema, n as normalizePartialConfig, p as partialConfigSchema, w as watchConfigSchema } from "./chunks/loader-
|
|
9
|
+
import { g as getOpenerCommand, o as openWithSystemApp, b as backupConfigSchema, c as configSchema, d as defaultConfig, a as getDefaultBackupDirectory, e as getDefaultCurrentDirConfigFilename, f as getDefaultLibraryPath, h as getDefaultUserConfigPath, l as loadConfig, i as logLevelSchema, n as normalizePartialConfig, p as partialConfigSchema, w as watchConfigSchema } from "./chunks/loader-BN5sS7lg.js";
|
|
10
10
|
function validateCslJson(data) {
|
|
11
11
|
const parseResult = CslLibrarySchema.safeParse(data);
|
|
12
12
|
if (!parseResult.success) {
|
|
@@ -50,7 +50,7 @@ async function resolvePackageName() {
|
|
|
50
50
|
try {
|
|
51
51
|
const currentFile = fileURLToPath(import.meta.url);
|
|
52
52
|
let currentDir = dirname(currentFile);
|
|
53
|
-
for (let
|
|
53
|
+
for (let i = 0; i < 10; i++) {
|
|
54
54
|
const packageJsonPath = join(currentDir, "package.json");
|
|
55
55
|
if (existsSync(packageJsonPath)) {
|
|
56
56
|
const content = await readFile(packageJsonPath, "utf-8");
|
|
@@ -99,12 +99,12 @@ async function cleanupOldBackups(libraryName, options) {
|
|
|
99
99
|
const backups = await listBackups(libraryName);
|
|
100
100
|
const now = Date.now();
|
|
101
101
|
const backupsToDelete = [];
|
|
102
|
-
for (let
|
|
103
|
-
const backupPath = backups[
|
|
102
|
+
for (let i = 0; i < backups.length; i++) {
|
|
103
|
+
const backupPath = backups[i];
|
|
104
104
|
if (!backupPath) continue;
|
|
105
105
|
const stats = await stat(backupPath);
|
|
106
106
|
const age = now - stats.mtimeMs;
|
|
107
|
-
if (
|
|
107
|
+
if (i >= maxGenerations || age > maxAgeMs) {
|
|
108
108
|
backupsToDelete.push(backupPath);
|
|
109
109
|
}
|
|
110
110
|
}
|
|
@@ -120,6 +120,7 @@ const index$4 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePrope
|
|
|
120
120
|
ensureDirectoryExists,
|
|
121
121
|
getBackupDirectory,
|
|
122
122
|
getOpenerCommand,
|
|
123
|
+
isEqual,
|
|
123
124
|
listBackups,
|
|
124
125
|
openWithSystemApp,
|
|
125
126
|
pickDefined,
|
|
@@ -381,15 +382,15 @@ export {
|
|
|
381
382
|
R as Reference,
|
|
382
383
|
index$2 as Search,
|
|
383
384
|
index$4 as Utils,
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
385
|
+
r as ensureCustomMetadata,
|
|
386
|
+
u as extractUuidFromCustom,
|
|
387
|
+
k as generateId,
|
|
388
|
+
l as generateIdWithCollisionCheck,
|
|
389
|
+
o as generateUuid,
|
|
390
|
+
q as isValidUuid,
|
|
391
|
+
m as normalizeText,
|
|
391
392
|
h as parseCslJson,
|
|
392
|
-
|
|
393
|
+
j as serializeCslJson,
|
|
393
394
|
validateCslJson,
|
|
394
395
|
w as writeCslJson
|
|
395
396
|
};
|