go-duck-cli 1.2.25 → 1.3.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 (214) hide show
  1. package/README.md +6 -0
  2. package/generators/config.js +3 -1
  3. package/generators/security.js +2 -2
  4. package/go-duck-planner/css/bootstrap.min.css +6 -0
  5. package/go-duck-planner/css/main.css +1 -0
  6. package/go-duck-planner/favicon.ico +0 -0
  7. package/go-duck-planner/fonts/icomoonf33b-2.html +0 -0
  8. package/go-duck-planner/fonts/icomoonf33b-3.html +0 -0
  9. package/go-duck-planner/fonts/icomoonf33b-4.html +0 -0
  10. package/go-duck-planner/fonts/icomoonf33b.html +0 -0
  11. package/go-duck-planner/fonts/open-sans/OpenSans-Bold.html +0 -0
  12. package/go-duck-planner/fonts/open-sans/OpenSans-ExtraBold.html +0 -0
  13. package/go-duck-planner/fonts/open-sans/OpenSans-Light.html +0 -0
  14. package/go-duck-planner/fonts/open-sans/OpenSans-Regular.html +0 -0
  15. package/go-duck-planner/fonts/open-sans/OpenSans-SemiBold.html +0 -0
  16. package/go-duck-planner/fonts/rubik-mono/RubikMonoOne-Regular.html +0 -0
  17. package/go-duck-planner/fonts/style.css +2735 -0
  18. package/go-duck-planner/img/cancel.html +0 -0
  19. package/go-duck-planner/img/consulting.html +0 -0
  20. package/go-duck-planner/img/consulting2.html +0 -0
  21. package/go-duck-planner/img/dashed-circles-dark.html +0 -0
  22. package/go-duck-planner/img/docs/doc.html +0 -0
  23. package/go-duck-planner/img/docs/pdf.html +0 -0
  24. package/go-duck-planner/img/docs/ppt.html +0 -0
  25. package/go-duck-planner/img/docs/xls.html +0 -0
  26. package/go-duck-planner/img/docs/zip.html +0 -0
  27. package/go-duck-planner/img/empty-chat-display.html +0 -0
  28. package/go-duck-planner/img/error-screen/stars.html +0 -0
  29. package/go-duck-planner/img/fav.png +0 -0
  30. package/go-duck-planner/img/flags/1x1/au.html +0 -0
  31. package/go-duck-planner/img/flags/1x1/br.html +0 -0
  32. package/go-duck-planner/img/flags/1x1/bv.html +131 -0
  33. package/go-duck-planner/img/flags/1x1/ca.html +0 -0
  34. package/go-duck-planner/img/flags/1x1/cw.html +131 -0
  35. package/go-duck-planner/img/flags/1x1/eu.html +131 -0
  36. package/go-duck-planner/img/flags/1x1/hn.html +131 -0
  37. package/go-duck-planner/img/flags/1x1/in.html +0 -0
  38. package/go-duck-planner/img/flags/1x1/ni.html +131 -0
  39. package/go-duck-planner/img/flags/1x1/se.html +131 -0
  40. package/go-duck-planner/img/flags/1x1/za.html +131 -0
  41. package/go-duck-planner/img/folder.html +0 -0
  42. package/go-duck-planner/img/followers.html +0 -0
  43. package/go-duck-planner/img/food/biscuit.html +0 -0
  44. package/go-duck-planner/img/food/cupcake.html +0 -0
  45. package/go-duck-planner/img/food/donut.html +0 -0
  46. package/go-duck-planner/img/food/ice-cream.html +0 -0
  47. package/go-duck-planner/img/food/pizza.html +0 -0
  48. package/go-duck-planner/img/food/tea-cup.html +0 -0
  49. package/go-duck-planner/img/hover-on-tabs.html +0 -0
  50. package/go-duck-planner/img/icon-search.html +0 -0
  51. package/go-duck-planner/img/lines-bg.html +0 -0
  52. package/go-duck-planner/img/lines-bg2.html +0 -0
  53. package/go-duck-planner/img/login-bg.html +0 -0
  54. package/go-duck-planner/img/logo-compact.html +0 -0
  55. package/go-duck-planner/img/logo-large.html +0 -0
  56. package/go-duck-planner/img/logo.png +0 -0
  57. package/go-duck-planner/img/logo.svg +19 -0
  58. package/go-duck-planner/img/pattern.html +0 -0
  59. package/go-duck-planner/img/products/bag.html +0 -0
  60. package/go-duck-planner/img/products/camera.html +0 -0
  61. package/go-duck-planner/img/products/clock.html +0 -0
  62. package/go-duck-planner/img/products/drone.html +0 -0
  63. package/go-duck-planner/img/products/pencils.html +0 -0
  64. package/go-duck-planner/img/products/ring.html +0 -0
  65. package/go-duck-planner/img/products/shirt.html +0 -0
  66. package/go-duck-planner/img/products/shoes.html +0 -0
  67. package/go-duck-planner/img/products/toy.html +0 -0
  68. package/go-duck-planner/img/realestate/img1.html +0 -0
  69. package/go-duck-planner/img/realestate/img10.html +0 -0
  70. package/go-duck-planner/img/realestate/img11.html +0 -0
  71. package/go-duck-planner/img/realestate/img12.html +0 -0
  72. package/go-duck-planner/img/realestate/img2.html +0 -0
  73. package/go-duck-planner/img/realestate/img3.html +0 -0
  74. package/go-duck-planner/img/realestate/img4.html +0 -0
  75. package/go-duck-planner/img/realestate/img5.html +0 -0
  76. package/go-duck-planner/img/realestate/img6.html +0 -0
  77. package/go-duck-planner/img/realestate/img7.html +0 -0
  78. package/go-duck-planner/img/realestate/img8.html +0 -0
  79. package/go-duck-planner/img/realestate/img9.html +0 -0
  80. package/go-duck-planner/img/shade.html +0 -0
  81. package/go-duck-planner/img/stock/img1.html +0 -0
  82. package/go-duck-planner/img/stock/img10.html +0 -0
  83. package/go-duck-planner/img/stock/img11.html +0 -0
  84. package/go-duck-planner/img/stock/img12.html +0 -0
  85. package/go-duck-planner/img/stock/img13.html +0 -0
  86. package/go-duck-planner/img/stock/img14.html +0 -0
  87. package/go-duck-planner/img/stock/img2.html +0 -0
  88. package/go-duck-planner/img/stock/img3.html +0 -0
  89. package/go-duck-planner/img/stock/img4.html +0 -0
  90. package/go-duck-planner/img/stock/img5.html +0 -0
  91. package/go-duck-planner/img/stock/img6.html +0 -0
  92. package/go-duck-planner/img/stock/img7.html +0 -0
  93. package/go-duck-planner/img/stock/img8.html +0 -0
  94. package/go-duck-planner/img/stock/img9.html +0 -0
  95. package/go-duck-planner/img/svg/box.html +0 -0
  96. package/go-duck-planner/img/svg/commisions.html +0 -0
  97. package/go-duck-planner/img/svg/customer.html +0 -0
  98. package/go-duck-planner/img/svg/income.html +0 -0
  99. package/go-duck-planner/img/trophy.html +0 -0
  100. package/go-duck-planner/img/user-2.html +0 -0
  101. package/go-duck-planner/img/user.html +0 -0
  102. package/go-duck-planner/img/user1.html +0 -0
  103. package/go-duck-planner/img/user10.html +0 -0
  104. package/go-duck-planner/img/user12.html +0 -0
  105. package/go-duck-planner/img/user13.html +0 -0
  106. package/go-duck-planner/img/user14.html +0 -0
  107. package/go-duck-planner/img/user15.html +0 -0
  108. package/go-duck-planner/img/user16.html +0 -0
  109. package/go-duck-planner/img/user17.html +0 -0
  110. package/go-duck-planner/img/user18.html +0 -0
  111. package/go-duck-planner/img/user19.html +0 -0
  112. package/go-duck-planner/img/user2.html +0 -0
  113. package/go-duck-planner/img/user20.html +0 -0
  114. package/go-duck-planner/img/user21.html +0 -0
  115. package/go-duck-planner/img/user22.html +0 -0
  116. package/go-duck-planner/img/user23.html +0 -0
  117. package/go-duck-planner/img/user24.html +0 -0
  118. package/go-duck-planner/img/user3.html +0 -0
  119. package/go-duck-planner/img/user4.html +0 -0
  120. package/go-duck-planner/img/user5.html +0 -0
  121. package/go-duck-planner/img/user6.html +0 -0
  122. package/go-duck-planner/img/user7.html +0 -0
  123. package/go-duck-planner/img/user8.html +0 -0
  124. package/go-duck-planner/img/user9.html +0 -0
  125. package/go-duck-planner/index.html +30 -0
  126. package/go-duck-planner/js/bootstrap.bundle.min.html +0 -0
  127. package/go-duck-planner/js/jquery.min.html +0 -0
  128. package/go-duck-planner/js/main.html +0 -0
  129. package/go-duck-planner/js/modernizr.html +0 -0
  130. package/go-duck-planner/js/moment.html +0 -0
  131. package/go-duck-planner/main-HHOZYGRI.js +47 -0
  132. package/go-duck-planner/styles-3LK4NBNX.css +1 -0
  133. package/go-duck-planner/vendor/apex/apexcharts.min.html +0 -0
  134. package/go-duck-planner/vendor/apex/custom/analytics/byChannelGraph.html +0 -0
  135. package/go-duck-planner/vendor/apex/custom/analytics/byCountryGraph.html +0 -0
  136. package/go-duck-planner/vendor/apex/custom/analytics/byDeviceGraph.html +0 -0
  137. package/go-duck-planner/vendor/apex/custom/analytics/ordersGraph.html +0 -0
  138. package/go-duck-planner/vendor/apex/custom/analytics/targets.html +0 -0
  139. package/go-duck-planner/vendor/apex/custom/crm/sales.html +0 -0
  140. package/go-duck-planner/vendor/apex/custom/crm/sparkline-graphs.html +0 -0
  141. package/go-duck-planner/vendor/apex/custom/home/customersGraph.html +0 -0
  142. package/go-duck-planner/vendor/apex/custom/home/earningsGraph.html +0 -0
  143. package/go-duck-planner/vendor/apex/custom/home/ordersGraph.html +0 -0
  144. package/go-duck-planner/vendor/apex/custom/home/salesGraph.html +0 -0
  145. package/go-duck-planner/vendor/apex/custom/home/sparkline.html +0 -0
  146. package/go-duck-planner/vendor/apex/custom/home/visitorsGraph.html +0 -0
  147. package/go-duck-planner/vendor/apex/custom/profile/revenue.html +0 -0
  148. package/go-duck-planner/vendor/apex/custom/reports/orders.html +0 -0
  149. package/go-duck-planner/vendor/apex/custom/reports/revenue.html +0 -0
  150. package/go-duck-planner/vendor/apex/custom/reports/sales.html +0 -0
  151. package/go-duck-planner/vendor/apex/custom/reports/sales2.html +0 -0
  152. package/go-duck-planner/vendor/apex/custom/reports/sparkline.html +0 -0
  153. package/go-duck-planner/vendor/apex/custom/saas/revenue.html +0 -0
  154. package/go-duck-planner/vendor/apex/custom/saas/sales.html +0 -0
  155. package/go-duck-planner/vendor/apex/custom/sales/revenue.html +0 -0
  156. package/go-duck-planner/vendor/apex/custom/sales/tickets.html +0 -0
  157. package/go-duck-planner/vendor/bs-select/bs-select-custom.html +0 -0
  158. package/go-duck-planner/vendor/bs-select/bs-select.html +0 -0
  159. package/go-duck-planner/vendor/bs-select/bs-select.min.html +0 -0
  160. package/go-duck-planner/vendor/calendar/css/custom.html +0 -0
  161. package/go-duck-planner/vendor/calendar/css/main.min.html +0 -0
  162. package/go-duck-planner/vendor/calendar/custom/custom-schedule-calendar.html +0 -0
  163. package/go-duck-planner/vendor/calendar/custom/daygrid-calendar.html +0 -0
  164. package/go-duck-planner/vendor/calendar/custom/draggable-calendar.html +0 -0
  165. package/go-duck-planner/vendor/calendar/custom/google-view-calendar.html +0 -0
  166. package/go-duck-planner/vendor/calendar/custom/list-view-calendar.html +0 -0
  167. package/go-duck-planner/vendor/calendar/custom/selectable-calendar.html +0 -0
  168. package/go-duck-planner/vendor/calendar/js/main.min.html +0 -0
  169. package/go-duck-planner/vendor/circliful/circliful.custom.html +0 -0
  170. package/go-duck-planner/vendor/circliful/circliful.min.html +0 -0
  171. package/go-duck-planner/vendor/datatables/buttons.bs.html +0 -0
  172. package/go-duck-planner/vendor/datatables/buttons.min.html +0 -0
  173. package/go-duck-planner/vendor/datatables/buttons.print.min.html +0 -0
  174. package/go-duck-planner/vendor/datatables/custom/custom-datatables.html +0 -0
  175. package/go-duck-planner/vendor/datatables/dataTables.bootstrap.min.html +0 -0
  176. package/go-duck-planner/vendor/datatables/dataTables.bs4-custom.html +0 -0
  177. package/go-duck-planner/vendor/datatables/dataTables.bs4.html +0 -0
  178. package/go-duck-planner/vendor/datatables/dataTables.min.html +0 -0
  179. package/go-duck-planner/vendor/datatables/html5.min.html +0 -0
  180. package/go-duck-planner/vendor/datatables/jszip.min.html +0 -0
  181. package/go-duck-planner/vendor/datatables/pdfmake.min.html +0 -0
  182. package/go-duck-planner/vendor/datatables/vfs_fonts.html +0 -0
  183. package/go-duck-planner/vendor/daterange/custom-daterange.html +0 -0
  184. package/go-duck-planner/vendor/daterange/daterange-2.html +0 -0
  185. package/go-duck-planner/vendor/daterange/daterange.html +0 -0
  186. package/go-duck-planner/vendor/dropzone/dropzone.min-2.html +0 -0
  187. package/go-duck-planner/vendor/dropzone/dropzone.min.html +0 -0
  188. package/go-duck-planner/vendor/gallery/baguetteBox.html +0 -0
  189. package/go-duck-planner/vendor/gallery/custom-gallery.html +0 -0
  190. package/go-duck-planner/vendor/gallery/gallery.html +0 -0
  191. package/go-duck-planner/vendor/gallery/plugins.html +0 -0
  192. package/go-duck-planner/vendor/input-tags/tagsinput-custom.html +0 -0
  193. package/go-duck-planner/vendor/input-tags/tagsinput.html +0 -0
  194. package/go-duck-planner/vendor/input-tags/tagsinput.min.html +0 -0
  195. package/go-duck-planner/vendor/input-tags/typeahead.html +0 -0
  196. package/go-duck-planner/vendor/megamenu/css/megamenu.css +591 -0
  197. package/go-duck-planner/vendor/megamenu/js/custom.html +0 -0
  198. package/go-duck-planner/vendor/megamenu/js/megamenu.html +0 -0
  199. package/go-duck-planner/vendor/rating/raty-custom.html +0 -0
  200. package/go-duck-planner/vendor/rating/raty.html +0 -0
  201. package/go-duck-planner/vendor/search-filter/custom-search-filter.css +122 -0
  202. package/go-duck-planner/vendor/search-filter/custom-search-filter.html +0 -0
  203. package/go-duck-planner/vendor/search-filter/search-filter.css +497 -0
  204. package/go-duck-planner/vendor/search-filter/search-filter.html +0 -0
  205. package/go-duck-planner/vendor/slimscroll/custom-scrollbar.html +0 -0
  206. package/go-duck-planner/vendor/slimscroll/slimscroll.min.html +0 -0
  207. package/go-duck-planner/vendor/summernote/summernote-bs4-2.html +0 -0
  208. package/go-duck-planner/vendor/summernote/summernote-bs4.html +0 -0
  209. package/go-duck-planner/vendor/wizard/jquery.steps.custom.html +0 -0
  210. package/go-duck-planner/vendor/wizard/jquery.steps.html +0 -0
  211. package/go-duck-planner/vendor/wizard/jquery.steps.min.html +0 -0
  212. package/index.js +37 -3
  213. package/package.json +1 -1
  214. package/templates/go/router.go.hbs +8 -3
