imdone-core 1.54.10 → 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
package/README.md CHANGED
@@ -9,7 +9,6 @@ Imdone is text based kanban processor with a simple syntax that uses [comment ta
9
9
  <!-- START doctoc generated TOC please keep comment here to allow auto update -->
10
10
  <!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
11
11
 
12
-
13
12
  - [Imdone format](#imdone-format)
14
13
  - [Code Style](#code-style)
15
14
  - [Hash Style](#hash-style)
@@ -203,8 +202,9 @@ License
203
202
  {{version}} :package: :hammer_and_wrench: Code Version
204
203
  {{publishedVersion}} :package: :passenger_ship: Published Version
205
204
 
205
+ [ESM Migration]({{getFilterURL('list = NOTE or allTags = "esm-migration"')}})
206
206
  [Focus]({{getFilterURL('list = DOING or tags = focus')}})
207
- [Plan]({{getFilterURL(' ')}})
207
+ [Plan]({{clearFilterURL}})
208
208
 
209
209
  <!--
210
210
  expand:1
package/lib/cli.js ADDED
@@ -0,0 +1,114 @@
1
+ #!/usr/bin/env node
2
+
3
+ // DOING Modernize cli to esm
4
+ // <!--
5
+ // order:-40
6
+ // -->
7
+ import { Command } from 'commander';
8
+ import ora from 'ora';
9
+ import chalk from 'chalk';
10
+ import * as fs from 'node:fs/promises'; // Use fs/promises for async read
11
+ import { fileURLToPath } from 'node:url';
12
+ import path from 'node:path';
13
+ import { executeBoardAction, listAvailableActions } from './usecases/actions.js';
14
+ import { logger } from './adapters/logger.js';
15
+ const __filename = fileURLToPath(import.meta.url);
16
+ const __dirname = path.dirname(__filename);
17
+
18
+ async function getPackageJson() {
19
+ try {
20
+ const data = await fs.readFile(path.join(__dirname, '..', 'package.json'), 'utf8');
21
+ return JSON.parse(data);
22
+ } catch (error) {
23
+ logger.error("Error reading package.json:", error);
24
+ return null;
25
+ }
26
+ }
27
+
28
+ const _package = await getPackageJson();
29
+ // const { log } = hideLogs();
30
+ const spinner = ora('Loading unicorns');
31
+
32
+ setTimeout(() => {
33
+ spinner.color = 'yellow';
34
+ spinner.text = 'Loading rainbows';
35
+ }, 1000);
36
+
37
+ function actionCancelled() {
38
+ logger.log(chalk.bgRed('Action canceled'));
39
+ }
40
+
41
+ const program = new Command();
42
+ program.version(_package.version, '-v, --version', 'output the current version');
43
+
44
+ const actionCmd = program.command('action')
45
+ .description('Manage board actions');
46
+
47
+ actionCmd
48
+ .command('run <title>')
49
+ .option('-p, --plugin <plugin>', 'Plugin name', 'ExtensionPlugin')
50
+ .option('-t, --task <task>', 'Task filePath:line')
51
+ .option('-w, --working-dir <workingDir>', 'Working directory', '.')
52
+ .option('-c, --config <configPath>', 'Config file path', path.join('.imdone', 'config.yml'))
53
+ .description('Run a board action')
54
+ .action(async (title, {
55
+ plugin = 'ExtensionPlugin',
56
+ task,
57
+ workingDir,
58
+ configPath
59
+ }) => {
60
+ spinner.start();
61
+ const action = { plugin, title };
62
+ const [filePath, line] = task ? task.split(':') : [];
63
+ // DOING: Move this CLI command to a usecase
64
+ try {
65
+ await executeBoardAction({
66
+ projectPath: workingDir,
67
+ configPath,
68
+ task: filePath && line && { filePath, line },
69
+ action
70
+ });
71
+ } catch (e) {
72
+ logger.error(e);
73
+ actionCancelled();
74
+ } finally {
75
+ spinner.stop();
76
+ process.exit(0);
77
+ }
78
+ });
79
+
80
+ actionCmd
81
+ .command('list')
82
+ .option('-p, --plugin <plugin>', 'Plugin name', 'ExtensionPlugin')
83
+ .option('-w, --working-dir <workingDir>', 'Working directory')
84
+ .option('-c, --config <configPath>', 'Config file path')
85
+ .description('List available actions')
86
+ .action(async ({ workingDir = path.resolve('.'), configPath, plugin}) => {
87
+ spinner.start();
88
+ try {
89
+ await listAvailableActions(workingDir, configPath, plugin);
90
+ } catch (e) {
91
+ logger.error(e);
92
+ actionCancelled();
93
+ } finally {
94
+ spinner.stop();
95
+ process.exit(0);
96
+ }
97
+ });
98
+
99
+ program.parse();
100
+
101
+ function hideLogs() {
102
+ const log = logger.log;
103
+ const info = logger.info;
104
+ const warn = logger.warn;
105
+ const logQueue = { warn: [], info: [], log: [] };
106
+ if (!process.env.DEBUG) {
107
+ Object.keys(logQueue).forEach((key) => {
108
+ console[key] = function(...args) {
109
+ logQueue[key].push(args);
110
+ };
111
+ });
112
+ }
113
+ return { log, info, warn, logQueue };
114
+ }
package/lib/index.js ADDED
@@ -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';
package/package.json CHANGED
@@ -1,24 +1,33 @@
1
1
  {
2
2
  "name": "imdone-core",
3
- "version": "1.54.10",
3
+ "version": "2.0.0",
4
4
  "description": "imdone-core",
5
- "main": "index.js",
5
+ "repository": {
6
+ "type": "git",
7
+ "url": "https://github.com/imdone/imdone-core.git"
8
+ },
9
+ "main": "lib/index.js",
10
+ "module": "lib/index.js",
11
+ "types": "types/index.d.ts",
12
+ "files": [
13
+ "dist"
14
+ ],
15
+ "type": "module",
6
16
  "bin": {
7
- "imdone-cli": "./cli.js"
17
+ "imdone-cli": "lib/cli.js"
8
18
  },
9
19
  "scripts": {
10
- "build": "doctoc --github --notitle README.md && npm test",
11
- "coverage": "nyc --reporter=lcov --reporter=text --reporter=html mocha --exit",
12
- "lint": "jshint ./lib",
13
- "mocha": "mocha --exit",
14
- "test": "export NODE_ENV=test && npm run coverage",
15
- "test-debug": "mocha debug",
20
+ "prepublishOnly": "npm run build:index && npm run build",
21
+ "build": "npm run build:docs && npm run build:docs:index && npm run coverage && npm run build:index && npm run build:types",
22
+ "build:docs": "doctoc --github --notitle README.md",
23
+ "build:docs:index": "node scripts/index-markdown.js",
24
+ "build:index": "node scripts/generate-index.js",
25
+ "build:types": "tsc --noEmit false",
26
+ "coverage": "vitest --run --coverage",
27
+ "test": "vitest --run",
28
+ "test-ci": "vitest --run",
16
29
  "serve": "npx docsify-cli serve"
17
30
  },
18
- "repository": {
19
- "type": "git",
20
- "url": "https://github.com/imdone/imdone-core.git"
21
- },
22
31
  "keywords": [
23
32
  "imdone",
24
33
  "TODO",
@@ -34,33 +43,24 @@
34
43
  "url": "https://github.com/imdone/imdone-core/issues"
35
44
  },
36
45
  "homepage": "https://github.com/imdone/imdone-core",
37
- "jshintConfig": {
38
- "strict": true,
39
- "node": true,
40
- "globals": {
41
- "jQuery": true,
42
- "console": false,
43
- "module": true,
44
- "document": true
45
- }
46
- },
47
46
  "dependencies": {
48
- "async": "~1.5.0",
49
- "chalk": "^4.1.2",
50
- "checksum": "^0.1.1",
51
- "chrono-node": "^2.6.4",
52
- "command-exists": "^1.2.9",
53
- "commander": "^11.1.0",
47
+ "adm-zip": "^0.5.16",
48
+ "async": "^3.2.6",
49
+ "async-es": "^3.2.6",
50
+ "chalk": "^5.4.1",
51
+ "chokidar": "^4.0.3",
52
+ "chrono-node": "^2.7.8",
53
+ "commander": "^13.1.0",
54
54
  "debug": ">=4.3.4",
55
- "download": "^8.0.0",
56
55
  "eol": "^0.9.1",
57
56
  "escape-string-regexp": "^1.0.5",
58
- "fast-sort": "^2.2.0",
59
- "find-up": "^5.0.0",
57
+ "eta": "^3.5.0",
58
+ "fast-sort": "^3.4.1",
59
+ "find-up-simple": "^1.0.1",
60
60
  "gray-matter": "^4.0.2",
61
61
  "ignore": "^5.2.0",
62
62
  "imdone-api": "^1.54.0",
63
- "isbinaryfile": "^3.0.2",
63
+ "isbinaryfile": "^5.0.4",
64
64
  "js-yaml": "^3.14.1",
65
65
  "json-fns": "^1.0.0",
66
66
  "lodash.assign": "^4.2.0",
@@ -82,69 +82,51 @@
82
82
  "lodash.reject": "^4.6.0",
83
83
  "lodash.remove": "^4.7.0",
84
84
  "lodash.some": "^4.6.0",
85
- "lodash.template": "^4.5.0",
86
85
  "lodash.union": "^4.6.0",
87
86
  "lodash.uniq": "^4.5.0",
88
87
  "lodash.where": "^3.1.0",
89
88
  "lodash.without": "^4.4.0",
90
- "markdown-it": "^12.3.2",
89
+ "markdown-it": "^14.1.0",
91
90
  "markdown-it-checkbox": "^1.1.0",
92
91
  "markdown-it-emoji": "^2.0.0",
93
92
  "markdown-it-imsize": "^2.0.1",
94
93
  "markdown-it-mark": "^3.0.1",
95
- "mkdirp": "^1.0.4",
96
94
  "moment": "^2.29.1",
97
95
  "monquery": "github:imdone/node-monquery#0.2.1",
98
96
  "multilang-extract-comments": "^0.4.0",
97
+ "node-fetch": "^3.3.2",
99
98
  "open": "^9.1.0",
100
- "ora": "^5.4.1",
99
+ "ora": "^8.2.0",
101
100
  "parse-code-context": "^1.0.0",
102
101
  "prompts": "^2.4.2",
103
- "readdirp": "^3.6.0",
102
+ "readdirp": "^4.1.2",
104
103
  "remove-markdown": "^0.3.0",
105
104
  "rimraf": "^3.0.2",
106
- "sane": "^5.0.1",
107
105
  "sanitize-filename": "^1.6.3",
108
106
  "sift": "^17.1.3",
109
107
  "simple-git": "^3.19.1",
110
108
  "uniqid": "^5.4.0",
111
- "xregexp": "^5.1.0"
109
+ "xregexp": "^5.1.2"
112
110
  },
113
111
  "devDependencies": {
114
- "chai": "^4.3.6",
112
+ "@types/node": "^22.13.13",
113
+ "@vitest/coverage-istanbul": "^3.0.8",
114
+ "@vitest/coverage-v8": "^3.0.8",
115
+ "chai": "^5.2.0",
115
116
  "colors": "^1.4.0",
117
+ "dependency-cruiser": "^16.10.0",
116
118
  "doctoc": "^2.1.0",
119
+ "esbuild": "^0.25.1",
117
120
  "expect.js": "~0.3.1",
118
121
  "fs-extra": "^11.1.0",
119
- "jshint": "^2.9.4",
120
122
  "json-stringify-safe": "~5.0.0",
121
123
  "mocha": "^11.1.0",
122
124
  "mocha-each": "^2.0.1",
123
- "nyc": "^15.1.0",
124
125
  "prettier": "^2.5.1",
125
126
  "should": "13.1.3",
126
- "sinon": "^13.0.0",
127
- "sinon-chai": "^3.7.0",
128
- "wrench": "~1.5.8"
129
- },
130
- "mocha": {
131
- "diff": true,
132
- "extension": [
133
- "js",
134
- "cjs",
135
- "mjs"
136
- ],
137
- "package": "./package.json",
138
- "reporter": "spec",
139
- "slow": "75",
140
- "timeout": "2000",
141
- "spec": [
142
- "lib/**/__tests__/**/*.spec.js",
143
- "test/**/*spec.js"
144
- ],
145
- "watch-files": [
146
- "lib/**/__tests__/**/*.spec.js",
147
- "test/**/*spec.js"
148
- ]
127
+ "sinon": "^19.0.2",
128
+ "sinon-chai": "^4.0.0",
129
+ "typescript": "^5.8.2",
130
+ "vitest": "^3.0.8"
149
131
  }
150
132
  }
@@ -1,37 +0,0 @@
1
- ---
2
- name: Bug report
3
- about: Create a report to help us improve imdone
4
- title: ''
5
- labels: 'bug'
6
- assignees: ''
7
-
8
- ---
9
-
10
- **Describe the bug**
11
- A clear and concise description of what the bug is.
12
-
13
- **To Reproduce**
14
- Steps to reproduce the behavior:
15
- 1. Go to '...'
16
- 2. Click on '....'
17
- 3. Scroll down to '....'
18
- 4. See error
19
-
20
- **Expected behavior**
21
- A clear and concise description of what you expected to happen.
22
-
23
- **Screenshots**
24
- If applicable, add screenshots to help explain your problem.
25
-
26
- **Desktop (please complete the following information):**
27
- - OS: [e.g. iOS]
28
- - Browser (If imdone web site) [e.g. chrome, safari]
29
- - Imdone Version [e.g. 22]
30
-
31
- **Additional context**
32
- Add any other context about the problem here.
33
-
34
- **DoD**
35
- - [ ] Issue is understood
36
- - [ ] Fix is implemented and tested
37
- - [ ] Fix is deployed in the current release
@@ -1,24 +0,0 @@
1
- name: Node.js CI
2
-
3
- on:
4
- push:
5
- branches: [ '*' ]
6
-
7
- jobs:
8
- build:
9
-
10
- runs-on: ubuntu-latest
11
-
12
- strategy:
13
- matrix:
14
- node-version: [16.x, 17.x, 18.x, 19.x, 20.x]
15
-
16
- steps:
17
- - uses: actions/checkout@v3
18
- - name: Use Node.js ${{ matrix.node-version }}
19
- uses: actions/setup-node@v3
20
- with:
21
- node-version: ${{ matrix.node-version }}
22
- cache: 'npm'
23
- - run: npm i
24
- - run: npm run build --if-present
package/.imdoneignore DELETED
@@ -1,12 +0,0 @@
1
- coverage
2
- .nyc_output
3
- test/repos
4
- test/files
5
- test/file-spec.js
6
- __tests__
7
- test-big-file.md
8
- tmp
9
- imdone-export.json
10
- .imdone/templates
11
- .imdone
12
- notes/archive
package/.mocharc.json DELETED
@@ -1,10 +0,0 @@
1
- {
2
- "diff": true,
3
- "extension": ["js", "cjs", "mjs"],
4
- "package": "./package.json",
5
- "reporter": "spec",
6
- "slow": "75",
7
- "timeout": "20000",
8
- "ui": "bdd",
9
- "watch-files": ["lib/**/__tests__/**/*.spec.js", "test/**/*spec.js"]
10
- }
package/.prettierrc DELETED
@@ -1,6 +0,0 @@
1
- {
2
- "tabWidth": 2,
3
- "useTabs": false,
4
- "semi": false,
5
- "singleQuote": true
6
- }
package/CHANGELOG.md DELETED
@@ -1,160 +0,0 @@
1
- ## 1.28.8
2
- - Allow Card and Board actions to return a value
3
-
4
- # 1.5.31
5
- - When moving a task, only change the order of the current task unless it's moving to the top of a list with more than one task, then we update the task that was previously first as well.
6
-
7
- # 1.5.28
8
- - Implement Repository.modifyTaskFromContent
9
-
10
- # 1.5.10
11
- - Switch to readdirp
12
-
13
- # 1.5.2
14
- - add allContext, allTags and allMeta to tasks
15
-
16
- # 1.5.0
17
- - Add frontMatter
18
-
19
- # 1.4.19
20
- - Add doc generation and move regex dependency
21
-
22
- # 1.4.17
23
- - Improve issue matching
24
-
25
- # 1.4.15
26
- - ignore hash and link style tasks in code files
27
-
28
- # 1.4.14
29
- - Add modifyDescription
30
-
31
- # 1.4.13
32
- - Add rawTask to opts for Task constructor
33
-
34
- # 1.4.12
35
- - Make Repository.query return an empty array if no tasks found
36
-
37
- # 1.4.11
38
- - Expose Repository.query to filter tasks without repo
39
-
40
- # 1.4.10
41
- - Add task properties (created, completed, due, remind) as dates if they exist in metadata and parse as dates
42
-
43
- # 1.4.8
44
- - use string.search as fallback to rql
45
-
46
- # 1.4.7
47
- - Add .vue extension
48
-
49
- # 1.4.6
50
- - ignore tasks found in list if list has property `ignore: true` in config.lists
51
-
52
- # 1.4.4
53
- - repository.query Add rql querying of tasks
54
-
55
- # 1.4.3
56
- - Add savingFiles attribute when saving modified files
57
-
58
- # 1.4.2
59
- - Fix add and remove metaData
60
-
61
- # 1.4.1
62
- - Fix updateMetaData
63
-
64
- # 1.4.0
65
- - Switch to metadata for created and completed dates
66
-
67
- # 1.3.59
68
- - Fix meta so it captures the first key:
69
-
70
- # 1.3.58
71
- - extend include_lists
72
-
73
- # 1.3.54
74
- - Add .pug to languages
75
- - Update comment symbol for .jade and .pug to be //-
76
-
77
- # 1.3.51
78
- - Allow hash style tasks in code if they're in config.lists or config.code.include_lists
79
-
80
- # 1.3.45
81
- - switch to markdown-it for check-lists
82
- - Add following lines as task description
83
-
84
- # 1.3.38
85
- - Add list to include_lists
86
-
87
- # 1.3.34
88
- - Update chokidar
89
-
90
- # 1.3.27
91
- - Allow umlauts and other special characters in contexts
92
-
93
- # 1.3.26
94
- - Check excludes for all files before running stat
95
-
96
- # 1.3.25
97
- - Use eachLimit for Repository.readFiles
98
-
99
- # 1.3.24
100
- - Simplify isBinary check
101
-
102
- # 1.3.23
103
- - file.isOk callback with false if isBinaryCheck errs
104
-
105
- # 1.3.22
106
- - Drop async file access limit to 10
107
-
108
- # 1.3.21
109
- - Reduce async file access limit to 256
110
-
111
- # 1.3.20
112
- - Improve stats performance
113
- - emits tasks on update
114
- - Add isListVisible
115
-
116
- # 1.3.19
117
- - Minor bug fixes
118
-
119
- # 1.3.18
120
- - Add delete tasks
121
-
122
- # 1.3.17
123
- - Simplify readdir with node-dir
124
-
125
- # 1.3.16
126
- - Add php block comment.
127
- - Fix issue with hash style lists not getting added
128
-
129
- # 1.3.15
130
- - Fire config.loaded event after config is set
131
-
132
- # 1.3.14
133
- - Make sure list is in include_lists before adding it through listeners
134
-
135
- # 1.3.13
136
- - Raise async limit
137
-
138
- # 1.3.11
139
- - Add haml extension and -# comment
140
-
141
- # 1.3.9
142
- - Add .boot
143
-
144
- # 1.3.8
145
- - Add velocity comments
146
-
147
- # 1.3.5
148
- - Update .imdoneignore functionality to work like .gitignore
149
-
150
- # 1.3.3
151
- - Update marked and minimatch for security reasons
152
-
153
- # 1.3.2
154
- - When a user adds a list to the board, utomatically add list name to config.code.include_lists if it's all caps
155
-
156
- # 1.3.0
157
- - Add update task from metadata, tags and contexts
158
- - meta is empty object if no metadata found
159
- - make repo emit task.modified
160
- - compare meta.id as backup for id compare
package/_navbar.md DELETED
@@ -1 +0,0 @@
1
- **[:house: imdone-core Documentation](/README)**
package/cli.js DELETED
@@ -1,74 +0,0 @@
1
- #!/usr/bin/env node
2
-
3
- const { program } = require('commander');
4
- const ora = require('ora')
5
- const chalk = require('chalk')
6
- const package = require('./package.json')
7
- const { createFileSystemProject } = require('./lib/project-factory.js')
8
- const { load } = require('./lib/adapters/storage/config.js')
9
- // const { log } = hideLogs()
10
- const spinner = ora('Loading unicorns')
11
-
12
-
13
- setTimeout(() => {
14
- spinner.color = 'yellow';
15
- spinner.text = 'Loading rainbows';
16
- }, 1000);
17
-
18
- function actionCancelled() {
19
- log(chalk.bgRed('Action canceled'))
20
- }
21
-
22
- const mainCmd = program
23
- .version(package.version, '-v, --version', 'output the current version')
24
-
25
- mainCmd
26
- .command('action <pluginName> <actionTitle>')
27
- .option('-t, --task <task>', 'Task filePath:line')
28
- .option('-w, --working-dir <workingDir>', 'Working directory')
29
- .option('-c, --config <config>', 'Config file path')
30
- .description('Run a board action')
31
- .action(async function (plugin, title, options) {
32
- spinner.start()
33
- const action = {plugin, title}
34
- const [filePath, line] = options.task ? options.task.split(':') : []
35
- try {
36
- const path = options.workingDir || process.env.PWD
37
- const config = options.config && await load(options.config)
38
- const project = createFileSystemProject({path, config})
39
- await project.init()
40
- await project.toImdoneJSON()
41
- chalk.bgGreen('Project loaded')
42
- const file = filePath && project.getFile(filePath)
43
- const task = file && line > -1 && file.getTaskAtLine(line)
44
- await project.performBoardAction(action, task)
45
- } catch (e) {
46
- console.error(e)
47
- actionCancelled()
48
- } finally {
49
- spinner.stop()
50
- process.exit(0)
51
- }
52
- })
53
-
54
-
55
- program.parse();
56
-
57
- function hideLogs() {
58
- const log = console.log
59
- const info = console.info
60
- const warn = console.warn
61
- const logQueue = {warn: [], info: [], log: []}
62
- if (!process.env.DEBUG) {
63
- Object.keys(logQueue).forEach((key) => {
64
- console[key] = function(...args) {
65
- logQueue[key].push(args)
66
- }
67
- })
68
- }
69
- return {log, info, warn, logQueue}
70
- }
71
-
72
- function actionCancelled() {
73
- log(chalk.bgRed('Action canceled'))
74
- }