imdone-core 2.0.0 → 2.0.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.
Files changed (160) hide show
  1. package/.dependency-cruiser.cjs +412 -0
  2. package/.github/ISSUE_TEMPLATE/bug_report.md +37 -0
  3. package/.github/workflows/ci.yml +24 -0
  4. package/.imdoneignore +13 -0
  5. package/.mocharc.json +10 -0
  6. package/.prettierrc +6 -0
  7. package/CHANGELOG.md +160 -0
  8. package/_index.md +7 -0
  9. package/_navbar.md +1 -0
  10. package/build.js +57 -0
  11. package/esm-migration.md +446 -0
  12. package/index.html +184 -0
  13. package/lib/FileProjectContext.js +13 -0
  14. package/lib/ProjectContext.js +43 -0
  15. package/lib/adapters/date-time.js +15 -0
  16. package/lib/adapters/environment.js +3 -0
  17. package/lib/adapters/file-gateway.js +154 -0
  18. package/lib/adapters/git-download.js +55 -0
  19. package/lib/adapters/index.js +9 -0
  20. package/lib/adapters/logger.js +136 -0
  21. package/lib/adapters/markdown.js +180 -0
  22. package/lib/adapters/parsers/DateLanguageParser.js +12 -0
  23. package/lib/adapters/parsers/content-transformer.js +116 -0
  24. package/lib/adapters/parsers/file/LocalFileParserFactory.js +36 -0
  25. package/lib/adapters/parsers/file/ReadStreamCodeParser.js +126 -0
  26. package/lib/adapters/parsers/file/ReadStreamMarkdownParser.js +17 -0
  27. package/lib/adapters/parsers/file/ReadStreamTaskParser.js +106 -0
  28. package/lib/adapters/parsers/file/index.js +4 -0
  29. package/lib/adapters/parsers/function-parser.js +25 -0
  30. package/lib/adapters/parsers/index.js +5 -0
  31. package/lib/adapters/parsers/task/CardContentParser.js +367 -0
  32. package/lib/adapters/parsers/task/CheckStyleTaskParser.js +28 -0
  33. package/lib/adapters/parsers/task/CodeStyleTaskParser.js +24 -0
  34. package/lib/adapters/parsers/task/HashStyleTaskParser.js +27 -0
  35. package/lib/adapters/parsers/task/MarkdownStyleTaskParser.js +24 -0
  36. package/lib/adapters/parsers/task/TaskParser.js +38 -0
  37. package/lib/adapters/parsers/task/index.js +6 -0
  38. package/lib/adapters/storage/config.js +44 -0
  39. package/lib/adapters/storage/index.js +2 -0
  40. package/lib/adapters/storage/tags.js +29 -0
  41. package/lib/adapters/yaml.js +9 -0
  42. package/lib/card.js +299 -0
  43. package/lib/checksum.js +22 -0
  44. package/lib/config.js +249 -0
  45. package/lib/constants.js +68 -0
  46. package/lib/context/ApplicationContext.js +35 -0
  47. package/lib/context/index.js +1 -0
  48. package/lib/default-settings.js +37 -0
  49. package/lib/domain/entities/View.js +23 -0
  50. package/lib/domain/entities/index.js +1 -0
  51. package/lib/domain/index.js +2 -0
  52. package/lib/domain/usecases/GetViewsUsecase.js +44 -0
  53. package/lib/domain/usecases/SaveViewUsecase.js +51 -0
  54. package/lib/domain/usecases/index.js +2 -0
  55. package/lib/file.js +1391 -0
  56. package/lib/get-tasks-to-modify.js +117 -0
  57. package/lib/languages.js +113 -0
  58. package/lib/list.js +56 -0
  59. package/lib/migrate-config.js +165 -0
  60. package/lib/mixins/index.js +2 -0
  61. package/lib/mixins/repo-fs-store.js +359 -0
  62. package/lib/mixins/repo-watched-fs-store.js +206 -0
  63. package/lib/plugins/archive-plugin.js +72 -0
  64. package/lib/plugins/default-board-actions-plugin.js +56 -0
  65. package/lib/plugins/default-board-properties-plugin.js +101 -0
  66. package/lib/plugins/default-plugins.js +7 -0
  67. package/lib/plugins/epic-plugin.js +177 -0
  68. package/lib/plugins/extension-plugin.js +94 -0
  69. package/lib/plugins/index.js +9 -0
  70. package/lib/plugins/persist-tags-plugin.js +14 -0
  71. package/lib/plugins/plugin-manager.js +458 -0
  72. package/lib/plugins/plugin-registry.js +57 -0
  73. package/lib/project-factory.js +42 -0
  74. package/lib/project.js +864 -0
  75. package/lib/repository.js +1514 -0
  76. package/lib/task.js +780 -0
  77. package/lib/tools.js +176 -0
  78. package/lib/usecases/actions.js +32 -0
  79. package/lib/usecases/get-imdone-url.js +6 -0
  80. package/lib/usecases/get-project-tags.js +7 -0
  81. package/lib/usecases/get-tasks-in-file.js +26 -0
  82. package/lib/usecases/index.js +4 -0
  83. package/package.json +2 -6
  84. package/scripts/delete-markdown-indexes.js +87 -0
  85. package/scripts/generate-index.js +35 -0
  86. package/scripts/index-markdown.js +55 -0
  87. package/tsconfig.json +15 -0
  88. package/types/FileProjectContext.d.ts +4 -0
  89. package/types/ProjectContext.d.ts +9 -0
  90. package/types/adapters/date-time.d.ts +2 -0
  91. package/types/adapters/environment.d.ts +1 -0
  92. package/types/adapters/file-gateway.d.ts +51 -0
  93. package/types/adapters/git-download.d.ts +1 -0
  94. package/types/adapters/index.d.ts +9 -0
  95. package/types/adapters/logger.d.ts +24 -0
  96. package/types/adapters/markdown.d.ts +13 -0
  97. package/types/adapters/parsers/DateLanguageParser.d.ts +1 -0
  98. package/types/adapters/parsers/content-transformer.d.ts +10 -0
  99. package/types/adapters/parsers/file/LocalFileParserFactory.d.ts +5 -0
  100. package/types/adapters/parsers/file/ReadStreamCodeParser.d.ts +13 -0
  101. package/types/adapters/parsers/file/ReadStreamMarkdownParser.d.ts +7 -0
  102. package/types/adapters/parsers/file/ReadStreamTaskParser.d.ts +19 -0
  103. package/types/adapters/parsers/file/index.d.ts +4 -0
  104. package/types/adapters/parsers/function-parser.d.ts +1 -0
  105. package/types/adapters/parsers/index.d.ts +5 -0
  106. package/types/adapters/parsers/task/CardContentParser.d.ts +45 -0
  107. package/types/adapters/parsers/task/CheckStyleTaskParser.d.ts +12 -0
  108. package/types/adapters/parsers/task/CodeStyleTaskParser.d.ts +14 -0
  109. package/types/adapters/parsers/task/HashStyleTaskParser.d.ts +13 -0
  110. package/types/adapters/parsers/task/MarkdownStyleTaskParser.d.ts +14 -0
  111. package/types/adapters/parsers/task/TaskParser.d.ts +7 -0
  112. package/types/adapters/parsers/task/index.d.ts +6 -0
  113. package/types/adapters/storage/config.d.ts +6 -0
  114. package/types/adapters/storage/index.d.ts +2 -0
  115. package/types/adapters/storage/tags.d.ts +3 -0
  116. package/types/adapters/yaml.d.ts +2 -0
  117. package/types/card.d.ts +166 -0
  118. package/types/checksum.d.ts +8 -0
  119. package/types/config.d.ts +61 -0
  120. package/types/constants.d.ts +46 -0
  121. package/types/context/ApplicationContext.d.ts +24 -0
  122. package/types/context/index.d.ts +1 -0
  123. package/types/default-settings.d.ts +2 -0
  124. package/types/domain/entities/FileProjectContext.d.ts +5 -0
  125. package/types/domain/entities/View.d.ts +17 -0
  126. package/types/domain/entities/index.d.ts +1 -0
  127. package/types/domain/index.d.ts +2 -0
  128. package/types/domain/usecases/GetViewsUsecase.d.ts +4 -0
  129. package/types/domain/usecases/SaveViewUsecase.d.ts +8 -0
  130. package/types/domain/usecases/index.d.ts +2 -0
  131. package/types/file.d.ts +344 -0
  132. package/types/get-tasks-to-modify.d.ts +3 -0
  133. package/types/index.d.ts +23 -0
  134. package/types/languages.d.ts +649 -0
  135. package/types/list.d.ts +30 -0
  136. package/types/migrate-config.d.ts +1 -0
  137. package/types/mixins/index.d.ts +2 -0
  138. package/types/mixins/repo-fs-store.d.ts +2 -0
  139. package/types/mixins/repo-watched-fs-store.d.ts +2 -0
  140. package/types/plugins/archive-plugin.d.ts +8 -0
  141. package/types/plugins/default-board-actions-plugin.d.ts +9 -0
  142. package/types/plugins/default-board-properties-plugin.d.ts +16 -0
  143. package/types/plugins/default-plugins.d.ts +6 -0
  144. package/types/plugins/epic-plugin.d.ts +19 -0
  145. package/types/plugins/extension-plugin.d.ts +15 -0
  146. package/types/plugins/index.d.ts +9 -0
  147. package/types/plugins/persist-tags-plugin.d.ts +4 -0
  148. package/types/plugins/plugin-manager.d.ts +68 -0
  149. package/types/plugins/plugin-registry.d.ts +1 -0
  150. package/types/project-factory.d.ts +14 -0
  151. package/types/project.d.ts +158 -0
  152. package/types/repository.d.ts +996 -0
  153. package/types/task.d.ts +202 -0
  154. package/types/tools.d.ts +29 -0
  155. package/types/usecases/actions.d.ts +7 -0
  156. package/types/usecases/get-imdone-url.d.ts +1 -0
  157. package/types/usecases/get-project-tags.d.ts +1 -0
  158. package/types/usecases/get-tasks-in-file.d.ts +4 -0
  159. package/types/usecases/index.d.ts +4 -0
  160. package/vitest.config.js +13 -0
