@futdevpro/dynamo-eslint 1.15.25 โ†’ 1.20.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 (146) hide show
  1. package/.c8rc.json +26 -26
  2. package/.cursor/rules/__assistant_guide.mdc +30 -30
  3. package/.cursor/rules/__main.mdc +64 -64
  4. package/.cursor/rules/_ag_backend-structure.mdc +85 -85
  5. package/.cursor/rules/_ag_backend.mdc +16 -16
  6. package/.cursor/rules/_ag_debug.mdc +7 -7
  7. package/.cursor/rules/_ag_documentation_writing_rules.mdc +372 -372
  8. package/.cursor/rules/_ag_file-refactoring.mdc +113 -113
  9. package/.cursor/rules/_ag_fixes_rules.mdc +5 -5
  10. package/.cursor/rules/_ag_frontend-structure.mdc +86 -86
  11. package/.cursor/rules/_ag_frontend.mdc +39 -39
  12. package/.cursor/rules/_ag_import-rules.mdc +44 -44
  13. package/.cursor/rules/_ag_naming.mdc +115 -115
  14. package/.cursor/rules/_ag_running_commands.mdc +4 -4
  15. package/.cursor/rules/_ag_server-controller.mdc +5 -5
  16. package/.cursor/rules/_ag_should-be.mdc +6 -6
  17. package/.cursor/rules/_ag_swearing.mdc +47 -47
  18. package/.cursor/rules/ai_development_guide.md +60 -60
  19. package/.cursor/rules/ai_directives.md +114 -114
  20. package/.cursor/rules/cursor-rules.md +160 -160
  21. package/.cursor/rules/default-command.mdc +464 -464
  22. package/.cursor/rules/error_code_pattern.md +39 -39
  23. package/.cursor/rules/saved rule mcp server use.md +15 -15
  24. package/.dynamo/pipeline.cicd.config.json +184 -184
  25. package/.dynamo/version-bump.config.json +5 -5
  26. package/.eslintrc.json +4 -4
  27. package/.github/workflows/main.yml +436 -436
  28. package/.husky/pre-commit +2 -2
  29. package/.vscode/settings.json +11 -11
  30. package/README.md +312 -315
  31. package/__documentations/2026-04-18-ccap-review-integration.md +173 -173
  32. package/__documentations/2026-08-18-bfr-ctm-005-eslint9-validator-report.md +45 -0
  33. package/__documentations/2026-08-22-angular-20-phase2-release.md +79 -0
  34. package/build/configs/base.d.ts +1 -2
  35. package/build/configs/base.d.ts.map +1 -1
  36. package/build/configs/base.js +3 -4
  37. package/build/configs/base.js.map +1 -1
  38. package/build/configs/ngx.d.ts +1 -3
  39. package/build/configs/ngx.d.ts.map +1 -1
  40. package/build/configs/ngx.js +4 -7
  41. package/build/configs/ngx.js.map +1 -1
  42. package/build/plugin/index.d.ts +24 -24
  43. package/build/plugin/rules/no-getter-logic.js +1 -1
  44. package/build/plugin/rules/no-getter-logic.js.map +1 -1
  45. package/build/plugin/rules/prefer-enum-over-string-union.js +7 -7
  46. package/build/plugin/rules/prefer-enum-over-string-union.js.map +1 -1
  47. package/build/plugin/rules/prefer-interface-over-duplicate-types.js +2 -2
  48. package/build/plugin/rules/prefer-interface-over-duplicate-types.js.map +1 -1
  49. package/build/plugin/rules/require-jsdoc-description.js +7 -7
  50. package/build/plugin/rules/require-jsdoc-description.js.map +1 -1
  51. package/build/scripts/dynamo-fix.js +1 -1
  52. package/build/scripts/dynamo-fix.js.map +1 -1
  53. package/build/scripts/fix-return-types.d.ts.map +1 -1
  54. package/build/scripts/fix-return-types.js.map +1 -1
  55. package/build/scripts/validate-imports.js +51 -27
  56. package/build/scripts/validate-imports.js.map +1 -1
  57. package/build/scripts/validate-naming.js +49 -10
  58. package/build/scripts/validate-naming.js.map +1 -1
  59. package/eslint.config.js +15 -15
  60. package/package.json +27 -28
  61. package/pnpm-workspace.yaml +2 -0
  62. package/samples/.vscode/settings.json +13 -13
  63. package/samples/base/.eslintrc.json +6 -6
  64. package/samples/base/eslint.config.js +3 -3
  65. package/samples/fsm/.eslintrc.json +4 -4
  66. package/samples/fsm/eslint.config.js +3 -3
  67. package/samples/ngx/.eslintrc.json +6 -6
  68. package/samples/ngx/eslint.config.js +3 -3
  69. package/samples/ngx-package/.eslintrc.json +4 -4
  70. package/samples/ngx-package/eslint.config.js +3 -3
  71. package/samples/nts/.eslintrc.json +6 -6
  72. package/samples/nts/eslint.config.js +3 -3
  73. package/samples/nts-package/.eslintrc.json +4 -4
  74. package/samples/nts-package/eslint.config.js +3 -3
  75. package/samples/package.json.example +22 -26
  76. package/samples/poc-sample.ts +38 -38
  77. package/samples/poc-violations.ts +54 -54
  78. package/scripts/run-coverage-tests.js +24 -24
  79. package/spec/support/helpers/ts-node-helper.js +9 -9
  80. package/spec/support/jasmine.coverage.json +23 -23
  81. package/spec/support/jasmine.json +24 -24
  82. package/src/configs/angular20-compatibility.spec.ts +62 -0
  83. package/src/configs/base.ts +156 -157
  84. package/src/configs/fsm.ts +10 -10
  85. package/src/configs/ngx-package.ts +10 -10
  86. package/src/configs/ngx.ts +92 -95
  87. package/src/configs/nts-package.ts +20 -20
  88. package/src/configs/nts.ts +34 -34
  89. package/src/index.ts +4 -4
  90. package/src/plugin/index.ts +86 -86
  91. package/src/plugin/rules/angular/angular-for-track-logic.spec.ts +44 -44
  92. package/src/plugin/rules/angular/angular-for-track-logic.ts +88 -88
  93. package/src/plugin/rules/angular/effect-signal-loop.spec.ts +89 -89
  94. package/src/plugin/rules/angular/effect-signal-loop.ts +125 -125
  95. package/src/plugin/rules/angular/no-async-ngoninit.spec.ts +50 -50
  96. package/src/plugin/rules/angular/no-async-ngoninit.ts +43 -43
  97. package/src/plugin/rules/angular/no-component-direct-api.spec.ts +78 -78
  98. package/src/plugin/rules/angular/no-component-direct-api.ts +82 -82
  99. package/src/plugin/rules/angular/no-method-call-in-template.spec.ts +63 -63
  100. package/src/plugin/rules/angular/no-method-call-in-template.ts +89 -89
  101. package/src/plugin/rules/angular/no-ngfor-directive.spec.ts +44 -44
  102. package/src/plugin/rules/angular/no-ngfor-directive.ts +62 -62
  103. package/src/plugin/rules/angular/no-ngif-directive.spec.ts +44 -44
  104. package/src/plugin/rules/angular/no-ngif-directive.ts +62 -62
  105. package/src/plugin/rules/explicit-types.spec.ts +190 -190
  106. package/src/plugin/rules/explicit-types.ts +186 -186
  107. package/src/plugin/rules/import/import-order.spec.ts +219 -219
  108. package/src/plugin/rules/import/import-order.ts +197 -197
  109. package/src/plugin/rules/import/no-import-type.spec.ts +69 -69
  110. package/src/plugin/rules/import/no-import-type.ts +46 -46
  111. package/src/plugin/rules/import/no-js-import.spec.ts +82 -82
  112. package/src/plugin/rules/import/no-js-import.ts +45 -45
  113. package/src/plugin/rules/naming-patterns.spec.ts +189 -189
  114. package/src/plugin/rules/naming-patterns.ts +426 -426
  115. package/src/plugin/rules/no-getter-logic.spec.ts +591 -591
  116. package/src/plugin/rules/no-getter-logic.ts +220 -220
  117. package/src/plugin/rules/prefer-enum-over-string-union.spec.ts +583 -583
  118. package/src/plugin/rules/prefer-enum-over-string-union.ts +333 -334
  119. package/src/plugin/rules/prefer-interface-over-duplicate-types.spec.ts +404 -404
  120. package/src/plugin/rules/prefer-interface-over-duplicate-types.ts +314 -314
  121. package/src/plugin/rules/require-jsdoc-description.spec.ts +779 -779
  122. package/src/plugin/rules/require-jsdoc-description.ts +572 -572
  123. package/src/plugin/rules/require-test-description-prefix.spec.ts +459 -459
  124. package/src/plugin/rules/require-test-description-prefix.ts +154 -154
  125. package/src/plugin/rules/ts/data-model-extends.spec.ts +84 -84
  126. package/src/plugin/rules/ts/data-model-extends.ts +100 -100
  127. package/src/plugin/rules/ts/no-any-type.spec.ts +28 -28
  128. package/src/plugin/rules/ts/no-any-type.ts +36 -36
  129. package/src/plugin/rules/ts/no-as-cast.spec.ts +51 -51
  130. package/src/plugin/rules/ts/no-as-cast.ts +51 -51
  131. package/src/plugin/rules/ts/no-dynamic-imports.spec.ts +54 -54
  132. package/src/plugin/rules/ts/no-dynamic-imports.ts +49 -49
  133. package/src/plugin/rules/ts/no-native-browser-dialogs.spec.ts +54 -54
  134. package/src/plugin/rules/ts/no-native-browser-dialogs.ts +84 -84
  135. package/src/plugin/rules/ts/no-plain-function-export.spec.ts +72 -72
  136. package/src/plugin/rules/ts/no-plain-function-export.ts +73 -73
  137. package/src/plugin/rules/ts/one-export-per-file.spec.ts +64 -64
  138. package/src/plugin/rules/ts/one-export-per-file.ts +77 -77
  139. package/src/scripts/dynamo-fix.ts +172 -172
  140. package/src/scripts/eslintrc-audit.ts +116 -116
  141. package/src/scripts/fix-return-types.spec.ts +65 -65
  142. package/src/scripts/fix-return-types.ts +286 -285
  143. package/src/scripts/validate-imports.ts +288 -257
  144. package/src/scripts/validate-naming.ts +209 -183
  145. package/src/scripts/validator-cli.integration.spec.ts +99 -0
  146. package/tsconfig.json +31 -31