@@ -0,0 +1,497 @@
1
+
2
+ /*
3
+ * # Semantic UI - 1.12.3
4
+ * https://github.com/Semantic-Org/Semantic-UI
5
+ * http://www.semantic-ui.com/
6
+ *
7
+ * Copyright 2014 Contributors
8
+ * Released under the MIT license
9
+ * http://opensource.org/licenses/MIT
10
+ *
11
+ */
12
+
13
+ /*!
14
+ * # Semantic UI - Search
15
+ * http://github.com/semantic-org/semantic-ui/
16
+ *
17
+ *
18
+ * Copyright 2014 Contributors
19
+ * Released under the MIT license
20
+ * http://opensource.org/licenses/MIT
21
+ *
22
+ */
23
+
24
+ /*******************************
25
+ Search
26
+ *******************************/
27
+
28
+ .ui.search {
29
+ position: relative;
30
+ }
31
+
32
+ .ui.search > .prompt {
33
+ margin: 0em;
34
+ outline: none;
35
+ -webkit-appearance: none;
36
+ -webkit-tap-highlight-color: rgba(255, 255, 255, 0);
37
+ text-shadow: none;
38
+ font-style: normal;
39
+ font-weight: normal;
40
+ line-height: 1.2;
41
+ padding: 0.68571em 1em;
42
+ font-size: .825rem;
43
+ background: #ffffff;
44
+ border: 1px solid rgba(39, 41, 43, 0.15);
45
+ color: rgba(0, 0, 0, 0.8);
46
+ box-shadow: 0em 0em 0em 0em transparent inset;
47
+ -webkit-transition: background-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
48
+ transition: background-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
49
+ }
50
+
51
+ .ui.search .prompt {
52
+ border-radius: 500rem;
53
+ }
54
+
55
+ /*--------------
56
+ Icon
57
+ ---------------*/
58
+
59
+ .ui.search .prompt ~ .search.icon {
60
+ cursor: pointer;
61
+ }
62
+
63
+ /*--------------
64
+ Results
65
+ ---------------*/
66
+
67
+ .ui.search > .results {
68
+ display: none;
69
+ position: absolute;
70
+ top: 100%;
71
+ left: 0%;
72
+ background: #ffffff;
73
+ margin-top: 0.5em;
74
+ width: 16em;
75
+ border-radius: 0.25em;
76
+ box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.2);
77
+ z-index: 998;
78
+ }
79
+
80
+ /*--------------
81
+ Result
82
+ ---------------*/
83
+
84
+ .ui.search > .results .result {
85
+ cursor: pointer;
86
+ display: block;
87
+ overflow: hidden;
88
+ font-size: 1em;
89
+ padding: 0.5em 1em;
90
+ color: rgba(0, 0, 0, 0.8);
91
+ line-height: 1.33;
92
+ border-bottom: 1px solid rgba(39, 41, 43, 0.15);
93
+ }
94
+
95
+ .ui.search > .results .result:last-child {
96
+ border-bottom: none;
97
+ }
98
+
99
+ /* Image */
100
+
101
+ .ui.search > .results .result .image {
102
+ float: right;
103
+ overflow: hidden;
104
+ background: none;
105
+ width: 5em;
106
+ height: 3em;
107
+ border-radius: 0.25em;
108
+ }
109
+
110
+ .ui.search > .results .result .image img {
111
+ display: block;
112
+ width: auto;
113
+ height: 100%;
114
+ }
115
+
116
+ /*--------------
117
+ Info
118
+ ---------------*/
119
+
120
+ .ui.search > .results .result .image + .content {
121
+ margin: 0em 6em 0em 0em;
122
+ }
123
+
124
+ .ui.search > .results .result .title {
125
+ font-size: .75rem;
126
+ }
127
+
128
+ .ui.search > .results .result .description {
129
+ margin-top: 0em;
130
+ font-size: .755rem;
131
+ color: rgba(0, 0, 0, 0.4);
132
+ }
133
+
134
+ .ui.search > .results .result .price {
135
+ float: right;
136
+ color: #5bbd72;
137
+ }
138
+
139
+ /*--------------
140
+ Message
141
+ ---------------*/
142
+
143
+ .ui.search > .results > .message {
144
+ padding: 1em 1em;
145
+ }
146
+
147
+ .ui.search > .results > .message .header {
148
+ font-size: .825rem;
149
+ color: #111111;
150
+ }
151
+
152
+ .ui.search > .results > .message .description {
153
+ margin-top: 15px;
154
+ font-size: 12px;
155
+ color: #5e6973;
156
+ }
157
+
158
+ /* View All Results */
159
+
160
+ .ui.search > .results > .action {
161
+ display: block;
162
+ border-top: none;
163
+ background: #f0f0f0;
164
+ padding: 0.5em 1em;
165
+ color: rgba(0, 0, 0, 0.8);
166
+ font-weight: bold;
167
+ text-align: center;
168
+ }
169
+
170
+ /*******************************
171
+ States
172
+ *******************************/
173
+
174
+ /*--------------------
175
+ Loading
176
+ ---------------------*/
177
+
178
+ .ui.loading.search .input > .icon:before {
179
+ position: absolute;
180
+ content: '';
181
+ top: 50%;
182
+ left: 50%;
183
+ margin: -0.64285em 0em 0em -0.64285em;
184
+ width: 1.2857em;
185
+ height: 1.2857em;
186
+ border-radius: 500rem;
187
+ border: 0.2em solid rgba(0, 0, 0, 0.1);
188
+ }
189
+
190
+ .ui.loading.search .input > .icon:after {
191
+ position: absolute;
192
+ content: '';
193
+ top: 50%;
194
+ left: 50%;
195
+ margin: -0.64285em 0em 0em -0.64285em;
196
+ width: 1.2857em;
197
+ height: 1.2857em;
198
+ -webkit-animation: button-spin 0.6s linear;
199
+ animation: button-spin 0.6s linear;
200
+ -webkit-animation-iteration-count: infinite;
201
+ animation-iteration-count: infinite;
202
+ border-radius: 500rem;
203
+ border-color: #aaaaaa transparent transparent;
204
+ border-style: solid;
205
+ border-width: 0.2em;
206
+ box-shadow: 0px 0px 0px 1px transparent;
207
+ }
208
+
209
+ /*--------------
210
+ Hover
211
+ ---------------*/
212
+
213
+ .ui.search > .results .result:hover,
214
+ .ui.category.search > .results .category .result:hover {
215
+ background: #e5f0ff;
216
+ }
217
+
218
+ .ui.search .action:hover {
219
+ background: #e0e0e0;
220
+ }
221
+
222
+ /*--------------
223
+ Active
224
+ ---------------*/
225
+
226
+ .ui.search > .results .category.active {
227
+ background: #f0f0f0;
228
+ }
229
+
230
+ .ui.search > .results .category.active > .name {
231
+ color: rgba(0, 0, 0, 0.8);
232
+ }
233
+
234
+ .ui.search > .results .result.active,
235
+ .ui.category.search > .results .category .result.active {
236
+ position: relative;
237
+ border-left-color: transparent;
238
+ background: #f0f0f0;
239
+ box-shadow: 3px 0px 3px 0px rgba(39, 41, 43, 0.15);
240
+ }
241
+
242
+ .ui.search > .results .result.active .title {
243
+ color: rgba(0, 0, 0, 0.85);
244
+ }
245
+
246
+ .ui.search > .results .result.active .description {
247
+ color: rgba(0, 0, 0, 0.85);
248
+ }
249
+
250
+ /*******************************
251
+ Types
252
+ *******************************/
253
+
254
+ /*--------------
255
+ Categories
256
+ ---------------*/
257
+
258
+ .ui.category.search .results {
259
+ width: 28em;
260
+ }
261
+
262
+ /* Category */
263
+
264
+ .ui.category.search > .results .category {
265
+ background: #ebf4ff;
266
+ box-shadow: none;
267
+ border-bottom: 1px solid #efeff7;
268
+ -webkit-transition: background 0.2s ease, border-color 0.2s ease;
269
+ transition: background 0.2s ease, border-color 0.2s ease;
270
+ }
271
+
272
+ .ui.category.search > .results .category:last-child {
273
+ border-bottom: none;
274
+ }
275
+
276
+ /* Category Result */
277
+
278
+ .ui.category.search > .results .category .result {
279
+ background: #ffffff;
280
+ margin-left: 120px;
281
+ border-left: 1px solid #dedeef;
282
+ border-bottom: 1px solid #ffffff;
283
+ -webkit-transition: background 0.2s ease, border-color 0.2s ease;
284
+ transition: background 0.2s ease, border-color 0.2s ease;
285
+ }
286
+
287
+ .ui.category.search > .results .category .result:last-child {
288
+ border-bottom: none;
289
+ }
290
+
291
+ /* Category Result Name */
292
+
293
+ .ui.category.search > .results .category > .name {
294
+ width: 120px;
295
+ background: #ebf4ff;
296
+ font-size: .725rem;
297
+ float: left;
298
+ padding: 0.5em 1em;
299
+ font-weight: 600;
300
+ color: #1273eb;
301
+ }
302
+
303
+ /*******************************
304
+ Variations
305
+ *******************************/
306
+
307
+ /*-------------------
308
+ Left / Right
309
+ --------------------*/
310
+
311
+ .ui[class*="left aligned"].search > .results {
312
+ right: auto;
313
+ left: 0%;
314
+ }
315
+
316
+ .ui[class*="right aligned"].search > .results {
317
+ right: 0%;
318
+ left: auto;
319
+ }
320
+
321
+ /*--------------
322
+ Fluid
323
+ ---------------*/
324
+
325
+ .ui.fluid.search .results {
326
+ width: 100%;
327
+ }
328
+
329
+ /*--------------
330
+ Sizes
331
+ ---------------*/
332
+
333
+ .ui.search {
334
+ font-size: 1em;
335
+ }
336
+
337
+ .ui.large.search {
338
+ font-size: 1.1em;
339
+ }
340
+
341
+ /*******************************
342
+ Theme Overrides
343
+ *******************************/
344
+
345
+ /*******************************
346
+ Site Overrides
347
+ *******************************/
348
+ /*
349
+ * # Semantic UI - 1.12.3
350
+ * https://github.com/Semantic-Org/Semantic-UI
351
+ * http://www.semantic-ui.com/
352
+ *
353
+ * Copyright 2014 Contributors
354
+ * Released under the MIT license
355
+ * http://opensource.org/licenses/MIT
356
+ *
357
+ */
358
+
359
+
360
+ /*!
361
+ * # Semantic UI - Transition
362
+ * http://github.com/semantic-org/semantic-ui/
363
+ *
364
+ *
365
+ * Copyright 2014 Contributorss
366
+ * Released under the MIT license
367
+ * http://opensource.org/licenses/MIT
368
+ *
369
+ */
370
+
371
+ /*******************************
372
+ Transitions
373
+ *******************************/
374
+
375
+ .transition {
376
+ -webkit-animation-iteration-count: 1;
377
+ animation-iteration-count: 1;
378
+ -webkit-animation-duration: 300ms;
379
+ animation-duration: 300ms;
380
+ -webkit-animation-timing-function: ease;
381
+ animation-timing-function: ease;
382
+ -webkit-animation-fill-mode: both;
383
+ animation-fill-mode: both;
384
+ }
385
+
386
+ /*******************************
387
+ States
388
+ *******************************/
389
+
390
+ /* Animating */
391
+
392
+ .animating.transition {
393
+ -webkit-backface-visibility: hidden;
394
+ backface-visibility: hidden;
395
+ -webkit-transform: translateZ(0);
396
+ transform: translateZ(0);
397
+ visibility: visible !important;
398
+ }
399
+
400
+ /* Loading */
401
+
402
+ .loading.transition {
403
+ position: absolute;
404
+ top: -99999px;
405
+ left: -99999px;
406
+ }
407
+
408
+ /* Hidden */
409
+
410
+ .hidden.transition {
411
+ display: none;
412
+ visibility: hidden;
413
+ }
414
+
415
+ /* Visible */
416
+
417
+ .visible.transition {
418
+ display: block !important;
419
+ visibility: visible !important;
420
+ -webkit-backface-visibility: hidden;
421
+ backface-visibility: hidden;
422
+ -webkit-transform: translateZ(0);
423
+ transform: translateZ(0);
424
+ }
425
+
426
+ /* Disabled */
427
+
428
+ .disabled.transition {
429
+ -webkit-animation-play-state: paused;
430
+ animation-play-state: paused;
431
+ }
432
+
433
+ /*******************************
434
+ Variations
435
+ *******************************/
436
+
437
+ .looping.transition {
438
+ -webkit-animation-iteration-count: infinite;
439
+ animation-iteration-count: infinite;
440
+ }
441
+
442
+ /*******************************
443
+ Transitions
444
+ *******************************/
445
+
446
+ /*
447
+ Some transitions adapted from Animate CSS
448
+ https://github.com/daneden/animate.css
449
+
450
+ Additional transitions adapted from Glide
451
+ by Nick Pettit - https://github.com/nickpettit/glide
452
+ */
453
+
454
+
455
+ /*--------------
456
+ Scale
457
+ ---------------*/
458
+
459
+ .scale.transition.in {
460
+ -webkit-animation-name: scaleIn;
461
+ animation-name: scaleIn;
462
+ }
463
+
464
+ .scale.transition.out {
465
+ -webkit-animation-name: scaleOut;
466
+ animation-name: scaleOut;
467
+ }
468
+
469
+ /* In */
470
+
471
+ @-webkit-keyframes scaleIn {
472
+ 0% {
473
+ opacity: 0;
474
+ -webkit-transform: scale(0.7);
475
+ transform: scale(0.7);
476
+ }
477
+
478
+ 100% {
479
+ opacity: 1;
480
+ -webkit-transform: scale(1);
481
+ transform: scale(1);
482
+ }
483
+ }
484
+
485
+ @keyframes scaleIn {
486
+ 0% {
487
+ opacity: 0;
488
+ -webkit-transform: scale(0.7);
489
+ transform: scale(0.7);
490
+ }
491
+
492
+ 100% {
493
+ opacity: 1;
494
+ -webkit-transform: scale(1);
495
+ transform: scale(1);
496
+ }
497
+ }
package/index.js CHANGED
@@ -620,7 +620,7 @@ program
620
620
  if (await fs.pathExists(p)) await fs.remove(p);
