@frigear-nu/account 0.1.3 → 0.2.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/dist/module.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@frigear-nu/account",
3
3
  "configKey": "account",
4
- "version": "0.1.3",
4
+ "version": "0.2.1",
5
5
  "builder": {
6
6
  "@nuxt/module-builder": "1.0.3",
7
7
  "unbuild": "unknown"
package/dist/module.mjs CHANGED
@@ -1,5 +1,10 @@
1
1
  import { defineNuxtModule, createResolver, hasNuxtModule, addImports, addTypeTemplate, addRouteMiddleware, addPlugin, addComponentsDir } from '@nuxt/kit';
2
- import { registerModule, registerTailwindSource, registerLocales, resolvePagePath, addModulePages, defineVirtualRegistry, getBootstrapProviders, addOptionalMenuSource } from '@frigear-nu/module-kit/utils';
2
+ import { registerModule, inlineModuleRuntime, registerTailwindSource, registerLocales, addOptionalImports, resolvePagePath, addModulePages, defineVirtualRegistry, getBootstrapProviders, addOptionalMenuSource } from '@frigear-nu/module-kit/utils';
3
+
4
+ function withAppMiddleware(existing, name) {
5
+ const entries = typeof existing === "string" ? { [existing]: true } : Array.isArray(existing) ? Object.fromEntries(existing.map((middleware) => [middleware, true])) : existing;
6
+ return { [name]: true, ...entries };
7
+ }
3
8
 
4
9
  const module$1 = defineNuxtModule({
5
10
  meta: { name: "@frigear-nu/account", configKey: "account" },
@@ -33,10 +38,17 @@ const module$1 = defineNuxtModule({
33
38
  async setup(options, nuxt) {
34
39
  registerModule("@frigear-nu/account", nuxt);
35
40
  const resolver = createResolver(import.meta.url);
41
+ inlineModuleRuntime(nuxt, resolver);
36
42
  registerTailwindSource(nuxt, resolver.resolve("./runtime/app"));
37
43
  registerLocales(nuxt, resolver.resolve("./runtime/i18n/lang"));
38
44
  const settings = options.settings ?? {};
39
45
  const withMenus = hasNuxtModule("@frigear-nu/menu");
46
+ addOptionalImports(nuxt, "#account/optional", [{
47
+ name: "useMenu",
48
+ available: () => hasNuxtModule("@frigear-nu/menu", nuxt),
49
+ fallback: "undefined",
50
+ fallbackType: "undefined"
51
+ }]);
40
52
  addImports([
41
53
  { name: "useAccount", from: resolver.resolve("./runtime/app/composables/useAccount") },
42
54
  { name: "useAccountNav", from: resolver.resolve("./runtime/app/composables/useAccountNav") }
@@ -104,7 +116,7 @@ export {}
104
116
  const areaRules = nuxt.options.routeRules ||= {};
105
117
  for (const pattern of areaPatterns) {
106
118
  const rule = areaRules[pattern] ?? {};
107
- areaRules[pattern] = { ...rule, appMiddleware: { "account-bootstrap": true, ...rule.appMiddleware } };
119
+ areaRules[pattern] = { ...rule, appMiddleware: withAppMiddleware(rule.appMiddleware, "account-bootstrap") };
108
120
  }
109
121
  addOptionalMenuSource(nuxt, { file: resolver.resolve("./runtime/menus"), menu: "account" });
110
122
  addComponentsDir({
@@ -1,6 +1,7 @@
1
1
  <script setup>
2
2
  import { z } from "zod";
3
3
  import { authApi } from "@frigear-nu/auth/api";
4
+ import { $fetch, computed, reactive, useAction, useModuleT } from "#imports";
4
5
  const props = defineProps({
5
6
  scopes: { type: Array, required: true }
6
7
  });
@@ -1,5 +1,6 @@
1
1
  <script setup>
2
2
  import { z } from "zod";
3
+ import { reactive, useAccount, useAction, useModuleT } from "#imports";
3
4
  const props = defineProps({
4
5
  email: { type: String, required: false }
5
6
  });
@@ -1,4 +1,5 @@
1
1
  <script setup>
2
+ import { computed, useAccountNav, useHead, useModuleT, useRoute } from "#imports";
2
3
  defineSlots();
3
4
  const t = useModuleT("account");
4
5
  const route = useRoute();
@@ -1,4 +1,5 @@
1
1
  <script setup>
2
+ import { computed, useUserSession } from "#imports";
2
3
  const { user } = useUserSession();
3
4
  const role = computed(() => user.value?.role || void 0);
4
5
  const roleLabel = computed(() => role.value && role.value !== "user" ? role.value.charAt(0).toUpperCase() + role.value.slice(1) : void 0);
@@ -1,4 +1,6 @@
1
1
  <script setup>
2
+ import { $fetch, computed, navigateTo, ref, useColorMode, useErrorToast, useLocaleLink, useModuleT, useRoute, useUserSession } from "#imports";
3
+ import { useMenu } from "#account/optional";
2
4
  const props = defineProps({
3
5
  block: { type: Boolean, required: false },
4
6
  collapsed: { type: Boolean, required: false }
@@ -1,5 +1,6 @@
1
1
  <script setup>
2
2
  import { z } from "zod";
3
+ import { reactive, ref, useErrorToast, useModuleT, usePasskeys } from "#imports";
3
4
  const props = defineProps({
4
5
  userName: { type: String, required: true }
5
6
  });
@@ -1,16 +1,19 @@
1
+ import type { ProfileDto } from '@frigear-nu/users/api';
1
2
  export declare const useAccount: () => {
2
3
  updateProfileDetails: (payload: {
3
4
  name?: string;
4
5
  avatar?: string | null;
5
- }) => Promise<unknown>;
6
+ }) => Promise<ProfileDto>;
6
7
  changeEmailAddress: (payload: {
7
8
  email: string;
8
- }) => Promise<unknown>;
9
+ }) => Promise<ProfileDto & {
10
+ verificationRequired: boolean;
11
+ }>;
9
12
  changePassword: (payload: {
10
13
  currentPassword: string;
11
14
  newPassword: string;
12
15
  confirmNewPassword: string;
13
- }) => Promise<unknown>;
14
- pending: any;
15
- error: any;
16
+ }) => Promise<ProfileDto>;
17
+ pending: import("vue").Ref<boolean, boolean>;
18
+ error: import("vue").Ref<string | null, string | null>;
16
19
  };
@@ -1,4 +1,5 @@
1
1
  import { usersApi } from "@frigear-nu/users/api";
2
+ import { $fetch, ref, useUserSession } from "#imports";
2
3
  export const useAccount = () => {
3
4
  const pending = ref(false);
4
5
  const error = ref(null);
@@ -14,7 +14,7 @@ export interface AccountNavItem {
14
14
  * the item the route belongs to. Await it, so the menu is resolved before the page renders on the server.
15
15
  */
16
16
  export declare function useAccountNav(): Promise<{
17
- items: any;
17
+ items: import("vue").ComputedRef<AccountNavItem[]>;
18
18
  links: any;
19
- current: any;
19
+ current: import("vue").ComputedRef<AccountNavItem | undefined>;
20
20
  }>;
@@ -1,3 +1,5 @@
1
+ import { computed, useLocaleLink, useModuleT, useNavLinks, useRuntimeConfig } from "#imports";
2
+ import { useMenu } from "#account/optional";
1
3
  export async function useAccountNav() {
2
4
  const t = useModuleT("account");
3
5
  const pages = useRuntimeConfig().public.account?.pages;
@@ -1,4 +1,5 @@
1
1
  <script setup>
2
+ import { computed, useAccountNav, useHead, useModuleT, useUserSession } from "#imports";
2
3
  defineOptions({ name: "AccountLayout" });
3
4
  const siteLayout = "default";
4
5
  const t = useModuleT("account");
@@ -1,2 +1,2 @@
1
- declare const _default: any;
1
+ declare const _default: import("#app").RouteMiddleware;
2
2
  export default _default;
@@ -1,4 +1,5 @@
1
1
  import { keys } from "#account/bootstrap";
2
+ import { defineNuxtRouteMiddleware, loadBootstrap, useUserSession } from "#imports";
2
3
  export default defineNuxtRouteMiddleware(async () => {
3
4
  if (!keys.length || !useUserSession().loggedIn.value) return;
4
5
  await loadBootstrap("account");
@@ -1,6 +1,7 @@
1
1
  <script setup>
2
2
  import { authApi } from "@frigear-nu/auth/api";
3
3
  import AccountApiTokenSlideover from "../components/Account/AccountApiTokenSlideover.vue";
4
+ import { $fetch, computed, ref, useCachedFetch, useConfirmDialog, useCopyToClipboard, useErrorToast, useFormat, useModuleT, useOverlay, useRequestURL, useRuntimeConfig, useToast } from "#imports";
4
5
  defineOptions({ name: "AccountApiTokensPage" });
5
6
  const t = useModuleT("account.apiTokens");
6
7
  const toast = useToast();
@@ -1,5 +1,6 @@
1
1
  <script setup>
2
2
  import { documentLabel, visibleDocuments } from "../utils/documents";
3
+ import { computed, useModuleT, useNuxtApp, useRuntimeConfig, useUserSession } from "#imports";
3
4
  defineOptions({ name: "AccountDocumentsPage" });
4
5
  const t = useModuleT("account.documents");
5
6
  const { user } = useUserSession();
@@ -1,4 +1,5 @@
1
1
  <script setup>
2
+ import { computed, resolveComponent, useAccountNav, useLocaleLink, useModuleT, useRuntimeConfig, useUserSession } from "#imports";
2
3
  defineOptions({ name: "AccountIndexPage" });
3
4
  const t = useModuleT("account");
4
5
  const { user } = useUserSession();
@@ -1,6 +1,7 @@
1
1
  <script setup>
2
2
  import { z } from "zod";
3
3
  import AccountChangeEmailSlideover from "../components/Account/AccountChangeEmailSlideover.vue";
4
+ import { computed, reactive, ref, useAccount, useAction, useModuleT, useOverlay, useRoute, useToast, useUserSession, watch } from "#imports";
4
5
  defineOptions({ name: "AccountProfilePage" });
5
6
  const t = useModuleT("account.profile");
6
7
  const toast = useToast();
@@ -2,6 +2,7 @@
2
2
  import { z } from "zod";
3
3
  import { authApi } from "@frigear-nu/auth/api";
4
4
  import AccountPasskeySlideover from "../components/Account/AccountPasskeySlideover.vue";
5
+ import { computed, reactive, useAccount, useAction, useCachedFetch, useConfirmDialog, useErrorToast, useFormat, useModuleT, useOverlay, usePasskeys, useRuntimeConfig, useToast, useUserSession } from "#imports";
5
6
  defineOptions({ name: "AccountSecurityPage" });
6
7
  const t = useModuleT("account.security");
7
8
  const toast = useToast();
@@ -1,2 +1,2 @@
1
- declare const _default: any;
1
+ declare const _default: import("#app").Plugin<Record<string, unknown>> & import("#app").ObjectPlugin<Record<string, unknown>>;
2
2
  export default _default;
@@ -1,3 +1,4 @@
1
+ import { defineNuxtPlugin, resetBootstrap, useUserSession, watch } from "#imports";
1
2
  export default defineNuxtPlugin(() => {
2
3
  const { user } = useUserSession();
3
4
  watch(() => user.value?.id ?? null, () => resetBootstrap("account"));
@@ -1,4 +1,5 @@
1
1
  import { defineMenuItem, defineMenuSource, extendMenuItem } from "@frigear-nu/menu/utils";
2
+ import { useRuntimeConfig } from "#imports";
2
3
  export default defineMenuSource(() => {
3
4
  const config = useRuntimeConfig().public.account;
4
5
  if (config?.pages?.index) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@frigear-nu/account",
3
- "version": "0.1.3",
3
+ "version": "0.2.1",
4
4
  "description": "A module for managing the account area (profile, email, password, security) in the main frigear app.",
5
5
  "homepage": "https://docs.frigear.dev/modules/account",
6
6
  "repository": {
@@ -24,10 +24,10 @@
24
24
  "playground"
25
25
  ],
26
26
  "dependencies": {
27
- "@frigear-nu/module-kit": "1.1.3",
28
- "@frigear-nu/auth": "0.1.4",
29
- "@frigear-nu/ui": "0.1.3",
30
- "@frigear-nu/users": "1.1.4",
27
+ "@frigear-nu/module-kit": "1.2.0",
28
+ "@frigear-nu/auth": "0.2.0",
29
+ "@frigear-nu/ui": "0.2.0",
30
+ "@frigear-nu/users": "1.2.0",
31
31
  "@libsql/client": "^0.18.0",
32
32
  "@nuxt/kit": "^4.6.1",
33
33
  "@vueuse/core": "^15.0.0",
@@ -36,9 +36,9 @@
36
36
  "zod": "^4.6.5"
37
37
  },
38
38
  "peerDependencies": {
39
- "@frigear-nu/authorization": "0.1.3",
40
- "@frigear-nu/menu": "0.1.3",
41
- "@frigear-nu/widget": "0.1.3",
39
+ "@frigear-nu/authorization": "0.2.0",
40
+ "@frigear-nu/menu": "0.2.0",
41
+ "@frigear-nu/widget": "0.2.0",
42
42
  "@nuxt/ui": "^4.12.0",
43
43
  "@nuxthub/core": "^0.10.8"
44
44
  },
@@ -57,9 +57,9 @@
57
57
  }
58
58
  },
59
59
  "devDependencies": {
60
- "@frigear-nu/authorization": "0.1.3",
61
- "@frigear-nu/menu": "0.1.3",
62
- "@frigear-nu/widget": "0.1.3",
60
+ "@frigear-nu/authorization": "0.2.0",
61
+ "@frigear-nu/menu": "0.2.0",
62
+ "@frigear-nu/widget": "0.2.0",
63
63
  "@nuxt/devtools": "^3.4.2",
64
64
  "@nuxt/eslint-config": "^1.17.0",
65
65
  "@nuxt/module-builder": "^1.0.3",