fontastic 0.1.3

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 (370) hide show
  1. package/.editorconfig +16 -0
  2. package/.eslintrc.json +54 -0
  3. package/.github/FUNDING.yml +12 -0
  4. package/.github/ISSUE_TEMPLATE/bug_report.md +29 -0
  5. package/.github/ISSUE_TEMPLATE/feature_request.md +20 -0
  6. package/.github/dependabot.yml +6 -0
  7. package/.github/pull_request_template.md +21 -0
  8. package/.github/stale.yml +17 -0
  9. package/.github/workflows/macos.yml +58 -0
  10. package/.github/workflows/ubuntu.yml +70 -0
  11. package/.github/workflows/windows.yml +64 -0
  12. package/.node-version +1 -0
  13. package/.vscode/launch.json +46 -0
  14. package/.vscode/tasks.json +49 -0
  15. package/CODE_OF_CONDUCT.md +45 -0
  16. package/CONTRIBUTING.md +72 -0
  17. package/LICENSE +21 -0
  18. package/README.md +111 -0
  19. package/_config.yml +1 -0
  20. package/angular.json +194 -0
  21. package/angular.webpack.js +32 -0
  22. package/app/Application.js +40 -0
  23. package/app/Application.ts +38 -0
  24. package/app/config/alert.ts +32 -0
  25. package/app/config/database.js +203 -0
  26. package/app/config/database.ts +202 -0
  27. package/app/config/index.js +20 -0
  28. package/app/config/index.ts +3 -0
  29. package/app/config/mimes.js +49 -0
  30. package/app/config/mimes.ts +54 -0
  31. package/app/config/system.js +497 -0
  32. package/app/config/system.ts +498 -0
  33. package/app/config/themes.ts +38 -0
  34. package/app/core/AppLogger.js +31 -0
  35. package/app/core/AppLogger.ts +38 -0
  36. package/app/core/ConfigManager.js +114 -0
  37. package/app/core/ConfigManager.ts +137 -0
  38. package/app/core/ConnectionManager.js +83 -0
  39. package/app/core/ConnectionManager.ts +95 -0
  40. package/app/core/FontCatalog.js +51 -0
  41. package/app/core/FontCatalog.ts +42 -0
  42. package/app/core/FontFinder.js +86 -0
  43. package/app/core/FontFinder.ts +96 -0
  44. package/app/core/FontInstaller.js +67 -0
  45. package/app/core/FontInstaller.ts +63 -0
  46. package/app/core/FontManager.js +165 -0
  47. package/app/core/FontManager.ts +172 -0
  48. package/app/core/FontObject.js +54 -0
  49. package/app/core/FontObject.ts +62 -0
  50. package/app/core/MessageHandler.js +272 -0
  51. package/app/core/MessageHandler.ts +337 -0
  52. package/app/core/SystemManager.js +140 -0
  53. package/app/core/SystemManager.ts +171 -0
  54. package/app/core/menu/Example.ts +280 -0
  55. package/app/core/menu/MenuBuilder.js +45 -0
  56. package/app/core/menu/MenuBuilder.ts +53 -0
  57. package/app/core/menu/templates/DarwinTemplate.js +127 -0
  58. package/app/core/menu/templates/DarwinTemplate.ts +142 -0
  59. package/app/core/menu/templates/SystemTemplate.js +124 -0
  60. package/app/core/menu/templates/SystemTemplate.ts +139 -0
  61. package/app/database/entity/Collection.schema.js +99 -0
  62. package/app/database/entity/Collection.schema.ts +68 -0
  63. package/app/database/entity/Logger.schema.js +50 -0
  64. package/app/database/entity/Logger.schema.ts +26 -0
  65. package/app/database/entity/Store.schema.js +165 -0
  66. package/app/database/entity/Store.schema.ts +116 -0
  67. package/app/database/entity/index.js +20 -0
  68. package/app/database/entity/index.ts +3 -0
  69. package/app/database/repository/Collection.repository.js +181 -0
  70. package/app/database/repository/Collection.repository.ts +190 -0
  71. package/app/database/repository/Logger.repository.js +25 -0
  72. package/app/database/repository/Logger.repository.ts +11 -0
  73. package/app/database/repository/Store.repository.js +328 -0
  74. package/app/database/repository/Store.repository.ts +358 -0
  75. package/app/database/repository/User.repository.js +12 -0
  76. package/app/database/repository/User.repository.ts +8 -0
  77. package/app/database/repository/index.js +20 -0
  78. package/app/database/repository/index.ts +3 -0
  79. package/app/enums/ChannelType.js +62 -0
  80. package/app/enums/ChannelType.ts +65 -0
  81. package/app/enums/StorageType.js +19 -0
  82. package/app/enums/index.js +19 -0
  83. package/app/enums/index.ts +2 -0
  84. package/app/enums/storageType.ts +14 -0
  85. package/app/helpers/command.js +28 -0
  86. package/app/helpers/command.ts +20 -0
  87. package/app/helpers/random.js +16 -0
  88. package/app/helpers/random.ts +12 -0
  89. package/app/main.js +82 -0
  90. package/app/main.ts +94 -0
  91. package/app/package-lock.json +2649 -0
  92. package/app/package.json +35 -0
  93. package/app/types/AppAlert.js +3 -0
  94. package/app/types/AppAlert.ts +8 -0
  95. package/app/types/AuthUser.js +7 -0
  96. package/app/types/AuthUser.ts +5 -0
  97. package/app/types/Breadcrumb.js +3 -0
  98. package/app/types/Breadcrumb.ts +5 -0
  99. package/app/types/ImportOptions.js +7 -0
  100. package/app/types/ImportOptions.ts +3 -0
  101. package/app/types/QueryOptions.js +3 -0
  102. package/app/types/QueryOptions.ts +12 -0
  103. package/app/types/SystemConfig.js +3 -0
  104. package/app/types/SystemConfig.ts +132 -0
  105. package/app/types/SystemStats.js +3 -0
  106. package/app/types/SystemStats.ts +7 -0
  107. package/app/types/SystemTheme.js +3 -0
  108. package/app/types/SystemTheme.ts +5 -0
  109. package/app/types/index.js +25 -0
  110. package/app/types/index.ts +8 -0
  111. package/docs/logo.png +0 -0
  112. package/docs/screenshots/readme.md +7 -0
  113. package/docs/screenshots/screen-grab1.png +0 -0
  114. package/docs/screenshots/screen-grab2.png +0 -0
  115. package/docs/screenshots/screen-grab3.png +0 -0
  116. package/e2e/main.spec.ts +59 -0
  117. package/e2e/playwright.config.ts +19 -0
  118. package/e2e/tsconfig.e2e.json +13 -0
  119. package/electron-builder.json +71 -0
  120. package/package.json +121 -0
  121. package/src/app/app-routing.module.ts +15 -0
  122. package/src/app/app.component.html +1 -0
  123. package/src/app/app.component.scss +0 -0
  124. package/src/app/app.component.spec.ts.dist +33 -0
  125. package/src/app/app.component.ts +37 -0
  126. package/src/app/app.module.ts +63 -0
  127. package/src/app/core/core.module.ts +11 -0
  128. package/src/app/core/model/AuthUserModel.ts +7 -0
  129. package/src/app/core/model/CustomThemeModel.ts +7 -0
  130. package/src/app/core/model/DbConnectionModel.ts +16 -0
  131. package/src/app/core/model/ImportOptionsModel.ts +5 -0
  132. package/src/app/core/model/LatestNewsModel.ts +7 -0
  133. package/src/app/core/model/SearchFormModel.ts +10 -0
  134. package/src/app/core/model/index.ts +6 -0
  135. package/src/app/core/services/alert/alert.service.spec.ts +22 -0
  136. package/src/app/core/services/alert/alert.service.ts +71 -0
  137. package/src/app/core/services/auth/auth.service.ts +30 -0
  138. package/src/app/core/services/boot/boot.service.ts +33 -0
  139. package/src/app/core/services/breadcrumb/breadcrumb.service.spec.ts +22 -0
  140. package/src/app/core/services/breadcrumb/breadcrumb.service.ts +30 -0
  141. package/src/app/core/services/config/config.service.ts +63 -0
  142. package/src/app/core/services/database/database.service.ts +286 -0
  143. package/src/app/core/services/electron/electron.service.spec.ts +12 -0
  144. package/src/app/core/services/electron/electron.service.ts +62 -0
  145. package/src/app/core/services/font/font.service.ts +79 -0
  146. package/src/app/core/services/gravatar/gravatar.service.spec.ts +16 -0
  147. package/src/app/core/services/gravatar/gravatar.service.ts +18 -0
  148. package/src/app/core/services/index.ts +14 -0
  149. package/src/app/core/services/message/message.service.ts +289 -0
  150. package/src/app/core/services/modal/modal.service.spec.ts +16 -0
  151. package/src/app/core/services/modal/modal.service.ts +34 -0
  152. package/src/app/core/services/news/news.service.ts +94 -0
  153. package/src/app/core/services/presentation/presentation.service.ts +341 -0
  154. package/src/app/core/services/utils/utils.service.spec.ts +12 -0
  155. package/src/app/core/services/utils/utils.service.ts +144 -0
  156. package/src/app/layout/aside/aside.component.html +9 -0
  157. package/src/app/layout/aside/aside.component.scss +1 -0
  158. package/src/app/layout/aside/aside.component.ts +26 -0
  159. package/src/app/layout/footer/footer.component.html +11 -0
  160. package/src/app/layout/footer/footer.component.scss +27 -0
  161. package/src/app/layout/footer/footer.component.ts +32 -0
  162. package/src/app/layout/header/header.component.html +35 -0
  163. package/src/app/layout/header/header.component.scss +60 -0
  164. package/src/app/layout/header/header.component.ts +229 -0
  165. package/src/app/layout/layout.component.html +14 -0
  166. package/src/app/layout/layout.component.scss +119 -0
  167. package/src/app/layout/layout.component.ts +23 -0
  168. package/src/app/layout/layout.module.ts +32 -0
  169. package/src/app/layout/layout.service.ts +13 -0
  170. package/src/app/layout/navigation/navigation.component.html +142 -0
  171. package/src/app/layout/navigation/navigation.component.scss +0 -0
  172. package/src/app/layout/navigation/navigation.component.ts +302 -0
  173. package/src/app/pages/main/grid/grid.component.html +160 -0
  174. package/src/app/pages/main/grid/grid.component.scss +3 -0
  175. package/src/app/pages/main/grid/grid.component.ts +98 -0
  176. package/src/app/pages/main/inspect/inspect.component.html +7 -0
  177. package/src/app/pages/main/inspect/inspect.component.scss +3 -0
  178. package/src/app/pages/main/inspect/inspect.component.ts +66 -0
  179. package/src/app/pages/main/main-routing.module.ts +30 -0
  180. package/src/app/pages/main/main.component.html +6 -0
  181. package/src/app/pages/main/main.component.scss +191 -0
  182. package/src/app/pages/main/main.component.ts +35 -0
  183. package/src/app/pages/main/main.module.ts +28 -0
  184. package/src/app/pages/main/preview/preview.component.html +46 -0
  185. package/src/app/pages/main/preview/preview.component.scss +0 -0
  186. package/src/app/pages/main/preview/preview.component.ts +239 -0
  187. package/src/app/pages/main/toolbar/toolbar.component.html +78 -0
  188. package/src/app/pages/main/toolbar/toolbar.component.scss +3 -0
  189. package/src/app/pages/main/toolbar/toolbar.component.ts +132 -0
  190. package/src/app/shared/components/alert/alert.component.html +9 -0
  191. package/src/app/shared/components/alert/alert.component.scss +0 -0
  192. package/src/app/shared/components/alert/alert.component.ts +37 -0
  193. package/src/app/shared/components/breadcrumbs/breadcrumbs.component.html +14 -0
  194. package/src/app/shared/components/breadcrumbs/breadcrumbs.component.scss +0 -0
  195. package/src/app/shared/components/breadcrumbs/breadcrumbs.component.ts +36 -0
  196. package/src/app/shared/components/button/button.component.html +3 -0
  197. package/src/app/shared/components/button/button.component.scss +2 -0
  198. package/src/app/shared/components/button/button.component.ts +22 -0
  199. package/src/app/shared/components/collection/create-collection/create-collection.component.html +41 -0
  200. package/src/app/shared/components/collection/create-collection/create-collection.component.scss +0 -0
  201. package/src/app/shared/components/collection/create-collection/create-collection.component.ts +68 -0
  202. package/src/app/shared/components/collection/form-collection/form-collection.component.html +1 -0
  203. package/src/app/shared/components/collection/form-collection/form-collection.component.scss +0 -0
  204. package/src/app/shared/components/collection/form-collection/form-collection.component.ts +15 -0
  205. package/src/app/shared/components/collection/update-collection/update-collection.component.html +40 -0
  206. package/src/app/shared/components/collection/update-collection/update-collection.component.scss +0 -0
  207. package/src/app/shared/components/collection/update-collection/update-collection.component.ts +71 -0
  208. package/src/app/shared/components/glyph-list/glyph-list.component.html +40 -0
  209. package/src/app/shared/components/glyph-list/glyph-list.component.scss +1 -0
  210. package/src/app/shared/components/glyph-list/glyph-list.component.ts +165 -0
  211. package/src/app/shared/components/glyph-view/glyph-view.component.html +23 -0
  212. package/src/app/shared/components/glyph-view/glyph-view.component.scss +0 -0
  213. package/src/app/shared/components/glyph-view/glyph-view.component.ts +228 -0
  214. package/src/app/shared/components/index.ts +16 -0
  215. package/src/app/shared/components/loading/loading.component.html +1 -0
  216. package/src/app/shared/components/loading/loading.component.scss +0 -0
  217. package/src/app/shared/components/loading/loading.component.ts +26 -0
  218. package/src/app/shared/components/modal/modal.component.html +31 -0
  219. package/src/app/shared/components/modal/modal.component.scss +0 -0
  220. package/src/app/shared/components/modal/modal.component.ts +51 -0
  221. package/src/app/shared/components/page-not-found/page-not-found.component.html +3 -0
  222. package/src/app/shared/components/page-not-found/page-not-found.component.scss +0 -0
  223. package/src/app/shared/components/page-not-found/page-not-found.component.ts +12 -0
  224. package/src/app/shared/components/paginator/paginator.component.html +21 -0
  225. package/src/app/shared/components/paginator/paginator.component.scss +3 -0
  226. package/src/app/shared/components/paginator/paginator.component.ts +133 -0
  227. package/src/app/shared/components/pairing/pairing.component.html +20 -0
  228. package/src/app/shared/components/pairing/pairing.component.scss +0 -0
  229. package/src/app/shared/components/pairing/pairing.component.ts +33 -0
  230. package/src/app/shared/components/search/search.component.html +54 -0
  231. package/src/app/shared/components/search/search.component.scss +10 -0
  232. package/src/app/shared/components/search/search.component.ts +77 -0
  233. package/src/app/shared/components/settings/database/database.component.html +151 -0
  234. package/src/app/shared/components/settings/database/database.component.scss +0 -0
  235. package/src/app/shared/components/settings/database/database.component.ts +145 -0
  236. package/src/app/shared/components/settings/general/general.component.html +170 -0
  237. package/src/app/shared/components/settings/general/general.component.scss +0 -0
  238. package/src/app/shared/components/settings/general/general.component.ts +150 -0
  239. package/src/app/shared/components/settings/logs/logs.component.html +44 -0
  240. package/src/app/shared/components/settings/logs/logs.component.scss +0 -0
  241. package/src/app/shared/components/settings/logs/logs.component.ts +37 -0
  242. package/src/app/shared/components/settings/news/news.component.html +41 -0
  243. package/src/app/shared/components/settings/news/news.component.scss +0 -0
  244. package/src/app/shared/components/settings/news/news.component.ts +52 -0
  245. package/src/app/shared/components/settings/settings.component.html +46 -0
  246. package/src/app/shared/components/settings/settings.component.scss +0 -0
  247. package/src/app/shared/components/settings/settings.component.ts +23 -0
  248. package/src/app/shared/components/settings/system/system.component.html +30 -0
  249. package/src/app/shared/components/settings/system/system.component.scss +0 -0
  250. package/src/app/shared/components/settings/system/system.component.ts +43 -0
  251. package/src/app/shared/components/settings/theme/theme.component.html +22 -0
  252. package/src/app/shared/components/settings/theme/theme.component.scss +0 -0
  253. package/src/app/shared/components/settings/theme/theme.component.ts +50 -0
  254. package/src/app/shared/components/spinner/spinner.component.html +1 -0
  255. package/src/app/shared/components/spinner/spinner.component.scss +0 -0
  256. package/src/app/shared/components/spinner/spinner.component.ts +26 -0
  257. package/src/app/shared/components/store/store.component.html +22 -0
  258. package/src/app/shared/components/store/store.component.scss +10 -0
  259. package/src/app/shared/components/store/store.component.ts +58 -0
  260. package/src/app/shared/components/tables/tables.component.html +47 -0
  261. package/src/app/shared/components/tables/tables.component.scss +10 -0
  262. package/src/app/shared/components/tables/tables.component.ts +81 -0
  263. package/src/app/shared/components/typescale/typescale.component.html +53 -0
  264. package/src/app/shared/components/typescale/typescale.component.scss +0 -0
  265. package/src/app/shared/components/typescale/typescale.component.ts +168 -0
  266. package/src/app/shared/directives/gravatar/gravatar.directive.ts +29 -0
  267. package/src/app/shared/directives/index.ts +2 -0
  268. package/src/app/shared/directives/webview/webview.directive.ts +8 -0
  269. package/src/app/shared/pipes/installable.pipe.ts +10 -0
  270. package/src/app/shared/pipes/prettybytes.pipe.ts +10 -0
  271. package/src/app/shared/pipes/safehtml.pipe.ts +10 -0
  272. package/src/app/shared/shared.module.ts +92 -0
  273. package/src/assets/.gitkeep +0 -0
  274. package/src/assets/fonts/fa/fa-brands-400.eot +0 -0
  275. package/src/assets/fonts/fa/fa-brands-400.svg +3535 -0
  276. package/src/assets/fonts/fa/fa-brands-400.ttf +0 -0
  277. package/src/assets/fonts/fa/fa-brands-400.woff +0 -0
  278. package/src/assets/fonts/fa/fa-brands-400.woff2 +0 -0
  279. package/src/assets/fonts/fa/fa-regular-400.eot +0 -0
  280. package/src/assets/fonts/fa/fa-regular-400.svg +803 -0
  281. package/src/assets/fonts/fa/fa-regular-400.ttf +0 -0
  282. package/src/assets/fonts/fa/fa-regular-400.woff +0 -0
  283. package/src/assets/fonts/fa/fa-regular-400.woff2 +0 -0
  284. package/src/assets/fonts/fa/fa-solid-900.eot +0 -0
  285. package/src/assets/fonts/fa/fa-solid-900.svg +4700 -0
  286. package/src/assets/fonts/fa/fa-solid-900.ttf +0 -0
  287. package/src/assets/fonts/fa/fa-solid-900.woff +0 -0
  288. package/src/assets/fonts/fa/fa-solid-900.woff2 +0 -0
  289. package/src/assets/fonts/md/MaterialIcons-Regular.eot +0 -0
  290. package/src/assets/fonts/md/MaterialIcons-Regular.ijmap +1 -0
  291. package/src/assets/fonts/md/MaterialIcons-Regular.svg +2373 -0
  292. package/src/assets/fonts/md/MaterialIcons-Regular.ttf +0 -0
  293. package/src/assets/fonts/md/MaterialIcons-Regular.woff +0 -0
  294. package/src/assets/fonts/md/MaterialIcons-Regular.woff2 +0 -0
  295. package/src/assets/fonts/md/README.md +9 -0
  296. package/src/assets/fonts/md/codepoints +932 -0
  297. package/src/assets/fonts/md/material-icons.css +36 -0
  298. package/src/assets/fonts/octicon/octicon.eot +0 -0
  299. package/src/assets/fonts/octicon/octicon.svg +378 -0
  300. package/src/assets/fonts/octicon/octicon.ttf +0 -0
  301. package/src/assets/fonts/octicon/octicon.woff +0 -0
  302. package/src/assets/fonts/octicon/octicon.woff2 +0 -0
  303. package/src/assets/fonts/roboto/Roboto-Bold-webfont.eot +0 -0
  304. package/src/assets/fonts/roboto/Roboto-Bold-webfont.svg +607 -0
  305. package/src/assets/fonts/roboto/Roboto-Bold-webfont.ttf +0 -0
  306. package/src/assets/fonts/roboto/Roboto-Bold-webfont.woff +0 -0
  307. package/src/assets/fonts/roboto/Roboto-Medium-webfont.eot +0 -0
  308. package/src/assets/fonts/roboto/Roboto-Medium-webfont.svg +607 -0
  309. package/src/assets/fonts/roboto/Roboto-Medium-webfont.ttf +0 -0
  310. package/src/assets/fonts/roboto/Roboto-Medium-webfont.woff +0 -0
  311. package/src/assets/fonts/roboto/Roboto-Regular-webfont.eot +0 -0
  312. package/src/assets/fonts/roboto/Roboto-Regular-webfont.svg +635 -0
  313. package/src/assets/fonts/roboto/Roboto-Regular-webfont.ttf +0 -0
  314. package/src/assets/fonts/roboto/Roboto-Regular-webfont.woff +0 -0
  315. package/src/assets/i18n/en.json +12 -0
  316. package/src/assets/icons/android-chrome-192x192.png +0 -0
  317. package/src/assets/icons/android-chrome-512x512.png +0 -0
  318. package/src/assets/icons/apple-touch-icon.png +0 -0
  319. package/src/assets/icons/favicon-16x16.png +0 -0
  320. package/src/assets/icons/favicon-32x32.png +0 -0
  321. package/src/assets/icons/favicon.ico +0 -0
  322. package/src/assets/icons/site.webmanifest +1 -0
  323. package/src/assets/images/electron.bmp +0 -0
  324. package/src/bin/activator +0 -0
  325. package/src/bin/activator.exe +0 -0
  326. package/src/environments/environment.dev.ts +4 -0
  327. package/src/environments/environment.prod.ts +4 -0
  328. package/src/environments/environment.ts +4 -0
  329. package/src/environments/environment.web.prod.ts +4 -0
  330. package/src/environments/environment.web.ts +4 -0
  331. package/src/favicon.ico +0 -0
  332. package/src/index.html +55 -0
  333. package/src/karma.conf.js +50 -0
  334. package/src/main.ts +15 -0
  335. package/src/polyfills-test.ts +1 -0
  336. package/src/polyfills.ts +53 -0
  337. package/src/styles/base/loading.scss +87 -0
  338. package/src/styles/base/reset.scss +408 -0
  339. package/src/styles/components/alert.scss +54 -0
  340. package/src/styles/components/buttons.scss +93 -0
  341. package/src/styles/components/forms.scss +96 -0
  342. package/src/styles/components/inputs.scss +113 -0
  343. package/src/styles/components/modal.scss +52 -0
  344. package/src/styles/components/paginator.scss +108 -0
  345. package/src/styles/components/scrollbox.scss +71 -0
  346. package/src/styles/components/spinner.scss +11 -0
  347. package/src/styles/components/tables.scss +42 -0
  348. package/src/styles/components/tabs.scss +44 -0
  349. package/src/styles/components/toolbar.scss +130 -0
  350. package/src/styles/fonts/md.scss +54 -0
  351. package/src/styles/fonts/octicons.scss +1351 -0
  352. package/src/styles/fonts/roboto.scss +32 -0
  353. package/src/styles/themes/dashboard.scss +294 -0
  354. package/src/styles/themes/euphoria.scss +283 -0
  355. package/src/styles/themes/mellow.scss +280 -0
  356. package/src/styles/themes/midnight.scss +283 -0
  357. package/src/styles/themes/passion.scss +280 -0
  358. package/src/styles/themes/swiss.scss +283 -0
  359. package/src/styles/tools/_functions.scss +5 -0
  360. package/src/styles/tools/_mixins.scss +159 -0
  361. package/src/styles/tools/_placeholders.scss +17 -0
  362. package/src/styles/tools/_variables.scss +67 -0
  363. package/src/styles.scss +37 -0
  364. package/src/test.ts +22 -0
  365. package/src/tsconfig.app.json +20 -0
  366. package/src/tsconfig.spec.json +23 -0
  367. package/src/typings.d.ts +9 -0
  368. package/tailwind.config.js +67 -0
  369. package/tsconfig.json +42 -0
  370. package/tsconfig.serve.json +27 -0
