diff --git a/packages/audience/sdk/.eslintrc.cjs b/packages/audience/sdk/.eslintrc.cjs new file mode 100644 index 0000000000..b48069b5a7 --- /dev/null +++ b/packages/audience/sdk/.eslintrc.cjs @@ -0,0 +1,7 @@ +module.exports = { + extends: ['../../../.eslintrc'], + parserOptions: { + project: './tsconfig.eslint.json', + tsconfigRootDir: __dirname, + }, +}; diff --git a/packages/audience/sdk/jest.config.ts b/packages/audience/sdk/jest.config.ts new file mode 100644 index 0000000000..323ad11b09 --- /dev/null +++ b/packages/audience/sdk/jest.config.ts @@ -0,0 +1,15 @@ +import type { Config } from 'jest'; + +const config: Config = { + roots: ['/src'], + moduleDirectories: ['node_modules', 'src'], + testEnvironment: 'jsdom', + transform: { + '^.+\\.(t|j)sx?$': '@swc/jest', + }, + moduleNameMapper: { + '^@imtbl/audience-core$': '/../core/src/index.ts', + }, +}; + +export default config; diff --git a/packages/audience/sdk/package.json b/packages/audience/sdk/package.json new file mode 100644 index 0000000000..6365fce448 --- /dev/null +++ b/packages/audience/sdk/package.json @@ -0,0 +1,59 @@ +{ + "name": "@imtbl/audience-sdk", + "description": "Immutable Audience SDK — consent-aware event tracking and identity management", + "version": "0.0.0", + "author": "Immutable", + "bugs": "https://github.com/immutable/ts-immutable-sdk/issues", + "dependencies": { + "@imtbl/audience-core": "workspace:*" + }, + "devDependencies": { + "@swc/core": "^1.4.2", + "@swc/jest": "^0.2.37", + "@types/jest": "^29.5.12", + "@types/node": "^22.10.7", + "eslint": "^8.56.0", + "jest": "^29.7.0", + "jest-environment-jsdom": "^29.4.3", + "ts-jest": "^29.1.0", + "tsup": "^8.3.0", + "typescript": "^5.6.2" + }, + "engines": { + "node": ">=20.11.0" + }, + "exports": { + "development": { + "types": "./src/index.ts", + "browser": "./dist/browser/index.js", + "require": "./dist/node/index.cjs", + "default": "./dist/node/index.js" + }, + "default": { + "types": "./dist/types/index.d.ts", + "browser": "./dist/browser/index.js", + "require": "./dist/node/index.cjs", + "default": "./dist/node/index.js" + } + }, + "files": ["dist"], + "homepage": "https://github.com/immutable/ts-immutable-sdk#readme", + "main": "dist/node/index.cjs", + "module": "dist/node/index.js", + "browser": "dist/browser/index.js", + "publishConfig": { + "access": "public" + }, + "repository": "immutable/ts-immutable-sdk.git", + "scripts": { + "build": "pnpm transpile && pnpm typegen", + "transpile": "tsup src/index.ts --config ../../../tsup.config.js", + "typegen": "tsc --customConditions default --emitDeclarationOnly --outDir dist/types", + "lint": "eslint ./src --ext .ts,.jsx,.tsx --max-warnings=0", + "test": "jest --passWithNoTests", + "test:watch": "jest --watch", + "typecheck": "tsc --customConditions development --noEmit --jsx preserve" + }, + "type": "module", + "types": "./dist/types/index.d.ts" +} diff --git a/packages/audience/sdk/src/config.ts b/packages/audience/sdk/src/config.ts new file mode 100644 index 0000000000..a889a5c232 --- /dev/null +++ b/packages/audience/sdk/src/config.ts @@ -0,0 +1,6 @@ +// SDK-specific constants. +// Backend endpoints and base URLs come from @imtbl/audience-core. + +export const LIBRARY_NAME = '@imtbl/audience-sdk'; +// Replaced at build time by esbuild replace plugin +export const LIBRARY_VERSION = '__SDK_VERSION__'; diff --git a/packages/audience/sdk/src/context.test.ts b/packages/audience/sdk/src/context.test.ts new file mode 100644 index 0000000000..2444425e0e --- /dev/null +++ b/packages/audience/sdk/src/context.test.ts @@ -0,0 +1,11 @@ +import { collectContext } from './context'; +import { LIBRARY_NAME, LIBRARY_VERSION } from './config'; + +describe('collectContext', () => { + it('should return context with SDK library name and version', () => { + const ctx = collectContext(); + + expect(ctx.library).toBe(LIBRARY_NAME); + expect(ctx.libraryVersion).toBe(LIBRARY_VERSION); + }); +}); diff --git a/packages/audience/sdk/src/context.ts b/packages/audience/sdk/src/context.ts new file mode 100644 index 0000000000..7fec3e8ef6 --- /dev/null +++ b/packages/audience/sdk/src/context.ts @@ -0,0 +1,7 @@ +import type { EventContext } from '@imtbl/audience-core'; +import { collectContext as coreCollectContext } from '@imtbl/audience-core'; +import { LIBRARY_NAME, LIBRARY_VERSION } from './config'; + +export function collectContext(): EventContext { + return coreCollectContext(LIBRARY_NAME, LIBRARY_VERSION); +} diff --git a/packages/audience/sdk/src/debug.test.ts b/packages/audience/sdk/src/debug.test.ts new file mode 100644 index 0000000000..afecf4bb04 --- /dev/null +++ b/packages/audience/sdk/src/debug.test.ts @@ -0,0 +1,81 @@ +import type { Message } from '@imtbl/audience-core'; +import { DebugLogger } from './debug'; + +describe('DebugLogger', () => { + let logSpy: jest.SpyInstance; + let warnSpy: jest.SpyInstance; + + beforeEach(() => { + logSpy = jest.spyOn(console, 'log').mockImplementation(); + warnSpy = jest.spyOn(console, 'warn').mockImplementation(); + }); + + afterEach(() => { + logSpy.mockRestore(); + warnSpy.mockRestore(); + }); + + const stubMessage: Message = { + type: 'track', + messageId: 'msg-1', + eventTimestamp: '2026-01-01T00:00:00Z', + anonymousId: 'anon-1', + surface: 'web', + context: { library: 'test', libraryVersion: '0.0.0' }, + event: 'click', + properties: {}, + }; + + it('should not log when disabled', () => { + const logger = new DebugLogger(false); + logger.logEvent('track', stubMessage); + logger.logFlush(true, 1); + logger.logConsent('none', 'full'); + logger.logWarning('test'); + + expect(logSpy).not.toHaveBeenCalled(); + expect(warnSpy).not.toHaveBeenCalled(); + }); + + it('should log events when enabled', () => { + const logger = new DebugLogger(true); + logger.logEvent('track', stubMessage); + + expect(logSpy).toHaveBeenCalledWith( + '[Immutable Audience] track', + stubMessage, + ); + }); + + it('should log flush status', () => { + const logger = new DebugLogger(true); + + logger.logFlush(true, 5); + expect(logSpy).toHaveBeenCalledWith( + '[Immutable Audience] flush ok (5 messages)', + ); + + logger.logFlush(false, 3); + expect(logSpy).toHaveBeenCalledWith( + '[Immutable Audience] flush failed (3 messages)', + ); + }); + + it('should log consent transitions', () => { + const logger = new DebugLogger(true); + logger.logConsent('none', 'full'); + + expect(logSpy).toHaveBeenCalledWith( + '[Immutable Audience] consent none → full', + ); + }); + + it('should log warnings', () => { + const logger = new DebugLogger(true); + logger.logWarning('something went wrong'); + + expect(warnSpy).toHaveBeenCalledWith( + '[Immutable Audience] something went wrong', + ); + }); +}); diff --git a/packages/audience/sdk/src/debug.ts b/packages/audience/sdk/src/debug.ts new file mode 100644 index 0000000000..7d67bb335e --- /dev/null +++ b/packages/audience/sdk/src/debug.ts @@ -0,0 +1,35 @@ +import type { ConsentLevel, Message } from '@imtbl/audience-core'; + +const PREFIX = '[Immutable Audience]'; + +export class DebugLogger { + private enabled: boolean; + + constructor(enabled = false) { + this.enabled = enabled; + } + + logEvent(method: string, message: Message): void { + if (!this.enabled) return; + // eslint-disable-next-line no-console + console.log(`${PREFIX} ${method}`, message); + } + + logFlush(ok: boolean, count: number): void { + if (!this.enabled) return; + // eslint-disable-next-line no-console + console.log(`${PREFIX} flush ${ok ? 'ok' : 'failed'} (${count} messages)`); + } + + logConsent(from: ConsentLevel, to: ConsentLevel): void { + if (!this.enabled) return; + // eslint-disable-next-line no-console + console.log(`${PREFIX} consent ${from} → ${to}`); + } + + logWarning(msg: string): void { + if (!this.enabled) return; + // eslint-disable-next-line no-console + console.warn(`${PREFIX} ${msg}`); + } +} diff --git a/packages/audience/sdk/src/index.ts b/packages/audience/sdk/src/index.ts new file mode 100644 index 0000000000..23dad10615 --- /dev/null +++ b/packages/audience/sdk/src/index.ts @@ -0,0 +1,3 @@ +export type { AudienceSDKConfig } from './types'; +export { DebugLogger } from './debug'; +export { collectContext } from './context'; diff --git a/packages/audience/sdk/src/types.ts b/packages/audience/sdk/src/types.ts new file mode 100644 index 0000000000..2126c90c57 --- /dev/null +++ b/packages/audience/sdk/src/types.ts @@ -0,0 +1,13 @@ +import type { Environment, ConsentLevel } from '@imtbl/audience-core'; + +/** Configuration for the Immutable Audience SDK. */ +export interface AudienceSDKConfig { + publishableKey: string; + environment: Environment; + /** Defaults to 'none' — no tracking until explicitly opted in. */ + consent?: ConsentLevel; + debug?: boolean; + cookieDomain?: string; + flushInterval?: number; + flushSize?: number; +} diff --git a/packages/audience/sdk/tsconfig.eslint.json b/packages/audience/sdk/tsconfig.eslint.json new file mode 100644 index 0000000000..7a70f2c77d --- /dev/null +++ b/packages/audience/sdk/tsconfig.eslint.json @@ -0,0 +1,5 @@ +{ + "extends": "./tsconfig.json", + "include": ["src"], + "exclude": [] +} diff --git a/packages/audience/sdk/tsconfig.json b/packages/audience/sdk/tsconfig.json new file mode 100644 index 0000000000..f5b8d5a351 --- /dev/null +++ b/packages/audience/sdk/tsconfig.json @@ -0,0 +1,10 @@ +{ + "extends": "../../../tsconfig.base.json", + "compilerOptions": { + "outDir": "./dist", + "rootDirs": ["src"], + "customConditions": ["development"] + }, + "include": ["src"], + "exclude": ["dist", "jest.config.ts", "node_modules", "src/**/*.test.ts"] +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index eb5d3d6e77..94ad8bd3a4 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -68,7 +68,7 @@ importers: version: 17.1.0(@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.0)(typescript@5.6.2))(eslint@8.57.0)(typescript@5.6.2))(@typescript-eslint/parser@5.62.0(eslint@8.57.0)(typescript@5.6.2))(eslint-plugin-import@2.29.1(@typescript-eslint/parser@5.62.0(eslint@8.57.0)(typescript@5.6.2))(eslint@8.57.0))(eslint@8.57.0) eslint-plugin-react-refresh: specifier: latest - version: 0.5.0(eslint@8.57.0) + version: 0.5.2(eslint@8.57.0) events: specifier: ^3.3.0 version: 3.3.0 @@ -138,7 +138,7 @@ importers: version: 0.25.21(@emotion/react@11.11.3(@types/react@18.3.12)(react@18.3.1))(@rive-app/react-canvas-lite@4.9.0(react@18.3.1))(embla-carousel-react@8.1.5(react@18.3.1))(framer-motion@11.18.2(@emotion/is-prop-valid@0.8.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@imtbl/sdk': specifier: latest - version: 2.12.6(typescript@5.6.2) + version: 2.14.3(bufferutil@4.0.8)(hardhat@2.22.6(bufferutil@4.0.8)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.15))(@types/node@20.14.13)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10))(next-auth@5.0.0-beta.30(next@14.2.25(@babel/core@7.26.10)(@playwright/test@1.45.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1))(next@14.2.25(@babel/core@7.26.10)(@playwright/test@1.45.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)(typescript@5.6.2)(utf-8-validate@5.0.10) next: specifier: 14.2.25 version: 14.2.25(@babel/core@7.26.10)(@playwright/test@1.45.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -978,6 +978,43 @@ importers: specifier: ^5.6.2 version: 5.6.2 + packages/audience/sdk: + dependencies: + '@imtbl/audience-core': + specifier: workspace:* + version: link:../core + devDependencies: + '@swc/core': + specifier: ^1.4.2 + version: 1.15.3(@swc/helpers@0.5.15) + '@swc/jest': + specifier: ^0.2.37 + version: 0.2.37(@swc/core@1.15.3(@swc/helpers@0.5.15)) + '@types/jest': + specifier: ^29.5.12 + version: 29.5.14 + '@types/node': + specifier: ^22.10.7 + version: 22.19.7 + eslint: + specifier: ^8.56.0 + version: 8.57.0 + jest: + specifier: ^29.7.0 + version: 29.7.0(@types/node@22.19.7)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2) + jest-environment-jsdom: + specifier: ^29.4.3 + version: 29.6.1(bufferutil@4.0.8)(utf-8-validate@5.0.10) + ts-jest: + specifier: ^29.1.0 + version: 29.2.5(@babel/core@7.26.10)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.10))(esbuild@0.23.1)(jest@29.7.0(@types/node@22.19.7)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2))(typescript@5.6.2) + tsup: + specifier: ^8.3.0 + version: 8.3.0(@swc/core@1.15.3(@swc/helpers@0.5.15))(jiti@1.21.0)(postcss@8.4.49)(typescript@5.6.2)(yaml@2.5.0) + typescript: + specifier: ^5.6.2 + version: 5.6.2 + packages/auth: dependencies: '@imtbl/generated-clients': @@ -1065,7 +1102,7 @@ importers: version: 15.5.10(@babel/core@7.26.10)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) next-auth: specifier: ^5.0.0-beta.30 - version: 5.0.0-beta.30(next@15.5.10(@babel/core@7.26.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) + version: 5.0.0-beta.30(next@15.5.10(@babel/core@7.26.10)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) react: specifier: ^18.2.0 version: 18.3.1 @@ -4374,21 +4411,46 @@ packages: cpu: [x64] os: [win32] - '@imtbl/auth@2.12.6': - resolution: {integrity: sha512-ufyh6XUfJ2JooE9i3F/lQvara+9KlpHnchtbkMeOEE3Dmxz1oR7idx6DTXcGwCaQ0wuDgTe/bH4JoZkddJ1vQw==} + '@imtbl/auth-next-client@2.14.3': + resolution: {integrity: sha512-QrAEQG7Nhw0BmzUydeXHydIzBiZvAoYJYcdwc7cX6HeTAwIqRejFWmsvkGZckmgReXCjblvhfQzeQi0WIr2phw==} + peerDependencies: + next: ^14.0.0 || ^15.0.0 + next-auth: ^5.0.0-beta.25 + react: ^18.2.0 || ^19.0.0 + peerDependenciesMeta: + next: + optional: true + next-auth: + optional: true + react: + optional: true - '@imtbl/blockchain-data@2.12.6': - resolution: {integrity: sha512-87KLXVcZkCqWjYr47ILzxAcPzoLHhJqJxMRQmpAkp2rkHjH52T4uurLHu3sjK4be0noAjORvj5Bh9rbkzwzaZw==} + '@imtbl/auth-next-server@2.14.3': + resolution: {integrity: sha512-xdBS+8oicbNx0dXjKbDyEiN0dKd4L/n2ToN7Yx2saoBNHu0QFitS6W0asw/5Q1e27G7MWhR1lflZPThdFhWyYw==} + peerDependencies: + next: ^14.0.0 || ^15.0.0 + next-auth: ^5.0.0-beta.25 + peerDependenciesMeta: + next: + optional: true + next-auth: + optional: true - '@imtbl/bridge-sdk@2.12.6': - resolution: {integrity: sha512-jKqGVoLd5OD5U2cMHqxTl2E+j++fHdHNdhU7tSOD2wfg3Pu/Gl6Lkb0/pZgICWZxImJuBHYPVY7jA4ruqhcvjw==} + '@imtbl/auth@2.14.3': + resolution: {integrity: sha512-0Pu0hym1NwHGReR8TiIrPRrIUmw2/7bm27MuwOGcBgMrQDbNvjbejxPF/O2zuEE0H7JNC87DFOFL+dmh5sfhyQ==} + + '@imtbl/blockchain-data@2.14.3': + resolution: {integrity: sha512-5a2GhR3pkXcxPgy7Tj7YpkKX/WoF3PkmTAZ8PCHJ6uzvhr/7gyv0FK5SerovgVoUdckWtMX2Bu0q9P4Do1jpPw==} + + '@imtbl/bridge-sdk@2.14.3': + resolution: {integrity: sha512-kof0gLwK9UHG1kNYVCnx2m2rZoQfimFLvbSKa9yznK6hrydzSmMcps3JuYn00NJ9LyVVJnpqYtgjMytbiJWVyg==} engines: {node: '>=20.11.0'} - '@imtbl/checkout-sdk@2.12.6': - resolution: {integrity: sha512-Oafxw1gQfOWBce9o+avG+SZKzbxInIEJPOQS2hBsxwGXjslh0+v/YauPH4RQnA+r8rF45d7p3J15eAcTtFUsTg==} + '@imtbl/checkout-sdk@2.14.3': + resolution: {integrity: sha512-a2k/iZIndsgM7rSeUxjj2F+JQh+03wm4DTEV81bTDVtTdAGCdXz9mZvT2WSWjelM24a02Vfjrpc/0edZ4CGzHQ==} - '@imtbl/config@2.12.6': - resolution: {integrity: sha512-CwfFneBWCW3NMW+XRHEQlJ2fYo8q0qi1tJ6AOM0S5pMsZjjsXZsn1VsZFMjN+HvsYEdKyiOLBQORMjVrRr1ZGw==} + '@imtbl/config@2.14.3': + resolution: {integrity: sha512-8HMf9jlINIhDZCQYVdVI9B9Mt4hXz+MnsoZ6guCtLKxQli5Tqa5c/uvhgB+IKdxmdqnLndzezzHsR94KjV3CQg==} engines: {node: '>=20.11.0'} '@imtbl/contracts@2.2.18': @@ -4397,54 +4459,65 @@ packages: '@imtbl/contracts@2.2.6': resolution: {integrity: sha512-2cfE3Tojfp4GnxwVKSwoZY1CWd+/drCIbCKawyH9Nh2zASXd7VC71lo27aD5RnCweXHkZVhPzjqwQf/xrtnmIQ==} - '@imtbl/dex-sdk@2.12.6': - resolution: {integrity: sha512-EdjdUuX+0afXBh9QHS+Wpm6SjDQkrVv3fVTyHu7+2PzNLUBGp31SJAPBCYIIiJ5brBbfS4ctVLq+dv+GnTchfw==} + '@imtbl/dex-sdk@2.14.3': + resolution: {integrity: sha512-L9mrM8cMO2mvZV3gwltvNix2P3O3NszXvOdJgjJG/Dgkt01BzakDSnCnDrAvcAceWFXnhQHmJ8WRlgfqvBGe9w==} engines: {node: '>=20.11.0'} - '@imtbl/generated-clients@2.12.6': - resolution: {integrity: sha512-kc9SOuG1Q3gWP39kRnTjSUyiw9GuQGi1mTtB/T0lTQ9CJ0P5fOEDqQNTt36iALGMuOrFci9B1TyNaj+2S+cX9w==} + '@imtbl/generated-clients@2.14.3': + resolution: {integrity: sha512-ExTBNcPIV/mxEmpECaY94oES+bClmS73/0BSJ/lLlJU4oUKFESvY1+473lIomBtKXuASoHJtOO5Hl2Tq560qGA==} engines: {node: '>=20.11.0'} '@imtbl/image-resizer-utils@0.0.3': resolution: {integrity: sha512-/EOJKMJF4gD/Dv0qNhpUTpp2AgWeQ7XgYK9Xjl+xP2WWgaarNv1SHe1aeqSb8aZT5W7wSXdUGzn6TIxNsuCWGw==} - '@imtbl/metrics@2.12.6': - resolution: {integrity: sha512-NFw10TNGcPEqkAIgO0/cyLJWSOfkvU2taWguB5lWAlP8uWY0YqULMdzYGwAwSiyWgfDANqmTHfs96F4jMFmkMA==} + '@imtbl/metrics@2.14.3': + resolution: {integrity: sha512-AjiYEtdDzYqJ9Aba+XbCAw/qYTIOPzHC3Bhods+bcb97Iz4JHhUnHAKqaZSRChjpewd2Md6+gyCb/MZhVPQ8xQ==} engines: {node: '>=20.11.0'} - '@imtbl/minting-backend@2.12.6': - resolution: {integrity: sha512-cgcygWPWTcjP4ZUeIJ/r1OriqSKmss7L7nj+KLnsAiy8oRsgoWOni8nno8Q+n9f7yWsRRfleSOhXjo0aIb9mGw==} + '@imtbl/minting-backend@2.14.3': + resolution: {integrity: sha512-OerMKE+jSCyg/X/obJeUlL2IcoVQv6C6F5CkleaNVjKzMavx4B8RIlu6xopcxDNDxfe6XrOUa7SmQH71kqsuWw==} - '@imtbl/orderbook@2.12.6': - resolution: {integrity: sha512-63Qyb7v8JsV87L46RAMElX9I8EsEsxXQ7TfOPCD7cR7I7ROY88cAd9qSRsUacrUVrNuPLUHgjogfCWQTnPgU/w==} + '@imtbl/orderbook@2.14.3': + resolution: {integrity: sha512-/sIogHCf8xzFubp3euRxBBI1F+i10TCBVWZHUDggpd7EoCfhdrRYWegbmmDEXx80RnXR0ZXIZiwP6EwXyVm2LQ==} - '@imtbl/passport@2.12.6': - resolution: {integrity: sha512-pRMnB2os13h5YlCI9hI7TTQsjqr2S9mAT2/ZHZbyagRKy/yXcw0AOiPdV8pzYK9gyy52Po0S6Zmae5GN8x+DvA==} + '@imtbl/passport@2.14.3': + resolution: {integrity: sha512-v86T14+HwuaNcli0TB7r4iDv2QIGBmif0T4vWkK1b+Mch9HN2/2C8T1/W4pG0rwMqMxybDKs45CzIedbfhGL1g==} engines: {node: '>=20.11.0'} '@imtbl/react-analytics@0.3.4-alpha': resolution: {integrity: sha512-4VWvfm8RZtpLub7+x2D2wNQ507nIVBCSAPA7B5lxdb0cKrHEujM6Y/HScMImHZHvgjUFQT1jiD9b2BL/DS43Pg==} - '@imtbl/sdk@2.12.6': - resolution: {integrity: sha512-XOEtWHfOMfNGgjwxZcqIspiTpjzJ5+zpaOagiBJMLAvX105HzldF95wiqFZ/8eS97ybjc3bjVObgrzGQt1g3QA==} + '@imtbl/sdk@2.14.3': + resolution: {integrity: sha512-ewZx3Fgm9ebVSfgTjkemnovTNjYAKPJHYMQCrI16rh3AQeGSo830/dd+g7gJ1Y7MJms2llmbXAh4F6Fv/9jxrQ==} engines: {node: '>=20.0.0'} + peerDependencies: + next: ^14.2.0 || ^15.0.0 + next-auth: ^5.0.0-beta.25 + react: ^18.2.0 || ^19.0.0 + peerDependenciesMeta: + next: + optional: true + next-auth: + optional: true + react: + optional: true - '@imtbl/toolkit@2.12.6': - resolution: {integrity: sha512-VZD6d1N1yupD7KDWmUdXAajWDGLbrtmyONNJNUM8rFU8MKSG1EVGmAwnrR/N+KuKHslBQcN3hA+1DoBC6cNmdA==} + '@imtbl/toolkit@2.14.3': + resolution: {integrity: sha512-1jMRwjQkAHa5uoJHfhrrrgM3TghrzhjehuaGIH+ezi3ajjOP9JBljnM3ne5P3OJ5CeRU5UV0F8U11NCiTFKWzA==} engines: {node: '>=20.11.0'} - '@imtbl/wallet@2.12.6': - resolution: {integrity: sha512-RnKL1+qt3dgkwmSSwBJoAwHctqLoRs21D41CENTWRR4qnkW8YniECYW2Z8EkttpWHaYAWVI/uc4T6588P77Z5w==} + '@imtbl/wallet@2.14.3': + resolution: {integrity: sha512-2nBz38j75hBNLCiGd1jbkz/18qFEB0weMTZi6aoB5haEe1GsuSuK3eF1wgjLSUDTeM3lcnLnV43IEma+IJfgiw==} - '@imtbl/webhook@2.12.6': - resolution: {integrity: sha512-3L3RkksQxX4ri96qaGIK/jH13oECZ7/n4H6Nn7GAaJsDmXKb5uA0v8tSgtKzicuN56shyOlqanSurIPvatwBSQ==} + '@imtbl/webhook@2.14.3': + resolution: {integrity: sha512-gpdn5mQhrd49veiYmxSnu0Vr9f/rC4sXCpH67S/H3MCsLWmtI+rG08ku1Y+P3xpcOw389FZZgBF0iKPqjNH0nA==} - '@imtbl/x-client@2.12.6': - resolution: {integrity: sha512-dDUTR9jLapN3dA3QulCGpCN3RI7xDLy/lyAYSl3j2JqOe2KwFYLBnTt+7+FumK4Kl7wLD7H78k5mkkZYbzio9g==} + '@imtbl/x-client@2.14.3': + resolution: {integrity: sha512-5e09vlEcRQYlbMabf+3G30CzcZecqy+hdroBM76OJBWUzogBEmdiKrWFXpfedF4qgQD82z5Q3y2thDa45LT3lQ==} engines: {node: '>=20.11.0'} - '@imtbl/x-provider@2.12.6': - resolution: {integrity: sha512-e0w570ekiAvU3V0T7cOjTvekrfYTYubvpkVxd2VgsPFWBPUBf1b3VUjryqmpHqj2HJLU9evbtp3iyLvtLmKmqA==} + '@imtbl/x-provider@2.14.3': + resolution: {integrity: sha512-67plb5nlfUDEyBFRITDQvvC6EGLRwO9CbDtwDQbiHW9ar/mNXk7augmoo0dDlhR6tr61Y3wI1TaT6/94BXEAug==} engines: {node: '>=20.11.0'} '@ioredis/commands@1.2.0': @@ -10282,10 +10355,10 @@ packages: peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 - eslint-plugin-react-refresh@0.5.0: - resolution: {integrity: sha512-ZYvmh7VfVgqR/7wR71I3Zl6hK/C5CcxdWYKZSpHawS5JCNgE4efhQWg/+/WPpgGAp9Ngp/rRZYyaIwmPQBq/lA==} + eslint-plugin-react-refresh@0.5.2: + resolution: {integrity: sha512-hmgTH57GfzoTFjVN0yBwTggnsVUF2tcqi7RJZHqi9lIezSs4eFyAMktA68YD4r5kNw1mxyY4dmkyoFDb3FIqrA==} peerDependencies: - eslint: '>=9' + eslint: ^9 || ^10 eslint-plugin-react@7.35.0: resolution: {integrity: sha512-v501SSMOWv8gerHkk+IIQBkcGRGrO2nfybfj5pLxuJNFTPxxA3PSryhXTK+9pNbtkggheDdsC0E9Q8CuPk6JKA==} @@ -14588,6 +14661,7 @@ packages: engines: {node: '>=0.6.0', teleport: '>=0.2.0'} deprecated: |- You or someone you depend on is using Q, the JavaScript Promise library that gave JavaScript developers strong feelings about promises. They can almost certainly migrate to the native JavaScript promise now. Thank you literally everyone for joining me in this bet against the odds. Be excellent to each other. + (For a CapTP with native promises, see @endo/eventual-send and @endo/captp) qr-code-styling@1.6.0-rc.1: @@ -19853,7 +19927,7 @@ snapshots: '@ethereumjs/wallet@2.0.4': dependencies: '@ethereumjs/util': 9.1.0 - '@scure/base': 1.1.7 + '@scure/base': 1.2.6 ethereum-cryptography: 2.2.1 js-md5: 0.8.3 uuid: 9.0.1 @@ -20241,26 +20315,42 @@ snapshots: '@img/sharp-win32-x64@0.34.5': optional: true - '@imtbl/auth@2.12.6': + '@imtbl/auth-next-client@2.14.3(next-auth@5.0.0-beta.30(next@14.2.25(@babel/core@7.26.10)(@playwright/test@1.45.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1))(next@14.2.25(@babel/core@7.26.10)(@playwright/test@1.45.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)': + dependencies: + '@imtbl/auth': 2.14.3 + '@imtbl/auth-next-server': 2.14.3(next-auth@5.0.0-beta.30(next@14.2.25(@babel/core@7.26.10)(@playwright/test@1.45.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1))(next@14.2.25(@babel/core@7.26.10)(@playwright/test@1.45.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + optionalDependencies: + next: 14.2.25(@babel/core@7.26.10)(@playwright/test@1.45.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + next-auth: 5.0.0-beta.30(next@14.2.25(@babel/core@7.26.10)(@playwright/test@1.45.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) + react: 18.3.1 + transitivePeerDependencies: + - debug + + '@imtbl/auth-next-server@2.14.3(next-auth@5.0.0-beta.30(next@14.2.25(@babel/core@7.26.10)(@playwright/test@1.45.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1))(next@14.2.25(@babel/core@7.26.10)(@playwright/test@1.45.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))': + optionalDependencies: + next: 14.2.25(@babel/core@7.26.10)(@playwright/test@1.45.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + next-auth: 5.0.0-beta.30(next@14.2.25(@babel/core@7.26.10)(@playwright/test@1.45.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) + + '@imtbl/auth@2.14.3': dependencies: - '@imtbl/generated-clients': 2.12.6 - '@imtbl/metrics': 2.12.6 + '@imtbl/generated-clients': 2.14.3 + '@imtbl/metrics': 2.14.3 localforage: 1.10.0 oidc-client-ts: 3.4.1 transitivePeerDependencies: - debug - '@imtbl/blockchain-data@2.12.6': + '@imtbl/blockchain-data@2.14.3': dependencies: - '@imtbl/config': 2.12.6 - '@imtbl/generated-clients': 2.12.6 + '@imtbl/config': 2.14.3 + '@imtbl/generated-clients': 2.14.3 axios: 1.7.7 transitivePeerDependencies: - debug - '@imtbl/bridge-sdk@2.12.6': + '@imtbl/bridge-sdk@2.14.3(bufferutil@4.0.8)(utf-8-validate@5.0.10)': dependencies: - '@imtbl/config': 2.12.6 + '@imtbl/config': 2.14.3 '@jest/globals': 29.7.0 axios: 1.7.7 ethers: 6.13.5(bufferutil@4.0.8)(utf-8-validate@5.0.10) @@ -20270,16 +20360,16 @@ snapshots: - supports-color - utf-8-validate - '@imtbl/checkout-sdk@2.12.6(typescript@5.6.2)': + '@imtbl/checkout-sdk@2.14.3(bufferutil@4.0.8)(hardhat@2.22.6(bufferutil@4.0.8)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.15))(@types/node@20.14.13)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10))(typescript@5.6.2)(utf-8-validate@5.0.10)': dependencies: - '@imtbl/blockchain-data': 2.12.6 - '@imtbl/bridge-sdk': 2.12.6 - '@imtbl/config': 2.12.6 - '@imtbl/dex-sdk': 2.12.6 - '@imtbl/generated-clients': 2.12.6 - '@imtbl/metrics': 2.12.6 - '@imtbl/orderbook': 2.12.6 - '@imtbl/passport': 2.12.6(typescript@5.6.2) + '@imtbl/blockchain-data': 2.14.3 + '@imtbl/bridge-sdk': 2.14.3(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@imtbl/config': 2.14.3 + '@imtbl/dex-sdk': 2.14.3(bufferutil@4.0.8)(hardhat@2.22.6(bufferutil@4.0.8)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.15))(@types/node@20.14.13)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10) + '@imtbl/generated-clients': 2.14.3 + '@imtbl/metrics': 2.14.3 + '@imtbl/orderbook': 2.14.3(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@imtbl/passport': 2.14.3(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10) '@metamask/detect-provider': 2.0.0 axios: 1.7.7 ethers: 6.13.5(bufferutil@4.0.8)(utf-8-validate@5.0.10) @@ -20294,9 +20384,9 @@ snapshots: - utf-8-validate - zod - '@imtbl/config@2.12.6': + '@imtbl/config@2.14.3': dependencies: - '@imtbl/metrics': 2.12.6 + '@imtbl/metrics': 2.14.3 '@imtbl/contracts@2.2.18(bufferutil@4.0.8)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.15))(@types/node@22.19.7)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10)': dependencies: @@ -20341,19 +20431,19 @@ snapshots: - typescript - utf-8-validate - '@imtbl/dex-sdk@2.12.6': + '@imtbl/dex-sdk@2.14.3(bufferutil@4.0.8)(hardhat@2.22.6(bufferutil@4.0.8)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.15))(@types/node@20.14.13)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10)': dependencies: - '@imtbl/config': 2.12.6 + '@imtbl/config': 2.14.3 '@uniswap/sdk-core': 3.2.3 - '@uniswap/swap-router-contracts': 1.3.1(hardhat@2.22.6(bufferutil@4.0.8)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.15))(@types/node@22.19.7)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10)) - '@uniswap/v3-sdk': 3.10.0(hardhat@2.22.6(bufferutil@4.0.8)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.15))(@types/node@22.19.7)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10)) + '@uniswap/swap-router-contracts': 1.3.1(hardhat@2.22.6(bufferutil@4.0.8)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.15))(@types/node@20.14.13)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10)) + '@uniswap/v3-sdk': 3.10.0(hardhat@2.22.6(bufferutil@4.0.8)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.15))(@types/node@20.14.13)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10)) ethers: 6.13.5(bufferutil@4.0.8)(utf-8-validate@5.0.10) transitivePeerDependencies: - bufferutil - hardhat - utf-8-validate - '@imtbl/generated-clients@2.12.6': + '@imtbl/generated-clients@2.14.3': dependencies: axios: 1.7.7 transitivePeerDependencies: @@ -20363,18 +20453,18 @@ snapshots: dependencies: buffer: 6.0.3 - '@imtbl/metrics@2.12.6': + '@imtbl/metrics@2.14.3': dependencies: global-const: 0.1.2 lru-memorise: 0.3.0 - '@imtbl/minting-backend@2.12.6': + '@imtbl/minting-backend@2.14.3': dependencies: - '@imtbl/blockchain-data': 2.12.6 - '@imtbl/config': 2.12.6 - '@imtbl/generated-clients': 2.12.6 - '@imtbl/metrics': 2.12.6 - '@imtbl/webhook': 2.12.6 + '@imtbl/blockchain-data': 2.14.3 + '@imtbl/config': 2.14.3 + '@imtbl/generated-clients': 2.14.3 + '@imtbl/metrics': 2.14.3 + '@imtbl/webhook': 2.14.3 uuid: 9.0.1 optionalDependencies: pg: 8.11.5 @@ -20383,10 +20473,10 @@ snapshots: - debug - pg-native - '@imtbl/orderbook@2.12.6': + '@imtbl/orderbook@2.14.3(bufferutil@4.0.8)(utf-8-validate@5.0.10)': dependencies: - '@imtbl/config': 2.12.6 - '@imtbl/metrics': 2.12.6 + '@imtbl/config': 2.14.3 + '@imtbl/metrics': 2.14.3 '@opensea/seaport-js': 4.0.3(bufferutil@4.0.8)(utf-8-validate@5.0.10) axios: 1.7.7 ethers: 6.13.5(bufferutil@4.0.8)(utf-8-validate@5.0.10) @@ -20397,16 +20487,16 @@ snapshots: - debug - utf-8-validate - '@imtbl/passport@2.12.6(typescript@5.6.2)': + '@imtbl/passport@2.14.3(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)': dependencies: - '@imtbl/auth': 2.12.6 - '@imtbl/config': 2.12.6 - '@imtbl/generated-clients': 2.12.6 - '@imtbl/metrics': 2.12.6 - '@imtbl/toolkit': 2.12.6 - '@imtbl/wallet': 2.12.6(typescript@5.6.2) - '@imtbl/x-client': 2.12.6 - '@imtbl/x-provider': 2.12.6 + '@imtbl/auth': 2.14.3 + '@imtbl/config': 2.14.3 + '@imtbl/generated-clients': 2.14.3 + '@imtbl/metrics': 2.14.3 + '@imtbl/toolkit': 2.14.3(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@imtbl/wallet': 2.14.3(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10) + '@imtbl/x-client': 2.14.3(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@imtbl/x-provider': 2.14.3(bufferutil@4.0.8)(utf-8-validate@5.0.10) ethers: 6.13.5(bufferutil@4.0.8)(utf-8-validate@5.0.10) localforage: 1.10.0 oidc-client-ts: 3.4.1 @@ -20425,19 +20515,25 @@ snapshots: - encoding - supports-color - '@imtbl/sdk@2.12.6(typescript@5.6.2)': - dependencies: - '@imtbl/auth': 2.12.6 - '@imtbl/blockchain-data': 2.12.6 - '@imtbl/checkout-sdk': 2.12.6(typescript@5.6.2) - '@imtbl/config': 2.12.6 - '@imtbl/minting-backend': 2.12.6 - '@imtbl/orderbook': 2.12.6 - '@imtbl/passport': 2.12.6(typescript@5.6.2) - '@imtbl/wallet': 2.12.6(typescript@5.6.2) - '@imtbl/webhook': 2.12.6 - '@imtbl/x-client': 2.12.6 - '@imtbl/x-provider': 2.12.6 + '@imtbl/sdk@2.14.3(bufferutil@4.0.8)(hardhat@2.22.6(bufferutil@4.0.8)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.15))(@types/node@20.14.13)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10))(next-auth@5.0.0-beta.30(next@14.2.25(@babel/core@7.26.10)(@playwright/test@1.45.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1))(next@14.2.25(@babel/core@7.26.10)(@playwright/test@1.45.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)(typescript@5.6.2)(utf-8-validate@5.0.10)': + dependencies: + '@imtbl/auth': 2.14.3 + '@imtbl/auth-next-client': 2.14.3(next-auth@5.0.0-beta.30(next@14.2.25(@babel/core@7.26.10)(@playwright/test@1.45.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1))(next@14.2.25(@babel/core@7.26.10)(@playwright/test@1.45.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) + '@imtbl/auth-next-server': 2.14.3(next-auth@5.0.0-beta.30(next@14.2.25(@babel/core@7.26.10)(@playwright/test@1.45.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1))(next@14.2.25(@babel/core@7.26.10)(@playwright/test@1.45.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + '@imtbl/blockchain-data': 2.14.3 + '@imtbl/checkout-sdk': 2.14.3(bufferutil@4.0.8)(hardhat@2.22.6(bufferutil@4.0.8)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.15))(@types/node@20.14.13)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10))(typescript@5.6.2)(utf-8-validate@5.0.10) + '@imtbl/config': 2.14.3 + '@imtbl/minting-backend': 2.14.3 + '@imtbl/orderbook': 2.14.3(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@imtbl/passport': 2.14.3(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10) + '@imtbl/wallet': 2.14.3(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10) + '@imtbl/webhook': 2.14.3 + '@imtbl/x-client': 2.14.3(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@imtbl/x-provider': 2.14.3(bufferutil@4.0.8)(utf-8-validate@5.0.10) + optionalDependencies: + next: 14.2.25(@babel/core@7.26.10)(@playwright/test@1.45.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + next-auth: 5.0.0-beta.30(next@14.2.25(@babel/core@7.26.10)(@playwright/test@1.45.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) + react: 18.3.1 transitivePeerDependencies: - bufferutil - debug @@ -20448,9 +20544,9 @@ snapshots: - utf-8-validate - zod - '@imtbl/toolkit@2.12.6': + '@imtbl/toolkit@2.14.3(bufferutil@4.0.8)(utf-8-validate@5.0.10)': dependencies: - '@imtbl/x-client': 2.12.6 + '@imtbl/x-client': 2.14.3(bufferutil@4.0.8)(utf-8-validate@5.0.10) '@metamask/detect-provider': 2.0.0 axios: 1.7.7 bn.js: 5.2.1 @@ -20462,11 +20558,11 @@ snapshots: - debug - utf-8-validate - '@imtbl/wallet@2.12.6(typescript@5.6.2)': + '@imtbl/wallet@2.14.3(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10)': dependencies: - '@imtbl/auth': 2.12.6 - '@imtbl/generated-clients': 2.12.6 - '@imtbl/metrics': 2.12.6 + '@imtbl/auth': 2.14.3 + '@imtbl/generated-clients': 2.14.3 + '@imtbl/metrics': 2.14.3 viem: 2.18.2(bufferutil@4.0.8)(typescript@5.6.2)(utf-8-validate@5.0.10) transitivePeerDependencies: - bufferutil @@ -20475,19 +20571,19 @@ snapshots: - utf-8-validate - zod - '@imtbl/webhook@2.12.6': + '@imtbl/webhook@2.14.3': dependencies: - '@imtbl/config': 2.12.6 - '@imtbl/generated-clients': 2.12.6 + '@imtbl/config': 2.14.3 + '@imtbl/generated-clients': 2.14.3 sns-validator: 0.3.5 transitivePeerDependencies: - debug - '@imtbl/x-client@2.12.6': + '@imtbl/x-client@2.14.3(bufferutil@4.0.8)(utf-8-validate@5.0.10)': dependencies: '@ethereumjs/wallet': 2.0.4 - '@imtbl/config': 2.12.6 - '@imtbl/generated-clients': 2.12.6 + '@imtbl/config': 2.14.3 + '@imtbl/generated-clients': 2.14.3 axios: 1.7.7 bn.js: 5.2.1 elliptic: 6.6.1 @@ -20499,12 +20595,12 @@ snapshots: - debug - utf-8-validate - '@imtbl/x-provider@2.12.6': + '@imtbl/x-provider@2.14.3(bufferutil@4.0.8)(utf-8-validate@5.0.10)': dependencies: - '@imtbl/config': 2.12.6 - '@imtbl/generated-clients': 2.12.6 - '@imtbl/toolkit': 2.12.6 - '@imtbl/x-client': 2.12.6 + '@imtbl/config': 2.14.3 + '@imtbl/generated-clients': 2.14.3 + '@imtbl/toolkit': 2.14.3(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@imtbl/x-client': 2.14.3(bufferutil@4.0.8)(utf-8-validate@5.0.10) '@metamask/detect-provider': 2.0.0 axios: 1.7.7 enc-utils: 3.0.0 @@ -20650,6 +20746,43 @@ snapshots: - ts-node - utf-8-validate + '@jest/core@29.7.0(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)': + dependencies: + '@jest/console': 29.7.0 + '@jest/reporters': 29.7.0(node-notifier@8.0.2) + '@jest/test-result': 29.7.0 + '@jest/transform': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 20.14.13 + ansi-escapes: 4.3.2 + chalk: 4.1.2 + ci-info: 3.8.0 + exit: 0.1.2 + graceful-fs: 4.2.11 + jest-changed-files: 29.7.0 + jest-config: 29.7.0(@types/node@20.14.13)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.15))(@types/node@20.14.13)(typescript@5.6.2)) + jest-haste-map: 29.7.0 + jest-message-util: 29.7.0 + jest-regex-util: 29.6.3 + jest-resolve: 29.7.0 + jest-resolve-dependencies: 29.7.0 + jest-runner: 29.7.0 + jest-runtime: 29.7.0 + jest-snapshot: 29.7.0 + jest-util: 29.7.0 + jest-validate: 29.7.0 + jest-watcher: 29.7.0 + micromatch: 4.0.5 + pretty-format: 29.7.0 + slash: 3.0.0 + strip-ansi: 6.0.1 + optionalDependencies: + node-notifier: 8.0.2 + transitivePeerDependencies: + - babel-plugin-macros + - supports-color + - ts-node + '@jest/core@29.7.0(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.15))(@types/node@20.14.13)(typescript@5.6.2))': dependencies: '@jest/console': 29.7.0 @@ -25067,6 +25200,17 @@ snapshots: tiny-invariant: 1.3.1 toformat: 2.0.0 + '@uniswap/swap-router-contracts@1.3.1(hardhat@2.22.6(bufferutil@4.0.8)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.15))(@types/node@20.14.13)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10))': + dependencies: + '@openzeppelin/contracts': 3.4.2 + '@uniswap/v2-core': 1.0.1 + '@uniswap/v3-core': 1.0.0 + '@uniswap/v3-periphery': 1.4.4 + dotenv: 14.3.2 + hardhat-watcher: 2.5.0(hardhat@2.22.6(bufferutil@4.0.8)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.15))(@types/node@20.14.13)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10)) + transitivePeerDependencies: + - hardhat + '@uniswap/swap-router-contracts@1.3.1(hardhat@2.22.6(bufferutil@4.0.8)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.15))(@types/node@22.19.7)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10))': dependencies: '@openzeppelin/contracts': 3.4.2 @@ -25098,6 +25242,19 @@ snapshots: '@uniswap/v3-core': 1.0.0 base64-sol: 1.0.1 + '@uniswap/v3-sdk@3.10.0(hardhat@2.22.6(bufferutil@4.0.8)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.15))(@types/node@20.14.13)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10))': + dependencies: + '@ethersproject/abi': 5.7.0 + '@ethersproject/solidity': 5.7.0 + '@uniswap/sdk-core': 4.0.6 + '@uniswap/swap-router-contracts': 1.3.1(hardhat@2.22.6(bufferutil@4.0.8)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.15))(@types/node@20.14.13)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10)) + '@uniswap/v3-periphery': 1.4.3 + '@uniswap/v3-staker': 1.0.0 + tiny-invariant: 1.3.1 + tiny-warning: 1.0.3 + transitivePeerDependencies: + - hardhat + '@uniswap/v3-sdk@3.10.0(hardhat@2.22.6(bufferutil@4.0.8)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.15))(@types/node@22.19.7)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10))': dependencies: '@ethersproject/abi': 5.7.0 @@ -27239,6 +27396,21 @@ snapshots: - supports-color - ts-node + create-jest@29.7.0(@types/node@22.19.7)(babel-plugin-macros@3.1.0): + dependencies: + '@jest/types': 29.6.3 + chalk: 4.1.2 + exit: 0.1.2 + graceful-fs: 4.2.11 + jest-config: 29.7.0(@types/node@22.19.7)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.15))(@types/node@22.19.7)(typescript@5.6.2)) + jest-util: 29.7.0 + prompts: 2.4.2 + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - supports-color + - ts-node + create-jest@29.7.0(@types/node@22.19.7)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.15))(@types/node@22.19.7)(typescript@5.6.2)): dependencies: '@jest/types': 29.6.3 @@ -28572,7 +28744,7 @@ snapshots: dependencies: eslint: 8.57.0 - eslint-plugin-react-refresh@0.5.0(eslint@8.57.0): + eslint-plugin-react-refresh@0.5.2(eslint@8.57.0): dependencies: eslint: 8.57.0 @@ -29844,6 +30016,11 @@ snapshots: - debug - utf-8-validate + hardhat-watcher@2.5.0(hardhat@2.22.6(bufferutil@4.0.8)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.15))(@types/node@20.14.13)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10)): + dependencies: + chokidar: 3.6.0 + hardhat: 2.22.6(bufferutil@4.0.8)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.15))(@types/node@20.14.13)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10) + hardhat-watcher@2.5.0(hardhat@2.22.6(bufferutil@4.0.8)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.15))(@types/node@22.19.7)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10)): dependencies: chokidar: 3.6.0 @@ -30846,11 +31023,11 @@ snapshots: jest-cli@29.7.0(@types/node@22.19.7)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2): dependencies: - '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.15))(@types/node@20.14.13)(typescript@5.6.2)) + '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(node-notifier@8.0.2) '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 chalk: 4.1.2 - create-jest: 29.7.0(@types/node@22.19.7)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.15))(@types/node@22.19.7)(typescript@5.6.2)) + create-jest: 29.7.0(@types/node@22.19.7)(babel-plugin-macros@3.1.0) exit: 0.1.2 import-local: 3.1.0 jest-config: 29.7.0(@types/node@22.19.7)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.15))(@types/node@22.19.7)(typescript@5.6.2)) @@ -31914,7 +32091,7 @@ snapshots: jest@29.7.0(@types/node@22.19.7)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2): dependencies: - '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.3(@swc/helpers@0.5.15))(@types/node@20.14.13)(typescript@5.6.2)) + '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(node-notifier@8.0.2) '@jest/types': 29.6.3 import-local: 3.1.0 jest-cli: 29.7.0(@types/node@22.19.7)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2) @@ -33063,6 +33240,19 @@ snapshots: dependencies: '@segment/isodate': 1.0.3 + next-auth@5.0.0-beta.30(next@14.2.25(@babel/core@7.26.10)(@playwright/test@1.45.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1): + dependencies: + '@auth/core': 0.41.0 + next: 14.2.25(@babel/core@7.26.10)(@playwright/test@1.45.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + optional: true + + next-auth@5.0.0-beta.30(next@15.5.10(@babel/core@7.26.10)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1): + dependencies: + '@auth/core': 0.41.0 + next: 15.5.10(@babel/core@7.26.10)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + next-auth@5.0.0-beta.30(next@15.5.10(@babel/core@7.26.10)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106): dependencies: '@auth/core': 0.41.0 @@ -33072,7 +33262,7 @@ snapshots: next-auth@5.0.0-beta.30(next@15.5.10(@babel/core@7.26.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1): dependencies: '@auth/core': 0.41.0 - next: 15.5.10(@babel/core@7.26.10)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + next: 15.5.10(@babel/core@7.26.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 next@14.2.25(@babel/core@7.26.10)(@playwright/test@1.45.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): @@ -33147,6 +33337,29 @@ snapshots: - '@babel/core' - babel-plugin-macros + next@15.5.10(@babel/core@7.26.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@next/env': 15.5.10 + '@swc/helpers': 0.5.15 + caniuse-lite: 1.0.30001760 + postcss: 8.4.31 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + styled-jsx: 5.1.6(@babel/core@7.26.10)(babel-plugin-macros@3.1.0)(react@18.3.1) + optionalDependencies: + '@next/swc-darwin-arm64': 15.5.7 + '@next/swc-darwin-x64': 15.5.7 + '@next/swc-linux-arm64-gnu': 15.5.7 + '@next/swc-linux-arm64-musl': 15.5.7 + '@next/swc-linux-x64-gnu': 15.5.7 + '@next/swc-linux-x64-musl': 15.5.7 + '@next/swc-win32-arm64-msvc': 15.5.7 + '@next/swc-win32-x64-msvc': 15.5.7 + sharp: 0.34.5 + transitivePeerDependencies: + - '@babel/core' + - babel-plugin-macros + nice-napi@1.0.2: dependencies: node-addon-api: 3.2.1 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index e0c84db642..09f5e8fee2 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -23,6 +23,7 @@ packages: - "packages/blockchain-data/sdk" - "packages/audience/core" - "packages/audience/pixel" + - "packages/audience/sdk" - "packages/game-bridge" - "packages/webhook/sdk" - "packages/minting-backend/sdk"