From 484bd5c6572a9041234083b197e56734862ebe0a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9E=AC=EC=9A=B1?= Date: Mon, 20 Apr 2026 10:35:03 +0900 Subject: [PATCH] fix: inline @scrolloop/core and @scrolloop/shared into scrolloop bundle Published scrolloop@0.5.1 declared unresolvable deps (@scrolloop/core, @scrolloop/shared are not on npm) so npm install scrolloop failed. Force-bundle them via tsup noExternal and duplicate the two shared interfaces in the adapter packages so the public .d.ts is self-contained. Co-Authored-By: Claude Opus 4.7 (1M context) --- package.json | 6 +----- packages/react-native/src/types.ts | 12 ++++++++++-- packages/react-native/tsup.config.ts | 3 ++- packages/react/src/types.ts | 12 ++++++++++-- packages/react/tsup.config.ts | 3 ++- pnpm-lock.yaml | 7 ------- 6 files changed, 25 insertions(+), 18 deletions(-) diff --git a/package.json b/package.json index a33c0cb..5e50386 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "scrolloop", - "version": "0.5.1", + "version": "0.5.2", "repository": { "type": "git", "url": "git+https://github.com/976520/scrolloop.git" @@ -98,9 +98,5 @@ "vitepress": "^1.6.4", "vitest": "^2.0.0", "vue": "^3.5.26" - }, - "dependencies": { - "@scrolloop/core": "workspace:*", - "@scrolloop/shared": "workspace:*" } } diff --git a/packages/react-native/src/types.ts b/packages/react-native/src/types.ts index 3fe866a..0bedb9b 100644 --- a/packages/react-native/src/types.ts +++ b/packages/react-native/src/types.ts @@ -1,8 +1,16 @@ import type { ReactNode } from "react"; import type { ViewStyle, ScrollViewProps } from "react-native"; -import type { PageResponse, Range } from "@scrolloop/shared"; -export type { PageResponse, Range }; +export interface Range { + startIndex: number; + endIndex: number; +} + +export interface PageResponse { + items: T[]; + total: number; + hasMore: boolean; +} export interface ItemProps { key: number | string; diff --git a/packages/react-native/tsup.config.ts b/packages/react-native/tsup.config.ts index 61f9654..9ed709c 100644 --- a/packages/react-native/tsup.config.ts +++ b/packages/react-native/tsup.config.ts @@ -28,7 +28,8 @@ export default defineConfig({ }, }, target: "es2020", - external: ["react", "react-native", "@scrolloop/core", "@scrolloop/shared"], + external: ["react", "react-native"], + noExternal: ["@scrolloop/core", "@scrolloop/shared"], outExtension({ format }) { return { js: format === "esm" ? ".mjs" : ".cjs", diff --git a/packages/react/src/types.ts b/packages/react/src/types.ts index 014ac34..cd9cd51 100644 --- a/packages/react/src/types.ts +++ b/packages/react/src/types.ts @@ -1,7 +1,15 @@ import type { CSSProperties, ReactNode, HTMLAttributes } from "react"; -import type { PageResponse, Range } from "@scrolloop/shared"; -export type { PageResponse, Range }; +export interface Range { + startIndex: number; + endIndex: number; +} + +export interface PageResponse { + items: T[]; + total: number; + hasMore: boolean; +} export type TransitionState = | { type: "SSR_DOM" } diff --git a/packages/react/tsup.config.ts b/packages/react/tsup.config.ts index b53d170..ec3bc07 100644 --- a/packages/react/tsup.config.ts +++ b/packages/react/tsup.config.ts @@ -28,7 +28,8 @@ export default defineConfig({ }, }, target: "es2020", - external: ["react", "react-dom", "@scrolloop/core", "@scrolloop/shared"], + external: ["react", "react-dom"], + noExternal: ["@scrolloop/core", "@scrolloop/shared"], outExtension({ format }) { return { js: format === "esm" ? ".mjs" : ".cjs", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d0bd35f..84b5a6a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -7,13 +7,6 @@ settings: importers: .: - dependencies: - '@scrolloop/core': - specifier: workspace:* - version: link:packages/core - '@scrolloop/shared': - specifier: workspace:* - version: link:packages/shared devDependencies: '@testing-library/jest-dom': specifier: ^6.0.0