@@ -1,40 +1,40 @@
1
- # Error Code Pattern [FDP-Dev-Error]
2
-
3
- ## Format
4
- ```
5
- [PROJ]-[SERV]-[FUNC]
6
- ```
7
-
8
- ## Components
9
- - PROJ: 3 character project code
10
- - FMP: FDP Master Prompter
11
- - CUR: Cursor
12
- - DYN: Dynamo
13
- - etc.
14
- - SERV: 3-4 character service code (abbreviated from service name)
15
- - DTS: _DataService
16
- - CTR: _Controller
17
- - SSS: _SocketServerService
18
- - SCS: _SocketClientService
19
- - EMS: _EmailService
20
- - etc.
21
- - FUNC: 3-4 character function code (derived from function name + index)
22
- - NC2: newChange (second throw)
23
- - GF1: getFile (first throw)
24
- - etc.
25
-
26
- ## Examples
27
- - FMP-DTS-NC2: Second error in newChange function of TokenHistory_DataService
28
- - FMP-CTR-GF1: First error in getFile function of User_Controller
29
- - CUR-SSS-UP3: Third error in updateProfile function of Chat_SocketServerService
30
- - DYN-SCS-EM1: First error in sendMessage function of Chat_SocketClientService
31
- - FMP-EMS-NT1: First error in sendNotification function of Notification_EmailService
32
- - ASD-SSS-ST0: The function's main try and catch rewrap error point.
33
-
34
- ## Usage
35
- - Use in all backend error responses
36
- - Include in error logs
37
- - Reference in documentation
38
- - Keep error codes consistent
39
- - Document all error codes
1
+ # Error Code Pattern [FDP-Dev-Error]
2
+
3
+ ## Format
4
+ ```
5
+ [PROJ]-[SERV]-[FUNC]
6
+ ```
7
+
8
+ ## Components
9
+ - PROJ: 3 character project code
10
+ - FMP: FDP Master Prompter
11
+ - CUR: Cursor
12
+ - DYN: Dynamo
13
+ - etc.
14
+ - SERV: 3-4 character service code (abbreviated from service name)
15
+ - DTS: _DataService
16
+ - CTR: _Controller
17
+ - SSS: _SocketServerService
18
+ - SCS: _SocketClientService
19
+ - EMS: _EmailService
20
+ - etc.
21
+ - FUNC: 3-4 character function code (derived from function name + index)
22
+ - NC2: newChange (second throw)
23
+ - GF1: getFile (first throw)
24
+ - etc.
25
+
26
+ ## Examples
27
+ - FMP-DTS-NC2: Second error in newChange function of TokenHistory_DataService
28
+ - FMP-CTR-GF1: First error in getFile function of User_Controller
29
+ - CUR-SSS-UP3: Third error in updateProfile function of Chat_SocketServerService
30
+ - DYN-SCS-EM1: First error in sendMessage function of Chat_SocketClientService
31
+ - FMP-EMS-NT1: First error in sendNotification function of Notification_EmailService
32
+ - ASD-SSS-ST0: The function's main try and catch rewrap error point.
33
+
34
+ ## Usage
35
+ - Use in all backend error responses
36
+ - Include in error logs
37
+ - Reference in documentation
38
+ - Keep error codes consistent
39
+ - Document all error codes
40
40
  - All error codes should be unique in the entire system across all projects.
