@myelophone/nuxt 0.18.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 (259) hide show
  1. package/.devcontainer/Dockerfile +7 -0
  2. package/.devcontainer/devcontainer.json +21 -0
  3. package/.editorconfig +43 -0
  4. package/.github/workflows/package.yml +73 -0
  5. package/.nuxtignore +6 -0
  6. package/.releaserc.js +132 -0
  7. package/.yarn/releases/yarn-4.18.0.cjs +1000 -0
  8. package/.yarnrc.yml +8 -0
  9. package/CHANGELOG.md +141 -0
  10. package/LICENSE +77 -0
  11. package/README.md +3004 -0
  12. package/app/app.vue +455 -0
  13. package/app/assets/css/animation.css +81 -0
  14. package/app/assets/css/backgrounds.css +57 -0
  15. package/app/assets/css/base.css +182 -0
  16. package/app/assets/css/index.css +9 -0
  17. package/app/assets/css/links.css +12 -0
  18. package/app/assets/css/multimedia.css +102 -0
  19. package/app/assets/css/preloader.css +68 -0
  20. package/app/assets/css/print.css +40 -0
  21. package/app/assets/css/tailwind.css +20 -0
  22. package/app/assets/css/theme.css +29 -0
  23. package/app/components/consent/GoogleMap.vue +59 -0
  24. package/app/components/consent/Youtube.vue +27 -0
  25. package/app/components/cookie/Banner.vue +70 -0
  26. package/app/components/cookie/ConsentWrapper.vue +71 -0
  27. package/app/components/cookie/PrivacyPolicy.vue +179 -0
  28. package/app/components/cookie/SettingsModal.vue +387 -0
  29. package/app/components/grid/Col.vue +262 -0
  30. package/app/components/grid/Container.vue +236 -0
  31. package/app/components/grid/Row.vue +248 -0
  32. package/app/components/grid/Stack.vue +233 -0
  33. package/app/components/myelophone/Copyright.vue +5 -0
  34. package/app/components/myelophone/Welcome.vue +107 -0
  35. package/app/components/page/FullscreenPreloader.vue +177 -0
  36. package/app/components/page/Preloader.vue +18 -0
  37. package/app/components/page/ReadyLocalized.vue +19 -0
  38. package/app/components/ready/.gitkeep +0 -0
  39. package/app/components/safe/Email.vue +52 -0
  40. package/app/components/safe/ImgWithLoader.vue +180 -0
  41. package/app/components/safe/NuxtImg.vue +25 -0
  42. package/app/components/safe/NuxtPicture.vue +29 -0
  43. package/app/components/section/.gitkeep +0 -0
  44. package/app/components/seo/BrandInfo.vue +76 -0
  45. package/app/components/seo/ContentNoIndex.vue +35 -0
  46. package/app/components/seo/NoIndex.vue +22 -0
  47. package/app/components/seo/OrgInfo.vue +130 -0
  48. package/app/components/seo/ProfileInfo.vue +137 -0
  49. package/app/components/ui/Accordion.vue +163 -0
  50. package/app/components/ui/Alert.vue +179 -0
  51. package/app/components/ui/Avatar.vue +88 -0
  52. package/app/components/ui/Badge.vue +150 -0
  53. package/app/components/ui/Banner.vue +133 -0
  54. package/app/components/ui/Button.vue +175 -0
  55. package/app/components/ui/Card.vue +66 -0
  56. package/app/components/ui/Checkbox.vue +134 -0
  57. package/app/components/ui/Chip.vue +136 -0
  58. package/app/components/ui/CommandPalette.vue +434 -0
  59. package/app/components/ui/Console.vue +583 -0
  60. package/app/components/ui/CursorCreative.vue +148 -0
  61. package/app/components/ui/FeatureAccordion.vue +165 -0
  62. package/app/components/ui/FileUpload.vue +705 -0
  63. package/app/components/ui/GeoDependent.vue +72 -0
  64. package/app/components/ui/Heading.vue +51 -0
  65. package/app/components/ui/Icon.vue +42 -0
  66. package/app/components/ui/Icon8.vue +39 -0
  67. package/app/components/ui/Input.vue +88 -0
  68. package/app/components/ui/LangLink.vue +34 -0
  69. package/app/components/ui/LangVisible.vue +33 -0
  70. package/app/components/ui/LanguageSelect.vue +202 -0
  71. package/app/components/ui/LightBox.vue +155 -0
  72. package/app/components/ui/LocalTime.vue +170 -0
  73. package/app/components/ui/Modal.vue +161 -0
  74. package/app/components/ui/Popup.vue +200 -0
  75. package/app/components/ui/PostContent.server.vue +23 -0
  76. package/app/components/ui/ProtectedEmail.vue +52 -0
  77. package/app/components/ui/RelativeTime.vue +141 -0
  78. package/app/components/ui/ScheduledContent.vue +150 -0
  79. package/app/components/ui/ScrollToTop.client.vue +48 -0
  80. package/app/components/ui/SegmentedControl.vue +148 -0
  81. package/app/components/ui/SiteSearch.vue +1191 -0
  82. package/app/components/ui/Skeleton.vue +91 -0
  83. package/app/components/ui/SmartContrast.vue +74 -0
  84. package/app/components/ui/SnapContainer.vue +222 -0
  85. package/app/components/ui/SnapSection.vue +294 -0
  86. package/app/components/ui/SonnerStyle.vue +7 -0
  87. package/app/components/ui/SplitSection.vue +99 -0
  88. package/app/components/ui/Steps.vue +858 -0
  89. package/app/components/ui/StickyWrapper.vue +46 -0
  90. package/app/components/ui/Table.vue +251 -0
  91. package/app/components/ui/Tabs.vue +451 -0
  92. package/app/components/ui/TextColumn.vue +36 -0
  93. package/app/components/ui/Textarea.vue +251 -0
  94. package/app/components/ui/Toggler.vue +40 -0
  95. package/app/components/ui/Tooltip.vue +524 -0
  96. package/app/components/ui/TruncateText.vue +105 -0
  97. package/app/components/ui/ViewportSpacer.vue +72 -0
  98. package/app/components/view/AnimatedCounter.vue +121 -0
  99. package/app/components/view/AnnouncementBar.vue +104 -0
  100. package/app/components/view/AvatarGroup.vue +104 -0
  101. package/app/components/view/Breadcrumbs.vue +97 -0
  102. package/app/components/view/ContentWithToc.vue +152 -0
  103. package/app/components/view/Copyright.vue +68 -0
  104. package/app/components/view/CountdownTimer.vue +184 -0
  105. package/app/components/view/CreativeCTA.vue +143 -0
  106. package/app/components/view/CurrencySelect.vue +254 -0
  107. package/app/components/view/FeatureBoxGrid.vue +142 -0
  108. package/app/components/view/HorizontalMenu.vue +97 -0
  109. package/app/components/view/ImageCompare.vue +141 -0
  110. package/app/components/view/ImgSlider.vue +333 -0
  111. package/app/components/view/InfiniteMarquee.vue +147 -0
  112. package/app/components/view/InfoBar.vue +86 -0
  113. package/app/components/view/LogoGrid.vue +106 -0
  114. package/app/components/view/LogoSlider.vue +83 -0
  115. package/app/components/view/NotFound.vue +81 -0
  116. package/app/components/view/PartialBackground.vue +313 -0
  117. package/app/components/view/QuoteBig.vue +111 -0
  118. package/app/components/view/ResponsiveMenu.vue +219 -0
  119. package/app/components/view/ReviewsSlider.vue +230 -0
  120. package/app/components/view/SocialBar.vue +78 -0
  121. package/app/components/view/StickyHeadingContent.vue +158 -0
  122. package/app/components/view/TallyForm.vue +295 -0
  123. package/app/components/view/WarningOutdated.vue +113 -0
  124. package/app/composables/useApi.ts +88 -0
  125. package/app/composables/useAppSeo.ts +78 -0
  126. package/app/composables/useBreadcrumbs.ts +106 -0
  127. package/app/composables/useChangeUrl.ts +73 -0
  128. package/app/composables/useCommand.ts +28 -0
  129. package/app/composables/useCookieControl.ts +111 -0
  130. package/app/composables/useCookieModal.ts +9 -0
  131. package/app/composables/useDevice.ts +109 -0
  132. package/app/composables/useGeoFetch.ts +139 -0
  133. package/app/composables/useLoadScript.ts +36 -0
  134. package/app/composables/useModalState.ts +37 -0
  135. package/app/composables/useMultiLang.ts +278 -0
  136. package/app/composables/useNetwork.ts +49 -0
  137. package/app/composables/useNuxtVersion.ts +5 -0
  138. package/app/composables/usePiniaStore.ts +5 -0
  139. package/app/composables/usePopupControl.ts +57 -0
  140. package/app/composables/useQuery.ts +307 -0
  141. package/app/composables/useReadyPage.ts +182 -0
  142. package/app/composables/useSafeList.ts +90 -0
  143. package/app/composables/useScriptLoader.ts +221 -0
  144. package/app/composables/useSiteSearch.ts +32 -0
  145. package/app/composables/useSnapScroll.ts +24 -0
  146. package/app/composables/useStatic.ts +5 -0
  147. package/app/composables/useStorage.ts +252 -0
  148. package/app/composables/useStoreBroadcast.ts +146 -0
  149. package/app/composables/useThemeSync.ts +81 -0
  150. package/app/constants/layout.ts +109 -0
  151. package/app/constants/predefinedCookieScripts.ts +1222 -0
  152. package/app/constants/ui-events.ts +1 -0
  153. package/app/error.vue +169 -0
  154. package/app/layouts/default-blog.vue +5 -0
  155. package/app/layouts/default.vue +3 -0
  156. package/app/locales/en/commands.json +5 -0
  157. package/app/locales/en/cookies.json +182 -0
  158. package/app/locales/en/error.json +4 -0
  159. package/app/locales/en/interface.json +33 -0
  160. package/app/locales/en/myelophone.json +8 -0
  161. package/app/locales/en/outdated.json +5 -0
  162. package/app/locales/en/times.json +18 -0
  163. package/app/locales/pl/commands.json +5 -0
  164. package/app/locales/pl/cookies.json +182 -0
  165. package/app/locales/pl/error.json +4 -0
  166. package/app/locales/pl/interface.json +33 -0
  167. package/app/locales/pl/myelophone.json +8 -0
  168. package/app/locales/pl/outdated.json +5 -0
  169. package/app/locales/pl/times.json +18 -0
  170. package/app/locales/ru/commands.json +5 -0
  171. package/app/locales/ru/cookies.json +182 -0
  172. package/app/locales/ru/error.json +4 -0
  173. package/app/locales/ru/interface.json +33 -0
  174. package/app/locales/ru/myelophone.json +8 -0
  175. package/app/locales/ru/outdated.json +5 -0
  176. package/app/locales/ru/times.json +18 -0
  177. package/app/middleware/blog-layout.ts +28 -0
  178. package/app/middleware/i18n.global.ts +17 -0
  179. package/app/middleware/not-found-status.ts +11 -0
  180. package/app/modules/default-blog/index.ts +39 -0
  181. package/app/modules/default-blog/posts.ts +80 -0
  182. package/app/modules/default-sitemap/index.ts +116 -0
  183. package/app/modules/default-sitemap/runtime/sitemap.get.ts +42 -0
  184. package/app/modules/fullscreen-preloader/module.ts +43 -0
  185. package/app/modules/htaccess/.htaccess +38 -0
  186. package/app/modules/htaccess/index.ts +23 -0
  187. package/app/modules/i18n-shaker.mjs +221 -0
  188. package/app/modules/multi18n/module.ts +71 -0
  189. package/app/modules/myelophone-config/module.ts +241 -0
  190. package/app/pages/[...all].vue +9 -0
  191. package/app/pages/index.vue +3 -0
  192. package/app/pages/post/[...slug].vue +30 -0
  193. package/app/plugins/bfcache-refresh.client.ts +9 -0
  194. package/app/plugins/canonical.ts +30 -0
  195. package/app/plugins/csp-nonce.server.ts +41 -0
  196. package/app/plugins/multi18n.client.ts +21 -0
  197. package/app/plugins/multi18n.server.ts +15 -0
  198. package/app/plugins/nuxt-version.client.ts +4 -0
  199. package/app/plugins/restore.client.ts +21 -0
  200. package/app/plugins/reveal.ts +89 -0
  201. package/app/plugins/url-helper.client.ts +66 -0
  202. package/app/server/api/exchange-rates.get.ts +216 -0
  203. package/app/server/api/healthz.ts +1 -0
  204. package/app/server/api/logout.post.ts +6 -0
  205. package/app/server/middleware/normalize-url.ts +14 -0
  206. package/app/server/middleware/security-headers.ts +147 -0
  207. package/app/server/middleware/url-helper.ts +43 -0
  208. package/app/server/plugins/clean-html-spaces.ts +15 -0
  209. package/app/server/plugins/clean-styles.ts +94 -0
  210. package/app/server/plugins/compression.ts +122 -0
  211. package/app/server/plugins/css-preload.ts +26 -0
  212. package/app/server/plugins/early-hints.ts +31 -0
  213. package/app/server/plugins/force-noindex.ts +43 -0
  214. package/app/server/plugins/html-one-line.ts +17 -0
  215. package/app/server/plugins/inline-style.ts +7 -0
  216. package/app/server/routes/healthz.get.ts +1 -0
  217. package/app/server/tsconfig.json +3 -0
  218. package/app/stores/cart.ts +945 -0
  219. package/app/stores/commands.ts +43 -0
  220. package/app/stores/device.ts +156 -0
  221. package/app/stores/querySync.ts +5 -0
  222. package/app/stores/settings.ts +145 -0
  223. package/app/stores/user.ts +607 -0
  224. package/app/types/cookie.ts +89 -0
  225. package/app/types/myelophone.d.ts +87 -0
  226. package/app/types/site-search.ts +110 -0
  227. package/app/utils/asyncRefresh.ts +4 -0
  228. package/app/utils/blog.server.ts +142 -0
  229. package/app/utils/jsonLd.ts +56 -0
  230. package/app/utils/myelophoneConfig.ts +4 -0
  231. package/app/utils/sortBy.ts +18 -0
  232. package/app/utils/transliterate.ts +75 -0
  233. package/app/utils/ytVideo.ts +37 -0
  234. package/app/workers/site-search.worker.ts +661 -0
  235. package/biome.json +94 -0
  236. package/commitlint.config.js +3 -0
  237. package/nuxt.config.ts +539 -0
  238. package/package.json +101 -0
  239. package/playground/content/.gitkeep +0 -0
  240. package/playground/locales/.gitkeep +0 -0
  241. package/playground/myelophone.dev.ts +45 -0
  242. package/playground/nuxt.config.ts +105 -0
  243. package/playground/package.json +5 -0
  244. package/playground/pages/.gitkeep +0 -0
  245. package/playground/tsconfig.json +3 -0
  246. package/playwright.config.ts +23 -0
  247. package/public/browsers/chrome.svg +77 -0
  248. package/public/browsers/edge.svg +98 -0
  249. package/public/browsers/firefox.svg +300 -0
  250. package/public/favicon.ico +0 -0
  251. package/public/myelophone_eng.png +0 -0
  252. package/public/myelophone_eng_white.png +0 -0
  253. package/spa-loading-template.html +72 -0
  254. package/tests/home.spec.ts +9 -0
  255. package/tests/utils.ts +23 -0
  256. package/tsconfig.json +16 -0
  257. package/vite/plugins/clean-css.ts +190 -0
  258. package/vite/plugins/postcss-add-viewportunits.ts +33 -0
  259. package/vite/plugins/postcss-viewport-fallback.ts +49 -0
