imdone-core 1.54.9 → 2.0.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.
Files changed (71) hide show
  1. package/README.md +2 -2
  2. package/lib/cli.js +114 -0
  3. package/lib/index.js +23 -0
  4. package/package.json +48 -66
  5. package/.github/ISSUE_TEMPLATE/bug_report.md +0 -37
  6. package/.github/workflows/ci.yml +0 -24
  7. package/.imdoneignore +0 -12
  8. package/.mocharc.json +0 -10
  9. package/.prettierrc +0 -6
  10. package/CHANGELOG.md +0 -160
  11. package/_navbar.md +0 -1
  12. package/cli.js +0 -74
  13. package/index-markdown.js +0 -55
  14. package/index.html +0 -184
  15. package/index.js +0 -1
  16. package/lib/ProjectContext.js +0 -42
  17. package/lib/adapters/date-time.js +0 -20
  18. package/lib/adapters/file-gateway.js +0 -127
  19. package/lib/adapters/git-download.js +0 -35
  20. package/lib/adapters/markdown.js +0 -168
  21. package/lib/adapters/parsers/DateLanguageParser.js +0 -10
  22. package/lib/adapters/parsers/content-transformer.js +0 -111
  23. package/lib/adapters/parsers/file/LocalFileParserFactory.js +0 -37
  24. package/lib/adapters/parsers/file/ReadStreamCodeParser.js +0 -126
  25. package/lib/adapters/parsers/file/ReadStreamMarkdownParser.js +0 -17
  26. package/lib/adapters/parsers/file/ReadStreamTaskParser.js +0 -104
  27. package/lib/adapters/parsers/function-parser.js +0 -29
  28. package/lib/adapters/parsers/task/CardContentParser.js +0 -376
  29. package/lib/adapters/parsers/task/CheckStyleTaskParser.js +0 -28
  30. package/lib/adapters/parsers/task/CodeStyleTaskParser.js +0 -24
  31. package/lib/adapters/parsers/task/HashStyleTaskParser.js +0 -27
  32. package/lib/adapters/parsers/task/MarkdownStyleTaskParser.js +0 -24
  33. package/lib/adapters/parsers/task/TaskParser.js +0 -38
  34. package/lib/adapters/readers/FileSystemProjectReader.js +0 -45
  35. package/lib/adapters/storage/config.js +0 -49
  36. package/lib/adapters/storage/tags.js +0 -30
  37. package/lib/adapters/yaml.js +0 -6
  38. package/lib/card.js +0 -300
  39. package/lib/config.js +0 -214
  40. package/lib/constants.js +0 -97
  41. package/lib/context/ApplicationContext.js +0 -32
  42. package/lib/context/StreamingApplicationContext.js +0 -31
  43. package/lib/controlers/SaveViewController.js +0 -10
  44. package/lib/default-settings.js +0 -37
  45. package/lib/domain/entities/FileProjectContext.js +0 -10
  46. package/lib/domain/entities/View.js +0 -30
  47. package/lib/domain/usecases/GetViewsUsecase.js +0 -50
  48. package/lib/domain/usecases/OpenProjectUsecase.js +0 -13
  49. package/lib/domain/usecases/SaveViewUsecase.js +0 -57
  50. package/lib/file.js +0 -1395
  51. package/lib/languages.js +0 -114
  52. package/lib/list.js +0 -105
  53. package/lib/migrate-config.js +0 -165
  54. package/lib/mixins/repo-fs-store.js +0 -424
  55. package/lib/mixins/repo-watched-fs-store.js +0 -195
  56. package/lib/plugins/archive-plugin.js +0 -70
  57. package/lib/plugins/default-board-actions-plugin.js +0 -56
  58. package/lib/plugins/default-board-properties-plugin.js +0 -101
  59. package/lib/plugins/epic-plugin.js +0 -176
  60. package/lib/plugins/extension-plugin.js +0 -87
  61. package/lib/plugins/persist-tags-plugin.js +0 -13
  62. package/lib/plugins/plugin-manager.js +0 -421
  63. package/lib/plugins/plugin-registry.js +0 -61
  64. package/lib/project-factory.js +0 -45
  65. package/lib/project.js +0 -911
  66. package/lib/repository.js +0 -1746
  67. package/lib/task.js +0 -798
  68. package/lib/tools.js +0 -250
  69. package/lib/usecases/get-imdone-url.js +0 -6
  70. package/lib/usecases/get-project-tags.js +0 -16
  71. package/lib/usecases/get-tasks-in-file.js +0 -29