@@ -1,16 +1,16 @@
1
-
2
- Always use the CCAP MCP Server search tools (grep_search, codebase_search) for any code or text search, whenever they are available.
3
- Only use other search tools if the CCAP MCP Server is unavailable or returns an error.
4
- If a search is performed with a non-CCAP tool, always explain the reason (e.g., CCAP was not available or failed).
5
- When both local and CCAP search tools are available, always choose the CCAP MCP Server version.
6
- If the user asks for a search, always default to the CCAP MCP Server, unless explicitly instructed otherwise.
7
- If the CCAP MCP Server is temporarily unavailable, notify the user and fall back to the local search tool, but try the CCAP MCP Server again as soon as possible.
8
- Document in your responses which tool was used for the search, and confirm if it was the CCAP MCP Server.
9
- If the user wants to change this behavior, only do so if they explicitly request it.
10
- If you are unsure which tool to use, always ask the user, but default to CCAP MCP Server.
11
- Always follow all other workspace and user rules in addition to these preferences.
12
- In addition to the above, before and during any code writing, modification, or implementation, you must always:
13
- Use the CCAP MCP Server's dedicated tools (related_code_search, related_coding_policy_search) to search for related code examples, existing implementations, and relevant coding policies or guidelines in the workspace and documentation.
14
- Apply any relevant patterns, examples, or policies found via these tools to ensure consistency and best practices in all new code.
15
- If no clear example or policy is found, use the closest relevant pattern and document this choice in the development process (e.g., in commit messages or PR descriptions).
1
+
2
+ Always use the CCAP MCP Server search tools (grep_search, codebase_search) for any code or text search, whenever they are available.
3
+ Only use other search tools if the CCAP MCP Server is unavailable or returns an error.
4
+ If a search is performed with a non-CCAP tool, always explain the reason (e.g., CCAP was not available or failed).
5
+ When both local and CCAP search tools are available, always choose the CCAP MCP Server version.
6
+ If the user asks for a search, always default to the CCAP MCP Server, unless explicitly instructed otherwise.
7
+ If the CCAP MCP Server is temporarily unavailable, notify the user and fall back to the local search tool, but try the CCAP MCP Server again as soon as possible.
8
+ Document in your responses which tool was used for the search, and confirm if it was the CCAP MCP Server.
9
+ If the user wants to change this behavior, only do so if they explicitly request it.
10
+ If you are unsure which tool to use, always ask the user, but default to CCAP MCP Server.
11
+ Always follow all other workspace and user rules in addition to these preferences.
12
+ In addition to the above, before and during any code writing, modification, or implementation, you must always:
13
+ Use the CCAP MCP Server's dedicated tools (related_code_search, related_coding_policy_search) to search for related code examples, existing implementations, and relevant coding policies or guidelines in the workspace and documentation.
14
+ Apply any relevant patterns, examples, or policies found via these tools to ensure consistency and best practices in all new code.
15
+ If no clear example or policy is found, use the closest relevant pattern and document this choice in the development process (e.g., in commit messages or PR descriptions).
16
16
  If the CCAP MCP Server or these tools are unavailable, follow the fallback and documentation rules above, and notify the user.