@@ -0,0 +1,344 @@
1
+ export class File extends Emitter<[never]> {
2
+ static CODE_STYLE_PATTERN: string;
3
+ static CHECK_STYLE_PATTERN: RegExp;
4
+ static getTaskId: typeof getTaskId;
5
+ static trimBlankLines: typeof trimBlankLines;
6
+ static padDescription: typeof padDescription;
7
+ static isListNameValid(listName: any): any;
8
+ static getUnixContent(content: any): any;
9
+ static isMetaNewLine(config: any): any;
10
+ static isAddCompletedMeta(config: any): any;
11
+ static isFile(file: any): file is File;
12
+ static isMarkdown(relPath: any): boolean;
13
+ static addStarted({ task, content, config }: {
14
+ task: any;
15
+ content: any;
16
+ config: any;
17
+ }): any;
18
+ static addCompleted({ task, content, config }: {
19
+ task: any;
20
+ content: any;
21
+ config: any;
22
+ }): any;
23
+ static parseDueDate(config: any, text: any): any;
24
+ static parseRemindDate(config: any, text: any): any;
25
+ static parseDeferDate(config: any, text: any): any;
26
+ static parseDate(config: any, text: any, dateType: any): any;
27
+ constructor(opts: any);
28
+ project: any;
29
+ projectContext: any;
30
+ repoId: any;
31
+ path: any;
32
+ content: any;
33
+ modifiedTime: any;
34
+ createdTime: any;
35
+ languages: any;
36
+ modified: boolean | undefined;
37
+ frontMatter: {
38
+ tags: never[];
39
+ context: never[];
40
+ meta: {};
41
+ } | undefined;
42
+ tasks: any[] | undefined;
43
+ isDir: boolean | undefined;
44
+ lineCount: number | undefined;
45
+ deleted: boolean | undefined;
46
+ removeCompleted({ task, content, config }: {
47
+ task: any;
48
+ content: any;
49
+ config: any;
50
+ }): any;
51
+ trackListChanges({ task, content, config, modify }: {
52
+ task: any;
53
+ content: any;
54
+ config: any;
55
+ modify: any;
56
+ }): {
57
+ content: any;
58
+ beforeTextModified: boolean;
59
+ };
60
+ removeMetaData(content: any, key: any, value: any): any;
61
+ transformTask({ config, modify, task }: {
62
+ config: any;
63
+ modify: any;
64
+ task: any;
65
+ }): void;
66
+ transformTasks(config: any, modify: any): void;
67
+ extractCodeStyleTasks(config: any, pos: any, content: any): void;
68
+ extractHashStyleTasks(config: any, pos: any, content: any): void;
69
+ extractLinkStyleTasks(config: any, pos: any, content: any): void;
70
+ extractCheckboxTasks(config: any, pos: any, content: any): void;
71
+ extractTasks(config: any): this;
72
+ extractAndTransformTasks(config: any): void;
73
+ extractTasksInCodeFile(config: any): void;
74
+ extractTasksInNonCodeFile(config: any): void;
75
+ deleteBlankLine(lineNo: any): void;
76
+ deleteTaskContent(beforeContent: any, afterContent: any): void;
77
+ deleteDescription(task: any, config: any): void;
78
+ deleteCodeOrHashTask(re: any, task: any, config: any): this;
79
+ deleteTask(task: any, config: any): void;
80
+ modifyTask(task: any, config: any, noEmit: any): void;
81
+ modifyCodeOrHashTask(re: any, task: any, config: any, noEmit: any): this;
82
+ modifyTaskFromHtml(task: any, html: any): void;
83
+ modifyTaskFromContent(task: any, content: any, config: any): void;
84
+ modifyDescription(task: any, config: any): void;
85
+ extractTaskWithDescription({ taskStartOnLine, rawTask, config, list, text, order, line, type, hasColon, content, inBlockComment, singleLineBlockComment, pos, }: {
86
+ taskStartOnLine: any;
87
+ rawTask: any;
88
+ config: any;
89
+ list: any;
90
+ text: any;
91
+ order: any;
92
+ line: any;
93
+ type: any;
94
+ hasColon: any;
95
+ content: any;
96
+ inBlockComment: any;
97
+ singleLineBlockComment: any;
98
+ pos: any;
99
+ }): {
100
+ readonly settings: any;
101
+ readonly maxLines: any;
102
+ interpretedContent: any;
103
+ innerInterpretedContent: any;
104
+ init(totals?: any): /*elided*/ any;
105
+ totals: any;
106
+ onTaskUpdate(): void;
107
+ initProps(): void;
108
+ props: any;
109
+ initComputed(): void;
110
+ computed: any;
111
+ initActions(): void;
112
+ links: any[] | undefined;
113
+ readonly projectPath: any;
114
+ readonly relPath: any;
115
+ readonly fullPath: string | undefined;
116
+ readonly defaultData: any;
117
+ initData(): void;
118
+ dataKeys: string[] | undefined;
119
+ data: any;
120
+ updateDescriptionData(): void;
121
+ desc: {
122
+ title: any;
123
+ html: any;
124
+ truncHtml: any;
125
+ encodedText: string;
126
+ encodedMD: string;
127
+ markdown: any;
128
+ rawMarkdown: any;
129
+ htmlLength: any;
130
+ htmlTruncLength: any;
131
+ isOverMaxLines: any;
132
+ } | undefined;
133
+ getEncodedContent(content: any): {
134
+ encodedMD: string;
135
+ encodedText: string;
136
+ content: any;
137
+ };
138
+ formatContent(content: any, mustache: any): {
139
+ encodedMD: string;
140
+ encodedText: string;
141
+ content: any;
142
+ };
143
+ format(content: any, mustache: any): any;
144
+ getCardMarkdown(): {
145
+ totalLines: number;
146
+ markdown: string;
147
+ rawMarkdown: string;
148
+ };
149
+ truncLines: any;
150
+ getHtml(content: any): {
151
+ html: any;
152
+ truncHtml: any;
153
+ };
154
+ getDescriptionData(): {
155
+ title: any;
156
+ html: any;
157
+ truncHtml: any;
158
+ encodedText: string;
159
+ encodedMD: string;
160
+ markdown: any;
161
+ rawMarkdown: any;
162
+ htmlLength: any;
163
+ htmlTruncLength: any;
164
+ isOverMaxLines: any;
165
+ };
166
+ frontMatter: any;
167
+ pos: any;
168
+ rawTask: any;
169
+ beforeText: any;
170
+ text: any;
171
+ list: any;
172
+ order: any;
173
+ hasColon: any;
174
+ line: any;
175
+ id: any;
176
+ repoId: any;
177
+ source: any;
178
+ type: any;
179
+ tags: any;
180
+ context: any;
181
+ meta: any;
182
+ metaIndex: any;
183
+ inBlockComment: any;
184
+ singleLineBlockComment: any;
185
+ description: any;
186
+ rawTaskContentLines: any;
187
+ taskStartOnLine: any;
188
+ commentStartOnLine: any;
189
+ descriptionStartsWith: any;
190
+ filteredListName: any;
191
+ isWrappedWithCardTag: any;
192
+ config: any;
193
+ allMeta: any;
194
+ allContext: any;
195
+ allTags: any;
196
+ progress: any;
197
+ content: any;
198
+ lastLine: any;
199
+ orderModified: any;
200
+ index: any;
201
+ innerOrder: any;
202
+ readonly descriptionString: any;
203
+ updateLastLine(): void;
204
+ getLastLine(): any;
205
+ parse(): void;
206
+ paddingLength: number | undefined;
207
+ metaKeys: string[] | undefined;
208
+ topics: string[] | undefined;
209
+ issueNumberRegExp(): RegExp;
210
+ readonly listId: any;
211
+ readonly path: any;
212
+ readonly markdownBeforeText: string;
213
+ getTextAndDescription(): any;
214
+ getRawTextAndDescription(): any;
215
+ getProgress(): {
216
+ completed: any;
217
+ total: any;
218
+ };
219
+ getContent(): any;
220
+ updateContent(): void;
221
+ updateFromContent(content: any): void;
222
+ toJSON(): /*elided*/ any & {
223
+ allTags: any;
224
+ allContext: any;
225
+ allMeta: any;
226
+ config: undefined;
227
+ expand: boolean;
228
+ };
229
+ getTagPrefix(): any;
230
+ addToLastCommentInContent(content: any, toAdd: any, newLine: any): string;
231
+ getCheckedData(): {
232
+ pad: number;
233
+ checked: boolean;
234
+ } | null;
235
+ updateOrderMeta(config: any, descContent?: any): undefined;
236
+ replaceContent(regex: any, replacement: any): void;
237
+ replaceMetaSep(oldMetaSep: any, newMetaSep: any): void;
238
+ updateContext(): void;
239
+ parseTodoTxt(): void;
240
+ getTags(): any[];
241
+ getContext(): any[];
242
+ getDueMeta(): any;
243
+ getMetaData(): any;
244
+ getListTrackingMeta(lists: any): any[];
245
+ hasListChanged(lists: any): boolean;
246
+ hasMetaData(key: any, value: any): any;
247
+ getMetaDataWithLinks(config: any): any[];
248
+ getMetaLink(config: any, metaKey: any, metaValue: any): {
249
+ title: string;
250
+ url: string;
251
+ icon: any;
252
+ } | undefined;
253
+ toString(): string;
254
+ getRepoId(): any;
255
+ getSource(): any;
256
+ getId(): any;
257
+ getList(): any;
258
+ getText(opts: any, text: any): any;
259
+ getChecksFromHtml(html: any): boolean[];
260
+ getLine(): any;
261
+ getType(): any;
262
+ equals(task: any): boolean | undefined;
263
+ };
264
+ tasksMatch(config: any, task: any, line: any, taskText: any): any;
265
+ getTaskAtLine(line: any): any;
266
+ getLinePos(lineNo: any): any;
267
+ getLineNumber(pos: any, content?: any): number;
268
+ toJSON(): any;
269
+ getRepoId(): any;
270
+ getPath(): any;
271
+ getFullPath(): string;
272
+ getId(): any;
273
+ reset(): this;
274
+ previousContent: any;
275
+ rollback(): this;
276
+ setContent(content: any): this;
277
+ setContentFromFile(content: any): this;
278
+ getContent(): any;
279
+ getContentForFile(): string;
280
+ getContentLines(): string[];
281
+ setModifiedTime(modifiedTime: any): this;
282
+ setCreatedTime(createdTime: any): this;
283
+ getCreatedTime(): any;
284
+ getModifiedTime(): any;
285
+ setModified(modified: any): this;
286
+ isModified(): boolean | undefined;
287
+ getType(): string;
288
+ getTasks(): any[] | undefined;
289
+ getTask(id: any): any;
290
+ addTask(task: any): this;
291
+ removeTask(task: any): void;
292
+ isMarkDownFile(): boolean;
293
+ getLang(): any;
294
+ getExt(): string;
295
+ isCodeFile(): any;
296
+ getBeforeText(line: any, pos: any): any;
297
+ getDescriptionChars(inBlockComment: any): any;
298
+ getTaskContent({ config, content, inBlockComment, beforeText, }: {
299
+ config: any;
300
+ content: any;
301
+ inBlockComment: any;
302
+ beforeText: any;
303
+ }): {
304
+ rawTaskContentLines: string[];
305
+ taskContentLines: string[];
306
+ } | undefined;
307
+ isCheckBoxTask(config: any, line: any, beforeText: any): boolean | undefined;
308
+ getCodeCommentRegex(): RegExp;
309
+ trimCommentStart(text: any): any;
310
+ trimCommentBlockEnd(text: any): any;
311
+ trimCommentBlockStart(text: any): any;
312
+ trimCommentBlockIgnore(text: any): any;
313
+ trimCommentChars(text: any): any;
314
+ hasCodeStyleTask(config: any, text: any): any;
315
+ hasTaskInText(config: any, text: any): boolean;
316
+ isInBlockComment(content: any): any;
317
+ startsWithCommentOrSpace(pos: any): boolean;
318
+ isSingleLineBlockComment(content: any): boolean;
319
+ parseFrontMatter(config: any): {
320
+ [key: string]: any;
321
+ };
322
+ getSource(): {
323
+ path: any;
324
+ id: any;
325
+ repoId: any;
326
+ type: string;
327
+ ext: string;
328
+ lang: any;
329
+ modified: boolean | undefined;
330
+ modifiedTime: any;
331
+ createdTime: any;
332
+ };
333
+ isWithinCodeSpanOrBlock(pos: any, content: any): boolean;
334
+ getMarkdownCodePositions(text: any): {
335
+ start: number;
336
+ end: number;
337
+ }[];
338
+ isResultInMarkdownCode(positions: any, index: any): any;
339
+ }
340
+ import Emitter from 'events';
341
+ declare function getTaskId(path: any, line: any, text: any): string;
342
+ declare function trimBlankLines(content: any, isCodeFile: any): any;
343
+ declare function padDescription(description?: any[], beforeText?: string): any[];
344
+ export {};
@@ -0,0 +1,3 @@
1
+ export function getPreviousIndexWithDifferentOrder(tasks: any, pos: any): number;
2
+ export function getNextIndexWithDifferentOrder(tasks: any, pos: any): number;
3
+ export function getTasksToModify(task: any, taskList: any, newPos: any): any[];
@@ -0,0 +1,23 @@
1
+ export * from "./FileProjectContext.js";
2
+ export * from "./ProjectContext.js";
3
+ export * from "./card.js";
4
+ export * from "./checksum.js";
5
+ export * from "./config.js";
6
+ export * from "./constants.js";
7
+ export * from "./default-settings.js";
8
+ export * from "./file.js";
9
+ export * from "./get-tasks-to-modify.js";
10
+ export * from "./languages.js";
11
+ export * from "./list.js";
12
+ export * from "./migrate-config.js";
13
+ export * from "./project-factory.js";
14
+ export * from "./project.js";
15
+ export * from "./repository.js";
16
+ export * from "./task.js";
17
+ export * from "./tools.js";
18
+ export * as adapters from "./adapters/index.js";
19
+ export * as context from "./context/index.js";
20
+ export * as domain from "./domain/index.js";
21
+ export * as mixins from "./mixins/index.js";
22
+ export * as plugins from "./plugins/index.js";
23
+ export * as usecases from "./usecases/index.js";