@@ -1,37 +0,0 @@
1
- const { loadYAML } = require('./adapters/yaml')
2
-
3
- const defaultSettingsString = `openIn: default #override
4
- openCodeIn: default #override
5
- journalType: New File
6
- journalPath: imdone-tasks #override
7
- appendNewCardsTo: imdone-tasks.md
8
- newCardSyntax: HASHTAG #override
9
- replaceSpacesWith: '-' #override
10
- plugins:
11
- devMode: false
12
- cards:
13
- colors: [] #override if
14
- template: | # This is the template for new cards that are created in imdone
15
-
16
-
17
- <!--
18
- created:\${(new Date()).toISOString()}
19
- -->
20
- trackChanges: false #override
21
- metaNewLine: false #override
22
- addCompletedMeta: false #override
23
- addCheckBoxTasks: false #override
24
- doingList: DOING #override if
25
- doneList: DONE #override if
26
- tokenPrefix: '#' #override
27
- taskPrefix: '##' #override
28
- tagPrefix: '+' #override
29
- metaSep: ':' #override
30
- orderMeta: true
31
- maxLines: 6 #override
32
- addNewCardsToTop: true #override
33
- showTagsAndMeta: true #override
34
- journalTemplate: #override
35
- markdownOnly: false #override
36
- `
37
- module.exports = loadYAML(defaultSettingsString)
@@ -1,10 +0,0 @@
1
- module.exports = class FileProjectContext {
2
- constructor() {}
3
- getOrder(list, order) {
4
- return order ? +order : 0
5
- }
6
-
7
- getProject() {
8
- return null
9
- }
10
- }
@@ -1,30 +0,0 @@
1
- const DEFAULT_VIEW_ID = "default"
2
- const DEFAULT_VIEW_NAME = "Default View"
3
-
4
- class View {
5
- id
6
- name
7
- lists
8
- filter
9
- #modifiable
10
-
11
- constructor({id, name, filter = "", lists = [], modifiable = false}) {
12
- if (!name) throw new Error('Name is a required field')
13
- this.id = id
14
- this.name = name
15
- this.lists = lists
16
- this.filter = filter
17
- this.#modifiable = modifiable
18
- }
19
-
20
- get isModifiable () {
21
- return this.#modifiable
22
- }
23
- }
24
-
25
- View.DEFAULT_VIEW_ID = DEFAULT_VIEW_ID
26
- View.DEFAULT_VIEW_NAME = DEFAULT_VIEW_NAME
27
-
28
- module.exports = {
29
- View
30
- }
@@ -1,50 +0,0 @@
1
- const context = require('../../context/ApplicationContext');
2
- const { View } = require('../entities/View')
3
- const List = require('../../list')
4
-
5
- function getView(_id) {
6
- return getViews().find(view => view.id === _id)
7
- }
8
-
9
- function getDefaultView() {
10
- const lists = getConfig().lists.map(list => {
11
- list = new List(list)
12
- delete list.tasks
13
- return list
14
- })
15
- const filter = getConfig().defaultFilter
16
- const id = View.DEFAULT_VIEW_ID
17
- const name = View.DEFAULT_VIEW_NAME
18
- return new View({name, id, filter, lists})
19
- }
20
-
21
- function syncLists(currentLists, overrideLists) {
22
- return currentLists.map(currentList => {
23
- return overrideLists.find(list => list.name === currentList.name && list.id === currentList.id)
24
- || new List(currentList)
25
- })
26
- }
27
-
28
- function getViews() {
29
- const defaultView = getDefaultView()
30
- const customViews = context().repo.config.views.map(
31
- ({name, id, filter, lists, modifiable = true}) => new View ({
32
- name,
33
- id,
34
- filter,
35
- lists: syncLists(defaultView.lists, lists),
36
- modifiable
37
- })
38
- )
39
- return [defaultView, ...customViews]
40
- }
41
-
42
- function getConfig() {
43
- return context().repo.config
44
- }
45
-
46
- module.exports = {
47
- getDefaultView,
48
- getView,
49
- getViews
50
- }
@@ -1,13 +0,0 @@
1
- const appContext = require('../../context/ApplicationContext')
2
-
3
- module.exports = class OpenProjectUsecase {
4
- constructor() {
5
- this.projectReader = appContext().projectReader
6
- this.projectPresenter = appContext().projectPresenter
7
- }
8
-
9
- execute(location) {
10
- const project = this.projectReader.read(location)
11
- this.projectPresenter.present(project)
12
- }
13
- }
@@ -1,57 +0,0 @@
1
- const crypto = require('crypto')
2
- const context = require('../../context/ApplicationContext')
3
- const { getView } = require('./GetViewsUsecase')
4
- const { View } = require('../entities/View')
5
-
6
- async function saveView({id, name, lists, filter}) {
7
- let view = getView(id)
8
-
9
- if (!view) {
10
- view = {id: crypto.randomUUID(), name, lists, filter}
11
- context().repo.config.views.push(view)
12
- } else if (view.id === View.DEFAULT_VIEW_ID) {
13
- return
14
- } else {
15
- view.name = name
16
- view.filter = filter
17
- view.lists = lists
18
- }
19
-
20
- await saveConfig()
21
- return view.id
22
- }
23
-
24
- async function saveConfig() {
25
- return new Promise((resolve, reject) => {
26
- context().repo.saveConfig((err) => {
27
- if (err) return reject(err)
28
- resolve()
29
- })
30
- });
31
- }
32
-
33
- async function removeDefaultViewFilter() {
34
- const project = context().project
35
- if (project.defaultFilter) {
36
- project.setFilter(project.defaultFilter)
37
- project.filter = project.defaultFilter
38
- project.defaultFilter = ''
39
- await saveConfig()
40
- }
41
- }
42
-
43
- async function setDefaultViewFilter(filter = context().project.filter) {
44
- const project = context().project
45
- if (filter) {
46
- project.defaultFilter = filter
47
- project.filter = ''
48
- project.setFilter(project.filter)
49
- await saveConfig()
50
- }
51
- }
52
-
53
- module.exports = {
54
- removeDefaultViewFilter,
55
- setDefaultViewFilter,
56
- saveView
57
- }