621
621
  }
622
622
 
623
- await generateConfigLoader(absoluteOutputDir);
623
+ await generateConfigLoader(absoluteOutputDir, config);
624
624
  await generateLoggerCode(config, absoluteOutputDir);
625
625
  await generateMQTTCode(config, absoluteOutputDir);
626
626
  await generateCacheCode(config, absoluteOutputDir);
@@ -805,7 +805,7 @@ require (
805
805
  console.log(chalk.green('āœ… go.mod file created!'));
806
806
  }
807
807
 
808
- await generateConfigLoader(absoluteOutputDir);
808
+ await generateConfigLoader(absoluteOutputDir, config);
809
809
  await generateLoggerCode(config, absoluteOutputDir);
810
810
  await generateMQTTCode(config, absoluteOutputDir);
811
811
  await generateCacheCode(config, absoluteOutputDir);
@@ -880,7 +880,8 @@ const generateYAMLConfigs = async (config, outputDir) => {
880
880
  server: {
881
881
  rest: {
882
882
  port: cleanConfig.server?.rest?.port || cleanConfig.server?.port || 8080,
883
- protocol: cleanConfig.server?.rest?.protocol || 'json'
883
+ protocol: cleanConfig.server?.rest?.protocol || 'json',
884
+ 'api-path-prefix': cleanConfig.server?.rest?.['api-path-prefix'] || `/${cleanConfig.name || 'api'}/api`
884
885
  },
885
886
  'read-timeout': cleanConfig.server?.['read-timeout'] || '30s',
886
887
  'write-timeout': cleanConfig.server?.['write-timeout'] || '30s',
@@ -1157,4 +1158,37 @@ program
1157
1158
  });
