mcdev 3.0.2 → 3.1.2

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 (44) hide show
  1. package/.eslintrc.json +1 -1
  2. package/.github/ISSUE_TEMPLATE/bug.yml +75 -0
  3. package/.github/PULL_REQUEST_TEMPLATE.md +3 -2
  4. package/.issuetracker +11 -3
  5. package/.vscode/settings.json +3 -3
  6. package/CHANGELOG.md +88 -0
  7. package/README.md +245 -141
  8. package/boilerplate/config.json +3 -2
  9. package/docs/dist/documentation.md +818 -352
  10. package/lib/Deployer.js +4 -1
  11. package/lib/MetadataTypeDefinitions.js +1 -0
  12. package/lib/MetadataTypeInfo.js +1 -0
  13. package/lib/Retriever.js +30 -14
  14. package/lib/cli.js +295 -0
  15. package/lib/index.js +774 -1019
  16. package/lib/metadataTypes/AccountUser.js +389 -0
  17. package/lib/metadataTypes/Asset.js +8 -7
  18. package/lib/metadataTypes/Automation.js +121 -56
  19. package/lib/metadataTypes/DataExtension.js +167 -121
  20. package/lib/metadataTypes/DataExtensionField.js +134 -4
  21. package/lib/metadataTypes/DataExtract.js +9 -5
  22. package/lib/metadataTypes/EventDefinition.js +9 -5
  23. package/lib/metadataTypes/FileTransfer.js +9 -5
  24. package/lib/metadataTypes/Folder.js +66 -69
  25. package/lib/metadataTypes/ImportFile.js +13 -12
  26. package/lib/metadataTypes/MetadataType.js +138 -77
  27. package/lib/metadataTypes/Query.js +2 -3
  28. package/lib/metadataTypes/Role.js +13 -8
  29. package/lib/metadataTypes/Script.js +2 -2
  30. package/lib/metadataTypes/definitions/AccountUser.definition.js +227 -0
  31. package/lib/metadataTypes/definitions/Asset.definition.js +1 -0
  32. package/lib/metadataTypes/definitions/DataExtension.definition.js +1 -1
  33. package/lib/metadataTypes/definitions/DataExtensionField.definition.js +1 -1
  34. package/lib/metadataTypes/definitions/Folder.definition.js +1 -1
  35. package/lib/metadataTypes/definitions/ImportFile.definition.js +2 -1
  36. package/lib/metadataTypes/definitions/Script.definition.js +5 -5
  37. package/lib/retrieveChangelog.js +96 -0
  38. package/lib/util/cli.js +4 -6
  39. package/lib/util/init.git.js +2 -1
  40. package/lib/util/util.js +20 -3
  41. package/package.json +19 -23
  42. package/.github/ISSUE_TEMPLATE/bug_report.md +0 -30
  43. package/img/README.md/troubleshoot-nodejs-postinstall.jpg +0 -0
  44. package/postinstall.js +0 -41
package/.eslintrc.json CHANGED
@@ -11,7 +11,7 @@
11
11
  "SharedArrayBuffer": "readonly"
12
12
  },
13
13
  "parserOptions": {
14
- "ecmaVersion": 2018,
14
+ "ecmaVersion": 2020,
15
15
  "sourceType": "module"
16
16
  },