package/.editorconfig ADDED
@@ -0,0 +1,16 @@
1
+ # Editor configuration, see http://editorconfig.org
2
+ root = true
3
+
4
+ [*]
5
+ charset = utf-8
6
+ indent_style = space
7
+ indent_size = 2
8
+ insert_final_newline = true
9
+ trim_trailing_whitespace = true
10
+
11
+ [*.ts]
12
+ quote_type = single
13
+
14
+ [*.md]
15
+ max_line_length = off
16
+ trim_trailing_whitespace = false
package/.eslintrc.json ADDED
@@ -0,0 +1,54 @@
1
+ {
2
+ "root": true,
3
+ "ignorePatterns": [
4
+ "app/**/*", // ignore nodeJs files
5
+ "dist/**/*",
6
+ "release/**/*"
7
+ ],
8
+ "overrides": [
9
+ {
10
+ "files": [
11
+ "*.ts"
12
+ ],
13
+ "parserOptions": {
14
+ "project": [
15
+ "./tsconfig.serve.json",
16
+ "./src/tsconfig.app.json",
17
+ "./src/tsconfig.spec.json",
18
+ "./e2e/tsconfig.e2e.json"
19
+ ],
20
+ "createDefaultProgram": true
21
+ },
22
+ "extends": [
23
+ "plugin:@angular-eslint/ng-cli-compat",
24
+ "plugin:@angular-eslint/ng-cli-compat--formatting-add-on",
25
+ "plugin:@angular-eslint/template/process-inline-templates"
26
+ ],
27
+ "rules": {
28
+ "prefer-arrow/prefer-arrow-functions": 0,
29
+ "@angular-eslint/directive-selector": 0,
30
+ "@angular-eslint/component-selector": [
31
+ "error",
32
+ {
33
+ "type": "element",
34
+ "prefix": "app",
35
+ "style": "kebab-case"
36
+ }
37
+ ],
38
+ "no-underscore-dangle": 0,
39
+ "no-trailing-spaces": 0,
40
+ "max-len": "off"
41
+ }
42
+ },
43
+ {
44
+ "files": [
45
+ "*.html"
46
+ ],
47
+ "extends": [
48
+ "plugin:@angular-eslint/template/recommended"
49
+ ],
50
+ "rules": {
51
+ }
52
+ }
53
+ ]
54
+ }
@@ -0,0 +1,12 @@
1
+ # These are supported funding model platforms
2
+
3
+ github: tomshaw
4
+ patreon: user?u=78738188
5
+ open_collective: # Replace with a single Open Collective username
6
+ ko_fi: # Replace with a single Ko-fi username
7
+ tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
8
+ community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
9
+ liberapay: # Replace with a single Liberapay username
10
+ issuehunt: tomshaw # Replace with a single IssueHunt username
11
+ otechie: # Replace with a single Otechie username
12
+ custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
@@ -0,0 +1,29 @@
1
+ ---
2
+ name: Bug report
3
+ about: Create a report to help us improve
4
+ title: ''
5
+ labels: ''
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
+ **Additional context**
27
+ - OS: [e.g. iOS]
28
+
29
+ Add any other context about the problem here.
@@ -0,0 +1,20 @@
1
+ ---
2
+ name: Feature request
3
+ about: Suggest an idea for this project
4
+ title: ''
5
+ labels: ''
6
+ assignees: ''
7
+
8
+ ---
9
+
10
+ **Is your feature request related to a problem? Please describe.**
11
+ A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
12
+
13
+ **Describe the solution you'd like**
14
+ A clear and concise description of what you want to happen.
15
+
16
+ **Describe alternatives you've considered**
17
+ A clear and concise description of any alternative solutions or features you've considered.
18
+
19
+ **Additional context**
20
+ Add any other context or screenshots about the feature request here.
@@ -0,0 +1,6 @@
1
+ version: 2
2
+ updates:
3
+ - package-ecosystem: "github-actions"
4
+ directory: "/"
5
+ schedule:
6
+ interval: "weekly"
@@ -0,0 +1,21 @@
1
+ # Description
2
+
3
+ Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change.
4
+
5
+ Fixes # (issue)
6
+
7
+ ## Type of change
8
+
9
+ Please delete options that are not relevant.
10
+
11
+ - [ ] Bug fix (non-breaking change which fixes an issue)
12
+ - [ ] New feature (non-breaking change which adds functionality)
13
+ - [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
14
+ - [ ] This change requires a documentation update
15
+
16
+ # Checklist:
17
+
18
+ - [ ] I have performed a self-review of my own code
19
+ - [ ] I have made corresponding changes to the documentation
20
+ - [ ] My changes generate no new warnings
21
+ - [ ] I have run tests (npm run test & npm run e2e) that prove my fix is effective or that my feature works
@@ -0,0 +1,17 @@
1
+ # Number of days of inactivity before an issue becomes stale
2
+ daysUntilStale: 15
3
+ # Number of days of inactivity before a stale issue is closed
4
+ daysUntilClose: 7
5
+ # Issues with these labels will never be considered stale
6
+ exemptLabels:
7
+ - pinned
8
+ - security
9
+ # Label to use when marking an issue as stale
10
+ staleLabel: wontfix
11
+ # Comment to post when marking an issue as stale. Set to `false` to disable
12
+ markComment: >
13
+ This issue has been automatically marked as stale because it has not had
14
+ recent activity. It will be closed if no further activity occurs. Thank you
15
+ for your contributions.
16
+ # Comment to post when closing a stale issue. Set to `false` to disable
17
+ closeComment: false
@@ -0,0 +1,58 @@
1
+ # This is a basic workflow to help you get started with Actions
2
+ name: 'MacOS Build'
3
+
4
+ # Controls when the action will run.
5
+ on:
6
+ # Triggers the workflow on push or pull request events but only for the main branch
7
+ push:
8
+ branches:
9
+ - main
10
+ pull_request:
11
+ branches:
12
+ - main
13
+
14
+ # Allows you to run this workflow manually from the Actions tab
15
+ workflow_dispatch:
16
+
17
+ # A workflow run is made up of one or more jobs that can run sequentially or in parallel
18
+ permissions:
19
+ contents: read
20
+
21
+ jobs:
22
+ build:
23
+ strategy:
24
+ matrix:
25
+ node-version: [16]
26
+
27
+ # The type of runner that the job will run on
28
+ runs-on: macos-latest
29
+
30
+ steps:
31
+ - uses: actions/checkout@v3
32
+
33
+ - name: Cache node modules
34
+ uses: actions/cache@v3
35
+ env:
36
+ cache-name: cache-node-modules
37
+ with:
38
+ # npm cache files are stored in `~/.npm` on Linux/macOS
39
+ path: ~/.npm
40
+ key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
41
+ restore-keys: |
42
+ ${{ runner.os }}-build-${{ env.cache-name }}-
43
+ ${{ runner.os }}-build-
44
+ ${{ runner.os }}-
45
+
46
+ - name: Use Node.js ${{ matrix.node-version }}
47
+ uses: actions/setup-node@v3
48
+ with:
49
+ node-version: ${{ matrix.node-version }}
50
+
51
+ - name: Install Dependencies
52
+ run: npm i && npm i -D cli-truncate iconv-corefoundation
53
+
54
+ - name: Check lint
55
+ run: npm run lint
56
+
57
+ - name: Build the app
58
+ run: npm run electron:build
@@ -0,0 +1,70 @@
1
+ # This is a basic workflow to help you get started with Actions
2
+ name: 'Linux Build'
3
+
4
+ # Controls when the action will run.
5
+ on:
6
+ # Triggers the workflow on push or pull request events but only for the main branch
7
+ push:
8
+ branches:
9
+ - main
10
+ pull_request:
11
+ branches:
12
+ - main
13
+
14
+ # Allows you to run this workflow manually from the Actions tab
15
+ workflow_dispatch:
16
+
17
+ # A workflow run is made up of one or more jobs that can run sequentially or in parallel
18
+ jobs:
19
+ build:
20
+ strategy:
21
+ matrix:
22
+ node-version: [16]
23
+
24
+ # The type of runner that the job will run on
25
+ runs-on: ubuntu-18.04
26
+
27
+ steps:
28
+ - uses: actions/checkout@v3
29
+
30
+ - name: Cache node modules
31
+ uses: actions/cache@v3
32
+ env:
33
+ cache-name: cache-node-modules
34
+ with:
35
+ # npm cache files are stored in `~/.npm` on Linux/macOS
36
+ path: ~/.npm
37
+ key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
38
+ restore-keys: |
39
+ ${{ runner.os }}-build-${{ env.cache-name }}-
40
+ ${{ runner.os }}-build-
41
+ ${{ runner.os }}-
42
+
43
+ - name: Use Node.js ${{ matrix.node-version }}
44
+ uses: actions/setup-node@v3
45
+ with:
46
+ node-version: ${{ matrix.node-version }}
47
+
48
+ - name: Install linux dependencies
49
+ run: |
50
+ sudo apt-get update
51
+ sudo apt-get install -y libgtk-3-dev webkit2gtk-4.0 libappindicator3-dev librsvg2-dev patchelf
52
+
53
+ - name: Install Dependencies
54
+ run: npm i
55
+
56
+ - name: Check lint
57
+ run: npm run lint
58
+
59
+ - name: Run headless unit test
60
+ uses: GabrielBB/xvfb-action@v1
61
+ with:
62
+ run: npm run test
63
+
64
+ - name: Run headless e2e test
65
+ uses: GabrielBB/xvfb-action@v1
66
+ with:
67
+ run: npm run e2e
68
+
69
+ - name: Build the app
70
+ run: npm run electron:build
@@ -0,0 +1,64 @@
1
+ # This is a basic workflow to help you get started with Actions
2
+ name: 'Windows Build'
3
+
4
+ # Controls when the action will run.
5
+ on:
6
+ # Triggers the workflow on push or pull request events but only for the main branch
7
+ push:
8
+ branches:
9
+ - main
10
+ pull_request:
11
+ branches:
12
+ - main
13
+
14
+ # Allows you to run this workflow manually from the Actions tab
15
+ workflow_dispatch:
16
+
17
+ # A workflow run is made up of one or more jobs that can run sequentially or in parallel
18
+ permissions:
19
+ contents: read
20
+
21
+ jobs:
22
+ build:
23
+ strategy:
24
+ matrix:
25
+ node-version: [16]
26
+
27
+ # The type of runner that the job will run on
28
+ runs-on: windows-latest
29
+
30
+ steps:
31
+ - uses: actions/checkout@v3
32
+
33
+ - name: Cache node modules
34
+ uses: actions/cache@v3
35
+ env:
36
+ cache-name: cache-node-modules
37
+ with:
38
+ # npm cache files are stored in `~/.npm`
39
+ path: ~/.npm
40
+ key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
41
+ restore-keys: |
42
+ ${{ runner.os }}-build-${{ env.cache-name }}-
43
+ ${{ runner.os }}-build-
44
+ ${{ runner.os }}-
45
+
46
+ - name: Use Node.js ${{ matrix.node-version }}
47
+ uses: actions/setup-node@v3
48
+ with:
49
+ node-version: ${{ matrix.node-version }}
50
+
51
+ - name: Install Dependencies
52
+ run: npm i
53
+
54
+ - name: Check lint
55
+ run: npm run lint
56
+
57
+ - name: Run headless unit test
58
+ run: npm run test
59
+
60
+ - name: Run headless e2e test
61
+ run: npm run e2e
62
+
63
+ - name: Build the app
64
+ run: npm run electron:build
package/.node-version ADDED
@@ -0,0 +1 @@
1
+ 16
@@ -0,0 +1,46 @@
1
+ {
2
+ // Use IntelliSense to learn about possible attributes.
3
+ // Hover to view descriptions of existing attributes.
4
+ // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
5
+ "version": "0.2.0",
6
+ "configurations": [
7
+ {
8
+ "name": "Renderer",
9
+ "type": "chrome",
10
+ "request": "attach",
11
+ "port": 9876,
12
+ "url": "http://localhost:4200",
13
+ "sourceMaps": true,
14
+ "timeout": 10000,
15
+ "trace": "verbose",
16
+ "sourceMapPathOverrides": {
17
+ "webpack:///./*": "${workspaceFolder}/*"
18
+ },
19
+ "preLaunchTask": "Build.Renderer"
20
+ },
21
+ {
22
+ "name": "Main",
23
+ "type": "node",
24
+ "request": "launch",
25
+ "protocol": "inspector",
26
+ "cwd": "${workspaceFolder}",
27
+ "runtimeExecutable": "${workspaceFolder}/node_modules/.bin/electron",
28
+ "trace": "verbose",
29
+ "runtimeArgs": [
30
+ "--serve",
31
+ ".",
32
+ "--remote-debugging-port=9876"
33
+ ],
34
+ "windows": {
35
+ "runtimeExecutable": "${workspaceFolder}/node_modules/.bin/electron.cmd"
36
+ },
37
+ "preLaunchTask": "Build.Main"
38
+ }
39
+ ],
40
+ "compounds": [
41
+ {
42
+ "name": "Application Debug",
43
+ "configurations": [ "Renderer", "Main" ]
44
+ }
45
+ ]
46
+ }
@@ -0,0 +1,49 @@
1
+ {
2
+ "version": "2.0.0",
3
+ "tasks": [
4
+ {
5
+ "label": "Build.Main",
6
+ "type": "shell",
7
+ "command": "npm run electron:serve-tsc",
8
+ "isBackground": false,
9
+ "group": {
10
+ "kind": "build",
11
+ "isDefault": true
12
+ },
13
+ "problemMatcher": {
14
+ "owner": "typescript",
15
+ "source": "ts",
16
+ "applyTo": "closedDocuments",
17
+ "fileLocation": ["relative", "${cwd}"],
18
+ "pattern": "$tsc",
19
+ "background": {
20
+ "activeOnStart": true,
21
+ "beginsPattern": "^.*",
22
+ "endsPattern": "^.*Terminal will be reused by tasks, press any key to close it.*"
23
+ }
24
+ }
25
+ },
26
+ {
27
+ "label": "Build.Renderer",
28
+ "type": "shell",
29
+ "command": "npm run ng:serve",
30
+ "isBackground": true,
31
+ "group": {
32
+ "kind": "build",
33
+ "isDefault": true
34
+ },
35
+ "problemMatcher": {
36
+ "owner": "typescript",
37
+ "source": "ts",
38
+ "applyTo": "closedDocuments",
39
+ "fileLocation": ["relative", "${cwd}"],
40
+ "pattern": "$tsc",
41
+ "background": {
42
+ "activeOnStart": true,
43
+ "beginsPattern": "^.*",
44
+ "endsPattern": "^.*Compiled successfully.*"
45
+ }
46
+ }
47
+ }
48
+ ]
49
+ }
@@ -0,0 +1,45 @@
1
+ # Contributor Covenant Code of Conduct
2
+
3
+ ## Our Pledge
4
+
5
+ In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to make participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation.
6
+
7
+ ## Our Standards
8
+
9
+ Examples of behavior that contributes to creating a positive environment include:
10
+
11
+ * Using welcoming and inclusive language
12
+ * Being respectful of differing viewpoints and experiences
13
+ * Gracefully accepting constructive criticism
14
+ * Focusing on what is best for the community
15
+ * Showing empathy towards other community members
16
+
17
+ Examples of unacceptable behavior by participants include:
18
+
19
+ * The use of sexualized language or imagery and unwelcome sexual attention or advances
20
+ * Trolling, insulting/derogatory comments, and personal or political attacks
21
+ * Public or private harassment
22
+ * Publishing others' private information, such as a physical or electronic address, without explicit permission
23
+ * Other conduct which could reasonably be considered inappropriate in a professional setting
24
+
25
+ ## Our Responsibilities
26
+
27
+ Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.
28
+
29
+ Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.
30
+
31
+ ## Scope
32
+
33
+ This Code of Conduct applies within all project spaces, and it also applies when an individual is representing the project or its community in public spaces. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.
34
+
35
+ ## Enforcement
36
+
37
+ Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project maintainer using any of the [private contact addresses](https://github.com/dec0dOS/amazing-github-template#support). All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.
38
+
39
+ Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.
40
+
41
+ ## Attribution
42
+
43
+ This Code of Conduct is adapted from the [Contributor Covenant](https://www.contributor-covenant.org), version 1.4, available at <https://www.contributor-covenant.org/version/1/4/code-of-conduct.html>
44
+
45
+ For answers to common questions about this code of conduct, see <https://www.contributor-covenant.org/faq>
@@ -0,0 +1,72 @@
1
+ # CONTRIBUTING
2
+
3
+ This documentation outlines the general procedure for contributing to the typepress repository. If you wish to contribute please be sure to read the following resources:
4
+
5
+ - [Code of Conduct](CODE_OF_CONDUCT.md)
6
+
7
+ ## Reporting Security Issues
8
+
9
+ If you've encountered a security vulnerability, please send it to [contact@tomshaw.us](mailto:contact@tomshaw.us). I will work to verify the vulnerability and patch it as soon as possible.
10
+
11
+ When reporting issues, please provide the following information:
12
+
13
+ - A detailed description indicating how to reproduce the issue.
14
+
15
+ ## Recommended Workflow
16
+
17
+ Your first step is to establish a public repository from which we can pull your work into the master repository.
18
+
19
+ 1. Fork the relevant repository
20
+ 2. Clone the repository locally.
21
+
22
+ ```console
23
+ $ git clone git://github.com/tomshaw/typepress.git
24
+ $ cd typepress
25
+ ```
26
+
27
+ ### Keeping Up-to-Date
28
+
29
+ Periodically, you should update your fork to match the typepress repository.
30
+
31
+ ```console
32
+ $ git checkout master
33
+ $ git fetch origin
34
+ $ git rebase origin/master
35
+ ```
36
+
37
+ If you're tracking other branches -- for example, the "develop" branch, where new feature development occurs -- you'll want to do the same operations for that branch; simply substitute "develop" for "master".
38
+
39
+ ### Working on a patch
40
+
41
+ We recommend you do each new feature or bugfix in a new branch. This simplifies the task of code review as well as the task of merging your changes into the repository.
42
+
43
+ A typical workflow will consist of the following:
44
+
45
+ 1. Create a new local branch based off your master branch.
46
+ 2. Switch to your new local branch.
47
+ 3. Do some work, commit, repeat as necessary.
48
+ 4. Push the local branch to your remote repository.
49
+ 5. Send a pull request.
50
+
51
+ #### What branch to issue the pull request against?
52
+
53
+ Which branch should you issue a pull request against?
54
+
55
+ - For fixes against the stable release, issue the pull request against the "master" branch.
56
+ - For new features, or fixes issue the pull request against the "develop" branch.
57
+
58
+ ### Branch Cleanup
59
+
60
+ If you are a frequent contributor, you'll start to get a ton of branches both locally and on your remote. We suggest doing some cleanup of these branches.
61
+
62
+ - Local branch cleanup
63
+
64
+ ```console
65
+ $ git branch -d <branchname>
66
+ ```
67
+
68
+ - Remote branch removal
69
+
70
+ ```console
71
+ $ git push {username} :<branchname>
72
+ ```
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2022 Tom Shaw https://github.com/tomshaw
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.