From 20f70c6f58f83ef30e5e9524f445f803b9a7d513 Mon Sep 17 00:00:00 2001 From: Kurdistan Tech Ministry Date: Mon, 19 Jan 2026 14:17:40 +0300 Subject: [PATCH] fix: Resolve TypeScript build errors for verbatimModuleSyntax compatibility - Fix EventEmitter import in page-contracts/store.ts (use default import) - Add type declarations for eventemitter3 to fix ESM import type issue - Add type declarations for react-copy-to-clipboard to fix React types mismatch Co-Authored-By: Claude Opus 4.5 --- .../src/react-copy-to-clipboard.d.ts | 23 ++++++++++ .../page-contracts/src/eventemitter3.d.ts | 44 +++++++++++++++++++ packages/page-contracts/src/store.ts | 2 +- .../src/react-copy-to-clipboard.d.ts | 23 ++++++++++ 4 files changed, 91 insertions(+), 1 deletion(-) create mode 100644 packages/page-claims/src/react-copy-to-clipboard.d.ts create mode 100644 packages/page-contracts/src/eventemitter3.d.ts create mode 100644 packages/react-components/src/react-copy-to-clipboard.d.ts diff --git a/packages/page-claims/src/react-copy-to-clipboard.d.ts b/packages/page-claims/src/react-copy-to-clipboard.d.ts new file mode 100644 index 0000000..6e1a408 --- /dev/null +++ b/packages/page-claims/src/react-copy-to-clipboard.d.ts @@ -0,0 +1,23 @@ +// Copyright 2017-2026 @pezkuwi/app-claims authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// Type override for react-copy-to-clipboard to fix React types compatibility +declare module 'react-copy-to-clipboard' { + import * as React from 'react'; + + export interface Options { + debug?: boolean; + message?: string; + format?: string; + } + + export interface Props { + children: React.ReactNode; + text: string; + onCopy?(text: string, result: boolean): void; + options?: Options; + } + + declare const CopyToClipboard: React.FC; + export default CopyToClipboard; +} diff --git a/packages/page-contracts/src/eventemitter3.d.ts b/packages/page-contracts/src/eventemitter3.d.ts new file mode 100644 index 0000000..fc54940 --- /dev/null +++ b/packages/page-contracts/src/eventemitter3.d.ts @@ -0,0 +1,44 @@ +// Copyright 2017-2026 @pezkuwi/app-contracts authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// Type override for eventemitter3 to fix verbatimModuleSyntax ESM import issue +declare module 'eventemitter3' { + export type ValidEventTypes = string | symbol | object; + + export type EventNames = T extends string | symbol + ? T + : keyof T; + + export type EventListener< + T extends ValidEventTypes, + K extends EventNames + > = T extends string | symbol + ? (...args: any[]) => void + : (...args: any[]) => void; + + export type EventArgs< + T extends ValidEventTypes, + K extends EventNames + > = any[]; + + class EventEmitter< + EventTypes extends ValidEventTypes = string | symbol, + Context extends any = any + > { + static prefixed: string | boolean; + + eventNames(): Array>; + listeners>(event: T): Array>; + listenerCount(event: EventNames): number; + emit>(event: T, ...args: EventArgs): boolean; + on>(event: T, fn: EventListener, context?: Context): this; + addListener>(event: T, fn: EventListener, context?: Context): this; + once>(event: T, fn: EventListener, context?: Context): this; + removeListener>(event: T, fn?: EventListener, context?: Context, once?: boolean): this; + off>(event: T, fn?: EventListener, context?: Context, once?: boolean): this; + removeAllListeners(event?: EventNames): this; + } + + export { EventEmitter }; + export default EventEmitter; +} diff --git a/packages/page-contracts/src/store.ts b/packages/page-contracts/src/store.ts index 6a0b271..db79a91 100644 --- a/packages/page-contracts/src/store.ts +++ b/packages/page-contracts/src/store.ts @@ -4,7 +4,7 @@ import type { Hash } from '@pezkuwi/types/interfaces'; import type { CodeJson, CodeStored } from './types.js'; -import { EventEmitter } from 'eventemitter3'; +import EventEmitter from 'eventemitter3'; import store from 'store'; import { Abi } from '@pezkuwi/api-contract'; diff --git a/packages/react-components/src/react-copy-to-clipboard.d.ts b/packages/react-components/src/react-copy-to-clipboard.d.ts new file mode 100644 index 0000000..a422fe3 --- /dev/null +++ b/packages/react-components/src/react-copy-to-clipboard.d.ts @@ -0,0 +1,23 @@ +// Copyright 2017-2026 @pezkuwi/react-components authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// Type override for react-copy-to-clipboard to fix React types compatibility +declare module 'react-copy-to-clipboard' { + import * as React from 'react'; + + export interface Options { + debug?: boolean; + message?: string; + format?: string; + } + + export interface Props { + children: React.ReactNode; + text: string; + onCopy?(text: string, result: boolean): void; + options?: Options; + } + + declare const CopyToClipboard: React.FC; + export default CopyToClipboard; +}