1158
1159
  });
1159
1160
 
1161
+ program
1162
+ .command('gdl-planner')
1163
+ .description('Spin up a diagram viewer to view and plan GDL files')
1164
+ .option('-p, --port <number>', 'Port to run the planner server', 8000)
1165
+ .action(async (options) => {
1166
+ const port = options.port;
1167
+ const app = express();
1168
+
1169
+ console.log(chalk.blue('šŸ¦† Initializing GO-DUCK GDL Planner...'));
1170
+
1171
+ // Serve the compiled Angular app
1172
+ const plannerPath = path.join(__dirname, 'go-duck-planner');
1173
+ if (!fs.existsSync(plannerPath)) {
1174
+ console.log(chalk.red('āŒ Planner UI build not found! Run "npm run build:cli" in GO-DUCK-PLANNER first.'));
1175
+ process.exit(1);
1176
+ }
1177
+
1178
+ app.use(express.static(plannerPath));
1179
+
1180
+ // Fallback for Angular routing
1181
+ app.get('*', (req, res) => {
1182
+ res.sendFile(path.join(plannerPath, 'index.html'));
1183
+ });
1184
+
1185
+ app.listen(port, async () => {
1186
+ console.log(chalk.bold.green(`\nšŸš€ GO-DUCK GDL Planner Server is ALIVE!`));
1187
+ console.log(chalk.cyan(`🌐 Planner UI: http://localhost:${port}`));
1188
+ console.log(chalk.gray(`Press Ctrl+C to terminate the server.\n`));
1189
+
1190
+ await open(`http://localhost:${port}`);
1191
+ });
1192
+ });
1193
+
1160
1194
  program.parse(process.argv);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "go-duck-cli",
