@cyberskill/shared 2.19.0 → 2.19.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.
Files changed (28) hide show
  1. package/dist/config/eslint/index.d.ts +5 -0
  2. package/dist/config/vitest/vitest.e2e.cjs +1 -1
  3. package/dist/config/vitest/vitest.e2e.js +1 -1
  4. package/dist/config/vitest/vitest.unit.cjs +1 -1
  5. package/dist/config/vitest/vitest.unit.js +1 -1
  6. package/dist/node/mongo/mongo.type.d.ts +2 -2
  7. package/dist/node/mongo/mongo.util.d.ts +3 -3
  8. package/dist/react/apollo-client/apollo-client.component.cjs +1 -1
  9. package/dist/react/apollo-client/apollo-client.component.d.ts +3 -2
  10. package/dist/react/apollo-client/apollo-client.component.js +12 -12
  11. package/dist/react/apollo-client/apollo-client.type.d.ts +6 -0
  12. package/dist/react/apollo-client/apollo-client.util.cjs +1 -1
  13. package/dist/react/apollo-client/apollo-client.util.js +32 -34
  14. package/dist/react/apollo-client-nextjs/apollo-client-nextjs.component.cjs +1 -1
  15. package/dist/react/apollo-client-nextjs/apollo-client-nextjs.component.d.ts +3 -2
  16. package/dist/react/apollo-client-nextjs/apollo-client-nextjs.component.js +10 -10
  17. package/dist/react/apollo-error/apollo-error.provider.cjs +1 -1
  18. package/dist/react/apollo-error/apollo-error.provider.d.ts +5 -4
  19. package/dist/react/apollo-error/apollo-error.provider.js +21 -15
  20. package/dist/react/apollo-error/apollo-error.type.d.ts +5 -0
  21. package/dist/react/apollo-error/apollo-error.util.cjs +1 -1
  22. package/dist/react/apollo-error/apollo-error.util.d.ts +13 -1
  23. package/dist/react/apollo-error/apollo-error.util.js +15 -7
  24. package/dist/react/apollo-error/index.cjs +1 -1
  25. package/dist/react/apollo-error/index.js +8 -6
  26. package/package.json +32 -33
  27. /package/dist/node_modules/.pnpm/{vitest@4.0.6_@types_debug@4.1.12_@types_node@24.9.2_jiti@2.6.1_jsdom@27.1.0_sass@1.93.3_tsx@4.20.6_yaml@2.8.1 → vitest@4.0.9_@types_debug@4.1.12_@types_node@24.10.1_jiti@2.6.1_jsdom@27.2.0_sass@1.94.0_tsx@4.20.6_yaml@2.8.1}/node_modules/vitest/dist/config.cjs +0 -0
  28. /package/dist/node_modules/.pnpm/{vitest@4.0.6_@types_debug@4.1.12_@types_node@24.9.2_jiti@2.6.1_jsdom@27.1.0_sass@1.93.3_tsx@4.20.6_yaml@2.8.1 → vitest@4.0.9_@types_debug@4.1.12_@types_node@24.10.1_jiti@2.6.1_jsdom@27.2.0_sass@1.94.0_tsx@4.20.6_yaml@2.8.1}/node_modules/vitest/dist/config.js +0 -0