@@ -0,0 +1,7 @@
1
+ FROM node:slim
2
+
3
+ RUN apt-get update && apt-get install -y \
4
+ git curl bash ca-certificates \
5
+ && rm -rf /var/lib/apt/lists/*
6
+
7
+ WORKDIR /app
@@ -0,0 +1,21 @@
1
+ {
2
+ "name": "Nuxt Dev",
3
+ "build": {
4
+ "dockerfile": "Dockerfile",
5
+ },
6
+ "workspaceFolder": "/app",
7
+ "mounts": [
8
+ "source=${localWorkspaceFolder},target=/app,type=bind,consistency=cached",
9
+ ],
10
+ "forwardPorts": [3000],
11
+ "remoteUser": "root",
12
+ "customizations": {
13
+ "vscode": {
14
+ "extensions": [
15
+ "vue.volar",
16
+ "vue.vscode-typescript-vue-plugin",
17
+ "dbaeumer.vscode-eslint",
18
+ ],
19
+ },
20
+ },
21
+ }
package/.editorconfig ADDED
@@ -0,0 +1,43 @@
1
+ root = true
2
+
3
+ [*]
4
+ indent_style = tab
5
+ charset = utf-8
6
+ end_of_line = auto
7
+ insert_final_newline = false
8
+ indent_size = 4
9
+
10
+ [*.{md,txt}]
11
+ indent_style = space
12
+ indent_size = 1
13
+ trim_trailing_whitespace = false
14
+
15
+ [Makefile]
16
+ indent_style = tab
17
+
18
+ [*.py]
19
+ indent_style = space
20
+ indent_size = 4
21
+
22
+ [*.{js,jsx,ts,tsx,css,mjs}]
23
+ quote_type = single
24
+
25
+ [*.bat]
26
+ end_of_line = crlf
27
+
28
+ [*.{yaml,yml,json,toml,xml}]
29
+ indent_style = space
30
+ indent_size = 2
31
+
32
+ [*.cs]
33
+ indent_style = space
34
+ indent_size = 4
35
+ dotnet_sort_system_directives_first = true
36
+ dotnet_separate_import_directive_groups = true
37
+ csharp_new_line_before_open_brace = all
38
+ csharp_indent_case_contents = true
39
+ csharp_indent_switch_labels = true
40
+
41
+ [*.rs]
42
+ indent_style = space
43
+ indent_size = 4
@@ -0,0 +1,73 @@
1
+ name: Create package
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+
8
+ permissions:
9
+ contents: write
10
+ packages: write
11
+ issues: write
12
+ id-token: write
13
+
14
+ jobs:
15
+ release:
16
+ name: Release package
17
+ runs-on: ubuntu-latest
18
+
19
+ steps:
20
+ - name: Checkout repository
21
+ uses: actions/checkout@v6
22
+ with:
23
+ fetch-depth: 0
24
+
25
+ - name: Setup Node.js
26
+ uses: actions/setup-node@v6
27
+ with:
28
+ node-version: 26
29
+ registry-url: "https://npm.pkg.github.com"
30
+ scope: "@${{ github.repository_owner }}"
31
+ cache: yarn
32
+
33
+ - name: Install dependencies
34
+ run: yarn install && yarn prepare
35
+
36
+ - name: Bootstrap version tag
37
+ shell: bash
38
+ run: |
39
+ git fetch origin --tags --force
40
+
41
+ if git tag --list 'v*' | grep -q .; then
42
+ echo "Release tag already exists; bootstrap skipped."
43
+ exit 0
44
+ fi
45
+
46
+ PACKAGE_VERSION="$(node -p "require('./package.json').version")"
47
+ BASE_TAG="v${PACKAGE_VERSION}"
48
+
49
+ WORKFLOW_COMMIT="$(
50
+ git log \
51
+ --reverse \
52
+ --format='%H' \
53
+ -- .github/workflows/package.yml |
54
+ head -n 1
55
+ )"
56
+
57
+ if [ -n "$WORKFLOW_COMMIT" ] &&
58
+ git rev-parse "${WORKFLOW_COMMIT}^" >/dev/null 2>&1; then
59
+ BASE_COMMIT="$(git rev-parse "${WORKFLOW_COMMIT}^")"
60
+ else
61
+ BASE_COMMIT="$(git rev-list --max-parents=0 HEAD)"
62
+ fi
63
+
64
+ echo "Creating baseline tag: ${BASE_TAG}"
65
+ echo "Baseline commit: ${BASE_COMMIT}"
66
+
67
+ git tag "$BASE_TAG" "$BASE_COMMIT"
68
+
69
+ - name: Run semantic-release
70
+ env:
71
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
72
+ NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
73
+ run: yarn semantic-release --repository-url "https://github.com/${{ github.repository }}.git"
package/.nuxtignore ADDED
@@ -0,0 +1,6 @@
1
+ layouts/foo.vue
2
+ layouts/*-ignore.vue
3
+ pages/bar.vue
4
+ pages/ignore/*.vue
5
+ middleware/foo/*.js
6
+ !middleware/foo/bar.js
package/.releaserc.js ADDED
@@ -0,0 +1,132 @@
1
+ const emojiMap = {
2
+ build: { icon: '๐Ÿ› ๏ธ', section: '๐Ÿ› ๏ธ Build System' },
3
+ chore: { icon: '๐Ÿงน', section: '๐Ÿงน Chores' },
4
+ ci: { icon: '๐Ÿค–', section: '๐Ÿค– Continuous Integration' },
5
+ docs: { icon: '๐Ÿ“š', section: '๐Ÿ“š Documentation' },
6
+ feat: { icon: 'โœจ', section: 'โœจ Features' },
7
+ fix: { icon: '๐Ÿ›', section: '๐Ÿ› Bug Fixes' },
8
+ perf: { icon: 'โšก', section: 'โšก Performance Improvements' },
9
+ refactor: { icon: '๐Ÿ”„', section: '๐Ÿ”„ Code Refactoring' },
10
+ revert: { icon: 'โช', section: 'โช Reverts' },
11
+ style: { icon: '๐ŸŽจ', section: '๐ŸŽจ Code Style' },
12
+ test: { icon: '๐Ÿ“‹', section: '๐Ÿ“‹ Tests' },
13
+ wip: { icon: 'โณ', section: 'โณ Work in progress' },
14
+ breaking: { icon: '๐Ÿ’ฅ', section: '๐Ÿ’ฅ Breaking Changes' },
15
+ };
16
+
17
+ function transform(commit) {
18
+ if (commit.message.startsWith('Merge ')) {
19
+ return null;
20
+ }
21
+ const type = commit.type;
22
+ const map = emojiMap[type];
23
+ if (!map || type === 'chore') {
24
+ return null;
25
+ }
26
+ const newCommit = { ...commit };
27
+ newCommit.type = map.section;
28
+ newCommit.emoji = map.icon;
29
+
30
+ if (newCommit.notes?.length) {
31
+ newCommit.notes = newCommit.notes.map((note) => ({
32
+ ...note,
33
+ title: emojiMap.breaking.section,
34
+ }));
35
+ }
36
+
37
+ return newCommit;
38
+ }
39
+
40
+ export default {
41
+ branches: ['main'],
42
+ plugins: [
43
+ [
44
+ '@semantic-release/commit-analyzer',
45
+ {
46
+ preset: 'conventionalcommits',
47
+ parserOpts: {
48
+ noteKeywords: ['BREAKING CHANGE', 'BREAKING CHANGES'],
49
+ mergePattern: /^Merge pull request #(\d+) from (.*)$/,
50
+ mergeCorrespondence: ['pr', 'source'],
51
+ },
52
+ releaseRules: [
53
+ { breaking: true, release: 'major' },
54
+ { type: 'feat', release: 'minor' },
55
+ { type: 'fix', release: 'patch' },
56
+ { type: 'perf', release: 'patch' },
57
+ { type: 'refactor', release: false },
58
+ { type: 'test', release: false },
59
+ { type: 'build', release: false },
60
+ { type: 'ci', release: false },
61
+ { type: 'style', release: false },
62
+ { type: 'docs', release: false },
63
+ { type: 'revert', release: false },
64
+ { type: 'chore', release: false },
65
+ { type: 'wip', release: false },
66
+ ],
67
+ preMajor: false,
68
+ },
69
+ ],
70
+ [
71
+ '@semantic-release/release-notes-generator',
72
+ {
73
+ preset: 'conventionalcommits',
74
+ parserOpts: {
75
+ noteKeywords: ['BREAKING CHANGE', 'BREAKING CHANGES'],
76
+ mergePattern: null,
77
+ mergeCorrespondence: [],
78
+ },
79
+ writerOpts: {
80
+ transform,
81
+ headerPartial: '## ๐Ÿ“ฆ Release {{version}} ({{date}})\n',
82
+ mainTemplate:
83
+ '{{> header}}\n' +
84
+ '{{#each noteGroups}}' +
85
+ '### {{title}}\n' +
86
+ '{{#each notes}}- {{text}}\n{{/each}}' +
87
+ '{{#unless @last}}\n{{/unless}}' +
88
+ '{{/each}}' +
89
+ '{{#each commitGroups}}' +
90
+ '### {{title}}\n' +
91
+ '{{#each commits}}{{> commit root=@root}}{{/each}}' +
92
+ '{{#unless @last}}\n{{/unless}}' +
93
+ '{{/each}}',
94
+ commitPartial: '- {{subject}}\n',
95
+ groupBy: 'type',
96
+ commitGroupsSort: 'title',
97
+ commitsSort: ['subject'],
98
+ noteGroupsSort: 'title',
99
+ },
100
+ },
101
+ ],
102
+ [
103
+ '@semantic-release/changelog',
104
+ {
105
+ changelogFile: 'CHANGELOG.md',
106
+ },
107
+ ],
108
+ [
109
+ '@semantic-release/npm',
110
+ {
111
+ npmPublish: true,
112
+ pkgRoot: '.',
113
+ pkgAccess: 'public',
114
+ },
115
+ ],
116
+ [
117
+ '@semantic-release/git',
118
+ {
119
+ assets: ['CHANGELOG.md', 'package.json'],
120
+ // biome-ignore lint/suspicious/noTemplateCurlyInString: template will not work at github actions
121
+ message:
122
+ 'chore(release): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}',
123
+ },
124
+ ],
125
+ [
126
+ '@semantic-release/github',
127
+ {
128
+ assets: ['@myelophone-nuxt.zip'],
129
+ },
130
+ ],
131
+ ],
132
+ };