From ff730e5414053edc65cfade816117ca7c98172d7 Mon Sep 17 00:00:00 2001 From: Gary Woodfine Date: Sun, 1 Mar 2026 17:01:12 +0000 Subject: [PATCH 1/6] Add image to README for better visual representation of Nuxstr Comments --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 551671f..8042460 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ Find and replace all on all files (CMD+SHIFT+F): - Package name: @threenine/nuxstr-comments - Description: Nuxstr Comments --> - +![Nuxt Fathom module](https://res.cloudinary.com/threenine-co-uk/image/upload/v1733252921/nuxstr-comments_rk7pig.png) # Nuxstr Comments [![npm version][npm-version-src]][npm-version-href] @@ -14,6 +14,7 @@ Find and replace all on all files (CMD+SHIFT+F): [![License][license-src]][license-href] [![Nuxt][nuxt-src]][nuxt-href] +![]() Enable [nostr protocol](https://nostr.com/) based comment system on your Nuxt 4 based applications. - [✨  Release Notes](/CHANGELOG.md) From 875f8e24acb873dfe25c3c1f62bc0e0adbcec6df Mon Sep 17 00:00:00 2001 From: Gary Woodfine Date: Mon, 2 Mar 2026 23:27:10 +0000 Subject: [PATCH 2/6] Update relay URL for local development, remove 'tseep' from external dependencies, and bump Nuxt-related package versions --- package.json | 6 +++--- playground/nuxt.config.ts | 2 +- src/module.ts | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index f55c58d..9494a34 100644 --- a/package.json +++ b/package.json @@ -41,12 +41,12 @@ "@nuxt/devtools": "^2.6.2", "@nuxt/eslint": "1.9.0", "@nuxt/eslint-config": "^1.9.0", - "@nuxt/kit": "^4.2.1", + "@nuxt/kit": "^4.3.1", "@nuxt/module-builder": "^1.0.2", "@nuxt/schema": "^4.2.1", "@nuxt/scripts": "0.11.10", "@nuxt/test-utils": "^3.19.2", - "@nuxt/ui": "^4.3.0", + "@nuxt/ui": "^4.5.1", "@testing-library/jest-dom": "^6.8.0", "@testing-library/vue": "^8.1.0", "@types/node": "latest", @@ -54,7 +54,7 @@ "changelogen": "^0.6.2", "eslint": "^9.35.0", "jsdom": "^26.1.0", - "nuxt": "^4.2.1", + "nuxt": "^4.3.1", "typescript": "~5.9.2", "vitest": "^3.2.4", "vue-tsc": "^3.0.6" diff --git a/playground/nuxt.config.ts b/playground/nuxt.config.ts index 147ff06..2315e76 100644 --- a/playground/nuxt.config.ts +++ b/playground/nuxt.config.ts @@ -4,6 +4,6 @@ export default defineNuxtConfig({ css: ['~/assets/css/main.css'], compatibilityDate: '2025-08-19', nuxstrComments: { - relays: ['wss://relay.threenine.services'] + relays: ['ws://localhost:10547'] }, }) diff --git a/src/module.ts b/src/module.ts index 2836b37..6b46019 100644 --- a/src/module.ts +++ b/src/module.ts @@ -57,12 +57,12 @@ export default defineNuxtModule({ nuxt.hook('nitro:config', (nitroConfig) => { nitroConfig.externals = nitroConfig.externals || {} nitroConfig.externals.inline = nitroConfig.externals.inline || [] - nitroConfig.externals.inline.push('tseep', 'nostr-tools', 'defu') + nitroConfig.externals.inline.push('nostr-tools', 'defu') }) // Build transpilation (you already had this) nuxt.options.build.transpile = nuxt.options.build.transpile || [] - nuxt.options.build.transpile.push('tseep', 'nostr-tools', 'defu') + nuxt.options.build.transpile.push('nostr-tools', 'defu') // Expose runtime config to plugin nuxt.options.runtimeConfig.public.nuxstrComments = defu(nuxt.options.runtimeConfig.public.nuxstrComments || {}, options) From 55855a057f0a68a21a5271f11cb0dfe19a8a1029 Mon Sep 17 00:00:00 2001 From: Gary Woodfine Date: Tue, 10 Mar 2026 13:53:11 +0000 Subject: [PATCH 3/6] feat(NuxstrComments.vue): add SignInModal component and NIP-07 browser extension support for sign-in --- src/runtime/components/NuxstrComments.vue | 27 +++++----- src/runtime/components/SignInModal.vue | 48 +++++++++++++++++ src/runtime/components/signin/Extension.vue | 59 +++++++++++++++++++++ 3 files changed, 122 insertions(+), 12 deletions(-) create mode 100644 src/runtime/components/SignInModal.vue create mode 100644 src/runtime/components/signin/Extension.vue diff --git a/src/runtime/components/NuxstrComments.vue b/src/runtime/components/NuxstrComments.vue index b8575e4..d211567 100644 --- a/src/runtime/components/NuxstrComments.vue +++ b/src/runtime/components/NuxstrComments.vue @@ -1,12 +1,15 @@ + + diff --git a/src/runtime/components/signin/Extension.vue b/src/runtime/components/signin/Extension.vue new file mode 100644 index 0000000..8a6fa93 --- /dev/null +++ b/src/runtime/components/signin/Extension.vue @@ -0,0 +1,59 @@ + + + From 297175063f8c77510cb5979be47b82ca0baccb23 Mon Sep 17 00:00:00 2001 From: Gary Woodfine Date: Tue, 10 Mar 2026 15:54:47 +0000 Subject: [PATCH 4/6] feat(NuxstrComments.vue): enhance comment subscription with query state events and improve skeleton loading display --- src/runtime/classes/NostrManager.ts | 5 +++- src/runtime/components/NuxstrComments.vue | 26 +++++++++++++++--- src/runtime/components/ScaffoldComment.vue | 27 +++++++++---------- src/runtime/composables/useComments.ts | 31 +++++++++++++--------- src/runtime/composables/useNostr.ts | 4 +-- 5 files changed, 60 insertions(+), 33 deletions(-) diff --git a/src/runtime/classes/NostrManager.ts b/src/runtime/classes/NostrManager.ts index 2154c3c..64b05ca 100644 --- a/src/runtime/classes/NostrManager.ts +++ b/src/runtime/classes/NostrManager.ts @@ -26,13 +26,16 @@ export class NostrManager { return NostrManager.instance } - public subscribe(filter: Filter, onEvent: (event: NToolEvent) => void) { + public subscribe(filter: Filter, onEvent: (event: NToolEvent) => void, onEose?: () => void) { return this.pool.subscribeMany(this.relays, filter, { onevent(event) { if (verifyEvent(event)) { onEvent(event) } }, + oneose() { + if (onEose) onEose() + }, }) } diff --git a/src/runtime/components/NuxstrComments.vue b/src/runtime/components/NuxstrComments.vue index d211567..bddc2d3 100644 --- a/src/runtime/components/NuxstrComments.vue +++ b/src/runtime/components/NuxstrComments.vue @@ -1,15 +1,29 @@