@nuxtus/nuxtus 1.1.1 → 1.3.1

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/CHANGELOG.md CHANGED
@@ -1,8 +1,86 @@
1
1
  Changelog
2
2
 
3
+ ## [1.3.1](https://github.com/nuxtus/nuxtus/compare/v1.3.0...v1.3.1) (2022-08-17)
4
+
5
+
6
+ ### Bug Fixes
7
+
8
+ * :bug: Transpile heroicons for Nuxt 3rc8 compatibility ([3f56efa](https://github.com/nuxtus/nuxtus/commit/3f56efaacfdb5537907acd80b38fa3fe6e1ce12d))
9
+
10
+ # [1.3.0](https://github.com/nuxtus/nuxtus/compare/v1.2.0...v1.3.0) (2022-07-28)
11
+
12
+
13
+ ### Features
14
+
15
+ * :sparkles: use @nuxtus/nuxt-module instead of hard-coded plugins and api endpoints ([c34a601](https://github.com/nuxtus/nuxtus/commit/c34a601e107be87649ead02ab99072c40b1a9922))
16
+
17
+ # [1.2.0](https://github.com/nuxtus/nuxtus/compare/v1.1.1...v1.2.0) (2022-07-21)
18
+
19
+
20
+ ### Features
21
+
22
+ * :zap: directus and nuxt server and port are now configurable ([96bda8b](https://github.com/nuxtus/nuxtus/commit/96bda8bfdd03f2cdca5994b5814070480121e904))
23
+
3
24
  ## [1.1.1](https://github.com/nuxtus/nuxtus/compare/v1.1.0...v1.1.1) (2022-07-11)
4
25
 
5
26
 
6
27
  ### Bug Fixes
7
28
 
8
29
  * :bug: update @nuxtus/generator to 1.1.2 ([fa02fba](https://github.com/nuxtus/nuxtus/commit/fa02fbae0e00b4dc6c59f3336cb321b43e0d7227))
30
+
31
+
32
+ ## 1.1.0
33
+
34
+ - Automatically generate types from collections
35
+ - Tidy up server end point
36
+ - Automatically open browser window on Nuxt start
37
+
38
+ ## 1.0.6
39
+
40
+ - Add server api endpoint to be used as Directus webhook
41
+ - Update to Directus 9.13.0
42
+ - Update readme with details on using Collections hook
43
+
44
+ ## 1.0.5
45
+
46
+ - Update nuxtus-cli to v1.0.3
47
+
48
+ ## 1.0.4
49
+
50
+ - Hard delete the data.db file
51
+ - Update @nuxtus-cli to 1.0.2
52
+ - Update Nuxt to 3.0.0-rc.4
53
+ - Add client, server and start npm scripts
54
+
55
+ ## 1.0.3
56
+
57
+ - Add Directus CLI to package.json so `npm run cli` works
58
+ - Update getting started instructions to include database migrations
59
+ - Do not upload the sqlite database, create a new one
60
+ - Add default user/password to Directus .env
61
+ - Add @nuxtus/cli to dev dependencies
62
+ - Update `pages/docs.vue` with details on using @nuxtus/cli
63
+
64
+ ## 1.0.2
65
+
66
+ - Separate create-nuxt command
67
+
68
+ ## 1.0.1
69
+
70
+ - Correct create command in readme
71
+ - Add details on using Nuxtus CLI
72
+ - Update feedback when installing dependencies
73
+
74
+ ## 1.0.0
75
+
76
+ - Add `npx nuxtus-create` command
77
+
78
+ ## 0.0.2
79
+
80
+ - Move to using [nuxt-directus package](https://nuxt-directus.netlify.app/)
81
+ - Add @nuxtus/cli
82
+ - Add .DS_Store to gitignore
83
+
84
+ ## 0.0.1
85
+
86
+ Initial alpha release.
package/README.md CHANGED
@@ -1,106 +1,13 @@
1
1
  # Nuxtus
2
2
 
3
- A website w/ CMS boilerplate using [Directus](https://directus.io) for backend CMS and [Nuxt](https://nuxtjs.org) (w/ Tailwind CSS) for frontend that can also **automagically** create pages when you create Directus collections.
3
+ A website w/ CMS boilerplate and set of utilities for using [Directus](https://directus.io) for backend CMS and [Nuxt](https://nuxtjs.org) (w/ Tailwind CSS) for frontend. Can also **automagically** create *typed* pages when you create Directus collections.
4
4
 
5
+ > Can be used as a boilerplate or a suite of utility tools.
5
6
 
6
- https://user-images.githubusercontent.com/324026/175020548-57ee94b3-dee4-4b12-a8c8-6c0f1a94fab4.mov
7
+ For more details visit [nuxtus.com](https://nuxtus.com) or [read the documentation](https://docs.nuxtus.com)
7
8
 
9
+ https://user-images.githubusercontent.com/324026/175020548-57ee94b3-dee4-4b12-a8c8-6c0f1a94fab4.mov
8
10
 
9
11
  The purpose of this template is to be a quick-start for developing a website with Nuxt.js using Directus as the backend. The end result can be a static website or dynamically pull data from Directus depending on your preference.
10
12
 
11
13
  It also includes [nuxtus/cli]("https://github.com/nuxtus/cli") which provides a command line interface for quickly creating multiple index/detail pages from any Directus collections.
12
-
13
- https://user-images.githubusercontent.com/324026/175452950-46bd51a6-3fd9-441d-80fd-c6bbfaa01929.mp4
14
-
15
- ## Features
16
-
17
- - [Directus](https://directus.io)
18
- - [Nuxt](https://nuxtjs.org)
19
- - [Tailwind CSS](https://tailwindcss.nuxtjs.org/)
20
- - [Headless UI](https://headlessui.dev/)
21
- - [HeroIcons](https://heroicons.com/)
22
- - [Google Fonts](https://github.com/nuxt-community/google-fonts-module)
23
- - [Nuxtus CLI](https://github.com/nuxtus/cli)
24
- - Typescript types
25
-
26
- ## Quickstart (preferred)
27
-
28
- ```bash
29
- $ npx create-nuxtus app-name
30
- ```
31
-
32
- > Replace `app-name` with the name of your website or application.
33
-
34
- Nuxtus will automatically migrate the Directus DB if you are using SQLite. Otherwise follow the directions below to manually configure your database and get started.
35
-
36
- Your project will contain 2 folders server (Directus) and client (Nuxt).
37
-
38
- ### Directus
39
-
40
- By default Nuxtus uses an SQLite database. If you wish to use an alternative database simply edit the `server/.env` file as suggested in the [Directus documentation](https://docs.directus.io/configuration/config-options/#database) then follow the steps below.
41
-
42
- ```bash
43
- $ cd server
44
-
45
- # From within the root of the project
46
- $ npm run cli bootstrap
47
- ```
48
-
49
- ### Nuxt
50
-
51
- No set up for Nuxt is required.
52
-
53
- ### Starting Nuxtus
54
-
55
- From inside your project folder:
56
-
57
- ```bash
58
- $ npm start
59
- ```
60
-
61
- ### Automatically creating pages
62
-
63
- **Nuxtus automagically creates Nuxt pages as soon as you create a new Directus collection!**
64
-
65
- Nuxtus includes a POST endpoint located /api/directus/collection that will run in development. If you used `npx create-nuxtus` to create your Nuxtus project and selected "yes" to automatically creating pages from Directus then this is already configured in Directus for you.
66
-
67
- Collections are also typed automatically, simply prepend "Items" to the collection name as per below:
68
-
69
- ```typescript
70
- import { components } from "../interfaces/nuxtus";
71
- type Test = components["schemas"]["ItemsTest"];
72
- ```
73
-
74
- > Because OpenAPI schemas may have invalid TypeScript characters as names, the square brackets are a safe way to access every property.
75
-
76
- ### Manually creating pages
77
-
78
- Nuxtus includes Nuxtus CLI which will generate listing and view pages of any Directus collection on demand. To use it:
79
-
80
- 1. Log in to Directus ([http://0.0.0.0:8055/admin/login](http://0.0.0.0:8055/admin/login)) and [create a collection](https://docs.directus.io/configuration/data-model/#creating-a-collection)
81
- 2. From the client folder (`cd client`) run `nuxtus create` and follow the prompts
82
-
83
- Pages will be created for each collection you select in `clients/pages`. These are a starting point for you to customise.
84
-
85
- For more details on [Nuxtus CLI](https://github.com/nuxtus/cli) click [here](https://github.com/nuxtus/cli).
86
-
87
- ## Production deployment
88
-
89
- By default Directus is configured to accept CORS from any origin. Nuxtus suggests modifying this for your production deployment.
90
-
91
- If you chose to install, remove the Nuxtus hook extension by deleting the folder `server/extensions/hooks/nuxtus-hook` from your project.
92
-
93
- ## Manual setup
94
-
95
- Clone this repo onto your local machine, remove the remote git origin and add a new one. Then follow the [manual install instructions](#directus).
96
-
97
- > For further instructions visit `[http://localhost:3000](http://localhost:3000)`
98
-
99
- ## Acknowledgements
100
-
101
- Nuxtus wouldn't be possible without the following amazing technologies:
102
-
103
- [Directus](https://directus.io)
104
- [Nuxt](https://nuxt.js.org)
105
- [Nuxt-Directus](https://nuxt-directus.netlify.app/)
106
- [OpenApi Typescript](https://www.npmjs.com/package/openapi-typescript)
package/TODO CHANGED
@@ -10,16 +10,29 @@ Todo:
10
10
  ✔ Query database use (via interactive shell) in create-app.js @done(22-06-21 20:26)
11
11
  ✔ Check node version for compatibility in create-app.js @done(22-06-16 22:07)
12
12
  ☐ Look at https://renovatebot.com/
13
- Documentation: https://docusaurus.io/ or https://vuepress.vuejs.org/
13
+ Documentation: https://docusaurus.io/ or https://vuepress.vuejs.org/ @done(22-08-11 16:24)
14
14
  ✔ Create Directus flow via Directus API @done(22-07-04 17:46)
15
15
  ☐ Add ability to automatically update .env for none SQLite databases
16
- ☐ Can I HMR when adding new pages/routes? - requires Nuxt to fix bug
17
- Add all questions in create-app to start of process for better user flow
18
- Allow use of different ports/URLs for Directus and Nuxt (currently hard-coded)
19
- Add "types" to cli to update types from Directus when not using hook
20
- ☐ Make opening browser window on start optional using npm run start
21
- Make sure separate packages can be used without Nuxt Boilerplate if required
22
- Console.log messages from directus extension should be formatted like other directus messages
16
+ ☐ Can I HMR when adding new pages/routes? - https://github.com/nuxt/framework/issues/5766 - awaiting rc.7
17
+ Add all questions in create-app to start of process for better user flow @done(22-07-13 19:15)
18
+ Allow use of different ports/URLs for Directus and Nuxt (currently hard-coded) @done(22-07-13 20:42)
19
+ Add "types" to cli to update types from Directus when not using hook - use @directus/sdk for /oas now on all apps @done(22-07-18 17:01)
20
+ ☐ Make opening browser window on start optional using npm run start (not possible)
21
+ Look at moving login and server/api stuff to a Nuxt module @done(22-07-28 19:37)
22
+ Make sure separate packages can be used without Nuxt Boilerplate if required @done(22-07-28 19:37)
23
+ ✔ Console.log messages from directus extension should be formatted like other directus messages @done(22-07-19 20:46)
24
+ ✔ Add default Directus login to end of create-nuxtus script @done(22-07-19 17:30)
23
25
  ☐ When adding a new collection the new page triggers a nuxt restart then directus tries to send a field.create which fails. We get around this by getting the create field first but Directus still returns a 404 for the second request.
24
26
  ✔ interfaces/nuxtus.ts should not be in .gitignore other than during my development (remove in create-nuxtus?) @done(22-07-11 12:52)
25
- Add test coverage (done: generator, nuxtus-cli) @started(22-07-11 17:19)
27
+ Add test coverage (done: generator, nuxtus-cli) @started(22-07-11 17:19) @done(22-07-14 08:03) @lasted(2d14h44m55s)
28
+ ☐ GraphQL?
29
+ ☐ Websockets (https://github.com/br41nslug/directus-websocket-subscribe)
30
+ ✔ Upgrade nuxt-directus @done(22-07-17 11:32)
31
+ ☐ Add ability to use Directus static token instead of login (requires nuxt-directus v2.3.0) - UPDATE DOCS cli.md too!
32
+ ☐ Get added to some nuxt/directus lists etc.
33
+ ☐ Directus and Nuxt project names in package.json based on project create name.
34
+ ☐ Add Directus and Nuxt URL to create-nuxtus script
35
+ ☐ Create a new package.json instead of using nuxtus one (remove all semantic release packages)
36
+ ☐ Remove Google Fonts module (replace with fonts.bunny.net?)
37
+ ☐ Use directus install scripts (then copy hook) instead of npm install - this will sort out DB automatically!
38
+ ☐ Nuxtus website should actually pull data from Directus!
@@ -11,17 +11,23 @@ export default defineNuxtConfig({
11
11
  ],
12
12
  "@nuxtjs/tailwindcss",
13
13
  ],
14
- modules: ["nuxt-directus"],
14
+ modules: ["nuxt-directus", "@nuxtus/nuxt-module"],
15
15
  googleFonts: {
16
16
  families: {
17
17
  Inter: true,
18
18
  },
19
19
  },
20
+ build: {
21
+ transpile: ['@heroicons/vue']
22
+ },
20
23
  tailwindcss: {
21
24
  // Options
22
25
  jit: true,
23
26
  },
24
27
  directus: {},
28
+ nuxtus: {
29
+ authDirectus: true,
30
+ },
25
31
  publicRuntimeConfig: {
26
32
  directusEmail: "",
27
33
  directusPassword: "",
@@ -9,14 +9,13 @@
9
9
  "devDependencies": {
10
10
  "@nuxtjs/google-fonts": "^1.3.0",
11
11
  "@nuxtjs/tailwindcss": "^5.0.4",
12
- "@nuxtus/cli": "^1.0.7",
13
- "@nuxtus/generator": "1.1.2",
14
- "nuxt": "3.0.0-rc.4",
15
- "openapi-typescript": "^5.4.1"
12
+ "@nuxtus/cli": "^1.1.2",
13
+ "@nuxtus/nuxt-module": "^1.0.3",
14
+ "nuxt": "^3.0.0-rc.8"
16
15
  },
17
16
  "dependencies": {
18
17
  "@headlessui/vue": "^1.6.1",
19
18
  "@heroicons/vue": "^1.0.6",
20
- "nuxt-directus": "^2.1.0"
19
+ "nuxt-directus": "^2.3.0"
21
20
  }
22
21
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@nuxtus/nuxtus",
3
3
  "description": "Directus/Nuxt boilerplate with Tailwind CSS.",
4
- "version": "1.1.1",
4
+ "version": "1.3.1",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "git+https://github.com/nuxtus/nuxtus.git"
package/server/.env CHANGED
@@ -69,3 +69,7 @@ EMAIL_SENDMAIL_PATH="/usr/sbin/sendmail"
69
69
  ## Default User
70
70
  ADMIN_EMAIL="admin@example.com"
71
71
  ADMIN_PASSWORD="password"
72
+
73
+ ####################################################################################################
74
+ ## NUXT SERVER
75
+ NUXT_SERVER="http://localhost:3000"
@@ -11,7 +11,7 @@
11
11
  "author": "",
12
12
  "license": "ISC",
13
13
  "dependencies": {
14
- "directus": "^9.14.1",
14
+ "directus": "^9.15.1",
15
15
  "sqlite3": "^5.0.8"
16
16
  }
17
17
  }
package/changelog.md DELETED
@@ -1,57 +0,0 @@
1
- # Changelog
2
-
3
- ## 1.1.0
4
-
5
- - Automatically generate types from collections
6
- - Tidy up server end point
7
- - Automatically open browser window on Nuxt start
8
-
9
- ## 1.0.6
10
-
11
- - Add server api endpoint to be used as Directus webhook
12
- - Update to Directus 9.13.0
13
- - Update readme with details on using Collections hook
14
-
15
- ## 1.0.5
16
-
17
- - Update nuxtus-cli to v1.0.3
18
-
19
- ## 1.0.4
20
-
21
- - Hard delete the data.db file
22
- - Update @nuxtus-cli to 1.0.2
23
- - Update Nuxt to 3.0.0-rc.4
24
- - Add client, server and start npm scripts
25
-
26
- ## 1.0.3
27
-
28
- - Add Directus CLI to package.json so `npm run cli` works
29
- - Update getting started instructions to include database migrations
30
- - Do not upload the sqlite database, create a new one
31
- - Add default user/password to Directus .env
32
- - Add @nuxtus/cli to dev dependencies
33
- - Update `pages/docs.vue` with details on using @nuxtus/cli
34
-
35
- ## 1.0.2
36
-
37
- - Separate create-nuxt command
38
-
39
- ## 1.0.1
40
-
41
- - Correct create command in readme
42
- - Add details on using Nuxtus CLI
43
- - Update feedback when installing dependencies
44
-
45
- ## 1.0.0
46
-
47
- - Add `npx nuxtus-create` command
48
-
49
- ## 0.0.2
50
-
51
- - Move to using [nuxt-directus package](https://nuxt-directus.netlify.app/)
52
- - Add @nuxtus/cli
53
- - Add .DS_Store to gitignore
54
-
55
- ## 0.0.1
56
-
57
- Initial alpha release.
@@ -1,12 +0,0 @@
1
- export default defineNuxtPlugin(async (nuxtApp) => {
2
- try {
3
- const config = useRuntimeConfig()
4
- const { login } = useDirectusAuth()
5
- await login({
6
- email: config.public.directusEmail,
7
- password: config.public.directusPassword,
8
- })
9
- } catch (error) {
10
- console.error(error)
11
- }
12
- })
@@ -1,17 +0,0 @@
1
- import { createPage } from "@nuxtus/generator"
2
-
3
- export default defineEventHandler(async (event) => {
4
- if (process.env.NODE_ENV !== "production") {
5
- const body = await useBody(event)
6
- try {
7
- const collection = body.collection
8
- createPage(collection, body.singleton)
9
- } catch (err) {
10
- console.error(err.message)
11
- throw new Error("Unable to create page: " + err.message)
12
- }
13
- return {
14
- api: "ok",
15
- }
16
- }
17
- })
@@ -1,32 +0,0 @@
1
- import axios from "axios"
2
- import fs from "fs"
3
- import openapiTS from "openapi-typescript"
4
-
5
- export default defineEventHandler(async (event) => {
6
- if (process.env.NODE_ENV !== "production") {
7
- const config = useRuntimeConfig()
8
- // TODO: Can't seem to share login from directusLogin (currently client only plugin)
9
- try {
10
- const { data } = await axios.post("http://localhost:8055/auth/login", {
11
- email: config.public.directusEmail,
12
- password: config.public.directusPassword,
13
- })
14
- axios.defaults.headers.common[
15
- "Authorization"
16
- ] = `Bearer ${data.data.access_token}`
17
- } catch (err) {
18
- console.error("Failed to login to Directus: " + err.message)
19
- throw err
20
- }
21
- const openapi = await axios.get("http://localhost:8055/server/specs/oas")
22
- // console.log(JSON.stringify(openapi.data.components.schemas))
23
- const types = await openapiTS(openapi.data)
24
- if (!fs.existsSync("interfaces")) {
25
- fs.mkdirSync("interfaces")
26
- }
27
- fs.writeFileSync("interfaces/nuxtus.ts", types)
28
- return {
29
- api: "ok",
30
- }
31
- }
32
- })