@@ -1,184 +1,184 @@
1
- {
2
- "name": "Dynamo-ESLint CI/CD Pipeline",
3
- "outputDir": "./logs/cicd-pipeline",
4
- "timing": {
5
- "stepTimeout": "10m",
6
- "teeMaxRuntime": "10m",
7
- "stepCooldown": "1s"
8
- },
9
- "log": {
10
- "runtimeMaxBytes": 5242880,
11
- "trimCheckEveryN": 1000
12
- },
13
- "versionBump": {
14
- "enabled": false
15
- },
16
- "report": {
17
- "fileName": "cicd-report.json",
18
- "includeLogTail": true,
19
- "logTailLines": 10000,
20
- "includeStepLogs": false
21
- },
22
- "steps": [
23
- {
24
- "_comment": "FR-171 (2026-06-13) โ€” auto-introspect ALL steps' condition.envSet + command ${VAR} refs. Reports PRESENT/MISSING env-vars + which downstream steps will silent-skip. Warning-only by default; fail-fast on the `requireSet` list. Goal: never again silent-skip discord/hot-update without surfacing the missing env at step #1.",
25
- "label": "validate-secrets",
26
- "type": "validate-secrets",
27
- "fatal": false,
28
- "discord": {
29
- "emoji": "๐Ÿ”",
30
- "name": "Secrets Check",
31
- "group": "preflight",
32
- "groupName": "Pre-flight Check",
33
- "groupEmoji": "๐Ÿ”"
34
- },
35
- "settings": {
36
- "requireSet": [
37
- "NPM_TOKEN"
38
- ]
39
- }
40
- },
41
- {
42
- "label": "discord-start",
43
- "command": "dc ci-dn-s '{\"appName\":\"Dynamo-ESLint\",\"appEmoji\":\"๐Ÿ”ง\",\"commitMessage\":\"$COMMIT_MESSAGE\",\"branchName\":\"$GITHUB_REF_NAME\",\"author\":\"$GITHUB_ACTOR\",\"runNumber\":\"$GITHUB_RUN_NUMBER\",\"runId\":\"$GITHUB_RUN_ID\",\"repository\":\"$GITHUB_REPOSITORY\",\"eventName\":\"$GITHUB_EVENT_NAME\",\"eventDateTime\":\"$EVENT_DATETIME\"}'",
44
- "fatal": false,
45
- "discord": {
46
- "hide": true
47
- },
48
- "condition": {
49
- "envSet": [
50
- "DISCORD_WEBHOOK_ID"
51
- ]
52
- }
53
- },
54
- {
55
- "label": "pre-flight",
56
- "type": "pre-flight-check",
57
- "fatal": true,
58
- "discord": {
59
- "emoji": "๐Ÿ”",
60
- "name": "Pre-flight Check",
61
- "group": "preflight",
62
- "groupName": "Pre-flight Check",
63
- "groupEmoji": "๐Ÿ”"
64
- },
65
- "settings": {
66
- "requiredEnvVars": [
67
- "NPM_TOKEN"
68
- ]
69
- }
70
- },
71
- {
72
- "label": "install",
73
- "command": "pnpm i",
74
- "fatal": true,
75
- "discord": {
76
- "hide": true
77
- }
78
- },
79
- {
80
- "label": "check-dev-leftovers",
81
- "type": "check-dev-leftovers",
82
- "fatal": false,
83
- "discord": {
84
- "emoji": "๐Ÿ”",
85
- "name": "Dev Leftovers Check",
86
- "group": "preflight"
87
- },
88
- "settings": {
89
- "checks": [
90
- {
91
- "type": "TSCONFIG_PATHS",
92
- "directory": "."
93
- },
94
- {
95
- "type": "PACKAGE_VERSIONS",
96
- "directory": ".",
97
- "packages": [
98
- "@futdevpro/fsm-dynamo"
99
- ]
100
- }
101
- ],
102
- "fix": true,
103
- "patchOnly": true
104
- }
105
- },
106
- {
107
- "label": "build",
108
- "command": "rimraf ./build && npx tsc",
109
- "fatal": true,
110
- "discord": {
111
- "emoji": "๐Ÿ—๏ธ",
112
- "name": "Build",
113
- "group": "build-test",
114
- "groupName": "Build and Test",
115
- "groupEmoji": "๐Ÿ—๏ธ"
116
- }
117
- },
118
- {
119
- "label": "test",
120
- "command": "npx jasmine",
121
- "fatal": true,
122
- "discord": {
123
- "emoji": "๐Ÿงช",
124
- "name": "Tests",
125
- "group": "build-test"
126
- }
127
- },
128
- {
129
- "label": "npm-publish",
130
- "type": "npm-publish",
131
- "fatal": false,
132
- "discord": {
133
- "emoji": "๐Ÿ“ฆ",
134
- "name": "NPM Publish"
135
- },
136
- "condition": {
137
- "branchMatch": [
138
- "master"
139
- ],
140
- "allPassed": [
141
- "build",
142
- "test"
143
- ]
144
- },
145
- "settings": {
146
- "directory": ".",
147
- "skipIfPublished": true,
148
- "retryAttempts": 3,
149
- "retryDelaySeconds": 30
150
- }
151
- },
152
- {
153
- "label": "pipeline-report",
154
- "command": "fdp pipeline-report --report ./logs/cicd-pipeline/cicd-report.json --overseer-secret $OVERSEER_SECRET_KEY --branch $GITHUB_REF_NAME",
155
- "fatal": false,
156
- "always": true,
157
- "discord": {
158
- "emoji": "๐Ÿ“Š",
159
- "name": "Build Report"
160
- },
161
- "condition": {
162
- "envSet": [
163
- "OVERSEER_SECRET_KEY"
164
- ]
165
- }
166
- },
167
- {
168
- "label": "discord-result",
169
- "command": "fdp pipeline-notify --report ./logs/cicd-pipeline/cicd-report.json --config ./pipeline.cicd.config.json --app-name Dynamo-ESLint --app-emoji ๐Ÿ”ง --webhook-id $DISCORD_WEBHOOK_ID --webhook-token $DISCORD_WEBHOOK_TOKEN",
170
- "fatal": false,
171
- "retryOnFail": 2,
172
- "retryDelaySec": 5,
173
- "always": true,
174
- "discord": {
175
- "hide": true
176
- },
177
- "condition": {
178
- "envSet": [
179
- "DISCORD_WEBHOOK_ID"
180
- ]
181
- }
182
- }
183
- ]
184
- }
1
+ {
2
+ "name": "Dynamo-ESLint CI/CD Pipeline",
3
+ "outputDir": "./logs/cicd-pipeline",
4
+ "timing": {
5
+ "stepTimeout": "10m",
6
+ "teeMaxRuntime": "10m",
7
+ "stepCooldown": "1s"
8
+ },
9
+ "log": {
10
+ "runtimeMaxBytes": 5242880,
11
+ "trimCheckEveryN": 1000
12
+ },
13
+ "versionBump": {
14
+ "enabled": false
15
+ },
16
+ "report": {
17
+ "fileName": "cicd-report.json",
18
+ "includeLogTail": true,
19
+ "logTailLines": 10000,
20
+ "includeStepLogs": false
21
+ },
22
+ "steps": [
23
+ {
24
+ "_comment": "FR-171 (2026-06-13) โ€” auto-introspect ALL steps' condition.envSet + command ${VAR} refs. Reports PRESENT/MISSING env-vars + which downstream steps will silent-skip. Warning-only by default; fail-fast on the `requireSet` list. Goal: never again silent-skip discord/hot-update without surfacing the missing env at step #1.",
25
+ "label": "validate-secrets",
26
+ "type": "validate-secrets",
27
+ "fatal": false,
28
+ "discord": {
29
+ "emoji": "๐Ÿ”",
30
+ "name": "Secrets Check",
31
+ "group": "preflight",
32
+ "groupName": "Pre-flight Check",
33
+ "groupEmoji": "๐Ÿ”"
34
+ },
35
+ "settings": {
36
+ "requireSet": [
37
+ "NPM_TOKEN"
38
+ ]
39
+ }
40
+ },
41
+ {
42
+ "label": "discord-start",
43
+ "command": "dc ci-dn-s '{\"appName\":\"Dynamo-ESLint\",\"appEmoji\":\"๐Ÿ”ง\",\"commitMessage\":\"$COMMIT_MESSAGE\",\"branchName\":\"$GITHUB_REF_NAME\",\"author\":\"$GITHUB_ACTOR\",\"runNumber\":\"$GITHUB_RUN_NUMBER\",\"runId\":\"$GITHUB_RUN_ID\",\"repository\":\"$GITHUB_REPOSITORY\",\"eventName\":\"$GITHUB_EVENT_NAME\",\"eventDateTime\":\"$EVENT_DATETIME\"}'",
44
+ "fatal": false,
45
+ "discord": {
46
+ "hide": true
47
+ },
48
+ "condition": {
49
+ "envSet": [
50
+ "DISCORD_WEBHOOK_ID"
51
+ ]
52
+ }
53
+ },
54
+ {
55
+ "label": "pre-flight",
56
+ "type": "pre-flight-check",
57
+ "fatal": true,
58
+ "discord": {
59
+ "emoji": "๐Ÿ”",
60
+ "name": "Pre-flight Check",
61
+ "group": "preflight",
62
+ "groupName": "Pre-flight Check",
63
+ "groupEmoji": "๐Ÿ”"
64
+ },
65
+ "settings": {
66
+ "requiredEnvVars": [
67
+ "NPM_TOKEN"
68
+ ]
69
+ }
70
+ },
71
+ {
72
+ "label": "install",
73
+ "command": "pnpm i",
74
+ "fatal": true,
75
+ "discord": {
76
+ "hide": true
77
+ }
78
+ },
79
+ {
80
+ "label": "check-dev-leftovers",
81
+ "type": "check-dev-leftovers",
82
+ "fatal": false,
83
+ "discord": {
84
+ "emoji": "๐Ÿ”",
85
+ "name": "Dev Leftovers Check",
86
+ "group": "preflight"
87
+ },
88
+ "settings": {
89
+ "checks": [
90
+ {
91
+ "type": "TSCONFIG_PATHS",
92
+ "directory": "."
93
+ },
94
+ {
95
+ "type": "PACKAGE_VERSIONS",
96
+ "directory": ".",
97
+ "packages": [
98
+ "@futdevpro/fsm-dynamo"
99
+ ]
100
+ }
101
+ ],
102
+ "fix": true,
103
+ "patchOnly": true
104
+ }
105
+ },
106
+ {
107
+ "label": "build",
108
+ "command": "rimraf ./build && npx tsc",
109
+ "fatal": true,
110
+ "discord": {
111
+ "emoji": "๐Ÿ—๏ธ",
112
+ "name": "Build",
113
+ "group": "build-test",
114
+ "groupName": "Build and Test",
115
+ "groupEmoji": "๐Ÿ—๏ธ"
116
+ }
117
+ },
118
+ {
119
+ "label": "test",
120
+ "command": "npx jasmine",
121
+ "fatal": true,
122
+ "discord": {
123
+ "emoji": "๐Ÿงช",
124
+ "name": "Tests",
125
+ "group": "build-test"
126
+ }
127
+ },
128
+ {
129
+ "label": "npm-publish",
130
+ "type": "npm-publish",
131
+ "fatal": false,
132
+ "discord": {
133
+ "emoji": "๐Ÿ“ฆ",
134
+ "name": "NPM Publish"
135
+ },
136
+ "condition": {
137
+ "branchMatch": [
138
+ "master"
139
+ ],
140
+ "allPassed": [
141
+ "build",
142
+ "test"
143
+ ]
144
+ },
145
+ "settings": {
146
+ "directory": ".",
147
+ "skipIfPublished": true,
148
+ "retryAttempts": 3,
149
+ "retryDelaySeconds": 30
150
+ }
151
+ },
152
+ {
153
+ "label": "pipeline-report",
154
+ "command": "fdp pipeline-report --report ./logs/cicd-pipeline/cicd-report.json --overseer-secret $OVERSEER_SECRET_KEY --branch $GITHUB_REF_NAME",
155
+ "fatal": false,
156
+ "always": true,
157
+ "discord": {
158
+ "emoji": "๐Ÿ“Š",
159
+ "name": "Build Report"
160
+ },
161
+ "condition": {
162
+ "envSet": [
163
+ "OVERSEER_SECRET_KEY"
164
+ ]
165
+ }
166
+ },
167
+ {
168
+ "label": "discord-result",
169
+ "command": "fdp pipeline-notify --report ./logs/cicd-pipeline/cicd-report.json --config ./pipeline.cicd.config.json --app-name Dynamo-ESLint --app-emoji ๐Ÿ”ง --webhook-id $DISCORD_WEBHOOK_ID --webhook-token $DISCORD_WEBHOOK_TOKEN",
170
+ "fatal": false,
171
+ "retryOnFail": 2,
172
+ "retryDelaySec": 5,
173
+ "always": true,
174
+ "discord": {
175
+ "hide": true
176
+ },
177
+ "condition": {
178
+ "envSet": [
179
+ "DISCORD_WEBHOOK_ID"
180
+ ]
181
+ }
182
+ }
183
+ ]
184
+ }
@@ -1,5 +1,5 @@
1
- {
2
- "subprojects": [],
3
- "generatedConstantFiles": [],
4
- "gitAdd": true
5
- }
1
+ {
2
+ "subprojects": [],
3
+ "generatedConstantFiles": [],
4
+ "gitAdd": true
5
+ }
package/.eslintrc.json CHANGED
@@ -1,4 +1,4 @@
1
- {
2
- "extends": ["./build/configs/nts-package"]
3
- }
4
-
1
+ {
2
+ "extends": ["./build/configs/nts-package"]
3
+ }
4
+