@luxexchange/notifications 1.0.1 → 1.0.2

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@luxexchange/notifications",
3
- "version": "1.0.1",
3
+ "version": "1.0.2",
4
4
  "dependencies": {
5
5
  "@bufbuild/protobuf": "1.10.0",
6
6
  "@tanstack/react-query": "5.90.20",
package/project.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@luxfi/notifications",
3
3
  "$schema": "../../node_modules/nx/schemas/project-schema.json",
4
- "sourceRoot": "packages/notifications/src",
4
+ "sourceRoot": "pkgs/notifications/src",
5
5
  "projectType": "library",
6
6
  "tags": ["scope:notifications", "type:lib"],
7
7
  "targets": {
@@ -1,11 +1,11 @@
1
1
  import { toPlainMessage } from '@bufbuild/protobuf'
2
2
  import { queryOptions } from '@tanstack/react-query'
3
3
  import { PlatformType } from '@uniswap/client-notification-service/dist/uniswap/notificationservice/v1/api_pb'
4
- import type { InAppNotification, NotificationsApiClient } from '@universe/api'
5
- import { getLogger } from 'utilities/src/logger/logger'
6
- import { ReactQueryCacheKey } from 'utilities/src/reactQuery/cache'
7
- import { type QueryOptionsResult } from 'utilities/src/reactQuery/queryOptions'
8
- import { ONE_MINUTE_MS } from 'utilities/src/time/time'
4
+ import type { InAppNotification, NotificationsApiClient } from '@luxexchange/api'
5
+ import { getLogger } from '@luxfi/utilities/src/logger/logger'
6
+ import { ReactQueryCacheKey } from '@luxfi/utilities/src/reactQuery/cache'
7
+ import { type QueryOptionsResult } from '@luxfi/utilities/src/reactQuery/queryOptions'
8
+ import { ONE_MINUTE_MS } from '@luxfi/utilities/src/time/time'
9
9
 
10
10
  const DEFAULT_POLL_INTERVAL_MS = 2 * ONE_MINUTE_MS
11
11
 
@@ -22,7 +22,7 @@ interface GetNotificationQueryOptionsContext {
22
22
  *
23
23
  * @example
24
24
  * ```typescript
25
- * import { getNotificationQueryOptions } from '@universe/notifications'
25
+ * import { getNotificationQueryOptions } from '@luxexchange/notifications'
26
26
  * import { useQuery } from '@tanstack/react-query'
27
27
  *
28
28
  * // Use in a hook
@@ -1,7 +1,7 @@
1
- import { type InAppNotification } from '@universe/api'
2
- import { createNotificationDataSource } from '@universe/notifications/src/notification-data-source/implementations/createNotificationDataSource'
3
- import { type NotificationDataSource } from '@universe/notifications/src/notification-data-source/NotificationDataSource'
4
- import { getLogger } from 'utilities/src/logger/logger'
1
+ import { type InAppNotification } from '@luxexchange/api'
2
+ import { createNotificationDataSource } from '@luxexchange/notifications/src/notification-data-source/implementations/createNotificationDataSource'
3
+ import { type NotificationDataSource } from '@luxexchange/notifications/src/notification-data-source/NotificationDataSource'
4
+ import { getLogger } from '@luxfi/utilities/src/logger/logger'
5
5
 
6
6
  interface CreateIntervalNotificationDataSourceContext {
7
7
  pollIntervalMs: number
@@ -3,14 +3,14 @@ import {
3
3
  Metadata,
4
4
  Notification,
5
5
  } from '@uniswap/client-notification-service/dist/uniswap/notificationservice/v1/api_pb'
6
- import type { InAppNotification } from '@universe/api'
7
- import { ContentStyle } from '@universe/api'
6
+ import type { InAppNotification } from '@luxexchange/api'
7
+ import { ContentStyle } from '@luxexchange/api'
8
8
  import {
9
9
  createLocalTriggerDataSource,
10
10
  getTriggerById,
11
11
  type TriggerCondition,
12
- } from '@universe/notifications/src/notification-data-source/implementations/createLocalTriggerDataSource'
13
- import { type NotificationTracker } from '@universe/notifications/src/notification-tracker/NotificationTracker'
12
+ } from '@luxexchange/notifications/src/notification-data-source/implementations/createLocalTriggerDataSource'
13
+ import { type NotificationTracker } from '@luxexchange/notifications/src/notification-tracker/NotificationTracker'
14
14
  import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
15
15
 
16
16
  function createMockNotification(id: string): InAppNotification {
@@ -1,8 +1,8 @@
1
- import { type InAppNotification } from '@universe/api'
2
- import { createNotificationDataSource } from '@universe/notifications/src/notification-data-source/implementations/createNotificationDataSource'
3
- import { type NotificationDataSource } from '@universe/notifications/src/notification-data-source/NotificationDataSource'
4
- import { type NotificationTracker } from '@universe/notifications/src/notification-tracker/NotificationTracker'
5
- import { getLogger } from 'utilities/src/logger/logger'
1
+ import { type InAppNotification } from '@luxexchange/api'
2
+ import { createNotificationDataSource } from '@luxexchange/notifications/src/notification-data-source/implementations/createNotificationDataSource'
3
+ import { type NotificationDataSource } from '@luxexchange/notifications/src/notification-data-source/NotificationDataSource'
4
+ import { type NotificationTracker } from '@luxexchange/notifications/src/notification-tracker/NotificationTracker'
5
+ import { getLogger } from '@luxfi/utilities/src/logger/logger'
6
6
 
7
7
  /**
8
8
  * Configuration for a single trigger condition.
@@ -6,11 +6,11 @@ import {
6
6
  Notification,
7
7
  PlatformType,
8
8
  } from '@uniswap/client-notification-service/dist/uniswap/notificationservice/v1/api_pb'
9
- import type { InAppNotification, NotificationsApiClient } from '@universe/api'
10
- import { ContentStyle } from '@universe/api'
11
- import { getNotificationQueryOptions } from '@universe/notifications/src/notification-data-source/getNotificationQueryOptions'
12
- import { createPollingNotificationDataSource } from '@universe/notifications/src/notification-data-source/implementations/createPollingNotificationDataSource'
13
- import { ReactQueryCacheKey } from 'utilities/src/reactQuery/cache'
9
+ import type { InAppNotification, NotificationsApiClient } from '@luxexchange/api'
10
+ import { ContentStyle } from '@luxexchange/api'
11
+ import { getNotificationQueryOptions } from '@luxexchange/notifications/src/notification-data-source/getNotificationQueryOptions'
12
+ import { createPollingNotificationDataSource } from '@luxexchange/notifications/src/notification-data-source/implementations/createPollingNotificationDataSource'
13
+ import { ReactQueryCacheKey } from '@luxfi/utilities/src/reactQuery/cache'
14
14
  import { afterEach, beforeEach, describe, expect, it, type Mock, vi } from 'vitest'
15
15
 
16
16
  function createMockNotification(id: string): InAppNotification {
@@ -2,8 +2,8 @@ import { type QueryClient, type QueryKey, QueryObserver } from '@tanstack/react-
2
2
  import { type InAppNotification } from '@luxfi/api'
3
3
  import { createNotificationDataSource } from '@luxfi/notifications/src/notification-data-source/implementations/createNotificationDataSource'
4
4
  import { type NotificationDataSource } from '@luxfi/notifications/src/notification-data-source/NotificationDataSource'
5
- import { getLogger } from 'utilities/src/logger/logger'
6
- import { type QueryOptionsResult } from 'utilities/src/reactQuery/queryOptions'
5
+ import { getLogger } from '@luxfi/utilities/src/logger/logger'
6
+ import { type QueryOptionsResult } from '@luxfi/utilities/src/reactQuery/queryOptions'
7
7
 
8
8
  interface CreatePollingNotificationDataSourceContext<TQueryKey extends QueryKey = QueryKey> {
9
9
  queryClient: QueryClient
@@ -1,9 +1,9 @@
1
- import { type InAppNotification } from '@universe/api'
2
- import { createNotificationDataSource } from '@universe/notifications/src/notification-data-source/implementations/createNotificationDataSource'
3
- import { type NotificationDataSource } from '@universe/notifications/src/notification-data-source/NotificationDataSource'
4
- import { type ReactiveCondition } from '@universe/notifications/src/notification-data-source/types/ReactiveCondition'
5
- import { type NotificationTracker } from '@universe/notifications/src/notification-tracker/NotificationTracker'
6
- import { getLogger } from 'utilities/src/logger/logger'
1
+ import { type InAppNotification } from '@luxexchange/api'
2
+ import { createNotificationDataSource } from '@luxexchange/notifications/src/notification-data-source/implementations/createNotificationDataSource'
3
+ import { type NotificationDataSource } from '@luxexchange/notifications/src/notification-data-source/NotificationDataSource'
4
+ import { type ReactiveCondition } from '@luxexchange/notifications/src/notification-data-source/types/ReactiveCondition'
5
+ import { type NotificationTracker } from '@luxexchange/notifications/src/notification-tracker/NotificationTracker'
6
+ import { getLogger } from '@luxfi/utilities/src/logger/logger'
7
7
 
8
8
  export interface CreateReactiveDataSourceContext<TState> {
9
9
  /** The reactive condition that determines when to show the notification */
@@ -1,4 +1,4 @@
1
- import { type InAppNotification } from '@universe/api'
1
+ import { type InAppNotification } from '@luxexchange/api'
2
2
 
3
3
  /**
4
4
  * A reactive condition for state-driven notifications.
@@ -1,11 +1,11 @@
1
- import { ContentStyle, type InAppNotification, OnClickAction } from '@universe/api'
2
- import { createNotificationProcessor } from '@universe/notifications/src/notification-processor/implementations/createNotificationProcessor'
1
+ import { ContentStyle, type InAppNotification, OnClickAction } from '@luxexchange/api'
2
+ import { createNotificationProcessor } from '@luxexchange/notifications/src/notification-processor/implementations/createNotificationProcessor'
3
3
  import {
4
4
  type NotificationProcessor,
5
5
  type NotificationProcessorResult,
6
- } from '@universe/notifications/src/notification-processor/NotificationProcessor'
7
- import { type NotificationTracker } from '@universe/notifications/src/notification-tracker/NotificationTracker'
8
- import { getLogger } from 'utilities/src/logger/logger'
6
+ } from '@luxexchange/notifications/src/notification-processor/NotificationProcessor'
7
+ import { type NotificationTracker } from '@luxexchange/notifications/src/notification-tracker/NotificationTracker'
8
+ import { getLogger } from '@luxfi/utilities/src/logger/logger'
9
9
 
10
10
  /**
11
11
  * Creates a base notification processor that implements style-based deduplication and limiting,
@@ -1,7 +1,7 @@
1
1
  import { ReactNode } from 'react'
2
- import { Button, Flex, IconButton, styled, Text, useIsDarkMode } from 'ui/src'
3
- import { X } from 'ui/src/components/icons/X'
4
- import { zIndexes } from 'ui/src/theme'
2
+ import { Button, Flex, IconButton, styled, Text, useIsDarkMode } from '@luxfi/ui/src'
3
+ import { X } from '@luxfi/ui/src/components/icons/X'
4
+ import { zIndexes } from '@luxfi/ui/src/theme'
5
5
 
6
6
  const BANNER_WIDTH = 260
7
7
  const BANNER_HEIGHT = 150
@@ -1,11 +1,11 @@
1
1
  import { BackgroundType } from '@uniswap/client-notification-service/dist/uniswap/notificationservice/v1/api_pb'
2
- import type { InAppNotification } from '@universe/api'
2
+ import type { InAppNotification } from '@luxexchange/api'
3
3
  import {
4
4
  BannerTemplate,
5
5
  type BannerTemplateButton,
6
- } from '@universe/notifications/src/notification-renderer/components/BannerTemplate'
7
- import { parseCustomIconLink } from '@universe/notifications/src/notification-renderer/utils/iconUtils'
8
- import { type NotificationClickTarget } from '@universe/notifications/src/notification-service/NotificationService'
6
+ } from '@luxexchange/notifications/src/notification-renderer/components/BannerTemplate'
7
+ import { parseCustomIconLink } from '@luxexchange/notifications/src/notification-renderer/utils/iconUtils'
8
+ import { type NotificationClickTarget } from '@luxexchange/notifications/src/notification-service/NotificationService'
9
9
  import { memo, useMemo } from 'react'
10
10
  import { useTranslation } from 'react-i18next'
11
11
 
@@ -1,21 +1,21 @@
1
- import type { GeneratedIcon } from 'ui/src/components/factories/createIcon'
2
- import { AlertTriangle } from 'ui/src/components/icons/AlertTriangle'
3
- import { Bell } from 'ui/src/components/icons/Bell'
4
- import { Chart } from 'ui/src/components/icons/Chart'
5
- import { CheckCircleFilled } from 'ui/src/components/icons/CheckCircleFilled'
6
- import { Coin } from 'ui/src/components/icons/Coin'
7
- import { CoinConvert } from 'ui/src/components/icons/CoinConvert'
8
- import { EthMini } from 'ui/src/components/icons/EthMini'
9
- import { Gas } from 'ui/src/components/icons/Gas'
10
- import { Gift } from 'ui/src/components/icons/Gift'
11
- import { Globe } from 'ui/src/components/icons/Globe'
12
- import { InfoCircleFilled } from 'ui/src/components/icons/InfoCircleFilled'
13
- import { Lightning } from 'ui/src/components/icons/Lightning'
14
- import { Rocket } from 'ui/src/components/icons/Rocket'
15
- import { SendAction } from 'ui/src/components/icons/SendAction'
16
- import { ShieldCheck } from 'ui/src/components/icons/ShieldCheck'
17
- import { Star } from 'ui/src/components/icons/Star'
18
- import { Wallet } from 'ui/src/components/icons/Wallet'
1
+ import type { GeneratedIcon } from '@luxfi/ui/src/components/factories/createIcon'
2
+ import { AlertTriangle } from '@luxfi/ui/src/components/icons/AlertTriangle'
3
+ import { Bell } from '@luxfi/ui/src/components/icons/Bell'
4
+ import { Chart } from '@luxfi/ui/src/components/icons/Chart'
5
+ import { CheckCircleFilled } from '@luxfi/ui/src/components/icons/CheckCircleFilled'
6
+ import { Coin } from '@luxfi/ui/src/components/icons/Coin'
7
+ import { CoinConvert } from '@luxfi/ui/src/components/icons/CoinConvert'
8
+ import { EthMini } from '@luxfi/ui/src/components/icons/EthMini'
9
+ import { Gas } from '@luxfi/ui/src/components/icons/Gas'
10
+ import { Gift } from '@luxfi/ui/src/components/icons/Gift'
11
+ import { Globe } from '@luxfi/ui/src/components/icons/Globe'
12
+ import { InfoCircleFilled } from '@luxfi/ui/src/components/icons/InfoCircleFilled'
13
+ import { Lightning } from '@luxfi/ui/src/components/icons/Lightning'
14
+ import { Rocket } from '@luxfi/ui/src/components/icons/Rocket'
15
+ import { SendAction } from '@luxfi/ui/src/components/icons/SendAction'
16
+ import { ShieldCheck } from '@luxfi/ui/src/components/icons/ShieldCheck'
17
+ import { Star } from '@luxfi/ui/src/components/icons/Star'
18
+ import { Wallet } from '@luxfi/ui/src/components/icons/Wallet'
19
19
 
20
20
  /**
21
21
  * Map of custom icon names to their corresponding icon components.
@@ -7,7 +7,7 @@ import type {
7
7
  NotificationTracker,
8
8
  TrackingMetadata,
9
9
  } from '@luxfi/notifications/src/notification-tracker/NotificationTracker'
10
- import { sleep } from 'utilities/src/time/timing'
10
+ import { sleep } from '@luxfi/utilities/src/time/timing'
11
11
  import { describe, expect, it, vi } from 'vitest'
12
12
 
13
13
  describe('createNotificationService', () => {
@@ -5,7 +5,7 @@ import {
5
5
  type NotificationServiceConfig,
6
6
  } from '@luxfi/notifications/src/notification-service/NotificationService'
7
7
  import ms from 'ms'
8
- import { getLogger } from 'utilities/src/logger/logger'
8
+ import { getLogger } from '@luxfi/utilities/src/logger/logger'
9
9
 
10
10
  // Module-level singletons to track notification telemetry across service recreations.
11
11
  // This prevents duplicate telemetry events when the service is destroyed
@@ -5,8 +5,8 @@ import {
5
5
  NotificationTracker,
6
6
  TrackingMetadata,
7
7
  } from '@luxfi/notifications/src/notification-tracker/NotificationTracker'
8
- import { getLogger } from 'utilities/src/logger/logger'
9
- import { ReactQueryCacheKey } from 'utilities/src/reactQuery/cache'
8
+ import { getLogger } from '@luxfi/utilities/src/logger/logger'
9
+ import { ReactQueryCacheKey } from '@luxfi/utilities/src/reactQuery/cache'
10
10
 
11
11
  /**
12
12
  * Context for creating an API-based notification tracker