@@ -207,6 +207,7 @@ declare const _default: {
207
207
  DeviceOrientationEvent: false;
208
208
  devicePixelRatio: false;
209
209
  DevicePosture: false;
210
+ DigitalCredential: false;
210
211
  dispatchEvent: false;
211
212
  DisposableStack: false;
212
213
  document: false;
@@ -434,6 +435,7 @@ declare const _default: {
434
435
  IDBKeyRange: false;
435
436
  IDBObjectStore: false;
436
437
  IDBOpenDBRequest: false;
438
+ IDBRecord: false;
437
439
  IDBRequest: false;
438
440
  IDBTransaction: false;
439
441
  IDBVersionChangeEvent: false;
@@ -459,6 +461,7 @@ declare const _default: {
459
461
  InputDeviceInfo: false;
460
462
  InputEvent: false;
461
463
  IntegrityViolationReportBody: false;
464
+ InterestEvent: false;
462
465
  IntersectionObserver: false;
463
466
  IntersectionObserverEntry: false;
464
467
  isSecureContext: false;
@@ -548,6 +551,7 @@ declare const _default: {
548
551
  NavigationCurrentEntryChangeEvent: false;
549
552
  NavigationDestination: false;
550
553
  NavigationHistoryEntry: false;
554
+ NavigationPrecommitController: false;
551
555
  NavigationPreloadManager: false;
552
556
  NavigationTransition: false;
553
557
  navigator: false;
@@ -878,6 +882,7 @@ declare const _default: {
878
882
  SpeechRecognition: false;
879
883
  SpeechRecognitionErrorEvent: false;
880
884
  SpeechRecognitionEvent: false;
885
+ SpeechRecognitionPhrase: false;
881
886
  speechSynthesis: false;
882
887
  SpeechSynthesis: false;
883
888
  SpeechSynthesisErrorEvent: false;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("@vitejs/plugin-react-swc"),i=require("lodash-es"),o=require("../../node_modules/.pnpm/vitest@4.0.6_@types_debug@4.1.12_@types_node@24.9.2_jiti@2.6.1_jsdom@27.1.0_sass@1.93.3_tsx@4.20.6_yaml@2.8.1/node_modules/vitest/dist/config.cjs");function s(e){const r={plugins:[t()],test:{include:["**/*.test.e2e.?(c|m)[jt]s?(x)"],browser:{enabled:!0,provider:"playwright",instances:[{browser:"chromium"},{browser:"firefox"},{browser:"webkit"}]}}};return o.defineConfig(i.merge(r,e))}exports.vitestE2E=s;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("@vitejs/plugin-react-swc"),i=require("lodash-es"),o=require("../../node_modules/.pnpm/vitest@4.0.9_@types_debug@4.1.12_@types_node@24.10.1_jiti@2.6.1_jsdom@27.2.0_sass@1.94.0_tsx@4.20.6_yaml@2.8.1/node_modules/vitest/dist/config.cjs");function s(e){const r={plugins:[t()],test:{include:["**/*.test.e2e.?(c|m)[jt]s?(x)"],browser:{enabled:!0,provider:"playwright",instances:[{browser:"chromium"},{browser:"firefox"},{browser:"webkit"}]}}};return o.defineConfig(i.merge(r,e))}exports.vitestE2E=s;
@@ -1,6 +1,6 @@
1
1
  import t from "@vitejs/plugin-react-swc";
2
2
  import { merge as o } from "lodash-es";
3
- import { defineConfig as i } from "../../node_modules/.pnpm/vitest@4.0.6_@types_debug@4.1.12_@types_node@24.9.2_jiti@2.6.1_jsdom@27.1.0_sass@1.93.3_tsx@4.20.6_yaml@2.8.1/node_modules/vitest/dist/config.js";
3
+ import { defineConfig as i } from "../../node_modules/.pnpm/vitest@4.0.9_@types_debug@4.1.12_@types_node@24.10.1_jiti@2.6.1_jsdom@27.2.0_sass@1.94.0_tsx@4.20.6_yaml@2.8.1/node_modules/vitest/dist/config.js";
4
4
  function f(r) {
5
5
  const e = {
6
6
  plugins: [t()],
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("@vitejs/plugin-react-swc"),n=require("lodash-es"),s=require("../../node_modules/.pnpm/vitest@4.0.6_@types_debug@4.1.12_@types_node@24.9.2_jiti@2.6.1_jsdom@27.1.0_sass@1.93.3_tsx@4.20.6_yaml@2.8.1/node_modules/vitest/dist/config.cjs");function r(e){const t={plugins:[i()],test:{globals:!0,environment:"jsdom",pool:"vmThreads",include:["**/*.test.unit.?(c|m)[jt]s?(x)"],setupFiles:["./vitest.unit.setup.ts"]}};return s.defineConfig(n.merge(t,e))}exports.vitestUnit=r;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("@vitejs/plugin-react-swc"),n=require("lodash-es"),s=require("../../node_modules/.pnpm/vitest@4.0.9_@types_debug@4.1.12_@types_node@24.10.1_jiti@2.6.1_jsdom@27.2.0_sass@1.94.0_tsx@4.20.6_yaml@2.8.1/node_modules/vitest/dist/config.cjs");function r(e){const t={plugins:[i()],test:{globals:!0,environment:"jsdom",pool:"vmThreads",include:["**/*.test.unit.?(c|m)[jt]s?(x)"],setupFiles:["./vitest.unit.setup.ts"]}};return s.defineConfig(n.merge(t,e))}exports.vitestUnit=r;
@@ -1,6 +1,6 @@
1
1
  import i from "@vitejs/plugin-react-swc";
2
2
  import { merge as o } from "lodash-es";
3
- import { defineConfig as n } from "../../node_modules/.pnpm/vitest@4.0.6_@types_debug@4.1.12_@types_node@24.9.2_jiti@2.6.1_jsdom@27.1.0_sass@1.93.3_tsx@4.20.6_yaml@2.8.1/node_modules/vitest/dist/config.js";
3
+ import { defineConfig as n } from "../../node_modules/.pnpm/vitest@4.0.9_@types_debug@4.1.12_@types_node@24.10.1_jiti@2.6.1_jsdom@27.2.0_sass@1.94.0_tsx@4.20.6_yaml@2.8.1/node_modules/vitest/dist/config.js";
4
4
  function u(t) {
5
5
  const e = {
6
6
  plugins: [i()],
@@ -1,11 +1,11 @@
1
1
  import { DeleteResult, Filter, InsertManyResult, InsertOneResult, OptionalUnlessRequiredId, UpdateResult, WithId, Collection, Db } from 'mongodb';
2
- import { AggregatePaginateModel, AggregatePaginateResult, ClientSession, ErrorHandlingMiddlewareFunction, ErrorHandlingMiddlewareWithOption, FilterQuery, InsertManyOptions, PaginateModel, PaginateOptions, PaginateResult, PipelineStage, PopulateOption, PopulateOptions, PostMiddlewareFunction, PreMiddlewareFunction, PreSaveMiddlewareFunction, ProjectionType, QueryOptions, QueryWithHelpers, Schema, SchemaDefinition, UpdateQuery, default as mongoose, Document, Model } from 'mongoose';
2
+ import { AggregatePaginateModel, AggregatePaginateResult, ClientSession, ErrorHandlingMiddlewareFunction, ErrorHandlingMiddlewareWithOption, FilterQuery, InsertManyOptions, PaginateModel, PaginateOptions, PaginateResult, PipelineStage, PopulateOption, PopulateOptions, PostMiddlewareFunction, PreMiddlewareFunction, PreSaveMiddlewareFunction, ProjectionType, QueryOptions, QueryWithHelpers, Schema, SchemaDefinition, UpdateQuery, UpdateWriteOpResult, default as mongoose, Document, Model } from 'mongoose';
3
3
  export declare class C_Db extends Db {
4
4
  }
5
5
  export type T_Filter<T> = Filter<T>;
6
6
  export type T_InsertOneResult<T> = InsertOneResult<T>;
7
7
  export type T_InsertManyResult<T> = InsertManyResult<T>;
8
- export type T_UpdateResult = UpdateResult;
8
+ export type T_UpdateResult = UpdateResult | UpdateWriteOpResult;
9
9
  export type T_DeleteResult = DeleteResult;
10
10
  export type T_WithId<T> = WithId<T>;
11
11
  export type T_OptionalUnlessRequiredId<T> = OptionalUnlessRequiredId<T>;
@@ -137,9 +137,9 @@ export declare const mongo: {
137
137
  }) => void;
138
138
  init(): Promise<void>;
139
139
  create(description: string): Promise<string>;
140
- up(db: mongooseRaw.mongo.Db, client: mongooseRaw.mongo.MongoClient): Promise<string[]>;
141
- down(db: mongooseRaw.mongo.Db, client: mongooseRaw.mongo.MongoClient): Promise<string[]>;
142
- status(db: mongooseRaw.mongo.Db): Promise<migrate.MigrationStatus[]>;
140
+ up(db: import('mongodb').Db, client: import('mongodb').MongoClient): Promise<string[]>;
141
+ down(db: import('mongodb').Db, client: import('mongodb').MongoClient): Promise<string[]>;
142
+ status(db: import('mongodb').Db): Promise<migrate.MigrationStatus[]>;
143
143
  database: typeof migrate.database;
144
144
  config: typeof migrate.config;
145
145
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("@apollo/client/react"),e=require("react"),n=require("./apollo-client.context.cjs"),i=require("./apollo-client.util.cjs"),a=require("../apollo-error/apollo-error.provider.cjs"),u=require("../apollo-error/apollo-error.component.cjs"),c=require("react-hot-toast");function p({options:r,children:l}){const o=e.useMemo(()=>i.getClient(r!=null?r:{}),[r]);return e.createElement(e.Fragment,null,e.createElement(a.ApolloErrorProvider,null,e.createElement(n.ApolloClientProvider,{client:o},e.createElement(t.ApolloProvider,{client:o},l)),e.createElement(u.ApolloErrorComponent,null)),e.createElement(c.Toaster,{position:"top-right"}))}exports.ApolloProvider=p;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("@apollo/client/react"),e=require("react"),i=require("./apollo-client.context.cjs"),a=require("./apollo-client.util.cjs"),c=require("../apollo-error/apollo-error.provider.cjs"),u=require("../apollo-error/apollo-error.component.cjs"),p=require("react-hot-toast");function m({options:r,children:t,onError:o}){const l=e.useMemo(()=>a.getClient(r!=null?r:{}),[r]);return e.createElement(e.Fragment,null,e.createElement(c.ApolloErrorProvider,{onError:o},e.createElement(i.ApolloClientProvider,{client:l},e.createElement(n.ApolloProvider,{client:l},t)),!o&&e.createElement(u.ApolloErrorComponent,null)),e.createElement(p.Toaster,{position:"top-right"}))}exports.ApolloProvider=m;
@@ -13,9 +13,10 @@ import { I_ApolloProviderProps } from './apollo-client.type.js';
13
13
  * - Automatic error handling
14
14
  * - Development and production optimizations
15
15
  *
16
- * @param props - Component props containing options and children.
16
+ * @param props - Component props containing options, children, and optional error override.
17
17
  * @param props.options - Apollo Client configuration options.
18
18
  * @param props.children - React children that will have access to Apollo Client context.
19
+ * @param props.onError - Optional callback to override the default modal/toast error handling.
19
20
  * @returns A React component that provides Apollo Client context to its children.
20
21
  */
21
- export declare function ApolloProvider({ options, children }: I_ApolloProviderProps): React.JSX.Element;
22
+ export declare function ApolloProvider({ options, children, onError }: I_ApolloProviderProps): React.JSX.Element;
@@ -1,17 +1,17 @@
1
- import { ApolloProvider as l } from "@apollo/client/react";
2
- import r, { useMemo as m } from "react";
1
+ import { ApolloProvider as m } from "@apollo/client/react";
2
+ import e, { useMemo as i } from "react";
3
3
  import { ApolloClientProvider as n } from "./apollo-client.context.js";
4
- import { getClient as i } from "./apollo-client.util.js";
5
- import { ApolloErrorProvider as p } from "../apollo-error/apollo-error.provider.js";
6
- import { ApolloErrorComponent as a } from "../apollo-error/apollo-error.component.js";
7
- import { Toaster as c } from "react-hot-toast";
8
- function g({ options: e, children: t }) {
9
- const o = m(
10
- () => i(e != null ? e : {}),
11
- [e]
4
+ import { getClient as p } from "./apollo-client.util.js";
5
+ import { ApolloErrorProvider as a } from "../apollo-error/apollo-error.provider.js";
6
+ import { ApolloErrorComponent as c } from "../apollo-error/apollo-error.component.js";
7
+ import { Toaster as f } from "react-hot-toast";
8
+ function s({ options: r, children: l, onError: o }) {
9
+ const t = i(
10
+ () => p(r != null ? r : {}),
11
+ [r]
12
12
  );
13
- return /* @__PURE__ */ r.createElement(r.Fragment, null, /* @__PURE__ */ r.createElement(p, null, /* @__PURE__ */ r.createElement(n, { client: o }, /* @__PURE__ */ r.createElement(l, { client: o }, t)), /* @__PURE__ */ r.createElement(a, null)), /* @__PURE__ */ r.createElement(c, { position: "top-right" }));
13
+ return /* @__PURE__ */ e.createElement(e.Fragment, null, /* @__PURE__ */ e.createElement(a, { onError: o }, /* @__PURE__ */ e.createElement(n, { client: t }, /* @__PURE__ */ e.createElement(m, { client: t }, l)), !o && /* @__PURE__ */ e.createElement(c, null)), /* @__PURE__ */ e.createElement(f, { position: "top-right" }));
14
14
  }
15
15
  export {
16
- g as ApolloProvider
16
+ s as ApolloProvider
17
17
  };
@@ -1,5 +1,6 @@
1
1
  import { ApolloClient } from '@apollo/client';
2
2
  import { ApolloLink } from '@apollo/client/link';
3
+ import { GraphQLError } from 'graphql';
3
4
  import { I_Children } from '../../typescript/index.js';
4
5
  export interface I_ApolloOptions extends Omit<ApolloClient.Options, 'link' | 'cache'> {
5
6
  uri?: string;
@@ -9,5 +10,10 @@ export interface I_ApolloOptions extends Omit<ApolloClient.Options, 'link' | 'ca
9
10
  export interface I_ApolloProviderProps extends I_Children {
10
11
  isNextJS?: boolean;
11
12
  options?: I_ApolloOptions;
13
+ /**
14
+ * Optional callback to override the default Apollo error modal/toast handling.
15
+ * When provided, the consumer is responsible for surfacing GraphQL errors.
16
+ */
17
+ onError?: (error: GraphQLError | Error) => void;
12
18
  }
13
19
  export type { ApolloCache, ApolloClient, ErrorLike } from '@apollo/client';
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("@apollo/client/core"),p=require("@apollo/client/link"),_=require("@apollo/client/link/error"),y=require("@apollo/client/link/remove-typename"),q=require("@apollo/client/link/subscriptions"),h=require("graphql"),v=require("graphql-ws"),c=require("react"),E=require("rxjs"),m=require("./apollo-client.constant.cjs"),f=require("./apollo-client.module.scss.cjs"),b=require("./links/upload.cjs"),P=require("../apollo-error/apollo-error.util.cjs"),l=require("../log/log.util.cjs"),d=require("react-hot-toast");var A=Object.defineProperty,L=Object.getOwnPropertySymbols,C=Object.prototype.hasOwnProperty,O=Object.prototype.propertyIsEnumerable,g=(e,r,o)=>r in e?A(e,r,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[r]=o,T=(e,r)=>{for(var o in r||(r={}))C.call(r,o)&&g(e,o,r[o]);if(L)for(var o of L(r))O.call(r,o)&&g(e,o,r[o]);return e};const N=new p.ApolloLink((e,r)=>(e.setContext({start:new Date}),r(e).pipe(E.tap(()=>{const o=new Date().getTime()-e.getContext().start;l.log.info(`Operation ${e.operationName} took ${o}ms to complete`)})))),$=new _.ErrorLink(({error:e,operation:r})=>{const o=(r==null?void 0:r.operationName)||"Unknown";let t="";a.CombinedGraphQLErrors.is(e)?e.errors.forEach(({message:n,locations:i,path:s},u)=>{u===0&&(t=n),l.log.error(`[GraphQL error] ${o}: ${n}, Location: ${JSON.stringify(i,null,4)}, Path: ${s}`)}):a.CombinedProtocolErrors.is(e)?e.errors.forEach(({message:n,extensions:i},s)=>{s===0&&(t=n),l.log.error(`[Protocol error]: ${n}, Extensions: ${JSON.stringify(i,null,4)}`)}):a.ServerError.is(e)?(t=e.message,l.log.error(`[Server error]: ${e.message}`)):(t=e.message,l.log.error(`[Network error]: ${e.message}`)),e&&t&&typeof window!="undefined"&&d.toast.error(n=>c.createElement("div",{className:f.default["error-container"]},t,c.createElement("button",{type:"button",className:f.default["error-details-button"],onClick:()=>{setTimeout(()=>{P.showGlobalApolloError(e)},0),d.toast.dismiss(n.id)}},"Error Details")))});function k(e){const{uri:r,wsUrl:o,customLinks:t}=e,n=new y.RemoveTypenameFromVariablesLink;r||l.log.warn(`[Apollo] No GraphQL URI provided — using "${m.GRAPHQL_URI_DEFAULT}" as default`);const i=b.createUploadLink({uri:r!=null?r:m.GRAPHQL_URI_DEFAULT,credentials:"include",headers:{"apollo-require-preflight":"true"}}),s=o?new q.GraphQLWsLink(v.createClient({url:o})):p.ApolloLink.empty(),u=o?p.ApolloLink.split(({operationType:w})=>w===h.OperationTypeNode.SUBSCRIPTION,s,i):i;return o&&u===i&&l.log.warn("[Apollo] WS URL is set, but subscriptions fallback to HTTP. Check your wsLink config."),[N,$,n,...t!=null?t:[],u]}function S(e){const r=p.ApolloLink.from(k(e));return new a.ApolloClient(T({link:r,cache:new a.InMemoryCache},e))}exports.createApolloLinks=k;exports.getClient=S;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("@apollo/client/core"),p=require("@apollo/client/link"),h=require("@apollo/client/link/error"),y=require("@apollo/client/link/remove-typename"),q=require("@apollo/client/link/subscriptions"),E=require("graphql"),b=require("graphql-ws"),f=require("react"),v=require("rxjs"),m=require("./apollo-client.constant.cjs"),d=require("./apollo-client.module.scss.cjs"),A=require("./links/upload.cjs"),c=require("../apollo-error/apollo-error.util.cjs"),i=require("../log/log.util.cjs"),L=require("react-hot-toast");var C=Object.defineProperty,g=Object.getOwnPropertySymbols,P=Object.prototype.hasOwnProperty,O=Object.prototype.propertyIsEnumerable,k=(e,r,o)=>r in e?C(e,r,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[r]=o,T=(e,r)=>{for(var o in r||(r={}))P.call(r,o)&&k(e,o,r[o]);if(g)for(var o of g(r))O.call(r,o)&&k(e,o,r[o]);return e};const N=new p.ApolloLink((e,r)=>(e.setContext({start:new Date}),r(e).pipe(v.tap(()=>{const o=new Date().getTime()-e.getContext().start;i.log.info(`Operation ${e.operationName} took ${o}ms to complete`)})))),$=new h.ErrorLink(({error:e,operation:r})=>{const o=(r==null?void 0:r.operationName)||"Unknown";let t="";a.CombinedGraphQLErrors.is(e)?e.errors.forEach(({message:l,locations:n,path:s},u)=>{u===0&&(t=l),i.log.error(`[GraphQL error] ${o}: ${l}, Location: ${JSON.stringify(n,null,4)}, Path: ${s}`)}):a.CombinedProtocolErrors.is(e)?e.errors.forEach(({message:l,extensions:n},s)=>{s===0&&(t=l),i.log.error(`[Protocol error]: ${l}, Extensions: ${JSON.stringify(n,null,4)}`)}):a.ServerError.is(e)?(t=e.message,i.log.error(`[Server error]: ${e.message}`)):(t=e.message,i.log.error(`[Network error]: ${e.message}`)),e&&t&&typeof window!="undefined"&&(c.hasCustomApolloErrorHandler()?c.showGlobalApolloError(e):L.toast.error(l=>f.createElement("div",{className:d.default["error-container"]},t,f.createElement("button",{type:"button",className:d.default["error-details-button"],onClick:()=>{c.showGlobalApolloError(e),L.toast.dismiss(l.id)}},"Error Details"))))});function w(e){const{uri:r,wsUrl:o,customLinks:t}=e,l=new y.RemoveTypenameFromVariablesLink;r||i.log.warn(`[Apollo] No GraphQL URI provided — using "${m.GRAPHQL_URI_DEFAULT}" as default`);const n=A.createUploadLink({uri:r!=null?r:m.GRAPHQL_URI_DEFAULT,credentials:"include",headers:{"apollo-require-preflight":"true"}}),s=o?new q.GraphQLWsLink(b.createClient({url:o})):p.ApolloLink.empty(),u=o?p.ApolloLink.split(({operationType:_})=>_===E.OperationTypeNode.SUBSCRIPTION,s,n):n;return o&&u===n&&i.log.warn("[Apollo] WS URL is set, but subscriptions fallback to HTTP. Check your wsLink config."),[N,$,l,...t!=null?t:[],u]}function S(e){const r=p.ApolloLink.from(w(e));return new a.ApolloClient(T({link:r,cache:new a.InMemoryCache},e))}exports.createApolloLinks=w;exports.getClient=S;
@@ -1,86 +1,84 @@
1
- import { ApolloClient as k, InMemoryCache as y, CombinedGraphQLErrors as g, CombinedProtocolErrors as h, ServerError as v } from "@apollo/client/core";
1
+ import { ApolloClient as y, InMemoryCache as h, CombinedGraphQLErrors as g, CombinedProtocolErrors as E, ServerError as v } from "@apollo/client/core";
2
2
  import { ApolloLink as m } from "@apollo/client/link";
3
- import { ErrorLink as E } from "@apollo/client/link/error";
4
- import { RemoveTypenameFromVariablesLink as _ } from "@apollo/client/link/remove-typename";
5
- import { GraphQLWsLink as O } from "@apollo/client/link/subscriptions";
6
- import { OperationTypeNode as P } from "graphql";
7
- import { createClient as b } from "graphql-ws";
3
+ import { ErrorLink as _ } from "@apollo/client/link/error";
4
+ import { RemoveTypenameFromVariablesLink as O } from "@apollo/client/link/remove-typename";
5
+ import { GraphQLWsLink as P } from "@apollo/client/link/subscriptions";
6
+ import { OperationTypeNode as b } from "graphql";
7
+ import { createClient as C } from "graphql-ws";
8
8
  import p from "react";
9
9
  import { tap as N } from "rxjs";
10
10
  import { GRAPHQL_URI_DEFAULT as f } from "./apollo-client.constant.js";
11
11
  import c from "./apollo-client.module.scss.js";
12
- import { createUploadLink as C } from "./links/upload.js";
13
- import { showGlobalApolloError as $ } from "../apollo-error/apollo-error.util.js";
12
+ import { createUploadLink as $ } from "./links/upload.js";
13
+ import { hasCustomApolloErrorHandler as A, showGlobalApolloError as u } from "../apollo-error/apollo-error.util.js";
14
14
  import { log as s } from "../log/log.util.js";
15
- import { toast as u } from "react-hot-toast";
16
- var T = Object.defineProperty, d = Object.getOwnPropertySymbols, S = Object.prototype.hasOwnProperty, A = Object.prototype.propertyIsEnumerable, w = (r, e, o) => e in r ? T(r, e, { enumerable: !0, configurable: !0, writable: !0, value: o }) : r[e] = o, U = (r, e) => {
15
+ import { toast as d } from "react-hot-toast";
16
+ var S = Object.defineProperty, w = Object.getOwnPropertySymbols, T = Object.prototype.hasOwnProperty, U = Object.prototype.propertyIsEnumerable, L = (r, e, o) => e in r ? S(r, e, { enumerable: !0, configurable: !0, writable: !0, value: o }) : r[e] = o, I = (r, e) => {
17
17
  for (var o in e || (e = {}))
18
- S.call(e, o) && w(r, o, e[o]);
19
- if (d)
20
- for (var o of d(e))
21
- A.call(e, o) && w(r, o, e[o]);
18
+ T.call(e, o) && L(r, o, e[o]);
19
+ if (w)
20
+ for (var o of w(e))
21
+ U.call(e, o) && L(r, o, e[o]);
22
22
  return r;
23
23
  };
24
- const I = new m((r, e) => (r.setContext({ start: /* @__PURE__ */ new Date() }), e(r).pipe(
24
+ const R = new m((r, e) => (r.setContext({ start: /* @__PURE__ */ new Date() }), e(r).pipe(
25
25
  N(() => {
26
26
  const o = (/* @__PURE__ */ new Date()).getTime() - r.getContext().start;
27
27
  s.info(`Operation ${r.operationName} took ${o}ms to complete`);
28
28
  })
29
- ))), R = new E(({ error: r, operation: e }) => {
29
+ ))), G = new _(({ error: r, operation: e }) => {
30
30
  const o = (e == null ? void 0 : e.operationName) || "Unknown";
31
31
  let t = "";
32
32
  g.is(r) ? r.errors.forEach(({ message: n, locations: i, path: l }, a) => {
33
33
  a === 0 && (t = n), s.error(
34
34
  `[GraphQL error] ${o}: ${n}, Location: ${JSON.stringify(i, null, 4)}, Path: ${l}`
35
35
  );
36
- }) : h.is(r) ? r.errors.forEach(({ message: n, extensions: i }, l) => {
36
+ }) : E.is(r) ? r.errors.forEach(({ message: n, extensions: i }, l) => {
37
37
  l === 0 && (t = n), s.error(
38
38
  `[Protocol error]: ${n}, Extensions: ${JSON.stringify(i, null, 4)}`
39
39
  );
40
- }) : v.is(r) ? (t = r.message, s.error(`[Server error]: ${r.message}`)) : (t = r.message, s.error(`[Network error]: ${r.message}`)), r && t && typeof window != "undefined" && u.error((n) => /* @__PURE__ */ p.createElement("div", { className: c["error-container"] }, t, /* @__PURE__ */ p.createElement(
40
+ }) : v.is(r) ? (t = r.message, s.error(`[Server error]: ${r.message}`)) : (t = r.message, s.error(`[Network error]: ${r.message}`)), r && t && typeof window != "undefined" && (A() ? u(r) : d.error((n) => /* @__PURE__ */ p.createElement("div", { className: c["error-container"] }, t, /* @__PURE__ */ p.createElement(
41
41
  "button",
42
42
  {
43
43
  type: "button",
44
44
  className: c["error-details-button"],
45
45
  onClick: () => {
46
- setTimeout(() => {
47
- $(r);
48
- }, 0), u.dismiss(n.id);
46
+ u(r), d.dismiss(n.id);
49
47
  }
50
48
  },
51
49
  "Error Details"
52
- )));
50
+ ))));
53
51
  });
54
- function G(r) {
55
- const { uri: e, wsUrl: o, customLinks: t } = r, n = new _();
52
+ function Q(r) {
53
+ const { uri: e, wsUrl: o, customLinks: t } = r, n = new O();
56
54
  e || s.warn(`[Apollo] No GraphQL URI provided — using "${f}" as default`);
57
- const i = C({
55
+ const i = $({
58
56
  uri: e != null ? e : f,
59
57
  credentials: "include",
60
58
  headers: {
61
59
  "apollo-require-preflight": "true"
62
60
  }
63
- }), l = o ? new O(b({ url: o })) : m.empty(), a = o ? m.split(
64
- ({ operationType: L }) => L === P.SUBSCRIPTION,
61
+ }), l = o ? new P(C({ url: o })) : m.empty(), a = o ? m.split(
62
+ ({ operationType: k }) => k === b.SUBSCRIPTION,
65
63
  l,
66
64
  i
67
65
  ) : i;
68
66
  return o && a === i && s.warn("[Apollo] WS URL is set, but subscriptions fallback to HTTP. Check your wsLink config."), [
69
- I,
70
67
  R,
68
+ G,
71
69
  n,
72
70
  ...t != null ? t : [],
73
71
  a
74
72
  ];
75
73
  }
76
- function Y(r) {
77
- const e = m.from(G(r));
78
- return new k(U({
74
+ function Z(r) {
75
+ const e = m.from(Q(r));
76
+ return new y(I({
79
77
  link: e,
80
- cache: new y()
78
+ cache: new h()
81
79
  }, r));
82
80
  }
83
81
  export {
84
- G as createApolloLinks,
85
- Y as getClient
82
+ Q as createApolloLinks,
83
+ Z as getClient
86
84
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("@apollo/client-integration-nextjs"),e=require("react"),n=require("./apollo-client-nextjs.util.cjs"),i=require("../apollo-error/apollo-error.provider.cjs"),a=require("../apollo-error/apollo-error.component.cjs"),u=require("react-hot-toast");function p({options:r,children:o}){const t=e.useMemo(()=>()=>n.getClient(r||{}),[r]);return e.createElement(e.Fragment,null,e.createElement(i.ApolloErrorProvider,null,e.createElement(l.ApolloNextAppProvider,{makeClient:t},o),e.createElement(a.ApolloErrorComponent,null)),e.createElement(u.Toaster,{position:"top-right"}))}exports.ApolloProvider=p;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("@apollo/client-integration-nextjs"),e=require("react"),i=require("./apollo-client-nextjs.util.cjs"),a=require("../apollo-error/apollo-error.provider.cjs"),p=require("../apollo-error/apollo-error.component.cjs"),u=require("react-hot-toast");function c({options:r,children:o,onError:t}){const l=e.useMemo(()=>()=>i.getClient(r||{}),[r]);return e.createElement(e.Fragment,null,e.createElement(a.ApolloErrorProvider,{onError:t},e.createElement(n.ApolloNextAppProvider,{makeClient:l},o),!t&&e.createElement(p.ApolloErrorComponent,null)),e.createElement(u.Toaster,{position:"top-right"}))}exports.ApolloProvider=c;
@@ -13,9 +13,10 @@ import { I_ApolloProviderProps } from '../apollo-client/index.js';
13
13
  * - Automatic error handling
14
14
  * - Next.js specific optimizations
15
15
  *
16
- * @param props - Component props containing options and children.
16
+ * @param props - Component props containing options, children, and optional error override.
17
17
  * @param props.options - Apollo Client configuration options.
18
18
  * @param props.children - React children that will have access to Apollo Client context.
19
+ * @param props.onError - Optional callback to override the default modal/toast error handling.
19
20
  * @returns A React component that provides Apollo Client context to its children.
20
21
  */
21
- export declare function ApolloProvider({ options, children }: I_ApolloProviderProps): React.JSX.Element;
22
+ export declare function ApolloProvider({ options, children, onError }: I_ApolloProviderProps): React.JSX.Element;
@@ -1,16 +1,16 @@
1
1
  import { ApolloNextAppProvider as l } from "@apollo/client-integration-nextjs";
2
- import e, { useMemo as m } from "react";
3
- import { getClient as n } from "./apollo-client-nextjs.util.js";
4
- import { ApolloErrorProvider as p } from "../apollo-error/apollo-error.provider.js";
5
- import { ApolloErrorComponent as i } from "../apollo-error/apollo-error.component.js";
6
- import { Toaster as a } from "react-hot-toast";
7
- function g({ options: r, children: o }) {
8
- const t = m(
9
- () => () => n(r || {}),
2
+ import e, { useMemo as n } from "react";
3
+ import { getClient as p } from "./apollo-client-nextjs.util.js";
4
+ import { ApolloErrorProvider as i } from "../apollo-error/apollo-error.provider.js";
5
+ import { ApolloErrorComponent as a } from "../apollo-error/apollo-error.component.js";
6
+ import { Toaster as c } from "react-hot-toast";
7
+ function s({ options: r, children: t, onError: o }) {
8
+ const m = n(
9
+ () => () => p(r || {}),
10
10
  [r]
11
11
  );
12
- return /* @__PURE__ */ e.createElement(e.Fragment, null, /* @__PURE__ */ e.createElement(p, null, /* @__PURE__ */ e.createElement(l, { makeClient: t }, o), /* @__PURE__ */ e.createElement(i, null)), /* @__PURE__ */ e.createElement(a, { position: "top-right" }));
12
+ return /* @__PURE__ */ e.createElement(e.Fragment, null, /* @__PURE__ */ e.createElement(i, { onError: o }, /* @__PURE__ */ e.createElement(l, { makeClient: m }, t), !o && /* @__PURE__ */ e.createElement(a, null)), /* @__PURE__ */ e.createElement(c, { position: "top-right" }));
13
13
  }
14
14
  export {
15
- g as ApolloProvider
15
+ s as ApolloProvider
16
16
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react"),u=require("./apollo-error.context.cjs"),n=require("./apollo-error.util.cjs");function a({children:l}){const[e,o]=r.useState(null);r.useEffect(()=>{n.setGlobalApolloErrorCallback(o)},[]);const t=r.useMemo(()=>({error:e,showError:o,hideError:()=>o(null)}),[e]);return r.createElement(u.ApolloErrorContext,{value:t},l)}exports.ApolloErrorProvider=a;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("react"),i=require("./apollo-error.context.cjs"),c=require("./apollo-error.util.cjs");function b({children:n,onError:e}){const[o,t]=l.useState(null),r=l.useCallback(u=>{if(e){e(u);return}t(u)},[e]);l.useEffect(()=>(c.setGlobalApolloErrorCallback(r,!!e),()=>{c.clearGlobalApolloErrorCallback()}),[r,e]);const a=l.useCallback(()=>t(null),[]),s=l.useMemo(()=>({error:e?null:o,showError:r,hideError:a}),[o,r,a,e]);return l.createElement(i.ApolloErrorContext,{value:s},n)}exports.ApolloErrorProvider=b;
@@ -1,4 +1,5 @@
1
- import { ReactNode, default as React } from 'react';
1
+ import { default as React } from 'react';
2
+ import { I_ApolloErrorProviderProps } from './apollo-error.type.js';
2
3
  /**
3
4
  * Provider component that manages Apollo error state and provides error context.
4
5
  * This component sets up error handling for Apollo Client operations and provides
@@ -8,12 +9,12 @@ import { ReactNode, default as React } from 'react';
8
9
  * - Global Apollo error state management
9
10
  * - Error context provision to child components
10
11
  * - Automatic error handling and display
12
+ * - Optional custom error handling callbacks
11
13
  * - Integration with error boundaries
12
14
  *
13
15
  * @param props - Component props containing children.
14
16
  * @param props.children - React children that will have access to the error context.
17
+ * @param props.onError - Optional callback to override the default error modal/toast flow.
15
18
  * @returns A React component that provides Apollo error context to its children.
16
19
  */
17
- export declare function ApolloErrorProvider({ children }: {
18
- children: ReactNode;
19
- }): React.JSX.Element;
20
+ export declare function ApolloErrorProvider({ children, onError }: I_ApolloErrorProviderProps): React.JSX.Element;
@@ -1,18 +1,24 @@
1
- import l, { useState as n, useEffect as u, useMemo as a } from "react";
2
- import { ApolloErrorContext as c } from "./apollo-error.context.js";
3
- import { setGlobalApolloErrorCallback as m } from "./apollo-error.util.js";
4
- function f({ children: e }) {
5
- const [o, r] = n(null);
6
- u(() => {
7
- m(r);
8
- }, []);
9
- const t = a(() => ({
10
- error: o,
11
- showError: r,
12
- hideError: () => r(null)
13
- }), [o]);
14
- return /* @__PURE__ */ l.createElement(c, { value: t }, e);
1
+ import s, { useState as m, useCallback as c, useEffect as f, useMemo as i } from "react";
2
+ import { ApolloErrorContext as p } from "./apollo-error.context.js";
3
+ import { setGlobalApolloErrorCallback as b, clearGlobalApolloErrorCallback as A } from "./apollo-error.util.js";
4
+ function k({ children: u, onError: l }) {
5
+ const [r, o] = m(null), e = c((a) => {
6
+ if (l) {
7
+ l(a);
8
+ return;
9
+ }
10
+ o(a);
11
+ }, [l]);
12
+ f(() => (b(e, !!l), () => {
13
+ A();
14
+ }), [e, l]);
15
+ const t = c(() => o(null), []), n = i(() => ({
16
+ error: l ? null : r,
17
+ showError: e,
18
+ hideError: t
19
+ }), [r, e, t, l]);
20
+ return /* @__PURE__ */ s.createElement(p, { value: n }, u);
15
21
  }
16
22
  export {
17
- f as ApolloErrorProvider
23
+ k as ApolloErrorProvider
18
24
  };
@@ -1,7 +1,12 @@
1
1
  import { GraphQLError } from 'graphql';
2
+ import { ReactNode } from 'react';
2
3
  export type { GraphQLError } from 'graphql';
3
4
  export interface I_ApolloErrorContext {
4
5
  error: GraphQLError | Error | null;
5
6
  showError: (error: GraphQLError | Error) => void;
6
7
  hideError: () => void;
7
8
  }
9
+ export interface I_ApolloErrorProviderProps {
10
+ children: ReactNode;
11
+ onError?: (error: GraphQLError | Error) => void;
12
+ }
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});let o=null;function r(l){o=l}function a(l){o==null||o(l)}exports.setGlobalApolloErrorCallback=r;exports.showGlobalApolloError=a;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});let l=null,r=!1;function e(o,a=!1){l=o,r=a}function t(){l=null,r=!1}function n(){return r}function s(o){l==null||l(o)}exports.clearGlobalApolloErrorCallback=t;exports.hasCustomApolloErrorHandler=n;exports.setGlobalApolloErrorCallback=e;exports.showGlobalApolloError=s;
@@ -7,8 +7,20 @@ import { GraphQLError } from 'graphql';
7
7
  * consistent error handling.
8
8
  *
9
9
  * @param callback - The function to be called when a global Apollo error occurs.
10
+ * @param isCustomHandler - Flag that identifies whether the handler was provided by the consumer.
10
11
  */
11
- export declare function setGlobalApolloErrorCallback(callback: (err: GraphQLError | Error) => void): void;
12
+ export declare function setGlobalApolloErrorCallback(callback: (err: GraphQLError | Error) => void, isCustomHandler?: boolean): void;
13
+ /**
14
+ * Clears the global callback function for Apollo error handling.
15
+ * Useful when the ApolloErrorProvider unmounts to avoid stale references.
16
+ */
17
+ export declare function clearGlobalApolloErrorCallback(): void;
18
+ /**
19
+ * Indicates whether a custom Apollo error handler is registered.
20
+ *
21
+ * @returns True if a custom handler is registered, otherwise false.
22
+ */
23
+ export declare function hasCustomApolloErrorHandler(): boolean;
12
24
  /**
13
25
  * Displays a global Apollo error using the registered callback.
14
26
  * This function triggers the global error display system by calling the
@@ -1,11 +1,19 @@
1
- let o = null;
2
- function r(l) {
3
- o = l;
1
+ let l = null, r = !1;
2
+ function n(o, a = !1) {
3
+ l = o, r = a;
4
4
  }
5
- function a(l) {
6
- o == null || o(l);
5
+ function e() {
6
+ l = null, r = !1;
7
+ }
8
+ function t() {
9
+ return r;
10
+ }
11
+ function s(o) {
12
+ l == null || l(o);
7
13
  }
8
14
  export {
9
- r as setGlobalApolloErrorCallback,
10
- a as showGlobalApolloError
15
+ e as clearGlobalApolloErrorCallback,
16
+ t as hasCustomApolloErrorHandler,
17
+ n as setGlobalApolloErrorCallback,
18
+ s as showGlobalApolloError
11
19
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./apollo-error.component.cjs"),l=require("./apollo-error.context.cjs"),e=require("./apollo-error.hook.cjs"),p=require("./apollo-error.provider.cjs"),o=require("./apollo-error.util.cjs");exports.ApolloErrorComponent=r.ApolloErrorComponent;exports.ApolloErrorContext=l.ApolloErrorContext;exports.useApolloError=e.useApolloError;exports.ApolloErrorProvider=p.ApolloErrorProvider;exports.setGlobalApolloErrorCallback=o.setGlobalApolloErrorCallback;exports.showGlobalApolloError=o.showGlobalApolloError;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./apollo-error.component.cjs"),l=require("./apollo-error.context.cjs"),e=require("./apollo-error.hook.cjs"),a=require("./apollo-error.provider.cjs"),o=require("./apollo-error.util.cjs");exports.ApolloErrorComponent=r.ApolloErrorComponent;exports.ApolloErrorContext=l.ApolloErrorContext;exports.useApolloError=e.useApolloError;exports.ApolloErrorProvider=a.ApolloErrorProvider;exports.clearGlobalApolloErrorCallback=o.clearGlobalApolloErrorCallback;exports.hasCustomApolloErrorHandler=o.hasCustomApolloErrorHandler;exports.setGlobalApolloErrorCallback=o.setGlobalApolloErrorCallback;exports.showGlobalApolloError=o.showGlobalApolloError;
@@ -1,13 +1,15 @@
1
1
  import { ApolloErrorComponent as l } from "./apollo-error.component.js";
2
2
  import { ApolloErrorContext as e } from "./apollo-error.context.js";
3
- import { useApolloError as m } from "./apollo-error.hook.js";
4
- import { ApolloErrorProvider as A } from "./apollo-error.provider.js";
5
- import { setGlobalApolloErrorCallback as f, showGlobalApolloError as a } from "./apollo-error.util.js";
3
+ import { useApolloError as t } from "./apollo-error.hook.js";
4
+ import { ApolloErrorProvider as E } from "./apollo-error.provider.js";
5
+ import { clearGlobalApolloErrorCallback as x, hasCustomApolloErrorHandler as b, setGlobalApolloErrorCallback as f, showGlobalApolloError as s } from "./apollo-error.util.js";
6
6
  export {
7
7
  l as ApolloErrorComponent,
8
8
  e as ApolloErrorContext,
9
- A as ApolloErrorProvider,
9
+ E as ApolloErrorProvider,
10
+ x as clearGlobalApolloErrorCallback,
11
+ b as hasCustomApolloErrorHandler,
10
12
  f as setGlobalApolloErrorCallback,
11
- a as showGlobalApolloError,
12
- m as useApolloError
13
+ s as showGlobalApolloError,
14
+ t as useApolloError
13
15
  };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cyberskill/shared",
3
3
  "type": "module",
4
- "version": "2.19.0",
4
+ "version": "2.19.1",
5
5
  "description": "CyberSkill Shared",
6
6
  "author": "Stephen Cheng",
7
7
  "license": "MIT",
@@ -208,19 +208,19 @@
208
208
  },
209
209
  "dependencies": {
210
210
  "@antfu/eslint-config": "6.2.0",
211
- "@apollo/client": "4.0.8",
211
+ "@apollo/client": "4.0.9",
212
212
  "@apollo/client-integration-nextjs": "0.14.1",
213
213
  "@apollo/server": "5.1.0",
214
214
  "@as-integrations/express5": "1.1.2",
215
- "@dotenvx/dotenvx": "1.51.0",
215
+ "@dotenvx/dotenvx": "1.51.1",
216
216
  "@eddeee888/gcg-typescript-resolver-files": "0.14.0",
217
- "@eslint-react/eslint-plugin": "2.2.4",
218
- "@graphql-codegen/cli": "6.0.1",
219
- "@graphql-codegen/client-preset": "5.1.1",
220
- "@nestjs/common": "11.1.8",
221
- "@nestjs/core": "11.1.8",
217
+ "@eslint-react/eslint-plugin": "2.3.5",
218
+ "@graphql-codegen/cli": "6.0.2",
219
+ "@graphql-codegen/client-preset": "5.1.3",
220
+ "@nestjs/common": "11.1.9",
221
+ "@nestjs/core": "11.1.9",
222
222
  "@userback/widget": "0.3.11",
223
- "@vitejs/plugin-react-swc": "4.2.0",
223
+ "@vitejs/plugin-react-swc": "4.2.2",
224
224
  "body-parser": "2.2.0",
225
225
  "chalk": "5.6.2",
226
226
  "clsx": "2.1.1",
@@ -230,41 +230,41 @@
230
230
  "cors": "2.8.5",
231
231
  "crypto-js": "4.2.0",
232
232
  "date-fns": "4.1.0",
233
- "envalid": "8.1.0",
233
+ "envalid": "8.1.1",
234
234
  "eslint-plugin-format": "1.0.2",
235
235
  "eslint-plugin-react-hooks": "7.0.1",
236
236
  "eslint-plugin-react-refresh": "0.4.24",
237
237
  "express": "5.1.0",
238
238
  "express-session": "1.18.2",
239
- "express-useragent": "2.0.1",
239
+ "express-useragent": "2.0.2",
240
240
  "extract-files": "13.0.0",
241
241
  "fs-extra": "11.3.2",
242
- "globals": "16.4.0",
243
- "graphql": "16.11.0",
242
+ "globals": "16.5.0",
243
+ "graphql": "16.12.0",
244
244
  "graphql-upload": "17.0.0",
245
245
  "graphql-ws": "6.0.6",
246
- "i18next": "25.6.0",
247
- "jsdom": "27.1.0",
246
+ "i18next": "25.6.2",
247
+ "jsdom": "27.2.0",
248
248
  "localforage": "1.10.0",
249
249
  "lodash-es": "4.17.21",
250
250
  "migrate-mongo": "12.1.3",
251
- "mongodb": "6.20.0",
252
- "mongoose": "8.19.2",
251
+ "mongodb": "7.0.0",
252
+ "mongoose": "8.19.4",
253
253
  "mongoose-aggregate-paginate-v2": "1.1.4",
254
254
  "mongoose-paginate-v2": "1.9.1",
255
- "next-intl": "4.4.0",
255
+ "next-intl": "4.5.3",
256
256
  "node-fetch": "3.3.2",
257
257
  "node-persist": "4.0.4",
258
258
  "qs": "6.14.0",
259
259
  "react": "19.2.0",
260
260
  "react-dom": "19.2.0",
261
261
  "react-hot-toast": "2.6.0",
262
- "react-i18next": "16.2.3",
262
+ "react-i18next": "16.3.3",
263
263
  "rxjs": "7.8.2",
264
264
  "slugify": "1.6.6",
265
265
  "unorm": "1.6.0",
266
266
  "uuid": "13.0.0",
267
- "vite": "7.1.12",
267
+ "vite": "7.2.2",
268
268
  "ws": "8.18.3",
269
269
  "yargs": "18.0.0"
270
270
  },
@@ -272,7 +272,7 @@
272
272
  "@commitlint/cli": "20.1.0",
273
273
  "@commitlint/config-conventional": "20.0.0",
274
274
  "@eslint/config-inspector": "1.3.0",
275
- "@next/eslint-plugin-next": "16.0.1",
275
+ "@next/eslint-plugin-next": "16.0.3",
276
276
  "@testing-library/jest-dom": "6.9.1",
277
277
  "@testing-library/react": "16.3.0",
278
278
  "@types/body-parser": "1.19.6",
@@ -287,29 +287,28 @@
287
287
  "@types/fs-extra": "11.0.4",
288
288
  "@types/graphql-upload": "17.0.0",
289
289
  "@types/lodash-es": "4.17.12",
290
- "@types/migrate-mongo": "10.0.5",
291
- "@types/node": "24.9.2",
290
+ "@types/migrate-mongo": "10.0.6",
291
+ "@types/node": "24.10.1",
292
292
  "@types/node-persist": "3.1.8",
293
- "@types/react": "19.2.2",
294
- "@types/react-dom": "19.2.2",
293
+ "@types/react": "19.2.4",
294
+ "@types/react-dom": "19.2.3",
295
295
  "@types/unorm": "1.3.31",
296
- "@types/uuid": "11.0.0",
297
296
  "@types/ws": "8.18.1",
298
- "@types/yargs": "17.0.34",
299
- "@vitest/browser": "4.0.6",
300
- "eslint": "9.38.0",
301
- "eslint-config-next": "16.0.1",
297
+ "@types/yargs": "17.0.35",
298
+ "@vitest/browser": "4.0.9",
299
+ "eslint": "9.39.1",
300
+ "eslint-config-next": "16.0.3",
302
301
  "glob": "11.0.3",
303
302
  "lint-staged": "16.2.6",
304
303
  "node-modules-inspector": "1.2.0",
305
304
  "npm-run-all2": "8.0.4",
306
- "sass": "1.93.3",
305
+ "sass": "1.94.0",
307
306
  "simple-git-hooks": "2.13.1",
308
307
  "tsx": "4.20.6",
309
308
  "typescript": "5.9.3",
310
- "vite": "7.1.12",
309
+ "vite": "7.2.2",
311
310
  "vite-plugin-dts": "4.5.4",
312
- "vitest": "4.0.6"
311
+ "vitest": "4.0.9"
313
312
  },
314
313
  "publishConfig": {
315
314
  "access": "public",