3
- "version": "1.2.25",
3
+ "version": "1.3.0",
4
4
  "description": "The Ultimate Evolutionary Go Microservice Scaffolder.",
5
5
  "main": "index.js",
6
6
  "type": "module",
@@ -209,8 +209,13 @@ func SetupRouter(appConfig *config.Config) *gin.Engine {
209
209
  }
210
210
  {{/if}}
211
211
 
212
+ apiPrefix := appConfig.GoDuck.Server.REST.ApiPathPrefix
213
+ if apiPrefix == "" {
214
+ apiPrefix = "/api"
215
+ }
216
+
212
217
  // Open Application APIs (No Auth)
213
- openApi := r.Group("/open/api")
218
+ openApi := r.Group("/open" + apiPrefix)
214
219
  if appConfig.GoDuck.Multitenancy.Enabled {
215
220
  openApi.Use(middleware.PublicTenantMiddleware(masterDB, appConfig))
216
221
  }
@@ -246,7 +251,7 @@ func SetupRouter(appConfig *config.Config) *gin.Engine {
246
251
  }
247
252
 
248
253
  // Secured Application APIs
249
- api := r.Group("/api")
254
+ api := r.Group(apiPrefix)
250
255
  api.Use(middleware.JWTMiddleware())
251
256
  api.Use(middleware.TenantMiddleware(masterDB, appConfig))
252
257
  // Log request DB resolution for debugging
@@ -270,7 +275,7 @@ func SetupRouter(appConfig *config.Config) *gin.Engine {
270
275
  api.GET("/metering/history", meteringCtrl.GetHistory)
271
276
 
272
277
  // --- Infrastructure/Confidential Layer ---
273
- admin := r.Group("/api/admin")
278
+ admin := r.Group(apiPrefix + "/admin")
274
279
  admin.Use(middleware.JWTMiddleware())
275
280
  admin.Use(middleware.SuperAdminRoleMiddleware(appConfig))
276
281
  {