@dargmuesli/nuxt-vio 1.0.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.
package/README.md ADDED
@@ -0,0 +1,73 @@
1
+ # Nuxt Layer Starter
2
+
3
+ Create Nuxt extendable layer with this GitHub template.
4
+
5
+ ## Setup
6
+
7
+ Make sure to install the dependencies:
8
+
9
+ ```bash
10
+ pnpm install
11
+ ```
12
+
13
+ ## Working on your theme
14
+
15
+ Your theme is at the root of this repository, it is exactly like a regular Nuxt project, except you can publish it on NPM.
16
+
17
+ The `.playground` directory should help you on trying your theme during development.
18
+
19
+ Running `pnpm dev` will prepare and boot `.playground` directory, which imports your theme itself.
20
+
21
+ ## Distributing your theme
22
+
23
+ Your Nuxt layer is shaped exactly the same as any other Nuxt project, except you can publish it on NPM.
24
+
25
+ To do so, you only have to check if `files` in `package.json` are valid, then run:
26
+
27
+ ```bash
28
+ npm publish --access public
29
+ ```
30
+
31
+ Once done, your users will only have to run:
32
+
33
+ ```bash
34
+ npm install --save your-theme
35
+ ```
36
+
37
+ Then add the dependency to their `extends` in `nuxt.config`:
38
+
39
+ ```ts
40
+ defineNuxtConfig({
41
+ extends: 'your-theme'
42
+ })
43
+ ```
44
+
45
+ ## Development Server
46
+
47
+ Start the development server on http://localhost:3000
48
+
49
+ ```bash
50
+ pnpm dev
51
+ ```
52
+
53
+ ## Production
54
+
55
+ Build the application for production:
56
+
57
+ ```bash
58
+ pnpm build
59
+ ```
60
+
61
+ Or statically generate it with:
62
+
63
+ ```bash
64
+ pnpm generate
65
+ ```
66
+
67
+ Locally preview production build:
68
+
69
+ ```bash
70
+ pnpm preview
71
+ ```
72
+
73
+ Checkout the [deployment documentation](https://v3.nuxtjs.org/docs/deployment) for more information.
@@ -0,0 +1,47 @@
1
+ export const useFavicons = () => {
2
+ useHead({
3
+ link: [
4
+ {
5
+ href: '/assets/static/favicon/apple-touch-icon.png?v=bOXMwoKlJr',
6
+ rel: 'apple-touch-icon',
7
+ sizes: '180x180',
8
+ },
9
+ {
10
+ href: '/assets/static/favicon/favicon-16x16.png?v=bOXMwoKlJr',
11
+ rel: 'icon',
12
+ sizes: '16x16',
13
+ type: 'image/png',
14
+ },
15
+ {
16
+ href: '/assets/static/favicon/favicon-32x32.png?v=bOXMwoKlJr',
17
+ rel: 'icon',
18
+ sizes: '32x32',
19
+ type: 'image/png',
20
+ },
21
+ {
22
+ href: '/favicon.ico',
23
+ rel: 'icon',
24
+ type: 'image/x-icon',
25
+ },
26
+ {
27
+ href: '/assets/static/favicon/site.webmanifest?v=bOXMwoKlJr',
28
+ rel: 'manifest',
29
+ },
30
+ {
31
+ color: '#202020',
32
+ href: '/assets/static/favicon/safari-pinned-tab.svg?v=bOXMwoKlJr',
33
+ rel: 'mask-icon',
34
+ },
35
+ {
36
+ href: '/favicon.ico?v=bOXMwoKlJr',
37
+ rel: 'shortcut icon',
38
+ },
39
+ ],
40
+ meta: [
41
+ {
42
+ content: '/assets/static/favicon/browserconfig.xml?v=bOXMwoKlJr',
43
+ name: 'msapplication-config',
44
+ },
45
+ ],
46
+ })
47
+ }
@@ -0,0 +1,9 @@
1
+ export const useHost = () => {
2
+ if (process.server) {
3
+ const event = useRequestEvent()
4
+
5
+ return getHost(event.node.req)
6
+ } else {
7
+ return location.host
8
+ }
9
+ }
package/nuxt.config.ts ADDED
@@ -0,0 +1,3 @@
1
+ // https://v3.nuxtjs.org/api/configuration/nuxt.config
2
+ export default defineNuxtConfig({
3
+ })
package/package.json ADDED
@@ -0,0 +1,32 @@
1
+ {
2
+ "name": "@dargmuesli/nuxt-vio",
3
+ "version": "1.0.0",
4
+ "type": "module",
5
+ "publishConfig": {
6
+ "access": "public"
7
+ },
8
+ "engines": {
9
+ "node": "19"
10
+ },
11
+ "packageManager": "pnpm@8.0.0",
12
+ "files": [
13
+ "composables",
14
+ "server",
15
+ "utils",
16
+ "nuxt.config.ts"
17
+ ],
18
+ "main": "./nuxt.config.ts",
19
+ "scripts": {
20
+ "dev": "nuxi prepare & nuxi dev .playground",
21
+ "build": "nuxi build .playground",
22
+ "generate": "nuxi generate .playground",
23
+ "preview": "nuxi preview .playground",
24
+ "lint": "eslint ."
25
+ },
26
+ "devDependencies": {
27
+ "@nuxtjs/eslint-config-typescript": "12.0.0",
28
+ "eslint": "8.37.0",
29
+ "nuxt": "3.3.3",
30
+ "typescript": "5.0.3"
31
+ }
32
+ }
@@ -0,0 +1,7 @@
1
+ import { defineEventHandler } from 'h3'
2
+
3
+ export default defineEventHandler((event) => {
4
+ const { res } = event.node
5
+ res.setHeader('Content-Type', 'text/plain')
6
+ res.end('OK')
7
+ })
@@ -0,0 +1,13 @@
1
+ import { defineEventHandler } from 'h3'
2
+
3
+ export default defineEventHandler((event) => {
4
+ const { res } = event.node
5
+
6
+ res.setHeader('Permissions-Policy', '')
7
+
8
+ // // Disabled until there is better browser support (https://caniuse.com/?search=report-to)
9
+ // res.setHeader(
10
+ // 'Report-To',
11
+ // '{"group":"default","max_age":31536000,"endpoints":[{"url":"https://dargmuesli.report-uri.com/a/d/g"}],"include_subdomains":true}'
12
+ // )
13
+ })
@@ -0,0 +1 @@
1
+ export const CYPRESS_BASE_URL = 'http://localhost:3000'
@@ -0,0 +1,7 @@
1
+ import { IncomingMessage } from 'node:http'
2
+
3
+ export const getHost = (req: IncomingMessage) => {
4
+ if (!req.headers.host) throw new Error('Host header is not given!')
5
+
6
+ return req.headers.host
7
+ }
@@ -0,0 +1,2 @@
1
+ export const append = (path: string, pathToAppend: string) =>
2
+ path + (path.endsWith('/') ? '' : '/') + pathToAppend
@@ -0,0 +1,7 @@
1
+ export const isTesting = () => process.client && window.Cypress
2
+
3
+ declare global {
4
+ interface Window {
5
+ Cypress: any
6
+ }
7
+ }