17
17
  "rules": {
@@ -0,0 +1,75 @@
1
+ name: 🐞 Bug
2
+ description: File a bug/issue
3
+ title: "[BUG] <title>"
4
+ labels: [bug, NEW]
5
+ body:
6
+ - type: checkboxes
7
+ attributes:
8
+ label: Is there an existing issue for this?
9
+ description: Please [search here](https://github.com/Accenture/sfmc-devtools/issues) to see if an issue already exists for your problem.
10
+ options:
11
+ - label: I have searched the existing issues
12
+ required: true
13
+ - type: textarea
14
+ attributes:
15
+ label: Current Behavior
16
+ description: A clear & concise description of what you're experiencing.
17
+ validations:
18
+ required: false
19
+ - type: textarea
20
+ attributes:
21
+ label: Expected Behavior
22
+ description: A clear & concise description of what you expected to happen.
23
+ validations:
24
+ required: false
25
+ - type: textarea
26
+ attributes:
27
+ label: Steps To Reproduce
28
+ description: Steps to reproduce the behavior.
29
+ value: |
30
+ 1. Go to '...'
31
+ 2. Click on '....'
32
+ 3. Run '...'
33
+ 4. See error...
34
+ validations:
35
+ required: false
36
+ - type: dropdown
37
+ id: version
38
+ attributes:
39
+ label: Version
40
+ description: What version of our software are you running? (mcdev --version)
41
+ options:
42
+ - 3.2.0
43
+ - 3.1.2
44
+ - 3.1.1
45
+ - 3.1.0
46
+ - 3.0.3
47
+ - 3.0.2
48
+ - 3.0.1
49
+ - develop-branch
50
+ validations:
51
+ required: true
52
+ - type: textarea
53
+ attributes:
54
+ label: Environment
55
+ description: |
56
+ examples:
57
+ - **Operating system (Windows/Mac/Linux/...)**: Windows 10
58
+ - **Node (node --version)**: 13.14.0
59
+ - **npm (npm --version)**: 7.6.3
60
+ value: |
61
+ - OS:
62
+ - Node:
63
+ - npm:
64
+ validations:
65
+ required: false
66
+ - type: checkboxes
67
+ attributes:
68
+ label: Participation
69
+ options:
70
+ - label: I am willing to submit a pull request for this issue.
71
+ required: false
72
+ - type: textarea
73
+ attributes:
74
+ label: Additional comments
75
+ description: Is there anything else that's important for the team to know?
@@ -25,5 +25,6 @@ _Please delete options that are not relevant._
25
25
  - [ ] I have performed a self-review of my own code
26
26
  - [ ] I have commented my code, particularly in hard-to-understand areas
27
27
  - [ ] ESLint & Prettier are not outputting errors or warnings
28
- - [ ] Documentation updated (if applicable)
29
- - [ ] Changelog updated
28
+ - [ ] README.md updated (if applicable)
29
+ - [ ] CHANGELOG.md updated
30
+ - [ ] ran `npm run docs` to update developer docs
package/.issuetracker CHANGED
@@ -2,6 +2,14 @@
2
2
  #
3
3
  # (note that '\' need to be escaped).
4
4
 
5
- [issuetracker "Jira Rule"]
6
- regex = "CSCLSROZ-(\\d+)"
7
- url = "https://alm.accenture.com/jira/browse/CSCLSROZ-$1"
5
+ [issuetracker "Accenture Jira Rule"]
6
+ regex = "(CSCLSROZ)-(\\d+)"
7
+ url = "https://alm.accenture.com/jira/browse/$1-$2"
8
+
9
+ [issuetracker "GitHub Pull Request Rule"]
10
+ regex = "pull request #(\\d+)"
11
+ url = "https://github.com/Accenture/sfmc-devtools/pull/$1"
12
+
13
+ [issuetracker "GitHub Issue Rule"]
14
+ regex = "#(\\d+)"
15
+ url = "https://github.com/Accenture/sfmc-devtools/issues/$1"
@@ -12,9 +12,10 @@
12
12
  "javascript.validate.enable": false,
13
13
  "markdown.extension.italic.indicator": "_",
14
14
  "markdown.extension.list.indentationSize": "adaptive",
15
- "markdown.extension.tableFormatter.enabled": false,
16
15
  "markdown.extension.toc.levels": "2..6",
17
16
  "markdown.extension.toc.orderedList": false,
17
+ "markdown.extension.toc.slugifyMode": "github",
18
+ "markdown.extension.tableFormatter.enabled": false,
18
19
  "sql-formatter.indent": " ",
19
20
  "sql-formatter.uppercase": true,
20
21
  "[html]": {
@@ -30,14 +31,13 @@
30
31
  "editor.defaultFormatter": "esbenp.prettier-vscode"
31
32
  },
32
33
  "[markdown]": {
33
- "editor.defaultFormatter": "esbenp.prettier-vscode"
34
+ "editor.defaultFormatter": "yzhang.markdown-all-in-one"
34
35
  },
35
36
  "[typescript]": {
36
37
  "editor.defaultFormatter": "esbenp.prettier-vscode"
37
38
  },
38
39
  "markdown-toc.orderedList": true,
39
40
  "markdown-toc.insertAnchor": true,
40
- "markdown-toc.anchorMode": "gitlab.com",
41
41
  "outline.showProperties": false,
42
42
  "outline.showVariables": false,
43
43
  "breadcrumbs.showVariables": false,
package/CHANGELOG.md CHANGED
@@ -4,6 +4,94 @@ Accenture SFMC DevTools follows [semantic versioning](https://semver.org/).
4
4
 
5
5
  ---
6
6
 
7
+ ## [3.1.1](https://github.com/Accenture/sfmc-devtools/compare/v3.1.0...v3.1.1) - 2022-01-10
8
+
9
+ **Bugfixes:**
10
+
11
+ - [#160](https://github.com/Accenture/sfmc-devtools/issues/160) mcdev outputs bogus text since dependency colorjs got corrupted ( [background story](https://www.theverge.com/2022/1/9/22874949/developer-corrupts-open-source-libraries-projects-affected))
12
+
13
+ **Chores:**
14
+
15
+ - bumped cli-progress to 3.10.0 (removes colors dependency)
16
+ - bumped winston to 3.3.4 (removes colors dependency)
17
+
18
+ ---
19
+
20
+ ## [3.1.0](https://github.com/Accenture/sfmc-devtools/compare/v3.0.3...v3.1.0) - 2021-12-27
21
+
22
+ **Features:**
23
+
24
+ - [#55](https://github.com/Accenture/sfmc-devtools/issues/55) added user / roles documentation
25
+ - [#64](https://github.com/Accenture/sfmc-devtools/issues/64) Added `accountUser` (system users) support (retrieve)
26
+ - [#103](https://github.com/Accenture/sfmc-devtools/issues/103) Add rename `dataExtensionField` option (via Name_new)
27
+ - [#130](https://github.com/Accenture/sfmc-devtools/issues/130) offer `retrieveChangelog` option to other node packages including mcdev (see [retrieveChangelog.js](/lib/retrieveChangelog.js) for a how-to)
28
+ - [#133](https://github.com/Accenture/sfmc-devtools/issues/133) `dataExtensionField` validation during DE update (see [README](README.md#722-addingupdating-fields-on-existing-data-extensions) for details)
29
+ - [#136](https://github.com/Accenture/sfmc-devtools/issues/136) enable including mcdev in other node packages (see [README](README.md#26-using-mcdev-in-other-node-packages) for a how-to)
30
+ - [#144](https://github.com/Accenture/sfmc-devtools/issues/144) added file type .ai to `asset` - thanks to @fbellgr
31
+
32
+ **Bugfixes:**
33
+
34
+ - [#112](https://github.com/Accenture/sfmc-devtools/issues/112) add (unknown) new type 783 to defintion of `importFile`
35
+ - [#117](https://github.com/Accenture/sfmc-devtools/issues/117) `queries` not deployable when target is `shared DE`
36
+ - [#118](https://github.com/Accenture/sfmc-devtools/issues/118) `automation` start not auto-retried during deploy
37
+ - [#119](https://github.com/Accenture/sfmc-devtools/issues/119) fixed `list` dependency for importFile
38
+ - [#122](https://github.com/Accenture/sfmc-devtools/issues/122) ECONNRESET on caching metadata during deploy
39
+ - [#128](https://github.com/Accenture/sfmc-devtools/issues/128) `dataExtension` json not equal for retrieve/deploy
40
+ - [#129](https://github.com/Accenture/sfmc-devtools/issues/129) `script` json not equal for retrieve/deploy
41
+ - [#140](https://github.com/Accenture/sfmc-devtools/issues/140) avoid issues when retrieving `dataExtensions` that do not have a folder ID (edge case) - thanks to @fbellgr
42
+ - [#144](https://github.com/Accenture/sfmc-devtools/issues/144) improved handling high volumes of `asset` - thanks to @fbellgr
43
+ - [#149](https://github.com/Accenture/sfmc-devtools/issues/149) handle errors on upsert of data extensions gracefully
44
+
45
+ **Chores:**
46
+
47
+ - [#5](https://github.com/Accenture/sfmc-devtools/issues/5) removed postinstall msg after npm 7 dropped support for that
48
+ - [#127](https://github.com/Accenture/sfmc-devtools/issues/127) bad message "info: updated automation: undefined"
49
+ - [#132](https://github.com/Accenture/sfmc-devtools/issues/132) `dataExtension.SendableSubscriberField.Name` now has a slightly more readable value
50
+ - [#137](https://github.com/Accenture/sfmc-devtools/issues/137) docs for installing a specific version were incorrect
51
+ - [#138](https://github.com/Accenture/sfmc-devtools/issues/138) make issues and pull requests clickable in gitfork
52
+ - change `mcdev document` to take the cred/BU first and then the type to align it with other commands
53
+ - improved error handling of `document role` command
54
+ - bumped cli-progress to 3.9.1
55
+ - bumped eslint to 8.4.1
56
+ - bumped eslint-plugin-mocha to 10.0.1
57
+ - bumped eslint-plugin-prettier to 4.0.0
58
+ - bumped fs-extra to 10.0.0
59
+ - bumped husky to 7.0.4
60
+ - bumped inquirer to 8.2.0
61
+ - bumped jsdoc-to-markdown to 7.1.0
62
+ - bumped lint-staged to 12.1.2
63
+ - bumped mocha to 9.1.3
64
+ - bumped mustache to 4.2.0
65
+ - bumped prettier to 2.5.1
66
+ - bumped semver to 7.3.5
67
+ - bumped simple-git to 2.48.0
68
+ - bumped yargs to 17.3.0
69
+ - [#146](https://github.com/Accenture/sfmc-devtools/issues/146) remove AccountUser retrieve as a default retrieve option
70
+
71
+ ---
72
+
73
+ ## [3.0.3](https://github.com/Accenture/sfmc-devtools/compare/v3.0.2...v3.0.3) - 2021-08-11
74
+
75
+ **Bugfixes:**
76
+
77
+ - [#100](https://github.com/Accenture/sfmc-devtools/issues/100) Handle ECONNRESET errors across various types (incl. Data Extensions)
78
+ - [#102](https://github.com/Accenture/sfmc-devtools/issues/102) block deployment attempt for synchronized Data Extensions with proper error message
79
+ - [#104](https://github.com/Accenture/sfmc-devtools/issues/104) block deployment of shared data extensions on child BUs (existing solution broke somewhere down the line)
80
+
81
+ **Chores:**
82
+
83
+ - [#107](https://github.com/Accenture/sfmc-devtools/issues/107) rewrite folder to use generic update/create to help with ECONNRESET issue
84
+ - [#108](https://github.com/Accenture/sfmc-devtools/issues/108) return full API error messages for create & update via SOAP
85
+ - [#110](https://github.com/Accenture/sfmc-devtools/issues/110) improve error message for missing dependencies
86
+ - bumped jsdoc-to-markdown to 7.0.1
87
+ - bumped eslint-plugin-mocha to 9.0.0
88
+ - bumped eslint-plugin-prettier to 3.4.0
89
+ - bumped eslint-config-prettier to 8.3.0
90
+ - bumped eslint to 7.32.0
91
+ - enhanced Pull Request Template with note on `npm run docs`
92
+
93
+ ---
94
+
7
95
  ## [3.0.2](https://github.com/Accenture/sfmc-devtools/compare/v3.0.1...v3.0.2) - 2021-08-03
8
96
 
9
97
  **Bugfixes:**